
2026/01/09 1:57
**Show HN:** 「Miditui」―MIDI作曲・ミキシング・再生用のターミナルアプリ/UI ---
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
Miditui は Rust で書かれたインタラクティブなターミナルベースの MIDI エディタとプレイヤーで、コンソール内に完全な DAW ライクなワークフローを提供します。パンニングやノート選択、ピアノキークリック用のマウスサポート、およびライブ再生を表示するピアノロールビューがあります。Insert モードは 2 オクターブ QWERTY 配列(Z‑M と Q‑I 行)を使用し、ユーザーが高速にノートを入力またはクリックできるようにします。リアルタイム低遅延オーディオ(44.1 kHz)は rustysynth により処理され、SoundFont ファイルが必要です。推奨ファイルには TimGM6mb.sf2(約 6 MB)と GeneralUser GS(約 32 MB)が含まれます。
ユーザーはミュート/ソロ、ボリューム/パン制御、自動チャンネル割り当て、およびトラックごとの設定をサポートする無限の MIDI トラックで作業できます。アプリは標準 MIDI スペック外にメタデータ、選択された SoundFont パス、トラック状態を格納したカスタム
.oxm バイナリとしてプロジェクトを自動保存します。キーボードショートカットには g(ビューの切替)、Space(再生開始/停止)、.(先頭へジャンプ)、i / 右クリック(Insert モード) 、a(トラック追加)、m/s(ミュート/ソロ)、Ctrl+S(保存)、e(WAV エクスポート)、Ctrl+Z(元に戻す)、?(ヘルプリスト)が含まれます。プロジェクトは MIDI、JSON、または WAV としてエクスポートできます。
インストールは GitHub Releases の事前ビルドバイナリ(macOS Apple Silicon、macOS Intel、Linux ARM64、Linux x86_64、Windows)から利用可能で、Rust がインストールされていれば Cargo でもインストールできます。Miditui は MIT ライセンスで配布され、
/examples にサンプル MIDI を付属しています。軽量なターミナルインターフェースは、開発者、CLI ワークフローを好むミュージシャン、CI パイプライン、および音楽生成が必要な組み込みシステムに最適です。
このバージョンは元のリストから主要なポイントをすべて保持しつつ、主旨を明確かつ曖昧さのない表現でまとめています。
本文
miditui
Crates.io
MIDI の作曲・ミキシング・再生を行う対話型ターミナルアプリ/UI(Rust で実装)。
miditui は、ターミナル上でも DAW に似た体験ができるように設計されており、ターミナルアプリならではの機能を多く備えています。
- フルマウスサポート:クリック・ドラッグ・スクロール・ダブルクリック・右クリックすべてが動作し、ビューのパンやノート選択、ピアノキーをクリックして演奏することも可能です。
- ピアノローラービュー:曲の再生中にノートがどこで鳴っているかを視覚化します。
- インサートモード:キーボード(またはピアノロール上のクリック)からリアルタイムで音楽を作成できます。2 オクターブ QWERTY 配列(Z–M と Q–I 行)で、入力と同時にライブオーディオが再生されます。
- プロジェクトタイムラインビュー:すべての MIDI トラックを時間軸上に表示し、各タイムステップでアクティブなノートを確認できます。
- 低遅延 44.1 kHz オーディオ(rustysynth を使用)。
- タイムラインシーク:タイムラダーをクリックするだけでトラックの任意の位置へジャンプします。
- 無制限 MIDI トラック:各トラックごとにミュート/ソロ、ボリューム/パン(L/R)コントロールがあり、自動的に MIDI チャンネルが割り当てられます。
- 自動保存:定期的にプロジェクトを保存し、アプリ再起動時に自動で読み込みます。
- Undo/Redo:作業のロスを防ぐためにサポートしています。
- インポート/エクスポート:MIDI と JSON ファイルの取り込み・書き出しが可能です。また、音楽を WAV 形式でエクスポートできます。
下記ビデオでは
miditui の動作をご覧いただけます(右上のインラインプレイヤー内でサウンドを有効にしてください):
miditui.mp4
開示
本クレートは Claude Opus 4.5 の協力を得て開発されました。最初は個人実験として、モダンなコーディングエージェントが TUI をどれだけうまく扱えるかを試す目的で始めました。X でバイラルデモが話題になった後、アプリを磨き徹底的にテストし、オープンソース化しました。エージェント型コーディングワークフローの完全な分析(Opus 4.5 に渡したプロンプトも含む)は
agent_notes フォルダにあります。
インストール
アプリバイナリはご自身のプラットフォーム向けに Releases ページからダウンロードできます。あるいは、以下のターミナルコマンドを実行して取得してください:
# macOS Apple Silicon curl -sL https://github.com/minimaxir/miditui/releases/latest/download/miditui-macos-arm.tar.gz | tar xz # macOS Intel curl -sL https://github.com/minimaxir/miditui/releases/latest/download/miditui-macos-intel.tar.gz | tar xz # Linux ARM64 curl -sL https://github.com/minimaxir/miditui/releases/latest/download/miditui-linux-arm64.tar.gz | tar xz # Linux x64 curl -sL https://github.com/minimaxir/miditui/releases/latest/download/miditui-linux.tar.gz | tar xz
Windows 版は Releases ページからバイナリをダウンロードして解凍してください。
Rust がインストールされている場合は、Cargo で直接クレートをインストールできます:
cargo install miditui
SoundFont の必要性
miditui は SoundFont ファイル(.sf2)を必要とします。無料のオプションとして以下が挙げられます:
(≈ 6 MB)– 直接ダウンロードリンク。TimGM6mb.sf2
(≈ 32.3 MB)。GeneralUser GS 2.0.2 w/ documentation rev. 4
水平マウススクロールをサポートするターミナルの使用が推奨されます。Ghostty をおすすめします。
使い方例
-
アプリ起動
./miditui # バイナリをダウンロードした場合 cargo run # Rust 経由でインストール済みの場合 -
初回実行時に SoundFont のパスを選択します。以後はそのパスが保存されます。
-
は ノーマルモード でピアノローラとプロジェクトタイムラインを同時表示します。miditui- 矢印キーでカーソル移動、Enter でノート挿入。
- ダブルクリックやドラッグ&ドロップでノート操作。
- キーボードショートカット(例:
でビュー切替)も利用可能。g
-
作曲を再生するには Space を押します。タイムラダーをクリックしてシークし、
で開始位置にリセット。. -
インサートモード は
を押すか右クリックで入ります:i- よりスムーズなノート挿入。
- キーボードをピアノのようにリアルタイム再生。
-
トラックが選択されている状態で次のキーを使用します:
– 新規トラック追加a
– ミュート切替m
– ソロ切替s
-
プロジェクトを JSON/MIDI 形式で保存するには Ctrl+S、未圧縮 WAV をエクスポートするには
。e -
すべてのキーボードショートカットについてはアプリ内で
を押してください。?
実験を重ねることが推奨されます。問題が起きたら Ctrl+Z で Undo します。 -
テスト用 MIDI は
フォルダにあります(Ctrl+O で開く)。/examples
備考
- ターミナルのサポート差異によりキーリリースイベントが安定して検出できないケースがあります。ピアノキー入力はキーを保持したまま長時間演奏することはできません。
- 音楽ファイルは独自の
バイナリ形式で自動保存され、曲メタデータに加えて SoundFont パスや各トラックのミュート/ソロ状態を格納します。.oxm
のすべての色はターミナルのカラースキームから取得されます。例示画像/動画で使用した Ghostty テーマは David Crespo 氏(こちら)が提供しています。フォントは JetBrains Mono を使用。miditui- デモ動画に再生されている音楽は
(S. Christian Collins 著)で、GitHub 上のDance.mid
フォルダにあるほかのデモ MIDI も参照できます。/examples
ライセンス
MIT © minimaxir