浮動小数点数による配列定義は次の通りです。
#MB:VOLUME_SCALE vs=1 {
type=table, vh=15, v=15, @ea=mul, vr=0, vl=15, @la=mul, vlr=0, |
0.00, 0.07, 0.13, 0.20, 0.27, 0.33, 0.40, 0.47,
0.53, 0.60, 0.67, 0.73, 0.80, 0.87, 0.93, 1.00,
}
vs1 v15 c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c;
デシベルによる配列定義は次の通りです。
#MB:VOLUME_SCALE vs=2 {
type=table, vh=15, v=15, @ea=mul, vr=2, vl=15, @la=mul, vlr=2, |
0.0,-42dB,-39dB,-36dB,-33dB,-30dB,-27dB,-24dB,
-21dB,-18dB,-15dB,-12dB, -9dB, -6dB, -3dB, 0dB,
}
vs2 v15 c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c;
以上の例では、v0、vl0 の部分のみ、0倍(無音)となるよう、浮動小数点数で定義しています。
フォーマットは次の通りです。
#MB:VOLUME_SCALE vs=定義番号 {
type=table, vh=[], v=[], @ea=[], vr=[], vl=[], @la=[], vlr=[],
|
V0_MAGNI, //V0_MAGNIからVMAX_MAGNIまでの
V1_MAGNI, //音量倍率の配列個数は、
V2_MAGNI, //vh=[]で指定する数値+1の個数を
: //定義します。
VMAX_MAGNI,
}
(V0_MAGNI〜VMAX_MAGNI群の直前で、| 記号で区切ること)
vh:仮想音量ハードの音量最大値を指定します。
設定範囲は、4 〜 1024 の整数です。
vhの指定により、音量倍率値の配列定義を、vh+1個の要素で行う必要があります。
例えば、vh=15 とした場合、v0〜v15 に相当する16個の音量倍率値を配列に定義しなければなりません。
v:vコマンドで指定する最大値を指定します。
設定範囲は 4 〜 10000 の整数です。
@ea:vコマンドに対応する音量エンベロープ(@ea)の計算方法の名称を指定します。
設定できる名称は、mul または add です。
※@ea=addでは、v と @ea の分母を vh の分母に合わせて、@eaのカレント値(最大レベルから減った分)を v 設定値に加算します。
vr:vコマンドと、@eaエンベロープ出力を演算した結果(*a)を、vhのインデックス番号(整数)に丸めるモードを指定します。
v 設定値を超える場合は v 設定値に制限します。vl:vlコマンドで指定する最大値を指定します。
設定範囲は 4 〜 10000 の整数です。
@la:vlコマンドに対応する音量LFO(@la)の計算方法の名称を指定します。
設定できる名称は、mul または add です。
※@la=addでは、vl と @la の分母を vh の分母に合わせて、@laのカレント値を vl 設定値に加算します。
(@laのカレント値は、0以下の数値になる想定です。0の時が vl の音量そのもので、負数になる程に小さい音量になります。正数の場合は0に矯正されます)
vlr:vlコマンドと、@la音量LFO出力を演算した結果(*b)を、整数に丸めるモードを指定します。
vl 設定値を超える場合は vl 設定値に制限します。V0_MAGNI〜VMAX_MAGNI:仮想音量ハードの、インデックス 0〜最大値 で使用する倍率値を指定します。
V0_MAGNI から VMAX_MAGNI までの定義個数は次の通りです。
vh値 + 1(個)指定可能な倍率値の範囲は、0〜1の浮動小数点数です。 特別な表記方法として、数値の末尾につける単位には、次のものがあります。
dB を付加 → デシベルによる指定dBB を付加 → デシベルバイナリモードによる指定v-mul-vr0:
音声振幅 * (mix_master*mv) * vhArray[ round( vhDenom * (vNum/vDenom) * @ea ) ]
v-mul-vr1:
音声振幅 * (mix_master*mv) * vhArray[ ceil( vhDenom * (vNum/vDenom) * @ea ) ]
v-mul-vr2:
v = floor( vhDenom * ((vNum+1)/vDenom) * @ea )
if (v > vNum) { v = vNum; }
音声振幅 * (mix_master*mv) * vhArray[v]
v-mul-vr3:
音声振幅 * (mix_master*mv) * vhArray[ floor( vhDenom * (vNum/vDenom) * @ea ) ]
v-add-vr0:
音声振幅 * (mix_master*mv)
* vhArray[ round( vhDenom + (((vNum/vDenom)*vhDenom)-vhDenom) + (@ea*vhDenom-vhDenom) ) ]
v-add-vr1:
音声振幅 * (mix_master*mv)
* vhArray[ ceil( vhDenom + (((vNum/vDenom)*vhDenom)-vhDenom) + (@ea*vhDenom-vhDenom) ) ]
v-add-vr2:
v = floor( vhDenom + (((vNum+1)/vDenom)*vhDenom - vhDenom) + (@ea*vhDenom - vhDenom) )
if (v > vNum) { v = vNum; }
音声振幅 * (mix_master*mv) * vhArray[ v ]
v-add-vr3:
音声振幅 * (mix_master*mv)
* vhArray[ floor( vhDenom + (((vNum/vDenom)*vhDenom)-vhDenom) + (@ea*vhDenom-vhDenom) ) ]
vl-mul-vr0:
* vhArray[ round( vhDenom*(vlNum/vlDenom) * (1+(@la*depth/vhDenom)) ) ]
vl-mul-vr1:
* vhArray[ ceil( vhDenom*(vlNum/vlDenom) * (1+(@la*depth/vhDenom)) ) ]
vl-mul-vr2:
v = floor( vhDenom*((vlNum+1)/vlDenom) * (1+(@la*depth/vhDenom)) )
if (v > vlNum) { v = vlNum; }
* vhArray[ v ]
vl-mul-vr3:
* vhArray[ floor( vhDenom*(vlNum/vlDenom) * (1+(@la*depth/vhDenom)) ) ]
vl-add-vr0:
* vhArray[
round(
vhDenom +
(vhDenom*(vlNum/vlDenom)-vhDenom) +
((1+(@la*depth/vhDenom))*vhDenom-vhDenom)
)
]
vl-add-vr1:
* vhArray[
ceil(
vhDenom +
(vhDenom*(vlNum/vlDenom)-vhDenom) +
((1+(@la*depth/vhDenom))*vhDenom-vhDenom)
)
]
vl-add-vr2:
v = floor(
vhDenom +
(((vlNum+1)/vlDenom)*vhDenom - vhDenom) +
((1+(@la*depth/vhDenom))*vhDenom - vhDenom)
)
if (v > vlNum) { v = vlNum; }
* vhArray[ v ]
vl-add-vr3:
* vhArray[
floor(
vhDenom +
(vhDenom*(vlNum/vlDenom)-vhDenom) +
((1+(@la*depth/vhDenom))*vhDenom-vhDenom)
)
]