Old 11-08-2012, 09:43 PM   #1
david.beholder
Human being with feelings
 
Join Date: Nov 2012
Posts: 2
Default OSC: Enumeration, fx control

Since reaper dramatically lacks documentation about OSC i think this is right forum to ask:

1. How to figure out total amount of:
1.1. Tracks (and their names)
1.2. FXs on tracks (and their names)
1.3. Automation params for Track/FX (their names, current and min/max values)

I do see if I'm adding/deleting track in reaper, device is receiving updates, but what to do if device just plugged in and don't know anything about session
david.beholder is offline   Reply With Quote
Old 11-25-2012, 02:05 PM   #2
gcb
Human being with feelings
 
Join Date: Nov 2012
Posts: 2
Default

I have the very same question. I am using python to send OSC messages to reaper and that works fine but it is unclear to me how a client (like my python program) can establish the state of reaper at connection time in order to set its GUI to match reaper. I just started looking into OSC.
gcb is offline   Reply With Quote
Old 11-25-2012, 05:32 PM   #3
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

First of all, welcome on this forum to both of you!
Quote:
Originally Posted by david.beholder View Post
Since reaper dramatically lacks documentation about OSC i think this is right forum to ask:

1. How to figure out total amount of:
1.1. Tracks (and their names)
1.2. FXs on tracks (and their names)
1.3. Automation params for Track/FX (their names, current and min/max values)

I do see if I'm adding/deleting track in reaper, device is receiving updates, but what to do if device just plugged in and don't know anything about session
If you use the ACTION 'OSC action description' in your .ReaperOSC configuration:
Code:
 ACTION i/action t/action/@
you can send REAPER a message (using its Command ID; make sure you enable 'Show action IDs' by right-clicking in the Actions window) triggering an action telling it to refresh all control surfaces.
Code:
/action 41743
/action/41743
/action/41743 1
REAPER then responds by sending all parameters currently 'visible' to the OSC control surface.

In order to prevent a 'data flood', this is limited by the number of tracks / effect plugin slots / effect plugin (automation) parameters:
Code:
DEVICE_TRACK_COUNT 8
DEVICE_SEND_COUNT 4
DEVICE_RECEIVE_COUNT 4
DEVICE_FX_COUNT 8
DEVICE_FX_PARAM_COUNT 16
DEVICE_FX_INST_PARAM_COUNT 16
So, for example, if you have set the number of tracks for the OSC device ('device track count') to 8, you will only see the parameters for 8 tracks at a time, but you can step through all tracks a bank at a time,
Code:
DEVICE_TRACK_SELECT i/device/track/select t/device/track/select/@ 
DEVICE_PREV_TRACK t/device/track/-
DEVICE_NEXT_TRACK t/device/track/+

DEVICE_TRACK_BANK_SELECT i/device/track/bank/select t/device/track/bank/select/@
DEVICE_PREV_TRACK_BANK t/device/track/bank/-
DEVICE_NEXT_TRACK_BANK t/device/track/bank/+

DEVICE_FX_SELECT i/device/fx/select t/device/fx/select/@
DEVICE_PREV_FX t/device/fx/-
DEVICE_NEXT_FX t/device/fx/+

DEVICE_FX_PARAM_BANK_SELECT i/device/fxparam/bank/select t/device/fxparam/bank/select/@ 
DEVICE_FX_PARAM_BANK_SELECT s/device/fxparam/bank/str
DEVICE_PREV_FX_PARAM_BANK t/device/fxparam/bank/-
DEVICE_NEXT_FX_PARAM_BANK t/device/fxparam/bank/+

DEVICE_FX_INST_PARAM_BANK_SELECT i/device/fxinstparam/bank/select t/device/fxinstparam/bank/select/@
DEVICE_FX_INST_PARAM_BANK_SELECT s/device/fxinstparam/bank/str
DEVICE_PREV_FX_INST_PARAM_BANK t/device/fxinstparam/bank/-
DEVICE_NEXT_FX_INST_PARAM_BANK t/device/fxinstparam/bank/+
and also get/set those "_COUNT" dynamically values via OSC messages:
Code:
DEVICE_TRACK_COUNT i/device/track/count t/device/track/count/@
DEVICE_SEND_COUNT i/device/send/count t/device/send/count/@
DEVICE_RECEIVE_COUNT i/device/receive/count t/device/receive/count/@
DEVICE_FX_COUNT i/device/fx/count t/device/fx/count/@
DEVICE_FX_PARAM_COUNT i/device/fxparam/count t/device/fxparam/count/@
DEVICE_FX_INST_PARAM_COUNT i/device/fxinstparam/count t/device/fxinstparam/count/@
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 11-26-2012, 08:57 PM   #4
gcb
Human being with feelings
 
Join Date: Nov 2012
Posts: 2
Default

Thank you Banned! I am going to do some experiments based on the clear explanation you have provided. I have been looking at your 'beyond python v18' and see that is a brilliant approach but I want to create some simple stuff myself to fully get an understanding of the OSC protocol. THANKS again for your reply.
gcb is offline   Reply With Quote
Old 11-27-2012, 07:13 AM   #5
david.beholder
Human being with feelings
 
Join Date: Nov 2012
Posts: 2
Default

Thanks, Banned, I'm also going to do tests with your advice this weekend, and reply back to this thread.
david.beholder 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 07:56 AM.


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