tetorica-fm-archive

The Legend Begins — JavaScript / MML風表記の検証

Game Boy版の演奏データを、音源操作を追う表記と、音符・フレーズを読む表記で比較する。検証日:2026-10-02。

比較するコード

コード 内容
codex_mml.js 音符・音価・タイを中心にしたMML風の編曲版。3声の譜面、伴奏フレーズ、音色定義と簡易MMLリーダーを含む。
codex.js 元のAPI操作・順序・論理上のサンプル時刻を保ち、音程やエンベロープに名前を付けた版。
high.js 比較の基準となる、音源API操作と待機を並べた変換コード。

Playgroundで試す

  1. 上のリンクから試したいコードを開き、ファイル全体をコピーする。GitHub上では「Raw」を開くとコピーしやすい。
  2. Tetorica Playground を開く。
  3. エディターのコードをコピーした内容に置き換えて実行する。

codex_mml.js もJavaScriptとして実行する。MML風の譜面だけでなく、末尾の再生処理まで含めてコピーする。

このリンクではコードは自動入力されないため、コピー&ペーストで試してください。

読みやすさの所感

MML風の表記は、旋律と伴奏の繰り返しを追いやすい。たとえば o4 l8 d4 d4 a1 で音符と長さを読み、$D で伴奏フレーズ、@pluck8 → @pluck6 → @pluck4 → @pluck2 で音量の変化を確認できる。

音源への細かな操作を調べるときは codex.js、音楽として読み、編集するときは codex_mml.js が扱いやすい。

検証結果

codex.js と high.js

codex_mml.js

再現範囲

MML風の版は、標準MMLへの準拠や元の楽譜の復元を目的としたものではない。微小な再トリガーを省略し、長音のエンベロープ切替とビブラートを音色側で近似した。超高域への移動は休符と解釈し、末尾にある次ループ冒頭の短い断片も省いている。

検証したのはコードの変換と論理上の実行結果。ブラウザーでの試聴・録音波形の比較は未実施で、聴感上の一致は未確認。sleepSamples による非同期再生は、音声側への厳密なサンプル時刻の予約ではない。