Control of Digico desks with OSC – Part 1
A three part series about practical ways to use OSC to remotely control Digico desks. I don’t pretend to be an OSC expert but the information and solutions included in this series have been tested and work well.
What is OSC
Open Sound Control or OSC is a network protocol for remotely controlling specific functions of audio devices. Originally developed for electronic music it has seen significant adoption in live show applications including theatre, drama, dance and multidisciplinary performances as a means to control and coordinate technical equipment.
There are a lot of devices that are OSC capable including synthesisers, DAWs, software controllers, SFX generators and even projection systems.
Why use OSC
I’m sure many of you are thinking, can’t MIDI do the same thing. Well, yes and no. There are several advantages to OSC that make it easier to work with and more flexible than MIDI.
Pros
OSC commands use natural language rather than strings of hex code.
OSC is networkable so remote control is easy and flexible, even across sub-nets.
OSC is implemented independently by each equipment manufacturer and can offer much deeper control levels than MIDI.
OSC is bi-directional and way faster than MIDI
Cons
OSC protocol has no handshake or error correction. Your messages launch into the big wide open network and your only feedback is if the control actually works on the target device, just like MIDI.
OSC command language is implemented somewhat differently by each manufacturer. Fortunately most instructions are very similar, especially amongst DAW’s.
Not all manufacturers publish their OSC command sets but they are quite easy to sniff out.
OSC networking protocols
OSC uses standard IP addressing using ports specified for incoming and outgoing messages. e.g.
192.168.1.200:8000 for incoming messages
192.168.1.200:9000 for outgoing messages
This allows every device on a network to send and receive OSC commands.
What live sound desks implement OSC
Digico, Yamaha Rivage and Behringer/Midas X32 platform. Unfortunately the Yamaha CL series and Avid desks have no OSC implementation of any kind.
If you are an X32 platform user you should study the extensive publications by Patrick Maillot who has a ton of excellent information and practical applications. You can start here https://awesomeopensource.com/project/pmaillot/X32-Behringer
For Yamaha Rivage series desks the OSC command structure is documented at https://uk.yamaha.com/files/download/other_assets/5/1407565/RIVAGE_PM_osc_specs_v102_en.pdf
If you are a regular Yamaha CL desk user then I strongly recommend you to the extended control programming published by Andrew Broughton on his site https://discourse.checkcheckonetwo.com
Andrew is also the author of an internet spanning remote control protocol for Yamaha CL desks called Remotely Possible. https://discourse.remotely-possible.ca/
For Avid desks check out the Avid native network control protocol called Eucon. You can check all the features here https://www.avid.com/products/avid-control/features
Allen & Heath desks don’t seem to have any published OSC functions but have a reliable MIDI over IP function.
If you are a Digico user then please read on.
How does remote control work with Digico desks - About Console Network
What is interesting about the Digico SD series software is that from the beginning it has offered complete duplication of the desk surface that allows remote operations over a network. Digico calls this “mirroring” and it works well for one or two remote computers as well as remote desks. Here is a typical setup screen,navigate to
Main Menu/Network
This screen shot shows two computers on-line with each other and full mirroring is possible even though they are both using the off-line editor. The A and B devices (shown as not found) would be physical desks if they were connected to the network. The physical desk can be mirrored by the remote computers which will then operate the hardware desk remotely and vice versa.
About OSC Control on the Digico platform
Digico use OSC commands to implement their IPad control surface, Klang for monitoring and L-ISA spatial controls. Unlike other manufacturers the Digico protocol only works for one IPad at a time so having an eight piece band all with their own pad based monitor mixing is not officially possible in the Digico world. Digico now allows some limited control of external devices from the desk surface, enough to control an external cue manager (e.g. QLab) or a DAW.
Despite these apparent limitations it is still possible to use OSC to control a Digico desk for a full range of useful applications, including monitor mixing.
Practical
applications of OSC on Digico desks
Macros. There are a huge range of things you can do on a Digico desk with just a button push, it seems that every possible desk control is available to the Macro system. Unfortunately the macro window is small and only has 12 slots, it’s difficult to get to anything quickly that is not in one of those slots. Yes there are Macro buttons on the desk (the number varies with the model), often two or more button pushes are needed.
A touch screen laptop with control software can offer page upon page of 20 – 30 buttons each, or faders, or radio buttons all with unique colours and functions. How about screen brightness on a fader, or a monitor mix select button with faders linked to control groups, on a tablet.
Scenes. Scenes are easily recalled using OSC, useful if you only use scenes for major and infrequent changes (e.g. band changeovers). Anything more complicated is best handled by cue manager such as Qlab (Mac only) or Multiplay (Win based). These are flexible and sophisticated so there is not much point in re-inventing them yourself. Both of these cue managers can use multiple protocols including MIDI and OSC.
Individual Channels. Remote channel control in a more complex show environment e.g. presenter mic volume and mute, playback or DJ remote volume and mute.
Fast operation of menu commands. For every digital desk there are commands that are hidden deep inside nested menus, Digico desks are no exception. So to quickly change bridge lights levels or change the decay time on a reverb FX a screen based fader or rotary is much faster that banging through the menus.
Miniature mix page for limited use. Typically this would include having a RF mic and laptop playback for a corporate presentation that can be operated by the user without needing access to the desk or a 4-hour union call for a desk operator. Great in a theatre environment. Limited monitor mix controllers can be setup the same way.
Digico OSC Commands
Confusingly a lot of OSC literature refers to “OSC addresses” when in fact the information in the addresses is a set of commands. From here on out I will refer to all these messages as commands. Here’s an example
/Input_Channels/1/mute FLOAT(1)
This command is addressing an input channel, channel 1, and setting the mute to an ON condition.
/Input_Channels/1/mute FLOAT(0)
This command sets the mute to an OFF condition.
FLOAT specifies the numerical data type. A mute button is a boolean device; it has two conditions true (1) and false (0). Other commands can include parameters with the numerical type integer or string type for text.
Digico do not publish their OSC command protocol but a few
people have “sniffed” out various parts using a network program that listens
for OSC commands on specific ports. An extensive list of Digico OSC commands is included in the side panel of this blog under "Pages".
Configure a test setup for controlling a desk
Fortunately the off-line editor is essentially the same software that controls the desk hardware in real time. Within hardware limitations you can use it as if it were a real console. To setup a test I recommend running the Digico offline editor on one computer, configuring it for external control and then running test controls from another computer on the same sub-net.
e.g. editor on computer 192.168.0.16 and controller on 192.168.0.23. See this in the following examples of the desk setup.
Main Menu/Setup/External Control
Digico has a restriction of only allowing one device of one type to be enabled. Presumably this is an internal software issue that hopefully they will update.
Another restriction is that only one device can get feedback from the desk and it has to be added as a “Digico Pad” in the add device drop down. It can be any OSC controller, doesn’t have to be the Digico app running on an IPad. An additional “OSC” type device can be used but it is one way control only. This explains why “officially” only one IPad can be used for external control on an SD system.
Luckily there is a work-around. You will notice that each device in this list has unique Send and Receive port numbers. Most OSC implementations allow multiple controllers to send to the same target receive port. Usually they need to have different network addresses, on the same subnet, with seperate local receive ports.
To clarify, in the above graphic, a controller device with a send port of 8006 and receive port of 9006 can send and receive commands OSC commands from the Digico Pad device “clive 11D” and get full feedback.
Other controllers which send on port 8006 can also control the Digico OSC device, without any feedback. They will each need a unique IP address, on the same sub-net, and unique local receive ports to prevent port lock-outs. Communication is one way only, no feedback. Other controllers can send commands to the OSC device “clive 11C” at receive port 8004, without feedback.
So a likely remote OSC control setup could be a “Digico Pad” device running control software and getting full feedback. Additional “OSC” controllers could issue one-way commands without feedback.
Conclusion of Part 1
We have discussed what OSC is, what it does along with some examples. We also showed the way to setup a Digico desk, or off-line editor, to receive and issue OSC commands as well as how to connect for remote operation. In the next part of this series we will look at three different software programs that allow you to build faders, switches, momentaries and rotaries that issue and respond to OSC commands.
Please check out the list of Digico OSC commands included in the side panel of this blog under "Pages".
© Clive Alcock 2023
---------------------------------------------------------------------------------------------------------------------
No comments:
Post a Comment
Please Feel Free to Comment