Topic: How can I control two UCX interfaces via OSC?

I have two RME UCXs connected to my laptop via firewire. Totalmix sees both of them, I get two windows displayed on my Mac, with the appropriate serial numbers, etc.

I'd like to control them from OSC but having experimented with both the TouchOSC and Lemur versions (as well as decoding what those apps actually send out and then generating the OSC messages from Max) I seem to only be able to control the first TotalMix window.

How do I get the second UCX's TotalMix to respond to OSC messages?

Thanks,
D

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

2 (edited by ebulb 2014-01-29 13:45:14)

Re: How can I control two UCX interfaces via OSC?

I have not done this so im only guessing but i think you need to set each version of totalmix to use a different port in OSC setup. Then you need an app to send the commands to more than one port.. I know touchOSC cannot do this. I am not sure about Lemur but the program that i know does it and does it really well is OSC commander.. It is Android though so if you only have ipad you are out of luck, (unless Lemur supports this feature)..

Also bare in mind if you want to control two versions of totalmix from one tablet layout your commands will be duplicated so if you raise master volume on one it will mirror on the other.. If this isnt what you want and you want totally independant control of both i think you will need a second tablet.

Re: How can I control two UCX interfaces via OSC?

Actually, I tried changing the port in touchOSC to 7002 (which seemed to be the port that the second TotalMix was on) but that didn't seem to work. I don't quite understand some of the settings in the OSC set up in TotalMix.
Specifically
A) What do the numbers 1 through 4 mean in the menu option Submix linked to OSC Control
B) In the OSC section of Mixer Settings, what does the "Index" item mean, and again why are there 4 of them? I noted that I could associate a different incoming port with each of those numbers but if those numbers refer to TotalMix consoles, why are there four values?


However, my ultimate goal is NOT to use a tablet. I just need to know the correct OSC message to send (and where to send it) and I will generate the appropriate messages from my Max/MSP environment. Then I can associate that with a slider on one of my keyboards. I have been able to make this work for the first TotalMix with no problem. I just used Max to examine the OSC data that was being sent by touchOSC and reproduced it.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

4 (edited by ebulb 2014-01-29 16:41:45)

Re: How can I control two UCX interfaces via OSC?

there are 4 index tabs because totalmix allows 4 individual OSC controllers at once.. They all need to at least have a different port setting but it can be 4 tablets etc.. The numbers 1-4 in submix determine which controller will have priority selecting output.. As far as how that affects the controllers, i havent played with it too much because i have only ever had one device controlling one totalmix but its there to allow up to 4 different devices..

Also i just checked out Lemur, it looks like you can send OSC to multiple ports from it so if you are on iPad and have that app it would work contrary to what i said earlier.. Although if you are using max its altogether different..

Also another option with learning totalmix OSC is to just load the totalmix template in touchOSC editor, that allows you to click each faders/button and see the associated OSC command. And there is an excel file with all commands also if you search the forum you should find it..  If your PD setup is working thats cool but it those other options might be quicker for you to refer to..

Have you sent OSC from Max to totalmix already ? If so did you just use 127.0.0.1 as the IP ? I tried to send OSC from Reaper and i couldnt get it to work, i wasnt sure if i had the setup right.. I thought i did but for some reason i was suspicious that totalmix wasnt accepting anything from 127.0.0.1 as the loopback IP...

Re: How can I control two UCX interfaces via OSC?

I did a bunch more experiments this morning. At one point I did in fact manage to get both TotalMix interfaces to respond but when I quit TotalMix and reloaded it, I could not reproduce. The TotalMix "settings" seems to have problems actually remembering its settings.

By the way, watching the output from touchOSC in Max is precisely how I figured out how to create the appropriate OSC messages. However, I was not able to get touchOSC to control the second TotalMix device at all. If someone can give me instructions for how to do that, then I can probably get the rest of the way myself.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

6 (edited by ebulb 2014-01-30 04:05:36)

Re: How can I control two UCX interfaces via OSC?

have you successfuly sent OSC from max to totalmix ?

Re: How can I control two UCX interfaces via OSC?

Yes --- I can control the totalmix for the first UCX in my system (lowest serial number) from Max with no problem.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

