MML解説(モジュレーションとARCC)
ARCC (Assignable Realtime Control Change)
ビブラート・ピッチモジュレーション
ビブラート・ピッチモジュレーション
- (1)
@Mlv1,...,lv8
または (2)@Mlv
[V2] (ピッチ・モジュレーションの振幅設定)- lv, lv1 ~ lv8: 0 ~ 127(ノーマルモード) or -768 ~ 768(拡張モード1) or -8192 ~ 8191(拡張モード2)。
- ピッチ・モジュレーション(音程を細かく震わせる)の振幅設定を行う。
- 1/8モード ピッチ・モジュレーション
- 発音後、 音長の1/8時間単位で振幅(モジュレーション・デプス)を変化させることが出来る。 設定可能範囲はMIDIのノーマルモードは 0≦lvn≦127、拡張モード時は-768≦lvn≦768 (-8192≦lvn≦8191)。
- # ノーマルモード,拡張モードについてはMコマンド参照。
- 値は任意の位置で省略可能、8個まで記述でき、相対指定も可能で
@m60,,,50,127
@m,,,,127
@m,,120,-10,+5
- といった記述が出来る。
- こちらのモードを指定した場合は後述のディレイ・コマンドで設定したディレイ値は無視される。
- ディレイ・モード ピッチ・モジュレーション
- 振幅(モジュレーション・デプス)を1つだけ設定する。 振幅の設定範囲は-32768≦lv≦32767。
- 後述のディレイ・コマンドで設定したディレイの後lvの深さでピッチ・モジュレーションを実行する。
- 初期値はいずれのモードにおいても0。 また全ての値を省略した場合はモジュレーション解除のスイッチとなる。
- 例
@m / モジュレーション解除
[VIBRATO.DEPTH mode, dp1, dp2, ... , dp8]
[V3] [未実装]- (ビブラート振幅)
- mode:
OFF
,1/8
,OPTIONAL
,ON
- dp1 ~ dp8: -32768 ~ +32767 ビブラート振幅
- ビブラートの振幅の設定をdp1~dp8において行う。 基本MMLの
@M
とほぼ同等の機能だがmodeが設定できるのが特徴。 modeとはビブラートの動作方式を設定するもの。 以下にmodeと対応する動作を示す。- mode:
ON
- ビブラートを以前の設定で再開する。
- mode:
OFF
- ビブラートを停止する。
- mode:
1/8
- 発音する音符の音長の1/8単位毎で dp1からdp8のビブラート振幅に順々に設定していく。
- mode:
OPTIONAL
- 発音する音符の音長とは無関係に、 任意の時間区間毎でdp1からdp8のビブラート振幅を次々に設定していく。 時間区間のシーケンスは後述の
[VIBRATO.DELAY]
で行う。
- mode:
- modeは省略するとスイッチはそれまでの設定を保持したままとなる。
- dp1~dp8のビブラート振幅は任意の位置で省略可能で、 数値の頭に±を付けることによって相対的な値の指定も可能。例えば
- [VIBRATO.DEPTH optional 64,,-10,+5]
- といった記述ができる。省略した部分は前の値を持続するということになり、 その間は振幅の変更は行われない。
- 相対指定時にオーバーフロー/アンダーフローを起こした値は、 有効範囲内の最大値,最小値に修正される。
- 例: [VIBRATO.DEPTH 1/8 0,0,10,20,30] / modeを1/8とし、dp1=0,dp2=0,dp3=10,dp4=20,dp5=30と設定した。 dp6,dp7,dp8は省略(未設定)。
- mode:
[VIBRATO.DEEPEN sw, spd, dpn, rpt]
[V3] [未実装]- (ビブラート振幅増加)
- sw:
OFF
,ON
- spd: 1 ~ 65535 増減速度
- dpn: -32768 ~ +32767
- rpt: 0 ~ 32767
- ビブラートの振幅の増加/減少を設定する。
- sw:
OFF
,ON
- ビブラートの振幅増減機能を有効にするか無効にするかを設定する。
OFF
で無効に、ON
で有効に設定される。 - spd: 増減速度
- ビブラートの振幅の増減速度を設定する。 1がもっとも速く、65535がもっとも遅い。 0はエラー。値は絶対音長に相当し、有効範囲は1~65535。
- dpn: 振幅増加量
- 振幅の増減量を設定する。 負値は振幅減少、正値は振幅増加に対応する。
- 値の有効範囲は-32768~+32767。絶対値が大きければ大きいほど、 増減は急激となる。
- rpt: 増減回数
- 振幅はspdの速度でdpn幅増減するが、 この処理を何回繰り返すかを設定する。 rpt=0とすると、 振幅が初期化されるまで無限に増減を繰り返す設定になる。 値の有効範囲は1~32767。
- sw:
- 例: [VIBRATO.DEEPEN ON,6,+8,10] / (増減スピード6で10回振幅を8増加させる)
- sw:
[VIBRATO.SPEED sp1, sp2, .... , sp8]
[V3] [未実装]- (ビブラート・スピード(周期))
- sp1 ~ sp8: 1 ~ 32767 ビブラートスピード
- ビブラートの振動速度を設定する。 基本MMLの
@S
とほぼ同等の機能を持つが、 最大8つの振幅変化に対応した振動速度変化の設定が行えるのが特長。 設定範囲は1≦sp1~sp8≦32767。 - 実際の波形にどう影響するかは拡張MML
[VIBRATO.WAVEFORM]
の項で解説するが、 値が小さいほど高速に、値が大きいほど低速に音が振動する。 - sp1~sp8の振動速度は任意の位置で省略可能だが、 初期値を持たないので注意。
- 例: [VIBRATO.SPEED 10,8,20] / (sp1=10,sp2=8,sp3=20,sp4~sp8は省略(未設定))
[VIBRATO.DELAY dl0, dl1, .... , dl8]
[V3] [未実装]- (ビブラート・ディレイ)
- dl0: 0 ~ 32767
- dl1 ~ dl8: 0 ~ 65535 ビブラートディレイ
- ビブラートの動作モードの一つである 「OPTIONAL」モードにおけるビブラートの振幅切り換えタイミングを決定する区間時間の設定を行う。 基本MML
@H
に相当する機能。 - dl0は最初のビブラートがかかるまでのディレイ(遅延時間)に相当し、 絶対音長値で指定する。有効範囲は0~32767。初期値は0。 dl1~dl8は次の振幅切り換えまでの区間時間で、 これも絶対音長値で指定する。有効範囲は0~65535。初期値は無し。
- dl0~dl8の任意のものを省略可能だが、 dl1~dl8は初期値を持たないので注意。
- 例: [VIBRATO.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が設定される。
[VIBRATO.WAVEFORM w]
[V3] [未実装]- (ビブラート・波形選択)
- またはプリセット波形は
- という文字パラメータを用いて指定することもできる。
- 初期値はw=2の三角波。
- w=5~7はリザーブ。 w=8~32767はユーザー定義波形となる。 ユーザー波形の登録については、 共通コマンド部の
.WAVE_FORM
参照。 - 以下に波形と各パラメータとの関係を示す。
@M
: 振幅[VIBRATO.DEPTH]
@H
: ディレイ[VIBRATO.DELAY]
@K
: ディチューン@S
: 速度[VIBRATO.SPEED]
- 波形番号0:鋸歯波(SAW) (振幅が正の時) _ /| /| /| /| /↑@M @K→____/ | / | / | / | / ↓ ←──→ | / | / | / | /  ̄ @H |/ |/ |/ |/| | | @S 波形番号0:鋸歯波 (振幅が負の時) |\ |\ |\ |\ @K→____ | \ | \ | \ | \ _ ←──→\ | \ | \ | \ | \ ↑ @H \| \| \| \| |\↓@M | | ̄ @S 波形番号1:矩形波 (振幅が正の時) | ̄ ̄| | ̄ ̄| | ̄ ̄| | ̄ ̄| @K→____| | | | | | | | _ ←──→ | | | | | | | ↑@M @H |__| |__| |__| |__ ↓ | |  ̄ @S 波形番号1:矩形波 (振幅が負の時) _ | ̄ ̄| | ̄ ̄| | ̄ ̄ ↑@M @K→____ | | | | | ↓ ←──→| | | | | |  ̄ @H |__| |__} |__| | | @S 波形番号2:三角波 (振幅が正の時) _ /\ /\ / ↑@M @K→____/ \ / \ / ↓ ←──→ \ / \ /|  ̄ @H \/ \/ | | | @S 波形番号2:三角波 (振幅が負の時) /\ /\ @K→____ / \ / \ _ ←──→\ / \ / |\ ↑@M @H \/ \/ | \ ↓ | | ̄ @S 波形番号3:鋸歯波シングル (振幅が正の時) _____________ /↑@M @K→____/| ↓ ←──→| |  ̄ @H @S 波形番号3:鋸歯波シングル (振幅が負の時) @K→____ _ ←──→\ ↑ @H |\↓@M | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ @S 波形番号4:ランダム波 (振幅が正の時) 波形番号8~32767:ユーザー波形 (振幅が正の時) 波形データ列が+5,-5,+10,+3,0の場合・・・ +10*@M/32 +5*@M/32 | ̄ ̄| | ̄ ̄| | |__+3*@M/32 @K→────| | | |── ←──→ |__| 0*@M/32 @H -5*@M/32 ←→ @S 波形番号4:ランダム波 (振幅が負の時) 波形番号8~32767:ユーザー波形 (振幅が負の時) 波形データ列が+5,-5,+10,+3,0の場合・・・ +5*@M/32 | ̄ ̄| 0*@M/32 @K→────| | | |── ←──→|__| | | ̄ ̄ @H -5*@M/32 |__| -3*@M/32 -10*@M/32 ←→ @S
[VIBRATO.SWITCH mode]
[V3] [未実装]- (ビブラートスイッチ)
- mode: -1 ~ 2 または
OFF
,1/8
,OPTIONAL
,ON
- ビブラートの動作制御を行う。 modeは
[VIBRATO.DEPTH]
のパラメータのmodeと同等。 modeは数値で与えることもでき、 この時は0=OFF
, -1=1/8
, 1=OPTIONAL
, 2=ON
に対応する。 - 例: [VIBRATO.SWITCH 1/8] / (1/8モードでONにする)
- [VIBRATO.SWITCH 2] / (以前のモード(1/8かOPTIONALのいずれか)でONにする)
- mode: -1 ~ 2 または
[VIBRATO.SYNC m, c]
[V3] [未実装]- (ビブラート同期モード)
- m: 0=非同期, 1=同期 または
OFF
,ON
同期モード - c: 1~65535 同期ディレイ
- ビブラート波形の初期化(リセット)タイミングの設定を行う。 基本MML
H
に相当する機能を持つ。 - mは同期モードの設定値。 0は非同期,1は同期に対応し、 0と1はそれぞれ文字列
OFF
,ON
にも対応する。 mをON
,OFF
といった文字列にて設定することも可能。 - 「同期」に設定した場合は新しく発音するたびにビブラート波形の初期化を行う。 「非同期」にした場合は発音と無関係にビブラートを続行する。
- mは数値指定では0,1以外に、 以下のように2進数で設定すればより高度な初期化設定が行える。 []は初期設定を表す。
- m: 0=非同期, 1=同期 または
- 上から分かるようにmの初期値は1となっている。
- cは同期ディレイにあたり、 実際にはmで指定した条件がc回成立すると波形が初期化されることになる。cの初期値は1。
- 例: [VIBRATO.SYNC %011] / (発音と同時、タイ指定においても初期化する)
[VIBRATO.MODE mode]
[V3] [未実装]- (ビブラートモード)
- mode: 0 ~ 2 または
NORMAL
,FM
,MIDI
ビブラートモード - Z-MUSICではMIDIでのビブラート制御モードを2つ持っており、 本命令はこのモード選択をするもので、 基本MML
M
に相当する。 ビブラートについての詳解は基本MMLM
の項を参照のこと。- mode=0,
NORMAL
- ノーマルモードの設定。
[VIBRATO.DEPTH]
で指定できる振幅の範囲は0≦@M
≦127。 - mode=1,
FM
- 拡張モード1の設定。
[VIBRATO.DEPTH]
で指定される振幅は、半音=64として作用する。[VIBRATO.DEPTH]
で指定できる振幅の範囲は-768≦@M
≦768。 - mode=2,
MIDI
- 拡張モード2の設定。
[VIBRATO.DEPTH]
で指定される振幅は、そのまま14bitのMIDIのピッチベンダー値となる (ベンドレンジ=12の時、半音≒683)。[VIBRATO.DEPTH]
で指定できる振幅の範囲は-8192≦@M
≦8191。
- mode=0,
- ※注意: 本命令を実行するとそれまで設定されていた振幅 (
[VIBRATO.DEPTH]
の値)は無効となる。 - 例: [VIBRATO.MODE NORMAL] /(ビブラートモードを通常モードに設定する)
- mode: 0 ~ 2 または
ARCC (Assignable Realtime Control Change)
ARCC (Assignable Realtime Control Change)
- ARCC (Assignable Realtime Control Change)とは
@Cc,r,m
[V2] (コントロールチェンジ登録)- c: 0 ~ 127 コントロールチェンジ登録
- r: 0 ~ 127 リセット値
- m: 0 ~ 127 波形の基準(中央)値
- ARCC用に、任意のコントロール・チェンジナンバーcを選んで登録する。 コントロール・チェンジ番号の有効値はMIDI楽器によって異なるので、 各楽器のマニュアルのインプリメンテーション・チャートを参考のこと。
- ARCCの実行を解除した時に登録したコントロール・チェンジcに対して、 リセットという意味でなんらかの値を設定することができる。 その設定する値というのがパラメータrで、 省略時は0となる。 設定範囲は0≦r≦127。
- 後述の拡張ARCCモード使用時にはプリセット波形やユーザー波形が使用可能となるが、 その波形の基準値となるのがmである。
- なお、初期設定ではc=11(Expression), r=m=127 である。
- (1)
@Alv1,...,lv8
または (2)@Alv
[V2] (コントロールチェンジへの送信値指定)- lv, lv1 ~ lv8: 0 ~ 127(ノーマルモード) or -128 ~ 127(拡張モード)
- 1/8モード ARCC
- 発音後音長の1/8時間単位で先述の@Cコマンドで登録したコントロール・チェンジへ値を送信し音源を制御することが出来る。 値の設定範囲は0≦lvi≦127。 (拡張ARCCモード時には設定範囲は-127≦lvi≦127)
- 値は任意の位置で省略可能、8個まで記述でき、相対指定も可能で
@a60,,,50,127
@a,,,,127
@a,,120,-10,+5
- といった記述が出来る。
- こちらのモードを指定した場合は後述のディレイ・コマンドで設定したディレイ値は無視される。
- ディレイモード ARCC
- ARCCの設定値を1つのみ設定する。設定範囲は0≦lv≦127。 (拡張ARCCモード時には設定範囲は -127≦lv≦127) 後述の@H命令で設定したディレイの後、 nの値で @C命令で登録したコントロール・チェンジを送信する。
- 初期値はいずれのケースにおいても0。 また全ての値を省略した場合はARCC解除のスイッチとなる。
- 例:
@a / ARCC off
@c11,127,127 s,3 m,1 @s,20 @h,20 @a-80 a1 / note onして20tick後Expression(音量)が小さくなっていく
@c10,64,127 s,2 m,1 @s,10 @h,0 h,1 @a127 c1d1e1 / 発音とは無関係にパンポットを左右に振り回し続ける
[ARCCn.LEVEL mode, lv1,lv2,…,lv8]
[V3][ARCCn.DEPTH mode, lv1,lv2,…,lv8]
[V3] (ARCC振幅)- n: 1~4 ARCC番号
- mode:
OFF
,1/8
,OPTIONAL
,ON
ARCC動作方式 - lv1~lv8: -128~+127 ARCC設定値
- ARCCの振幅設定を行う。基本MMLの
@A
とほぼ同じ機能だが@A
はARCC1に対しての設定しか行えないのに対して、 本命令は各トラック独立動作させることのできる4つのARCCコントローラーに対して個別にパラメータを設定できる。 nはARCC番号で設定範囲は1~4。 - modeとはARCCの動作方式を設定するもの。 以下にmodeと対応する動作を示す。
- mode:
ON
- ARCCを以前の設定で再開する。
- mode:
OFF
- ARCCを停止する。
- mode:
1/8
- 発音する音符の音長の1/8単位毎でlv1から lv8のARCC値を次々に設定していく。
- mode:
OPTIONAL
- 発音する音符の音長とは無関係に、任意の時間区間毎で lv1からlv8のARCC振幅を次々に設定していく。 時間区間のシーケンスは後述の
[ARCCn.DELAY]
で行う。
- mode:
- modeは省略するとスイッチはそれまでの設定を保持したままとなる。 lv1~lv8のARCC振幅は任意の位置で省略可能で、 数値の頭に±を付けることによって相対的な値の指定も可能。 例えば
[ARCCn.LEVEL optional 64,,-10,+5]
といった記述ができる。 省略した部分は前の値を持続するということになり、 その間は振幅の変更は行われない。 - 相対指定時にオーバーフロー/アンダーフローを起こした値は有効範囲内の最大値,最小値に修正される。
- 例:
[ARCC1.LEVEL 1/8 0,0,10,20,30]
modeを1/8とし、lv1=0,lv2=0,lv3=10,lv4=20,lv5=30と設定した。 lv6,lv7,lv8は省略(未設定)。
[ARCCn.DEEPEN sw,spd,dpn,rpt]
[V3] (ARCC振幅増加)- n: 1~4 ARCC番号
- sw:
OFF
,ON
ARCC動作スイッチ - spd: 1~65535 ARCC動作速度
- dpn: -32768~+32767 ARCC振幅増加量
- rpt: 0~32767 ARCC増減回数
- ARCCの振幅の増加/減少を設定する。
- sw:
OFF
,ON
- ARCCの振幅増減機能を有効にするか無効にするかを設定する。
OFF
で無効に、ON
で有効に設定される。 - spd: 増減速度
- ARCCの振幅の増減速度を設定する。 1がもっとも速く、65535がもっとも遅い。 0はエラー。 値は絶対音長に相当し、有効範囲は1~65535。
- dpn:振幅増加量
- 振幅の増減量を設定する。負値は振幅減少、 正値は振幅増加に対応する。 値の有効範囲は-32768~+32767。 絶対値が大きければ大きいほど、増減は急激となる。
- rpt:増減回数
- 振幅はspdの速度でdpn幅増減するが、 この処理を何回繰り返すかを設定する。 rpt=0とすると振幅が初期化されるまで無限に増減を繰り返す設定になる。 値の有効範囲は1~32767。
- sw:
- 例:
[ARCC1.DEEPEN ON,6,+8,10]
(ARCC1を増減スピード6で10回振幅を8増加させる)
[ARCCn.CONTROL ctrl]
[V3] (ARCCコントロールチェンジ設定)- n: 1~4 ARCC番号
- ctrl: 0~127 ARCCで制御するコントロールチェンジ番号
- ARCCの制御対象コントロールを設定する。基本MMLの
@C
とほぼ同等の機能だが@C
はARCC1に対しての設定しか行えないのに対して、 本命令は各トラック独立動作させることのできる4つのARCCコントローラーに対して個別にパラメータを設定できる。 - nはARCC番号で設定範囲は1~4。 ctrlはARCCで制御したいコントロールチェンジ番号。 コントロールは以下の文字列を設定することでも行える。
- 0=BANK_MSB 1=VIBRATO 2=CTRL2 3=CTRL3 4=CTRL4 5=PORTAMENT_TIME 6=DATA_ENTRY_MSB 7=VOLUME 8=CTRL8 9=CTRL9 10=PANPOT 11=EXPRESSION 12=CTRL12 13=CTRL13 14=CTRL14 15=CTRL15 16=CTRL16 17=CTRL17 18=CTRL18 19=CTRL19 20=CTRL20 21=CTRL21 22=CTRL22 23=CTRL23 24=CTRL24 25=CTRL25 26=CTRL26 27=CTRL27 28=CTRL28 29=CTRL29 30=CTRL30 31=CTRL31 32=BANK_LSB 33=CTRL33 34=CTRL34 35=CTRL35 36=CTRL36 37=DATA_ENTRY_LSB 38=CTRL31 39=CTRL39 40=CTRL40 41=CTRL41 42=CTRL42 43=CTRL43 44=CTRL44 45=CTRL45 46=CTRL46 47=CTRL47 48=CTRL48 49=CTRL49 50=CTRL50 51=CTRL51 52=CTRL52 53=CTRL53 54=CTRL54 55=CTRL55 56=CTRL56 57=CTRL57 58=CTRL58 59=CTRL59 60=CTRL60 61=CTRL61 62=CTRL62 63=CTRL63 64=DAMPER 65=PORTAMENT 66=SOSTENUTO 67=SOFT 68=CTRL68 69=FREEZE 70=CTRL70 71=CTRL71 72=CTRL72 73=CTRL73 74=CTRL74 75=CTRL75 76=CTRL76 77=CTRL77 78=CTRL78 79=CTRL79 80=CTRL80 81=CTRL81 82=CTRL82 83=CTRL83 84=PORTAMENT_CONTROL 85=CTRL85 86=CTRL86 87=CTRL87 88=CTRL88 89=CTRL89 90=CTRL90 91=REVERB 92=TREMOLO 93=CHORUS 94=DELAY 95=PHASER 96=DATA_INCREMENT 97=DATA_DECREMENT 98=NRPN_LSB 99=NRPN_MSB 100=RPN_LSB 101=RPN_MSB 102=CTRL102 103=CTRL103 104=CTRL104 105=CTRL105 106=CTRL106 107=CTRL107 108=CTRL108 109=CTRL109 110=CTRL110 111=CTRL111 112=CTRL112 113=CTRL113 114=CTRL114 115=CTRL115 116=CTRL116 117=CTRL117 118=CTRL118 119=CTRL119 120=ALL_SOUND_OFF 121=RESET_ALL_CONTROLLERS 122=LOCAL 123=ALL_NOTES_OFF 124=OMNI_OFF 125=OMNI_ON 126=MONO 127=POLY
- 例:
[ARCC1.CONTROL EXPRESSION]
[ARCC1.CONTROL 11]
(上記2つは同義)
[ARCCn.ORIGIN org]
[V3] (ARCC波形の原点設定)- n: 1~4 ARCC番号
- org: 0~127 ARCC波形の原点
- ARCC波形の基準値を設定する。この値を振幅の上限値として
[ARCCn.DEPTH]([ARCCn.LEVEL])
で設定した振幅で振動する。 この値は[ARCCn.WAVEFORM]
の図解中の @Cに相当する。初期値は127。- 例:
[ARCC1.ORIGIN 64] (ARCC1の波形の基準値を64に設定する)
- 例:
[ARCCn.RESET rst]
[V3] (ARCC波形の初期化値の設定)- n: 1~4 ARCC番号
- rst: 0~127 ARCCリセット値
- ARCC波形の初期化値を設定する。後述の
[ARCCn.MODE]
の設定によって多少作用が異なる。 初期値は0。[ARCCn.MODE]
がNORMAL
のとき- ARCC開始時にこの値でコントローラが初期化される (ただし
[ARCCn.DELAY]
のdl≠0のとき)。 またARCC解除時にもこの値でコントローラが初期化される。 [ARCCn.MODE]
がSPECIAL(ENHANCED)
のとき- ARCC解除時にこの値でコントローラが初期化される。
- 例:
[ARCC1.RESET 0] (ARCC1の初期化値を0に設定する)
[ARCCn.SPEED sp1,sp2,…,sp8]
[V3] (ARCCスピード(周期))- n: 1~4 ARCC番号
- sp1~sp8: 1~32767 ARCCスピード(周期)
- ARCCの振動速度を設定する。基本MMLの
@S
とほぼ同等の機能を持つが、 最大8つの振幅変化に対応した振動速度変化の設定が行えるのが特長。 - nは設定先ARCC番号で設定範囲は1~4。 sp1~sp8は速度値で設定範囲は 1≦sp1~sp8≦32767。
- 実際の波形にどう影響するかは拡張MML
[ARCCn.WAVEFORM]
の項で解説するが、 値が小さいほど高速に、値が大きいほど低速に音が振動する。 - sp1~sp8の振動速度は任意の位置で省略可能だが、 初期値を持たないので注意。
- 例:
[ARCC1.SPEED 10,8,20] (ARCC1の速度をsp1=10,sp2=8,sp3=20と設定,sp4~sp8は省略(未設定))
[ARCCn.DELAY dl0,dl1,…,dl8]
[V3] (ARCCディレイ)- n: 1~4 ARCC番号
- dl0: 0~32767 ARCCディレイ
- dl1~dl8: 0~65535 ARCCディレイ
- ARCCの動作モードの一つである 「OPTIONAL」モードにおけるARCCの振幅切り換えタイミングを決定する区間時間の設定を行う。 基本MML
@H
に相当する機能。 - nは設定先ARCC番号で設定範囲は1~4。
- dl0は最初のARCCが実行されるまでのディレイ(遅延時間)に相当し、 絶対音長値で指定する。有効範囲は0~32767。初期値は0。
- dl1~dl8は次の振幅切り換えまでの区間時間で、 これも絶対音長値で指定する。有効範囲は0~65535。初期値は無し。
- dl0~dl8の任意のものを省略可能だが、 dl1~dl8は初期値を持たないので注意。
- 例:
[ARCC1.DELAY 10,24,12,12,12,28,28,12,12]
(ARCC1のディレイをdl0=10,dl1=24,dl2=12,dl3=12,dl4=12,dl5=28,dl6=28, dl7=12,dl8=12と設定する。)
[ARCCn.WAVEFORM w]
[V3] (ARCC波形)- 初期値はw=2の三角波。
- w=5~7はリザーブ。 w=8~32767はユーザー定義波形となる。
- ユーザー波形の登録については
.WAVE_FORM
参照。 - 以下に波形と各パラメータとの関係を示す。
- @A: 振幅
[ARCCn.DEPTH]
([ARCCn.LEVEL]
) - @H: ディレイ
[ARCCn.DELAY]
- @C: 波形基準値
[ARCCn.ORIGIN]
([ARCCn.CONTROL]
/@C
の第3パラメータ) - @S: 速度
[ARCCn.SPEED]
- @A: 振幅
- 波形番号0:鋸歯波 (振幅が正の時) @C→____ _ ←──→\ \ \ \ ↑ @H \ \ \ \ | \ \ \ \ |@A \ \ \ |\↓ | | ̄ @S 波形番号0:鋸歯波 (振幅が負の時) @C→____ _ ←──→ / / / /↑ @H / / / / |@A / / / / | / / / /| ↓ | |  ̄ @S 波形番号1:矩形波 (振幅が正の時) @C→____ _ ←──→ ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑ @H | |@A __ __ __ __ ↓ | |  ̄ @S 波形番号1:矩形波 (振幅が負の時) @C→____ _ ←──→  ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑ @H |@A | __ __ __ __ ↓ | |  ̄ @S 波形番号2:三角波 (振幅が正の時) @C→____ _ ←──→\ /\ / ↑ @H \ / \ / | |\ / \ / |@A | \/ \/ ↓ |←→|  ̄ @S 波形番号2:三角波 (振幅が負の時) @C→____ _ ←──→ /\ /\ ↑ @H / \ / \ | /| \ / \ |@A / | \/ \ ↓ |←→|  ̄ @S 波形番号3:鋸歯波シングル (振幅が正の時) @C→____ _ ←──→\ ↑ @H \ | \ |@A |\↓ | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ @S 波形番号3:鋸歯波シングル (振幅が負の時) @C→____ _____________ ←──→ /↑ @H / |@A / | /| ↓ | |  ̄ @S 波形番号4:ランダム波 (振幅が正の時) 波形番号8~32767:ユーザー波形 (振幅が正の時) 波形データ列が+5,-5,+10,+3,0の場合・・・ +10*@A/32 +5*@A/32 ̄ ̄  ̄ ̄ __+3*@A/32 @C→──── ── ←──→ __ 0*@A/32 @H -5*@A/32 ←→ @S 波形番号4:ランダム波 (振幅が負の時) 波形番号8~32767:ユーザー波形 (振幅が負の時) 波形データ列が+5,-5,+10,+3,0の場合・・・ +5*@A/32  ̄ ̄ 0*@A/32 @C→──── ── ←──→__  ̄ ̄-3*@A/32 @H -5*@A/32 __ -10*@A/32 ←→ @S
[ARCCn.SWITCH mode]
[V3] (ARCCスイッチ)- n: 1~4 ARCC番号
- mode: -1~2 または
OFF
,1/8
,OPTIONAL
,ON
- ARCCの動作制御を行う。
- nは設定先ARCC番号で設定範囲は1~4。 modeは
[ARCCn.DEPTH]([ARCCn.LEVEL])
のパラメータのmodeと同等。 modeは数値で与えることもでき、この時は 0=OFF
,-1=1/8
, 1=OPTIONAL
,2=ON
に対応する。 - 例:
[ARCC2.SWITCH 1/8](ARCC2を1/8モードでONにする)
[ARCC4.SWITCH 2] (ARCC4を以前のモード(1/8かOPTIONALのいずれか)でONにする)
[ARCCn.SYNC m,c]
[V3] (ARCC同期モード)- n: 1~4 ARCC番号
- m: 0=非同期 1=同期 または OFF,ON
- c: 1~65535 ARCC同期ディレイ
- ARCC波形の初期化(リセット)タイミングの設定を行う。 基本MML
H
に相当する機能を持つ。 nは設定先ARCC番号で設定範囲は1~4。 mは同期モードの設定値。0は非同期,1は同期に対応し、 0と1はそれぞれ文字列OFF
,ON
にも対応する。 mをON
,OFF
といった文字列にて 設定することも可能。 - 「同期」に設定した場合は新しく発音するたびにARCC波形の初期化を行う。 「非同期」にした場合は発音と無関係にARCCを続行する。
m
は数値指定では0,1以外に、 以下のように2進数で設定すればより高度な初期化設定が行える。 []は初期設定を表す。- 第0ビット 発音と同時にリセット 0:しない [1]:する
- 第1ビット タイでもリセット [0]:しない 1:する
- 第2ビット 休符でもリセット [0]:NO 1:YES
- 第3ビット 波形はキーオン毎に進行する [0]:NO 1:YES
- 第4ビット 波形は休符でも進行する [0]:NO 1:YES
- これから分かるようにmの初期値は1となっている。
- cは同期ディレイにあたり、 実際にはmで指定した条件がc回成立すると波形が初期化されることになる。 cの初期値は1。
- 例:
[ARCC2.SYNC %011] (ARCC2を発音と同時、タイ指定においても初期化する)
[ARCCn.MODE mode]
[V3] (ARCCモード)- n: 1~4 ARCC番号
- mode: 0~2 または
NORMAL
,SPECIAL
(ENHANCED
) ARCCモード - ARCCモードは2つあり、本命令はこのモード選択をするもので、 基本MML
M
に相当する。 ARCCについての詳解は基本MMLM
の項を参照のこと。 - nは設定先ARCC番号で設定範囲は1~4。
- mode=0,
NORMAL
- ノーマルモードの設定。
[ARCCn.DEPTH]([ARCCn.LEVEL])
で指定できる振幅の範囲は0≦@A
≦127。 - mode=1,
SPECIAL
- 拡張モード1の設定。ARCCは選択した波形にそって実行される。
[ARCCn.DEPTH]([ARCCn.LEVEL])
で指定できる振幅の範囲は-128≦@A
≦127。
- mode=0,
- ※注意:本命令を実行するとそれまで設定されていた振幅 (
[ARCCn.DEPTH],[ARCCn.LEVEL]
) は無効となる。 - 例:
[ARCC3.MODE NORMAL] (ARCC3のARCCモードを通常モードに設定する)
[ARCCn.PHASE mode]
[V3] (ARCC波形位相制御)- n: 1~4 ARCC番号
- mode: 0~1 または
NORMAL
,REVERSE
(INVERSE
) ARCC波形位相 - ARCCの波形の位相を制御する。通常とデフォルト状態では mode=0(
NORMAL
)に相当し、[ARCCn.WAVEFORM]
の項で図解した波形が実行される。 一方mode=1 (REVERSE
)では[ARCCn.WAVEFORM]
の項で図解した波形において@Cを中心に反転した波形が実行される。 - 例:
[ARCC3.PHASE REVERSE] (ARCC3のARCC波形を逆位相モードにする)
[ARCCn.OFFSET o]
[zmc3] (ARCC波形振幅オフセット設定, zmc3拡張)- n: 1~4 ARCC番号
- o: -128~127 ARCCオフセット値
- ARCCの波形の振幅値に対するオフセット値(バイアス値)を設定する。 デフォルト状態ではo=0。
- ARCCで実際に出力される波形値には、
[ARCCn.LEVEL]
で指定した波形値に[ARCCn.OFFSET]
で指定したオフセット値を加えたものが用いられる。 オフセット値を加えた値が127を越える場合や、 -128を下回る場合は、 波形値の出力はそれぞれ127,-128に補正される。 - ただし、@a0など、 ARCCをオフにするために振幅値をゼロに設定した場合は、 例外的にオフセット値が無視される。
- 例:
[ARCC1.offset 10] @a120,100,90,80
(実際の出力は @a127,110,100,90相当となる)
ピッチモジュレーション・ARCC設定
ピッチモジュレーション・ARCC設定
@Hm,a
[V2] (ディレイ値設定)- m, a: 0 ~ 65534 ディレイ値
- MIDIのピッチ・モジュレーション、ARCC、拡張ピッチ・モジュレーション、 拡張ARCCのディレイモード用のディレイクロックを設定する。 モジュレーションやARCCは発音後ディレイ時間待ってから効果が現れる。 (同期モードの場合)
- mはピッチ・モジュレーション用のディレイ。 設定範囲は0≦m≦65534。
- aはARCC用のディレイ。 設定範囲は0≦a≦65534。
- 値はどちらか一方の省略は可能。初期値は共に0。
- 例:
@h24,10 / (両方同時に設定)
@h,10 / (ARCC/拡張ARCCのディレイのみ設定する)
@h24 c1 / (ピッチ・モジュレーションのディレイのみ設定。発音して24tick後モジュレーションがかかる)
@Sm,a
[V2] (波形スピード(波長)設定)- m, a: 0 ~ 16383 波長値
- MIDIの拡張ピッチ・モジュレーション、 拡張ARCCモード時のピッチモジュレーション・スピードを設定する。 設定範囲は 1≦m,a≦16383。
- 本命令はMIDIのノーマル・モジュレーション・モードでは全く考慮されないもので、 拡張モードの時のみ有効である。 ノーマルモードと拡張モードについてはMML Mを参照のこと。
- 実際の波形にどう影響するかは最後に解説するが、 値が小さいほど高速で、値が大きいほど低速で音が振動する。 (具体的には、指定するパラメータは波長の25%分のtick数に相当する)
- 値はどちらか一方の省略は可能。初期値は共に6。
- 例:
@s24,10 / (両方同時に設定)
@s,10 / (拡張ARCCのスピードのみ設定する)
@s24 / (ピッチ・モジュレーションのスピードのみ設定する)
Sm,a
[V2] (波形選択)- m, a: 0 ~ 31 波形番号
- MIDIの拡張ピッチ・モジュレーション、 拡張ARCCモード時のモジュレーション波形をセレクトする。
- mがピッチ・モジュレーション用の波形、 aが拡張ARCC用の波形に対応する。
- 波形は波形番号0~3がプリセット波形で、 8~31がユーザー定義波形となる。 スピードや振幅パラメータの波形への影響については最後を参照のこと。
- 値はどちらか一方の省略は可能。初期値は共に2の三角波。
- 例:
s1,1 / (両方同時に設定)
s,2 / (拡張ARCCの波形のみ設定する)
s3 / (ピッチ・モジュレーションの波形のみ設定する)
- 波形メモリの効能
- ZMUSICではユーザーが定義したユーザー波形(波形メモリ)を使って、 ピッチモジュレーション(以下PM)、アゴーギク、アンプリチュード・モジュレーション(以下AM)、ARCC、エンハンスド・ベロシティ・シーケンスを実行する事ができます。
- ZMUSIC Ver.2.0では、波形メモリを使用した場合、 振幅値(
@A
)は意味を持ちませんでしたが Ver.3.0以降では、振幅値が有効となります。 ピッチモジュレーション、アゴーギクでの原波形振幅値は256に相当し、 効能値は 波形値×振幅÷256 で求められます。 また、アンプリチュード・モジュレーション、ARCC、 エンハンスドベロシティ・シーケンスでの原波形振幅値は32に相当し、 効能値は 波形値×振幅÷32 で求められます。 よって、Ver.2.0で波形メモリを用いた演奏データをVer.3.0で演奏させた場合は、 やや演奏のニュアンスが異なってくる場合がありえます。 - 拡張ピッチ・モジュレーションで使う場合
- 拡張モジュレーション・モード時にはFM音源パートと同様な効果を得ることができます。 拡張モジュレーション・モードには振幅を半音=64にするか半音≒683 (ベンドレンジ=12の時)にするかの2つのモードがありますが、 波形データはこの影響を受けます。 たとえば波形データが683で、振幅が原波形指定(=256)だったとすると、 半音=64モード時には683/64≒10半音分 の変化量になりますが、 半音≒683モード時には1半音分の変化量となります。 用途に合わせて使い分けて下さい。
- 例:
- (t1) m1 @m256 @s6 s8 @h40 / 順位相で波形メモリ8番をMIDI・拡張PMで実行
- (t1) m1 @m-256 @s6 s8 @h40 / 逆位相で波形メモリ8番をMIDI・拡張PMで実行
- 拡張ARCCで使う場合
- 各波形データはARCCニュートラル値 (
@C
の第3パラメータ)と加算して、 その和がコントロールチェンジへ出力されます。 応用次第で疑似ランダム・オートパンポットやFM音源のような自由波形による音量モジュレーションなども実現できます。 - 例:
- (t1) m,1 @a32 @s,6 s,8 @h,40 / 順位相で波形メモリ8番をMIDI・拡張ARCCで実行
- (t1) m,1 @a-32 @s,6 s,8 @h,40 / 逆位相で波形メモリ8番をMIDI・拡張ARCCで実行
- ZMUSIC Ver.2.0では、波形メモリを使用した場合、 振幅値(
Hm,a
[V2] (波形の同期on/off切り替え)- m, a: 0,1 波形同期ON(0)/OFF(1)
- MIDIの拡張ピッチ・モジュレーション、 拡張ARCCモード時のモジュレーション波形を、 キーオンと同期して初期化させるか(同期モード)、 キーオンと同期して初期化せずに波形タイプの切り換えが起こるまで継続させるか(非同期モード)を設定する。
- mがピッチ・モジュレーション用、 aが拡張ARCC用の同期/非同期設定パラメータとなる。 値はどちらか一方の省略は可能。 初期値は共に0の同期モードが設定されている。
- 例:
h1,1 / (両方同時に設定)
h,1 / (拡張ARCCの波形を非同期モードに設定する)
h1 / (ピッチ・モジュレーションの波形を非同期モードに設定する)
Mp,a
[V2] (制御メッセージの送信モード指定)- p: 0, 1, 2 モジュレーションのモード
- a: 0, 1 ARCCのモード
- MIDIにはモジュレーションとARCCのモードが2つあり、ひとつは、 ある指定されたタイミングにのみMIDI楽器へ制御メッセージ (コントロールチェンジ) を送信するモードで、これをノーマルモードと呼ぶ。
- もうひとつはリアルタイムに絶えずMIDI楽器へ制御メッセージを送るモードでこちらを拡張モードと呼ぶ。
- ノーマルモードは楽器側のハードウェア的な処理によって特殊効果を実現するので負荷は少ない。 一方、拡張モードは絶えず制御メッセージを送るため多少の負荷はあるものの、 Sコマンドでセレクトされる波形に従って制御できるためノーマルモードより多彩な表現が出来る。
- 本命令はピッチ・モジュレーションとARCCをどのモードで実行するかを決定するもの。
- パラメータはどちらか一方の省略は可能。 初期値はともに0(ノーマルモード)。
- 例:
m2,1
m,1
m1
(両方同時に設定)
(ARCCのモードのみ設定する)
(ピッチ・モジュレーションのモードのみ設定する)
モジュレーション/ARCC波形について
モジュレーション/ARCC波形について
- プリセット波形
- Z-MUSICにはピッチ・モジュレーション用(以下PM)、 アンプリチュード・ モジュレーション用(以下AM)両方に4つのプリセット波形が登録されて いる。 この波形が振幅 (@M, @Aコマンド)、 波長(@Sコマンド)、ディレイ (@Hコマンド)などの各パラメータによってどう変化するかを図に示す。
- 波形メモリについて
- Z-MUSICでは、共通コマンド部の
- を用いて作成したユーザー波形を波形番号8~31に登録し使用することが出来る。
- この波形が振幅(@M, @Aコマンド)、 波長(@Sコマンド)、ディレイ (@Hコマンド)などの各パラメータによってどう影響するかを図に示す。 また以下にユーザー波形使用時の留意点を示す。
ピッチ・モジュレーション(MIDI音源部拡張ピッチ・モジュレーションモード時)
ピッチ・モジュレーション(MIDI音源部拡張ピッチ・モジュレーションモード時)
- 波形番号0:鋸歯波 振幅パラメータ:+
- _ / / / / /↑@M @K→____/ / / / / ↓ ←──→ / / / /  ̄ @Hの / / / /| 第1para | | @Sの第1para
- 波形番号0:鋸歯波 振幅パラメータ:-
- \ \ \ \ @K→____ \ \ \ \ _ ←──→\ \ \ \ \ ↑ @Hの \ \ \ \ |\↓@M 第1para | | ̄ @Sの第1para
- 波形番号1:矩形波 振幅バラメータ:+
-  ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ @K→____ _ ←──→ ↑@M @Hの __ __ __ __↓ 第1para | |  ̄ @Sの第1para
- 波形番号1:矩形波 振幅バラメータ:-
- _  ̄ ̄  ̄ ̄  ̄ ̄↑@M @K→____ ↓ ←──→  ̄ @Hの __ __ __ 第1para | | @Sの第1para
- 波形番号2:三角波 振幅パラメータ:+
- _ /\ /\ /↑@M @K→____/ \ / \ / ↓ ←──→ \ / \ /|  ̄ @Hの \/ \/ | 第1para | | @Sの第1para
- 波形番号2:三角波 振幅パラメータ:-
- /\ /\ @K→____ / \ / \ _ ←──→\ / \ / |\ ↑@M @Hの \/ \/ | \↓ 第1para | | ̄ @Sの第1para
- 波形番号3:鋸歯波シングル 振幅パラメータ:+
- _____________ /↑@M @K→____/| ↓ ←──→| |  ̄ @Hの @Sの第1para 第1para
- 波形番号3:鋸歯波シングル 振幅パラメータ:-
- @K→____ _ ←──→\ ↑ @Hの |\↓@M 第1para | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ @Sの第1para
- 波形番号8~31:ユーザー波形 振幅パラメータ:+
- 波形データ列が+5,-5,+10,+3,0の場合・・・
- +10 +5  ̄ ̄  ̄ ̄ __ 0 @K→──── +3 ── ←──→ __ @Hの -5 第1para ←→ @S第1para
- 波形番号8~31:ユーザー波形 振幅パラメータ:-
- 波形データ列が+5,-5,+10,+3,0の場合・・・
- +5  ̄ ̄ 0 @K→──── -3 ── ←──→__  ̄ ̄ @Hの -5 __ 第1para -10 ←→ @S第1para
拡張ARCC
拡張ARCC
- 波形番号0:鋸歯波 振幅パラメータ:+
- @Cの 第3para→____ _ ←──→\ \ \ \ ↑ @Hの \ \ \ \ | 第2para \ \ \ \ |@A \ \ \ |\↓ | | ̄ @Sの第2para
- 波形番号0:鋸歯波 振幅パラメータ:-
- @Cの 第3para →____ _ ←──→ / / / /↑ @Hの / / / / |@A 第2para / / / / | / / / /| ↓ | |  ̄ @Sの第2para
- 波形番号1:矩形波 振幅バラメータ:+
- @Cの 第3para →____ _ ←──→ ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑ @Hの | 第2para |@A __ __ __ __↓ | |  ̄ @Sの第2para
- 波形番号1:矩形波 振幅バラメータ:-
- @Cの 第3para →____ _ ←──→  ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ↑ @Hの |@A 第2para | __ __ __ __ ↓ | |  ̄ @Sの第2para
- 波形番号2:三角波 振幅バラメータ:+
- @Cの 第3para→____ _ ←──→\ /\ / ↑ @Hの \ / \ / | 第2para |\ / \ / |@Aのパラメータ | \/ \/ ↓ ←→  ̄ @Sの第2para
- 波形番号2:三角波 振幅バラメータ:-
- @Cの 第3para→____ _ ←──→ /\ /\ ↑ @Hの / \ / \ | 第2para /| \ / \ |@Aのパラメータ / | \/ \ ↓ ←→  ̄ @Sの第2para
- 波形番号3:鋸歯波シングル 振幅パラメータ:+
- @Cの 第3para→____ _ ←──→\ ↑ @Hの \ | 第2para \ |@A |\↓ | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ @Sの第2para
- 波形番号3:鋸歯波シングル 振幅パラメータ:-
- @Cの 第3para→____ _____________ ←──→ /↑ @Hの / |@A 第2para / | /| ↓ | |  ̄ @Sの第2para
- 波形番号8~31:ユーザー波形 振幅パラメータ:+
- 波形データ列が+5,-5,+10,+3,0の場合・・・
- +10 +5  ̄ ̄ @Cの  ̄ ̄ __ 0 第3para→──── +3 ── ←──→ __ @Hの -5 第2para ←→ @S第2para
- 波形番号8~31:ユーザー波形 振幅パラメータ:-
- 波形データ列が+5,-5,+10,+3,0の場合・・・
- +5 @Cの  ̄ ̄ 0 第3para→──── -3 ── ←──→__  ̄ ̄ @Hの -5 __ 第2para -10 ←→ @S第2para
参考・波形メモリの応用例
参考・波形メモリの応用例
- ARCC活用サンプルも別途ご参照ください。
- MIDI音源のピッチ・モジュレーションで使う場合
- 拡張モジュレーション・モード時のみ有効です。 波形の各値がそのチャンネルのディチューンと加算されて、 それがその瞬間のピッチとして決定されます。
- 例えばディチューンが10の時に波形メモリのデータが0,5,-5の時は 10+0=10, 10+5=15, 10-5=5がそれぞれその瞬間のピッチになります。
- 拡張モジュレーション・モードには振幅を半音=64(MML M1 指定時)にするか、半音≒683(MML M2指定時) (ベンドレンジ=12の時)にするかの2つのモードがありますが、 波形データはこの影響を受けます。 たとえば波形データが683であったとすると、 半音=64モード時には683/64≒10半音分の変化量になりますが、 半音≒683モード時には1半音分の変化量となります。 用途や趣味に合わせて使い分けて下さい。
- 例:
- (t1) m1 @m1 @s6 s8 @h40 / 順位相で波形メモリ8番をMIDI・拡張PMで実行
- (t1) m1 @m-1 @s6 s8 @h40 / 逆位相で波形メモリ8番をMIDI・拡張PMで実行
- MIDI音源の拡張ARCCで使う場合(M,1実行時)
- 波形メモリは拡張ARCCモード時にのみ有効です。 各波形データはARCCニュートラル値(@Cの第3パラメータ)と加算して、 その和がコントロールチェンジへ出力されます。 応用次第で疑似ランダム・オート・パンポットやFM音源の様な自由波形による音量モジュレーションなども実現できます。
- 例:
- (t1) m,1 @a1 @s,6 s,8 @h,40 / 順位相で波形メモリ8番をMIDI・拡張ARCCで実行
- (t1) m,1 @a-1 @s,6 s,8 @h,40 / 逆位相で波形メモリ8番をMIDI・拡張ARCCで実行
- 注意