Audio::PortAudioを使ってみる

もう挫折しそう、CPU負荷的な意味で。

まだ、調査してる段階なんだけど、
AnyEventを使っての非同期処理を組み合わせるのは、どうやらうまくいかなくて、
Audio::PortAudioがシグナルを使ってるから、その辺は諦めることにした。

だったら動的にメロディーでも生成してみよっかなーって思って、
例えば、16分音符の刻みで何かしようと思ったら、
処理がおっつかないことになってた。

結局、音を鳴らすっていうのは、
用意したバッファをDAC(デジタルからアナログに変換)しながら出力して、
出力済みのデータ数だけ補給してあげる処理を延々と繰り返すんだけど、
補給が間に合わないとノイズだったり、意図した音がでない訳で、
これは最適化の出番か?みたくなっちゃう。
これ自体は、大した問題じゃないんだけど、
これに対して何か解法はあるのか?と言われると、
今のところあまり手がなくて、適当にuse integer縛りで書くくらいしか。
別にそれでもいんだけど、メモリの使い回しみたいのが出来るのかも含めて、
丁寧にやらないと面倒くさいなーっていうのが正直なところ。

んー、だったらWAVEファイル出力止まりなのかもねー。

おしまい。

Leave a Comment