Echomixer

Echomixer is a program similar to Echo console, the all-in-one mixer provided by Echoadio that runs under Windos and Macintrash. This document is meant to explain briefly the relations between the various controls of Echomixer. If you don't know what they are why did you buy an expensive professional card ? :)

Although ALSA has a nice standard interface to control the various setting of the card and there are already good generic tools, Echoaudio soundcars have a quite complex set of controls that usually don't fit well generic mixers.

Let's start with the functional schematics of the Echoaudio soundcards: All cards, but the Mia and Mia-midi (see below), work like this. Only the Gina20 and the Layla20 can control the input volume.

The Mia and the Mia-midi are a bit different: the number of physical output channels is lower than the number of "voices" and there is another mixer to let those 8 virtual channels to exit through 4 (2 analog and 2 digital) physical channels. Those cards also control the line output ("master") volume.

Indigo and Indigo DJ cards don't have input channels, thus they don't have the monitor mixer.

Note that non-vmixer cards do not have a line-out volume control. That feature is emulated by Emixer. It's implemented by changing the monitor levels and the PCM volumes for any output channel according to the virtual line-out setting.

The first time you run Emixer there isn't a config file, so it read the current control setting from the driver. If you don't have a Vmixer card it will set the PCM volumes according to the current setting. This probably is not what you want. It's likely you prefer to move all gains at full volume (0 dB, not +6 !) and set the volume via the "Line" (aka master) volume instead. When you change the PCM volume (that is the sound that comes from the computer), you don't change the volume of the sound that comes from the monitor mixer.

The most complex part is the monitor mixer. It allows the user to route the sound that comes from any input channel to any output channel, with a different volume each one, so you can listen in real-time what you're recording without any help by the computer. Setting the monitor levels or the PCM gains does not affect recording.

This picture shows an example mixer with 4 inputs and 4 outputs. The "in > out" boxes are the mixer units. They take an input, change its gain and adds the result to an output channel.
The Vmixer works in the same way, with the only difference that the Vmixer mixes sound that comes from the computer, while the monitor mixer mixes sound that comes from the card's inputs.

This screenshot show how Echomixer look for a Gina24. I drew in red the relations between the various wigdets. You can see the big graphic mixer (10 inputs and 16 outputs), where only some cells are active. S/PDIF digital mode is selected, so only 2 digital i/o channels are available. Switching to ADAT, which supports 8 i/o channels, also enables all the mixer cells. The Graphic mixer does accept user input: just keep the left mouse button pressed on a cell and move the mouse vertically to change the volume of that cell. Any change is immediately reported to the other windows (Mixer and Line gains). The leftmost column shows the input levels and (with vmixer cards only) it also shows the levels of the virtual channels. The bottom row of the graphic mixer shows and controls the line output volume. NB: the sum of all the levels of a column is not equal to the level shown in the last cell because the cards (except for vmixer cards) do not provide the level of the sound generated by the computer.

The VU-meter shows the input and output levels. The clipping indicator is not precise: the card does not detect clipping itself. The VU-meter just paints the peak line in red when it reaches 0dB, but it doesn't mean it's really clipping because the level is measured with a resolution of 1dB.

When the "Gang" button is pressed, left and right channels controls do move toghether. It works for the mixers, too, but it's a bit different. For example moving the A0->D0 (left in to left out) fader makes the A1->D1 (right in to right out) fader move. If you move the A1->D0 fader, it also moves A0->D1 (channels are inverted).

If you are used to the mixer arrangement of the Echoadio console under windos or MacOS, you can compile Emixer in "reverse" mode. In the default mode the mixer window allow you to select and input channel and you can route the sound that come from it to the various outputs. In reverse mode it's the opposite: you select an output channel, then you set the volume of the input channels to be sent to that output (as Echoaudio console does). On the Gina24 it looks like this.
To compile Emixer in reverse mode, you have to add "-D REVERSE" parameter somewhere in the "cc -Wall...." command line.

On exit Echomixer saves the current settings in ~/.Emixer_cardname and reloads those setting at startup. I did it for two reasons. The first is that it's a useful feature. The second is that the card's settings are not enough to restore the Emixer settings because some cards don't have the line-out volume controls. Since that control is emulated Emixer also has to save its status, otherwise it gets lost.

The input clock pop-down menu is updated every second. It allows the user to select a clock source only if the card detects a valid signal. Furthermore, you can't select S/PDIF input clock is the digital mode is ADAT and viceversa. The digital mode cannot be changed if an application is using a sound channel.