クレストファクター
クレストファクターは、ピークレベルと平均レベルの差を dB で表した値です。ここでいう平均は RMS レベル、つまり瞬間的なスパイクではなく持続的なエネルギーを表す値です。マスタリングでは、信号がどれくらいピーキーか、密度が高いか、トランジェントが強いかを素早く見る手がかりになります。トランジェントは、音の出はじめの短く鋭い立ち上がりです(ドラムの打点、ギターのピッキング、子音など)。
高いクレストファクターは、ピークが平均レベルより大きく飛び出していることを意味します。低いクレストファクターは、信号が密で、強く制御されていることを示します。どちらが常に良い、悪いというものではありません。
- 波形のエンベロープ
- ピーク
- RMS
読み方
クレストファクターは結論ではなく手がかりとして見ます。バッファ全体について、ピークの dB から RMS の dB を引いて求めます。次の値は、合成信号と、サイトのデモが再生するクリップで測ったものです。
| 信号 | ピーク(dBFS) | RMS(dBFS) | クレスト(dB) |
|---|---|---|---|
| 矩形波 | -6.0 | -6.0 | 0.0 |
| サイン波 | -6.0 | -9.0 | 3.0 |
シンセリード(lead.wav) | -1.4 | -6.9 | 5.5 |
コンピングのテイク(comp-take-a.wav) | -1.4 | -8.4 | 7.0 |
コード進行(chord-turnaround.wav) | -3.4 | -12.4 | 9.0 |
パッド(pad.wav) | -1.7 | -17.5 | 15.8 |
バンド(band.wav) | -1.0 | -17.6 | 16.6 |
ミックス(mix.wav) | -1.0 | -18.7 | 17.7 |
ドラムループ(drum.wav) | -0.7 | -27.5 | 26.8 |
この表を目安にすると、おおよその範囲は次のとおりです。これらのクリップで見られた値であり、規格ではありません。
| クレスト | 考えられる意味 |
|---|---|
| 0〜3 dB | 矩形波、またはハードクリップされた信号。 |
| 5〜10 dB | 密度の高い、強く圧縮またはリミットされた素材。 |
| 12〜18 dB | ダイナミクスを残した開いたミックス。 |
| 20 dB 以上 | 単体のパーカッションや、音数の少ない素材。 |
単体のスネアはクレストファクターが高くて当然で、密なシンセパッドは低くて正しいこともあります。値は文脈と一緒に読みます。
なぜ重要か
リミッターはピークに反応します。ミックス内に一部だけ非常に大きいピークがあると、リミッターはその瞬間に強く働きますが、全体のマスターは思ったほど大きくならないことがあります。
コンプレッション、クリッピング、サチュレーション、トランジェント処理は、クレストファクターを下げることがあります。慎重に使えばマスターを制御された印象にできますが、雑に使うとパンチを失い、疲れやすい音になります。トランジェント処理は方向が両方あり、アタックを強調する側に使うと RMS はほとんど変わらないままピークだけが持ち上がるので、逆にクレストファクターは上がります。
下のデモは、圧縮した音とドライ音を混ぜます。元の立ち上がりを残しているのはドライ側の経路です。
ダイナミックレンジとの関係
クレストファクターはダイナミクスと関係しますが、音楽的なダイナミックレンジそのものではありません。あくまである測定範囲内でのピークと平均の関係を表す指標です。各セクションのクレストファクターが低くても、セクション間のマクロダイナミクスが残っている曲は十分にあります。
聴感、LUFS(フルスケール基準のラウドネス単位。配信ターゲットもこの単位で示されます)、True Peak、アレンジの文脈と合わせて判断します。
ありがちな失敗
クレストが急に下がり、同時にキックやスネアの立ち上がりが弱くなったら、コンプレッサー・サチュレーション・リミッターのどこかでトランジェントを削りすぎている可能性があります。数値が下がること自体は問題ではありませんが、パンチやグルーヴが失われていないかを耳で確認します。逆にクレストが高いままターゲット LUFS に届かない場合は、ごく一部のピークだけがリミッターを叩いていて、全体の密度は上がっていないという状況が考えられます。
このときシーリングを上げて解決しようとせず、前段のダイナミクス処理、インプットゲイン、低域のバランスを先に見直します。
libsonare で測る
クレストファクターは 1 回の呼び出しで求まります。ステレオ版は、両チャンネルをまたいだピークと、両チャンネルを合わせた RMS を使います。逆相のペアでも、モノラルにダウンミックスしたときのように RMS が打ち消されることはありません。
import { init, meteringCrestFactorDb, meteringCrestFactorDbStereo } from '@libraz/libsonare';
await init();
const crest = meteringCrestFactorDb(samples, sampleRate); // peakDb - rmsDb
const stereoCrest = meteringCrestFactorDbStereo({ left, right, sampleRate });import libsonare as sonare
audio = sonare.Audio.from_file("song.wav")
crest = audio.crest_factor_db() # peak_db - rms_db
# チャンネルが別々の場合:
stereo_crest = sonare.metering_crest_factor_db_stereo(left, right, sample_rate)sonare meter song.wav # ネイティブ CLI のみ: ピーク、RMS、クレストを True Peak やクリッピングとあわせて表示マスタリングデモでは、ソース・マスター・読み込んだリファレンスそれぞれのクレストを表示します。とくにリファレンストラックと比較する場面で役立ちます。リファレンスのクレストが極端に低い場合は、密度が高い/強くリミットされている/単にアレンジが違う、のいずれかが考えられます。
実装メモ
デモに表示しているクレストは、選択中のバッファからピークと RMS を求め、その差を dB 表示した軽量な目安値です。放送規格の長時間測定値や専用メーターの代替にはなりません。