私はオーディオチャンネルを分離しようとするステレオオーディオファイルを持っています。左のオーディオのバスと、右のオーディオ信号のバスになります。これらのチャンネルでは、いくつかの操作を行い、再び1つのステレオ信号にマージする必要があります。AVAudioEngine別のチャンネル
オーディオファイルを読み込み、バス上で操作を行い、単一の信号にマージすることは問題ありません(この信号がステレオであるかどうかはテストしていませんが、以前のチャンネルに依存しています)。
私の問題は左と右のチャンネルを分離することです。私はそれを独立して変更することができます。
私のアイデアの一つは、右/左のみ信号を持っているAVAudioPlayerNode
のpan
プロパティを使用していたが、このプロパティはまだAVAudioPlayerNode
に実装されていません(ドキュメントに記載のような)のように、それはすべてにもかかわらず(と思われます使用されているWWDCビデオの例)。
私が見つけた解決策は、thisでした。 memcpy
を使用して新しいバッファを作成します。私はかなり時間がかかり、普通のプレーヤーには適していないと思うので、まだ試していない。
第3に、audiokitと呼ばれるフレームワークがあります。これにより、ストリームをモノラル左/右チャンネルに変換し、AKStereoOperation
を作成して信号を再度マージするオプションが提供されます。この解決策の私の問題は、非常に単純なユースケースです。オーディオチャンネルを分離する。このため、おそらく動作する(テストされていなくても)ような巨大なフレームワークを含めて正当化するのは難しいと思う。
チャンネルを簡単に分離する方法はありますか?
ありがとうございます!
2つのモノストリームを1つのステレオストリームに結合することはできましたか? – A21
悲しいことに、avaudioengineではありません。 audiokitで可能です – Jan
残念なことに私は自分のプロジェクトに客観的なCを使用しています。私はAudioKitがSwiftのためだと思います。 – A21