=n(特殊機能のスイッチング)=%00011 (ピッチ・モジュレーション/ARCCをON。それ以外をOFF)@h40 @m127 c1 @m d1 / dが鳴る時はモジュレーションは0@h40 @m127 c1 =0 d1 / dが鳴る時もモジュレーションは掛かったまま[ECHO itv,dec,lpt] [V3] (疑似エコー)LOOP*'を記述すれば絶対音長(1~32767)を指定することもできる。LOOPでも指定することができる。[ECHO 8,-10,3] c1,,127この例ではc1は c8 単位に 3回分割される。 そして音量変位は-10なので結果的にはc8,,-10&lc8,,-20&lc2.,,-30のように演奏される。[ECHO 8,-10,LOOP] c1では、分割回数が無限回になっているので c1 をできる限り分割する。よって演奏結果はc8,,-10&c8,,-20&c8,,-30&c8,,-40& c8,,-50&c8,,-60&c8,,-70&c8,,-80のようになる。{...}の中)に対しては効力を発揮せず@Dn [V2][DAMPER n] [V3] (ホールド(ダンパーペダル)の設定)ON,OFFでも設定が可能。 このときはONがn=127, OFFがn=0に対応する。@d0 cdefgab<c / ダンパーペダルオフ(通常)@d1 cdefgab<c @d0 / ペダルオン(音が消えない)[DAMPER OFF] (ダンパー解除する)[DAMPER 68] (ダンパーを値68でONに設定する)@Rn [V2][TRACK_MODE n] [V3] (ノートオフ送信制御・トラックモード設定)NORMAL,RHYTHM [V3][TRACK_MODE NORMAL]、 つまり「ノートオフをする」モードに設定されている。[TRACK_MODE RHYTHM] (ノートオフ処理を省略する)` [V2][ALL_SOUND_OFF] [V3] (トラックミュート・強制消音)[KEY_REMAP note1,note2] [V3] (音階のつけかえ)[KEY_REMAP o3c,o4c] (o3cという音を、以後すべてo4cとして扱う)\n [V2] (フェードイン・フェードアウト)\コマンドは各トラックごとに設定可能なので、各トラック違った速度で フェードインやフェードアウトが実行可能。 フェードアウトでは出力音量が0になった時点でそのトラックの演奏を終了する。[TRACK_FADER spd,src,dst] [V3] (トラック・フェーダー)spd: 0~65535src: 0~128dst: 0~128\とほぼ同等の機能を持つ。OFFという文字パラメータでも指定可能。[TRACK_FADER 10,128,0](速度10で原音量から無音状態へフェーダーを移動する (いわゆるFADEOUT))[CH_FADER dev ch,spd,src,dst] [V3] (チャンネル・フェーダー)ALL, MIDI1-,MIDI2-, MIDI3-,MIDI4-ch: 1~16 または ALLspd: 0~65535src: 0~128dst: 0~128ALLを指定する。ALLと指定する。OFFという文字パラメータでも指定可能。[CH_FADER MIDI1-10,10,128,0](MIDI出力ポート1の10チャンネルを速度10で原音量から無音状態へフェーダーを移動する (いわゆるフェードアウト))[CH_FADER ALL-2,0,64,64](全デバイスのチャンネル2をフェーダーレベル64に設定し固定する)[CH_FADER ALL,10,0,128](全デバイスの全チャンネルを無音状態から原音量までフェーダーを移動させる。 (いわゆるフェードイン))[MASTER_FADER dev,spd,src,dst] [V3] (マスター・フェーダー)ALL, MIDI1,MIDI2, MIDI3,MIDI4spd: 0~65535src: 0~128dst: 0~128OFFという文字パラメータでも指定可能。[MASTER_FADER MIDI1,10,128,0](MIDI出力ポート1を速度10で原音量から無音状態へフェーダーを移動する (いわゆるフェードアウト))[MASTER_FADER FM,0,64,64](FM音源をフェーダーレベル64に設定し固定する)[MASTER_FADER ALL,10,0,128](全デバイスを無音状態から原音量までフェーダーを移動させる。 (いわゆるフェードイン))フェーダーについて
ZMUSIC Ver.3.0では トラックフェーダー、 チャンネルフェーダー、 マスターフェーダーの 3つのフェーダーがあります。
このうちトラックフェーダーとチャンネルフェーダーは、 操作対象とするフェーダーの指定方法が違うだけで、処理方式も機能も同一です。 つまり、 たとえばトラックフェーダーが実行されているトラックのチャンネルに対してフェーダー制御を行うと、 それまで実行されていたトラックフェーダーは無効となり、 チャンネルフェーダーとして新たな設定で制御されるようになります。
一方マスターフェーダーはまったく前者2つのフェーダーとは無縁で、 独立した処理系で実行されます。 よってトラックフェーダー/チャンネルフェーダーと同時に独立した制御を行うことができます。
このことからトラックフェーダー/チャンネルフェーダーは、 トラック毎の演奏表現の一手段として使用し、 マスターフェーダーは曲全体の音量制御に利用するのが効果的な使用法といえます。
|: ... :|(リピート) [V2]|:n … |r1 … :| … |r2 … :| [V2]|:n … | … :| [V2]|:3 a |:2 b :| c:| / (abbc abbc abbcの様に演奏される)|:2 a |1 b :| |2 c:| / (ab ac の様に演奏される)| を |:n ~ :| の中に挿入すると、 | 以降に書かれた演奏データは最後の繰り返し時には演奏はしないといった特殊例になる。|:5 a | b :| / (ab ab ab ab aの様に演奏される)|:4 a | b :| |4 c :| / これはエラーとなる ( | ... :| がきた段階でループが完結し、|4...が余計となる)|:8 |:4 a | b :| |4 c :| / これはOK (最後の |4 は、外側のループ(|:8)に対応する)[-]コマンド [V2][!][@][end][!]までジャンプする。 ジャンプ後の音源やZ-MUSICの内部パラメータはそこまで通常に演奏を行った時と同じになっている。 [!]が偶数個設定されなかった場合は、 正常に動作しない。[@]までジャンプする。 ジャンプ後の音源やZ-MUSICの内部パラメータはそこまで通常に演奏を行った時と同じになっている。 ほぼ[!]と同機能だが、あるひとつのトラックで設定すると他のトラックも同時にジャンプを開始する点が違う。 [@]が偶数個設定されなかった場合は、正常に動作しない。[---------------] ('-'は幾つでもよい) [V3][BAR str] [V3][MEASURE str] [V3] (小節線)[JUMP]と併用して、 曲データの調整に用いることができる。[COMMENT str]を用いること。[MEASURE Aパート][----------------][JUMP m] [V3] [未実装][BAR]などで定義しておく。 ジャンプ後の音源やZ-MUSICの内部パラメータはそこまで通常に演奏を行った時と同じになっている。 基本MMLの [@] とほぼ同等の機能を持つが、該当小節がない場合は正常に演奏されない。[jump]を用いても、 前の小節にジャンプすることはできない。 前のパートに戻りたい場合は、代わりに ループコマンドや、 他の演奏制御手段を用いること。(i).assign TR1,MIDI1(t1)@1 v12(t1)[jump2] /第2小節から演奏(t1)cde /第0小節(t1)[bar](t1)fga /第1小節(t1)[bar](t1)b<cd /第2小節(t1)[bar](p)@Imk,dv,md [V2][INSTRUMENT_ID mk,dv,md] [V3] (MIDI楽器IDの登録)[YAMAHA_EXCLUSIVE]@E / [EFFECT][PANPOT RND] (ランダムパンポット; [zmc3])@Er,c,d [V2][EFFECT r,c,d,ef2,ef5] [V3][EFFECT.REVERB r] [V3][EFFECT.CHORUS c] [V3][EFFECT.DELAY d] [V3] (エフェクタ設定 / リバーブ, コーラス, ディレイ設定)@Ech,sw [V2] (MT-32エフェクタ設定)[EFFECT.REVERB r] [EFFECT.CHORUS c] [EFFECT.DELAY d]は、 それぞれリバーブ(エフェクト1), コーラス(エフェクト3), ディレイ(エフェクト4)のかかり具合を設定する。[EFFECT 0,10,5] (REVERBを0,CHORUSを10,DELAYを5に設定する)[EFFECT.REVERB 127] (リバーブの設定を127にする)[EFFECT.CHORUS 127] (コーラスの設定を127にする)[EFFECT.DELAY 127] (ディレイの設定を127にする)Ya,d [V2][CONTROL a,d] [V3] (コントロールチェンジ送信)y$7e,0 / GSで該当チャンネルをMONOモードに設定する [CONTROL 11,127] / コントロールチェンジ11番(EXPRESSION)に127を設定する@Yah,al,dh,dl [V2][NRPN ah,al,dh,dl] [V3] (NRPN送信)@y$1c,42,$00 / GSで close hi-hatのパンを左に振る [NRPN 1,8, $40] / NRPN $0108にデータ$40**を設定。下位バイトは省略Xn1,n2,... [V2][ROLAND_EXCLUSIVE n1,n2,…] [V3] (ローランド系エクスクルーシブ送信)@Iコマンドや [INSTRUMENT_ID]で、 メーカーIDをローランド($41)に設定しておく必要がある。.ROLAND_EXCLUSIVE とは異なり複数行にパラメータを分けて書くことはできない。x$40,$00,$7f,$00 / GS reset[ROLAND_EXCLUSIVE $40,$00,$7f,$00] (ローランドエクスクルーシブとして $40,$00,$7f,$00をMIDI楽器へ送信)[YAMAHA_EXCLUSIVE n1,n2,…] [V3] (ヤマハ・エクスクルーシブ)@Iコマンドや [INSTRUMENT_ID]で メーカーIDをヤマハ($43)に設定しておくことが前提。 データの転送方式は「バルク・ダンプ」が使用される。.YAMAHA_EXCLUSIVE とは異なり複数行にパラメータを分けて書くことはできない。[YAMAHA_EXCLUSIVE $00,$00,$7e,$00] (ヤマハ・エクスクルーシブとして $00,$00,$7e,$00をMIDI楽器へ送信)@Xn1,n2,... [V2][MIDI_DATA n1,n2,…] [V3] (MIDIデータ送信).MIDI_DATAとは 異なり複数行にパラメータを分けて書くことはできない。@x$f0,$41,$10,$42,$12,$40,$00,$7f,$00,$41,$f7 / GS reset[MIDI_DATA $b0,11,127] ($b0,11,127を送信する)[MIDI_DATA "ABC"] ($41,$42,$43を送信する)Nc [V2] (チャンネル変更)@Nc [V2] (チャンネル変更)[CH_ASSIGN ch] [V3]W [V2], [SYNCHRONIZE] [V3] (他のトラックから同期信号が来るまで演奏処理を中断する)Wt [V2], [SYNCHRONIZE t] [V3] (同期信号送信)(t1) cdef w2 / トラック2へ同期送信(t2) w gab<c / 同期信号受信まで待機Jt [V2] [未実装][REPLAY t] [V3] [未実装](t1) @1 v15 o4 q8 [REPLAY 2]r2[REPLAY2](t2) @1 v15 o4 q8 l8cdefcdef cdefが演奏される。[BACK ...] [zmc2] (裏パートデータ設定)[back 'c1eg'] gag<c(t1)gag<c(t2)'c1eg'[back c1] c4 [back d1] / c1の演奏終了前にd1が来る(t1)w2 gag<c(t2)w 'c1eg'[BACK.repeat n] [zmc2] (裏パートリピート設定)[back.repeat on] |: [back eg] ce :|(t1) |: w2 ce :|(t2) |: w eg :|[VELOCITY.LEVEL mode, lv1, lv2, ... lv8] [V3] [未実装][VELOCITY.DEPTH mode, lv1, lv2, ... lv8] [V3] [未実装]OFF, OPTIONAL, ON EVSモードONOFFOPTIONAL[VELOCITY.DELAY]で設定された音符数毎にlv1からlv8のEVS振幅を切り換えていく。[VELOCITY.SPEED sp1, sp2, ... sp8] [V3] [未実装][VELOCITY.WAVEFORM]の項で解説するが、 値が小さいほど高速に、値が大きいほど低速に音が振動する。[VELOCITY.DELAY dl0, dl1, ... dl8] [V3] [未実装][VELOCITY.WAVEFORM w] [V3] [未実装].WAVE_FORMを参照。[VELOCITY.DEPTH]([VELOCITY.LEVEL])[VELOCITY.DELAY][VELOCITY.ORIGIN][VELOCITY.SPEED][VELOCITY.ORIGIN org] [V3] [未実装][VELOCITY.DEPTH]([VELOCITY.LEVEL])で設定した振幅で振動する。 この値は [VELOCITY.WAVEFORM] の図解中のVOに相当する。[VELOCITY.SWITCH mode] [V3] [未実装]OFF, OPTIONAL, ON EWS動作スイッチ[VELOCITY.DEPTH]([VELOCITY.LEVEL])のパラメータのmodeと同等。 modeは数値で与えることもでき、この時は 0=OFF, 1=OPTIONAL, 2=ON に対応する。[VELOCITY.SYNC m, c] [V3] [未実装]OFF, ON またはより高度な設定(後述)OFF, OPTIONAL, ONOFF, ONにも対応する。 mをON,OFFといった文字列にて設定することも可能。[BAR])のときにEVS波形の初期化を行う。 「非同期」にした場合は発音と無関係にEVSを続行する。[VELOCITY.PHASE mode] [V3] [未実装]NORMAL, REVERSE (INVERSE)NORMAL)に相当し、 [VELOCITY.WAVEFORM]の項で図解した波形が実行される。 一方 mode=1(REVERSE)では [VELOCITY.WAVEFORM]の項で図解した波形においてVOを中心に反転した波形が実行される。[AGOGIK.LEVEL mode, lv1, lv2, ... lv8] [V3] [未実装][AGOGIK.DEPTH mode, lv1, lv2, ... lv8] [V3] [未実装]OFF, 1/8, OPTIONAL, ON アゴーギクモード[AGOGIK.DEPTH]([AGOGIK.LEVEL])はアゴーギクの振幅の設定を lv1~lv8において行う。 modeはアゴーギクの動作方式を設定するパラメータ。 以下にmodeと対応する動作を示す。ONOFF1/8OPTIONAL[AGOGIK.DELAY]で行う。[AGOGIK.LEVEL optional 64,,-10,+5][AGOGIK.LEVEL 1/8 0,0,10,20,30]modeを1/8とし、lv1=0,lv2=0,lv3=10,lv4=20,lv5=30と設定した。 lv6,lv7,lv8は省略(未設定)。[AGOGIK.DEEPEN sw, spd, dpn, rpt] [V3] [未実装]OFF, ON アゴーギク機能の有効/無効スイッチOFF, ONOFFで無効に、ONで有効に設定される。[AGOGIK.DEEPEN ON,6,+8,10](増減スピード6で10回振幅を8増加させる)[AGOGIK.SPEED sp1, sp2, ... , sp8] [V3] [未実装][AGOGIK.WAVEFORM]の項で解説するが、 値が小さいほど高速に、値が大きいほど低速に音が振動する。[AGOGIK.SPEED 10,8,20](sp1=10,sp2=8,sp3=20,sp4~sp8は省略(未設定))[AGOGIK.DELAY dl0, dl1, ... , dl8] [V3] [未実装][AGOGIK.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が設定される。[AGOGIK.WAVEFORM w] [V3] [未実装].WAVE_FORMを参照。[AGOGIK.DEPTH] ([AGOGIK.LEVEL])[AGOGIK.DELAY][TEMPO] ([@TEMPO], T, @T)[AGOGIK.SPEED][AGOGIK.WAVEFORM TRIANGLE] (AGOGIKの波形を三角波に設定する)上の設定でテンポ=100で、たとえば振幅が10のとき テンポはアゴーギク作用により90~110間を交互に変化する。[AGOGIK.SWITCH mode] [V3] [未実装]OFF, 1/8, OPTIONAL, ON アゴーギクの動作スイッチ[AGOGIK.DEPTH]([AGOGIK.LEVEL])のパラメータのmodeと同等。 modeは数値で与えることもでき、この時は0=OFF,-1=1/8,1=OPTIONAL,2=ON[AGOGIK.SWITCH 1/8](1/8モードでONにする)[AGOGIK.SWITCH 2](以前のモード(1/8かOPTIONALのいずれか)でONにする)[AGOGIK.SYNC m, c] [V3] [未実装]OFF, ON または より高度な設定 (後述) アゴーギクの同期モードOFF, ONにも対応する。 mをON,OFFといった文字列にて設定することも可能。[AGOGIK.SYNC %011] (発音と同時、タイ指定においても初期化する)[PATTERN id] [V3] [未実装].PATTERNで登録したパターン名idの演奏データにリンクする。 idにはパターン名を記述する。(i).pattern ABC { cdefgab<c> }.assign TR1,MIDI1(t1)[PATTERN ABC](p)[EMBED id] [V3] [未実装].PATTERNで登録したパターン名idの演奏データを展開する。 idにはパターン名を記述する。[PATTERN]は演奏実行時にパターン部にジャンプする形で演奏されるが、 [EMBED]はパターンの内容そのものをそのトラックに埋め込むので、 演奏時は通常の演奏データとまったく変わらない方法で演奏される。[PATTERN]は処理速度的には[EMBED]よりも劣るが、 演奏データサイズを削減できる。 逆に[EMBED]は処理速度的に [PATTERN]より優れるが演奏データサイズは大きくなる。(i).pattern ABC { cdefgab<c> }.assign TR1,MIDI1(t1)[EMBED ABC](p)[COMMENT str] [V3] (コメント埋め込み)[EVENT category,class,data] [V3] (イベント埋め込み)WORD [V3]PICTURE,SOUND [未実装]META [zmc3]class: 文字列data: 文字列WORDの時 class=STRING data=歌詞文字列PICTUREの時 class=PIC data=PIC画像ファイルのファイル名SOUNDの時 class=ADPCM data==ADPCMファイルのファイル名METAの時 class,data=以下に示されているもの[EVENT WORD,STRING,"豚もおだてりゃ木に登る"] (歌詞設定)[EVENT PICTURE,PIC,FISH.PIC] (画像データ設定)[EVENT SOUND,ADPCM,BOMB.PCM] (ADPCMデータ設定)[EVENT META, CUE, "START"] (キューポイントの設定 / SMAFなどで使用)[KEY ky] [V3] (調の設定)[KEY_SIGNATURE]のように演奏トラックに調号を付加するような効果や機能はなく、 あくまで表記上の設定となる。 データにはこのMMLで指定した調が記録されるため、 プレーヤなどで正しい調が表示されることを期待する場合には設定すべき。Cmajor,Gmajor,Dmajor,Amajor,Emajor,Bmajor,F+major,F#major, C+major,C#major,Fmajor,B-major,Bbmajor,E-major,Ebmajor, A-major,Abmajor,D-major,Dbmajor,G-major,Gbmajor,C-major,Cbmajor,Aminor,Eminor,Bminor,F+minor,F#minor,C+minor,C#minor,G+minor, G#minor,D+minor,D#minor,A+minor,A#minor,Dminor,Gminor,Cminor, Fminor,B-minor,Bbminor,E-minor,Ebminor,A-minor,Abminor[KEY D#Minor] (嬰二短調)[METER m] [V3] (拍子の設定)[METER 6/8] (8分の6拍子と設定)[DUMMY] [V3] (ダミーデータ挿入)