Re: How can I control two UCX interfaces via OSC?

So does anyone know how to reliably address a specific Totalmix via OSC?

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

9 (edited by ebulb 2014-02-01 12:32:07)

Re: How can I control two UCX interfaces via OSC?

there shouldnt be any trick to it.. It should just a case of setting unique port numbers on each instance of totalmix and that's it.. one thing to check is that you have not inadvertently duplicated any ports across the two instances.. so when you open the first instance of totalmix make sure only one "in use" button is checked and note the in/out ports.. Then when you open your second totalmix, make sure only one "in use" is checked again and assign different in/out ports for the second instance..

If you have more than one "in use" option checked in the first instance it may have already opened port numbers that you try to use in the second instance without it being totally obvious.. Alternatively make sure the ports are substantially different so they dont accidently cross over..

If you are sure that is all set correctly and it still doesnt work then it could be a bug of some sort ?? I am not sure..

Also, when you say you have Max sending OSC to totalmix are you running Max on the same computer as totalmix, or is it a seperate computer ?

Re: How can I control two UCX interfaces via OSC?

I'm not sure what you mean by "open the first instance" ---- when I open TotalMix, two mixer windows are immediately displayed, one for the first UCX (lower serial number) and the other for the second UCX (higher serial number).

The Settings page does not seem to have separate sets of "in use" options for each of these. There is just one "in use" section. There are 4 possible values and each one does allow you to set different ports and I had set each of them to 7001, 7002, 7003, 7004 respectively.

However, when I sent Max OSC messages out to /1/Volume1 (for example), it didn't seem to matter which port I used, the fader on the first UCX was almost always changed.

Now, there was exactly ONE occasion where (somehow) it looked like it was working ---- sending /1/Volume1 to the first 7001 changed the slider on the first UCX and sending the same message to 7003  (not 7002, by the way, that still seemed to go the first UCX) changed the fader on the second UCX.

But when I quit TotalMix and restarted, I was NEVER able to make that work again. Now, I don't know whether TotalMix is not properly opening and closing its listening sockets.

I guess my next step is to install nmap on that machine and see what ports are open for UDP messages. But I shouldn't have to be doing that --- this stuff should just work.

I have sent OSC messages from Max on the same machine (using the target 127.0.0.1) and from a different machine (using the visible IP address of the target machine, in this particular case 192.168.23.141)

Ultimately, I need to be able to
a) use two sliders on one of my keyboards to adjust two channel strip faders, one on each UCX (by having Max listen to MIDI output from the slider and generated the appropriate OSC data) and
b) modify a lemur template I'm already using to control other data in Max (via OSC messages from Lemur) to do the same thing.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

11 (edited by ebulb 2014-02-01 14:59:52)

Re: How can I control two UCX interfaces via OSC?

ok, gotcha.. I dont have two interfaces so i am second guessing a bit.. when i said "first instance" I thought you may have to open a second TM manually (for the second UCX) and that it would run as two independant applications..

so if its one totalmix controlling two interfaces and accepting OSC from the same network ports, it begs the question when you send /1/mastervolume which master volume should it access ? The excel file with OSC commands doesnt mention anything about accessing a second interface and as their is only one reference to /1/mastervolume it would suggest its only ever going to control one master not two.

If your second UCX had a seperate instance of totalmix running with its own port setup it would be easy.. One interface is on 7001 and the second on 7002 and all the OSC commands stay the same because they just get sent to different ports.. Thats what i thought it would have been..

So if this is right it points in the direction that maybe OSC isnt implemented to support two interfaces properly ?  That doesnt explain how you had it working for a while though which is odd.. Would be nice if someone from RME could mention something about it..

I am hoping we see improvements with OSC support, especially a global addressing system so you can access any function from anywhere without the need for changing inputs/playback/outputs or banks etc.. That would be a big help..

As a side suggestion if you only need to control a fader, im pretty sure that can be done direcly from midi, so you may not need to convert to OSC in max.. Its possible midi wont access the second interface either but might be worth a go if OSC doesnt work.

When you say you have max controlling totalmix on 127.0.0.1.. i havent been able to get that to work.. I am running puredata and i can get it to start/stop reaper with 127.0.0.1 but when i try and send mainMuteFx to totalmix from puredata it doesnt work.. i'll try again maybe it was user error.

