Old 02-28-2021, 03:04 AM   #1
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
Default Not a bug but a featutre ?

But to let those know that might be affected.
seemingly since some version of Reaper's this has changed, and it broke my live setup, so that I needed to modify a JSFX of mine.

Topic: Midi Link (CC) to plugin parameter.

Former behavior:
When loading the project, the parameter was used as stored in the RPP file. It only was modified with the first Midi CC that was detected on the track.

Current behavior:
When loading the project, the Midi Link to the plugin parameter hits at once, even if no Midi CC had been received yet, overriding the default setting from the RPP file. In my tests the Value "assumed" for the CC status seems to be Zero.

Testing:

I have a JSFX that features a slider and sends out a CC when the slider is moved, but not when starting the project. This CC is acknowledged by a ReaEQ parameter. While the EQ was in default state after starting the project, now the parameter is forced to zero. I needed to modify the JSFX so that a CC is sent when starting the project.

-Michael
mschnell is online now   Reply With Quote
Old 03-03-2021, 06:53 PM   #2
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Hmm can you post a minimal test project+jsfx to demonstrate this?
Justin is offline   Reply With Quote
Old 03-04-2021, 11:31 AM   #3
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
Default

I found the issue in my huge live project. And it definitively changed some weeks ago.

I'll do a test in a new small project later this day.

What is the desired behavior ? Should a Midi Link only do anything when a Midi messages arrives, or should it already be "active" at Reaper start ?

(BTW did yout see the fork done with OSCIIBot ? Seems a very interesting issue, and an optimized version in the trunk might be appropriate. )

-Michael
mschnell is online now   Reply With Quote
Old 03-04-2021, 11:38 AM   #4
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

IIRC midi link should only happen on incoming MIDI events, but perhaps there's something sending MIDI events (e.g. pitch-reset on playback start, etc).
Justin is offline   Reply With Quote
Old 03-04-2021, 03:16 PM   #5
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
Default

Quote:
Originally Posted by Justin View Post
IIRC midi link should only happen on incoming MIDI events, but perhaps there's something sending MIDI events (e.g. pitch-reset on playback start, etc).
This seemingly is not the case.

Test project below.
  • The JSFX "Slider and Midi CC" (available in ReaPack) is deactivated and hence does not send Midi messages
  • The ReaEQ Gain is set to 0 dB (corresponding to CC 64 with the default Midi Link)
If you start the project the gain is set to -inf (corresponding to CC 0 with the default Midi Link) nonetheless.
You can activate "Slider and Midi CC" and move the gain via the slider just fine (and see the midi messages in the ReaMidiControl Log).
Saving and then starting the project with the JSFX enabled results in the JSFX sending a message according to its saved state and hence correct gain.
-Michael


