Topic: OSC Selecting Output Channel

I'm new to OSC but I've figure alot out over the past day or so. I'm connecting via OSC with sliders on a python GUI I have created. I've been trying to understand the OSC Commands, but the table is somewhat confusing to me.

My configuration:
4 channels Mic inputs
2 channels Software Playback
4 channels Output + 1 ADAT out

I'm able to control all faders with my python gui. The problem is, each Output has its own set of volume controls. In TotalMix FX if I select output channel 3 and move the software playback faders, when I click back on output channel 2 the controls remain where I left them on channel 2. What I can not figure out, is how to switch between the output channels through OSC.

Can anyone help me with the syntax?

2 (edited by kikanshathomas 2017-04-20 02:37:42)

Re: OSC Selecting Output Channel

After further research and inquiry it appears to be the /setSubmix that is suppose to do what i'm asking. However, it does not seem to be working. I'm using OSC Monitor to watch the messages being set and it looks like it should work. However even if I set the submix to 3, only the faders on submix 1 are moving. I would expect to watch the TM GUI select submix 3 and move the faders for submix 3.

syntax im using is: /setSubmix3 (3 as an int) ive also tried 3.0000 (3 as a float)

Has anyone else had trouble with this?

All of my sliders work for the appropriate channels, they just don't switch between the submixes.

Any help would be greatly appreciated.

Thank you for your time.

EDIT: I have the first submix/ouput1 selected on the TM GUI when I try my application. I have not tested if I select submix2/output2 on the TM GUI, if my application will control that submix.

TM GUI
https://c1.staticflickr.com/3/2808/33764587100_ce66f7fdbc_b.jpg

3

Re: OSC Selecting Output Channel

Your TotalMix is quite outdated...and did you activate 'Submix linked to OSC Control 1'?

Regards
Matthias Carstens
RME

4 (edited by kikanshathomas 2017-04-20 09:05:43)

Re: OSC Selecting Output Channel

Yes, I have activated "Submix linked to OSC Control". I was able to test that once I click on Output 1 (selected and colored grey) my App will move the faders on that submix. Then I switched to Output Channel 3 on the TM GUI and my app moved the faders on submix 3.

Also, I tried setSubmix X based on output 1, output 2, output 3 or output 4. I'm assuming my submix numbers are 1, 2, 3 and 4, but when I send /setSubmix X (X is channel number) I can't control any of the faders. So it seems I'm setting something to the submix, but not the proper value.

Sorry about the outdated TM, we use it for running ICS and Tones on our Full Flight Simulator.

https://c1.staticflickr.com/3/2878/33311193964_61896ae2b2_b.jpg

5

Re: OSC Selecting Output Channel

The point is that I have no clue how good and error-free  the OSC support in your outdated version is. You need to use the latest version to test your code. Also you did hide lots of channels which is a known pitfall to also disable remote control. Go to Channel Layout and make sure nothing is hidden or disabled.

Regards
Matthias Carstens
RME

Re: OSC Selecting Output Channel

I will unhide the other channels. I was just trying to simplify the gui. I will check for hidden or disabled channels. Where might I find an updated version of TotalMix FX to test out?

7

Re: OSC Selecting Output Channel

You need to install the latest driver.

Regards
Matthias Carstens
RME

Re: OSC Selecting Output Channel

Thank you MC, I have downloaded the latest version and will give it a try.

9

Re: OSC Selecting Output Channel

After having the latest driver you can also try this update:

https://www.forum.rme-audio.de/viewtopic.php?id=25323

Regards
Matthias Carstens
RME

Re: OSC Selecting Output Channel

Does anyone have an operational OSC submix selection syntax. I cant seem to get it to work. I'm using "setSubmix 1-1" or "setSubmix 2-1". Is this right? If I manually click on the channel 3 output, once I use OSC to setSubmix, it always switches my selection back to output channel 1... seems my syntax is wrong.

11 (edited by kikanshathomas 2017-05-10 06:20:42)

Re: OSC Selecting Output Channel

Ok, Maybe I'm not understanding this and this is why what I'm asking may not be clear. Below, I have some screenshots.

Top Left:
I'm able to control the 4 Input faders and 1 Playback fader, circled in Green.
My assumption is that the Output circled in Yellow is Submix 3.

So for OSC I would send ./setSubmix 3-1

Top Right
Same as above.
My assumption is that the Output circled in Yellow is Submix 6.

So for OSC, I would send ./setSubmix 6-1

When I send those commands to TotalMix, the Output selection automatically resets the selected Submix to the first bank. Am I understanding this correctly?

