Skip to content

True Peak 安全性 ​

True Peak 安全性とは、マスター済みファイルが再構成、コーデック変換、配信再生の後にクリップしないよう、十分な余裕を残す考え方です。

サンプルピークは、デジタルファイルに保存された値だけを示します。再生機器やエンコーダーは、そのサンプル間を補間して連続した波形に戻し、保存されたサンプルピークを超えて飛び出す部分をサンプル間ピーク(ISP、inter-sample peak)と呼びます。それが何で、どう測るのかは True Peak で説明しています。このページは、そのために残す余裕の話です。

特に問題になりやすい場面は次のとおりです。

状況リスク
不可逆エンコードMP3・AAC・Opus などへの変換で新しいピークが生まれることがある。
強いリミッティング密度の高いマスターほど、再構成時の飛び出しに弱い。
ストリーミング側の正規化配信プラットフォーム側で再エンコード/再処理を通る場合がある。
再生機器側0 dBFS ぎりぎりの素材を苦手とする再生チェーンが存在する。

メーターでサンプルピークが安全に見える素材でも、コーデック変換やデバイス側の再構成でピークは浮き上がります。リリース直前の検聴では、書き出した WAV だけでなく、想定する配信形式(MP3/AAC/Opus など)への一時変換版でもピーク挙動を確認します。

実用的なシーリング ​

シーリングは、リミッターが通過を許す最大レベルです。一般的なリリース時のシーリングは -1 dBTP 前後です。dBTP は decibels true peak の略で、dBFS と同じデシベル尺度を再構成後の波形上で測ったものです。コーデック変換に対する余裕を広く取りたい場合は -2 dBTP を使うこともあります。逆に、納品先が明確で管理された環境であれば、もう少しタイトなシーリングを採用することもあります。エンジンの club と cd ターゲットは、-9 LUFS と -0.3 dBTP の組み合わせです。コーデックへの余裕を削って密度を取る設定で、streaming・broadcast・podcast は -1 です。

-1 dBTP は万能の正解ではありませんが、配信エンコードや再生側の再構成で起きる余白を残す実用的な出発点です。シーリングを上げたあとに書き出しで歪みや刺さる高域が増えるなら、わずかなラウドネスの上積みより安全性を優先します。

シーリングはラウドネスのターゲット値ではなく、あくまで安全マージンです。静かなファイルでもピークが危険なことはありますし、大きいファイルでも True Peak の範囲内に収まっている例は珍しくありません。ラウドネス目標とも別の制約で、LUFS を稼ぐためにシーリングを上げると、一時的に大きくできても変換後のクリップで代償を払います。目標に届かないときは、リミッターのゲインリダクション量を確認し、前段(インプットゲイン、コンプレッション、低域バランス)で解決します。

MAXIMIZER · TRUE PEAK LIMITERIDLE
True Peak リミッター — ドライブしてもシーリングで止まる

band クリップを maximizer.truePeakLimiter に入れ、シーリングは −1 dBTP です。ドライブを上げると入力(ローズ色)は 0 dBFS を超えて伸びますが、出力(ティール)はどの設定でも −1.0 dBTP にとどまり、その差を下段のゲインリダクションが引き受けます。押し込むほど得られるラウドネスは減ります。18 dB ドライブしても出力の RMS は約 8 dB しか上がらず、残りはピークが平らに潰れた分です。再生すると、リミッター後の出力を聞けます。

ドライブ(入力ゲイン)
9 dB

リミッターのルックアヘッド ​

True Peak リミッターは、ピークが到達する前に動き出す必要があります。ルックアヘッドはそのための先読み時間です。短すぎると速いピークを取り逃しやすく、長すぎるとレイテンシが増え、トランジェント感も変わってきます。

リミッターのゲインリダクションは、ピークが出力に届く lookaheadMs 前から始まり、おおよそ releaseMs かけて戻るので、出力はシーリングを超えません。下の図は、後に挙げる既定値での動きです。オフラインのマスタリングであれば、数 ms 程度のルックアヘッドは通常問題になりません。ライブ処理やインタラクティブ用途では、レイテンシの影響が大きくなる点に注意します。