Code:
<REAPER_PROJECT 0.1 "6.24/win64" 1614895613
  RIPPLE 0
  GROUPOVERRIDE 0 0 0
  AUTOXFADE 1
  ENVATTACH 0
  POOLEDENVATTACH 0
  MIXERUIFLAGS 11 48
  PEAKGAIN 1
  FEEDBACK 0
  PANLAW 1
  PROJOFFS 0 0 0
  MAXPROJLEN 0 600
  GRID 3199 8 1 8 1 0 0 0
  TIMEMODE 1 5 -1 30 0 0 -1
  VIDEO_CONFIG 0 0 256
  PANMODE 3
  CURSOR 16
  ZOOM 100 0 0
  VZOOMEX 6 0
  USE_REC_CFG 0
  RECMODE 1
  SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0
  LOOP 0
  LOOPGRAN 0 4
  RECORD_PATH "" ""
  <RECORD_CFG
  >
  <APPLYFX_CFG
  >
  RENDER_FILE ""
  RENDER_PATTERN ""
  RENDER_FMT 0 2 0
  RENDER_1X 0
  RENDER_RANGE 2 0 0 18 1000
  RENDER_RESAMPLE 3 0 1
  RENDER_ADDTOPROJ 0
  RENDER_STEMS 0
  RENDER_DITHER 0
  TIMELOCKMODE 1
  TEMPOENVLOCKMODE 1
  ITEMMIX 0
  DEFPITCHMODE 589824 0
  TAKELANE 1
  SAMPLERATE 44100 0 0
  <RENDER_CFG
  >
  LOCK 1
  <METRONOME 6 2
    VOL 0.25 0.125
    FREQ 800 1600 1
    BEATLEN 4
    SAMPLES "" ""
    PATTERN 2863311530 2863311529
  >
  GLOBAL_AUTO -1
  TEMPO 120 4 4
  PLAYRATE 1 0 0.25 4
  SELECTION 0 0
  SELECTION2 0 0
  MASTERAUTOMODE 0
  MASTERTRACKHEIGHT 0 0
  MASTERPEAKCOL 16576
  MASTERMUTESOLO 0
  MASTERTRACKVIEW 0 0.6667 0.5 0.5 0 0 0 0 0 0 -1 -1 0
  MASTERHWOUT 0 0 1 0 0 0 0 -1
  MASTER_NCH 2 2
  MASTER_VOLUME 1 0 -1 -1 1
  MASTER_FX 1
  MASTER_SEL 0
  <MASTERPLAYSPEEDENV
    EGUID {BEED16A7-AC44-4E9C-BFCF-200620880016}
    ACT 0 -1
    VIS 0 1 1
    LANEHEIGHT 0 0
    ARM 0
    DEFSHAPE 0 -1 -1
  >
  <TEMPOENVEX
    EGUID {248CAE76-8E68-4BED-9C26-B2E7C62B7E3B}
    ACT 0 -1
    VIS 1 0 1
    LANEHEIGHT 0 0
    ARM 0
    DEFSHAPE 1 -1 -1
  >
  <PROJBAY
  >
  <TRACK {A45E5071-EF65-40DE-B43B-B73AFEA052CC}
    NAME ""
    PEAKCOL 16576
    BEAT -1
    AUTOMODE 0
    VOLPAN 1 0 -1 -1 1
    MUTESOLO 0 0 0
    IPHASE 0
    PLAYOFFS 0 1
    ISBUS 0 0
    BUSCOMP 0 0 0 0 0
    SHOWINMIX 1 0.6667 0.5 1 0.5 0 -1 0
    FREEMODE 0
    SEL 0
    REC 0 0 0 0 0 0 0
    VU 2
    TRACKHEIGHT 0 0 0 0 0 0
    INQ 0 0 0 0.5 100 0 0 100
    NCHAN 2
    FX 1
    TRACKID {A45E5071-EF65-40DE-B43B-B73AFEA052CC}
    PERF 0
    MIDIOUT -1
    MAINSEND 1 0
    <FXCHAIN
      WNDRECT 668 84 609 296
      SHOW 1
      LASTSEL 0
      DOCKED 0
      BYPASS 1 0 0
      <JS "ReaTeam JSFX/MIDI/mschnell_MIDI Slider and MIDI CC.jsfx" ""
        0.503937 64.000000 0.000000 0.000000 1.000000 0.000000 0.000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
      >
      FLOATPOS 0 0 0 0
      FXID {67994F65-B17D-405C-A9B7-33678DD7E0E9}
      WAK 0 0
      BYPASS 0 0 0
      <VST "VST: ReaControlMIDI (Cockos)" reacontrolmidi.dll 0 "" 1919118692<56535472636D64726561636F6E74726F> ""
        ZG1jcu5e7f4AAAAAAAAAAPAAAAABAAAAAAAQAA==
        /////wAAAAAAAAAAAAAAAAkAAAAMAAAAAQAAAP8/AAAAIAAAACAAAAAAAAA/AAAAQzpcVXNlcnNcTWljaGFlbCBTY2huZWxsXEFwcERhdGFcUm9hbWluZ1xSRUFQRVJc
        RGF0YVxHTS5yZWFiYW5rAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAATWFqb3IADQAAADEw
        MjAzNDA1MDYwNwABAAAAAAAAAAAAAAAACgAAAA0AAAABAAAAAAAAAAAAAAAAAAAA
        AAAQAAAA
      >
      FLOAT 1167 74 676 616
      FXID {571E495B-E400-41BC-BA63-5E69F96B58B0}
      WAK 0 0
      BYPASS 0 0 0
      <VST "VST: ReaEQ (Cockos)" reaeq.dll 0 "" 1919247729<56535472656571726561657100000000> ""
        cWVlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAARQAAAAEAAAAAABAA
        IQAAAAEAAAABAAAAAQAAACBqU7qJPZRAAAAAgMFg8D8AAAAAAAAAQAEBAAAAAQAAAAAAAAAAAPA/AAAAAA8CAABhAQAA
        AAAQAAAA
      >
      FLOAT 611 492 543 419
      FXID {BF78840F-F3B0-40B6-AB2C-529C042BC96B}
      <PROGRAMENV 1 0
        PARAMBASE 0
        LFO 0
        LFOWT 1 1
        AUDIOCTL 0
        AUDIOCTLWT 1 1
        PLINK 1 -100 -1 0
        MIDIPLINK 0 0 176 1
        MODWND 0 784 456 1132 634
      >
      WAK 0 0
    >
  >
  <EXTENSIONS
  >
>
mschnell is online now   Reply With Quote
Old 03-05-2021, 08:28 PM   #6
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Ah thanks, I see. Yeah, that's the way it has always worked. Perhaps it would be useful as an option, to only change the state when a CC comes in...
Justin is offline   Reply With Quote
Old 03-05-2021, 11:59 PM   #7
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
Default

Quote:
Originally Posted by Justin View Post
Ah thanks, I see. Yeah, that's the way it has always worked.
Funny. I needed to add some code in a JSFX in my setup to make this work (i. e. use the state saved in the project file on project start) again. Unfortunately I don't remember when exactly this stopped working, but I am sure that it did work fine when I created this setup some years ago, otherwise I would not have been starting using it.
-Michael

