This project is a high-performance, secure rewrite of the X32 command-line tools in Rust. It provides a comprehensive suite of utilities for controlling, automating, and extending the capabilities of Behringer X32 and Midas M32 digital mixers.
- ⚡ Bolt Optimized: High-frequency serialization paths have been hand-optimized to eliminate unnecessary allocations and macro overhead, ensuring minimal latency in live audio environments.
- 🛡️ Sentinel Hardened: Built with safety in mind. All file and network inputs are bounded to prevent memory exhaustion (OOM) and Denial-of-Service attacks.
- 📡 MixerClient Multi-Transport: A unified, asynchronous connection manager that supports Ethernet UDP, AES50 Tunneled UDP, and USB MIDI Sysex with auto-fallback and built-in keep-alive heartbeats.
- 🧬 Model Specification Inheritance: Zero-allocation parameter parsing dynamically generated along a model inheritance chain (X32 -> XR18 -> XR16 -> XR12) via compile-time JSON specifications.
- 🧩 Modular Architecture: A collection of 30+ specialized tools built on a shared, stateful emulator and OSC library.
- 🎹 Creative Extensions: Includes advanced tools like
x32_autobeatfor BPM-syncing effects andx32_tapwfor interactive TUI-based tempo control.
The project is structured as a Cargo workspace with three core library crates and a collection of binary crates providing specialized CLI tools.
graph TD;
subgraph Libraries
osc_lib[osc_lib: OSC Encoding/Decoding];
x32_lib[x32_lib: X32 Command DSL];
x32_core[x32_core: Stateful Emulator];
end
subgraph Binaries
direction TB
subgraph Live_Performance
x32_autobeat; x32_automix; x32_tapw; x32_tap; x32_crossfade; x32_fade; x32_jog4xlive;
end
subgraph DAW_Integration
x32_reaper; x32_punch_control; x32_midi2osc;
end
subgraph Utility_Backup
x32_desk_save; x32_desk_restore; x32_get_lib; x32_set_lib; x32_copy_fx; x32_geq2_cpy;
end
subgraph Network_System
x32_emulator; x32_tcp; x32_udp; x32_ssavergw; x32_usb; x32_command; xair_command;
end
subgraph Recording_Media
x32_replay; x32_wav_xlive; x32_xlive_wav; x32_cpxlivemarkers;
end
end
x32_lib --> osc_lib;
x32_core --> osc_lib;
x32_emulator --> x32_core;
Binaries --> x32_lib;
Binaries --> osc_lib;
| Crate | Description |
|---|---|
osc_lib |
Foundational library for high-speed OSC message processing. |
x32_lib |
The primary DSL for generating and parsing X32-specific OSC commands and parameter scaling. |
x32_core |
Core emulator logic with support for /xremote client tracking and state broadcasting. |
| Crate | Category | Description |
|---|---|---|
x32_autobeat |
Live | Automatic BPM detection (Energy/Spectral) and effect synchronization. |
x32_crossfade |
Live | Smooth interpolation and scene transition engine for live shows. |
x32_tapw |
Live | Interactive TUI for setting delay tap tempo with auto-thresholding. |
x32_reaper |
Studio | Bidirectional bridge between X32 and Reaper DAW (Faders, Mutes, Pans). |
x32_punch_control |
Studio | MIDI-sync'd automation recording/playback via .xpc format. |
x32_emulator |
System | Full-featured console simulator for offline development and testing. |
Tip
See the Full Crate Index in the User Guide for the complete list of 30+ tools.
- Rust toolchain (latest stable)
- Network access to an X32/M32 console (or run
x32_emulatorlocally).
cargo build --releaseCompiled binaries are located in target/release/.
- Start the emulator:
./target/release/x32-cli x32-emulator - Send a command:
./target/release/x32-cli command --ip 127.0.0.1 "/ch/01/mix/fader 0.75"
- Discovery (This File): Quick overview and project structure.
- Conceptual Map (User Guide / Architecture): Workflow-based instructions and system design.
- Deep Reference: Individual
README.mdfiles in each crate folder and Rustdoc (runcargo doc --open).
- Original C Libraries: Patrick-Gilles Maillot (Patrick Maillot's X32 Site)
- Rust Rewrite: Google Jules & Gemini CLI.
- License: GNU General Public License v3.0 (See LICENSE).