Topic: help with TotalMix OSC please

Hello, huge fan of TotalMix FX here. I am attempting to talk to TotalMix FX via OSC with AutoHotKey and I'm striking out.

I've gotten my AutoHotKey script working perfectly with REAPER so I know I'm close. I've combed the internet, I have the latest version of the TotalMix FX OSC table, and I understand the basics, but I still can't get it to work.

In AutoHotKey, I'm using an OSC function library which asks for the following to send an OSC command:

I'm able to send a string, or floating point number. I'm working under the assumption that I should be sending a string. For IP, I have my computer's IP address, which is the same as what TotalMix FX OSC settings is showing. Port is the same as what I've configured in TotalMix FX settings.

What I'm unclear on is the following:

1) What exactly should I put it for address and data? I have tried "/1/solo/1/1" for address, and many variations of that. I've tried putting 1.0 in "data" based on some code snippets I've seen on forums.

2) In TotalMix FX settings, for Remote Controller Address, I am using the same IP as the setting above (my computer's IP). Is that incorrect?

3) Again, in TotalMix FX settings, the "Totalmix FX OSC Service is listed as ";". The is my computer's local IP, I understand that, but I don't know what the refers to.

Thank you so much for any help or insight into this.


Re: help with TotalMix OSC please


OSC seems not to be the strongest point for RME, or at least not the easiest.

You may first check is OSC control is enabled in total mix:
Menu "Options"->"enable OSC control"

You may also get the largest possible bank size:
Menu "Options"->"Settings"->OSC->"faders per bank"->48

If you want to change a volume, you can send the following OSC commands:

/1/busInput 1.0
to select the input row of TotalMix
Yes, there is a parameter 1.0 to provide to this function. It must be a float and it must be 1.0, don't ask me why :-)

then you have to send
/1/Volume1 0.5
to set the volume to "50%", ie the knob half way from bottom to top.
in general, the parameter goes from 0.0 (min) to 1.0 (max).

This will set the volume of the first, leftmost, input slider on screen (which means if you change the
screen layout, it... won't work anymore, it will set another volume. How clever :-)) )

you can use
/1/volume2 0.5 to change the second slider,
/1/volume3 0.5 to change the third one
/1/volume24 0.5 to change the 24th.

if you want to change the 25th aye! Things get even more complicated.
You have to change bank by using
/1/bank+ 1.0
(yes, nearly all commands have that float parameter)

and then the 25th slider becomes the first of the new bank. How convenient !

So far this was simple:

"page 1" commands allows you to change volumes and pan but not, say, the eq filters.
If you want to change the eq filter, you have to use "page2" commands.

For instance:
/2/busInput 1.0
/2/eqEnable 1.0

the first one is the strict equivalent of what had to be done on "page1" commands: select
the input row of totalmix. So far, so good.

the second enable the eq... or disable the eq: this is a toggle; that is if the eq was enabled,
it is now disabled. You cannot set the eq to a given known state, only toggle the state, read the
answer, see what is the state and toggle again if you are not happy. So nice !

And yes, you may have notticed: there is no track number following /2/eqEnable
(you cannot write, say, /2/eqEnable14 1.0 to enable the eq of track 14).

You can only set the parameter of a "current track".

To change the "current track" you have to use /2/track+ 1.0 or /2/track- 1.0
(so, say you are on track 5 and you want to set track 100, you will have
to send 95 times /2/track+ 1.0 to get to the track 100)

each time you send a /2/track+ 1.0 command (or track-) it will reply
will all the settings for the track reached (including at the end of a very long answer
the track number, geting that reply is your only chance to know where you are).

Of course, if you send a /2/busInput 1.0 command, it doesn't reset the track
to a given known number... so you never are sure how many track+- commands
you need to reach the desired track: you need to issue a command, get the
track number and then send the right amount of track+ or track- :-)

By the way, you have on "page2" commands the ability to change volume, pan,...
so you can either use

/1/busInput 1.0
/1/volume20 0.5


/2/busInput 1.0
/2/track+ 1.0
/2/track+ 1.0
/2/track+ 1.0
/2/track+ 1.0
...undetermined number...
/2/track+ 1.0
/2/track+ 1.0
/2/volume 0.5

Yes, it would have been so simple to have commands such as
/input/<madi input number>/volume 0.5 to set volume
/output/<madi output nr>/eqEnable 0.0 to disable eq

Probably too simple both to use and to implement (because I'm quite sure
the crazy OSC interface was as hard to create as it is to use).

God knows who invented it.

Hope this reply will help you.

Re: help with TotalMix OSC please

Thank you so much, this is an amazing explanation! I was able to get it working perfectly thanks to you.

Re: help with TotalMix OSC please

You can setup the start of the bank also with the command "setBankStart" and the single channel inside with "setOffsetInBank". The submix can be selected directly same way with "setSubmix".

The TotalMix OSC implementation was targeted to be compatible with the only available application at this time (TouchOSC), which utilizes a concept basing on the Mackie Protocol. This is a well elaborated industry standard to map a (small) fader bank to a (virtually unlimited large) mixer und works well in many applications, because it makes sure, that remote and host are always in sync, without sending thousands of useless messages regarding mixer-nodes outside the view of the user. But I can understand that this concept is too complex for widely use outside dedicated professional apps.


Re: help with TotalMix OSC please

Also to makes sure everyone reads the current OSC description, it is in this link: …

Matthias Carstens