What's new

Open Stage Control (Tutorial) - An alternative to Lemur and TouchOSC

Luke Davoll

New Member
I'm using Remote Control Editor now. There is 512 slots so large enough for what I'm looking for. I don't use it on VEP yet. No needs to send something to Cubase etc... It does check the value every time I select a track.

EDIT: Actually, it's 127 the limit because of midi. But there is 8 slots in the Quick Controls. Just have to create more "check". It should be something like 8x127 possibilities.
Thanks so much for your previous reply. Would you please add some more details how you get cubase to send a message to osc when a certain track is selected? Is it quick controls? What kind of parameter is needed? Do I need a transformer on my midi track? Or what do I do with the remote control editor!? A little confusing! But I thank you for taking the time to help us all out. This looks like metagrid on steroids!
 

Luke Davoll

New Member
Ok, so I realised I have to make cc 126 in the quick controls and can then choose a value for the cc which will allow an articulation page to be shown in open stage control. (e.g. 20)

2 problems:

1)Does this limit us to only 127 pages of articulations? Is there a way to get more?

2) for some strange reason, as I click on the midi track after selecting a different one, the selected cc 126 value (e.g. 20) keeps being reduced by increments of 1. Very strange...

Thanks for your help. I won't give up on this!
 
OP
Manaberry

Manaberry

Active Member
Quick question for you. Have you ever manage to have a Fader display the Meter value? ie, the selected track, or let say I want to have my main out (master) displayed. I can control it easily, but can't manage to have the current output value to display in the meter bar. There isn't much doc so I'm wondering if I'm missinf something..
I haven't look yet into meter value yet, I can't be helpful for this sorry : <

@Luke Davoll Here is how I achieve the "id by track". Should be easier for you to understand the process (a bit tricky at first sight I have to admit).

