Game Boy版の演奏データを、音源操作を追う表記と、音符・フレーズを読む表記で比較する。検証日:2026-10-02。
| コード | 内容 |
|---|---|
| codex_mml.js | 音符・音価・タイを中心にしたMML風の編曲版。3声の譜面、伴奏フレーズ、音色定義と簡易MMLリーダーを含む。 |
| codex.js | 元のAPI操作・順序・論理上のサンプル時刻を保ち、音程やエンベロープに名前を付けた版。 |
| high.js | 比較の基準となる、音源API操作と待機を並べた変換コード。 |
codex_mml.js もJavaScriptとして実行する。MML風の譜面だけでなく、末尾の再生処理まで含めてコピーする。
このリンクではコードは自動入力されないため、コピー&ペーストで試してください。
MML風の表記は、旋律と伴奏の繰り返しを追いやすい。たとえば o4 l8 d4 d4 a1 で音符と長さを読み、$D で伴奏フレーズ、@pluck8 → @pluck6 → @pluck4 → @pluck2 で音量の変化を確認できる。
音源への細かな操作を調べるときは codex.js、音楽として読み、編集するときは codex_mml.js が扱いやすい。
GameboySynth に記録用のトランスポートを接続し、出力されるレジスター操作などを比較した。GameboySynth と記録用トランスポートで最後まで実行でき、2か所の待機位置で停止を模擬して音源が解放されることを確認した。MML風の版は、標準MMLへの準拠や元の楽譜の復元を目的としたものではない。微小な再トリガーを省略し、長音のエンベロープ切替とビブラートを音色側で近似した。超高域への移動は休符と解釈し、末尾にある次ループ冒頭の短い断片も省いている。
検証したのはコードの変換と論理上の実行結果。ブラウザーでの試聴・録音波形の比較は未実施で、聴感上の一致は未確認。sleepSamples による非同期再生は、音声側への厳密なサンプル時刻の予約ではない。