問題タブ [avaudioengine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
4134 参照

swift - Swift で AudioEngine を使用してサウンドを繰り返すとクラッシュする

さまざまな効果のある音を再生しようとしています。前のviewControllerでサウンドを録音し、次の画面でエフェクトで再生できます。最初は正常に動作しますが、2 回目は次のようなエラーでクラッシュします。

2015-08-07 13:00:45.900 ピッチ パーフェクト [9643:1121173] 13:00:45.900 エラー: AVAudioEngine.mm:253: AttachNode: 必要な条件が false: !nodeimpl->HasEngineImpl() 2015-08-07 13 :00:45.953 ピッチ パーフェクト[9643:1121173] キャッチされない例外 'com.apple.coreaudio.avfaudio' が原因でアプリを終了します。理由: '必要な条件が false: !nodeimpl->HasEngineImpl()'

なぜクラッシュするのか誰か知っていますか?AVAudioEngine、AVAudioPlayer、および AVAudioPlayerNode クラスを調査しましたが、結果はありません。

ありがとう

0 投票する
3 に答える
1325 参照

ios - 入力コールバックを AVAudioEngine に追加

AVAudioEngine's入力コールバックをinputNodeに追加しようとしていますが、呼び出されません。

希望は、AVAudioEngineiOS と OS X の両方で基本的な AUGraph を管理するために使用でき、その間で独自のコードを実行できることです。入力ノードにタップを取り付けてみましたが、バッファの長さを変更できません。

私はシングル ビュー iOS アプリを作成し、このコードをviewDidLoad次の場所に配置しました。

レンダリング コールバックは次のように定義されます。

同じ方法で、出力ノードのオーディオ ユニットにレンダー コールバックをインストールできましたが、入力コールバックが呼び出されません。

入力ノードのオーディオ ユニットが出力ノードのオーディオ ユニットと同じであることを確認しました。これは、グラフが正しく設定されていることを示しています。kAudioOutputUnitProperty_EnableIOまた、ユニットに設定しようとしましたRemoteIO(inputNode.audioUnit)

誰か提案がありますか?

0 投票する
2 に答える
6606 参照

swift - Swift を使用した AVAudioEngine によるリアルタイムのピッチシフト

Swift を使用して OSX でオーディオ エフェクト アプリケーションを開発しています。ピッチ シフト エフェクトの統合に興味があります。

リアルタイムで音色を1オクターブ上げたり下げたりしたいです。現在、ドライ信号しか受信していません。

これが可能かどうかはまったくわかりませんが、これが可能かどうか、または誰かが持っている可能性のある助けや提案があるかどうかを知りたいです.

問題に関連する現在のコードは次のとおりです。

0 投票する
0 に答える
288 参照

ios - AvAudioEngine タッピング入力ノードが iPhone 4s で機能しない

AvAudioEngine を使用して iOS デバイスでオーディオを録音しています。次のコードを使用して、入力ノードのタップを開始しています

このコードは、iPhone 4s を除くすべてのデバイスで正常に機能します。

iPhone 4s では、ブロックは呼び出されません。

もう 1 つの興味深い点は、installtap 行が 2 回呼び出されることです。

  1. メインスレッドで一度
  2. MessengerQueue で - その時点で、MicrophoneNode は Nil です

ただし、コード内でその beling が呼び出した場所は 1 つだけです。

これは、他のタイプのデバイスでは発生しません。

誰かがこの動作について何か洞察を持っているなら、私はそれを感謝します!

ありがとう!

0 投票する
0 に答える
836 参照

ios - audioFile から無音を削除する方法

AVAudioEngine を使用してオーディオ ファイルを録音しました。

次に、そのファイルのサンプルを取得して、ファイルの最初と最後にある無音部分を削除します。ファイルを読み取るためにバッファを使用しています:

次に、audioFile のサンプルの float 値にアクセスしようとしています。

I NSLog sampleLevel が常に 0.0 を返す場合。私は何を間違っていますか?audioFile のサンプルを正しい方法で取得していますか、それともここで完全に間違っていますか?

0 投票する
3 に答える
2621 参照

ios - AVAudioEngine を使用して低遅延メトロノームのサウンドをスケジュールする

大規模なアプリの一部としてメトロノームを作成しており、個々のサウンドとして使用する非常に短い wav ファイルがいくつかあります。NSTimer には重大な遅延の問題があり、Core Audio を Swift に実装するのはかなり難しいように思われるため、AVAudioEngine を使用したいと考えています。私は次のことを試みていますが、現在、最初の 3 つの手順を実装できず、より良い方法があるかどうか疑問に思っています。

コードの概要:

  1. メトロノームの現在の設定に従って、ファイル URL の配列を作成します (小節ごとのビート数とビートごとのサブディビジョンの数。ビート用のファイル A、サブディビジョン用のファイル B)。
  2. ファイルのテンポと長さに基づいて、適切な数の無音フレームを含む wav ファイルをプログラムで作成し、それを各サウンド間の配列に挿入します。
  3. それらのファイルを単一の AudioBuffer または AudioBufferList に読み込みます
  4. audioPlayer.scheduleBuffer(buffer, atTime:nil, options:.Loops, completionHandler:nil)

これまでのところ、単一のサウンド ファイルのループ バッファー (ステップ 4) を再生することはできましたが、ファイルの配列からバッファーを作成したり、プログラムで無音を作成したりすることはできませんでした。また、StackOverflow に関する回答も見つかりませんでした。これに対処します。したがって、これは最善のアプローチではないと推測しています。

私の質問は次のとおりです: AVAudioEngine を使用して低レイテンシーでサウンドのシーケンスをスケジュールし、そのシーケンスをループすることは可能ですか? そうでない場合、Swift でコーディングするときにサウンドをスケジューリングするのに最適なフレームワーク/アプローチはどれですか?