(Values on the screens are wrong, don't pay attention to them)



Params value goes from 00 to 1.00. It's 101 units instead of 127. Sometimes O-S-C round the number up or down if the value is decimal. To make it right, be sure to set max value to 101 in Cubase (second window in the screen).
 

Grizzlymv

Active Member
Alright. So I finally managed to complete it. I replicated (albeit bonified it a bit) my old TouchOSC into Open Stage Control, and I must say it is MUCH of an improvement. I wished Cubase would be more friendly with OSC protocol though. Some things are 2 way conversation, but sadly some are one way so no way of getting feedback from the DAW. :(

Also, I had to poke the creator of the product to get some hints on how to use some of the widgets. For intance, if you want to use the XY pad (quite useful for CSS to control instensity + vibrato, or for Embertone intimate strings to control Vibrato speed and amount), it work a bit differently than the others. In my case, I used faders for CC1, CC11, CC14 and CC2 (as well as the pitch). Then I added a PadXY which replicate CC1 (X) and CC2 (Y). To achieve this, it is quite simple, but not that obvious.

So, to get the CC faders be updated by the PadXY value, you'll have to reference it in each. So, the value field for fader_cc1 would get #{@{padxy}[0]} for the first value, which is X axis. Then for fader_cc2, I'd have #{@{padxy}[1]}. That's it. Then, to get the other way around (have the pad being updated by moving the faders), you'll have to reference them in the pad value by doing so: [@{fader_cc1},@{fader_cc2}] that's it. Then I use the preArgs only on the faders so they each update their appropriate CC value.

Now, I need to figure out how to get feedback from Cubase to know which expresion maps are available on the selected track. For now, I show all articulation predefined, but would be great to only show supported (ie, the Bass on CSS doesn't have harmonic, but the rest does. so would be great to hide it when I'm on the Bass track).

If anybody have any idea how to achieve that, would be great.

And what do you guys think about asking for a double-tap default action for the knob and faders (maybe other controls would benefits too?). For instance, if you play with a knob, that is assigned to a Pan value, you'd want the middle to be the Center, so double-tapping it would send the specific value rather than fiddling arount. As of now, I created a button beside it to do that specifically. I would think the same with a fader, especially one used for volume where it could go to 100 (0), or any CC could get to your defined value on double tap (some kind of initialization). Or maybe it aready work, but if so I haven't found it.

Here's what it looks like (still need some polish tough).
 

Attachments

OP
Manaberry

Manaberry

Active Member
Nice template @Grizzlymv ! Looks full or shortcuts and features. Very well done. I have to add more buttons on mine.
For the articulations thing, have you tried what I have done? (see previous messages)
Of course this is a bit of configuration to set every articulation for every track with the specific ID but it does the job on my side.
 

Grizzlymv

Active Member
Nice template @Grizzlymv ! Looks full or shortcuts and features. Very well done. I have to add more buttons on mine.
For the articulations thing, have you tried what I have done? (see previous messages)
Of course this is a bit of configuration to set every articulation for every track with the specific ID but it does the job on my side.
Yes I did try it out. But since my expressions maps were already all set up, it represented quite a lot of work to adapt it, if I got it right. I was hoping for a simpler way, but as Cubase is already limited in it's support for Oscar, I wasn't setting my expectations too high. I guess I can manage around it since most libraries are using similar set of articulation. Or, alternatively, I could duplicate what I did for cinematic studio series so far, and replicate it in different tabs so I can adjust specifically per library . But that would involve more tap on usage. I'll see how it goes .
 

Grizzlymv

Active Member
So here's what I did for cinematic studio series. In brown, what's common with all. In Red, what's for brass only, and in blue, what's for strings only. So the downside is that only in some specific cases (ie, basses doesn't have harmonics) so it would still show up, but I can live with that.

In any case, thanks a ton for your assistance and for providing your template. Helped quite a bit to figure out how it works. ;)
 

Attachments

zig

New Member
Hello I try to make it work on mac and I am not sure I understood the installation process.

Is there a specific setting to make in the midi & audio setup panel? for the moment I create a bus "VIcontrol" in IAC. Any other setup to make in the network panel from midi setup?
I think the problem comes probably from a bad python installation on my part.
I get this message error

A mac user could help me solve that.
Thanks
Z
 

Attachments

OP
Manaberry

Manaberry

Active Member
Hello I try to make it work on mac and I am not sure I understood the installation process.

Is there a specific setting to make in the midi & audio setup panel? for the moment I create a bus "VIcontrol" in IAC. Any other setup to make in the network panel from midi setup?
I think the problem comes probably from a bad python installation on my part.
I get this message error

A mac user could help me solve that.
Thanks
Z
Hi.

Indeed, Python is making an error here. Make sure to uninstall and clean every python related folders and registey. I don't know anything about Mac environment so I can't redirect you to some specific manipulations to do. Feel free to contact the dev of O-S-C on the Github project by adding an issue post.

So here's what I did for cinematic studio series. In brown, what's common with all. In Red, what's for brass only, and in blue, what's for strings only. So the downside is that only in some specific cases (ie, basses doesn't have harmonics) so it would still show up, but I can live with that.

In any case, thanks a ton for your assistance and for providing your template. Helped quite a bit to figure out how it works. ;)
Very smart way to filter articulations! Might steal the idea at some point :emoji_eyes:
Always here to help people if I can :)
 

Harald Salaun

New Member
Hi Manaberry!

Thanks a lot for your very useful post! As i'm working on an o-s-c session for communicating with ableton live and starting to dig deeper, i'm wondering if there are some tutorials for getting more insight on how to use o-s-c?

E.g. how can I dynamically create faders by receiving an osc message? I already managed to send sysex message from my ableton remote script and convert it to osc messages via a custom-module to send track names to o-s-c widgets but now i'm stuck ... I read about /EDIT/GET but I have no clue where and how to implement this.

Do you have by chance any idea where i could find more in depth tutorials? The documentation on Jean-Emmanuels website ist great but maybe i'm not skilled enough yet to get everything right. ;)

Also if you have any tips for detailed infos, tutorials or documentation on midi remote script i would be very grateful!

Thanks!!!
 
OP
Manaberry

Manaberry

Active Member
Hi @Harald Salaun !

Unfortunately, there is no tutorial to get this easy. The docs from Jean-Emmanuel is very useful but yeah you have to get used to that kind of software/code/logical math to be friendly with O-S-C.

I've been using remotify.io to generate Ableton Remote script. Now they just published a brand new software to create a whole script based on an easy-to-use controller creator.

It's kinda pricey, but I'm sure it's very useful if you are looking for some serious template with O-S-C and Ableton.

(You can still use the limited version web based app for free)
 

Harald Salaun

New Member
Hi @Manaberry !

I won't give up so fast and keep giving o-s-c a try. (remotify is indeed kinda pricey) :) Maybe there is still hope for some video tutorials by Jean-Emmanuel or some other expert in the near future.

Thanks a lot for your quick reply!! :))
 

Luke Davoll

New Member
Hi @Manaberry

Would you please add some detail to the articulation set up. Your instructions were crystal clear and it is working, but I'm just not understanding. I've tried reading through the documentation, but it is not geared toward noobs.

The line @{Received ==3} I understand. If osc receives quick control parameter 125 with a value of 3, set the display etc. But is this all being set up in the generic remote in cubase? If I wanted to use a second slot to get more pages of articulations, is this set up in the generic remote too? How is the "check selected" part in the generic remote communicating with open stage control?

Is there a script running in open stage control? Or is it all rather simple osc messages and I'm missing something?

I'm a bit confused and would value some insight. Thanks so much.
 

Mihkel Zilmer

Senior Member
Thanks for the tutorial @Manaberry!

I just spent a bit of time looking at O-S-C and it's pretty impressive. I have some questions though, perhaps you'll be able to help? I'll also reach out to the developer to get his opinion.

Regarding responsive articulation set up - my Lemur setup relies on hundreds of strings of data, each describing which articulation names are available per instrument.

