Old 02-08-2020, 03:06 AM   #1
netphreak
Human being with feelings
 
Join Date: Apr 2019
Posts: 98
Default Simple OSC with CSI test

I'm having a hard time getting CSI to do what I want...

I have an Arduino micro controller, with ethernet and a switch in stomp box. The purpose of my stomp box is to set the WET parameter of Reacomp FX in track 101 in Reaper to be 100 or 0 when I step on the switch.

I can successfully send OSC commands directly to Reaper, and the stomp box is doing exactly what I want. But since I must hardcode the Arduino to send commands to track 101, I have to reprogram it every time I add/remove a track before 101... CSI is supposedly able to help me out with this, but...

In CSI's "Control Surface Integrator" I have added a page, with a child OSC surface. The OSC surface points to the IP of my Arduino, and I've specified port 8888 to receive, and 9999 to send.

Now - this is where the fog gets really thick, and it's hard to see the path... Let's say I send "OSC <ip_on_reaper> 8888 /recaompguitar01 i 0

I can not visually see any signs of the commands received in Reaper/CSI, and how on earth can I bind my commands to my track named "guitar1" in Reaper, and its FX "Reacomp"???
netphreak is offline   Reply With Quote
Old 02-08-2020, 04:00 AM   #2
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,258
Default

Quote:
Originally Posted by netphreak View Post
I'm having a hard time getting CSI to do what I want...

I have an Arduino micro controller, with ethernet and a switch in stomp box. The purpose of my stomp box is to set the WET parameter of Reacomp FX in track 101 in Reaper to be 100 or 0 when I step on the switch.

I can successfully send OSC commands directly to Reaper, and the stomp box is doing exactly what I want. But since I must hardcode the Arduino to send commands to track 101, I have to reprogram it every time I add/remove a track before 101... CSI is supposedly able to help me out with this, but...

In CSI's "Control Surface Integrator" I have added a page, with a child OSC surface. The OSC surface points to the IP of my Arduino, and I've specified port 8888 to receive, and 9999 to send.

Now - this is where the fog gets really thick, and it's hard to see the path... Let's say I send "OSC <ip_on_reaper> 8888 /recaompguitar01 i 0

I can not visually see any signs of the commands received in Reaper/CSI, and how on earth can I bind my commands to my track named "guitar1" in Reaper, and its FX "Reacomp"???
Yeah, that flexibility thing again...

I would suggest you try this approach just to get you going.

The dumber the Control Surface, the better it works with CSI.

If you haven't read @MalcolmG's wiki -- link is on 1st page of this thread -- it is a bit outdated -- he describes what an .mst/.ost Widget definitions file is -- basically it presents the capabilities of the surface, not what it does -- that's CSI's job.

Now to your exact use case.

Here's a rough sketch of the definitions in proposed netphreakArduino.ost and netphreakArduino.zon files.

netphreakArduino.ost:

Code:
Widget Stomp1
   Control /recaompguitar01
WidgetEnd

netphreakArduino.zon:

Code:
Zone "ToggleCompWet101"
    Stomp1 Reaper "ToggleReacompWetOnTrack101"
ZoneEnd

Then all you need to do is define "ToggleReacompWetOnTrack101" the way you would define any custom Reaper Action -- there may even be one that does this if you are very lucky Do you have SWS installed ? There are a ton of goodies in there.

There are many ways to do what you want, this is but one, hopefully it illustrates how easy it is.

The Widget def files (.mst/.ost) present the Control Surface capabilities and give simple handles (e.g. Stomp1) to tie to the Actions in the .zon file.

To change the behaviour of Stomp1, you would need another Zone and a way to switch the Zones.

You might have something like this:

Code:
Zone "Play"
    Stomp1 Play
    Stomp2 GoZone "ToggleCompWet101"
ZoneEnd
Now when you press Stomp1, Reaper transport goes into Play mode.

If you have a Stomp2 you could use it to get back to the "ToggleCompWet101" behaviour.

You could also modify "ToggleCompWet101" to use Stomp2 to switch behaviourr like this:

Code:
Zone "ToggleCompWet101"
    Stomp1 Reaper "ToggleReacompWetOnTrack101"
    Stomp2 GoZone "Play"
ZoneEnd
Any questions, ask away
__________________
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
Old 02-08-2020, 04:39 AM   #3
netphreak
Human being with feelings
 
Join Date: Apr 2019
Posts: 98
Default

Great post, wow, thank you!

Though, I still can not see how any of this solves the root of the problem - binding action of any kind to another ID than track number... I don't know if track number 101 has become tracknumber 92, 110, 99, 12, etc. etc. next week.

Very sad that primary ID always seems to be track number - even though Reaper itself uses a proper id - Reaper's own ID of my track number 101 is in fact CF774744-59F5-466D-A6E9-AC07AFD25B22
netphreak is offline   Reply With Quote
Old 02-08-2020, 05:25 AM   #4
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,258
Default

Quote:
Originally Posted by netphreak View Post
Though, I still can not see how any of this solves the root of the problem - binding action of any kind to another ID than track number... I don't know if track number 101 has become tracknumber 92, 110, 99, 12, etc. etc. next week.

