Announcement

Collapse
No announcement yet.

Using OSC (Open Sound Control) to Integrate a Digital Audio Mixer

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Using OSC (Open Sound Control) to Integrate a Digital Audio Mixer

    I have a digital audio mixer (Behringer XR18) and I'm looking at integrating it with HomeSeer (HS4). The mixer uses OSC (Open Sound Control) UDP messages to communicate status as well as for control of the mixer settings. I've found a Node-RED OSC package (https://flows.nodered.org/node/node-red-contrib-osc) so I'm going to try to integrate it that way. With 18x input channels (9x stereo) and 8x output channels (4x stereo), that's going to be a lot of NR flows.

    I envision having a Virtual Device (root) for each input and output channel with a child device for Mute and Level (for now) for each virtual device. I'm pretty sure I can use ksum's method for keeping a dashboard in sync to keep the devices in sync with the mixer. I'll have to think about how I'm going to handle times when the mixer is powered off.
    "if I have seen further [than others], it is by standing on the shoulders of giants." --Sir Isaac Newton (1675)

    #2
    I found this very well documented flow that implements many of the OSC messages for the X/XR18. It uses the OSC package I linked to above. Looks like a good starting point.

    https://flows.nodered.org/flow/8c196...44f525439fb42e
    "if I have seen further [than others], it is by standing on the shoulders of giants." --Sir Isaac Newton (1675)

    Comment


      #3
      So far I've hit two issues that make it hard to continue.

      1. An HS Device slider does not make a very good audio fader (i.e. volume control) since it only sends a device value after the slider is released. I need to test with HSTile since that's what I plan on using for a UI. I should test with NR dashboard as well.

      2. The node-red-contrib-osc encoder doesn't support a message with a topic but no payload value. Sending a topic only to the mixer is how a setting is polled to get the current value. When I tried to do this the encoder inserts a 0 (zero) into the message which, of course, sets the mixer topic to a value of 0. Not good. Update: After looking at the JS code I now realize that NULL and "" are not the same thing. Setting msg.payload to a blank string works.

      Resolved. I'm looking at the JS code for the OSC package to see if this can be fixed otherwise it's a showstopper.
      "if I have seen further [than others], it is by standing on the shoulders of giants." --Sir Isaac Newton (1675)

      Comment

      Working...
      X