What's new

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

JoeHidden

New Member
Hey folks,

I think i am nearly through my todo list. The Version 0.4.5 works well and I really hope I forgot nothing in the Rar archive:)

I added a set of Cubase tracks. It is easier to figure out how the track switching an articulation management works if you have an working example. Just follow the readme.

Let me know what you think - i am happy for feedback and new ideas. I guess there is lot more possible :)

Template Control 0.4.5.PNG
 

Attachments

Jonathan Moray

Professional Procrastinator
Hey folks,

I think i am nearly through my todo list. The Version 0.4.5 works well and I really hope I forgot nothing in the Rar archive:)

I added a set of Cubase tracks. It is easier to figure out how the track switching an articulation management works if you have an working example. Just follow the readme.

Let me know what you think - i am happy for feedback and new ideas. I guess there is lot more possible :)

View attachment 22629
Amazing work. I will take a look when I get the time, but it looks really good so far.
 

DMDComposer

Member
Joe, what an amazing job. I'm just playing through some of it now.

What does the X|G|D|P|A buttons do on the visibility control?

Also, did you just set up in your Generic Remotes the following?
1569019308937.png1569019296306.png

Just trying to copy what you did and follow your notes so I can fully test what you created. Trying to get your "selected" tracks and visibility control to function.

Thanks Joe.
 

JoeHidden

New Member
Hey @DMDComposer,

you're welcome :)

The XGDPA is for the VSL Dimension Libraries. You can choose what Tracks are visible in Cubase - X=None, G=Groups, D=Desks, P=Player, A=All :)

You need the two generics remotes configured like this:
a.PNGb.PNG

Code:
--midi oscTraVisIn:3,-1 oscTraVisOut:-1,2 oscTraCtrlIn:5,-1 oscTraCtrlOut:-1,4 oscInstIn:9,-1 oscInstOut:-1,8 oscRecallIn:7,-1 oscRecallOut:-1,6
The oscInstr is the third port, which should be included in All Midi. All Messages that needs to reach the instrument, vep, vst are send through this port.

The reason for individual In and Out loopback ports is to prevent feedback loops. So all ports are named from the osc perspective. That means, that the oscOut is an cubaseIn. And only the oscInstOut should and oscTraCtrlIn be in 'All Midi'. oscTraCtrlIn is needed for the fact that cubase needs to see a message to transform it. A little weird, but that's how it is. In Cubase it should look like this:

Cubase Midi Ports.PNG

In the debug log from Osc you should see the two messages after switching the track:

Code:
MIDI received: CONTROL_CHANGE: channel=1, cc=126, value=127 From: midi:oscTraCtrlIn
...
MIDI received: CONTROL_CHANGE: channel=1, cc=117, value=4 From: midi:oscRecallIn
The first message is the track change message from Cubase before the transformation on the individual track. The second message cc117 is the track change to value 4 message out of the midi transform. That leads us to this track definition from the custom module:
Code:
4: { 'trackname': 'VSL - Synchron Strings - Cellos', 'trackarticulations': [] },
The visibility control is a bit more complex then normal, since the "all, none and default" button change a lot of the other buttons.

BR Joe
 
Last edited:

DMDComposer

Member
Perfect mate!. Everythings up and running and almost working to what I believe you play around with. One last question I believe is what ports am I missing here? So the select visibility will function I imagine?
I understand the first port is "oscRecallIn" however, where is your second "Input 1 or 2" coming from?

1569030561796.png
 
Last edited:

JoeHidden

New Member
Good morning,

that is another special thing for the dimension libraries from vsl. The big picture is:

These buttons are used to enable or disable instruments / plugins inside of Vienna Ensemble Pro. It it quite cool to have a fast loading and large template in VEP.
c.PNG
So the first and second button sends cc 111, which force VEP to enable or disable one instrument which is corresponding to to selected track in cubase (like only the Violas from a string section). The second button sends cc 112 which is wired to the corresponding section in VEP. That means, if you pushed the Grp button an the same Viola track it enables or disables Violins 1, Violins 2, Violoas, Celiis & and the Basses. That is quite useful.

Now to your question. The Dimension Strings come with 8 individual recorded players. So if you use the P on the upper mentioned XGDPA Button you got 8 tracks in cubase and 8 plugins in VEP. One for each player. If you want to have the same behovior like my example of the string section in the last paragraph, you have to enable 8 individual tracks by pressing the VEP ON Button. Here comes the second transformer in the game. It exists only on player track 2-8 and reroute the cc 111 command to the player 1 track. Then the command force VEP to enable all invidiual players from this instrument. The same mechanism is also implemented for desks (transformer on desk 2-4) and groups (transformer on group 2).

d.PNG

I hope that makes it a little clearer?

BR Joe
 

Ryan

Senior Member
So, I'm replacing this with touchOSC on my ipad. I have an Acer 27" touchscreen that I would use. I've been looking trough some of the different layouts people use within this thread. There is a lot I like, but one function that I really would love to have is the function Manaberry uses for articulations. I see that the articulations for each track is displayed on the touchscreen automatic. Is this a very hard function to implement? I would like to use the template from JoeHidden, but change it for my needs where articulations on each track get displayed instead of the vienna inst. part. Possible or not?

