Go Back   Cockos Incorporated Forums > REAPER Forums > MIDI Hardware, Control Surfaces, and OSC

Reply
 
Thread Tools Display Modes
Old 05-03-2022, 05:26 PM   #1
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default OSC, possible or not: true bi-directional mirroring of Reaper MASTER track?

Hello all. I have finally settled into learning Reaper OSC from scratch. Inconsistencies between how the Reaper UI outputs OSC messages for the master track vs. tracks 1 through 99 have been driving me crazy. Is it something I'm doing?

Here's some background:

* I am creating all-custom layouts using TouchOSC and using the oem Default.reaperOSC for the Reaper OSC pattern file (minus all the metering etc. that would flood the OSC connection with ongoing messages).

* I want a tablet layout that is a perfect mirror of Reaper, so the tablet UI and Reaper UI are always in step.

* If I do something on the tablet UI, I want Reaper to follow, and the tablet to reflect.

* If I do something via the Reaper UI, I want the tablet to follow and reflect the same.

* For tracks 1 through 99 -- anything but the MASTER track -- this is not a problem. Every element I've tested so far for track 1 through 99 has an OSC message where I can specify the track number and any sub-element of that track.

* So, for tracks 1 through 99, every time I click something in the Reaper UI, Reaper outputs a track-specific OSC message for the tablet to follow. FX bypassed? Tablet updates. FX window opened or closed? Tablet updates. FX name or position changes? Tablet updates.

* The MASTER track, however, is a total headache. When I click master track elements in the Reaper UI, Reaper only outputs generic 'currently selected track' messages (if the master is selected) or generic 'last touched' messages.

* This means, if the tablet has controls that are supposed to be dedicated to the master track only, when the master is controlled from the Reaper UI those controls do not update on the tablet side.

* This will surely be familiar to those who have dabbled in OSC. Is there away around this?

To me it feels like a maddening (and rather arbitrary) inconsistency in how the Reaper UI outputs OSC messages. Why the master can't output everything tracks 1 through 99 does makes no sense to me. Same for why pattern file has a track number variable (@) but it doesn't reliably call the master as track 0.

Thanks for any tips, corrections, or work-arounds.
sensapaz is offline   Reply With Quote
Old 05-03-2022, 05:52 PM   #2
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,254
Default

I guess you're not using ReaLearn? It's a simple affair if you are. Before ReaLearn 2, OSC was really hit or miss. Mostly miss.
__________________
foxyyymusic
foxAsteria is online now   Reply With Quote
Old 05-03-2022, 09:49 PM   #3
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default

Hi foxAsteria. Thanks for replying. I am not using ReaLearn, but I am aware of it. Doesn't ReaLearn require virtual midi (not OSC directly)?

