Old 03-07-2012, 07:57 AM   #401
Subz
Human being with feelings
 
Subz's Avatar
 
Join Date: Jun 2006
Location: UK
Posts: 2,963
Default

Quote:
Originally Posted by schwa View Post
I can't reproduce that. Does it happen with any FX (including Cockos FX)? If so could you copy the .reaperosc file here?
no it actually works fine with the ReaPlugs!

but every other plugin i have tested dose the same as the video,

Uhe, RP, FXp, the lot of them!

attached are my ReaperOSC & TouchOSC preset


Subz
Attached Files
File Type: zip Ski Rize New.zip (4.7 KB, 123 views)
Subz is offline   Reply With Quote
Old 03-07-2012, 08:08 AM   #402
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 10,254
Default

Ahhh ... I've been testing with cockos, stillwell, and voxengo plugins, and they all work fine, but I just realized they all support the cockos VST extension for formatting plugin parameter values (I didn't know Voxengo had done this). We should be able to work around this.
schwa is offline   Reply With Quote
Old 03-07-2012, 08:14 AM   #403
Subz
Human being with feelings
 
Subz's Avatar
 
Join Date: Jun 2006
Location: UK
Posts: 2,963
Default

Quote:
Originally Posted by schwa View Post
Ahhh ... I've been testing with cockos, stillwell, and voxengo plugins, and they all work fine, but I just realized they all support the cockos VST extension for formatting plugin parameter values (I didn't know Voxengo had done this). We should be able to work around this.
Kewl!

[IGNORE THIS I JUST SET THE STRING WRONG FOR THE LAST TOUCHED]FYI its now working on "last_touched_fx_parameter" where that used to have the same problem a few pre's ago.[YES IM A TWAT]



Subz

Last edited by Subz; 03-07-2012 at 08:34 AM.
Subz is offline   Reply With Quote
Old 03-07-2012, 08:39 AM   #404
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by silent View Post
I've started this project within Usine [...]
Slick looks!
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 08:41 AM   #405
Subz
Human being with feelings
 
Subz's Avatar
 
Join Date: Jun 2006
Location: UK
Posts: 2,963
Default

is there a reason why this dose not work?

"LAST_TOUCHED_FX_PARAM_VALUE n/3/fader1 s/3/parval1"

fader works but parval1 readout is blank?

if i put
"LAST_TOUCHED_FX_PARAM_VALUE n/3/fader1 n/3/parval1" then i can get a readout from 0.00000 to 1 but

Subz
Subz is offline   Reply With Quote
Old 03-07-2012, 08:44 AM   #406
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

In Default.ReaperOSC (4.16 pre 26):
Code:
DEVICE_FX_PARAM_COUNT i/device/fxparam/count t/fxparam/count/@
... the t/ pattern seems to be missing the /device bit. It probably should be:
Code:
DEVICE_FX_PARAM_COUNT i/device/fxparam/count t/device/fxparam/count/@
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 09:09 AM   #407
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

For the second pattern in:
Code:
DEVICE_FX_PARAM_BANK_SELECT i/device/fxparam/bank/select t/device/fxparam/bank/select/@
... it seems that REAPER is not sending any values. After successfully changing banks I do see messages from REAPER such as:
Code:
/device/fxparam/bank/select
[EDIT:] Btw, I don't seem to need those values as feedback, since the string from the pattern
Code:
DEVICE_FX_PARAM_BANK_SELECT s/device/fxparam/bank/str
does work just fine for the purpose of getting the selected bank number as feedback.

I still don't really understand why strings are used when the only valid values are integer numbers though. Is this to strictly distinguish the i/* patterns for messages that are only sent from the device to REAPER?
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ

Last edited by Banned; 03-07-2012 at 10:27 AM.
Banned is offline   Reply With Quote
Old 03-07-2012, 10:06 AM   #408
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

The Pan 2 stuff is now working great. There seems to be one quirk related to it though. With this setting:
Code:
DEVICE_TRACK_FOLLOWS LAST_TOUCHED
... when the pan for a track is controlled from the device, the selected track also changes to that track (so it seems to count as a "last touched track"). This is pretty cool, but I didn't expect it, and it is probably not desirable in every case. Compared to controlling track volume, the same does not happen either. So I guess it is a bug, but I would much rather have a setting to switch this behavior on/off then to see it completely gone.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 10:55 AM   #409
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by Subz View Post
i cant get this to work?