Re: How can I control two UCX interfaces via OSC?

Was never able to get MIDI working on it --- same issue, don't know how to address it.

When I decided to buy these (upon the recommendation of someone else in my band) I was told that RME support was amazing --- so far, with my questions to date, they have been incredibly unhelpful

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

Re: How can I control two UCX interfaces via OSC?

Sorry, not a PD fan --- looked at it from time to time (indeed last time I looked at it was just a couple of weeks ago) and I find it painfully horrible compared to Max. I know it's free but if you're doing anything serious, Max is worth the investment. My entire live keyboard rig is supported by a heavily customized Max environment and I just wouldn't be able to do it with PD

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

14 (edited by ebulb 2014-02-01 17:35:44)

Re: How can I control two UCX interfaces via OSC?

there is a basic midi control description written in the manual.. its mentions the formula used for midi CC mapping to each channel.. i dont fancy your chances of getting control of the second UCX with it but worth a shot i guess..

Im not interested in PD or max really, it was just something i kept seeing people mention so i checked it out..  All id like to do is send OSC command mainMuteFx to totalmix from reaper and possibly automate some faders, but its proving to be very difficult to accomplish.. i have gotten fader control with midi from reaper but no luck muting FX.. I havent actually had any luck getting OSC into totalmix from any another software application, i initially tried to do it with reaper and no luck.. Then i downloaded PD just to test that function and still no luck although i can get PD to send OSC to reaper start/stop etc.. 

i recall some previous posts on here with people asking for "midi learn" in totalmix.. that and global OSC addressing would be good additions..

Re: How can I control two UCX interfaces via OSC?

Yes, I saw the description --- but again, it only talked about ONE interface. It seemed like I would need to attach a separate virtual MIDI port to the second TotalMix but as with the OSC stuff, I couldn't see any way to do that.

MIDI Learn would useful if you want to connect your own physical slider from a control surface directly to Totalmix and you don't have any software that can convert what your slider sends out into what Totalmix needs to see.

On the other hand, it's very easy to do this kind of conversion with Max (and probably PD, it's just messier to set up MIDI in PD than in Max) or with free programs like MidiPipe.

I'd much rather RME make it clear how to address multiple RMEs from OSC and/or MIDI, fixing any issues along the way.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

16

Re: How can I control two UCX interfaces via OSC?

There seems to be something basically wrong in your setup. With two units connected it is not expected to open two TM FX windows. There should be only one window, so close one. In the upper right list of interfaces select one, then use the F3 - OSC dialog to type in the correct values. After that go to the upper right again, change to the other interface, open the F3 - OSC dialog and type in the correct (different) values. That way it should work and allows to use different settings for the interfaces.

If you then want to have two windows, one for each interface, you can do so via Ctrl-N.

The index is explained in the manual and relates to the use of multiple remotes with ONE interface.

Regards
Matthias Carstens
RME

Re: How can I control two UCX interfaces via OSC?

MC wrote:

In the upper right list of interfaces select one, then use the F3 - OSC dialog to type in the correct values. After that go to the upper right again, change to the other interface, open the F3 - OSC dialog and type in the correct (different) values. That way it should work and allows to use different settings for the interfaces.

That makes sense and is what you would expect.. seperate port setup for each interface..

Re: How can I control two UCX interfaces via OSC?

It would make perfect sense except that every time TotalMix opens, it ALWAYS displays both devices, in two separate windows.

So I am guessing that there is a bug in the Settings dialog where the OSC setup part doesn't actually know which TotalMix one is trying to configure if both windows are open. Or perhaps it's defaulting to whichever TotalMix window was last highlighted --- that might actually explain how I managed to send OSC to the second TM FX once but never again.

I will try this experiment in the morning (and thank you for the suggestion) but I think that the Settings dialog should probably display (and/or let you select) which TM FX unit is being configured.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

Re: How can I control two UCX interfaces via OSC?

dhjdhj wrote:

It would make perfect sense except that every time TotalMix opens, it ALWAYS displays both devices, in two separate windows.

