A high-performance MIDI to audio renderer written in Rust, optimized for speed and efficiency using SIMD and parallel processing.
Warning
Alpha Version: This software is currently in an alpha state. You may encounter bugs or unexpected behavior.
- Extreme Performance: Optimized rendering engine utilizing SIMD (Single Instruction, Multiple Data) and multi-core parallel processing via Rayon.
- SoundFont Support: Supports both SF2 and SFZ formats.
- MIDI Analysis: Built-in fast MIDI analysis tool to visualize note distribution, track counts, and estimated polyphony.
- Streaming Engine: Efficient memory usage by streaming MIDI data and pre-loading samples.
- Batch Processing: Convert multiple MIDI files simultaneously.
- Built-in Limiter: High-quality look-ahead limiter to prevent clipping and ensure consistent output levels.
- Modern GUI: Intuitive interface built with
egui, featuring real-time system monitoring (CPU/Memory) and taskbar progress integration (Windows). - Flexible Export: Supports multiple output formats including WAV, MP3, OGG, FLAC, and M4A (via FFmpeg).
- Customizable Output: Wildcard support for dynamic filename templates (e.g.,
{name},{notes},{duration}).
- Basic MIDI Support: Currently focuses on high-speed rendering and does not support advanced MIDI events such as Pitch Bend, Modulation, or Expression. Only Note On/Off and Velocity events are processed.
- Stability: As an alpha version, stability is not guaranteed. Please back up important data before use.
- Language: Rust
- GUI Framework: egui / eframe
- Audio Engine: Custom SIMD-optimized renderer using components from
rustysynthandmidly. - Parallelism:
rayon - Audio I/O:
hound,cpal,memmap2
- Rust: Latest stable version.
- FFmpeg (Optional): Required for non-WAV export formats (MP3, OGG, etc.). Must be in your system
PATH.
To build and run the application:
cargo run --releaseThe application is highly optimized in --release mode. It is recommended to use release builds for production rendering.
- Add SoundFonts: Click "Add Source" to load your SF2 or SFZ files.
- Add MIDI: Drag and drop or click "Add MIDI" to select files.
- Configure Settings: Adjust volume, limiter settings, and output format in "Audio Settings".
- Render: Click "Start Rendering" to begin the process.