DEVICE_FX_FOLLOWS DEVICE
DEVICE_FX_FOLLOWS_LAST_TOUCHED t/2
DEVICE_FX_FOLLOWS_FOCUSED t/4

page /2 & page /4 should switch my DEVICE_FX_FOLLOWS but its not working, (was working in pre25 OSC)

am i doing something wrong or is it a bug?

Subz
I haven't managed to get these working yet either. When using the Default.ReaperOSC (4.16 pre 26), which includes the lines:
Code:
DEVICE_FX_FOLLOWS_DEVICE t/device/fx/follows/device
DEVICE_FX_FOLLOWS_LAST_TOUCHED t/device/fx/follows/last_touched
DEVICE_FX_FOLLOWS_FOCUSED t/device/fx/follows/focused
I expected sending these messages from the device to REAPER would work:
Code:
/device/fx/follows/last_touched 1
/device/fx/follows/focused 1
/device/fx/follows/device 1
... but it didn't. I also tried sending string values or leaving off the /device bit:
Code:
/device/fx/follows/device DEVICE
/device/fx/follows/last_touched LAST_TOUCHED
/device/fx/follows/focused FOCUSED

/fx/follows/device 1
/fx/follows/last_touched 1
/fx/follows/focused 1

/fx/follows/device DEVICE
/fx/follows/last_touched LAST_TOUCHED
/fx/follows/focused FOCUSED
... but nothing seems to have any effect. I'm guessing it is indeed a bug.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 11:21 AM   #410
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

In the versions preceding the current one (4.16 pre 26), when multiple tracks were selected, and a track setting such as volume (pan, pan 2, solo, mute, recarm) of one of those tracks was being controlled from the control surface, all the selected tracks were affected (as it is in REAPER too). Now only the track targeted by the volume message is affected. This seems to be a bug.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 12:44 PM   #411
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Another minor detail about the syntax: imho it's weird that FX_BYPASS uses a 1 for being *not* bypassed. Perhaps "bypass" should be renamed to "active" or something similar (but then it should probably happen throughout REAPER). It is weird to have a checkbox output 0 for checked and 1 for not checked. Or perhaps the 0 and 1 should just be reversed.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 01:29 PM   #412
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

I think there's also a bug with the bypass switches. The first one of the bypass patterns:
Code:
FX_BYPASS b/fx/bypass b/fx/@/bypass b/track/@/fx/@/bypass
... does not seem to give any feedback, i.e. when switching the bypass in REAPER, I expected to see messages like:
Code:
fx/bypass 1
fx/bypass 0
But I only see them for the 2nd and 3rd pattern:
Code:
/fx/1/bypass 1
/track/1/fx/1/bypass 1
/fx/1/bypass 0
/track/1/fx/1/bypass 0
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 01:41 PM   #413
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Another little inconsistency in Default.ReaperOSC (4.16 pre 26):
Code:
FX_WETDRY s/fx/wetdryval/str s/fx/@/wetdryval/str s/track/@/fx/@/wetdry/str
Should probably be:
Code:
FX_WETDRY s/fx/wetdry/str s/fx/@/wetdry/str s/track/@/fx/@/wetdry/str
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 05:35 PM   #414
BenK-msx
Human being with feelings
 
BenK-msx's Avatar
 
Join Date: Jun 2008
Location: Whales, UK
Posts: 5,625
Default FR

this could be related or just 'is' the midi>osc thing but bear with me..

if i had only a single dumb physical midi control (fader or knob) or joystick, and a less-dumb osc device, I'd like to make that one physical control do many things depending on context (from reaper) and change function based on commands from the osc device.

it would be ideal for a portable 'one physical knob/fader/button plus a smartphone scenario'

so some kind of (excuse the non-programmers idiotic take on programming)

SCROLL midi1cc12/scrollwithmymidicontrol
ZOOM_IN midi1cc12/zoomwiththemidicontrol

here 'midi1cc12' is a predefined dumb midi controller e.g
set up as 'control' in reaper, to define the control in question.