yes but you should be able to get an idea of which one is selected if you play around with it.. Two window displays shouldnt make any difference as long as their is a way of selecting each interface for the settings. It shouldnt be hard to work out if you select one interface in the list, change a setting and then select the other interface from the list and look at the previous setting you just changed.. If its different you know you are switching between two devices.

the concept of having each device setup with seperate ports is the only way you could envisage this working and remaining intuitive.. Having two devices accepting OSC on one port and then having two master faders and only one OSC command makes no sense.. hence my original suggestion of selecting each "instance" first to setup ports.  in this case the "instance" is selected via device list..

20

Re: How can I control two UCX interfaces via OSC?

Or you just open your eyes wink

The title bar of the TM FX window has name and number of the device in it.

And it should be quite logical that when you exit TM FX with one window open per device, it will open those two windows again on next boot.

Regards
Matthias Carstens
RME

Re: How can I control two UCX interfaces via OSC?

Oh dear, silly me --- didn't realize it was my fault.

If you open several MS Office Documents, or you open several images in Adobe Photoshop, or indeed you open more than one "document" in essentially any multiple-document application, and then go to your main menu and open the PREFERENCES dialog, that dialog generally does not have stuff in it that applies to only a specific windows. Indeed, even if you only had one window open and you adjusted preferences from the main menu, you would expect those preferences to apply to other documents in the future when opened. That is basic user interface design.

Now if your windows had "local preference" options in them, then it would be immediately clear but I must admit to not having noticed such an option.

Incidentally, it may be logical to you but from my perspective, if I have two devices, and I open TM, I would in fact expect to see two device windows open. Alternatively (if I had written the code), there would be a checkbox option in preferences that said  "Remember previous window layout" so that you could control whether you get the first, the second or both when you start up.

Anyhow, I'm looking forward to trying this approach out --- your devices work so much better than the MOTU 828s that I'm excited to have switched over.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

Re: How can I control two UCX interfaces via OSC?

OK --- I have this working now ---- I appreciate the explanation for how to configure it.

However, I would strongly urge you to modify that Preferences dialog so that it makes it clear that it is referring to a specific device no matter which windows are open.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

Re: How can I control two UCX interfaces via OSC?

Another suggestion --- I implemented remote control via MIDI just to test it, got that working as well. However, the TotalMix system should create its own virtual MIDI ports when it opens so that it's not dependent on other programs being opened first with THEIR virtual ports.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

Re: How can I control two UCX interfaces via OSC?

@ebulb --- now that I have this working I can guess where you were having a problem getting your totalmix to respond. Turns out you have to send out the OSC messages that mimic selecting the appropriate bus. I've attached a picture from the Max patcher I was using to experiment with this stuff. The vol sliders apply to the last section selected so you have to first send a busInput, busOutput or busPlayback message.

Certainly not the way I would have done it --- a properly designed OSC API would allow one to do things like

/busOutput/volume1  value
or
/busInput/volume1 value




http://i.imgur.com/FGvzv38.png

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

25

Re: How can I control two UCX interfaces via OSC?

dhjdhj wrote:

Oh dear, silly me --- didn't realize it was my fault..

Glad to be of help!

dhjdhj wrote:

If you open several MS Office Documents, or you open several images in Adobe Photoshop, or indeed you open more than one "document" in essentially any multiple-document application, and then go to your main menu and open the PREFERENCES dialog, that dialog generally does not have stuff in it that applies to only a specific windows. Indeed, even if you only had one window open and you adjusted preferences from the main menu, you would expect those preferences to apply to other documents in the future when opened. That is basic user interface design..

And that is exactly how it works. You seem to have not yet realized that TM FX allows to open as many windows (views) of your current mix as you like. All these windows are based on the original one. The moment you change the interface (via the drop down menu on the upper right) you start a new instance of TM FX, which is completely independent and has its own settings. The name of the currently active instance (the used interface) is clearly given by the upper right label and the string in the window title, so basically everything is clear as can be.

Regards
Matthias Carstens
RME

Re: How can I control two UCX interfaces via OSC?

dhjdhj wrote:

