YM2151イベントログエディタ(TUIインターフェース)。Rust製。
YM2151シンセサイザーのイベントログ用ターミナルベースのJSONエディタです。YM2151イベントデータの可視化と編集を支援し、特にタイミング調整とイベント検査に焦点を当てています。
Rust 1.70以降が必要です。
# リポジトリのクローン
git clone https://github.com/cat2151/ym2151-log-editor.git
cd ym2151-log-editor
# ビルド
cargo build --release
# JSONファイルを指定して実行
cargo run -- path/to/your/file.json
# ファイルを指定してエディタを起動
./target/release/ym2151-log-editor your_log.json
| キー | 動作 |
|---|---|
| ↑/↓ | イベント間を移動 |
| / または ENTER | 現在行の前に新しいイベントを挿入 |
| DELETE | 現在のイベントを削除 |
| 0-9 | 待機時間を設定(0-9ミリ秒、累積モードのみ) |
| P | プレビュー再生(JSON全体を再生) |
| T | 時刻表示モードの切り替え(累積 ↔ タイムスタンプ) |
| S | ファイル保存 |
| Q または ESC | アプリケーション終了 |
エディタはJSON形式のYM2151イベントログを扱います:
{
"events": [
{
"time": 0.0,
"addr": "20",
"data": "4F"
},
{
"time": 0.01,
"addr": "08",
"data": "78"
}
]
}
time: 絶対タイムスタンプ(秒単位)addr: YM2151レジスタアドレス(16進数)data: レジスタデータ値(16進数)前のイベントからの待ち時間(デルタ)を表示します。タイミングを編集する際に便利で、イベント間の遅延を確認および調整できます。
例:
0.000000 20 4F ← 最初のイベント(時刻0)
0.010000 40 16 ← 前から10ms後
0.010000 KeyON 78 ← 前から10ms後
開始からの絶対時間を表示します。これはファイル保存時に使用される内部形式です。
例:
0.000000 20 4F ← 開始から0ms
0.010000 40 16 ← 開始から10ms
0.020000 KeyON 78 ← 開始から20ms
Tキーを押してこれらのモードを切り替えます。
レジスタ0x08(KeyON/KeyOFFレジスタ)のイベントは、読みやすさを向上させるため「08」の代わりに「KeyON」として表示されます:
0.010000 KeyON 78 ← キーオン/オフイベントを簡単に識別
0.500000 KeyON 00
src/
├── main.rs - エントリーポイントとイベントループ
├── app.rs - アプリケーション状態とロジック
├── models.rs - データ構造(Ym2151Event、Ym2151Log)
└── ui.rs - UI描画
cargo build # 開発用ビルド
cargo build --release # 最適化ビルド
test_data/sample.jsonにサンプルテストデータが用意されています:
cargo run -- test_data/sample.json
詳細な実装計画と今後のロードマップについてはIMPLEMENTATION_PLAN.mdを参照してください。
詳細はLICENSEファイルを参照してください。
完全なロードマップについてはIMPLEMENTATION_PLAN.mdを参照してください。