投稿日: Jun 01, 2018 3:20:31 PM
式を読み違えて結果がおかしくなったりして。
でも、多分これで大丈夫かな。
440Hzと880Hzの加算合成に対して440Hzでbpfした結果を出力してみました。
最初は乱れてるけどすぐに440Hzだけ取り出せているのがわかります。
出力がちょっと落ちてるけど、共振フィルタを強くしすぎたのかも。
何にしてもしっかりバンドパス出来ているのは確認・・・できたのかなぁ。
フィルタはテスト項目が膨大なので。
でも、公式をプログラムに落としてるだけだし。大丈夫でしょうきっと!
befについては用事が無いので今のところ保留しますが~。必要かなぁ?
それは何かと言うとリアルタイム再生とフィルタリングなんです。
リアルタイム再生はbareAudioは関係ないのでパス出来るんですけどもフィルタは最初の最初から課題だったんです。
完全に数学的な話になっちゃって数字弱いわたしは困り果てていましたけども、諦めなければどうにかなるものですね。
大変だったのは資料が少ないこと、
信号処理でフィルタというのは必須なので必ず出てくるんですけれども音響合成となってくると信号処理+αが必要なのでそこまでの知識を網羅している書籍っていうのは・・・結構厳しい。
無事に実装できて本当に良かったです。
フィルタが実装できたことでbareAudioは音響合成環境と胸を張って名乗れる様になったと思いますが(bpfとhpf実装出来てから名乗っていたんですけどもbpfもやっぱり必要よね) これだけじゃまだ足りないなー。ってことで今後を洗い出そう。
時間とサンプリングレートの変換を行うもの。
空間系
ダイナミクス系
このあたりは欲しいなーと思ってるもの。
今はサンプルタイムで扱うしかないので人にとってもやさしくないことになってる。これをわかりやすい形にできればなぁと思いつつもどうすればいいのかちょっとまだ模索中。 エフェクタはね、無くても作れるんですけどもあった方が便利でしょ。
で、考えたく無いけど必要なものっていうのは
窓関数
なんか難しそうに聞こえるけど変な形したオシレータの一種だと思えばほぼ正解。
これが無いと凝ったことが出来ないので必要。
ということで次はこれかな~。
あとはフーリエ変換、逆変換とかも欲しいんだけどもこれはbareAudioの特性と相反する内容なのでどうやって実装していいのか解らず困ってるところ。
bareAudioは音を1サンプル毎に扱うのでバッファと相性があんまり良くない。フーリエ変換はバッファで行うので。
どうしましょう。
・・・とはいってもべつにbareAudioがバッファ使えないという話ではないですヨ。
バッファ使わずに合成出来ることをウリにしているからバッファを登場させるのはなんだかなーってことです。
逆にbareAudioは非リアルタイム合成なのでメモリが許すならしっかりバッファ使ってフーリエ変換しても別に困らないってことで、速度も要求しないならサイズが自由になるDFTとか使っても良い訳で。まあそんなに深刻じゃないのかな。
もともとリアルタイムでは難しい処理をするための非リアルタイムだしね。