vanillaにデフォルトで無い、
レゾナンス付きのlowpassやnotch、high shelf等が使えます。
ただし複雑な計算式で算出された数値5つを一式まとめてbiquad~に送る必要があるため
非常に敷居が高いオブジェクトです。
まずHelpを見てもまともに使いこなせません。
※ここのページを見ている人は既にbiquad~について計算式を調べたりしても
うまく使えず悩んでいる人が多いかと思うのですが、使い方のヒントについて。
exprの触りだけでも使えないと非常に辛いのですが、私でも何とかなりましたので。
EarLevel - Biquad formulas
もうこのソースコード(計算式)には行きついているかと思います。
半分正解ですが、ここから更に変換が必要になります。
mathr - Biquad conversions
EarLevelの計算式で作ったa0,a1,a2,b1,b2を以下のように作り替えます。
mathr様の記述後半の式を若干入れ替えまして、、、
A=−b1
B=−b2
C=a0
D=a1
E=a2
後は数値ABCDEを"pack"してbiquad~に数値情報をまとめて送るだけです。
lowpass
highpass
bandpass
notch
については出音とスペクトラムを確認して無事動作しました。
しかし、notchがvanillaでも使えるのは大きいアドバンテージです!
※今peakingを作成しているところですが出音は成功するものの
exprの書き方についてコンソールでエラーを吐いているところです。
後は数値ABCDEを"pack"してbiquad~に数値情報をまとめて送るだけです。
lowpass
highpass
bandpass
notch
については出音とスペクトラムを確認して無事動作しました。
しかし、notchがvanillaでも使えるのは大きいアドバンテージです!
※今peakingを作成しているところですが出音は成功するものの
exprの書き方についてコンソールでエラーを吐いているところです。
まだ修正が必要の模様。
[追記]
Audio EQ cook bookベースの計算になると、
http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt
w0(omegaにあたる部分)は変わらずですか、
alphaはフィルタにより式が変わりますので注意。
また、数値がa0,a1,a2,b0,b1,b2の6つの数値を使うことになりますが、、、
A=−a1
B=−a2
C=b0
D=b1
E=b2
にしてみると上手くいったような。
このままだとa0が不要になるのですが、
A=−a1/a0
B=−a2/a0
C=b0/a0
D=b1/a0
E=b2/a0
で使う方法もあるようです。
まぁ、a0は1に近い値になるので省略しても良さそうなのですが。
なお、Audio EQ cookbookベースのフィルタを丁度ブログのN_filterで使いました。
Audio EQ cookbookベースはEarlevelにはないオールパスフィルターの式があります。
0 件のコメント:
コメントを投稿