Very sad that primary ID always seems to be track number - even though Reaper itself uses a proper id - Reaper's own ID of my track number 101 is in fact CF774744-59F5-466D-A6E9-AC07AFD25B22
Reaper uses GUIDs for Track id so that the track number doesn't matter.

You can think of it this way -- CF774744-59F5-466D-A6E9-AC07AFD25B22 is in slot 101 right now, but if you rearrange it it is still CF774744-59F5-466D-A6E9-AC07AFD25B22 no matter where it is visually.

Maybe there is a better approach, why is track 101 magic, what are you trying to do ?
__________________
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
Old 02-08-2020, 06:15 AM   #5
netphreak
Human being with feelings
 
Join Date: Apr 2019
Posts: 98
Default

Quote:
Originally Posted by Geoff Waddington View Post
Reaper uses GUIDs for Track id so that the track number doesn't matter.
Exactly my point. We don't have that luxury at disposal, unfortunately. A proper ID.

Quote:
Originally Posted by Geoff Waddington View Post
You can think of it this way -- CF774744-59F5-466D-A6E9-AC07AFD25B22 is in slot 101 right now, but if you rearrange it it is still CF774744-59F5-466D-A6E9-AC07AFD25B22 no matter where it is visually.
Kind of the purpose of an ID, yes Now, how do I set up an action (custom Reaper Action in this case) handling CF774744-59F5-466D-A6E9-AC07AFD25B2 instead of 101? 101 will get another number anytime I add/remove tracks before this track, so it's not usable as an ID.
netphreak is offline   Reply With Quote
Old 02-08-2020, 06:21 AM   #6
netphreak
Human being with feelings
 
Join Date: Apr 2019
Posts: 98
Default

Quote:
Originally Posted by Geoff Waddington View Post
why is track 101 magic, what are you trying to do ?
Nothing magic, it's:

Track ID: CF774744-59F5-466D-A6E9-AC07AFD25B2, with Name: Guitar1, Tracknumber: 101

- right now. Tomorrow it may look like this:

Track ID: CF774744-59F5-466D-A6E9-AC07AFD25B2, with Name: Guitar1, Tracknumber: 97

Means: Tracknumber not feasible to program anything against. Track ID is. But how...
netphreak is offline   Reply With Quote
Old 02-08-2020, 06:22 AM   #7
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,258
Default

Quote:
Originally Posted by netphreak View Post
Exactly my point. We don't have that luxury at disposal, unfortunately. A proper ID.



Kind of the purpose of an ID, yes Now, how do I set up an action (custom Reaper Action in this case) handling CF774744-59F5-466D-A6E9-AC07AFD25B2 instead of 101? 101 will get another number anytime I add/remove tracks before this track, so it's not usable as an ID.
Ok, so it's not Track 101 you're interested in but rather the Track with GUID CF774744-59F5-466D-A6E9-AC07AFD25B2 ?

In that case I think a custom Action launching a script might be the way to go.
__________________
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
Old 02-08-2020, 06:42 AM   #8
netphreak
Human being with feelings
 
Join Date: Apr 2019
Posts: 98
Default

Correct. I can't see how anyone wanting to program anything against a track number. It's just a temporarily number, as long as it's not possible to 'lock' the tracknumbers in Reaper GUI.

Oh well, thank you again for all the effort you do for this community
netphreak is offline   Reply With Quote
Old 02-08-2020, 07:17 AM   #9
Geoff Waddington
Human being with feelings
 
Geoff Waddington's Avatar
 
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,258
Default

Quote:
Originally Posted by netphreak View Post
Correct. I can't see how anyone wanting to program anything against a track number. It's just a temporarily number, as long as it's not possible to 'lock' the tracknumbers in Reaper GUI.

Oh well, thank you again for all the effort you do for this community
Hold on a sec, I'm pretty sure some CSI folks are already writing and using custom actions that launch scripts, don't think it's very difficult.
__________________
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
Old 02-08-2020, 07:30 AM   #10
netphreak
Human being with feelings
 
Join Date: Apr 2019
Posts: 98
Default

I’ll hold

I’ve given up hoping for the Reaper devs to improve their OSC implementation, so workarounds are the only way out. Or, I could continue what I currently do - stack up with hidden dummy tracks, and make sure the automated tracks have the same track number all the time - but it’s a massive pita...
netphreak is offline   Reply With Quote
Old 08-16-2020, 01:58 AM   #11
matt37137
Human being with feelings
 
Join Date: Feb 2020
Posts: 19
Default

Im a bit novice in osc and totally new in csi, but why not use custom action with track name? I made those to workaround changing track number.
PS. Can You point me to some resources to make Arduino with osc over ethernet? I’m capable of doing usb midi controller, but midi input with reaper and realern is not great at all..
matt37137 is offline   Reply With Quote
Old 08-16-2020, 02:17 AM   #12
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,793
Default

AFAIU, CSI can take Midi(USB) and OSC(Ethernet) controllers equally well.

Directly using OSC messages to control Reaper Features seems a lot more problematic than using Midi for this. Hence I used OSCIIBot to convert OSC to Midi external of Reaper for some similar purpose.

-Michael
mschnell 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:44 PM.


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