| 音量の正規化(ノーマライズ:normalize) |
|
|
音量の正規化とはピーク音量(最大音量)を平均化しバランスを整える処理です。 フリーソフトでもこれ(正規化)が出来るソフトは多数ありますが大抵はダイナミックレンジ一杯に広げて正規化するのが主流だと思います。(ピーク音量を 0dB に合わせるんだから当たり前だろうけど…) /** * @param [in,out] data 波形データ * @param [in] len 波形データのサンプル数 * * 16bit リニア PCM の正規化を開始します。 * @p data に正規化元のデータを指定し正規化後はここに格納されます。 * * @p len に指定される値はバイト数ではなく波形データのサンプル数になる事に注意して下さい。 * */ void normalize (short * data, int len) { short peak = 0; // ピーク値の取得 for (int i = 0; i < len; ++i) { short sample = abs (data [i]); if (peak < sample) { peak = sample; } } // ピーク値から乗算値を求める float mul = (32767.0f / peak); for (int i = 0; i < len; ++i) { data [i] = static_cast <short> (data [i] * mul); } } // normalize たったこれだけです。
以上がこのプログラムの流れになります。 |
|
|
| Copyright © 2004-2005 jintan All rights reserved. http://www.web-sky.org |