View Single Post
Old 04-25-2019, 03:10 AM   #93
Human being with feelings
mschnell's Avatar
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 7,884
Default Another Rant on DAW Parameter modulation / Midi / Reaper Control Path

Unfortunately there is an ongoing misconception regarding plugins' DAW Parameter modulation / Midi / Reaper Control Path, due to lack of appropriate documentation and sometimes misleading naming in the Reaper GUI.

I seem to remember that I already did write a text on this, but supposedly my research is more advanced now.

Regarding the the Midi Routing in Reaper it's important to see that this always happens in parallel with a (potentially mute) the Audio stream. The timing of the Midi messages is tied to same and a description of some details is here -> The Midi channel (that by the Midi Standard is 1.. 16) internally in Reaper is enhanced by the "Midi Bus" (1..16) and hence any Reaper Midi message features one of 256 virtual Midi channels (denoted by Bus and Channel).

A plugin in a track's FX chain can receive any of these messages (for "Standard" plugins, Reaper manages the input and output "Bus" - together with the routing instructions, while JSFX plugins can - and are supposed to - do that by themselves in their code).

For plugin "DAW"-parameter modulation, CC messages can be use by Reaper. These are taken from the Midi messages stream in the FX chain at the location of the plugin in question (managed by [Param] -> "Parameter List" -> "Parameter Modulation / Midi link").

Obviously Reaper Scripts don't "live" in an FX chain and hence they can't see Midi messages.

Additionally (and separate from) the Midi message streams (in the tracks, and parallel with audio streams), Reaper features the "Reaper Control Path). Same does not hold Midi messages, but just parameter change instructions. These can be derived from Midi CC messages when activating the "Control" feature in a Midi in device or be explicitly sent by the "MidiToReaControlPath" plugin (or of course by other Reaper extensions that use the appropriate Reaper API). They can be constructed to represent Midi CC messages (or e.g. to represent OSC messages). The Timing of the messages in the Control Path is not strict, but they are handled just "as fast as possible", hence you can't rely on it in any critical situations.

Reaper Scripts can be triggered by such Parameter Change messages in the Reaper Control Path.

For plugin "DAW"-parameter modulation, such Parameter Change messages can be use by Reaper. These are taken from the (single) Reaper Control Path (independent of the track, the plugin is located in, and from any Midi routing). This feature is managed by the [Param] -> "Parameter List" -> "Learn" feature.


Last edited by mschnell; 04-25-2019 at 04:31 AM.
mschnell is offline   Reply With Quote