reaper, on receipt of /scrollwithmymidicontrol from an OSC device, will scroll when the midi1 cc12 moves, but switch function to 'zoom in' if it receives /zoomwiththemidicontrol from the osc device. reaper will also of course send a string or value back to the osc device to help indicate what midi1cc12 is now controlling. easy peasy right?


to me it seems not really like converting between them rather using osc to define/redefine (and indicate as such) midi assignments.. you get the idea.

feel free to point and laugh, but there it is.

Last edited by BenK-msx; 03-07-2012 at 05:48 PM.
BenK-msx is offline   Reply With Quote
Old 03-07-2012, 07:32 PM   #415
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by BenK-msx View Post
[...] if i had only a single dumb physical midi control (fader or knob) or joystick, and a less-dumb osc device, I'd like to make that one physical control do many things depending on context (from reaper) and change function based on commands from the osc device.[...]
Using modifiers for control is very useful (I'm doing this quite a lot), but I don't think it would (currently) be easy peasy to implement in REAPER. Of course it would be possible somehow, but for now, this sort of thing can imho best be handled somewhere between REAPER and the dumb device. You should really give Max or Pure data a try for this kind of stuff, they are really built for such purposes. You can make a patch that interacts with REAPER, your smartphone running an OSC app, and your dumb MIDI device (etc.), and then hook things up pretty much any way you want to.

If you would send the MIDI from the dumb to the less dumb device first (e.g. iOS devices have decent MIDI support nowadays, and Pure data runs fine on them as well as on Android), REAPER doesn't have to implement anything at all either.

But you can also just use one dumb MIDI controller, where one knob sets the value and another sets the function. You really don't need OSC at all to use one controller as a modifier for the other. As long as you use some smart layer between the dumb MIDI device and REAPER.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 07:37 PM   #416
BenK-msx
Human being with feelings
 
BenK-msx's Avatar
 
Join Date: Jun 2008
Location: Whales, UK
Posts: 5,625
Default

cheers banned for that reply,

i figured a 3rd party would do it,

just i've always thought that it would be very powerful to be able switch midi assignments on the fly, and more so, if it happens in context of whats going in reaper - and all this osc business seems to make it possible.

also my one thought was about the reaper native joystick as control support, and changing those assignments via osc.

not suggesting it is easy peasy, just kind of hoped!
BenK-msx is offline   Reply With Quote
Old 03-07-2012, 07:53 PM   #417
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Another little quirk: when dynamically decreasing the number of plugin parameters, for example sending these messages from the device (4.16pre26, default configuration):
Code:
/fxparam/count/32 1
[...]
/fxparam/count/16 1
After the number has decreased, the parameters that are no longer in use (in this example, numbers 17 to 32) are not being 'nulled', i.e. the old names and values may 'stick' around on a (naive) display. It would be nice to have them wiped clean after use.

I haven't yet tested this for dynamically decreasing the other */count/@ patterns, but I suspect the same quirk may appear there too.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 08:10 PM   #418
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by BenK-msx View Post
[...]just i've always thought that it would be very powerful to be able switch midi assignments on the fly, and more so, if it happens in context of whats going in reaper - and all this osc business seems to make it possible.

also my one thought was about the reaper native joystick as control support, and changing those assignments via osc.[...]
Well, it was already possible to some extent, but getting feedback (which we are getting in the OSC bundle, so to speak) certainly makes it *much* more useful to set up modifiers.

For example, the top row of encoders of my BCR-2000 has two controllers: one one/off switch when you push on top, and another for rotating, with a LED ring to indicate current value. I made the switch button into a modifier for various things, e.g. to switch between pan and pan 2 values: as long as you press it down, you are controlling pan 2 instead of pan 2. The cool thing about getting feedback is that as soon as I push it, it immediately shows the value of pan 2, even if I don't turn the knob. Another thing I did was make a modifier for the knobs that control track volume, so that they switch to VU meters (not really useful to me, but still a neat effect).

And with all the feedback we're already able to get from REAPER, we can certainly make much more complicated context aware controller setups.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2012, 08:29 PM   #419
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Minor issue with plugin name reformatting: all UAD VST plugins (not the AU versions, which are still named inconsistently) show a few forward slashes before the comma:
Code:
/fx/name UAD 1176LN (Universal Audio\\, Inc.)
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-08-2012, 06:54 PM   #420
Subz
Human being with feelings
 
Subz's Avatar
 
Join Date: Jun 2006
Location: UK
Posts: 2,963
Default

"v4.16pre27 - March 8 2012

# OSC: fixed switching track/bank/fx follow behavior at run-time"

when i switch to "DEVICE_FX_FOLLOWS_FOCUSED" at runtime the page acts like its in DEVICE_FX_FOLLOWS_LAST_TOUCHED as well as FOCUSED

so it will jump from focused plugin to the top plugin of a selected track if i click on the track,

on the page set for DEVICE_FX_FOLLOWS_LAST_TOUCHED all works as expected (FOCUSED dose not effect displayed plugin)

& the string for last touched value readout now works

Subz
Subz is offline   Reply With Quote
Old 03-08-2012, 09:45 PM   #421
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

I'm still having some issues with the wet/dry pattern in pre 27. Sometimes I don't seem to be getting a wet/dry value at all, even though I'm expecting one. I need more testing to spot the problem more exactly, but one thing I have noticed as well is that the track or parameter number and plugin slot number are swapped in some cases, e.g. for track 3, plugin slot 4, I get messages like these (perhaps a bad example, since the wet/dry value is also parameter number 3 in this dummy JS plugin with just one slider):
Code:
/fxparam/3/value 0.499748
/fxparam/3/value/str 49
/fx/3/wetdry 0.499748
/fx/3/wetdry/str 49
/fx/4/fxparam/3/value 0.499748
/fx/4/fxparam/3/value/str 49
/track/4/fx/3/wetdry 0.499748
/track/4/fx/3/wetdry/str 49
/track/3/fx/4/fxparam/3/value 0.499748
/fxinstparam/3/value 0.499748
/fxinstparam/3/value/str 49
/fxinstparam/3/value 0.499748
/fxinstparam/3/value/str 49
/fxparam/3/value 0.499748
/fxparam/3/value/str 49
/fx/3/wetdry 0.499748
/fx/3/wetdry/str 49
/fx/4/fxparam/3/value 0.499748
/fx/4/fxparam/3/value/str 49
/track/4/fx/3/wetdry 0.499748
/track/4/fx/3/wetdry/str 49
/track/3/fx/4/fxparam/3/value 0.499748
Also, the rounding issue still exists: in the example above, the value sent via OSC of 49 corresponds to a value of 50% on the plugin GUI in REAPER.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-08-2012, 09:51 PM   #422
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,334
Default

Thank you for...,

# OSC: support device setting playback position in samples or frames

and for allowing the setting of tempos above 296.., it looks like 500 is the new limit.., it would be nice to have the full range though 1-960.

Bug #1 form this post is still there.http://forum.cockos.com/showpost.php...&postcount=396

Are you planning on adding support for controlling "Media Item Properties"?
Anton9 is offline   Reply With Quote
Old 03-08-2012, 09:53 PM   #423
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,334
Default

Schwa,

Do you happen to know what the max transfer rate for OSC data to and from REAPER is?

Thanks
Anton9 is offline   Reply With Quote
Old 03-08-2012, 10:05 PM   #424
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by Anton9 View Post
[...] it looks like 500 is the new limit.., it would be nice to have the full range though 1-960.
Meh, still no splittercore then. But how do you mean, full range 1-960? Don't forget about extratone speedcore!
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-08-2012, 11:04 PM   #425
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,334
Default

Quote:
Originally Posted by Banned View Post
But how do you mean, full range 1-960?
That is the limits when using either the mousewheel over the BPM field or via text input. Actually there is a way to get even faster/slower rates.., I mean seriously ultra-fast and ultra-slow. It requires editing a previously saved project with a text editor.
Anton9 is offline   Reply With Quote
Old 03-09-2012, 03:02 AM   #426
TeaBone
Human being with feelings
 
TeaBone's Avatar
 
Join Date: Jul 2009
Location: Germany
Posts: 36
Default "/track/send/@/volume/db" ?

Hi there!
Amazing work on the OSC front so far!

// But what happened to

"TRACK_SEND_VOLUME_STRING /track/send/@/level" ?

It isn't listed in the default.reaperOsc anymore, nor can I bring it back by adding it manually. I also tried using the new way of adding an "s", so it would be "s/track/send/@/level". Did you remove the feature of displaying the send level as a dB value intentionally? If so, could we please have it back?

:-) //