ゲインリダクションはルックアヘッド 1 つ分早く始まる
レベル (dBFS)+60−6−12シーリング −1 dBTP ピークが入るピークが出るゲイン (dB)0−1−2−3−40123456時間 (ms)ルックアヘッド 1 ms ゲイン (dB)・リリース0−1−2−3−4050100150時間 (ms)releaseMs 5063% 戻る: 40 ms 鋭いピークでは短くなる
  • 入力
  • 出力(ルックアヘッド分遅れる)
  • リミッターのゲイン
  • シーリング
−9 dBFS の下地に +2 dBFS の短いピークがある信号を、既定値のリミッターに通しています。ピークがルックアヘッドの窓に入るとゲインが下がり、1 ms 遅れた出力はちょうど −1 dBTP のシーリングでピークを送り出します。その後ゲインは戻りますが、リミッターが鋭いピークではリリースを短くするので、50 ms の設定より少し速く戻ります。

リミッターの既定値は次のとおりです。

設定既定値
ceilingDb-1
lookaheadMs1.0
releaseMs50
oversampleFactor4

libsonare で測る ​

True Peak メーター(True Peak)もリミッターも、既定は 4 倍オーバーサンプリングで、1・2・4・8・16 を指定できます。シーリングへのリミッティングは、チェーンのステージ maximizer.truePeakLimiter が行います。

typescript
import { init, meteringPeakDb, meteringTruePeakDb, masteringChain } from '@libraz/libsonare';

await init();

const samplePeak = meteringPeakDb(samples, sampleRate);
const truePeak = meteringTruePeakDb(samples, sampleRate);      // 4 倍オーバーサンプリング
const finer = meteringTruePeakDb(samples, sampleRate, 8);      // 1、2、4、8、16 から指定

const limited = masteringChain(samples, sampleRate, {
  maximizer: { truePeakLimiter: { ceilingDb: -1, lookaheadMs: 1, oversampleFactor: 4 } },
});
// 結果は limited.samples に入ります。drum.wav では limited.outputTruePeakDbtp が -1.0 になります
python
import libsonare as sonare

audio = sonare.Audio.from_file("song.wav")
sample_peak = audio.peak_db()
true_peak = audio.true_peak_db()                      # oversample_factor=4
finer = audio.true_peak_db(oversample_factor=8)

limited = sonare.mastering_chain(
    audio.data, audio.sample_rate,
    {"maximizer": {"truePeakLimiter": {"ceilingDb": -1, "lookaheadMs": 1, "oversampleFactor": 4}}},
)
bash
sonare-cli meter song.wav   # ネイティブ CLI のみ: サンプルピークと True Peak(--oversample で倍率を指定)
sonare mastering-processor song.wav --processor maximizer.truePeakLimiter \
  --params ceilingDb=-1,lookaheadMs=1 -o limited.wav

マスタリングデモの Studio モードでも、同じシーリングとルックアヘッドを調整できます。

聴いて確認すること ​

True Peak の問題は、メーターだけでなく音でも確認します。歪みやすいのは、キックとベースが同時に鳴る瞬間、シンバルが大きいサビ、強いサチュレーション後のピークです。ブツッという小さなざらつき、しゃりしゃりしたシンバル、リミッティング前にはなかった低域のクリックに注意して聴きます。

シーリングを下げても音がほとんど変わらないなら、安全側の設定を選ぶのが得策です。シーリングを下げた途端にパンチが消える場合は、リミッターだけで解決しようとせず、前段のダイナミクス・サチュレーション・入力レベルを見直します。

実装メモ

安全確認の考え方は True Peak メータリングと同じです。オーバーサンプリングで再構成波形を近似し、密になった格子上で最大値を評価します。元のサンプル点だけをクランプするリミッターでは、サンプル間オーバーが残ってしまうため、ガードは入力バッファではなくオーバーサンプリング後の信号経路を監視する必要があります。

ルックアヘッドとリリースは独立には決められません。ルックアヘッドはピーク到達前に減衰を始める時間を与え、リリースはユニティゲイン(増減なしの状態)に戻る速さを決めます。リリースが短すぎると、耳に聞こえるポンピングや歪みのようなばたつきが出やすく、長すぎるとトランジェントが鈍り、稼げるラウドネスヘッドルームも減ります。実用値は、コーデック変換への安全性、トランジェント保持、体感上のゲイン変化の折り合いで決まります。

関連: True Peak、LUFS、ラウドネスマッチング