When new lecture halls are equipped, the question of PA infrastructure rises. Lately, those who decide seem obsessed with digital mixers. Those surely work fine, but they have one major drawback: They have no classic mixer console interface. Instead they come with a rather complicated Windows Program (e.g. Iris-Net) resembling a mixer on the (touch-) screen. Steering a mixer using a click-and-point device such as a mouse is no problem if there is no need for quick use.
Imagine the following situation: You are lecture hall technician for a rather big event. Your task is mixing signals from microphones (one at the lecturer's desk and a wireless one) and two computers which may be used during the event. Extra challenge: You have no idea, what exactly will happen. You follow the happening -- and react. Quickly. Opening a microphone two seconds late is something noted by everyone in the room. Thus, you need to coordinate the following sequence as fast as possible:
- Look to the stage: Identify the need -- which signal shall be muted? Which signal shall be used?
- Refocus: You look from the scene 15 meters away to the screen in front of you. Search the 3-pixel-by-4-pixel-area you need to click.
- Hit-and-run: Drag the identified slider and adjust the new input level (or mute or whatever).
Yeah, thay may totally be a question of training. I do not have it. And I do not know anyone who has.
What about using a touchscreen? It is an option, of course. But it suffers from such severe backdraws that you cannot really use it, too: First, to allow modification of multiple settings at once, the application (and the underlying system) need to support multi-touch. Seccond, there is still no taktile feedback, i.e. the user needs to touch the screen exactly where he wants the slider to slide to. Third, there is a good chance to modify the wrong setting by accident (since my fingertip is not shaped like a pencil). Finally, I still need to focus myself on a screen instead of keeping my attention where it belongs -- the stage (or in my scenario: the lecture event).
The solution is to build a physical input device resembling a classig mixer console. The solution can be divided in three sub-problems:
- The input device: How to get an el cheapo mixing console?
- Some data processing
- Some way to control the digital mixer
The P64 features two serial interfaces (by default configured to 19200 Baud, 8N1) which can be switched to a communication parser mode using Iris net. In this mode, you can conect via serial console and have complete control over the P64 -- including firmware updates and low level settings such as network addresses and the like (you may thus want to install the P64 at a safe place where you can control physical access). Anyway, you get a command line interface. After booting, it shows a prompt.
>The input is read line based. The command
?provides a list of possible input in the current context. You can switch to e.g. the param context:
> param PARAM >You can switch one level up using
PARAM > .. >You may also provide deep-links to contexts:
> param/dsp PARAM/DSP >Now, we want to modify the settings of the digital sound processing (DSP). In the DSP context, you can select the components known from the Iris net software. In our case, we want to change settings of mixer 5, as it is connected to analog ouput 7 -- the local PA.
> param/dsp/mixer_5 PARAM/DSP/MIXER_5 >The folks at dynacord decided to group the settings according to semantics, not to channels. Thus, you select a property and then a channel. The channels are identified as IDX_1, IDX_2 and so on.
The sub-mixer has multiple settings which can be modified. To build a remote, the most important are
mutein-- mute inputs
gainin-- input level control, value in dB
gainout-- output level control for the whole submixer
muteout-- mute submixer
solo-- make channel solo for the mixer
Specification within context navigation:
> param PARAM > dsp PARAM/DSP > mixer_5 PARAM/DSP/MIXER_5 > mutein PARAM/DSP/MIXER_5/MUTEIN > IDX_5 PARAM/DSP/MIXER_5/MUTEIN/IDX_5 > ? PARAM/DSP/MIXER_5/MUTEIN/IDX_5 0 PARAM/DSP/MIXER_5/MUTEIN/IDX_5 > 1 PARAM/DSP/MIXER_5/MUTEIN/IDX_5 > ? PARAM/DSP/MIXER_5/MUTEIN/IDX_5 1Absolute specification:
> /param/dsp/mixer_5/mutein/idx_5 0 PARAM/DSP/MIXER_5/MUTEIN/IDX_5 > ? PARAM/DSP/MIXER_5/MUTEIN/IDX_5 0Note that the context is changed, too.
This is basically it, this is all we need to remote control the P64 mixer. We only need to know which mixers, but these informations can be acquired easily using a serial terminal emulation and the Iris net software. By now, we are able to build a software mixer. But accidentially this is not what we want. We want more. We want a physical input device. That's next.
Keep in mind that you are root when accessing the P64 via serial line. You can not only change settings but also delete or destroy the complete setup which may cause not only pain but also money for re-setup.
Once you know how to change parameters, you start phantasizing at once. Building a remote seems very feasible -- a nice metal chassis, mixers, switches, AD-converters and a microcontroller -- done. Yeah, but then you start calculating. A good fader is about 20 Euros. A good, LED-lit switch about 2 Euros. Ouchey. There should be an easier way... and yes, there is: You can always abuse other devices. My eyes fell onto some cheap lighting equipment. They use physical consoles, too. And they do have a standartized protocol -- DMX. A 6-channel DMX-controller is available for 35 Euros! Ok, it has 60mm-faders and not the desired 100mm-faders but for a proof of concept it's still great.
If we find a way to read DMX from a PC, all we need to build is some program. Which is somewhat great as it reduces the hardware building process to buying well-tested and known equipment. Yay!
First approach: Getting the DMX into the computer. There are plenty of DMX-to-USB-converters around but that seems overkill. I mean, we do not need a fancy virtual lighting console (were did we just come from... ah, right). We just want to read DMX datagrams and process them. So, a converter to classic rs232 would be perfectly fine.
The software's purpose is roughly clear, there is only one further challenge: In DMX, values range from 0 to 255. On the P64, we need dB-values, ranging from -70 to either 0 or +20 (if the channel supports gain as inputs and outputs do but not submixers). And, there's more: Since our hearing is quite non-linear, we will want a non-linear mapping, too. The difference between -65dB and -60dB is quite hard to hear. But the difference between -5dB and 0dB is the difference between talking or needing to scream into the ears of a person sitting next to you. Thus, I suggest the use of a hard-wired mapping, as it is a) fun and b) allows much faster access to dB-values than calculation when present as an array.
... and this is where this article stub ends. It's been sitting on my todo-stack for 4 years now and it's highly unlikly to be going anywhere. If I can help someone by publishing the non-openly documented details on the P64s serial control, you're welcome.
Have a nice day.