Topic: OSC get Fader Value

Hello dear community,

I am playing around with pyOSC and Totalmix and sucessfully managed to set my Output Volumes, Mute them and so on.
For more complex applications it would be crucial to somehow read current fader values without setting them first via OSC (e.g. if there is a "manual" change in the user interface, that should then be reflected in the OSC-Device).

Is there any way to receive, read or listen to the current Fader Values via OSC? I tried to create an OSC-Server listening at Port 9001 but somehow didn't really receive any message. I tried to listen to stuff like

/1

or

/1/volume1

etc.

I suspect I just have a conceptually misunderstanding.. Does Totalmix even send it's current values? If not, is there any other way to read those? Any ideas?

Re: OSC get Fader Value

Okay let me update myself on that.

I managed to read out all chaning values using this python script using the python-osc package:

from pythonosc import dispatcher
from pythonosc import osc_server

def print_handler(unused_addr, volume):
    text = "[{0}] ~ {1}".format(unused_addr, volume)
    if text != "[/] ~ 0.0":
        print(text)

if __name__ == "__main__":
    dispatcher = dispatcher.Dispatcher()
    dispatcher.map("*", print_handler)

    server = osc_server.ThreadingOSCUDPServer(("0.0.0.0", 9001), dispatcher)
    print("Serving on {}".format(server.server_address))
    server.serve_forever()

This essentially creates an OSC server that listens on the given IP and port for ALL adresses (this is what the "*" means). If you want to narrow down adresses you can also use something like: "/1/*" which will display all Page 1 OSC things or a specific adresses like "/1/mastervolume".

Sadly this also revealed to me that I cannot remotly get or set the Level of the Headphones using OSC (at least not with the Fireface UC). It works for: the Master Volume, all kind of Dim and Recall switches, all kind of Input channels, but not really for any other output channel, unless I got something wrong.

If any expert knows how I could for example get/set the Phones 1 level via OSC I'd be very thankful. If it is just not possible, then be it so.

3

Re: OSC get Fader Value

You did not check out the OSC templates that we provide? Or the OSC documentation?

Regards
Matthias Carstens
RME

Re: OSC get Fader Value

You did not check out the OSC templates that we provide? Or the OSC documentation?

Thanks for the reply!
I managed to figure it out in the meantime and just wanted to share the solution, I was misunderstanding the whole bank thing, the trick was to set the bank to 2.0, the python code below manages to monitor the output level.

from pythonosc import dispatcher
from pythonosc import osc_server
from pythonosc import osc_message_builder
from pythonosc import udp_client

import time


def print_handler(unused_addr, volume):
    text = "[{0}] ~ {1}".format(unused_addr, volume)
    if text != "[/] ~ 0.0":
        print(text)

if __name__ == "__main__":
    ip  = "0.0.0.0"
    port = 9001

    ip_send = "192.168.56.1"
    port_send = 7001

    dispatcher = dispatcher.Dispatcher()
    dispatcher.map("*", print_handler)

    client = udp_client.SimpleUDPClient(ip_send, port_send)
    client.send_message("/setBankStart", 2.0)
    
    server = osc_server.ThreadingOSCUDPServer((ip, port), dispatcher)
    print("Serving on {}".format(server.server_address))
    server.serve_forever()

Very cool that this works after all!