Is there an option in O-S-C to either:
- Do something similar and store strings of data and assign them to button labels dynamically?
- or alternatively, is there a way to dynamically change top / left positions depending on how many other elements are displayed? This way one could have each button label set to a specific articulation name and respond to multiple different input signals, but unless layout is somehow managed dynamically this would be a nightmare to set up.

If neither is possible then it brings me to a final question - is there an upper limit to how many widgets you can have? I'm looking at thousands of articulations, if each needs a separate button could this be too much for O-S-C?
 

Mihkel Zilmer

Senior Member
The line @{Received ==3} I understand. If osc receives quick control parameter 125 with a value of 3, set the display etc. But is this all being set up in the generic remote in cubase? If I wanted to use a second slot to get more pages of articulations, is this set up in the generic remote too? How is the "check selected" part in the generic remote communicating with open stage control?
Each Quick Control slot would need a new line (and new CC number) in the generic remote. "Check selected" responds when QC slot 1 has a value, when you start using a QC slot 2, you'll want a unique CC number for it and new lines in the generic remote referring to QC slot 2.

I'm new to O-S-C so not sure if there is a more elegant way to handle it on the other end, but it looks like you would also need a new widget per quick control, set to receive the value of that CC. For that you can use PreArgs [channelNumber,CCnumber]

In script @{Received ==3} - "Received" refers to the widget name and its value. Make a new widget, call it Received2 or whatever and use its name in the script.

There might be a more streamlined solution, though..
 

Luke Davoll

New Member
Each Quick Control slot would need a new line (and new CC number) in the generic remote. "Check selected" responds when QC slot 1 has a value, when you start using a QC slot 2, you'll want a unique CC number for it and new lines in the generic remote referring to QC slot 2.

I'm new to O-S-C so not sure if there is a more elegant way to handle it on the other end, but it looks like you would also need a new widget per quick control, set to receive the value of that CC. For that you can use PreArgs [channelNumber,CCnumber]

In script @{Received ==3} - "Received" refers to the widget name and its value. Make a new widget, call it Received2 or whatever and use its name in the script.

There might be a more streamlined solution, though..
Amazing. Will look at trying it out later on. Thanks so much for your insight. It's starting to make sense. I'd be interested to see a screenshot of your osc layout...
 
OP
Manaberry

Manaberry

Active Member
@Mihkel Zilmer I'm pretty sure there is a way to do what you want (like the top/left position stuff) but not sure how yet.
I guess there is no limit of widgets, but like everything: the more you have, more power is needed to make it run/load.

To be honest, the CSS Display method rightnow is okay (33 sets on my side), but now perfect indeed.
I really love O-S-C and what it brings to my workflow. I'm sure we can create here, on this thread, a conceptual widget to achieve articulations work and then submit to Jean-Emmanuel to see if he can do something with it. I'm sure he would like to help us if we bring something relevant :)

What would be the best articulations widget for you? (I guess a simple "table/node" system with few inputs like ID, name, cc value, category should do the job).

@Grizzlymv any input for a conceptual articulations widget?

Thanks guys for your interest into my tutorial and this software. Happy to see I did right sharing this to you!
 

Mihkel Zilmer

Senior Member
The ideal articulation widget.. hmm...

- An array of buttons, dynamically displayed based on MIDI received from DAW.
Personally I use up to 60 buttons per instrument.
- Labels for these buttons are also dynamically displayed, and contain articulation names, which are different for each instrument.
- A clever method of storing the names. Something that's fast to create and edit (not 60 individual text fields, maybe a string with separators instead?)
- Subcategories? To divide the articulation button array into short / long for example? Subcategory labels should respond dynamically.
- Individual colour options per button, also dynamically changed.
- MIDI output on button pressed. Note On, Program Change and CC to cover all cases.

That's about it :)
 

Grizzlymv

Active Member
The ideal articulation widget.. hmm...

- An array of buttons, dynamically displayed based on MIDI received from DAW.
Personally I use up to 60 buttons per instrument.
- Labels for these buttons are also dynamically displayed, and contain articulation names, which are different for each instrument.
- A clever method of storing the names. Something that's fast to create and edit (not 60 individual text fields, maybe a string with separators instead?)
- Subcategories? To divide the articulation button array into short / long for example? Subcategory labels should respond dynamically.
- Individual colour options per button, also dynamically changed.
- MIDI output on button pressed. Note On, Program Change and CC to cover all cases.

That's about it :)
All great ideas there. Love that list!. However while this would be the dream setup, I wonder how much of this is achievable. Not just from O-S-C perspective, but from the DAW itself. For instance, I'm using Cubase and I already hit the wall on a few things with OSC. For instance, I can mute or solo a track and Cubase Will send back the signal to O-S-C perfectly, but then if I want to arm a track or monitor it, then it just received the signal. Never send it back to O-S-C, because cubase doesn't support it. So I'm sure O-S-C could do a lot of things, but in the end we have to play with the DAW's limitations...

So, are we looking with what would be the ideal process, or what is technically possible? ;). Also I'm guessing each DAW support osc up to a different level, which won't make things easier .
 
Top Bottom