This project is a software mixer designed to route various inputs (local or remote applications and physical sources through line-inputs) to outputs (headphones, power amplifiers, home theater receivers, or other computers). Aimed to replace A/V receivers and preamps, the mixer supports muxing stereo, 5.1, and 7.1 sources to any speaker configuration. A filter suite including low/high-pass and roomEQ filters is built in. By default, 5.1/7.1 sources bypass band-pass filters such as the subwoofer low-pass.
The user interface is OpenGL accelerated (60 fps) and intended for touch screens. LIRC compatible remote controls are supported, as are LCDproc compatible HTPC case screens. To power on/off amplifiers and other equipment, the software is capable of sending trigger signals via Arduino either directly or on sleep timers. |
There's an alternative UI tailored for 1920x360 advertisement screens that can be incorporated e.g. in TV stands. See the attached video (click the image). |
Anyone with several computers or A/V receivers or headsets probably has, at some point, struggled with mixing the inputs to the outputs. A preamp or an A/V receiver is usually appointed to this task, but they're like so 90's. This program offers a software solution to the problem, with a focus on user interface and visuals. Although not meant for audio professionals, no compromises have been made with the features that are implemented. Internally, audio is handled as 96/192 kHz 32b float streams of 2 to 8 channels per source/destination.
As an example use case, my personal audio system consist of the following hardware orchestrated by this software:
From top to down: a headphone amplifier, a 5-channel power amplifier, a computer with quality analog outputs, and a subwoofer. (See the full setup here) | |
A touch screen connected to the computer, displaying the mixer. Inputs consist of local mplayer instances on the HTPC, remote audio (through netjack) from a Linux desktop, analog line-in from a Windows desktop, and digital line-in from a Mac desktop. |
The program connects to audio inputs and outputs via low latency JACK servers, which can also be used as ALSA backends. For outputs capable of hardware volume control (such as analog sound card outputs), volume is set using an ALSA interface to avoid loss of signal resolution.
For visualization, a frequency domain presentation, per-channel power bars (with signal clipping detection), and time domain signal state monitors are available. The signal state monitors scale dynamically according to signal amplitude.
Especially subwoofers almost always require room equalization ("anti-mode") to combat standing waves that make some frequencies pop out unnaturally. This software has built-in room calibration. One needs to record frequency sweeps at the most common listening locations in the room, provide a target frequency response preference (e.g. +3dB bass boost), and the software evaluates millions of filter permutations (via a genetic algorithm) and selects the optimal ones. Again, as a hobby project, no external libraries or other help was used.
Will be released under the GPL