]]このセクションでは、装飾音符、擬似エコーといった、音符を加工するコマンドを解説しています。他の音楽ドライバでは見慣れない、PMD独自のもので、実際は使用しなくても別のMML表現でも可能なものですが、使いこなす事が出来れば、よりリアルな、少ない音源数をより上手に使った演奏処理を手軽に得る事が出来ます。PCM(AD,86,PPZ)ソロパートに有効なコマンドで、そこから指定する音符に、コンパイラ上で装飾音符を自動的に付けます。)出力する音程に対して、depth分(半音単位)ずらした音程から、speedのスピードで本来の音程に戻ってくる装飾音符になります。speed値は、lを付加した場合は音長、付加しない場合は内部クロックの値で設定します。すると、音が繋がらず、glissの様になります。|speed×depth|以下の音符長が指定された場合は、処理は行なわれません。指定すると、通常に戻します。コンパイラ上で展開しているので、使いすぎるとデータサイズが大きくなってしまいます。コマンドは使用出来ません。PCM(AD,86,PPZ)そこから指定する音符に、コンパイラ上で自動的に擬似エコーを掛けます。エコーを掛けたいがパートが足りないといった場合に有効です。)実際には、Keyon後、内部クロックがdelay分進んだらKeyoff(タイフラグが立っている場合はkeyoffしません)し、音量をdepth分増減させ、もう一度Keyonします。継続フラグが立っている場合はそれを音長の許す限り繰り返します。delay値は、lを付加した場合は音長、付加しない場合は内部クロックの値で設定します。Keyoff後は、元の音量に戻ります。指定されている場合、Vコマンドレベルで扱われます。delay以下の音符長が指定された場合は、処理は行なわれません。指定すると、通常に戻します。Sコマンドと同様、コンパイラ上で展開しているので、使いすぎるとデータサイズが大きくなってしまいます。%を付けて細かく指定する場合、音量の変化範囲は-128〜+127となります。PCMの場合は音量は0〜255ですので、現在の音量値+127または-128以上の変化はしないことになります。コマンドは使用出来ません。FMFM音源部でのみ指定可能で、指定したスロットのkeyonを遅らせます。合計した値を指定します。delay値は、lを付加した場合は音長、付加しない場合は内部クロックの値で設定します。場合のみ、数値2(音長)は省略出来ます。そこから、スロット3,4を、8分音符分keyonを遅らせるようにします。指定したdelay値以下の長さの音符が来た場合、keyonを遅らせたスロットのkeyonはされません。]]このセクションでは、音の出力位置(パン)を設定するコマンドを解説します。OPNやSSGのように、音源自体がモノラルである場合には無効です。PCM音の出力位置(パン)を設定します。設定する数値は以下の通りです。逆相とは、左右の位相を逆にする事です。効果としては、通常の演奏よりも後ろで鳴っているように感じます。ヘッドホンをしていると如実に効果を得る事が出来ます。PCM音の出力位置(パン)及び、正相/逆相を指定します。PCM(86,PPZ)パートで使用した場合に限り、細かい指定が可能です。]]このセクションでは、YM2608で使用出来るリズム音源を制御するコマンドを解説します。通常、リズムを演奏するパートに同時に表記しておくと解りやすくなると思います。リズム音源でしかリズムを演奏しない場合は、SSGリズムパートを利用するのが良いでしょう。R定義リズム音源の各音を出力/停止します。各コマンドとリズム音の対応は、以下の通りです。)pを付けると、音の停止(ダンプ)になります。同時に出力したい場合は、¥s¥t¥iというように指定して下さい。Drumを同時に鳴らします。リズム音源のCymbalの音を止めます。p3と、間を離して指定して下さい。出力間にかなり大きなウエイトを必要とします。事実上連続で出力される場合は必要なウエイトが入らず、正常に演奏されない場合があります。SHOTの後に他のリズム音のDUMPコマンドが入った場合に顕著に症状が出るようですので注意してください。PMDが自動的にウエイトを挿入し、32分刻みでハイハットが正常に出力される。ウエイトが挿入されないので、ハイハットの出力が異常になる場合がある。R定義リズム音源のマスターボリュームを設定します。+か−を付けると、それまでの音量から相対的に変化させます。リズム音源のマスタボリュームを最大にします。R定義リズム音源の各ボリュームを設定します。表記すると、相対的変化をします。¥vの次の文字は、ショット・ダンプ制御と同様の、対応するリズム音を表します。R定義リズム音源の各出力位置を設定します。¥の次の文字は出力する位置を表し、以下のようになります。(中央)その次の文字は、ショット・ダンプ制御と同様の、対応するリズム音を表します。]]このセクションでは、FM音源LSIや、PMD、PDRといったドライバを直接制御するコマンドを解説しています。使う事はまれですが、もし使用する際には、制御対象についての十分な知識が必要な場合が多いので注意してください。R定義FM音源LSIに出力する値をそのまま指定します。数値1で指定したレジスタに数値2をデータとして出力します。OPNAでは、D,E,Fパートでは、裏ポートに出力しますが、その他のパートでは表ポートに出力されます。FM音源LSIの知識を十分持っていないと危険ですので、使用は避けて下さい。FM音色パラメータの微調整をする事も出来ますが、PAUSE、効果音、パートマスク状態から復帰する際、音色は再定義され、元に戻ってしまう事を念頭に置いて下さい。コマンドが用意されています。そちらを使用すればそのような現象を避けられます。R定義K/Rパートで使用し、PDRの動作モードを制御します。Modeに設定します。PDR制御では、通常は、0と1以外は使用しないで下さい。実行すると、その場でハングアップする危険性があります。指定されているパートで判別しています。混同しないように注意して下さい。指定した位置からフェードアウトさせます。数値で速度を指定します。フェードアウトさせます。音源別音量ダウン設定を変更します。リズム音源をそれぞれ表します。付けた場合、現在の値から相対的に変化させます。+で音量が下がる点に注意して下さい。+0または-0が指定された場合は、PMDのオプションで指定された値に再初期化されます。SSG音源全体が1ループする毎に段々音量が下がっていきます。再度演奏開始する際に、PMDの/DF,/DS,/DP,/DRオプションで指定した値が再設定され、元に戻ります。R定義FM効果音を発音します。0を指定すると停止します。FM効果音は0番から定義可能ですが、0番はMML中では鳴らす事が出来ません。4番目のFM効果音を発音します。R定義SSG効果音を発音します。0を指定すると停止します。SSGPCM効果音(値は128を足した数値)が発音されます。15番目のSSG効果音を発音します。/offを制御します。(演奏しない)とします。通常使う事はまずありません。指定パートの演奏をマスクします。小節の長さを指定します。演奏には全く影響はありません。ゲーム等にPMDを組み込む際、ビジュアル等で曲の小節に合わせて処理する事が出来るように、プログラマ側から、現在演奏中の小節no.を得る事が出来るようになっていますが、MMLには小節の概念がないため、3拍子や変拍子を使っていた場合、小節の長さが解らないと、ドライバは正確な値を得る事が出来ません。このコマンドで常に小節の長さをドライバーに教えて、正確な値を返せるようにしておけば、プログラマが正確な値を得る事がで出来るようになります。デフォルトは96です。そこからは3/4拍子であることをドライバに知らせます。曲途中で拍子が変わる場合は、必ずその小節の頭で小節長を指定するようにして下さい。この機能を逆手に取り、例えば4分音符を1小節だとドライバに判断させれば4分音符単位での同期も可能になります。R定義Status1(ドライバーを通してプログラマが得る事が出来ます)に数値を書き込みます。+または−を表記(書式2)すると、現在のStatus1に加算/減算します。