V3MMLmanual

4.1 音量設定の前提事項

← 目次

【解説】

V3MMLでは、音声バッファを -1.0 〜 +1.0 の浮動小数点数(ステレオ)で用意しています。
音声バッファにレンダリングする前の、音源モジュール段階の波形も、-1.0 〜 +1.0 の浮動小数点数(モノラル)で用意しています。
このため、レベル調整しないと、複数トラックであっという間に音割れが発生してしまいます。

レベル調整は大まかに分けて5つの段階があります。
音源モジュールの出力を音声バッファにレンダリングする際は、次の順でレベル調整を行います。

  1. コンフィグ設定:#MB:CONFIG { mixing_vol: master_rate=[], }
  2. ミキシング設定:#MB:MIXING_VOL および mv
  3. 音量コマンドの v 、エンベロープの @ea(最大で振幅が 1.0 倍に設定)
  4. 音量コマンドの vl 、音量LFOの @la(最大で振幅が 1.0 倍に設定)
  5. パンポットコマンドの @p および p
@p設定 左側の振幅倍率 右側の振幅倍率
@p-100 1.0 倍 0.0 倍
@p-50 0.75 倍 0.25 倍
@p0 0.5 倍 0.5 倍
@p50 0.25 倍 0.75 倍
@p100 0.0 倍 1.0 倍
p設定 左側の振幅倍率 右側の振幅倍率
p-1 1.0 倍 0.0 倍
p0 1.0 倍 1.0 倍
p1 0.0 倍 1.0 倍

以上を踏まえて、最終的に、全トラックの音声を加算した結果が、
-1.0 〜 +1.0 の振幅に収まるように、次の設定を行う必要があります。

意図せず音割れを起こしてしまった場合に備えて、KeyDispウィンドウには次の表示項目を設けてあります。

peakLevel(L)
peakLevel(R)

以上の表示は、演奏開始からの音声出力の最大が何%であったかを示しています。
音割れでクリッピングが発生すると、表示が「over(数値)」となり、数値のサンプル数だけクリッピングを行ったことが分かります。
音割れが発生した場合は、ミキシングボリュームを下げたり等の調整を検討してください。

【備考】

音量計算は統一的に 64bit 浮動小数計算で行っています。そのため、各種音量計算による音質ロスの心配は、ほぼありません。