limiterではデジタル状態の音源をチェックしている。実際に聞く時はD/Aコンバーターでアナログになるが、その時の音割れ(true peak超え)についてはチェックしていない。
Lufsとtrue peakをチェックする。
Lufsは、全体の音圧、平均的な音の詰まり具合。
true peakはD/Aコンバターでアナログにした時に音割れするポイント0.0dbfs。
LSPのlimiterではLufsとtrue peakを表示しないので、wavで書き出してからffmpegで調べている。Geminiにスクリプトを書いてもらった。
#!/bin/bash
if [ -z "$1" ]; then
echo "使用方法: $0 <音声ファイルパス>"
echo "例: $0 output.wav"
exit 1
fi
echo "========================================"
echo " 解析中: $(basename "$1")"
echo "========================================"
ffmpeg -hide_banner -i "$1" -filter:a ebur128=peak=true -f null - 2>&1 | \
awk '
/Integrated loudness:/ {flag=1}
flag && /I:/ {print " Integrated Loudness: " $2 " " $3}
/True peak:/ {flag2=1}
flag2 && /Peak:/ {print " True Peak: " $2 " " $3; exit}
'
echo "========================================"
- limiterのthresholdとsignal outは同じ値にする。Oversamplingは×2ないしX4にする。signal out-1.8-1.2位(後から下げるので-1.2位から)下げてtruepeakを-2.0~-1.0の間に持っていく。
- Lufsはsignal inを大きくすると下がる。
値は0.2位づつ変更する。ceiling(signal out)を変更するとlufsにも影響が出る。
ceilingを下げてもtrue peakが下がらず、lusfが下がる場合は、inputゲインを下げて(-0.3位)、outputゲインを-1.0まで上げる。true peakにが0位になったら、再びoutputゲインを下げて-1.0〜-0.5を目指す。
Youtube動画ではLufsは-15~-13.5の間(-14.0)、truepeakは-2.0~-1.0(-1.0以下)。
CDだと-12.0~-9.0 lufs、-0.3~-0.1 dbfs。
つまり何をやっているのか?
テジタルとして出力される最終的な音量をSignal Outで下げて、true peak以下にして、そのsignaloutの値を天井にして、Signal in(input gain)を大きい音量で突っ込み、小さい音量を上げて、丁度良いLufsを狙っている。大小の音量差を縮めている。
Compはその前段階で、飛び出した大音量だけ滑らかに下げて、下がった分だけsignal outで出す。やってることはLimiterとほぼ同じだが、あくまで整音か。