EDIT: figured it out by understanding the differences and possibilities of the various flags, in this case "n" for the fader (from 0 to 1) and "s" for the string (x.xx dB). I just had to name the corresponding patterns differently (e.g. "/track/send/@/volume" for the "n" version and "/track/send/@/level" for the "s" version). This is very flexible!

Another question: Is it possible to control Reaper with two or more OSC devices simultaneously (provided that REAPER_TRACK_FOLLOWS REAPER and DEVICE_TRACK_FOLLOWS DEVICE). I'm trying to give every musician with an iDevice the possibility to control their headphone mix via TouchOSC. Last time I tried (reaper416pre17 or maybe 18), the two devices I tried seemed to have cancelled each other out. I know that I'll have to watch flooding, so I'll be using the needed parameters only. Does anyone know what else there's to watch out for when using more than one OSC device?

Cheers
Christian

Last edited by TeaBone; 03-09-2012 at 03:30 AM. Reason: Figured stuff out ;-)
TeaBone is offline   Reply With Quote
Old 03-09-2012, 03:29 AM   #427
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by TeaBone View Post
[...] what happened to

"TRACK_SEND_VOLUME_STRING /track/send/@/level" ?
"Level" was renamed (now "volume" is used consistently). You should look for
Code:
TRACK_VOLUME_DB s/track/volume/db/str s/track/@/volume/db/str
Quote:
Originally Posted by TeaBone View Post
[...] Does anyone know what else there's to watch out for when using more than one OSC device?
Use different input / output ports for the UDP connection for each device. It may have been the problem last time you tried, that you set the devices to use the same port?

