Bringing legacy professional audio hardware back to life.
Modern operating systems dropped support for non-class compliant USB audio devicesβhardware that doesn't follow the standard USB Audio Class specification. These devices require vendor-specific drivers, and when manufacturers abandon them, perfectly good professional equipment becomes unusable.
Ozzy fixes that.
This is an open-source, reverse-engineered driver supporting non-class compliant USB audio interfacesβhigh-end DJ mixers and audio processors that were left behind when official driver support ended.
Currently Supported Devices:
- Allen & Heath Xone:DB4, DB2, DX, 4D (Ploytec-based protocol)
More devices can be addedβthe architecture separates the audio engine from device protocols.
Standard USB Audio Class devices work automatically with any modern OSβthey follow a universal protocol. But professional hardware often needs:
- Custom audio routing beyond simple stereo in/out
- Hardware-specific DSP control and mixer integration
- Proprietary USB protocols for low-latency performance
- Special MIDI implementations for controller integration
These devices never worked with generic OS drivers. They require vendor-specific drivers. When vendors stop supporting them, the hardware stops working on new OS versions.
Ozzy reverses the protocol and provides modern driversβso your equipment keeps working.
| Device | Channels | Sample Rates | Status |
|---|---|---|---|
| Allen & Heath Xone:DB4 | 8Γ8 | 44.1/48/88.2/96 kHz | β Perfect |
| Allen & Heath Xone:DB2 | 8Γ8 | 44.1/48/88.2/96 kHz | β Perfect |
| Allen & Heath Xone:DX | 8Γ8 | 44.1/48/88.2/96 kHz | β Perfect |
| Allen & Heath Xone:4D | 8Γ8 | 44.1/48/88.2/96 kHz | β Perfect |
Ozzy provides native kernel-mode drivers for maximum performance and compatibility.
Flexible architecture supporting three backend implementations:
Current: Kernel Extension (Kext) - Recommended
- Audio: 8Γ8 channels via CoreAudio HAL
- MIDI: Full CoreMIDI support with lock-free ring buffers
- Latency: Sub-millisecond performance via zero-copy ring buffers
- Requirements: macOS 11+, SIP modified for kext loading (
csrutil enable --without kext) - Status: β Fully implemented and stable
Planned: DriverKit Extension (Dext)
- Modern sandboxed system extension
- Requires Apple entitlements for production use
- Same performance as kext, future-proof architecture
- Status: π§ In development (legacy prototype in
legacy/mac-coreaudio/)
Planned: Userspace Daemon
- No kernel extension required
- Works with full SIP enabled
- Slightly higher latency but maximum compatibility
- Status: π§ Planned
All backends share the same CoreAudio HAL and CoreMIDI driversβonly the USB communication layer changes. Choose the backend that fits your security and performance requirements.
Location: macos/
Standard ALSA kernel module with automatic transfer mode detection.
- Audio: 8Γ8 channels (PCM)
- MIDI: ALSA Sequencer In/Out
- Modes: Automatic BULK/INTERRUPT transfer detection
- Integration: Works seamlessly with JACK, PulseAudio, PipeWire
- Location:
linux/
Coming soon. WASAPI kernel-mode driver in development.
Why kernel mode?
Non-class compliant devices need direct USB pipe access and precise timing that's only possible in kernel space. User-space solutions add latency and complexityβkernel drivers provide the clean, low-latency performance these professional devices were designed for.
Quick Install:
- Open Terminal and navigate to the
macos/directory - Run:
./install.command - Enter your password when prompted
- Plug in your mixer
The installer automatically:
- β Checks SIP configuration
- β Compiles the kernel extension
- β Builds HAL and MIDI drivers
- β Installs to system directories
- β Configures auto-loading at boot
- β Starts drivers immediately
Requirements:
- macOS 11+ (Big Sur or later)
- SIP modification: Run
csrutil enable --without kextin Recovery Mode - Apple Developer certificate in Keychain (free Apple ID works)
Uninstall: Run macos/uninstall.command
Troubleshooting: Run macos/debuglogs.command to collect diagnostic logs
For detailed information, see macos/README.md
- Clone and build:
git clone https://github.com/mischa85/snd-xonedb4 cd snd-xonedb4 sudo ./install_linux.sh - That's it. We even reload the module for you.
If you are a developer or want to build the latest code, you must code-sign the binaries.
cd linux
make
sudo make install
sudo modprobe snd-xonedb4Uninstall: Run linux/uninstall.sh
βββββββββββββββββββ
β Audio Apps β
β (Logic, etc) β
ββββββββββ¬βββββββββ
β CoreAudio
ββββββββββΌβββββββββ Shared Memory βββββββββββββββ
β OzzyHAL βββββββββββββββββββββββββββΊβ OzzyKext β
β (HAL Driver) β Ring Buffers β (Kernel) β
βββββββββββββββββββ ββββββββ¬βββββββ
β USB
ββββββββΌβββββββ
β Hardware β
β (Xone:DB4) β
βββββββββββββββ
Components:
- OzzyKext - Kernel extension handling USB communication
- OzzyHAL - CoreAudio HAL driver for audio I/O
- OzzyMIDI - CoreMIDI driver for MIDI I/O
Zero-copy architecture with lock-free ring buffers in shared memory for minimal latency.
Ozzy is designed as a reference implementation for supporting non-class compliant USB audio devices.
Most USB audio driver examples you'll find online are either:
- Class-compliant only - They work with standard UAC devices but can't handle vendor protocols
- User-space hacks - They add latency and complexity to work around kernel restrictions
- Closed source - Manufacturers don't share how their protocols work
Ozzy provides a clean, open-source example of how to:
- Reverse engineer vendor-specific USB audio protocols
- Implement kernel drivers for direct USB pipe access
- Build zero-copy architectures with shared memory ring buffers
- Support multiple platforms with a shared protocol layer
- Device-agnostic core: The audio engine (
OzzyCore) is separated from device protocol implementations, making it easy to support additional vendors - Platform-portable: Linux and macOS implementations share the USB protocol code
- Performance-first: No unnecessary data copies, context switches, or latency-inducing abstractions
- Lock-free design: Ring buffers use atomic operations for thread-safe, real-time audio
Ozzy/
βββ linux/ # Linux ALSA kernel module
βββ macos/ # macOS kext + HAL/MIDI drivers
β βββ OzzyCore/ # Device-agnostic audio engine
β βββ Devices/ # Device-specific protocol implementations
β βββ Backends/ # Platform backends (Kext, future Dext)
βββ windows/ # Windows WASAPI driver (WIP)
βββ legacy/ # Archived experiments and old implementations
Whether you need to support your own legacy hardware or understand how professional audio drivers work, this codebase provides a solid foundation.
macOS driver won't load?
- Check SIP status:
csrutil status(should show "Kext Signing: disabled") - View kernel logs:
sudo dmesg | grep Ozzy - Collect debug logs: Run
macos/debuglogs.command
No audio device appearing?
- Ensure hardware is connected
- Restart CoreAudio:
sudo killall coreaudiod - Check Audio MIDI Setup app
Linux module issues?
- Check kernel logs:
dmesg | grep xonedb4 - Verify module loaded:
lsmod | grep snd_xonedb4
Reporting Issues: When filing a bug report, please include:
- Platform and OS version
- Device model
- Debug logs (use
macos/debuglogs.commandon macOS) - Steps to reproduce
The legacy/ directory contains archived driver implementations:
- mac-coreaudio/ - DriverKit-based system extension (requires SIP disabled)
- mac-hal/ - Early user-space HAL plugin experiments
- Old installation scripts and utilities
These are kept for reference but are not actively maintained.
If this driver saved your mixer from the e-waste bin, consider supporting the development.
MIT License. Do whatever you want with it.
See LICENSE for details.