Can someone give me an example where I can control the faders of the banks circled in green for the independent outputs of 3 and 6 (submix 3 and 6)?

https://c1.staticflickr.com/5/4165/33757184163_79a19be9bd_b.jpg

Also, since I updated to the newer version of TM, I've noticed that the "Link Submix to OSC Control" now has a menu of 1, 2, 3, 4... only 1 is selectable.

12 (edited by Potscrubber 2017-05-14 03:01:53)

Re: OSC Selecting Output Channel

*** Edit: this might be wrong, I have to do more tests ***

Hi kikanshathomas

I'm not really understanding your syntax with the "." and "-" characters in the OSC messages.  Maybe that's specific to the OSC tool you're using.  I will use a more basic syntax of /target data

First, please make the following setting in TotalMixFX:
Menu: Options - Settings - OSC tab - Number of faders per bank = 24

The two sets of OSC messages below address the submixes in your top right picture for submix 6.  However they set the send level to 0dB (hence the floating point number 0.817204.  A value of 1 would be full scale (+6dB).

Also, remember that for /setSubmix the hardware output channels are numbered from 0 in mono (even if stereo paired).

/setSubmix 5
/1/busInput 1
/1/volume9 0.817204
/1/volume10 0.817204
/1/volume11 0.817204
/1/volume12 0.817204

/setSubmix 5
/1/busPlayback 1
/1/volume4 0.817204

*** Edit: this might be wrong, I have to do more tests ***

For testing you might find a small command line utility I hacked together useful, as you can send multiple OSC messages per command line.  PM me if you want to try the beta.
https://www.forum.rme-audio.de/viewtopic.php?id=24168

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

13 (edited by etc6849 2017-05-14 02:28:28)

Re: OSC Selecting Output Channel

So, I have a HDSPe AES PCI-e card (16 hardware inputs and 16 hardware outputs).  I use FREE mixing mode instead of SUBMIX as I am not using it for pro audio purposes, but as a HTPC soundcard feeding two Xilica XD4080 units.

I want to control the individual volume outputs (guessing this is what the pros call submixes).  For some reason the code below lowers AES input 1 volume?!?

Again, just want to control volume and mute on the hardware outputs directly using OSC and TotalMix Fx.

I can have no use for main as I don't have a control room and most of my playback is multichannel.  Before I had sacrificed a spare output and set it to main and grouped the faders.  This was kind of sloppy, but let me use '/1/mastervolume' and do what I wanted.  I also did mute by storing volume level and setting mastervolume to 0 for mute and previous value for unmute in my home automation software.

I feel dumb having to ask this, but I don't want a kludge (e.g. sacrificing an output channel for basic control).  Here is the perl subroutine I am using now that affects the AES input only.  If someone could explain why it affects an input bus when I am using '/1/busOutput 1' and also how to control just the outputs directly (the right way) that would be great smile

# Subroutine for setting volume
sub setVolume {
    my $Volume = $_[0];
    my $osc = Protocol::OSC->new;
    my $data = $osc->message('/1/busOutput 1','','');
    my $RMEudp = IO::Socket::INET->new( PeerAddr => $RMEIPAddr, PeerPort => $RMEPort, Proto => 'udp', Type => SOCK_DGRAM) || die $!;
    $RMEudp->send($data);
    
    $data = $osc->message('/1/volume1','f',$Volume);
    $RMEudp = IO::Socket::INET->new( PeerAddr => $RMEIPAddr, PeerPort => $RMEPort, Proto => 'udp', Type => SOCK_DGRAM) || die $!;
    $RMEudp->send($data);
}

Potscrubber wrote:

Hi kikanshathomas

I'm not really understanding your syntax with the "." and "-" characters in the OSC messages.  Maybe that's specific to the OSC tool you're using.  I will use a more basic syntax of /target data

First, please make the following setting in TotalMixFX:
Menu: Options - Settings - OSC tab - Number of faders per bank = 24

The two sets of OSC messages below address the submixes in your top right picture for submix 6.  However they set the send level to 0dB (hence the floating point number 0.817204.  A value of 1 would be full scale (+6dB).

Also, remember that for /setSubmix the hardware output channels are numbered from 0 in mono (even if stereo paired).

/setSubmix 5
/1/busInput 1
/1/volume9 0.817204
/1/volume10 0.817204
/1/volume11 0.817204
/1/volume12 0.817204

/setSubmix 5
/1/busPlayback 1
/1/volume4 0.817204


For testing you might find a small command line utility I hacked together useful, as you can send multiple OSC messages per command line.  PM me if you want to try the beta.
https://www.forum.rme-audio.de/viewtopic.php?id=24168