(You may want to use separate OSC configuration files too, but not necessarily).
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-09-2012, 03:40 AM   #428
TeaBone
Human being with feelings
 
TeaBone's Avatar
 
Join Date: Jul 2009
Location: Germany
Posts: 36
Default

Quote:
Originally Posted by Banned View Post
"Level" was renamed (now "volume" is used consistently). You should look for
Code:
TRACK_VOLUME_DB s/track/volume/db/str s/track/@/volume/db/str
I noticed that there's a different action description for both TRACK_VOLUME and TRACK_VOLUME_DB, but there's only ONE description for TRACK_SEND_VOLUME. BUT both values can be fetched from that action by extracting the "n" for the fader and the "s" for the string. The code looks as follows (change everything written in small letters at will, but keep the slashes ;-) ):

TRACK_SEND_VOLUME n/track/send/@/volume n/track/@/send/@/volume (Fader)
TRACK_SEND_VOLUME s/track/send/@/db s/track/@/send/@/db (Value, "x.xxdB")

So there's no need anymore to seperate it into TRACK_SEND_VOLUME and TRACK_SEND_VOLUME_DB like it is still done with TRACK_VOLUME and TRACK_VOLUME_DB.
TeaBone is offline   Reply With Quote
Old 03-09-2012, 03:42 AM   #429
TeaBone
Human being with feelings
 
TeaBone's Avatar
 
Join Date: Jul 2009
Location: Germany
Posts: 36
Default

Quote:
Originally Posted by Banned View Post
Use different input / output ports for the UDP connection for each device. It may have been the problem last time you tried, that you set the devices to use the same port?

(You may want to use separate OSC configuration files too, but not necessarily).
I had indeed set it up like you described, will try to use different ports for each device! Thank you!
TeaBone is offline   Reply With Quote
Old 03-09-2012, 05:30 AM   #430
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by TeaBone View Post
I noticed that there's a different action description for both TRACK_VOLUME and TRACK_VOLUME_DB, but there's only ONE description for TRACK_SEND_VOLUME. BUT both values can be fetched from that action by extracting the "n" for the fader and the "s" for the string. The code looks as follows (change everything written in small letters at will, but keep the slashes ;-) ):

TRACK_SEND_VOLUME n/track/send/@/volume n/track/@/send/@/volume (Fader)
TRACK_SEND_VOLUME s/track/send/@/db s/track/@/send/@/db (Value, "x.xxdB")