@ebulb --- now that I have this working I can guess where you were having a problem getting your totalmix to respond. Turns out you have to send out the OSC messages that mimic selecting the appropriate bus. I've attached a picture from the Max patcher I was using to experiment with this stuff. The vol sliders apply to the last section selected so you have to first send a busInput, busOutput or busPlayback message.

Certainly not the way I would have done it --- a properly designed OSC API would allow one to do things like

/busOutput/volume1  value
or
/busInput/volume1 value




http://i.imgur.com/FGvzv38.png


Thanks... I worked out the connection between PD and totalmix was working for me with 127.0.0.1.. Initially i thought it wasnt connecting and i ended up being able to get the volume faders to move but its the other OSC command i couldnt get to work for some reason.. It may be because i didnt have PD and Reaper sending the proper syntax.. I wanted to send mainMuteFx.. When the tablet does this it sends

/1/mainMuteFx 1
/1/mainMuteFx 0

It sends 1 for first message and 0 for the second message in one press.. in touchOSC editor you can simply write /1/mainMuteFx for the button and it will send both these values.. When you write /1/mainMuteFx in  PD though it doesnt send the 1 or 0.. So i added the 1 and it makes the tablets button work but doesnt react in totalmix ?? I couldnt work out how to send the two messages like the tablet does with the 1 and then the 0 so i figured it was something i was not doing in PD properly.. I dont know much about that prorgam and I ultimately wanted to get Reaper to send this which i couldnt see happening at this point in time, so i worked out plan B.

I looked at the midi control area of manual again and realised i can just make a different mix snapshots with the FX off and trigger them from midi keys.. Its not as elegant because i need snapshots for other things also so i have to double up a few of them but 8 is still enough for what i need and with one midi message from Reaper it turns off totalmix FX which was ultimately my goal.

27

Re: How can I control two UCX interfaces via OSC?

@ dhjdhj: we added the current interface name + serial number to the title bar of the Mixer settings dialog (F3). Available with next release.

Regards
Matthias Carstens
RME

Re: How can I control two UCX interfaces via OSC?

That's great. I think it will be appreciated by many.

We're going on tour in three weeks and this stuff is working so much better than previous system I was using. In particular, your technique of explicitly using serial numbers to control the order of the seen devices eliminates a huge problem I was seeing when loading multiple MOTU 828s, which would sometimes show up in the wrong order.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

Re: How can I control two UCX interfaces via OSC?

MC wrote:

@ dhjdhj: we added the current interface name + serial number to the title bar of the Mixer settings dialog (F3). Available with next release.

Are there any devlopements towards improved OSC addressing on the horizon ?

Re: How can I control two UCX interfaces via OSC?

Although I have it working as a hack, it would be nice to be able to address a specific fader without having to first select the submix. So for example, right now, to guarantee that a slider on my keyboard will actually move the correct fader on the TotalMix window, I have to send three other messages first

/1/busOutput 1.     // Make sure I have the Hardware Outputs Panel selected
/1/solo/1/2 0.        // This selects the desired submix, but doesn't seem to
                            // work if the hardout output panel isn't selected first
/1/busInput 1.       // Now select the input channel section

/1/volume1 xxx     // And send the desired value to the first fader


Clearly, the specific functionality (change volume1 level for submix 1) must exist independently of the user interface  (MVC anyone?) so something like

/1/submix3/inputVolume2 x

That would adjust the value of fader 2 in the input section associated with submix 3

The main reason I'd like to be able to do this is because UDP packets are not guaranteed to be delivered so there is always a risk that one of the OSC packets won't actually make it, particularly over a wifi connection, so a single atomic message would be safer.

David Jameson
Deskew Technologies, LLC
Scorecerer - your sheet music on your iPad
www.deskew.com

Re: How can I control two UCX interfaces via OSC?

the current adressing system is cumbersome when you are on a tablet and have to press manually each of those buttons.. that scenario is crying out for a better system.. in addition it would be cool to build layouts using faders from any input/playback or output and without worrying about banks of 8..

So you have inputs 1, 10, 22.... software playback 1/2, 3/4.... and outputs 1/2, 9/10, 22, 24 etc  all functioning from one layout..  This would compliment 4 OSC controllers feature nicely as it would allow you to make a simple layout and give it to other people knowing they can only change things that affect their mix..