ネットで検索しましたが、面白いものは見つかりませんでした。多分私は何か間違ったことをしています。
さまざまな種類の波を合成できる C、C++、または Objective-C で書かれたサウンド合成 API を探しています。エフェクトはオプションです。
ネットで検索しましたが、面白いものは見つかりませんでした。多分私は何か間違ったことをしています。
さまざまな種類の波を合成できる C、C++、または Objective-C で書かれたサウンド合成 API を探しています。エフェクトはオプションです。
FM (周波数変調) 合成用の完全なライブラリ/ツールキットは次のとおりです。
時間に余裕があれば... シンプルな音の合成をゼロから作るのは、実は楽しい試みです。サインを表す 256 個の 16 ビット サンプルの小さなバッファを作成するとします。ノコギリ波、ブロック、またはパルス、これらを常にループするライブ オーディオ バッファ (たとえば、小さなバッファ (たとえば 16kb)) にコピーできます。再生位置の先を行き、バッファを常に新しい値で満たすことで、サウンド出力を作成できます。小さなバッファーを使用して、これらを興味深い方法で組み合わせることができます (最も簡単なのは、それらを一緒に追加することです (加算合成))。
トーンの周波数は、小さなバッファーを介してサンプリング ステップを大きくしたり小さくしたりして操作できます。振幅は、サンプルを出力バッファに入れる前にスケーリングすることで操作できます。
これを試すのはとても楽しいです!
このステップがうまくいけば、フィルター (ローパス、ハイパスなど) やエフェクト (リバーブ、エコーなど) などのより洗練されたエフェクトを追加できます。
R
PortAudioは、オーディオプログラミングコースで前学期に使用した優れたCAPIでもあります。それは音声コールバックを提供します...あなたはこれ以上何が必要でしょうか!?
私はまだObjective-Cに何も組み込んでいませんが、組み込んだら報告します。
合成ツールキット ( STK ) を見たことがありますか? それはC ++です(ObjCはオーディオ合成に適した言語ではないと思います。実際、オーディオユニット、ジェネレーター/フィルター/エフェクトを含むApple独自のオーディオ処理方法はC ++にあります)。
STK は Mac OS X で動作し、iOS では問題ありません (CoreAudio がサポートされています) が、RtAudio を使用して Linux と Windows (ダイレクト サウンドと ASIO) でも動作します。それは本当によくできていて軽量です。これらの人たちはそれについて考えるのに多くの時間を費やしました。間違いなくあなたに大きな有利なスタートを切るでしょう. さまざまなオーディオ ファイル フォーマット + midi の負荷を処理できます (OSC も近いうちに期待できます)。
巨大なCreateと CLAMもあります。これらには、GUI コンポーネントや、必要な場合と必要でない場合がある他の多くのものが含まれます。音声合成のみに興味がある場合は、STK を強くお勧めします。
別の C++ ライブラリは nsound です。
Generator クラスまたは提供されている Sine クラスを使用して、あらゆる種類の変調信号を生成できます。各時間ステップは、独自の瞬時周波数と位相オフセットを持つことができます。
また、Python モジュールを使用してアルゴリズムのプロトタイプをすばやく作成し、C++ で実装することもできます。Python や C++ からでも、きれいな matplotlib プロットを生成できます。