Pavu Mixer is a hardware mixing desk for controlling
PulseAudio streams on
a connected computer. Think of it as a hardware version of
pavucontrol
.
More pictures in Eyecandy/
.
The Pavu Mixer is currently just a PCB fitted as the front plate of a console enclosure. This remedies the need for a custom front plate. Beneath it, an STM32F3DISCOVERY eval board is used as the controller. Connection to the computer is done over USB.
Following are the capabilities of the current hardware:
- 4 "Application Channels" + 1 "Main" Channel
- 240x240 LCD Display (driver available in
waveshare-display/
subdirectory) - Per channel:
- Mono Volume Fader
- Mute Button with green/red indicator LED
- LED as brightness-based level indicator
- Red LED as status indicator
- For the main channel, the level indicator is a 20 segment LED-bargraph instead.
- USB-B socket for connection to the computer
The firmware on the STM32F3DISCOVERY board exposes all of the "UI"
(faders, buttons, indicators, display) to the host via a custom USB class.
Messages are serialized using postcard
.
On the host, a daemon is running which communicates to the hardware and keeps track of PulseAudio state. It has a configuration file for selecting which channel controls which applications. Streams are then attached to the mixer channels automatically when they appear.
The firmware and host-side software are still in development - these features are subject to change.
- New application streams are attached to channels based on a configurable property-matching table. All streams connected to a channel will be forced to the volume reported by the fader.
- Main channel controls the currently selected default sink.
- Whenever a channel has an active stream, its reported icon will be displayed on the LCD. For streams which do not properly report an icon, a second matching table can be used to select custom icons.
Right now, only the Pavu Mixer hardware is supported. As this board is not commercially available, but a hardware mixer for PulseAudio could be interesting for other people as well, I am open to extend the host-daemon to support other boards as well. For example, there are a lot of MIDI-based digital audio mixers which would be a good candidate for support. Please open an issue on GitHub or contact me directly if interested.
Path | Contents |
---|---|
Eyecandy/ |
Pictures and "rendered" schematic (Pavu-Mixer-Schematic.pdf ). |
Hardware/ |
KiCAD project for the interface board & other hardware related files. |
hardware-tests/ |
Test-firmware for demonstrating functionality of all parts of the hardware. |
common/ |
Definitions shared between firmware and host-software (for postcard serdes). |
firmware/ |
Firmware for the STM32F3DISCOVERY board. |
host-daemon/ |
Host-side daemon for mixer communication and PulseAudio interaction. |
waveshare-display/ |
Driver for the LCD screen (see its README for details). |
It is a difficult story... Individual parts of this project are licensed under different terms:
- All files in the
Hardware/
directory (exception below) are licensed under the CERN-OHL-W. - Files in
Hardware/3D
are licensed under MIT. - The display driver in
waveshare-display/
is dual licensed under Apache 2/MIT as detailed in its own README. - The remaining files of this project (including
common/
,firmware/
,hardware-tests/
, andhost-daemon/
) are licensed under the GPL v3.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.