質問

思索の純なんかも面白い。になったかもしれないという違います。

を探してい音声合成API書C,C++でもObjective-Cでの合成の異なる種類の波の影響力は任意となっております。

役に立ちましたか?

解決

ここではFM(周波数変調)を合成するための完全なライブラリ/ツールキットです

リンク1 リンク2

あなたは時間に余裕を持っている場合は、

...最初から、単純な音声合成を作成することは、実際に楽しい試みです。あなたは、どちらかのサインを表す256個の16ビットサンプルの小さなバッファを作成した場合。のこぎり波、ブロックまたはパルスが、あなたは常にループのライブaudiobuffer(例えば小さなバッファ(例えば16キロバイト))にこれらをコピーすることができます。先にplaypositionの滞在、そして常に新しい値でバッファを充填することにより、あなたはsoundoutputを作成することができます。 あなたは(最も簡単にそれらを一緒に追加するだけです(加算合成))興味深い方法でこれらを結合する小さなバッファを使用することができます。

トーンの周波数は、小さなバッファを介してより大きな又はより小さなサンプリング・ステップを使用して操作することができます。振幅は、出力バッファにそれらを入れる前に、サンプルをスケーリングすることで操作することができます。

これで試しグレート楽しい!

あなたは釘付け、この手順を使用している場合は、

、あなたは、フィルタのような、より洗練された効果(ローパス、ハイパス、など)を追加することができ、エフェクト(リバーブ、エコーなど)

R

他のヒント

あなたは( STK の)合成ツールキットで見たことがありますか?これは、C ++(私は発電機/フィルター/エフェクトなど、実際のオーディオユニット、オーディオのものをやってAppleの独自の方法で、にObjCは、オーディオを合成するための適切な言語だとは思わない... C ++である)であります。

STKは、Mac OS X上で動作していない、とiOS全く問題(CoreAudio対応がサポートされている)だけでなく、RtAudioを使用して、LinuxとWindows(直接音とASIO)上で実行されますされます。それは本当にうまく行って、軽量だ、これらの人はそれについて考えて多くの時間を費やしているし、それは間違いなくあなたに大きな頭のスタートを与えるだろう。それは、(...もうすぐそして、できればOSC)異なるオーディオファイル形式+ MIDIの負荷を処理することができます。

これらは、GUIコンポーネントとあなたがかもしれない他の多くのものが含まれ、巨大でとCLAMの作成もありますまたはたくない場合があります。あなたは音の合成を行うことでのみ興味があるなら、私は本当にSTKをお勧めします。

PortAudioはまた、我々はオーディオプログラミングコースの最後の学期を使用偉大なCのAPIです。それはあなたがより多くの何を必要とすることができる...オーディオコールバックを提供します!

私はまだObjective-Cの中には何もして、それを組み込んだ試していないが、私がやる時に戻って報告します。

文音声合成アルゴリズムはC/obj-Cは非常に難しいと思います。でおすすめ記信号処理アルゴリズムを使用 PureData およびその利用 ZenGarden または libpd 埋め込みと解釈のpdパッチにアプリです。

別のC ++ライブラリがnsoundあります:

http://nsound.sourceforge.netする

一方はジェネレータクラスを使用して、または提供正弦クラスを使用して変調された信号の任意の種類を生成することができます。各時間ステップは、それがオフセット自身の瞬時周波数と位相のですができます。

また、C ++で実装した後、すぐにあなたのアルゴリズムのプロトタイプを作成するためのPythonモジュールを試すことができます。これは、PythonからもC ++からかなりmatplotlibのプロットを生成することができます!

あなたは Csoundファイルを見たことがありますか?それは信じられないほど柔軟なオーディオ世代のプラットフォームだし、簡単な波形生成からFM合成とフィルタのすべての種類のすべてを処理することができます。また、MIDIのサポートを提供し、そしてカスタムオペコードを書き込むことによって、それを拡張することができます。同様フルCのAPIのと、いくつかのC ++ APIがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top