About this project
rtrack is a music tracker written in Rust, offering both a terminal UI (ratatui) and a native desktop GUI (egui) that share the same headless core library. It produces sound out of the box without requiring an external synth, DAW, or SoundFont.
Key capabilities include:
- Built-in synthesizer with 30 patches (saw, square, FM bell, acid, chiptune, etc.) featuring ADSR envelopes, SVF filters, sub-oscillators, FM synthesis, and per-channel effects (distortion, filter, chorus, delay, reverb).
- Sample engine supporting WAV/AIFF loading, pitch-shifted playback, loop points, transient-based slicing, and up to 32 simultaneous voices with de-clicked voice stealing.
- MIDI I/O with virtual ports, hardware routing, step and punch-in recording, aftertouch-to-filter mapping, MIDI learn for CC mapping, and clock output/input.
- Ableton Link bidirectional tempo and transport sync.
- Classic tracker-style pattern editing with modal input, piano keyboard layout, block selection, interpolation, transpose, undo/redo, and 12 effect commands.
- Song structure with multiple patterns, per-pattern row counts, order lists with repeats, position jump, and pattern break effects.
- Offline render to WAV/FLAC without an audio device, plus standard MIDI file import/export.
- Optional SoundFont (.sf2) playback for General MIDI support.
The project is structured as a Cargo workspace with three crates: rtrack-core (headless engine, audio, MIDI, data model), rtrack-tui (terminal frontend), and rtrack-gui (desktop frontend). Songs are saved as JSON (.rtrk) files. Requires Rust 1.89+ and CMake 3.14+.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.