コンテンツにスキップ

PSG (エンベロープ・ノイズ)

PSG (SSG) は、CH0〜CH2 (PSG_A〜PSG_C) で鳴らします。

PSG のソフトウェア音量エンベロープ

フレームごとの音量の表を、曲のヘッダで定義して、チャンネルに割り当てます。

; psg_env_<NN>=<v0>,<v1>,...[/<ループ部の v0>,<ループ部の v1>,...]
  • NN は 10 進のインデックス (0〜63) です。
  • 値は 1 フレームごとの音量で、MML の v と同じ 0〜15 です。
  • / より後ろは ループ区間 です。/ がないときは、最後の値を保ちます。
  • 値が範囲外、表が空、/ が 2 つ以上のときは、エラーになります。
; psg_env_00=15,14,13,12,11,10/9,8,9,8
CH0: [EV 0] o4 L4 c d e f
コマンド 意味
[EV <n>] 表 n をチャンネルに割り当てる。音符を鳴らすたびに、表の先頭から再生します
[EV -] 割り当てを解除する

; psg_envelope_loop=<ch,...> を書いたチャンネルは、休符の間もエンベロープの再生を続けます。

PSG のノイズ [FC xx]

[FC xx] (xx は 16 進数) で、ノイズを制御します。

@N をノイズ周期の指定として使いたいチャンネルは、曲のヘッダに ; psg_noise_timed_channels=<ch,...> を書いて指定します。

関連する曲ヘッダ

  • ; ssg_pitch_table=mako|opna|ay — SSG の音程テーブルの選択
  • ; psg_rest_hold_volume_channels=<ch,...> — 休符でも PSG の音量を保つ

詳しくは 曲ヘッダディレクティブ を参照してください。