Topic: Understanding OSC messages WRT Totalmix FX

Hi Everyone,

I'm looking to make a plugin for Reaper that allows for a more seamless integration with TotalMix FX for my one-room studio. In particular I'm looking to:
1) Have the ability to automatically mute my control room monitors during record (so I don't get monitor bleed on my vocal takes)
2) Have the ability to use hot-keys to mute, dim, or switch to monitor A/B, while Reaper has the control focus
3) Use a fader level in reaper to control a fader level in a submix of totalmix (looking to use direct monitoring from TotalMix for very low latency monitoring, yet have buss effects in Reaper...I have some ideas for how to do this in part with a VST plugin)

I figure that OSC over the loopback address is the best way to accomplish this, but I must admit I'm a complete newb with OSC. I have done some fairly low level socket/network programming before, so I'm not not too worried about that, but I am concerned about the lack of documentation WRT the OSC 'standard'. In particular I was looking to glean some information about RME's implementation in TotalMix FX.

I have the OSC Table for TotalMix FX, and have given a brief look at it. My first question is, what does TotalMix send out on it's port? Does it just send a steady stream of all data, or does it echo what has changed, or is there a way to query  a value? For example, I know that I can only access 8 faders at any given time, but I can move in banks of 8 by using bank+ ... but how do I know what bank I'm on? I can keep track myself, but what if my packet gets dropped. Does TotalMix indicate the current bank selection with a message?

I think tonight I'll do some packet captures just to see what I'm up against, but if anyone has any insight into what sort of messages TotalMix sends back, and at what frequency, that would be much appreciated.

Cheers

Kris

Re: Understanding OSC messages WRT Totalmix FX

Hi Kris

There's a lot to answer in your post but I have a couple of bits of advice first up.  Firstly, get yourself a good OSC monitor.  Here's one:  http://frieder-weiss.de/OSC/index.html
...that has a port "thru" functionality.  So, you can send an OSC message to localhost, observe it, thru it to TMFX and observe the result.  And of course, you can use it to observe the output of TMFX.

This together with a good study of the XLS table will get you started - all the info is in there but you have to (I had to) study it a bit.  See the ScaleTypeVal column for hints about returned data.    TMFX only accepts floating point numbers, but data TMFX returns includes strings for channel names, and db values for faders, level meter data (if enabled).  Use of the OSC monitor will tell you a lot more.

When you say plugin for Reaper, do you mean vst, js, lua, eel ?  Or a control surface specified in the Reaper pattern config file?

S.

Madiface XT, Madiface, 3x Micstasy, ADI8QS
Sequoia 17, W10 x64
https://bsound.co.nz/tools-nix

Re: Understanding OSC messages WRT Totalmix FX

Thanks for the advice! I did some OSC packet captures with Wireshark a couple days ago, and got a sense for the sort of messages that TMFX sends. But, I suspect using the OSC monitor will prove even more helpful.

Last night I started writing a simple console utility to send some candidate OSC messages (e.g. globalMute, mainMonitorB, etc). It's pretty utilitarian code, but at least I think the format is correct (including endian). It should serve as a good vehicle for initial testing.

As far as integration into Reaper, I think I will need to use a combination of the C++ extension API, and VST to accomplish what I want. I was going to start with:
1) an extension plugin to perform a monitor mute action with a latching button on a toolbar, then
2) extend it with different actions such as dim, speakerB, and talkback buttons. And then
3) Add a button that when latched automatically mutes the monitors when the transport is recording

and finally,
4) Develop a combination extension and VST plugin (they will need shared memory) that will let me put a track into record monitor mode in Reaper, read the fader value, and send it to totalmix for input monitoring, send the monitored audio to a bus track (possibly via a 'receive' instance of the plugin) where an effect like reverb/delay can be inserted, and finally zero the output of the plugin while the transport is not in play.

Sounds messy, but this should let me do both direct monitoring for low latency, and set up FX returns without having to do too many multiple track tricks. I'll have to draw a diagram up sometime...

Cheers

Kris

4 (edited by drfrankencopter 2016-10-20 03:36:04)

Re: Understanding OSC messages WRT Totalmix FX

Ok, minor success tonight.

I wrote a quick and dirty console app on my Mac, and had it send OSC messages to TMFX running on my studio PC. I was able to control mainDim (toggles the monitor dim switch), and globalMute (toggles the status of the global override on mutes). I was hoping to be able to mute the monitor submix, but I can't seem to find that as a OSC message. Perhaps I need to find the submix associated with the main mix and do a mute on that...but it seems like an odd implementation considering that Dim is readily available without hunting for a submix.

More work to be done. I guess I shouldn't have expected this to be easy. I might just buy TouchOSC and packet sniff it's output...

Cheers

Kris

Re: Understanding OSC messages WRT Totalmix FX

Did a quick test this morning. It seems that when I toggle the main monitor mute on and off from TMFX I do not receive any OSC messages indicating that something has taken place. But when I grab the main fader and move it around I do.

It also appears that if I switch submixes I receive a pretty comprehensive update of the mixer state. I think I'll try switching from submix 1 to the main mix, and see if I can get the master mute state that way.

The touch OSC sniffing approach is looking more appealing to me all the time. Just bought it and will try tonight...

Cheers

Kris

Re: Understanding OSC messages WRT Totalmix FX

Okay, a little disappointment...

It seems that TouchOSC has the same issue with mute; namely it controls "globalMute" which is just a defeat/enable on mutes, and not the mute button on the main fader in the control room section.

At this time it would appear that the only way to mute the control room main fader via OSC is to set up a mute group and toggle that.

Must admit I'm a little surprised by this....but maybe its a way to sell more ARC's.

Cheers

Kris

7

Re: Understanding OSC messages WRT Totalmix FX

If you need  mute on Mains simply set Dim to max attenuation...

Regards
Matthias Carstens
RME

Re: Understanding OSC messages WRT Totalmix FX

That will serve, but really as a workaround, since retaining "Dim" functionality would be nice.

Perhaps OSC control of main mute could be considered as a feature request for a future version of TotalMixFX.

Cheers

Kris

Re: Understanding OSC messages WRT Totalmix FX

drfrankencopter wrote:

Okay, a little disappointment...
At this time it would appear that the only way to mute the control room main fader via OSC is to set up a mute group and toggle that.
Kris

That's what I do, but as I have a group setup for my 2.1 monitors it isn't really a work-around for me I guess.

Madiface XT, Madiface, 3x Micstasy, ADI8QS
Sequoia 17, W10 x64
https://bsound.co.nz/tools-nix