So there's no need anymore to seperate it into TRACK_SEND_VOLUME and TRACK_SEND_VOLUME_DB like it is still done with TRACK_VOLUME and TRACK_VOLUME_DB.
Oops yeah, sorry, pasted the wrong pattern. But this one should already work from the default configuration (so, no need to edit it):
Code:
TRACK_SEND_VOLUME s/track/send/@/volume/str s/track/@/send/@/volume/str
What does seem to be missing compared to some previous builds though, is the possibility of getting the dB value without the suffix "dB". Meh, I can do fine without - I'll just slice of the last two characters if they should really bother me.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-10-2012, 11:54 AM   #431
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

When sending a preset change, the plugin parameter names and values are not getting updated in all cases (while the preset change itself does seem to work fine, of course assuming an appropriate configuration). For example, when using Cockos plugins such as ReaComp and ReaEQ, it doesn't seem to work. It neither seems to work with .rpl presets for the UAD VST plugins I tried. But for u-he Diva, when I use .rpl presets and switch between them, it does update all the parameters correctly (but not the name), for the AUi format, but not for the VSTi format.

When switching to another plugin slot or another track and back, the preset names do get updated correctly btw (so this provides a little workaround).

I have also tried to get preset numbers from REAPER as well, by adding some patterns using the i/ and f/ flags, but haven't had any success with that yet. Is there any way to get preset numbers directly, and set the preset directly by its number?
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-11-2012, 09:37 PM   #432
ambi
Human being with feelings
 
Join Date: Feb 2012
Posts: 38
Default Osc,ReaScript?

Sorry if I am bringing up something that has already been discussed. I have not had the time to read through the whole thread.

I have been following this development a lot, and I am real happy for OSC support. However, I can't help but seeing a lot of overlap and inconsistency with the API that is already available in Reaper through python or using the SDK.
A recent example is I read about being able to control the media browser through OSC and MIDI. That's great, but why is this functionality not in the reaper API?

Being a software developer myself, I feel the most sensible way for users and reaper developers alike is to just implement every customizable feature in the API, and present a way for the user to map OSC or MIDI input to functionality in the API. Especially in the context of OSC this makes a lot of sense to me, since OSC messages are essentially function calls.

I hope you understand what I am getting at.
ambi is offline   Reply With Quote
Old 03-12-2012, 03:32 PM   #433
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by ambi View Post
[...] OSC messages are essentially function calls.
As long as we get callbacks. And since REAPER does not know about the API of any arbitrary caller of the function, the user still needs to be able to configure how REAPER should respond. Although I don't know much about REAPER's API, I think it does not seem to be a good place to do that sort of thing. Since we are (and imho should be, for the purposes of OSC support) allowed to tweak what REAPER listens to and says - i.e. /bang/this/beat instead of /play - such flexible names would not be a good thing for an API, since others should be able to rely on it being consistent.

I haven't been following the latest API developments, but I thought the latest changes to the API were mirroring some of the OSC-related functions? It may just be a matter of time before the API catches up.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-12-2012, 04:24 PM   #434
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default vstxml support / send total number of plugin parameters via OSC

As we probably all know, some plugins have hundreds, sometimes even thousands (e.g. REAKTOR) of parameters. Still, we may only be interested in controlling a few of them. Since we want to minimize flooding, it makes sense to use a modest number of plugin parameters for a control surface. Yet, if the parameters we want to access become spread out across 'pages', they can not be used simultaneously, and navigating back and forth disrupts the workflow. Also, even for plugins with small numbers of parameters, the parameters are not always ordered in the manner which would best fit our personal preferences.

To solve these problems, the user should somehow be allowed to re-order the parameters of any plugin according to custom preferences. [EDIT: on second thought, using vstxml may not be such a good idea at all; see my next post below. EDIT2: Hmm, or maybe it still is after all.] Thus, I think it would be really useful if REAPER could support vstxml (for more information, see e.g. this document on VST Parameters Structure; this documentation from Mackie's Tracktion also explains it quite well). It also seems to be supported in Studio One, and presumably in Steinberg's own products).

