Hardware PulseAudio Mixer (HAPX)
Project status: pre-alpha
Features
- USB connection to PC (bus powered)
- 3 volume controls (2 channels + master, should be extensible though)
- LCD display for channel selection display
- Push buttons for channel selection and mute
- LED bars to display per-channel signal levels
Prototype schematics
Source code
The source code is available at
GitHub under MIT license.
Protocol design
The following messages are needed for communication:
Message | Tech details | Bits (octets) on wire | Sender
|
channel name | channel (1/2) + name (max 63 chars) | 0CLLLLLL followed by ASCII string (L = length) | host
|
signal level | 3 × 4 bits (2 bytes) | 1000AAAA BBBBCCCC | host
|
volume change | channel (1/2/M) + level (10 bits) | 0000CCLL LLLLLLLL | device
|
mute | channel (1/2/M) + mute (on/off) | 01000CCM | device
|
channel change | channel (1/2) | 1000000C | device |
Most of the time, the only messages sent to the device are signal level updates, which are 16 bits long, so one can achieve 7.2 kHz updates even with a 115,200 bps serial line.
Channel mapping
ID | Channel
|
0 | CH1
|
1 | CH2
|
2 | Master |
Links