私は、C++ と ASIO SDK を使用して (添付のホストサンプルに基づいて) シンプルなオーディオ レコーダーを作成しようとしています。これまでのところ、チャネルから入力を取得して処理し、出力チャネルに転送できます。
今、入力をファイルにリダイレクトする方法を考えています。私の理論的な考えは、ある種のバッファを使用して入力からのデータを保存し、それがいっぱいになったら、それをモジュールに渡してファイルに保存することです。もちろん、書き込みプロセスがオンになったら、入力データを継続的に保存するために、別のバッファー (または複数) を動的に作成したいと思います。次に、最初のバッファーからのデータがファイルに完全に書き込まれると、バッファーの切り替えが行われます (以前に書き込まれたバッファーは入力信号の受信側になり、入力を格納しているもう一方は保存されます)。ファイルへ)。
正直なところ、プログラムのその部分を実際に実現する方法がわかりません。データを失わないようにするための最適なバッファサイズが何であるかわかりません。また、2 つの入力チャネルからのデータを 1 つのバッファに格納する方法がわかりません (代わりに 2 つを使用する必要がありますか?)。そのようなレコーダーの例はありますか? 私はインターネットを検索しましたが、役に立つものは何も見つかりませんでした。