Such a feature has been requested before on this forum, but imho the matter has gained a lot of significance with the current developments, so I'd like to bump up those FRs here as well. Imho such a feature would instantly remove the biggest practical downside to the current 'moving window' approach (i.e. showing a number of adjacent tracks / plugins / plugin parameters) to control surfaces, as opposed to customizing each knob's function at the cost of losing flexibility. It is easy to reorder tracks, sends, or receives - but it's not possible to do so with parameter numbers.

Or perhaps, if Cockos can think of an even better way to handle these issues, a similar feature could be added to its VST extensions?

(I also looked briefly at using mGUI, but unfortunately that seems to be Windows only, so I'll have to check it again when I'm on a Windows machine.)

---

On a related note, in an attempt to tackle the above issues, I have created a bit (no more than a proof-of-concept atm) of dynamic parameter remapping, which is implemented on the control surface side or an intermediate layer. I have been thinking of some approaches where it would be very useful if REAPER could be configured to send the total number of parameters for the currently selected plugin. So I'd like to put up a FR for that as well, if you please.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ

Last edited by Banned; 03-12-2012 at 10:15 PM.
Banned is offline   Reply With Quote
Old 03-12-2012, 04:43 PM   #435
BenK-msx
Human being with feelings
 
BenK-msx's Avatar
 
Join Date: Jun 2008
Location: Whales, UK
Posts: 5,625
Default

not sure how you implemented the dynamic mapping you speak of banned, but personally i had thought of

[modifier]+clicking the parameters in reaper as a quick way to populate the 'device' page with parameters - ( how ever many params its set up for.)

for example last touched parameter works similarly so reaper can surely do it, this dynamic mapping could act in same way, acting as a buffer equal to the device's param number, so e.g the last four params you modifier+clicked with, would be mapped to page 1 param1,2,3,4

you could have 'assignments' saved per fx like we have with midi and default assignments like we do now, so you load the plug and its mapped how you like it or just do it on the fly as above.

+1 however its done!
BenK-msx is offline   Reply With Quote
Old 03-12-2012, 05:30 PM   #436
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by BenK-msx View Post
not sure how you implemented the dynamic mapping you speak of banned,
As I said, it's just a proof-of-concept, and very rudimentary. For example, when using 16 plugin parameters for the control surface, and it sees that the plugin name is ReaEQ, it looks for a matching name in some list, and if it finds a match, retrieves a list of numbers, e.g.

1 4 7 10 2 5 8 11 3 6 9 12 13 14 15 16

... which will then remap the parameter numbers to line up the frequency controls as parameters 1, 2, 3 and 4; gain on 5, 6, 7 and 8; Q on 9, 10, 11 and 12. The downside of this simple approach is that it only works to swap numbers that are on the same 'page', and the same remapping will be active on all parameter 'pages', i.e. parameter numbers 17, 20, 23 and 26 will also change to line up as 17, 18, 19, 20. To work around this, I would need to dynamically change the number of parameters sent to/from the OSC control surface, to the total number of parameters, or at least to the highest parameter number (in the original order of the plugin) that I want to remap.

Storing such a simple number list per plugin as a text file, in a similar way as e.g. note name maps would be perfectly usable imho. And probably preferred by many users compared to putting xml files inside a .vst bundle (on Macs).

A benefit of the vstxml approach is that it could also work across different hosts, set once, work anywhere. Which is why this approach looked favorable, at least initially.

But in practice, vstxml does not seem ideal either. With some quick testing, I already crashed both REAPER and Ableton with such a modified .vst, so that may well be a decisive argument against using vstxml at all (if it works in REAPER but your plugins would be unusable with other hosts, things could easily become pretty messy). I should probably have thought of this before posting the FR as I did, but like BenK-msx says, however it's done!

[EDIT:] On further inspection, it seems that those crashes were not related to the .vst bundles including a custom vstxml file, but to the VSTmonitor.vst that came with the VST2.4 SDK; I had installed this along with the VSTParamTool.app for dumping plugin parameter names to xml files. Sorry for any confusion.

Quote:
Originally Posted by BenK-msx View Post
but personally i had thought of

[modifier]+clicking the parameters in reaper as a quick way to populate the 'device' page with parameters - ( how ever many params its set up for.)

