Top

あちゃぴーの自転車通勤
u-he UHM言語 学習10 Normalize

ウェーブテーブルの音量調整だが、音が小さすぎたり、大きすぎたりするのを防ぐ。 WavにExportする場合は必須と思われる。 下記に重要なコマンドオプションを書いておく。

Metric

dB

Metric=Peak dB=0と書けば、波形のピーク値が0dBになる。

Base

フレームに対しての設定。

下のスクリプトはノコギリ波にLPFを掛けた8フレーム構成のウェーブテーブルとなる。 まだノーマライズする前の状態で、ExportしたwavファイルをAudacityで読み込んだものを見ると、音量を上げることが出来るのが分かる。

NumFrames =8
Spectrum start=0 end=7 lowest=1 highest=60 "(0.2/ index)"
Wave "lowpass(x, 1-table, 0.5)"
Export "myFile.wav"
u-he uhm

下記はノーマライズしたスクリプトで、ピーク値を0dBとし、全フレームでノーマライズという内容になっている。 5フレームのみが0dBに届いているのが分かる。

NumFrames =8
Spectrum start=0 end=7 lowest=1 highest=60 "(0.2/ index)"
Wave "lowpass(x, 1-table, 0.5)"
Normalize Metric=peak dB=0 Base=all
Export "myFile.wav"
u-he uhm

下はBase=eachにしたもの、各フレームごとにノーマライズされ、各フレームごとに一番大きな振幅が0dBになっている。

NumFrames =8
Spectrum start=0 end=7 lowest=1 highest=60 "(0.2/ index)"
Wave "lowpass(x, 1-table, 0.5)"
Normalize Metric=peak dB=0 Base=each
Export "myFile.wav"
u-he uhm

dB=-6とし、ピーク値を下げてみる。

NumFrames =8
Spectrum start=0 end=7 lowest=1 highest=60 "(0.2/ index)"
Wave "lowpass(x, 1-table, 0.5)"
Normalize Metric=peak dB=-6 Base=each
Export "myFile.wav"

ちゃんとピークが-6dBになっているのが確認できる。

u-he uhm

RMSを使ってみる

では次にデフォルトのMetric=RMSでdB=0としてみる。

NumFrames =8
Spectrum start=0 end=7 lowest=1 highest=60 "(0.2/ index)"
Wave "lowpass(x, 1-table, 0.5)"
Normalize Metric=RMS dB=0 Base=all
Export "myFile.wav"

RMSは実効値なので、dB=0だと波形が上下に突き出てしまう。結果歪む場合もある。というのは32bit floatなので、Hiveなどでは歪まずに再生できてしまう。

u-he uhm

Audacity上で一見歪んで欠けてしまった波形でも、一番大きな部分を0dBまで音量を下げることもできる。32bit floatは便利。

u-he uhm

上記を理解していれば、ノーマライズでは、それほど困ることもないだろう。

uhm言語