TL;DR
Miditui is a Rust-written terminal app that offers a DAW-like experience for composing, mixing, and playing MIDI projects inside a terminal. It supports mouse interactions, a piano-roll, real-time keyboard input, autosave, undo/redo, import/export (MIDI/JSON/WAV), and requires a SoundFont file to produce audio.
What happened
A new open-source project called miditui provides an interactive terminal user interface for composing, mixing and playing back MIDI files. Built in Rust, the app exposes a piano-roll and project timeline, full terminal mouse support (click, drag, scroll, double-click, right-click), Insert mode for live note entry using a two-octave QWERTY layout, and low-latency 44.1kHz audio via rustysynth. Miditui supports unlimited MIDI tracks with per-track mute/solo and volume/pan controls, autosaves projects to a bespoke .oxm format that records extra metadata (including SoundFont path and track mute/solo status), and offers undo/redo. Users can import/export MIDI and JSON, and export uncompressed WAV. Binaries are available for macOS (Intel/Apple Silicon), Linux (x64/ARM64) and Windows; the crate can also be installed via cargo. The project is released under the MIT license and the author notes the codebase was developed with assistance from Claude Opus 4.5.
Why it matters
- Brings DAW-style editing and mixing tools to a terminal environment, useful for keyboard-driven or low-GUI workflows.
- Low-latency audio via rustysynth and real-time keyboard input let users prototype musical ideas without a full GUI DAW.
- Autosave and undo/redo reduce risk of data loss during terminal-based composition sessions.
- Open-source MIT license and cross-platform binaries lower the barrier to experimenting with terminal-based music tools.
Key facts
- Written in Rust and available as a downloadable binary for macOS (Intel/Apple Silicon), Linux (x64/ARM64) and Windows.
- Can also be installed from crates via cargo install miditui.
- Requires a SoundFont (.sf2) file to run audio; example SoundFonts mentioned include TimGM6mb.sf2 and GeneralUser GS.
- Provides a piano-roll view, project timeline, Insert mode with a two-octave QWERTY layout, and timeline seeking by clicking time rulers.
- Supports unlimited MIDI tracks with automatic MIDI channel assignment, per-track mute/solo, and volume/pan controls.
- Audio playback uses rustysynth at 44.1 kHz and projects autosave to a .oxm binary that stores extra metadata like SoundFont path and mute/solo status.
- Includes import/export for MIDI and JSON and can export uncompressed WAV files; many keyboard shortcuts are available within the app.
- The repository is public under the MIT license; the GitHub listing shows community interest (star count visible in repository metadata).
- Author discloses development assistance from the Claude Opus 4.5 coding agent and has published agent_notes describing that workflow.
What to watch next
- Compatibility and behavior differences across terminal emulators (some terminals lack horizontal mouse scrolling or other features) — not confirmed in the source
- Potential improvements for detecting key release events to enable held-note behavior (current limitations are noted) — not confirmed in the source
- Future releases or community contributions that expand audio engines, SoundFont handling, or cross-platform polish — not confirmed in the source
Quick glossary
- MIDI: A protocol for communicating musical performance data (note on/off, velocity, control changes) between devices and software.
- SoundFont (.sf2): A file format containing sampled instrument sounds used to synthesize audio from MIDI data.
- Piano roll: A visual representation of MIDI notes over time where pitch is vertical and time is horizontal, commonly used for editing sequences.
- DAW: Digital Audio Workstation — a software application for recording, editing, mixing, and producing audio and MIDI tracks.
- TUI: Terminal User Interface — an application interface built to run inside a text terminal rather than a graphical environment.
Reader FAQ
Which platforms does miditui support?
Binaries are provided for macOS (Intel and Apple Silicon), Linux (x64 and ARM64) and Windows; it can also be installed via cargo.
Do I need additional files to produce sound?
Yes. The app requires a SoundFont (.sf2) file; examples referenced include TimGM6mb.sf2 and GeneralUser GS.
Can I export audio or share projects?
Yes. Miditui can import/export MIDI and JSON, export uncompressed WAV files, and autosaves projects in a .oxm binary format.
Was any AI used in development?
The repository author discloses that development was assisted by the Claude Opus 4.5 coding agent and agentic workflow notes are included in agent_notes.
Does keyboard-held input extend notes?
Key release events cannot be reliably detected across terminals, so the piano-key-input intentionally does not support holding keys to extend notes.
miditui Crates.io An interactive terminal app/UI for MIDI composing, mixing, and playback—written in Rust. miditui allows for a DAW-like experience in the terminal and has many features that you wouldn't…
Sources
Related posts
- Infinix at CES 2026: smartphones that blend design flair with practical features
- Miditui: Terminal-based MIDI composer, mixer and playback UI in Rust
- Oh My Zsh adds bloat — Minimal Zsh setup to reduce shell startup time