読者です 読者をやめる 読者になる 読者になる

shingoushori's dialy

音信号処理を専ら研究していた元博士後期課程の学生によるメモ

Web Audio API で、Multiband Sidechain Compressor を試作 (98帯域)

HTML5 JavaScript Web Audio API エフェクタ / Stompbox 信号処理 / Signal Processing

これまでに, マルチバンドサイドチェインコンプレッサーを, 
3帯域, 10帯域で作ってきました.
ソースコード上では, 1帯域分の記述を単純にコピペしていました.
今回は, それをArrayで束ねてFor文でぶん回しました. ぶん回せました, うれしい.

帯域数を簡単に弄れるようになりましたので, 増やしてみました.
98帯域です.

1/12オクターブバンドフィルタバンクで,
最低域を55(=440*(2^-3)) Hz, 最高域を14080(=440*(2^5)) Hzとしました.
人間の可聴域をカバーさせてみました.
帯域が密接しているため, Q値を適当に12としました.

予想以上にあっさりと動いてしまってびっくりしています.
さらに帯域を12帯域ずつ増やしてみたところ,
110帯域では別のタブを操作していようとも音が途切れず, 
122帯域では別のタブを操作しているときに音が途切れ,
134帯域では別のタブを操作せずとも音が途切れました.
私の環境ではこの辺りが能力の限界のようです.

ちなみに, STFTによる帯域分割も検討しました.
不甲斐ないことに, 周波数領域でゲインを操作したときにぶつぶつとノイズが発生し,
原因を突き止めきれませんでした.

こんな経緯もあり, 単純にフィルタを並列接続するだけのものが,
しかも可聴域を1/12オクターブで刻み付けるものが,
簡単に動いてしまって大いに感動しているわけです.