https://github.com/mr-u0b0dy/audio-ninja
Wireless Immersive Audio Platform with IAMF Support
https://github.com/mr-u0b0dy/audio-ninja
atmos audio audio-calibration audio-engine dolby-atmos iamf room-correction sound spatial-audio speaker surround-sound
Last synced: 5 months ago
JSON representation
Wireless Immersive Audio Platform with IAMF Support
- Host: GitHub
- URL: https://github.com/mr-u0b0dy/audio-ninja
- Owner: mr-u0b0dy
- License: apache-2.0
- Created: 2025-12-28T03:07:36.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-16T06:50:33.000Z (5 months ago)
- Last Synced: 2026-01-16T21:59:06.663Z (5 months ago)
- Topics: atmos, audio, audio-calibration, audio-engine, dolby-atmos, iamf, room-correction, sound, spatial-audio, speaker, surround-sound
- Language: Rust
- Homepage: https://mr-u0b0dy.github.io/audio-ninja/
- Size: 7.72 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Audio Ninja 🥷

[](LICENSE)
[](https://www.rust-lang.org/)
[](https://github.com/mr-u0b0dy/audio-ninja/actions)
[](https://codecov.io/gh/mr-u0b0dy/audio-ninja)
Audio Ninja is an IAMF-first wireless immersive audio platform with a daemon-first engine, thin clients, and a full calibration + DSP pipeline.
## Highlights
- Daemon exposes a REST API on port 8080; GUI (Tauri) and CLI are thin clients
- 3D spatial rendering: IAMF, VBAP, HOA, and HRTF binaural downmix
- UDP/RTP transport with PTP/NTP clock sync, jitter buffer, and XOR FEC
- Calibration and DSP: sweeps, IR analysis, delays, trims, EQ, loudness, and DRC
- Built-in discovery (mDNS), BLE control plane, and flexible speaker layouts (2.0 to 9.1.6+)
- CI-backed workspace with fuzzing, benches, and 250+ tests
## Architecture
```mermaid
flowchart LR
Clients[GUI / CLI / HTTP] --> Daemon[audio-ninja-daemon
REST 8080]
Daemon --> Core[audio-ninja core
IAMF, render, DSP]
Core --> Transport[UDP/RTP transport
clock sync + FEC]
Transport --> Speakers[Speakers /
Headphones]
```
## Quick Start
- Prerequisites: Rust 1.70+, Linux GUI deps (`webkit2gtk-4.0`, `gtk3`, `openssl`)
```bash
git clone https://github.com/mr-u0b0dy/audio-ninja.git
cd audio-ninja
./scripts/dev-setup.sh # installs deps, builds workspace
cargo run -p audio-ninja-daemon --release
cargo run -p audio-ninja-cli --release -- status
```
## Workspace Commands
- make dev - fmt + clippy + tests
- make run-daemon - launch daemon
- make run-gui - launch Tauri GUI
## Documentation
### Quick Links
- 📖 **[Full Documentation Site](docs-site/)** - Complete VuePress site with guides and API reference
- 🚀 **[Quick Start Guide](docs-site/src/guide/quick-start.md)** - Get up and running in 5 minutes
- 🎯 **[Installation Guide](docs-site/src/guide/installation.md)** - Platform-specific setup
- 🔌 **[REST API Reference](docs-site/src/api/reference.md)** - Complete API documentation
- 🎨 **[GUI Design System](docs-site/src/design/design-system.md)** - Design guidelines and CSS components
### Component Documentation
- **Daemon**: [crates/daemon/README.md](crates/daemon/README.md) - REST API service
- **CLI**: [crates/cli/README.md](crates/cli/README.md) - Command-line interface
- **Core**: [crates/core/](crates/core/) - Audio processing library
## Status
- Completed: IAMF pipeline, VBAP/HOA/HRTF, calibration + DSP, UDP/RTP transport, CLI/GUI clients
- In progress: libiamf/AOM integration, FFmpeg bindings, expanded GUI features
## Future Plans
### Phase 2: GUI Refactoring & Branding (5 weeks, 40-50 hours)
✅ **Architecture Complete & Production-Ready** — All backend dependencies ready for frontend work
- **Logo & Theme**: Integrate professional logo (assets/logo.png) with Magma Orange color scheme
- **I/O Controls**: Device selection panels, audio source routing
- **Transport Panel**: File loading, play/pause/stop, mode selection (file/stream/mixed)
- **Layout Visualization**: 3D speaker layout with preset configurations (2.0 → 9.1.6)
- **Calibration UI**: Sweep controls, IR visualization, filter design preview
- **Stats Dashboard**: Real-time metrics (latency, packet loss, sync error, CPU/memory)
See [docs-site/src/design/phase2-tasks.md](docs-site/src/design/phase2-tasks.md) for 43 implementation tasks.
### Phase 3: Backend Audio I/O Implementation (3-4 months, 95-135 hours)
Production-ready trait-based abstraction ready for real audio backends
- **ALSA Bindings** (Linux): PCM device I/O, device enumeration, format negotiation (20-30 hours)
- **PulseAudio Bindings**: System audio routing, app-specific routing, fallback handling (15-20 hours)
- **CoreAudio Bindings** (macOS): HAL device abstraction, device detection (20-30 hours)
- **FFmpeg Codec Support**: Opus, AAC, FLAC, AC-3, E-AC-3, TrueHD decoding (25-35 hours)
- **Testing & Optimization**: Unit/integration tests, latency profiling, cross-platform validation (15-20 hours)
See [.github/copilot-instructions.md](.github/copilot-instructions.md#phase-3-backend-audio-io-implementation-production-ready) for detailed implementation plan.
## License
Apache License 2.0. See LICENSE for details.