shawn d6480a35ed
Lint & Validate / lint (push) Has been cancelled
P3-R3: Multi-track recording engine
- WAV writer with streaming support for 16/24/32-bit integer and 32-bit float
- MultiTrackRecorder with per-channel arming, arm state machine, write-ahead
  buffer queues decoupling JACK real-time thread from SD card I/O
- Punch in/out recording on individual channels with punch region tracking
- Session file format (JSON): session metadata, takes, tracks, mixer state,
  punch regions, serialization round-trip
- Take management: create, delete, rename, list, track association
- Stereo bounce engine with pan law (-3dB constant power), normalisation,
  master bus volume/mute/dim, block-based processing for memory efficiency
- Disk space monitor with configurable warning/critical thresholds, estimated
  recording time remaining, background polling, callback on threshold change
- 117 tests: sample conversion, WAV header validation, recorder lifecycle,
  session CRUD, serialization, bounce with pan/normalisation/master, integration

Integrates with JACK capture ports → mixer → recording ports → disk.
Architecture: JACK callback → recorder.write() → buffer queue → writer thread → WAV files.
2026-05-19 21:44:28 -04:00
2026-05-19 21:44:28 -04:00
2026-05-19 21:44:28 -04:00

Raspberry Pi Real-Time Audio Mixer

RPi4B-based multi-channel real-time audio mixer with custom PREEMPT_RT kernel.

Architecture

  • Platform: Raspberry Pi 4 Model B (8GB RAM)
  • OS: Raspberry Pi OS Lite (64-bit, Bookworm) + custom PREEMPT_RT kernel
  • Audio: USB audio interface with multi-channel I/O
  • Goal: Low-latency (<10ms round-trip) multi-channel audio mixing

Project Structure

├── docs/           Research, architecture decisions, manuals
│   ├── research/   Technical research reports
│   ├── decisions/  Architecture Decision Records (ADRs)
│   └── manuals/    Hardware/software manuals and references
├── src/            Source code (audio engine, DSP, UI)
├── build/          Build scripts and cross-compilation tooling
├── recipes/        Buildroot/Yocto recipes (if applicable)
├── scripts/        Utility and deployment scripts
└── wiki/           Local wiki pages

Status

Phase 1-4: Core audio stack + MIDI controller support (in progress)

  • P1-R1: System Research — USB audio, PREEMPT_RT kernel analysis
  • P1-R2: Base OS Selection — RPiOS Lite 64-bit + custom PREEMPT_RT
  • P2-R1: ALSA + JACK2 Low-Latency Config
  • P4-R1: MIDI Controller Support — Binding + Learn Mode
  • P3: Audio Engine — DSP pipeline, mixing engine
  • P4: Hardware Integration — GPIO control surface

Getting Started

Documentation coming in Phase 2+

License

TBD

S
Description
RPi4B Real-Time Multi-Channel Audio Mixer
Readme 651 KiB
Languages
Python 86.9%
Shell 5.7%
JavaScript 4.4%
CSS 2.1%
HTML 0.9%