Last edited by mschnell; 03-06-2021 at 01:05 AM.
mschnell is online now   Reply With Quote
Old 03-06-2021, 08:23 AM   #8
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

MIDI CC link was added in 5.11, I tested that version and it behaves the same... It’s possible that there’s some version in between where that changed, I guess, but i haven’t found it.

Learn of course has the other behavior... the CC link is designed to be used with midi items etc, which chase and thus provide a way of automating via MIDI...
Justin is offline   Reply With Quote
Old 03-06-2021, 11:52 AM   #9
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
Default

In a live setup - always in stop mode - chasing is obviously not done. Of course I should have been more careful and send the CC after start up. Thanks for listening....
-Michael
mschnell is online now   Reply With Quote
Old 06-17-2022, 12:14 PM   #10
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by Justin View Post
Ah thanks, I see. Yeah, that's the way it has always worked. Perhaps it would be useful as an option, to only change the state when a CC comes in...
Hi Justin, really hope you see this.

If there's still a way you could create this option as it would be an absolute life saver and very useful in certain situations.

I've just now painfully found out after 4 heavy days of setting up 32 orchestral vsts (for a big orchestra job I've got coming up) about the chase issue above first hand.

I was trying to set up these VSTs so that all their internal parameters are linked to midi using the "link from midi or fx parameter" (as they only have automation as an option and no internal CCs assignable). I then wanted to use this set up to send midi to control them all at once but only for the record enabled tracks so I can control what is being "set up" (which is also why I can't just use the "learn" function either plus, I want to be able to see this stuff in midi items too).

I was totally devastated to find though, that upon loading the project again, all of the midi assigned parameters were forced to 0 meaning that the only method to do this that I know of was not working and I couldn't work out an easy way to fix this till I found this post.


Some kind of option to not chase CCs either as a global, project or on the parameter modulation panel would be insanely useful right now to not making this project very painful and to help others in the same situation later down the road.

Being able to give midi CC control to any vst parameter that is normally not controllable via midi is super powerful but it would be great if the CCs can not chase after loading the project or arming a track.

Thanks!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.

Last edited by musicbynumbers; 06-18-2022 at 11:55 AM.
musicbynumbers is offline   Reply With Quote
Old 06-22-2022, 06:01 AM   #11
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

I might have found a slightly "janky" way around this for now but not had time to code it yet. If I put a slider JSFX before each instrument and make it so it can both receive and send midi (but not via parameter linking) then it can act as the default values for the SWAM instruments that after it when those chase when the song is played or track is armed.

Not tried this yet though so fingers crossed.

I have to say though. I'm not sure why it's useful to have the CCs chased back to zero if they haven't received any input yet. Wouldn't leaving them at their last state be just as useful?
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 06-22-2022, 03:39 PM   #12
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Let me look into this again.
Justin is offline   Reply With Quote
Old 06-22-2022, 03:50 PM   #13
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by Justin View Post
Let me look into this again.
Thank you thank you!

My heart literally lifted up a bit with the hope of hearing this!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 06-22-2022, 04:04 PM   #14
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Sorry for having put it off so long, there was actually a (hopefully) trivial fix, coming in tomorrow's build.
Justin is offline   Reply With Quote
Old 06-22-2022, 04:53 PM   #15
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by Justin View Post
Sorry for having put it off so long, there was actually a (hopefully) trivial fix, coming in tomorrow's build.
No need to apologise as never expect anything from you but always pleasantly surprised when we do!

Look forward to testing it!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 06-24-2022, 09:20 AM   #16
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

It’s in the latest +dev builds, would like to hear if this addresses your issue!
Justin is offline   Reply With Quote
Old 06-24-2022, 11:02 AM   #17
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by Justin View Post
It’s in the latest +dev builds, would like to hear if this addresses your issue!
Hi Justin,

I did reply in the dev build thread but easy to miss. Posting the findings below for reference. Not completely fixed but a good start!

Quote:
Originally Posted by musicbynumbers View Post
+ FX: improve parameter link behavior (midi CC and loading project, or linking with invalid parameters) [t=250096]

Only just had a chance to test this

Upon setting the settings and then saving (closing reaper) and reloading reaper and the project..

It now seems to hold the value when you arm the track (which I recall as not happening before)

It resets to 0 still upon pressing play (record armed or not).

If I open up a parameter modulation window I can see that the value (on the green line) is 0 which makes sense why it resets.

Hopefully there's a way to get it to recall it there too or to not send if no change is happening?

This is with an old project though. Does it only work on newly setup ones?

Thanks though for getting stuck into tweaking this!


EDIT

Just tried a new project too and same results

.
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 06-25-2022, 12:36 PM   #18
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Ah cool, I replied in that thread
Justin is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:17 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.