周波数と振幅の配列(長さが変化する)が与えられている場合、サンプルごとに単一のオーディオバッファを生成できます。アレイ?そうでない場合、単一のオーディオユニットに複数のトーンを生成する最良の方法は何ですか?それぞれのノートで独自のバッファを生成し、それらを出力バッファに合計しますか?一度にすべてを行うのと同じことではないでしょうか?複数の正弦波をオーディオユニット(iOS)のサンプルバッファに同時に生成
STKを使用することを考慮してノートから音符を生成するiOSアプリで作業していますが、ノートオフメッセージを送信したくない場合は、配列で保持しているノートの正弦波トーンを生成するだけです。各音符は実際には周波数と振幅が変化する2つの正弦波を生成する必要があります。 1つの音符が異なる音符と同じ周波数を演奏している可能性があるため、その周波数の音符オフメッセージが問題を引き起こす可能性があります。最終的には、オーディオユニットの外にある各ノートの振幅(adsr)エンベロープを管理したいと思います。私はできるだけ早く応答時間を望んでいますので、できる限り低レベルでオーディオを維持するために余分な仕事/学習をしていきたいと思います。
私は正弦波のシングルトーンジェネレータの例で作業しています。 Iは、(サンプルレートを超える周波数1 /周波数2によってtheta1/theta2をインクリメント
バッファー[フレーム] =(SIN(theta1)+ SIN(theta2))/ 2
:本質的にこれらのいずれかのようなものを倍増しようとしましたこれが最も効率的な呼び出しsin()ではないことを認識しますが、エイリアシングの影響を受けます。私はまだファイルからオーディオを読む以外の複数の周波数やデータソースを持つサンプルを見つけていません。
どのようなご提案ですか?私はもともと各音符に独自のオーディオユニットを生成させていましたが、それはタッチからノート音までの遅延が大きすぎます(非効率的です)。私は一般的なデジタルオーディオよりもプログラミングのレベルが新しいので、明白なものがないと穏やかにしてください。