ECdelay,volume(,length)
EC*
引数の替わりに`*'を指定することで、疑似エコーを無効化できます。(Default: Disable)
何音前のノートを、エコーとして発音するかを指定します。
0(直前のノート)~255(255個前のノート)で指定してください。
疑似エコーで鳴らす音符の音量、もしくはモードを指定します。
-1 … 直前のノートのエンベロープをそのまま引き継ぎます(スラーで繋げます)。
0 ~ 15 … 指定の音量で発音(Key on)し直します。
疑似エコーで鳴らす音符の音長、もしくはモードを指定します。
-1 … 休符が疑似エコーに置き換わります(パラメータ省略時のデフォルトです)。
1 ~ … 前の音符の音長を指定分だけ減らし、指定の音長の疑似エコーに置き換えます。r ,w コマンドは休符になります。
疑似エコーです。
休符(rコマンド)が記述された箇所を、疑似エコーに置き換えます。
r-コマンド及びr+コマンドが記述された場合は、指定通りの休符となります。
MMLコンパイラの疑似命令であり、シーケンス上は、
・音符コマンド
・音量コマンド
・相対オクターブコマンド
により、疑似エコーのシーケンスを作成します。
ドライバ側実装のコマンドと組み合わせた際に、意図通りの動作にならない可能性がございます。
例えば、リピートコマンドはドライバ側の実装となります。
従い、"v12 g4 EC1,3 [2 cr dr : er ] gr "といったMMLは、"v12 g4 [2 v12 c v3 g v12 d v3 c : v12 e v3 d ] v12 g v3 e"と同等のデータに変換される旨、留意してください。
対応策としては、リピートの開始位置、終了位置、分岐位置をうまく調整する、
もしくは、リピート開始時及び終了時に、EC-コマンドにて疑似エコーのバッファをリセットしてください。
また、リピートコマンド内において、リピート毎に以下のような変化がある場合、正常に疑似エコーのシーケンスを作成できない旨、留意してください。
第3パラメータlengthの指定時、休符には疑似エコーを生成しませんが、
タイ^についても疑似エコーは生成しません(タイはスラー及び休符コマンドにコンパイルするため)。
例えば、#TieModeが0の条件下において、"EC- EC1,3,%3 v12 l16 c^^^ d^^^ e^^^"といったMMLは、タイの前の音符に対して疑似エコーを生成してしまうため、
"v12 l16 c^^^ d16-%3 v3 c%3 ^^^ v12 e16-%3 v3 d%3 ^^^"と同等のデータに変換される旨、留意してください。
音長を加算したい場合は、+演算子により音長を加算してください。
なお、#TieModeを1にすることで、^はタイではなく、音長加算の演算子として動作します。
この場合、上述のMMLは"v12 l16 c4 d4-%3 v3 c%3 v12 e4-%3 v3 d%3"と同等のデータに変換されます。
サブルーチン内で使う場合は、音量を指定し直して下さい(MMLコンパイラに現在の音量を通知するため)。
v15 EC1,2 //疑似エコー有り
l16 crdrerfrgrarbr> crdrerfrgrarbr `cr brargr frerdrcr < brargrfr erdrcr "br c1
EC* //疑似エコー無効