View Single Post
Old 04-21-2017, 02:05 PM   #99
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,235
Default

Ok, some more thoughts:

First let's give a working title to this plugin -- "Reaper_CSurf_Integrator", obviously feel free to come with suggestions for a better name

Let's define a button with MIDI messages.

We'll use the Mute button on an MCU as an example.

When you press Ch 2 Mute on an MCU it sends the following midi messages to Reaper:

90 12 7f -- pressed
90 12 00 -- released

You can also send midi messages from Reaper to the Ch 2 Mute button light:

90 12 7f -- on
90 12 01 -- blinking
90 12 00 -- off


So now we have defined a trigger (button), and a feedback mechanism (the button light in this case).

Let's think about how you would go about using the software.

You have no surfaces installed.

You get an MCU, so you install Reaper_CSurf_Integrator,
Options->Preferences->Plugins->control/OSC/web.

You then start configuring your new MCU to work with Reaper.
You choose a pair of MIDI ports (in/out) for communication.

>>>>>>>>>
There will be pre made maps for all the usual suspects, but we will describe the manual process for illustration, i.e. what you would do for a rare or custom control surface.
>>>>>>>>>

Press the Ch 2 Mute button.
Reaper captures the midi message and presents a text box so you can name this message -- you will probably name it something like "Ch 2 Mute pressed", but you are free to name it whatever you like.

Same for Release -- "Ch 2 Mute released"

Then you define the feedback -- on/blinking/off in a similar fashion.

You do this for each control.

Now you have defined:
A means of communication -- in this case midi I/O.
A set of definitions for each physical control (and feedback mechanism) present on the control surface.

You have now described the physical control surface resources at your disposal and their capabilities.

Save this to disk.

End of Step 1.



OK, mapping can now be done more easily.

Let's map a behaviour to this control:

Let's go way out on a limb and map this to "Ch 2 Mute" in Reaper

Because we defined the feedback mechanism in Step 1, the mapping software can be smart and ask us if we want to send feedback (in this case, of course we do, we want to see the Mute light up when we press it, and when we click the mouse on Ch 2 Mute).

We can allow overrides, etc., but smart config here will likely save a lot of time for most cases.

This mapping pair is now available for inclusion in a Zone/Layer.

I think this 2 Step process is the way to go -- well I do today, at least right now.

What do you think ?

How could we improve it?
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Geoff Waddington is offline   Reply With Quote