Show HN:Miditui – 一款藉助 AI 開發的終端 MIDI 編曲、混音與播放應用
一款名為 Miditui 的開源終端應用程式,以 Rust 編寫,提供類似數位音訊工作站 (DAW) 的 MIDI 編曲、混音與播放體驗。值得注意的是,其開發過程得到了 Claude Opus 4.5 的大力協助,展現了現代程式設計代理在創建複雜 TUI 方面的能力。
Navigation Menu
Search code, repositories, users, issues, pull requests...
Provide feedback
We read every piece of feedback, and take your input very seriously.
Saved searches
Use saved searches to filter your results more quickly
To see all available qualifiers, see our documentation.
An interactive terminal app/UI for MIDI composing, mixing, and playback—written in Rust
License
Uh oh!
There was an error while loading. Please reload this page.
minimaxir/miditui
Folders and files
Latest commit
History
Repository files navigation
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 expect a terminal app to have:
Watch this video to see miditui in action (enable sound within the in-line player on the top-right):
Disclosure: This crate was developed with the assistance of Claude Opus 4.5, initially as a personal experiment just to see how well modern coding agents can handle TUIs and I figured a full-on MIDI mixer which has atypical UI requirements would be a more interesting test. Opus 4.5 did a good job and after a demo went viral on X people were asking for me to release it, so I decided to spend extra time polishing and comprehensively testing the app before then open-sourcing it. I have written a full analysis of the agentic coding workflow—including the prompts provided to Opus 4.5—in the agent_notes folder.
Installation
The app binaries can be downloaded from the Releases page for your platform of choice, or by using the following terminal commands:
For Windows, download and unzip the binary from here.
If Rust is installed, you can install the crate directly via cargo:
Additionally, a SoundFont file (.sf2) is required to run miditui. There are many free SoundFonts which are commercially friendly for music generation: a small one is TimGM6mb.sf2 (6 MB, direct download link), while a more robust SoundFont is GeneralUser GS (32.3 MB, via the "GeneralUser GS 2.0.2 w/ documentation rev. 4" link).
It is also strongly recommended to use a terminal that support horizontal mouse scrolling which not all do: I recommend Ghostty.
Example Usage
To run miditui: if you downloaded the binary, run it in the terminal with ./miditui. If you installed via Rust, run cargo run. On the first load, the app will prompt you to select the path to a SoundFont: the path to the SoundFont will be saved for future runs.
miditui opens in Normal Mode, with a combined Piano Roll and Project Timeline view. In this mode, you can move the cursor with the arrow keys and press Enter to insert notes, or you can double click where you want to insert the note, or even drag-and-drop notes. This mode also allows for the most keyboard shortcuts, such as g to cycle between views.
To play your composition, press Space. You can click the time ruler to seek to a specific point and . to reset to the start.
Insert Mode, entered by pressing i or right-clicking, allows inserting notes with less friction and playing back notes in real time as if the keyboard was a piano. Single-clicking areas on the piano roll immediately inserts notes, and playing multiple notes on the keyboard at the same time also works.
With a Track selected, you can press a to add a track, m to mute a track, or s to play the track as a solo.
You can save your project to a JSON/MIDI file with Ctrl+S or export it as an uncompressed .wav file with e.
There are a very large number of keyboard shortcuts that are too big to fit into the README: press ? in the app for documentation. Experimentation is encouraged, and if you break something, Ctrl+Z to Undo!
If you want example MIDIs for testing and opening them with Ctrl+O, you can view the /examples folder.
Notes
License
MIT
About
An interactive terminal app/UI for MIDI composing, mixing, and playback—written in Rust
Resources
License
Uh oh!
There was an error while loading. Please reload this page.
Stars
Watchers
Forks
Releases
1
Packages
0
Languages
Footer
Footer navigation
相關文章