« ありゃ。。 | トップページ

2007年7月22日 (日)

小さくても安心

ASIOというオーディオインターフェイスのAPI規格は、レイテンシが少ないというメリットがあるため、音楽用のソフトや、オーディオカードは軒並み対応しています。
で、レイテンシが少ないのは明らかにメリットなので、多少扱いが面倒でもASIOは使ったほうがいいわけです。

で、僕のアプリもASIOに対応しました。ASIOは規格に曖昧な部分が多くて、色々とトラブルがあるらしいのですが、少なくとも自分のオーディオインターフェイスでは動きます。

で、これはとりあえず解決したとしましょう。

で、もっと本質的な問題として、レイテンシが小さいことが挙げられます。
そもそもの目的としていた性質が問題となるのです。
なぜ問題なのかというと、レイテンシが小さいということは、言い換えると時間的なバッファが少ない。
1000サンプルに1回、重い重い処理をするというようなことをしていたとして、仮にバッファサイズが300サンプルの場合、重い重い処理でも1000サンプルに1回なら中和できるだろうという目論みは外れて、300サンプルで中和しないと、そのバッファの処理で音切れが発生してしまうわけです。
なので、思い思い処理を大きな時間粒度でドカンとやるわけにはいかず、もっと細かいタイミングで、五月雨式に実行してやる必要があります。

で、メモリの消費量を増やして、ダブルバッファリングというのをやるのがベターかと思いました。
「聴かせない」メモリ上で、必要なデータが揃っている処理ブロックについては、五月雨式なタイミングで実行して、全てのデータが揃った時点で、「聴かせる」メモリと、「聴かせない」メモリへのポインタをスワップします。

そんな感じでConvolverの実装を作り変えて見たいと思います。

|

« ありゃ。。 | トップページ

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 小さくても安心:

« ありゃ。。 | トップページ