単純な開始では、非線形特性を使用します g(x ) 入力信号を圧縮します:
y= g(x )
どこに(コメントのendolithによって指摘されたように) バツあるエンベロープ入力オーディオ信号のとy 実際のオーディオ信号に適用される出力エンベロープです。 g(x)大きな入力値を小さな入力値よりも強く減衰させる任意の関数を使用できます。A-法とμ-法律機能は、電話などの音声信号を圧縮するために開発されました。でも、これが音楽にとってどれほどいい音かわかりません。
別の非常に単純な圧縮機能は、特定のしきい値を超えるすべての振幅を減衰させることです。 δ:
g(x )= {バツa x + (1 − a )δためにためにX ≤ δx > δ
どこ
a < 1減衰です。しかし、私たちの聴覚は対数的であり、減衰が強すぎる可能性があるため、これはあまりうまく機能しません。これが、オーディオコンプレッサーが対数スケールで動作し、上記と同じ機能につながる理由ですが、すべての値は対数であり、可能な最大値に関してです。ために
x > 0:
ログ(g(x ))= {ログ(x )1rログ(x )+ ( 1 −1r)ログ(δ)ためにためにX ≤ δx > δ
オーディオコンプレッサーの場合、 δ 通常dBで与えられ、 r ある比率、例えば3:1で表されます(つまり r = 3)。これは線形関数で指数関数を生成します(それが正しいことを願って、それをチェックしてください、またx > 0):
g(x )= {バツδ1 − 1 / rバツ1 / rためにためにX ≤ δx > δ
この関数には「ハードニー」があります。つまり、関数は
ログg(x ) で区別できません
x = δ。「ソフトニー」の場合、その時点でスムーズな移行が必要になります。ネガティブのための上記の関数の拡張
バツ 簡単です。signum関数を乗算して、次の絶対値を取ります。
バツ。
アタックとリリースは、キック、スネア、ボーカルなどのさまざまなサウンドに影響を与えます。しきい値に達する前にコンプレッサーが動作を開始する時間と、信号がしきい値を下回った後もコンプレッサーが動作し続ける時間を決定します。これを実装するには、ある種の先読みを使用する必要があります。
以下のすべての振幅として δ減衰され、利用可能なダイナミックレンジは十分に活用されていません。これは、いわゆる「メイクアップゲイン」によって修正されます。これは、圧縮された信号とゲイン係数の単純な乗算です。G > 1。最初にダイナミックレンジを減らし、次に信号コンプレッサーを増幅することで、音楽を「大きく」表示することができます。