ANSI Cを使用して、Mac OS X(および理想的には他のUnixライクなOS)でサウンド合成を実行したいと思います。
これは、「解決策が必要です。どんな解決策でも、すばやく!」ではなく、学習を目的としています。
Cプログラムに8ビットのバッファがあり、1秒間に22050回更新するとします。スピーカーにそれを波形として出力させるにはどうすればよいですか?
ANSI Cを使用して、Mac OS X(および理想的には他のUnixライクなOS)でサウンド合成を実行したいと思います。
これは、「解決策が必要です。どんな解決策でも、すばやく!」ではなく、学習を目的としています。
Cプログラムに8ビットのバッファがあり、1秒間に22050回更新するとします。スピーカーにそれを波形として出力させるにはどうすればよいですか?
SDLはサウンドバッファを再生できます。ただし、PortAudioの方がうまく機能する可能性があります。PAは、より多くのデータが必要なときにCコールバックを呼び出し、次のバッファーを渡すことができます。実際にはかなり簡単です。
POSIX オーディオ API などはありません。そのため、Linux、OSX などでサウンドをサポートしたい場合は、さまざまな OS のネイティブ サウンド API をラップするライブラリが必要です。このSO questionを見てください。OSXを直接求めているわけではありませんが、おそらくlibaoを除いて、ほとんどの答えはOSXでも機能するはずです。少なくとも、彼らのホームページには、OSX をサポートしていると書かれたものは見つかりませんでした。