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

Re: help with TotalMix OSC please

bawumbu wrote:



Hope this reply will help you.

Thanks aswell for your introduction, it saved me hours for my remote interface! This would be a great addition for the excel, to get at least some jist, of how everything is interconnected!

7 (edited by Toeti 2024-01-29 22:22:41)

Re: help with TotalMix OSC please


sorry for entering this...

I'm using gig performer for sending OSC messages. I'm able to mute/ solo the channels and I'm able to change the mastervolume.

But I'm not able to the change the volume of the inputs sad Is there something additional to think of? For the input I used /1/volume1

Thanks a lot for your help.

Edit: I think the problem is, to send the message for the submix smile Don't know how to send it via gig performer, but that's not your problem.

But it's automatically for the output 3. Very interesting, but now I know where to look.

8 (edited by maggie33 2024-01-31 05:19:13)

Re: help with TotalMix OSC please

Thats because your current controller is on the Output bus.

You have to switch to the Input bus first before beeing able to control the Inputs.
In your case:
Send a "/1/busInput" to TM before changing the Faders for Inputs
Send a "/1/busOutput to TM before changing the Faders for Outputs

In general, You have two options:

1) "dynamical way":

if you are on page 1:
you can switch between the busses via "/1/busInput" to assign the busInput and then control the Volumes, etc...
(and "/1/busPlayback" to switch to Playback Row, "/1/busOutput" to switch to the Output Row)

if you are on page 2:
the same - just replace the 1 with 2 (ex: "/2/busInput", etc...)

2) "fixed way"

You can also assign your different OSC Controllers via editing the Workspace file (.tmws) in a Texteditor as follows, if you want to fix each of the controller to a individual bus:
- Open the tmws file in an editor
- Find the section where your OSC Remotes are defined. F. Ex <OscRemote0>, <OscRemote1>, <OscRemote2>, <OscRemote3>
- Edit this line for the controller and bus, you prefer: <val e="OscSelBus" v="X"/>
Replace X as follows: 0 = busInput, 1 = busPlayback, 2 = busOutput
- save the File.
-> Each time you open the workspace, the controllers are mapped corresponding to your buses. Of course, you still can switch the busses as described in 1)

Detailed OSC description is described in MCs link: …

“Do It For Her”
My Gear: Bontempi Magic light Keyboard

Re: help with TotalMix OSC please

Tnank you very much:

one question: Is it necessary to send the messages businput and volume  or setSubmix and the rest in one stream? Or can I do it step by step?

Re: help with TotalMix OSC please

both. You can send them as a OSC bundled message or you can send them one by one.

“Do It For Her”
My Gear: Bontempi Magic light Keyboard