for example last touched parameter works similarly so reaper can surely do it, this dynamic mapping could act in same way, acting as a buffer equal to the device's param number, so e.g the last four params you modifier+clicked with, would be mapped to page 1 param1,2,3,4

you could have 'assignments' saved per fx like we have with midi and default assignments like we do now, so you load the plug and its mapped how you like it or just do it on the fly as above.

+1 however its done!
I think you're combining a few clever ideas here, while I was starting with just one step at a time. Step one would be having some ability to reorder parameter numbers. Step two would be the ability to edit the order on the fly. Step three would be OSC support for changing them on the fly, for example following the approach you described using a 'last touched / learn' type of feature. Does that sound close enough to what you have in mind?
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ

Last edited by Banned; 03-12-2012 at 10:14 PM. Reason: added info on crashes during testing
Banned is offline   Reply With Quote
Old 03-12-2012, 06:26 PM   #437
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Btw, with regard to the ReaEQ example, not all of its parameters can be controlled; especially (band) type / (band) enable would be very useful on order to set up an EQ section that is completely controllable from a control surface.

I think we can expect a bunch of control-related FRs and bug reports coming up when more users are going to use REAPER's new OSC features. For another example, ReaDelay's lowpass and highpass filter frequencies should be scaled much better: imho they should follow the most used and generally accepted system for dividing the audible frequency spectrum in 128 discrete steps: the scale used for MIDI notes using equal temperament.

I guess it's best to put up a separate FR for such issues in the tracker, since they are, technically speaking, not strictly related to OSC (and worthwhile FRs in their own right)?
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-12-2012, 06:52 PM   #438
BenK-msx
Human being with feelings
 
BenK-msx's Avatar
 
Join Date: Jun 2008
Location: Whales, UK
Posts: 5,625
Default

indeed all makes sense, i was simply thinking of end use rather than the journey, being non coder man..

the quicker the method the more use it'll get of course, seems nice and easy to (mod)click a bunch of params and have them appear on the controller - right now we can click one param and it appear, and it would be a bit like an osc-type development of 'learn last touched parameter' - to get that to four or 8 isn't that hard maybe.

perhaps devs will consider and save you some fiddling.

the example of being able to control reaEQ is a good one, as 1st 3 params control just 1 band, can get non-useful v quickly.
BenK-msx is offline   Reply With Quote
Old 03-12-2012, 07:08 PM   #439
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

Quote:
Originally Posted by BenK-msx View Post
indeed all makes sense, i was simply thinking of end use rather than the journey, being non coder man..

the quicker the method the more use it'll get of course, seems nice and easy to (mod)click a bunch of params and have them appear on the controller - right now we can click one param and it appear, and it would be a bit like an osc-type development of 'learn last touched parameter' - to get that to four or 8 isn't that hard maybe.

perhaps devs will consider and save you some fiddling.

the example of being able to control reaEQ is a good one, as 1st 3 params control just 1 band, can get non-useful v quickly.
Actually, I think such a learn feature would be even more useful when used with Track FX controls, because they already allow us to mix and match parameters in an arbitrary order, but also mix and match across several different plugins within the track. Unfortunately however, I still see no way of getting feedback for them, which currently makes them much less interesting to use - otherwise they would be my favorite group of parameters to control by leaps and bounds. So I still hope we will somehow be able to get that at some point.

The fiddling can be quite fun btw. But I'll gladly find something else to fiddle on for sure (did I mention parameter value rescaling yet? I also have a neat working proof-of-concept for that. )
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-12-2012, 07:50 PM   #440
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default transport functions

When playing with the transport functions via OSC, I found out that they function quite differently than the GUI buttons with the same names. I assume that there must be some reason why play/pause/stop seem to be related in a way that is less than straightforward, to say the least. For a simple example, look at what happens when you send /play 1 twice in a row: the first time REAPER starts playing, the second time it pauses. I get feedback for /play, /pause and /stop.

If there is anyone who can explain how they are supposed to work, or even better, figured out how to replicate the complete transport panel using the default OSC configuration, I'd really appreciate a bit of explanation before trying to hack one together myself, as I'm not that familiar with the transport functions in REAPER at all (I typically don't use much more than the space bar to toggle start/stop and 'w' to rewind).
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned 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 01:26 AM.


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