Sample Source Code UI Callback ftype = LPF; f0 = 1000; Q = 5; filterL.setParameter(ftype, f0, Q); filterR.setParameter(ftype, f0, Q); Filter Parameter Setup Function void CFilter::setParameter(int ftype, float f0, float Q) { float omega, sn, cs, alpha; float a0, a1, a2, b0, b1, b2; omega = 2.f * PI * f0 / 44100.f; sn = sin(omega); cs = cos(omega); alpha = sn / (2.f * Q); if (ftype == LPF) { // LPF
最近、趣味でソフトシンセを作っています。 VCOやVCAはわりと簡単な仕組みで実装できることがわかりましたが、VCF(フィルター)に関してはちょっと難しかったです。アナログ回路なら抵抗1個、コンデンサー1個でできるようなトーンコントロールでさえも、ソフトウェアで実現しようとするとけっこうな数学的な数式になってしまいます。また、理論的な解説をそれなりに理解しても、実際にその数式に与えるパラメータとしては何が適切なのかがよくわかりません。 いろいろ調べてみると、RBJ Audio EQ Cookbookというバイブルのようなテキストがあって、デジタルフィルターを設計するときは、何はなくともこれを読めって感じらしいです。わりと短いテキストですし、和訳された方もいらっしゃるのでだいぶ理解の助けにはなります。 とはいえ、それでもまだ具体的なソースコードに落とし込むにはもうひとひねり必要です。ここに出
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く