Best
Ryan
 

RoWi

New Member
Hi Manaberry.

First of All, Thank you so much for your OpenStage Control tutorial. I followed your tut step by step. Unfortunately I can't list Midi Ports inside OpenStage Control.
I would really appreciate to receive some hints to solve this problem.

I am using a Client/Server instance.

Client WIN 7 machine, Cubase
Server WIN10 machine, Vienna Ensemble Pro 7


Server
I installed Python 3.7.4., the python-rtmidi package and rtpMIDI.

I downloaded and installed OpenStage Control v0.48.0

Client
I installed rtpMIDI.

rtpMIDI on Client and Server are communicating correctly.
To fill in the midi field I can not list midi devices as you showed in your tutorial.

Thank you so much in advance. ;)

Many greetz,

RoWi
 
OP
Manaberry

Manaberry

Active Member
So, I'm replacing this with touchOSC on my ipad. I have an Acer 27" touchscreen that I would use. I've been looking trough some of the different layouts people use within this thread. There is a lot I like, but one function that I really would love to have is the function Manaberry uses for articulations. I see that the articulations for each track is displayed on the touchscreen automatic. Is this a very hard function to implement? I would like to use the template from JoeHidden, but change it for my needs where articulations on each track get displayed instead of the vienna inst. part. Possible or not?

Best
Ryan

Hello Ryan,

You should find some process explanation and files starting from this post. It's quite simple to implement. There are just a few workarounds to understand and set up.



Hi Manaberry.

First of All, Thank you so much for your OpenStage Control tutorial. I followed your tut step by step. Unfortunately I can't list Midi Ports inside OpenStage Control.
I would really appreciate to receive some hints to solve this problem.

I am using a Client/Server instance.

Client WIN 7 machine, Cubase
Server WIN10 machine, Vienna Ensemble Pro 7


Server
I installed Python 3.7.4., the python-rtmidi package and rtpMIDI.

I downloaded and installed OpenStage Control v0.48.0

Client
I installed rtpMIDI.

rtpMIDI on Client and Server are communicating correctly.
To fill in the midi field I can not list midi devices as you showed in your tutorial.

Thank you so much in advance. ;)

Many greetz,

RoWi

Hi @RoWi
You are telling me that you don't see anything when you click on "List devices" or the fact that you don't see your custom midi port on the list? You should see at least one entry in the list (the default windows one)



Happy to see such interest in my tutorial and O-S-C.
 
OP
Manaberry

Manaberry

Active Member
If you need further help to use those files or set up them correctly, feel free to post here ;)
 

Ryan

Senior Member
ehr... How do you get the xy-pads to work? Was thinking of making a new tab for Zebra2..
 

RoWi

New Member
Hi Manaberry.
Thank you for your effort helping me. I really appreciate that.

My win 10 server is a blank installed WIN10 Pro version.
Only installed applications are e-licenser en i lok licenser and Vienna Ensemble Pro 7. And of course rtpMIDI.
Afterwards I installed your tutorial:
1. Python 3.7.4
2. pip install python-rtmidi package
3. rtpMIDI (Setting your sessions. Ports 5006 (slave) and 5008 (master))
4. Downloaded OpenStage Conntrol v0.48.0
5. Installed OpenStage Control.

That's all there is installed.

As you can see in openstage-2.jpg I initiated a device list. The window below Save and START stays empty. (?)
In openstage-1.jpg send= 192.168.1.2:8000. That is my Master PC.
My slave computer (server) is 192.168.1.16.

In Device Manager I noticed under Sound, Video en game controllers, a teVirtualMIDI - Virtual MIDI Driver x64. I guess this device is installed by rtpMIDI.

It doesn't make any sense to me.

Greetz,

RoWi
 

Attachments

Jaroslav

New Member
Hi @Manaberry

Thank you for putting this together!

I can't get midi ports to work though. I'm using single PC, tried sending to my local IP and to leave "send" field blank.

As midi port I'm using LoopBe. I copied name of the midi device from the RMB list in OSC (LoobBe Internal MIDI)

1569918645687.png


1569918676285.png

In "target" for the button I have "midi:LoopBe Internal MIDI"

1569918836632.png

And when I click it, it gives an error "unknown output":

1569918878431.png
 
OP
Manaberry

Manaberry

Active Member
ehr... How do you get the xy-pads to work? Was thinking of making a new tab for Zebra2..
You can get data from XY-pad by using #{@{PADWIDGETID}[AXIS]}
Usually, I link an XY pad to two faders. Each fader sends midi when their input value change through the pad input. In the documentation, the pad axis is an array. You just have to replace AXIS by 0 to get X, or 1 to get Y.

Here is the doc about XY.

SCreenFaderXY.jpg



@RoWi I'm reviewing your issue. I will get back to you once I've figured out something.

@Jaroslav Weird indeed. Can you please provide a screenshot of your LoopBe configuration?
 
Last edited:
Top Bottom