IP for Serial Controlled Audio Switches
It’s not often you talk about systems from the DOS era, especially now that we’re in 2015. However, the DCS playout system used to be shipped with a serial controlled audio router.
The router in question allows for up to eight sources and five destinations operated in a full crosspoint configuration. You could even mix sources as well.
Not bad for equipment of that era and we’ve got them lying around. That’s why we’re looking into seeing if we can make it talk to modern playout systems. To make that happen, it really needs to be IP based.
Admittedly, I’m not going to be putting the unit into production but the lessons learned along the way should apply to more modern equivalents.
Anyway, I’ve written a piece of software that connects to the serial based audio router and allows for simple IP commands to control it. Surprisingly, it’s a cross-platform Java application that can run on Linux, Mac and OS X.
It has the concept of switchable sources and toggle sources. Switchable sources are things like studios and sustaining playout systems that you choose only one of to be on air. These behave much like you see on any other routing/switching system.
Toggle sources are sources you can toggle on and off air in addition to the switchable sources. You’d use this for things like IRN and ads feeds.
The state of a toggle source is maintained as you switch between switchable sources. That means the news can remain on air as you flip between studios.
Making your playout system talk to it should be relatively easy. The commands to control is are plain text and issued over TCP. That means that in an emergency, you could even control it with Telnet.
The commands are fairly straightforward. To route source 7 to TX path number 3, you’d send:
route 3 7
To toggle a source 5 onto TX path 1, you’d send:
toggle 1 5 on
To toggle it off again:
toggle 1 5 off
You can find out what all the sources are called by running:
sources
And to find out about all the configured TX paths:
paths
Any time a source changes, all clients connected to the server will be informed through messages the same format as above. That means writing an application to monitor on-air status (e.g. a studio clock) should be simple enough to write.
This applies to physically pushing buttons on the audio router/switcher as well.
As a test, we programmed some of the above commands into a Myriad playout system. Admittedly it was only some pre-programmed actions but did allow for neat features like flipping IRN or jumping between studios at the press of a button.
Configuration is done through a simple XML file. As this example file shows, you can label your sources easily, don’t have to configure every input on a switcher and creating a toggle source is as simple as changing false to true.
What’s more, the code has been written in such as way that you could expand support out to other audio routers and switches. You’ll need some Java knowledge and details about how your audio switcher/router can be controlled.
It’s the first thing I’ve made the source code public on and it can be found here. Hopefully you might find it useful.
Hi Marc
Can I run this on a Raspberry Pi? That would be v useful!
There’s no reason it couldn’t work if the serial library work on the Pi. A quick bit of research suggests you will need to install the native version of the library using the sudo apt-get install librxtx-java command.
Thanks, Marc. However, when I try to run the Launcher.class file, I’m told:
Could not find or load main class Launcher.class.
I must be doing something wrong, but I’m not at all clear what that is!