Statement | Range | Description |
---|---|---|
#TITLE{...}; | (任意文字列) | タイトルを記述する.
#TITLE{タイトル}; |
#SIGN{...}; | [A-G][+#-b]?m? | 調性を指定する.ノートにデフォルトで変化記号(シャープ/フラット)が付加される.ナチュラルを指定したい場合は,反対の変化記号をつける.
#SIGN{Fm}; fgab<cdef; // 調性をFm(b,e,a,d にフラット)にする |
#REV{...}; | (octave|volume) | シフトの方向を反転する.octave が指定された場合,'<'でオクターブダウン,'>'でオクターブアップ.volume が指定された場合,'('でボリュームダウン,')'でボリュームアップ.何も指定しない場合('#REV;'と記述),両方を反転させる.
#REV; cdefgab>c; // "cdefgab<c" と同じ |
#MACRO{...}; | (static|dynamic) | マクロの展開方法を指定する.static が指定された場合,マクロ内のマクロを定義時に展開する(デフォルト).dynamic が指定された場合,マクロ内のマクロを展開時に展開する.
#MACRO{static}; #A=cde;#B=Afg;o5B; #A=gfe;o4B; // "o5cdefg; o4cdefg" と展開される #MACRO{dynamic}; #A=cde;#B=Afg;o5B; #A=gfe;o4B; // "o5cdefg; o4gfefg" と展開される |
#VMODE{...}; | (n88|mdx|mck|tss|%x|%v) | 全トラックの %x, %v コマンドを一括指定する.
#VMODE{%x1%v1,2}; v15cv12cv9c; // 全トラックに %x1%v1,2 が適用される |
#TMODE{...}; | (unit|fps|timerb)=?n | 't' コマンドの基本単位を指定する. 'unit'を指定した場合, 't' コマンド値は指定値nで割られる. 'fps'は指定値nで[frame/second]値を指定(default;60)し、t コマンド値で[frames/beat].'timerb'は指定値nで動作クロック[kHz]を指定(default;4000)し,t コマンド値で192部音符長で割り込みを行う timerB OPMレジスタ値を指定する.
#TMODE{unit=100}; t10050cde; // t10050 means bpm=100.5 #TMODE{fps=60}; t30cde; // t30 means 30[frames/beat](bpm=120) |
#QUANTn; | 1 - (8) | 'q'コマンドの最大値を変更する.'q'コマンドのデフォルト値は最大値の75%(切捨て)になる.
#QUANT16; q8cde; // q の最大値を16に設定 |
#FPSn; | 1 - 1000 (60) | @fpsコマンドのデフォルト値を変更する.
#FPS100; // @fps のデフォルト値を100に設定 |
#END; | このコマンド以降の文字列を無視する.
#END; この文字列は無視される. |
C, Am | (全てナチュラル) |
G, Em | f+ |
D, Bm | f+, c+ |
A, F+m, F#m | f+, c+, g+ |
E, C+m, C#m | f+, c+, g+, d+ |
B, G+m, G#m | f+, c+, g+, d+, a+ |
F+, F#, D+m, D#m | f+, c+, g+, d+, a+, e+ |
C+, C#, A+m, A#m | f+, c+, g+, d+, a+, e+, b+ |
F, Dm | b- |
B-, Bb, Gm | b-, e- |
E-, Eb, Cm | b-, e-, a- |
A-, Ab, Fm | b-, e-, a-, d- |
D-, Db, B-m, Bbm | b-, e-, a-, d-, g- |
G-, Gb, E-m, Ebm | b-, e-, a-, d-, g-, c- |
C-, Cb, A-m, Abm | b-, e-, a-, d-, g-, c-, f- |
Statement | Range | Description |
---|---|---|
#[A-Z]=...; | (MML文字列) | マクロを定義する.'#ABCD=c;' or '#A-D=c;' でマクロA,B,C,Dに同時代入.
#A=cde; l8AAgedAd; // "l8cdecdegedcded" と展開される #A-C=cde; l8ABgedCd; // "l8cdecdegedcded" と展開される |
#[A-Z]+=...; | (MML文字列) | マクロに文字列加算する.'#ABCD+=c;' or '#A-D+=c;' でマクロA,B,C,Dに同時加算.
#A=cde; #B=efg; #AB+=fg; l8AB; // "l8cdefgefgfg" と展開される |
Statement | Range | Description |
---|---|---|
#WAVBn{...}; | n;0 - 255 | SCC音源(%4)で参照する波形を16進数文字列で定義する.TSSCP の #WAVB から仕様が変更になり,一般的な unsigned char (-128=0x80, -1=0xff, 127=0x7f) で表現する.
#WAVB0{36454d4b41362f303639332309efd9cc362f220df2d9c8c3c6cbccc6bab0aeb7}; %4@0 cde; |
#WAVn{...}(formula...); | n;0 - 255 | Wave table音源(%4)で参照する波形を定義する.テーブルのエントリ数32個でSCC音源波形を記述する.波形テーブルは -128~127の範囲で記述する.エントリ数が32以下の場合は 0 が埋められる.
#WAV0{(0,127)8,(127,-128)16,(-128,0)8}; %4@0 cde; |
#WAVCOLOR/#WAVCn{...}; | n;0 - 255 | Wave table音源(%4)で参照する波形をunsigned int 16進数文字列(wave color)で定義する.wave color は,ハモンドオルガンの基音より上の7本のドローバーをLSBから各4bitで表現したunsigned int値で,MSBの4bitで合成する波形の番号を指定できる.
#WAVCOLOR0{08400f0f}; %4@0 cde; |
#TABLEn{...}(formula...); | n;0 - 254 | テーブルエンベロープ(@@,na,np,nt,nf,_@@,_na,_np,_nt,_nf)で参照するテーブルを定義する.値の範囲は参照するエンベロープコマンドに依存する.
#TABLE0{(64,0)5,(32,0)5,(16,0)5}; q8 na0 cde; |
Statement | Range | Description |
---|---|---|
#@n{...}(sequence...); | n;0 - 255 | @al,@fb,@で指定する各値をパラメータとして羅列する(ただしこのコマンドでは multiple に小数の指定が可能."@"コマンドでは不可.小数部は"@ml"の第2引数に相当する.).使用するオペレータの数(@al第1引数)は,定義したパラメータの数によって自動的に決定される.パラメータ数は18(1operator), 33(2operators), 48(3operators), 63(4operators).アルゴリズムについては"@al"の項を参照.
#@0{ alg[0-15], fb[0-7], fbc[0-3], (ws, ar, dr, sr, rr, sl, tl, ksr, ksl, mul, dt1, detune, ams, phase, fixedNote) x operator count }; %6@0 cde; |
#OPL@n{...}(sequence...); | n;0 - 255 | OPL3で指定する各値をパラメータとして羅列する.パラメータ数は13(1operator), 24(2operators), 35(3operators), 46(4operators).3operatorsの場合,4operators接続のop#3をスルーするアルゴリズムが適用される.2operatorsの場合,alg=0,1 以外,エラーを返す.アルゴリズムについては"@al"の項を参照.
#OPL@0{ alg[0-3], fb[0-7], (ws[0-7], ar[0-15], dr[0-15], rr[0-15], egt[0,1], sl[0-15], tl[0-63], ksr[0,1], ksl[0-3], mul[0-15], ams[0-3]) x operator count }; %6@0 cde; |
#OPM@n{...}(sequence...); | n;0 - 255 | OPMで指定する各値をパラメータとして羅列する.パラメータ数は13(1operator), 24(2operators), 35(3operators), 46(4operators).3operatorsの場合,4operators接続のop#3をスルーするアルゴリズムが適用される.2operatorsの場合,4operators接続のop#2,#3をスルーするアルゴリズムが適用される.アルゴリズムについては"@al"の項を参照.
#OPM@0{ alg[0-7], fb[0-7], (ar[0-31], dr[0-31], sr[0-31], rr[0-15], sl[0-15], tl[0-127], ks[0-3], mul[0-15], dt1[0-7], dt2[0-3], ams[0-3]) x operator count }; %6@0 cde; |
#OPN@n{...}(sequence...); | n;0 - 255 | OPN指定する各値をパラメータとして羅列する.パラメータ数は12(1operator), 22(2operators), 32(3operators), 42(4operators).3operatorsの場合,4operators接続のop#3をスルーするアルゴリズムが適用される.2operatorsの場合,4operators接続のop#2,#3をスルーするアルゴリズムが適用される.アルゴリズムについては"@al"の項を参照.
#OPN@0{ alg[0-7], fb[0-7], (ar[0-31], dr[0-31], sr[0-31], rr[0-15], sl[0-15], tl[0-127], ks[0-3], mul[0-15], dt1[0-7], ams[0-3]) x operator count }; %6@0 cde; |
#OPX@n{...}(sequence...); | n;0 - 255 | OPXで指定する各値をパラメータとして羅列する.alg指定値もOPXのアルゴリズム番号を指定する.パラメータ数は14(1operator), 26(2operators), 38(3operators), 50(4operators).algの最大値は,オペレータ数によって変わる(1operator=0のみ,2operators=0-3,3operators=0-7,4operator=0-15,OPXと同等).アルゴリズムについては"@al"の項を参照.
#OPX@0{ alg[0-15], fb[0-7], (ws[0-7], ar[0-31], dr[0-31], sr[0-31], rr[0-15], sl[0-15], tl[0-127], ks[0-3], mul[0-15], dt1[0-7], detune[], ams[0-3]) x operator count }; %6@0 cde; |
#MA@n{...}(sequence...); | n;0 - 255 | MA3で指定する各値をパラメータとして羅列する.パラメータ数は14(1operator), 26(2operators), 38(3operators), 50(4operators).alg=0,1はパラメータ数26(2operators)以外ではエラーを返す.3,4operatorsの場合,alg=2-7以外,エラーを返す.3operatorsでalg=2-7の場合,4operators接続のop#3をスルーするアルゴリズムが適用される.2operatorsでalg=2-7の場合,4operators接続のop#2,#3をスルーするアルゴリズムが適用される.アルゴリズムについては"@al"の項を参照.
#MA@0{ alg[0-7], fb[0-7], (ws[0-31], ar[0-15], dr[0-15], sr[0-15], rr[0-15], sl[0-15], tl[0-63], ksr[0,1], ksl[0-3], mul[0-15], dt1[0-7], ams[0-3]) x operator count }; %6@0 cde; |
// 音色呼び出しの際,フィルタ/クォンタイズ設定も一緒に行う. #@0{ 8, 0, 0; 16, 40, 0, 34, 34, 0, 13, 1, 0, 1, 0, 0, 0, 0, 0; 1, 34, 28, 0, 0, 15, 35, 1, 0, 2, 0, 0, 0, 0, 0; 4, 63, 63, 0, 0, 0, 42, 1, 0, 5, 0, 0, 0, 0, 0; 0, 36, 0, 0, 34, 0, 0, 1, 0, 1, 0, -3, 0, 0, 0; } @f96,2,32,72q4; %6@0 cdefedc;
Statement | Range | Description |
---|---|---|
#SAMPLERn{waveID, oneShotFlag, pan, channelCount, startPoint, endPoint, loopPoint}; | n;0 - 127 waveID;任意 oneShotFlag;0,1(0) pan;-64~64(0) channelCount;1,2(2) startPoint;任意(-1) endPoint;任意(-1) loopPoint;任意(-1) |
nでサンプルをアサインするノートナンバーを指定し,waveIDでSoundインスタンスを示す任意文字列を指定する.oneShotFlagが1ならゲートタイムは無視して最後まで鳴らす.panで定位設定,channelCountでサンプルのステレオ設定を行う.startPoint, endPoint, loopPointはAppendex参照. |
Statement | Range | Description |
---|---|---|
#PCMWAVEn{waveID, samplingNote, keyRangeFrom, keyRangeTo, channelCount, startPoint, endPoint, loopPoint}; | n;0 - 255 waveID;任意 samplingNote;0,1(0) keyRangeFrom;0~127(0) keyRangeTo;0~127(127) channelCount;1,2(2) startPoint;任意(-1) startPoint;任意(-1) loopPoint;任意(-1) |
nでサンプルをアサインするPCM音声番号を指定し,waveIDでSoundインスタンスを示す任意文字列を指定する.samplingNoteでサンプリングポイントを指定し,keyRangeFrom,keyRangeToでその音のキー範囲の指定する.channelCountでサンプルのステレオ設定を行う.startPoint, endPoint, loopPointはAppendex参照. |
Statement | Range | Description |
---|---|---|
#PCMVOICEn{volumeCenterNote, volumeKeyRange, volumeRange, panCenterNote, panKeyRange, panRange, ar, dr, sr, rr, sl}; | n;0 - 255 volumeCenterNote;0-127(4) volumeKeyRange;0-127(0) volumeRange;-128~128(0) panCenterNote;0-127(64) panKeyRange;0-127(0) panRange;-128~128 ar;0~63 dr;0~63 sr;0~63 rr;0~63 sl;0~15 |
nで設定するPCM音声番号を指定し volume* と pan* でノートに対する音量変化と定位変化を設定する.また最後の5引数でエンベロープカーブを設定する.詳細はAppendex参照. |
Statement | Range | Description |
---|---|---|
#FM{...}; | (接続式) | 後続チャンネルの周波数変調接続(@i,@o)を行う.後続シーケンスに対してアルファベット順に名前を割り振って,それらの接続を式で記述する.接続方法を記述するアルファベットは大文字/小文字どちらでも可. 'An(B)' でモジュレーション定義,OscB で OscA を変調する (n(0-7);変調度,省略時n=5(OPMにおけるFM変調と同値)).'A+B' で加算定義,Aでパイプを上書後,Bを加算する ('+'は省略可).'A(B+C)'は,OscBとOscCの加算結果でOscAを変調する. 【バグ?】3段以上のモジュレーションでTSSCPと異なる音が出る.ただしOPMエミュとは同じ音が出るため,TSSCPの方がおかしい気がする. #FM{B3(A)}; %5q8s63cde; %5q2cde; // "@o1%5q8s63cde; @i3%5q2cde;" と同じ |
Statement | Range | Description |
---|---|---|
#EFFECTn{...}; | (エフェクタ記述用MML) | スロットにエフェクタを接続する.n=0 でマスターエフェクトを指定.
// Slot1にLPFilter→ディレイを設定.EffectSendLevel=32. #EFFECT1{lf3000delay300,32,1}; @v64,32q0cder; // Slot0はマスターエフェクト.最終出力に対してエフェクトを掛ける. #EFFECT0{autopan}; q0$cdefed; // Slot1の出力をSlot2に入力する #EFFECT1{dist}@v128,64;#EFFECT2{delay}; %11@v0,32 cder; |
Statement | Range | Description |
---|---|---|
eqlg,mg,hg,lf,hf | lg;Low gain[%](100) mg;Middle gain[%](100) hg;High gain[%](100) lf;Low freq.[Hz](800) hf;High freq.[Hz](5000) |
3Band EQualizer |
wsdist,level | dist;Distortion[](50) level;Output level[%](100) |
Wave Shaper |
delaytime,fb,cross,wet | time;Delay time[ms](200) fb;Feedback[%](25) cross;Stereo channel crossing(0) wet;wet level[%](100) |
DELAY |
reverbdly1,dly2,fb,wet | dly1;Long delay time[%](70) dly1;Short delay time[%](40) fb;Feedback[%](80) wet;wet level[%](100) |
REVERB |
chorustime,fb,depth,wet | time;Delay time[ms](20) fb;Feedback[%](50) depth;Depth[](200) wet;wet level[%](100) |
CHORUS |
distpre,post,lpf,slope | pre;PreGain[dB](-60) post;PostGain[dB](-12) lpf;LPF Freq[Hz](2400) slope;LPF Slope[oct](1) |
DISTortion |
compthres,wnd,ar,rr,gain,level | thres;Threshold[%](70) wnd;Window Width[ms](50) ar;Attack[ms](20) rr;Release[ms](20) gain;Max gain[db](6) level;output level[%](50) |
COMPressor |
autopanfreq,depth | freq;Frequency[Hz](1) depth;Panning width[%](100) |
AUTOPAN |
stereowide,pan,phase | wide;enhancement[%](140) pan;Panning(0) phase;Phase invert(0) |
STEREO enhancer |
dsfreq, bits, ch | freq ; Freq.Shift(0) bits ; bit ratio(16) ch ; channel count(2) |
Down Sampler. Freq.Shift=0 sets 44.1kHz, 1 sets 22.05kHz, 2 sets 11.02kHz ... |
speakerhardness | hardness ; diaphragm hardness[%](10) | SPEAKER simulator |
lffreq,band | freq;Frequency[Hz](800) band;band width[oct](1) |
Low pass Filter |
hffreq,band | freq;Frequency[Hz](5000) band;band width[oct](1) |
High pass Filter |
bffreq,band | freq;Frequency[Hz](3000) band;band width[oct](1) |
Band pass Filter |
nffreq,band | freq;Frequency[Hz](3000) band;band width[oct](1) |
Notch (band stop) Filter |
pffreq,band | freq;Frequency[Hz](3000) band;band width[oct](1) |
Peaking Filter |
affreq,band | freq;Frequency[Hz](3000) band;band width[oct](1) |
All pass Filter |
lbfreq,slope,gain | freq;Frequency[Hz](3000) slope;slope[oct](1) gain;gain[dB](6) |
Low Booster |
hbfreq,slope,gain | freq;Frequency[Hz](5500) slope;slope[oct](1) gain;gain[dB](6) |
High Booster |
nlfcut,res | cut;cutoff table index(255) res;resonance table index(255) |
ENvelope controlable Low pass Filter |
nhfcut,res | cut;cutoff table index(255) res;resonance table index(255) |
ENvelope controlable High pass Filter |
vowelout,f1,g1,f2,g2 | out;output[%](100) f1;1st freq.(800) g1;1st gain[dB](36) f2;2nd freq.(1300) g2;2nd gain[dB](24) |
Vowel filter |
Statement | Range | Description |
---|---|---|
tn | 1 - 511 (120) | (Tempo)テンポ指定.どのシーケンス内に置いても全シーケンスに対してテンポが変更される.値省略時/初期値120.$ 繰り返しの場合,繰り返し内でテンポ変更を行っても,2ループ目以降テンポは変更されない.[]繰り返し内であれば,テンポは変更される.
t100cde t200cde; |
$ | (segno)無限繰り返し.シーケンスの終端に到達した場合,それまでに$が指定されていれば,その位置に戻る.
l8 $cde; // "cdecdecde..." |
|
[...|...]n | 1 - 65535 (2) | (loop)ループ.n無指定の場合 2 回繰り返す.ループ内に'|'が有る場合,最後の繰り返しで'|'以降のシーケンスがスキップされる.繰り返し回数は,ループの開始時/終了時どちらでも指定可能だが,終了時の設定が優先される. 【推奨】繰り返し回数の指定は,特殊な場合を除いて,ループ終了時に記述する. l8 [cd|e]3; // "cdecdecd" |
@mask | 0 - 63 (0) | (event MASK)イベントマスク.後続のイベントを無効化するマスクを設定する.偽TSSCPの'@m'コマンド相当.値省略時/初期値0.
@mask1 v1c; // "v1"は無視される |
[A-Z] [A-Z](n) |
-128 - 127 (0) | マクロ展開.#[A-Z]で定義したマクロ文字列を展開する.(n)を指定するとマクロ展開時にノートシフトされる.マクロ定義内のマクロはその時点での定義に従いに展開される(TSSCPと同様).'#MACRO{dynamic}'を指定すると,マクロ定義内のマクロはシーケンス内で展開される際に展開される.
#A=cde; l8 AAA; // "cdecdecde"と展開される #A=cde; l8 AA(2)A(-2); // "cdedef+>b-<cd"と展開される |
// ... | 1行コメント.'//'以降,改行まで無視される.
// コメント |
|
/* ... */ | 複数行コメント.'/*' と '*/' で囲われた領域を無視する.ネスト不可.
/* コメント */ |
|
![n...!|...!] | 1 - 256 (2) | 【非推奨:TSSCPとの互換性のためのコマンド】.コンパイル時展開ループ.繰り返し回数は,ループの開始時/終了時どちらでも指定可能.ループのネストは不可.nの最大値は256. |
Statement | Range | Description |
---|---|---|
[a-g][+#-]?n | 1 - 1920 ('l'指定値) | (note)ノート指定.c-b がそれぞれド-シに対応.'+', '#' を続けるとシャープ,'-' でフラット.数字を続けると長さ指定.値省略時は'l'コマンドの指定値を採用.デフォルトは4.'#SIGN' マクロを指定すると自動で特定ノートにシャープ/フラットが付く.ナチュラルは逆符号で対応.
#SIGN{G}; cdef-gab<c // 'f'にナチュラル |
rn | 1 - 1920 ('l'指定値) | (Rest)休符指定.数字で音長指定.ノートと同じ.
cder cder gedcdedr; |
on | 0 - 9 (5) | (Octave)オクターブの指定.'o5a'が440kHz.コンパイル時に展開されるため,ループすると値が元に戻る.値省略時/初期値5.
o4[co5c] // 'o4c o5c o4c o5c'と演奏 |
[<>]n | 1 - 9 (1) | (octave shift)オクターブシフト.引数でシフトするオクターブ数を指定,省略時1.コンパイル時に展開されるため,ループすると値が元に戻る.デフォルトは'<'でオクターブ上げ,'>'でオクターブ下げ.'#REV' マクロを指定すると符号が反転.このコマンドによってオクターブが0-9の範囲を外れる場合は無視される.
o4[c<c] // 'o4c o5c o4c o5c'と演奏 |
kn | -8192 - 8191 (0) | (Key detune)デチューン.半音=64としてデチューンの指定.値省略時/初期値0.
k-2cde; k2cde; |
ktn | -128 - 127 (0) | (Key Transpose)トランスポーズ.TSSCPの'ns'に相当.半音=1としてトランスポーズの指定.値省略時/初期値0.
cde; kt7cde; |
* | (pitch bend)ピッチベンド.q/@qによる指定を無効化し,直前のノートを次のノートにピッチ変移させる.次音発音時エンベロープ/位相はリセットされない.
c*<c; // 1オクターブベンディング. |
|
pon | 0- | (POrtament)ポルタメント.ノートをスラーで繋げた場合,直前のノートから次のノートにピッチ変移させる.ピッチベンドとは異なり,次音発音直後から変移を開始する.引数で変移にかかるフレーム数.値省略時/初期値0.
po6l8c&g&f& |
!@krn | -8192 - 8191 (0) | 【非推奨:偽TSSCPとの互換性のためのコマンド】.(Key detune Relative)相対デチューン.半音=64としてデチューンをシフト.値省略時0. |
!@nsn | -128 - 127 (0) | 【非推奨:偽TSSCPとの互換性のためのコマンド】.(Note Shift)相対トランスポーズ.半音=1としてトランスポーズをシフト.値省略時0.内部でノートシフトマクロ展開時に使われる.コンパイル時に展開されるため,ループ内で用いても1度しかトランスポーズされない. |
Statement | Range | Description |
---|---|---|
ln | 1 - 1920 (4) | (Length)デフォルト音長.ノート/休符で音長省略時に採用される値の指定.l1で全音符,l4で四分音符,l16で16分音符.値省略時/初期値4.
cder l8cder l16cder; |
^n | 1 - 1920 ('l'指定値) | (extension)音長加算.ノート/休符/デフォルト音長で音長を指定値分加算する.値省略時は'l'コマンドの指定値を採用.
c4^16; // 4分音符+16分音符長で演奏 |
qn | 0 - 8 (6) | (Quantize)クォンタイズ.キーオフのタイミングを指定音長との割合で指定する.q0でキーオンと同時にキーオフ.q4で指定音長の半分でキーオフ.q8でキーオフしない.値省略時/初期値6.
q0cr q4cr q8cr; |
@qn1,n2 | 0 - 192 (0) | (Absolute Quantize)絶対クォンタイズ/キーオンディレイ.第一引数でキーオンの長さを指定値分短く,第二引数でキーオンのタイミングを指定値分遅らせる.192で全音符長,48で4分音符長,12で16分音符長.値省略時/初期値0.【仕様】キーオンディレイ>0 が指定されている状態でスラーを掛けると,前音のキーオンディレイと後音のスラーが無効になる.
q8 @q48cr @q24cr @q0cr; // "q0cr q4cr q8cr"と同じ q8 @q,24 o5c2c2; q0 l8o4[8c]; // キーオンを8分音符分遅らせる |
& | (slur)スラー.q/@qによる指定を無効化し,直前の音を次のノート/休符に繋げる.次音発音時エンベロープ/位相はリセットされない.
cd&e; // "d"と"e"の間がつながる c&c; // 位相リセットされないため,継ぎ目が判らない #TABLE0{(0,128)90};na0 c&d&e; // エンベロープもリセットされない. |
|
&& | (weak slur)弱スラー.q/@qによる指定を無効化し,直前のノートを次のノート/休符に繋げる.次音発音時エンベロープ/位相はリセットされる.
c&&c; // 位相リセットされるため,継ぎ目が判る #TABLE0{(0,128)90};na0 c&&d&&e; // エンベロープもリセットされる. |
Statement | Range | Description |
---|---|---|
vn | 0 - 32(%v第二引数に依存) (16) | (Volume)ボリューム.%v無指定時,v0で無音,v16で最大値,v16-32でディストーション.値省略時/初期値16.
%5 v4c v8c v12c v16c v20c v24c v28c v32c; |
[()]n | 1 - 32(%v第二引数に依存) (1) | (volume shift)ボリュームシフト.相対ボリューム.数値でシフトするボリュームを指定可.値省略時1.デフォルトは'('でボリューム上げ,')'でボリューム下げ.'#REV' マクロを指定すると符号を反転.
v1l8 c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c)4c)4c)4c)4c; |
xn | 0 - 128 (128) | (eXpression)エクスプレッション.値省略時/初期値128.x0で無音,x128で最大値.音量テーブルエンベロープ(na,_na)は,このエクスプレッションの値を書き換える.このため,na,_naが指定されると x による指定は無効になる.
v8 x32c x64c x96c x128c v4 x32c x64c x96c x128c; // "v"と"x"は独立 |
%vn1,n2 | n1=0 - 4(0) n2=0 - 7(4) |
(Volume setting)ボリューム設定.第一引数でスケール設定.0で線形,1-4で非線形(対数スケール,それぞれDynamicRange=96dB,64dB,48dB,32dB).第二引数でvコマンド最大値の指定.ディストーションしない最大値は(256>>第二引数)で計算できる.デフォルト値=4(v最大値16).この設定はヴォリュームシフトにも適用される.
%v3,1 v128c v96c v64c v32c; // 非線形スケール(dr=48dB),v最大値128 |
%xn | 0 - 4(0) | (eXpression setting)エクスプレッション設定.引数でスケール設定.0で線形,1-4で非線形(対数スケール,それぞれDynamicRange=96dB,64dB,48dB,32dB).このスケールはテーブルエンベロープにも適用される.
%x1 x128c x120c x112c x104c; // 非線形スケール(dr=96dB) |
@vn1,...n8 | 0 - 128 (n1=64/n2-n8=0) | (m@ster Volume)マスターボリューム/エフェクトセンド.値省略時/初期値n1=64/n2-n8=0.第一引数でチャンネルのマスターボリューム,第2~8引数でEffect slot#1-#7 へのエフェクトセンドレベルを指定する.
@v64 v4c v8c v12c v16c @v32 v4c v8c v12c v16c; // "@v"と"v"(と"x")は独立 #EFFECT1{chorus}; @v64,32 cde; // エフェクトスロット#1(chorus)にlevel=32でエフェクトセンド |
pn | 0 - 8 (4) | (Panning)パン.'p0'で左のみ発音.'p4'でセンター.'p8'で右のみ発音. ['@p'指定値] = (['p'指定値] - 4) x 16. p0c p2c p4c p6c p8c; |
@pn | -64 - 64 (0) | (fine Panning)詳細パン.p-64で左のみ発音.p0でセンター.p64で右のみ発音.値省略時/初期値0.
@p-64c @p-32c @p0c @p32c @p64c; |
Statement | Range | Description |
---|---|---|
%n1,n2 | n1; 0 - 9 (0) n2; 0 - 7 (0) |
(module)音源モジュール選択.第一引数で音源の種類,第二引数でチャンネル番号を指定する.選択したモジュールによって'@'第一引数の意味が変化する.また,%を指定すると オペレータ数=1 にリセットされる.
%0c %1c %2c %3c; |
@n1,...n15 | n1; 0 - 1023 (0) | (tone)音色選択/設定.音色選択とオペレータの設定,15引数(省略可).音源モジュール("%"コマンド指定値)によって第一引数の意味が異なる.
%5 @0c @1c @2c @3c @4c @5c @6c @7c; // 第一引数で波形選択 @0,32,28,28,28,2,0 cde; // エンベロープ指定 |
@fn1,...n10 | n1; 0 - 128 (128) n2; 0 - 9 (0) |
(Filter)フィルタ設定.フィルタとエンベロープの設定.第一引数でカットオフ,第二引数でレゾナンスを指定.10引数(省略可).
%2 @f64,3 q0 c; // カットオフ=64, レゾナンス=3 でノイズ @f0,2,32,32,32 cde; // エンベロープ指定 |
%fn | n; 0,1,2 (0) | (Filter)フィルタモード.0=ローパス, 1=バンドパス,2=ハイパスフィルタに設定.
%f2 @f96 cde; // ハイパスフィルタ |
sn1,n2 | n1; 0 - 63 (28) n2; -256 - 255 (0) |
(Sustain sweep)リリース設定.第一引数で全ファイナルキャリアのRelease Rateを変更する.第二引数でキーオフ後のピッチスイープを指定する. [スイープ速度[半音/frame]] = [第二引数] / 21 q4 s63cr s32cr s24cr s20cr s12cr; q4 s28,-32cde; // スイープ |
@aln1,n2 | n1; 1 - 4 (1) n2; 0 - 15 (0) |
(ALgorism)オペレータの接続の指定.第1引数でオペレータ数,第2引数で接続アルゴリズムを指定する.オペレータ数の初期値は1.この場合,TSSCPと同様1チャンネルで1つの波形生成を行い,接続アルゴリズムは無視される.このコマンドを指定すると,全オペレータが初期値にリセットされる.第2引数省略時のデフォルト値は,全オペレータ並列アルゴリズム(2ope;alg=1, 3ope;alg=5, 4ope;alg=7).
%5 @al2,0 cde; // 2ope FM接続;o1(o0) |
@fbn1,n2 | n1; 0 - 7 (0) n2; 0 - 3 (0) |
(FeedBack)フィードバック設定.第1引数でフィードバック量,第2引数でフィードバックを返すオペレータを指定する.フィードバックが返されるオペレータは0番で固定されており,多段フィードバックを指定する場合は,第2引数で0以外を指定する.
%5 @al2,0 @fb5,1 cde; // 2段フィードバック;o1(o0(o1)) |
in | 0 - 3 (最後のオペレータ) | (operator Index)オペレータ指定.後続の '@','@rr','@tl','@ml','@dt','@ph','@fx','@se'コマンドでパラメータ設定するオペレータを指定する.'@al'の第一引数で指定したオペレータ数より大きい場合,最後のオペレータ(4オペレータなら#3)が指定される.
%5 @al2 i0@0 i1@1 cde; // 2ope 並列出力で op0;sin op1;saw を出力 |
@rrn1,n2 | n1;0 - 63 (28) n2;-256 - 255 (0) |
(@ Release Rate)'@'の第5パラメータと同等.第二引数でキーオフ後のピッチスィープを指定.1オペレータの場合は's'と同じ. |
@tln | 0 - 127 (0) | (@ Total Level)'@'の第7パラメータと同等. |
@mln1,n2 | n1;0 - 15 (1) n2;-128 - 127 (0) |
(@ MuLtiple)'@'の第10パラメータと同等.第二引数で非整数倍音multipleの指定. [周波数比] = [第一引数(0の場合→0.5)] + [第二引数] / 128 |
@dtn | -8192 - 8191 (0) | (@ DeTune)'@'の第12パラメータと同等.'k'は全てのオペレータに対して設定を行うのに対して,'@dt'は'i'で指定した特定のオペレータに対して設定を行う. |
@phn | -1 - 255 (0) | (@ PHase)'@'の第14パラメータと同等. |
@fxn | 0 - 127 (0) | (@ FiXed note)'@'の第15パラメータと同等. |
@sen | 0 - 17 (0) | (@ SSG Envelpe control)OPNA の SSGEC レジスタ相当.16,17は拡張.16;同じ音量で繰り返す8番エンベロープ,17;同じ音量で繰り返す12番エンベロープ. |
@ern | 0 , 1 | (@ Envelop Reset)エンベロープリセット.1でアタック開始時にエンベロープレベルをリセットする.全オペレータに対して変更.初期値/デフォルト値0. |
Statement | Range | Description |
---|---|---|
%tn1,n2,n3 | n1; - (0) n2; 0 - 3 (1) n3; 0 - 3 (1) |
(event Trigger)イベントトリガー設定.ActionScriptコードと連動するために使用する.第1引数でトリガーID,第2引数でノートオン時のトリガータイプ,第3引数でノートオフ時のトリガータイプを指定.このコマンドを指定後,発音の度にイベントが発生するようになる. |
%en1,n2 | n1; - (0) n2; 0 - 3 (1) |
(dispatch Event)イベント発生.ActionScriptコードと連動するために使用する.第1引数でトリガーID,第2引数でトリガータイプを指定.このコマンドのタイミングでノートオンイベントが発生する. |
Statement | Range | Description |
---|---|---|
@lfon1,n2 | n1; 1 - (20) n2; 0 - 3 (2) |
(Low Frequency Oscilator)LFO設定.第1引数でLFO周期(60=1[sec]),第2引数で波形(0;downward saw, 1;square, 2;triangle, 3;random, 4-7;0-3の位相反転, 8-255;#TABLE参照)を指定する.#TABLEを参照する場合,メンバは256個,数値範囲は0-255.このコマンドは'mp','ma'を初期化("mp0ma0")するため,'@lfo'後に再設定が必要.
@lfo30 mp32c1 @lfo10 mp32c1 |
mpn1,n2,n3,n4 | n1; 0 - 8191 (0) n2; 0 - 8192 (0) n3; 0 - 65535 (0) n4; 0 - 65535 (0) |
(Pitch Modulation)音程モジュレーション(ビブラート)設定.'@lfo'で設定したLFOで音程を揺らす.n1(modulation), n2(end modulation) の値は64=1半音.n3(delay), n4(changing time)はフレーム数で指定.
mp8,32,60,40 c1^1 |
man1,n2,n3,n4 | n1; 0 - 8191 (0) n2; 0 - 8192 (0) n3; 0 - 65535 (0) n4; 0 - 65535 (0) |
(Amplitude Modulation)音量モジュレーション(トレモロ)設定.'@lfo'で設定したLFOで音量を揺らす.n1(modulation), n2(end modulation) の値は ams=3 で[modulation振幅値]=[tl値].モジュレーションの係り具合は,各オペレータのams値に依る.n3(delay), n4(changing time)はフレーム数で指定.
ma0,32,60,40 c1^1 |
Statement | Range | Description |
---|---|---|
@fpsn | 1 - 1000 (#FPS設定値) | (Frame Per Second)エンベロープ/LFO変化速度の設定.'@@','na','np','nt','nf','_@@','_na','_np','_nt','_nf','po','@rr'の第2引数,'mp'/'ma'の変化時間 の実行速度をFrame per secondで設定する.
#TABLE0{(0,12)30}; q8 nt0 @fps30 c1 @fps120 c1; |
@@n1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(tone envelop)音色エンベロープ.キーオン中の'@'第1引数をテーブルでコントロールする.'@'の書き換えを行う.
#TABLE0{(0,32)32}; q8 %3 @@0,5 c1^1; // '%3@0'から'%3@31'まで5フレーム毎に音色変更. |
nan1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(Amplitude ENvelop)音量エンベロープ.キーオン中の'x'指定値をテーブルでコントロールする.'x'の書き換えを行う.
#TABLE0{(128,0)10 (64,0)10|(32,0)10}; na0q8 l2cde; |
npn1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(Pitch ENvelop)音程エンベロープ.キーオン中の'k'指定値をテーブルでコントロールする.'k'と独立して設定可能.
#TABLE0{(0,128,-64,0)60}; np0q8 c1; |
ntn1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(noTe ENvelop)ノートエンベロープ.キーオン中の'kt'指定値をテーブルでコントロールする.'kt'と独立して設定可能.
#TABLE0{|0,4,7}; nt0 cde; // 分散コード |
nfn1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(Filter ENvelop)フィルターエンベロープ.キーオン中の'@f'第1引数をテーブルでコントロールする.'@f'と独立して設定可能.
#TABLE0{|(128,64,128)20}; nf0 c1; // ワウ |
_@@n1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(release tone envelop)音色リリースエンベロープ.キーオフ後にテーブルエンベロープを適用する.
#TABLE0{|1,5};q4 %5 _@@0 cdef; |
_nan1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(release Amplitude ENvelop)音量リリースエンベロープ.キーオフ後にテーブルエンベロープを適用する.'x'の書き換えを行う.'@rr/s'と独立しているため,'_na'のみでリリースエンベロープをコントロールする場合はリリース時の減衰を0('s0')にする必要がある.
#TABLE0{32}; _na0 q4s0cder _na255x0c; |
_npn1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(release Pitch ENvelop)音程リリースエンベロープ.キーオフ後にテーブルエンベロープを適用する.'@rr/s'の第二引数と独立して設定可能.
#TABLE0{(0,64,0)20}; _np0 q4cde; |
_ntn1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(release noTe ENvelop)ノートリリースエンベロープ.キーオフ後にテーブルエンベロープを適用する.'@rr/s'の第二引数と独立して設定可能.
#TABLE0{|0,3,7}; _nt0 q4cde; |
_nfn1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
(release Filter ENvelop)フィルターリリースエンベロープ.キーオフ後にテーブルエンベロープを適用する.
#TABLE0{(0,128)20}; _nf0 q2cde; |
!nan1,n2 | n1; 0 - 255 (255) n2; 1 - 65535 (1) |
【非推奨;TSSCPとの互換性のためのコマンド】.(Amplitude ENvelope)相対音量エンベロープ.ただし,TSSCPのnaコマンドとは挙動が異なり,リリースに対して適用されず,q/sコマンドを上書きしない.(q0s0を指定してnaコマンドを適用しているデータなどは,q8s63に書き換える事で対応可能.) |
#TABLE0{|0,4,7}; nt0,1c nt0,2c nt0,5c; // 第二引数でエンベロープ速度を指定する
Statement | Range | Description |
---|---|---|
@on1,n2 | n1; 0 - 2 (0) n2; 0 - 3 (0) |
(Output pipe)パイプ出力の設定.TSSCPのそれと同等.後続のシーケンスで@i,@rを指定する事でチャンネル間の FM/RingMod 接続が可能. 第1引数でモード(0;通常のステレオ出力(パイプへの出力はオフ),1;パイプ上書,2;パイプ加算)を指定.第2引数でパイプ(0-3)を指定.モード1か2でパイプへ出力した場合,モノラルで出力され,@v, @pは無視される. @o1 %5q8s0 cde; @i5 %5 cde; |
@in1,n2 | n1; 0 - 7 (5) n2; 0 - 3 (0) |
(freqency modulating Input pipe)FM接続パイプ入力の設定.TSSCPのそれと同等.前出のシーケンスで@oを指定する事でチャンネル間のFM接続が可能 第1引数でモジュレーション(5が通常のFM音源相当,0でオフ),第2引数でパイプを指定. @o1 %5q8s0 cde; @i3 %5 cde; |
@rn1,n2 | n1; 0 - 8 (4) n2; 0 - 3 (0) |
(Ring modulating input pipe)リングモジュレーションパイプ入力の設定.前出のシーケンスで@oを指定する事でチャンネル間のリングモジュレーション接続が可能. 第1引数でモジュレーション(4が通常のリングモジュレーション相当,0でオフ),第2引数でパイプを指定. @o1 %5q8s0 cde; @r5 %5gab; |