FX INTRODUCTION / 09 / 下書き

Noise Gate:小さな音を閉じる

検出した音量が境界を越えたら開き、下回ったら閉じるゲートを作ります。

作成中の記事です。サンプルは試聴しながら調整していきます。Runで再生、Stopで停止。値を編集したらApplyします。別のiframeを試す前に、再生中のものをStopしてください。

組み込みFXで聴く

設定意味
threshold入力振幅基準の閾値
hysteresis開閉閾値の差(dB)
attack / hold / release開閉時間・保持時間(秒)

FX Monitorでnoneを選ぶと、組み込みFXを通った後の波形が見えます。noneは素通しなので、入力と出力は重なります。組み込みFXの加工前後を示すものではありません。

別タブのPlaygroundで開く ↗

PCMをどう加工するか

単一の境界だけだと、その付近で開閉を繰り返しやすくなります。開く境界と閉じる境界を分けるヒステリシスと、ゲインを滑らかに変える処理を使います。Gateは音源分離ではなく、大きい音と一緒に鳴るノイズを選択的に除去するものではありません。

input[ch][i]は入力の1サンプルです。chは左右の音声チャンネルで、FMの物理CHではありません。前のブロックから持ち越す値はstateに保存します。processから外側の変数は参照できないため、設定値はcontextへ入れます。

liveFxで試す

context.sampleRateの48000は仮の値です。FX Monitorに表示される実際の出力レートに合わせてください。時間や周波数の計算に使い、ブラウザーの出力レート自体を変更する設定ではありません。

別タブのPlaygroundで開く ↗

FX Monitorでnoise-gate-labを選ぶと、この処理の入力・出力を比較できます。

  1. thresholdを0.005、0.015、0.05で比較します。音が出なくなったら閾値を下げます。
  2. 減衰中、出力が原音より早く小さくなる部分を見ます。
  3. releaseMsを短くしたときと長くしたときの切れ方を比較します。

この例の範囲

学習用はHoldを持たず、検出とAttackの時間も固定です。組み込み版にはHoldがあります。閾値は音源の出力レベルに依存するため、例の値がすべての音で適切とは限りません。

波形は時間方向の変化、Spectrumは周波数成分の強さを見る道具です。短い表示窓や表示の平滑化で見えにくい変化もあります。音を聞きながら、設定を1項目ずつ変えてください。