Pn [V2] (パンポットの設定)@Pp [V2][PANPOT p] [V3] (パンポットの設定)[@PANPOT p] [V3] (相対パンポット)L63~L1 M R1~R63 を与えることもできる。 文字列パラメータと数値パラメータとの対応は以下に示す通り。[INSTRUMENT_ID]か @Iで音源IDを指定しておくこと。[@PANPOT]を使用する場合は、 [PANPOT]などとは違い、 先頭に+,-をつけなくても相対指定としてみなされる。@p64|:10 @p+5 c16 :| / (音がだんだん右に移動する)[PANPOT R20] (基本MMLの @P84に相当)[@PANPOT 12] (それまでのパンポットを12上げる)[@PANPOT -12] (それまでのパンポットを12下げる)@Pn1,... [zmc3] (パンポットの先行指定)@Pn1:f1,... [zmc3] (パンポットのゆらぎつきでの先行指定)L1~L63 or M or R1~R63 )@p127,99,80 cdefgcはパンポット127で、 dはパンポット99で、 eはパンポット80で、 fは再びパンポット127で、 gはパンポット99で発音される。@p127:10,99:5,80 cdefgcはパンポット127±10で、 dはパンポット99±5で、 eはパンポット80±5 (ゆらぎ値省略時は直前の指定値を流用)で、 fは再びパンポット127±10で、 gはパンポット99±5で発音される。@pL63,M,R63,M cdefgcはパンポットL63で、 dはパンポットMで、 eはパンポットR63で、 fはパンポットMで、 gはパンポットL63で発音される。@pと全く同様に機能する。 数値の頭に±を記述すれば相対指定が可能である。 数値を1つだけ指定することで、 パンポット・シーケンスをOFFにすることができる。@p99,100,127 |:100 c :| d e[AUTO_PANPOT sw, note1, pan1, note2, pan2, ...] [zmc3] (オートパンポットの設定)OFF,ONO-1C~O9G, C-1~G9L63 ~ L1 M R1 ~R63 (+,-の符号を明記すると相対指定になる)[AUTO_PANPOT.SWITCH] と同じ)。 また、note, panを1組だけ指定した場合には、 どの音階でも同じpan値での発音となる。 つまり、 通常の@Pや[@PANPOT]と同じ意味となるが、 @Pや[@PANPOT]とは別の処理系となる。 (つまり、[AUTO_PANPOT]と@P・[@PANPOT]は、 お互いに相対指定の影響を受けない)[AUTO_PANPOT on, 0, L63, 127, R63] (一番低い音を一番左で、一番高い音を一番右で発音する。 その間はPANPOTを滑らかにつないで発音する)[AUTO_PANPOT on, o4c, L63, 127, R63] (o-1c~o4c をL63で発音し、そこからは徐々に右になるように発音する)[AUTO_PANPOT on, o2c, L63, o4c, M, o5c, R10] (o-1c~o2cをL63で、o2c~p4cをL63~Mの間で、 o4c~o5cをM~R10で、それ以降はR10で発音する][AUTO_PANPOT.SWITCH sw] [zmc3] (オートパンポットのスイッチ)OFF,ON{..}s [V2] (連符の指定){{..}}s [zmc2] (演奏総音長の予約){{..}}s,p [zmc3] (演奏総音長の予約){{...}}内で使う総音長をsで宣言する。 sには符点をつけたり、*をつけて絶対音長にしたり、 ^sを追加して指定することも出来る。|:...:|といったループは展開後の総音長で計算がなされる。 {{...}}内に更に {{...}}をネストさせることも可能。{{...}}でくくることで、例えば'MML...'c,d(&) [V2]"MML..."c,d(&) [zmc2] (和音)'c4eg' (ドミソを4分音符で和音として演奏する)o4'gb<d'96 (ソシレを絶対音長96で演奏。和音発音後はo4に戻る)'c4eg<c',6 (まずcが発音され、その6tick後にeが発音され、更に6tick後ずつ g, <cが発音される)'c4eg',30 (これはgが発音出来ないためエラーになる)z100,110,120 'ceg' / c,e,gすべてベロシティ100z100,110,120 "ceg" / cがベロシティ100,eが110,gが120'c4eg',6&'e4gb-',6'c4eg',6&'e4gb-',0Kn [V2] (キートランスポーズの設定)@Bn [V2][PITCH n] [V3] (ピッチベンドの固定値設定 (ディチューン設定))@Kn [V2] (ピッチベンドの固定値設定)@Bと同じ。 FM音源に慣れている人用。[@PITCH n] [V3] (相対ピッチ指定(ディチューン))@Bsrc, dst, dly, hold time(or bend time) [V2][BEND src,dst,dly, hold time(or bend time)] [V3]@Bの後ろに2つ以上のパラメータを書くとオートベンド (任意のピッチを指定出来るポルタメント)の設定となる。 この設定以降に発音する音は、すべてこの設定の音程変化に従う。@b0,-683,24 c /(683≒8192÷12=1半音) cをnote onして、24tick後音程が下がり始め note off時までに半音下がる。@k0,128,12,24 c*64 / 発音後12カウント後音程が上がり始め、ここから24カウントで目的の音高にたどり着き、28(64-12-24)カウント分、+128の音高を保ち続ける。[BEND -65,765,24,48 ](ピッチ-65から765までの音程変化を行う。ピッチ-65を絶対音長24持続し、 ピッチ765までの音程変化を絶対音長48内で行う。)[BEND 0,683,24,-48 ] c*192 (ピッチ0から683までの音程変化を行う。ピッチ0を絶対音長24持続してから、 ピッチ683までの音程変化を行い始める。そしてピッチ683の音程を絶対音長48 持続する。この例では音程変化にかける時間は絶対音長120(=192-24-48)になる。)[BEND OFF]とするか 後述の[BEND.SWITCH]コマンドを利用する。 解除した場合でも、 変化開始ピッチsrcはそのまま設定されているので、 オートベンドを解除しつつピッチも変更したい場合は @b0, [BEND 0]のように変化開始ピッチのみを設定し直す。@Ksc,ds,dl,bnd [V2] (ピッチベンドのスライド設定)@Bsc,ds,dlと同じ。[BEND.SWITCH sw] [V3] (オートベンドのスイッチ)OFF,ON[BEND.SWITCH 0] [BEND.SWITCH OFF] (スイッチオフ)[BEND.SWITCH 1] [BEND.SWITCH ON] (スイッチオン)@Gn [V2][BEND.RANGE n] [V3]@G12の場合、8192÷12 ≒ 683、ということで、 ピッチベンド値を683増やすごとに、音は半音ずつ上がっていく。@G12状態でなくてもポルタメントや(@J1時の)スラーが正しく動作するようになっている。(オートベンドは相変わらず影響を受ける)@g12[BEND.RANGE 12](k1k2)c,d,prt [V2][k1k2]c,d,prt [V3][PUSH_PORTAMENT src, dest, step, gate, velo, dly, hold time(or port time)] [V3] [未実装][PULL_PORTAMENT src, dest, step, gate, velo, dly, hold time(or port time)] [V3] [未実装][PORTAMENT src, dest, step, gate, velo, dly, hold time(or port time)] [V3] [未実装][PORTAMENT]等の外へも影響する。@Gコマンドでベンドレンジを12 (1オクターブ)以外に変更したとき、 あるいはMIDI楽器のベンドレンジが12に設定されていない時の動作は、 表記通りにならない。@G24としておく必要がある。 (指定されているベンドレンジより広い範囲でのポルタメントを実行しようとすると、その旨警告が出る。)[PUSH_PORTAMENT]と、 [-]や[PULL_PORTAMENT]の違いは、 実際にノートオンされる音階。 (~)や[PUSH_PORTAMENT]の場合、 srcがノートオンされてdstの音階へとピッチベンドがスライドする(dstの音階へ遠ざかる)が、 [-]や[PULL_PORTAMENT]の場合は (ピッチベンドを操作してsrcの音階に聞こえる) dstがノートオンされ、dstの音階に近づくようピッチベンドがスライドする。[PUSH_PORTAMENT]と [PORTAMENT]はまったく同一機能。o4(g2<g) o4のgでキーオンし、2分音符分 鳴り終えるまでにオクターブ5のgまでなめらかにポルタメントする。コマンド終了後はオクターブは5になっていることに注意。(o3d*96,e),48 o3のdでキーオンし、このピッチで48カウント分演奏し、それ以降絶対音長96でキーオフするまでにo3のeまで音程をシフトしていく。o4[c2e] ピッチベンドをあらかじめ3度下げつつeの音でキーオンし(つまりcが鳴っているように聞こえる)、 2分音符分鳴り終えるまでにeまでなめらかにポルタメントする。[PORTAMENT o4c,o4e,48,46,120,8,24](オクターブ4のcからeに向けてポルタメントを開始する。 ポルタメントノートはステップタイムは48、 ゲートタイムは46、ベロシティ120で発音する。発音後、 絶対音長8の遅延時間の後、絶対音長24かけて目的のノートへポルタメントする。残った時間、絶対音長14 (=48-8-24)の間、変化先音程であるオクターブ4のeを持続する。)[PULL_PORTAMENT o4c,o4e,48,46,120,8,-24] (オクターブ4のcからeに向けてポルタメントを開始する。 ポルタメントノートはステップタイムは48、 ゲートタイムは46、ベロシティ120で発音する。発音後、 絶対音長8の遅延時間の後、絶対音長16(=48-8-24)かけて目的のノートへポルタメントする。絶対音長24の間、 変化先音程であるオクターブ4のeを持続する。)[AUTO_PORTAMENT sw, dly, hold time(or port.time)] [V3] (オートポルタメント)OFF,ONOFF,ONといった文字列を与えることも可能。@J1相当のタイモードに変更されます。[AUTO_PORTAMENT.SWITCH sw] [V3] (オートポルタメントスイッチ)OFF,ONON,OFFを直接与えることもできる。[AUTO_PORTAMENT.SWITCH 0] [AUTO_PORTAMENT.SWITCH OFF] (スイッチオフ)[AUTO_PORTAMENT.SWITCH 1] [AUTO_PORTAMENT.SWITCH ON] (スイッチオン)[CH_PRESSURE n] [V3] [未実装][POLYPHONIC_PRESSURE ky, vl] [V3] [未実装]O-1C ~ O9G, C-1 ~ G9 対象ノートO-1C~O9G, C-1~G9といったMMLで与えることもできる。 ポリフォニックプレッシャー値であるvlの設定範囲は0~127。 数値の頭に±を書いて相対指定を行うこともできる。 この場合の設定範囲は-127~+127。@Zn1,...,n8 [V2] (アフタータッチの設定)@z127,120,110,127,80,60,50,10@z127,,,10@z,,,,120,,1@z,,120,,-10,+5@z / アフタータッチ・シーケンス機能オフ[AFTERTOUCH.LEVEL mode, v1, v2, ... , v8] [V3] [未実装]OFF, 1/8, OPTIONAL, ONのいずれか@Zと ほぼ同等の機能だが、mode が設定できるのが特徴。 modeとはアフタータッチシーケンスの動作方式を設定するもの。 以下にmodeと対応する動作を示す。[AFTERTOUCH.DELAY]で行う。[AFTERTOUCH.DELAY dl0, dl1, dl2, ... , dl8] [V3] [未実装]発音 ↓ ____ ........|___ v1 | |___....... | | | v2 ←──-→←-→←─→ dl0 dl1 dl2 v1,v2はdl1,dl2に対応する [AFTERTOUCH.LEVEL]のアフタータッチ値
アフタータッチシーケンスの動作モードの一つである 「OPTIONAL」モードにおけるアフタータッチ出力タイミングを決定する 区間時間の設定を行う。
dl0は最初のアフタータッチがかかるまでのディレイ (遅延時間)に相当し、絶対音長値で指定する。 有効範囲は0~32767。初期値は0。 dl1~dl8は次のアフタータッチ出力までの区間時間で、 これも絶対音長値で指定する。有効範囲は0~65535。初期値は無し。
dl0~dl8の任意のものを省略可能だが、 dl1~dl8は初期値を持たないので注意。
例: [AFTERTOUCH.DELAY 10,24,12,12,12,28,28,12,12]
dl0=10, dl1=24, dl2=12, dl3=12, dl4=12, dl5=28, dl6=28, dl7=12, dl8=12が設定される。
この後、たとえば
[AFTERTOUCH.DELAY 22,33,,,,,,,44]
とした場合、省略したパラメータについては前の値が保存され、 指定されたパラメータのみ書き変わるので、設定は
dl0=22, dl1=33, dl2=12, dl3=12, dl4=12, dl5=28, dl6=28, dl7=12, dl8=44のようになる。
[AFTERTOUCH.SWITCH mode] [V3] [未実装]
(アフタータッチシーケンス・スイッチ設定)
OFF, 1/8, OPTIONAL, ONのいずれかアフタータッチの動作制御を行う。 modeは [AFTERTOUCH.LEVEL]の パラメータのmodeと同等。 modeは数値で与えることもでき、この時は
0=OFF, -1=1/8, 1=OPTIONAL, 2=ON
に対応する。
例:
[AFTERTOUCH.SYNC m,c] [V3] [未実装]
(アフタータッチシーケンス・同期モード設定)
OFF, ON 同期モードの設定アフタータッチシーケンスの初期化(リセット)タイミングの設定を行う。 mは同期モードの設定値。0は非同期,1は同期に対応し、 0と1はそれぞれ文字列OFF,ONにも対応する。 mをON,OFFといった文字列にて設定することも可能。
「同期」に設定した場合は新しく発音するたびに、 アフタータッチシーケンスを最初から行う。 「非同期」にした場合は発音と無関係にアフタータッチシーケンスを続行する。
mは数値指定では0,1以外に、 以下のように2進数で設定すればより高度な初期化設定が行える。 []は初期設定を表す。
上から分かるようにmの初期値は1となっている。
cは同期ディレイにあたり、 実際にはmで指定した条件が c回成立すると波形が初期化されることになる。 cの初期値は1。
例: