Old 03-06-2014, 09:18 PM   #1
Sid Chip
Human being with feelings
 
Sid Chip's Avatar
 
Join Date: Sep 2007
Posts: 183
Default Reaper OSC

I've been working with Reaper OSC interface for the past week, after only finding out about it a week ago.

I wanted to implement a HUI and I thought to myself "I bet Reaper implemented some sort of open method of control surfaces" - Checked and BAM -OSC-. Send commands via UDP instead of looping MIDI hacked Mackie HUI back? SOLID. I'm interfacing with another open implementation called SharpOSC so I didn't even have to write a parser!

Just wanted to say a big thanks for OSC implementation! And a huge thumbs up. I haven't had this much fun coding in a long time. Just adding new features and features. After I get basic control functionality in and I start to think "Hmm, I wonder if I can get reaper to do.... this?" The /action/# command comes to the rescue. The latest being /action/41743 (refresh control surfaces) when I restart my wedge app it refreshes my control surface.

I wish I had have read the comments in the default ReaperOSC. I started out worrying about maintaining virtual fader<>track ID's but /bankswitch with proper DEVICE_TRACK_COUNT configured, takes care of this for me!

Rock on,
Sid
Sid Chip is offline   Reply With Quote
Old 03-07-2014, 06:57 AM   #2
Banned
Human being with feelings
 
Banned's Avatar
 
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
Default

You're lucky that you're late to the party, pal. I remember nagging schwa on IRC like five years ago for OSC support in REAPER, when he replied (paraphrasing): but... why? If it's supposed to be something like MIDI, then is there even *any* synth or controller out there that supports it? And tbh, the answer to that question *still* is quite a hard one...

So yeah, I totally agree, big thanks, rock on, thumbs up for the Cockos devs!! <3

PS: I guess we should also be thankful that Justin apparently had some crappy old hardware.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2014, 09:40 AM   #3
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

im noticing OSC in more and more devices now.. i think the growth in tablets and apps like touchOSC and Lemur is directing manufacturers to implement it their devices a lot more.. most newer digital consoles have OSC..

would be good to see more support for it in reaper.. to easily create OSC commands on JS faders which can run seperate from the wildcard naming in the config file.. load dummy faders, right click and type an OSC command you want.. nice and easy..
EcBaPr is offline   Reply With Quote
Old 03-07-2014, 10:58 AM   #4
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 EcBaPr View Post
im noticing OSC in more and more devices now.. i think the growth in tablets and apps like touchOSC and Lemur is directing manufacturers to implement it their devices a lot more.. most newer digital consoles have OSC..
Still, something like a simple keyboard that 'speaks' OSC is still kind of exotic. About as rare as one with USB only, without plain MIDI output, I guess. I suppose that allowing for infinitely flexible configuration more or less implies that all the important stuff will happen on the software side. Simple hardware that does not require any configuration and 'just works' out of the box is simply not an option anymore. But yeah, things have certainly been moving forward in the last years.
Quote:
Originally Posted by EcBaPr View Post
would be good to see more support for it in reaper.. to easily create OSC commands on JS faders which can run seperate from the wildcard naming in the config file.. load dummy faders, right click and type an OSC command you want.. nice and easy..
You can do that, sort of, by using MIDI Learn. You can't just type the desired address/command, but it's often easy enough to type that on the other end and send it. What's really missing there, is feedback. Simple tick boxes for send / receive / bidirectional in the MIDI Learn window, where are you? Right now, REAPER will only responding to incoming OSC messages for learned bindings, i.e. it does not provide feedback - same as for MIDI (and tbh, feedback for plain MIDI is probably much more useful for more people than for OSC).
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
Banned is offline   Reply With Quote
Old 03-07-2014, 12:10 PM   #5
EcBaPr
Human being with feelings
 
Join Date: Aug 2009
Posts: 402
Default

Quote:
Originally Posted by Banned View Post
You can do that, sort of, by using MIDI Learn. You can't just type the desired address/command, but it's often easy enough to type that on the other end and send it. What's really missing there, is feedback. Simple tick boxes for send / receive / bidirectional in the MIDI Learn window, where are you? Right now, REAPER will only responding to incoming OSC messages for learned bindings, i.e. it does not provide feedback - same as for MIDI (and tbh, feedback for plain MIDI is probably much more useful for more people than for OSC).

I have been trying to use Reaper in reverse, to send OSC and control other devices. my goals been to use the timeline to automate RME TotalmixFx with envelopes etc.. The problem i hit is reaper config files are all wildcard naming.. I know that makes sense to syncronise a large control surface to control reaper, but if you just want a couple of dummy fader on arbituary tracks to send specific OSC commands i dont think you can isolate those faders from the wildcard naming..

For instance i was trying to find a way to send /ReverbReturn and /MainMuteFx from a JS fader.. totalmix doesnt have anyway to make config files like reaper with its OSC commands so there is no way i could see to make a dummy fader send /MainMuteFx while other reaper FX maintained the normal naming system..

I saw the midi learn but it seemed to only work as input to control reaper and didnt send the learnt command back to the device.. Is that what you mean by feedback ? If so i would love to see this included also.
EcBaPr is offline   Reply With Quote
Old 03-07-2014, 03:15 PM   #6
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 EcBaPr View Post
I have been trying to use Reaper in reverse, to send OSC and control other devices. my goals been to use the timeline to automate RME TotalmixFx with envelopes etc.. The problem i hit is reaper config files are all wildcard naming.. I know that makes sense to syncronise a large control surface to control reaper, but if you just want a couple of dummy fader on arbituary tracks to send specific OSC commands i dont think you can isolate those faders from the wildcard naming..

For instance i was trying to find a way to send /ReverbReturn and /MainMuteFx from a JS fader.. totalmix doesnt have anyway to make config files like reaper with its OSC commands so there is no way i could see to make a dummy fader send /MainMuteFx while other reaper FX maintained the normal naming system..
Hmm, iirc I solved a very similar issue by simply using multiple OSC control surface configurations; a 'general' one using the wildcards, and then another for each dummy JS.
Quote:
Originally Posted by EcBaPr View Post
I saw the midi learn but it seemed to only work as input to control reaper and didnt send the learnt command back to the device.. Is that what you mean by feedback ? If so i would love to see this included also.
Yeah, that's exactly what I meant. The MIDI/OSC Learn approach (currently) seems to assume that you want to control REAPER remotely, while the 'control surface' approach seems to be intended for bidirectional control messaging (although it may not be very clear as to what functionality is supported in which direction). Between the very different sort of use cases that are possible with OSC (like, using REAPER to control something else and/or using something else to control REAPER), it may be hard to find a adequate solution for many of our needs and desires.

I think we need to think and discuss a bit more about what exactly is missing, so we can put up some appropriate FRs. I would guess the main problems with having REAPER respond to and/or send parameter changes using some automagically configured human-readable format, e.g. "FX_PARAM_VALUE n/{track name}/{effect name}/{parameter name}/" are:

(1) track / effect / parameter names are not guaranteed to be unique in any way; and

(2) how to prevent 'flooding': it may not be desirable to have REAPER send OSC messages for *every* parameter on every plug-in on every track.

Problem (1) could perhaps be solved by using the track / slot / parameter numbers as prefixes, e.g. "FX_PARAM_VALUE n/{@track name}/{@effect name}/{@parameter name}/".

And of course problem (2) explains why the OSC 'control surface' approach uses the concept of *banks*, i.e. *limited* numbers of *adjacent* tracks / effect slots / effect parameters.
__________________
˙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:17 AM.


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