With the OSC support for remote controller surfaces included in recent pre-release builds, we can now also hook up remote controllers using MIDI bi-directionally, via OSC and a round of OSC to MIDI / MIDI to OSC conversion. Doing so is useful, since it enables parameter feedback, meaning that regardless of whether one changes a parameter value in REAPER or on the remote controller, the value gets updated in both places. For controllers like the Behringer BCR-2000, this also means that LEDs on the controller reflecting current values are correctly updated.
Attached is a proof-of-concept patch (inspired by
a similar patch for Max by Spyrow, kudos!) using
Pure data (extended) (free, click for download links).
This simple example links the first 8 parameters of the effect in the 1st slot of track 1 to a MIDI controller, using CC# 1 thru 8, all on MIDI channel 1. I used a Behringer BCR-2000, but any other MIDI controller should do just fine as well.
In REAPER, set up a control surface using OSC, with a config file containing the following line:
Code:
FX_PARAM_VALUE /track/@/fx/@/fxparam/@/value
Both send and receive should be enabled (enable both checkboxes), "Device IP" should be 127.0.0.1 or localhost (assuming we run Pure data on the same computer). The default port numbers (8000 and 9000) are usually just fine.
In Pure data, go to Preferences > MIDI settings to select the MIDI port that your controller connects to, both (!) for input and output.
Set up your MIDI controller so that it has faders or rotary controllers for MIDI CC 1 thru 8, all on MIDI channel 1 (or change the Pd patch accordingly, which should be easy enough to do).
In Pure data, load the
patch "OSC-MIDI-conversion.pd" (attached), and click the most top-left button to connect the UDP port (you can verify it worked in Pure data's console window, which should say "udpsend: connecting to port 8000" assuming you are using port 8000).
In REAPER, insert an effect on effect slot 1 of track 1. Any plugin (effect/instrument; VST/AU/JS) should do. To identify which are the first 8 parameters, it can be handy to click the UI button (top right) to show the generic UI; so we can instantly see which 8 parameters come first.
Now test it: change the values of parameters 1 thru 8 in REAPER and on the MIDI controller, while Pure data can be used to verify connections and display current values.