My preference is always to keep things as simple and update / upgrade-proof as possible (that's my thinking, anyway). So, I try to do what I can natively, and not become too dependent on outside tools. It may be time to give that up with OSC.

I've enjoyed testing OSC once I got the hang of it. It's been pretty reliable so far -- it's just this master track issue.

It doesn't make any sense that the Reaper UI gives arbitrarily less feedback / OSC output from a track called MASTER than it does for others. It's also discouraging: I don't want to run into similar OSC shortcomings in other areas of Reaper as I keep working my layouts.
sensapaz is offline   Reply With Quote
Old 05-03-2022, 11:22 PM   #4
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,254
Default

Quote:
Originally Posted by sensapaz View Post
Hi foxAsteria. Thanks for replying. I am not using ReaLearn, but I am aware of it. Doesn't ReaLearn require virtual midi (not OSC directly)?
Works with both and many more. It's being actively developed, so if you run into problems you can get help and can request features/report bugs. Doesn't get any more future proof than having a say in the future, does it?

Just try it though, you'll wonder why you've been wasting your time doing it the hard way.

And no offense because you're far from alone in this, but I really don't get the notion of preferring to do things "natively" with Reaper.

The power of Reaper is in the community driven extensions, scripts, plugins etc. I just don't see the point of using Reaper at all if those aren't interesting.

Reaper is built to use these extensions and continuously debugged to support and grow them. Can hardly consider that 3rd party, but whatever works for you.
__________________
foxyyymusic
foxAsteria is online now   Reply With Quote
Old 05-04-2022, 12:20 AM   #5
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default

I'll give it a try. And no offense taken. I appreciate your well-formed perspectives.

I just quickly re-read part of the ReaLearn quick start and intro. It seems like midi is required as part of it's config, but I also saw the section on touchOSC specifically.

1. ReaLearn 'learning' a mapping seems pretty straight forward for a hardware controller (existing knobs, faders, buttons, pads, keys, etc.). But with a blank canvas like touchOSC, what's the approach? There isn't any pre-configured control to learn, and also no pre-configured way of interpreting or displaying what is being sent from the Reaper side.

2. Is ReLearn focused mostly on remote control only, or can it also provide feedback to a device? Things like: Rearper track names; FX names and insert positions and track number(s); FX parameter names, values, and text strings; etc.? Is ReaLearn able to send and receive pretty much anything OSC that Reaper can send and receive?

3. Finally, do you find yourself using only ReaLearn now -- no direct OSC messages between Reaper and controller device / tablem -- or do you have to use them in combination?
sensapaz is offline   Reply With Quote
Old 05-04-2022, 02:23 AM   #6
foxAsteria
Human being with feelings
 
foxAsteria's Avatar
 
Join Date: Dec 2009
Location: Oblivion
Posts: 10,254
Default

1. There is a "daw control" preset for most of your basic track and and transport controls. The approach would be to set up your TouchOSC template with the controls you want to use and then map that to a "virtual" control preset in ReaLearn. This is done in the "controller compartment." Or you can use a TouchOSC preset and customize it.

Then map the virtual controller as the source for the daw control preset (main compartment). You can map it directly to the daw control preset, but by "de-coupling" you get more flexibility dynamically change what your controller is doing in different scenarios without having to repeatedly set up mappings.

Even if you don't, you might in the future and this is a pretty painless step that will set you up for that.

2. Yes to all of those things and much more. Instantaneous controller feedback is one of the great strengths of ReaLearn.

3. Yes and it's like coming home after being on an alien planet where you had to decipher an ancient language based on the cave scribblings of a madman.

The new version of ReaLearn with the revamped TouchOSC software makes pretty much anything you can imagine and plenty that you can't possible. And it's all very intuitive IMO. Orders of magnitude better than the previous versions...
__________________
foxyyymusic

Last edited by foxAsteria; 05-04-2022 at 02:29 AM.
foxAsteria is online now   Reply With Quote
Old 05-04-2022, 05:24 AM   #7
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

CSI is another option that will give you two way operation of all your tracks and the master track. Works completely with OSC (just as Realearn does, neither are “virtual midi”)

I’ve been working on an osc layout for the past 4-6 months at this point that’s OSC and works with CSI. I’ll release it soon once CSI 2.0 gets ironed out.

But Realearn and CSI are both actively developed and a great option. CSI is even open source so if something ever happened to development I’m sure that it won’t ever die.
Puck is offline   Reply With Quote
Old 05-04-2022, 01:17 PM   #8
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default

Quote:
Originally Posted by foxAsteria View Post
1. There is a "daw control" preset for most of your basic track and and transport controls. The approach would be to set up your TouchOSC template with the controls you want to use and then map that to a "virtual" control preset in ReaLearn. This is done in the "controller compartment." Or you can use a TouchOSC preset and customize it.
Thanks for the overview and pointing me to the "DAW Control" preset and "controller compartment" to get me started.

I tried it.
Setting connections between ReaLearn / touchOSC was easy.
Learning a virgin radial knob from touchOSC just by turning it (with no further config done there) was also easy. That was really nice.
Configuring a target (in my case a plugin on the master track) was also easy, either by learning or by configuring manually (love how the drop downs shows all the elements/data the targeted plugin has on offer).


But for some reason I can't get the fx plugin itself to respond to the knob in touchOSC.

* If I move the value slider for the target in the ReaLearn mapping window, the targeted element in the plugin mirrors, and the knob in touchOSC mirrors.

* If I change the value in plugin UI, the slider in the mapping window mirrors, and the knob in touchOSC mirrors.

* If I turn the knob in touchOSC, the mapping window mirrors, but the plugin does NOT mirror.

The touchOSC connection in ReaLearn (right click in "control input" and "feedback output" drop downs) is enabled for both control and feedback.

Feels like 99% of the way there. Any thoughts on what the blockage is?



Quote:
Originally Posted by foxAsteria View Post
Then map the virtual controller as the source for the daw control preset (main compartment). You can map it directly to the daw control preset, but by "de-coupling" you get more flexibility dynamically change what your controller is doing in different scenarios without having to repeatedly set up mappings.
This part threw me a little bit, also how it's described in the ReaLearn user guide. I don't follow the distinction between the two compartments. They seem redundant. What am I overlooking?

Thanks again for all the pointers.

I still need to play with populating labels on the touchOSC side (learn function won't help there, because a label doesn't send anything out; I presume mapping will be done on the ReaLearn side by referencing the element name in touchOSC).
sensapaz is offline   Reply With Quote
Old 05-04-2022, 01:21 PM   #9
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default

Quote:
Originally Posted by Puck View Post
CSI is another option that will give you two way operation of all your tracks and the master track. Works completely with OSC (just as Realearn does, neither are “virtual midi”)

I’ve been working on an osc layout for the past 4-6 months at this point that’s OSC and works with CSI. I’ll release it soon once CSI 2.0 gets ironed out.

But Realearn and CSI are both actively developed and a great option. CSI is even open source so if something ever happened to development I’m sure that it won’t ever die.
Thanks Puck for the CSI suggestion. This is the one I know the least about. Next on the list.

Could you share briefly how you see the distinction between how CSI does things and ReaLearn does things?

Do you find yourself using both for different things, and almost never 'direct OSC,' or do you find CSI does everything you need, and you prefer its approach more?
sensapaz is offline   Reply With Quote
Old 05-04-2022, 03:03 PM   #10
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Quote:
Originally Posted by sensapaz View Post
Thanks Puck for the CSI suggestion. This is the one I know the least about. Next on the list.

Could you share briefly how you see the distinction between how CSI does things and ReaLearn does things?

Do you find yourself using both for different things, and almost never 'direct OSC,' or do you find CSI does everything you need, and you prefer its approach more?
To answer the last question first. I use CSI specifically for now. But all of the options cover similar ground with the default.reaperosc being the most limited. In the future I might play with using both CSI and Realearn as TouchOSC allows multiple connections but that just complicates an already complicated thing

To me, the distinction lies in the execution mostly. CSI is mostly based on text files that the user provides. Whereas Realearn is a VSTi that the user can interact with and use multiple instances of. Both great communities and active development. There's a thread started by the Realearn dev Helgoboss for new users comparing all the options.

https://forum.cockos.com/showthread.php?t=261445
Puck is offline   Reply With Quote
Old 05-04-2022, 03:41 PM   #11
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default

Quote:
Originally Posted by Puck View Post
There's a thread started by the Realearn dev Helgoboss for new users comparing all the options.

https://forum.cockos.com/showthread.php?t=261445
Thanks Puck. To echo some of the sentiments expressed early in that thread you shared, it really is too much.

I put days and days into figuring out Reaper OSC and TouchOSC (the sort of thing I can enjoy doing from time to time, but not regularly). I was getting on with it quite well and didn't really find it missing much that I wanted to do. Documentation is awful, but I think a simple address system works great for the things I had in mind.

And then the roadblock: and not even something missing in Reaper's supported OSC patterns, just inconsistently implemented (master track sending and receiving less -- and less specific -- messages than all other tracks have available, for no apparent reason).

So now I'm starting over with ReaLearn, hoping it can do them, and relearning the 98% of things I was already getting OSC to do, or use both. And then maybe again with CSI (which I am curious about because I actually like the simplicity of a text-based commands).

A big shame about a lot of this: all of these pursuits require a certain disposition, background, and persistence. I have no doubt a massive percentage of users -- people who are artists more than technicians -- are left on the sidelines, despite the creative possibilities, because implementing them is so obtuse.

Do you guys know if someone has made a spreadsheet of things OSC can't do, meaning where Reaper's OSC feels either 'broken' or not fully fleshed out (sort of the inverse of the spreadsheet in that thread)?

Are there in fact many such things, or is the aversion mostly due to the headaches of programming things outside of Reaper to do what you want them to do?
sensapaz is offline   Reply With Quote
Old 05-04-2022, 04:59 PM   #12
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Quote:
Originally Posted by sensapaz View Post
Thanks Puck. To echo some of the sentiments expressed early in that thread you shared, it really is too much.

I put days and days into figuring out Reaper OSC and TouchOSC (the sort of thing I can enjoy doing from time to time, but not regularly). I was getting on with it quite well and didn't really find it missing much that I wanted to do. Documentation is awful, but I think a simple address system works great for the things I had in mind.

And then the roadblock: and not even something missing in Reaper's supported OSC patterns, just inconsistently implemented (master track sending and receiving less -- and less specific -- messages than all other tracks have available, for no apparent reason).

So now I'm starting over with ReaLearn, hoping it can do them, and relearning the 98% of things I was already getting OSC to do, or use both. And then maybe again with CSI (which I am curious about because I actually like the simplicity of a text-based commands).

A big shame about a lot of this: all of these pursuits require a certain disposition, background, and persistence. I have no doubt a massive percentage of users -- people who are artists more than technicians -- are left on the sidelines, despite the creative possibilities, because implementing them is so obtuse.

Do you guys know if someone has made a spreadsheet of things OSC can't do, meaning where Reaper's OSC feels either 'broken' or not fully fleshed out (sort of the inverse of the spreadsheet in that thread)?

Are there in fact many such things, or is the aversion mostly due to the headaches of programming things outside of Reaper to do what you want them to do?
Your sentiments are shared for sure.

I don't think there is a spreadsheet for potentially missing OSC type things for the default Reaper OSC implementation. Like everything else, you could likely find the information you seek scattered all over this forum.

Learning Realearn or CSI will leave you satisfied in the end I think. Especially in the FX department.

My layout with CSI that I plan on releasing soon will have all the bells and whistles from CSI plus a ton of lua script enhancements within TouchOSC. I'll accompany the release with videos describing what everything does and go into detail about TouchOSC and CSI and how to change/customize things. That will be sometime soon so maybe go down this road with Realearn and keep an eye out for my release and see if you want to use it or delve into CSI at all.

But for me, I enjoy this part of it, it's like a journey to me lol.
Puck is offline   Reply With Quote
Old 05-04-2022, 05:59 PM   #13
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default

Quote:
Originally Posted by Puck View Post
Your sentiments are shared for sure.
Thanks Puck for the sanity check. The finding bits in pieces here and there mixed in with erroneous assumptions or advice or bugs is beginning to wear on me.

Btw, I just re-posted the ReaLearn issues I described earlier to another thread I found (which seems to be the right place for them, also so I don't hijack my own thread here
[edit: here is the link https://forum.cockos.com/showpost.ph...ostcount=2223]

How can I keep an eye out for your upcoming CSI layout?

One thing I wish existed (or that I had the time and the stomach to do) was a series of TouchOSC starter layouts. I don't mean generic 'here is the mixer in tablet form.' I mean layouts that hold a pre-configured inventory of every single thing Reaper is equipped to do with OSC.

For example, each layout would correspond to each section of the default.reaperOSC pattern file. Every single address and variation would be represented.

The layout would have have encoders (for variable values), buttons (for on/off values), and labels (for text values) mapped to every address and address with variables (@) in the pattern file.

(I know this all sounds insane and useless on its own but bear with me.....)

For addresses with variables (@) for track #, FX #, parameter # etc., the layout could have examples for a couple of each (e.g., tracks 1 and 2, FX 1 and 2, parameter 1 and 2). This would help you get started in duplicating controls for subsequent elements.

Such a layout would let you test everything OSC that is at your disposal in Reaper. And to get your head around the possibilities by seeing them in action.

Then, when you decide what you want, you would just drag the control to your personal template and adjust to taste (e.g., change an encoder to a fader, a square button to a round button, red to green, whatever).

Of course, this would take a lot of time, and a version of TouchOSC where you could drag elements between templates, and without resetting their OSC message configurations. But one can dream.

Last edited by sensapaz; 05-04-2022 at 06:02 PM. Reason: forgot to post the link
sensapaz is offline   Reply With Quote
Old 05-04-2022, 07:50 PM   #14
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default

So as to not beat a dead horse, getting back to the original goal of this thread:

==== How Reaper outputs much less info for the master track vs. tracks 1-99 ====

I'll leave these comparison tables here for posterity (sorry, I don't know how to attach them inline).

* Each table shows OSC output for mouse clicks / touches in the Reaper UI.

* The left side shows what clicks / touches on Track 1 send out.

* The right side shows what clicks / touches on the Master track send out.

* Comments are in the middle

* The first table: behavior of select / unselect of Track 1 and the Master track.

* The second table: toggle on / off of a couple of parameters for FX1 on Track 1, and FX1 on the Master track.

The inconsistency is maddening. If anyone knows how to fix or work around this via pure OSC and the pattern file default.reaperOSC I am all ears.
sensapaz is offline   Reply With Quote
Old 05-05-2022, 07:03 AM   #15
Puck
Human being with feelings
 
Puck's Avatar
 
Join Date: Feb 2022
Location: Almost Canada
Posts: 505
Default

Quote:
Originally Posted by sensapaz View Post
Thanks Puck for the sanity check. The finding bits in pieces here and there mixed in with erroneous assumptions or advice or bugs is beginning to wear on me.


How can I keep an eye out for your upcoming CSI layout?

Of course, this would take a lot of time, and a version of TouchOSC where you could drag elements between templates, and without resetting their OSC message configurations. But one can dream.
Just wanted to respond to a couple things here:

You’re very welcome for the sanity check, I need them quite frequently lol

There’s a decent chance I end up doing a video for The Reaper Blog on the new CSI changes. In which I’ll be using my layout to demonstrate. If not I’ll make videos on my own and get them out there. I do plan on charging a couple bucks for the download so if you don’t hear about it that will be my fault lol.

And just a hot tip on TouchOSC:

If you want to copy elements between projects and keep their osc addresses in tact, select all the controls and hit Ctrl+G to group them before copying them.

I’m of the opinion that the default Reaper OSC is both more complicated and far less customizable than both Realearn and CSI. So while it’s not ideal you went down that path first I think the hardest times are behind you

Oh and one thing I forgot to mention. A buddy of mine made a layout that uses mostly the default reaperosc and some Realearn. Not sure if you seen it but here is the GitHub link:

https://github.com/AlbertoV5/TouchOSC-Betov5
Puck is offline   Reply With Quote
Old 05-05-2022, 07:29 AM   #16
helgoboss
Human being with feelings
 
helgoboss's Avatar
 
Join Date: Aug 2010
Location: Germany
Posts: 2,184
Default

@sensapaz Just responded to your questions in the ReaLearn thread. BTW, just like CSI, ReaLearn can be programmed 100% via text-based commands.
helgoboss is online now   Reply With Quote
Old 05-05-2022, 11:44 AM   #17
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default

Quote:
Originally Posted by Puck View Post
There’s a decent chance I end up doing a video for The Reaper Blog on the new CSI changes. In which I’ll be using my layout to demonstrate. If not I’ll make videos on my own and get them out there. I do plan on charging a couple bucks for the download so if you don’t hear about it that will be my fault lol.
I'll keep an out for it. Feel free to spam here also.

Quote:
Originally Posted by Puck View Post
And just a hot tip on TouchOSC:

If you want to copy elements between projects and keep their osc addresses in tact, select all the controls and hit Ctrl+G to group them before copying them.
This here is an enormous tip for me. Thank you so much.

Quote:
Originally Posted by Puck View Post
I’m of the opinion that the default Reaper OSC is both more complicated and far less customizable than both Realearn and CSI. So while it’s not ideal you went down that path first I think the hardest times are behind you
I'd like to hope you are right about the hardest times being behind me, but so far it does not feel that way. Instead I fear I'm about to re-live them in parallel universes. For my purposes, I like the idea of a simple addressing system coming from a single, very legible pattern file, which essentially lets you reassemble existing elements of the Reaper UI however you wish (barring of course where the UI is inconsistent like I've been harping on). Also like the open nature of it, and it being a somewhat portable skill given the time investment.

Quote:
Originally Posted by Puck View Post
Oh and one thing I forgot to mention. A buddy of mine made a layout that uses mostly the default reaperosc and some Realearn. Not sure if you seen it but here is the GitHub link:

https://github.com/AlbertoV5/TouchOSC-Betov5
Thanks, had not come across it. I'll check this out later.
sensapaz is offline   Reply With Quote
Old 05-05-2022, 11:45 AM   #18
sensapaz
Human being with feelings
 
Join Date: Mar 2021
Posts: 70
Default

Quote:
Originally Posted by helgoboss View Post
@sensapaz Just responded to your questions in the ReaLearn thread. BTW, just like CSI, ReaLearn can be programmed 100% via text-based commands.
Thanks Helgo. I'll see you over there in a bit.
sensapaz 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 08:11 AM.


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