このページは、GORRY 氏作の MML MIDI コンパイラ「SPICE」用の自作マクロコマンドを公開しています。
このページで公開しているマクロの定義をまとめたインクルードファイル「memoru.smi」「memoruxg.smi」「memorugs.smi」をダウンロードすることができます。
これらのインクルードファイルは、SPICE をインストールしたディレクトリの下にある「SMI」ディレクトリ内に置いてください。
ダウンロード用ファイルは LHA アーカイブになっています。
閲覧: memoru.smi memoruxg.smi memorugs.smi
また、これらのマクロを活用した各音源(GM/XG/SC-88Pro(GS))用のスケルトンファイルも用意しました。
音源の初期設定等が記述されているので、このファイルを元にデータ作成を始めると良いでしょう。
閲覧: gm_skel.smc xg_skel.smc 88p_skel.smc
このページに出てくるマクロは全て、トラックのはじめで${smcinit:}
が実行されていることを前提にしています。
smcinit
mixer
prog
tacet
rt
v-sens
pu
pd
gd
pow
pow2
pow3
u5
progxg
drumxg
dr-cutoff
dr-reso
dr-attack
dr-decay
dr-pitch
dr-rev
dr-level
dr-pan
vib
decay
X-DRY-LEVEL
X-CH-DRY-LEVEL
X-DRUM1-ALTERNATE-GROUP
X-DRUM1-RX-NOTE-OFF
X-DRUM1-DECAY1-RATE
X-DRUM1-DECAY2-RATE
X-DRUM2-ALTERNATE-GROUP
X-DRUM2-RX-NOTE-OFF
X-DRUM2-DECAY1-RATE
X-DRUM2-DECAY2-RATE
YAMAHA-MU100-X-MAP-SELECT
MU-BASIC-MAP
MU100-NATIVE-MAP
proggs
prog55
prog88
prog8p
drumgs
drum55
drum88
drum8p
brightness
harmonic-content
attack
decay
release
vib
dr-pitch
dr-rev
dr-level
dr-pan
書式 |
${smcinit:}
|
解説 |
SPICEのMMLを(筆者にとって)一般的な仕様に設定します。具体的には、
${smcinit:} が実行されていることを前提にしています。 |
定義 |
|
用例 |
|
書式 |
${mixer:ボリューム,パン,リバーブレベル,コーラスレベル,バリエーション(ディレイ)レベル}
|
解説 |
ミキサー系のパートパラメータをまとめて設定します。 最後のパラメータは、XG音源ではバリエーションエフェクトレベル、SC-88等ではディレイエフェクトレベルになります。 SC-55等、3系統目のエフェクトがない音源では意味を持ちません。 なお、このコマンドはクロックが 5mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${prog:音色番号}
|
解説 |
プログラムチェンジをします。 SPICE にもともとある @ コマンドとほぼ同じですが、以下のような違いがあります。
無理して使うことはないでしょう。 |
定義 |
|
用例 |
|
書式 |
${tacet:小節数}
|
解説 |
指定の小節数休みます。長い間休みが続くときに使います。 r1r1r1r1 のように書くのに比べて、何小節休むのかがわかりやすいというメリットがあります。 |
定義 |
|
用例 |
|
書式 |
${rt:}
|
解説 |
ノートオン後、1クロック後にノートオフするように設定します。 リズムパートに使います。 MML2MID の RT コマンドと同じようなものです。 |
定義 |
|
用例 |
|
書式 |
${v-sens:変化量}
|
解説 |
"[" , "]" コマンドによるベロシティの変化量を設定します。 設定した量だけ "]" でベロシティが上がり、 "[" で下がります。 |
定義 |
|
用例 |
|
書式 |
${pu:音程差,delay,speed,rate,MML}
|
解説 |
音程間をなめらかに繋ぎます。このマクロは音程を上げることしかできません。下げる場合は「pd」を使って下さい。 音程差は半音単位で数値を指定します。ベンドレンジの設定値を超えて指定することは出来ません。 delay,speed,rateの各パラメータは、PC-9801の音源ドライバである「FMP」と共通になっています。詳しくは欄外をご覧下さい。 |
定義 |
|
用例 |
|
書式 |
${pd:音程差,delay,speed,rate,MML}
|
解説 |
音程間をなめらかに繋ぎます。このマクロは音程を下げることしかできません。上げる場合は「pu」を使って下さい。 音程差は半音単位で数値を指定します。ベンドレンジの設定値を超えて指定することは出来ません。 delay,speed,rateの各パラメータは、PC-9801の音源ドライバである「FMP」と共通になっています。詳しくは欄外をご覧下さい。 |
定義 |
|
用例 |
|
Delay | 音が鳴り始めてからピッチベンドを開始するまでの カウントを指定します。値が大きいほど遅くなります。 |
Speed | ピッチベンドの速さを指定します。値が大きいほど 遅くなります。 |
Rate | ピッチベンドの1回の変化量を指定します。値が大 きいほど、大きくなります。 |
以下に内部動作的変化の説明を示します。 | |
Delay | keyonからピッチベンドの処理を始めるまでの カウント数。音のカウントより大きい場合にはピッ チベンドはかかりません。 |
Speed | 次の変化を起こすまでのカウント数。この値が0に なったときに音程の上げ、下げを行います。 |
Rate | 1回の変化で音程に加える(引く)値。ここで指定 された値を現在の周波数に足して(引いて)ゆき、 ターゲットの周波数と一致するまで動作を繰り返し ます。 |
MML.DOC
」より引用、一部修正。
書式 |
${gd:音程差,delay,length,MML}
|
解説 |
音程を半音刻みで下げていきます。(グリスダウン) 下げることしかできません。 音程差は半音単位で数値を指定します。ベンドレンジの設定値を超えて指定することは出来ません。 delay は、キーオン後グリスダウンが始まるまでの時間をクロック数で指定します。 その後、 length だけ時間をかけてグリスダウン行います。length もクロック数で指定します。 |
定義 |
|
用例 |
|
書式 |
${pow:note,length}
|
解説 |
ギターのパワーコードをシミュレートします。 ルート音に加え、5 度上の音と、オクターブ上のルート音を重ねて鳴らします。 各音の発音タイミングをずらして、ギターっぽさを出しています。ただし、ダウンストロークしか考慮していません。 note には、ルート音を指定します。 length には、長さを指定します。 |
定義 |
|
用例 |
|
書式 |
${pow2:note,length}
|
解説 |
ギターのパワーコードをシミュレートします。 ルート音に加え、5 度上の音と、オクターブ下のルート音を重ねて鳴らします。 各音の発音タイミングをずらして、ギターっぽさを出しています。ただし、ダウンストロークしか考慮していません。 note には、ルート音を指定します。 length には、長さを指定します。 |
定義 |
|
用例 |
|
書式 |
${pow3:note,length}
|
解説 |
ギターのパワーコードをシミュレートします。 ルート音に加え、5 度上の音を重ねて鳴らします。 各音の発音タイミングをずらして、ギターっぽさを出しています。ただし、ダウンストロークしか考慮していません。 note には、ルート音を指定します。 length には、長さを指定します。 |
定義 |
|
用例 |
|
書式 |
${u5:note,length}
|
解説 |
ギターのパワーコード(?)をシミュレートします。 ルート音に加え、オクターブ下げた 5 度上の音 (4 度下) を重ねて鳴らします。 各音の発音タイミングをずらして、ギターっぽさを出しています。ただし、ダウンストロークしか考慮していません。 note には、ルート音を指定します。 length には、長さを指定します。 |
定義 |
|
用例 |
|
書式 |
${progxg:プログラム番号,バンク番号}
|
解説 |
XG 音源のメロディ音色を設定します。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${drumxg:プログラム番号}
|
解説 |
XG 音源のリズム音色を設定します。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 チャンネル 10 に限らず、どのチャンネルでもこのマクロでドラムパートに設定可能です。 なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-cutoff:ノート番号,カットオフ}
|
解説 |
NRPN でドラムのカットオフ・フリケンシーを設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-cutoff:ノート番号,レゾナンス}
|
解説 |
NRPN でドラムのレゾナンスを設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-attack:ノート番号,アタックレート}
|
解説 |
NRPN でドラムのアタックレートを設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-decay:ノート番号,ディケイレート}
|
解説 |
NRPN でドラムのディケイレートを設定します。 ディケイ 1 レート、ディケイ 2 レートが同じ値に設定されます。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-pitch:ノート番号,ピッチ}
|
解説 |
NRPN でドラムのピッチ・コースを設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-rev:ノート番号,リバーブ}
|
解説 |
NRPN でドラムのリバーブ・センド・レベルを設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-rev:ノート番号,レベル}
|
解説 |
NRPN でドラムの音量レベルを設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-pan:ノート番号,パン}
|
解説 |
NRPN でドラムの定位を設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${vib:vibrato-rate,vibrato-depth,vibrato-delay}
|
解説 |
NRPN で音色のビブラート関係のパラメーターをまとめて設定します。 なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${decay:ディケイタイム}
|
解説 |
音色のディケイタイムを設定します。 (クロックは進みません。) |
定義 |
|
用例 |
|
書式 |
${X-DRY-LEVEL:ドライレベル}
|
解説 | 現在の Ch. のドライレベルを設定します。 |
定義 |
|
用例 |
|
書式 |
${X-CH-DRY-LEVEL:チャンネル,ドライレベル}
|
解説 | 指定した Ch. のドライレベルを設定します。 |
定義 |
|
用例 |
|
書式 |
${X-DRUM1-ALTERNATE-GROUP:ノート番号,グループ番号}
|
解説 | ドラムセットアップ 1 のオルタネートアサイングループを設定します。 |
定義 |
|
用例 |
|
書式 |
${X-DRUM1-RX-NOTE-OFF:ノート番号,0|1}
|
解説 | ドラムセットアップ 1 の Rcv NOTE OFF を設定します。 |
定義 |
|
用例 |
|
書式 |
${X-DRUM1-DECAY1-RATE:ノート番号,ディケイ1レート}
|
解説 | ドラムセットアップ 1 の EG DECAY1 RATE を設定します。 |
定義 |
|
用例 |
|
書式 |
${X-DRUM1-DECAY2-RATE:ノート番号,ディケイ2レート}
|
解説 | ドラムセットアップ 1 の EG DECAY2 RATE を設定します。 |
定義 |
|
用例 |
|
書式 |
${X-DRUM2-ALTERNATE-GROUP:ノート番号,グループ番号}
|
解説 | ドラムセットアップ 2 のオルタネートアサイングループを設定します。 |
定義 |
|
用例 |
|
書式 |
${X-DRUM2-RX-NOTE-OFF:ノート番号,0|1}
|
解説 | ドラムセットアップ 1 の Rcv NOTE OFF を設定します。 |
定義 |
|
用例 |
|
書式 |
${X-DRUM2-DECAY1-RATE:ノート番号,ディケイ1レート}
|
解説 | ドラムセットアップ 2 の EG DECAY1 RATE を設定します。 |
定義 |
|
用例 |
|
書式 |
${X-DRUM2-DECAY2-RATE:ノート番号,ディケイ2レート}
|
解説 | ドラムセットアップ 2 の EG DECAY2 RATE を設定します。 |
定義 |
|
用例 |
|
書式 |
${YAMAHA-MU100-X-MAP-SELECT:マップ番号}
|
解説 | キャピタル音色の、MU Basic Map / MU100 Native Map の切り替えを行います。 |
定義 |
|
用例 |
|
書式 |
${MU-BASIC-MAP:}
|
解説 |
キャピタル音色を MU Basic Map に設定します。 MU100 より前の XG 音源 (MU50,80,90等)を対象にしたデータには入れておくと良いでしょう。 |
定義 |
|
用例 |
|
書式 |
${MU100-NATIVE-MAP:}
|
解説 |
キャピタル音色を MU100 Native Map に設定します。 MU100 以降の音源でのみ有効です。 |
定義 |
|
用例 |
|
書式 |
${proggs:プログラム番号,バンク番号}
|
解説 |
Bank Select LSB=0 のメロディ音色を設定します。 音色マップは音源本体のパネルで選択されているものになります。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${prog55:プログラム番号,バンク番号}
|
解説 |
SC-55マップ(Bank Select LSB=1) のメロディ音色を設定します。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${prog88:プログラム番号,バンク番号}
|
解説 |
SC-88マップ(Bank Select LSB=2) のメロディ音色を設定します。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${prog8p:プログラム番号,バンク番号}
|
解説 |
SC-88Proマップ(Bank Select LSB=3) のメロディ音色を設定します。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${drumgs:プログラム番号}
|
解説 |
Bank Select LSB=0 のリズム音色を設定します。 音色マップは音源本体のパネルで選択されているものになります。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 Ch.10 以外で使う場合は、これよりも前に USE FOR RHYTHM PART を設定しておく必要があります。 (このマクロは USE FOR RHYTHM PART を設定しません。) なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${drum55:プログラム番号}
|
解説 |
SC-55マップ(Bank Select LSB=1) のリズム音色を設定します。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 Ch.10 以外で使う場合は、これよりも前に USE FOR RHYTHM PART を設定しておく必要があります。 (このマクロは USE FOR RHYTHM PART を設定しません。) なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${drum88:プログラム番号}
|
解説 |
SC-88マップ(Bank Select LSB=2) のリズム音色を設定します。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 Ch.10 以外で使う場合は、これよりも前に USE FOR RHYTHM PART を設定しておく必要があります。 (このマクロは USE FOR RHYTHM PART を設定しません。) なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${drum8p:プログラム番号}
|
解説 |
SC-88Proマップ(Bank Select LSB=3) のリズム音色を設定します。 プログラム番号は 1番から始まるので、マニュアルの音色表通りの指定が可能です。 Ch.10 以外で使う場合は、これよりも前に USE FOR RHYTHM PART を設定しておく必要があります。 (このマクロは USE FOR RHYTHM PART を設定しません。) なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
|
解説 | |
定義 |
|
用例 |
|
書式 |
|
解説 | |
定義 |
|
用例 |
|
書式 |
|
解説 | |
定義 |
|
用例 |
|
書式 |
${decay:ディケイタイム}
|
解説 |
音色のディケイタイムを設定します。 (クロックは進みません。) |
定義 |
|
用例 |
|
書式 |
|
解説 | |
定義 |
|
用例 |
|
書式 |
${vib:vibrato-rate,vibrato-depth,vibrato-delay}
|
解説 |
NRPN で音色のビブラート関係のパラメーターをまとめて設定します。 なお、このコマンドはクロックが 3mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-pitch:ノート番号,ピッチ}
|
解説 |
NRPN でドラムのピッチ・コースを設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-rev:ノート番号,リバーブ}
|
解説 |
NRPN でドラムのリバーブ・センド・レベルを設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-rev:ノート番号,レベル}
|
解説 |
NRPN でドラムの音量レベルを設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|
書式 |
${dr-pan:ノート番号,パン}
|
解説 |
NRPN でドラムの定位を設定します。 なお、このコマンドはクロックが 1mc 進みます。 |
定義 |
|
用例 |
|