問題タブ [audiounit]

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 投票する
3 に答える
1521 参照

iphone - iPhone 3GS が低周波数 (< 150Hz) をフィルタリングしないようにする方法

iPhone 3GSでベースギターのピッチ検出アプリを開発しています。RemoteIO で 150Hz より低いサウンド データを取得できないことがわかりました。ただし、ベースギターは 50hz よりも低いトーンを生成する場合があります。レポート「iPhone 4 ヘッドセットの入力周波数応答」によると、http://blog.faberacoustical.com/2010/iphone/iphone-4-audio-and-frequency-response-limitations/ 150 を下回ると急激に低下します。ヘルツ。

ここでは、AudioUnit のセットアップ方法を示します。

これがコールバック関数です。

根本原因を特定するには、

  1. 入力データをバイパスして出力するようにコールバック関数を変更しました。
  2. Mac を使用してホワイト ノイズを生成する
  3. iRig を使用して、Mac のヘッドセットから私のプログラムを実行している iPhone3G に信号をリダイレクトします。
  4. iRig を使用して、iPhone の出力を Mac にリダイレクトします。
  5. Macでデータを記録します。 ここに画像の説明を入力 出力データのスペクトルを下図に示します。 ここに画像の説明を入力

150Hzで急激な落ち込みが見られます。

問題が入力側か出力側かを特定するために、コールバック関数を変更して入力データを無視し、ホワイト ノイズを出力しました。これが結果です。 ここに画像の説明を入力 150 Hz でドロップがないことは非常に明確です。したがって、問題は入力側にあるはずです。

これはハードウェアの制限だと思いました。ただし、同じデバイスでアプリ「Amplitube」を試し、すべてのエフェクトをオフにし、ホワイトノイズを入力して出力を分析しました。150Hzでのドロップはありません。これが結果です。iPhone 3gs での Amplitube 周波数応答 これは、ドロップオフの問題がハードウェアの制限ではないことを意味します。問題を回避するためにソフトウェアができる何らかの方法があるはずです。

その秘密を知っている人はいますか?

ありがとう。

0 投票する
1 に答える
1475 参照

iphone - オーディオ ユニット、セット フォーマットが -10581 で失敗する

以下が OSStatus -10851 を返す理由がわかりません。

シミュレーターでは動作しますが、デバイスでは動作しません。

残りのコードは次のとおりです。

0 投票する
1 に答える
1673 参照

ios - Simultaneously generate multiple sine waves into sample buffer for audio unit (iOS)

Given an array (of changing length) of frequencies and amplitudes, can I generate a single audio buffer on a sample by sample basis that includes all the tones in the array? If not, what is the best way to generate multiple tones in a single audio unit? Have each note generate it's own buffer then sum those into an output buffer? Wouldn't that be the same thing as doing it all at once?

Working on an iOS app that generates notes from touches, considering using STK but don't want to have to send note off messages, would rather just generate sinusoidal tones for the notes I'm holding in an array. Each note actually needs to produce two sinusoids, with varying frequency and amplitude. One note may be playing the same frequency as a different note so a note off message at that frequency could cause problems. Eventually I want to manage amplitude (adsr) envelopes for each note outside of the audio unit. I also want response time to be as fast as possible so I'm willing to do some extra work/learning to keep the audio stuff as low level as I can.

I've been working with sine wave single tone generator examples. Tried essentially doubling one of these, something like:

Buffer[frame] = (sin(theta1) + sin(theta2))/2

Incrementing theta1/theta2 by frequency1/frequency2 over sample rate, (I realize this is not the most efficient calling sin() ) but get aliasing effects. I've yet to find an example with multiple frequencies or data sources other than reading audio from file.

Any suggestions/examples? I originally had each note generate its own audio unit, but that gave me too much latency from touch to note sounding (and seems inefficient too). I am newer to this level of programming than I am to digital audio in general, so please be gentle if I'm missing something obvious.

0 投票する
1 に答える
1010 参照

c++ - Mac OSX 10.7 Lion Audio Unit Effect テンプレートのコンパイルに失敗する

Mac OSX 10.7 Lion にアップグレードしました。まず第一に、私は新しいスペースが嫌いです。ユーザー ディレクトリよりも深いディレクトリにアクセスできないのは嫌いですが、質問に行きましょう。

Audio Unit Plugins を開発しています。XCode 4.0 でコードがコンパイルされ、完全に動作している (販売用にリリースされている) ものもいくつかあります。

しかし、Lion と XCode 4.1 にアップグレードした後、Process メソッドが存在するメイン オーディオ ユニット .cpp ファイル (私の名前は TestAU.cpp) で 2 つの主要なコンパイル エラーが発生しました。以下は失敗するコードです。

この失敗を解決するのに苦労しています。どんな助けでも素晴らしいでしょう。ありがとう。

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

ios - iOS でオーディオ ユニットを使用して複数の信号をミキシングする

iPad でシンセ用のコントローラーを作成しています。4 つまたは 5 つの信号をミックスして remoteIO render callback に送信します。現在、次の 2 つの選択肢があります。

マルチチャンネル ミキサー ユニットを使用できますが、内部でどのように機能するかわかりません。単純にバッファを足し合わせて、バッファの数で割りますか? それは、それぞれのボリュームが大幅に減少することを意味するからです。

http://www.vttoth.com/digimix.htmhttp://atastypixel.com/blog/how-to-mix-audio-samples-properly-on-ios/を読み、信号を適切にミックスして現在、remoteIO コールバックで手動でミキシングを行うことを考えています。

助言がありますか?

0 投票する
1 に答える
5534 参照

iphone - IOユニットからディスクにオーディオを書き込む

この質問をもう少し簡潔になるように書き直します。

私の問題は、リモートIOユニットからディスクにオーディオファイルを正常に書き込めないことです。

私が取った手順は

mp3ファイルを開き、そのオーディオをバッファに抽出します。グラフのプロパティに基づいて、グラフで使用するasbdを設定しました。抽出した音声をループさせてグラフを設定して実行すると、スピーカーから音声が正常に出力されます。

私が苦労しているのは、リモートIOコールバックからオーディオサンプルを取得し、ExtAudioFileWriteASyncを使用しているディスク上のオーディオファイルに書き込むことです。

オーディオファイルは書き込まれ、元のmp3にある程度類似していますが、非常に歪んで聞こえます。

問題が

A)ExtAudioFileWriteAsyncは、ioユニットコールバックが提供する速度でサンプルを書き込むことができません。

  • また -

B)extaudiofile参照用にASBDを間違って設定しました。まず、wavファイルを保存したいと思いました。以下のASBDでこれを適切に説明したかどうかはわかりません。

次に、オーディオファイルを作成するときにinChannelLayoutプロパティに渡す値がわかりません。

そして最後に、kExtAudioFileProperty_ClientDataFormatにどのasbdを使用するかについて非常に不確かです。私はステレオストリーム形式を使用していましたが、ドキュメントを詳しく見ると、これはpcmである必要があります。これは、remoteioの出力と同じ形式にする必要がありますか?もしそうなら、私はリモートioの出力フォーマットをステレオストリームフォーマットに設定するのは間違っていましたか?

この質問には非常に多くのことがあることに気づきましたが、私には多くの不確実性があり、自分では解決できないようです。

ステレオストリーム形式の設定

ステレオストリーム形式を使用してremoteioコールバックを設定する

**レコーディングのセットアップ**

編集1

私は今ここで本当に暗闇に刺されていますが、オーディオコンバーターを使用する必要がありますか、それともkExtAudioFileProperty_ClientDataFormatがそれを処理しますか?

編集2

オーディオの2つのサンプルを添付しています。1つ目は、Imがループしてコピーしようとしている元のオーディオです。2つ目は、そのループの録音されたオーディオです。うまくいけば、それは誰かに何がうまくいかないかについての手がかりを与えるかもしれません。

オリジナルmp3

mp3の録音に問題があります

0 投票する
1 に答える
774 参照

objective-c - Apple の Pitch Shift Audio Unit プラグインなどをホストする方法

PitchShift Audio Unit プラグインを独自のウィンドウで正しくホストするにはどうすればよいですか?

Apple のシステム提供の Audio Unit プラグインをホストする Mac アプリを開発しています。新しい OSX 10.7 Lion では、一部のプラグインのビューが更新されました。PitchShift は、これらの 1 つです。

PitchShift と他のいくつかには、パラメーターを変更するための新しいノブがあります。マウスでノブを回すと、ノブのパラメーター値を示す水平バーがノブの下に表示されます。

このバーは、ノブを離した後も、ウィンドウを閉じた後も画面に表示されたままになります。ノブの 1 つをクリックして不正な値のバーを作成し、PitchShift ビューがあるウィンドウを移動すると、バーはウィンドウがあった場所にとどまります。この時点でノブをもう一度クリックすると、新しいバーが表示されますが、両方のバーは、変化するノブのパラメータ値情報でアクティブに更新されます。これは、このプロセスを繰り返すたびに発生し、画面に表示されるバーが増えます。

これが数回発生した後、私のアプリは main.m ファイルの NSApplicaionMain() 呼び出しで不正なアクセスで終了します。

Logic 9 をチェックインしましたが、これは発生しません。バーはノブに直接つながっているように見えるため、マウスでノブを放すとすぐに消えます。

PitchSHIft ビューを専用の NSWindow の contentView に設定しました。

ロジックはこれをどのように防いでいますか、またはどうすればよいですか?

パラメータ値が PitchShift ビューのサブビューを示すかどうかを確認しようとしましたが、そうではないようです。

どんな助けでも大歓迎です。

編集: 値バーが最初に表示されると、プログラムからコンソールに次の出力が表示されます: 円と線が交差しません

そのため、コアアニメーションのCALayersを使用していることがわかりました。問題は、値バーのレイヤーが PitchShiftView のレイヤー階層の一部ではないことです。つまり、pitchShiftView を構築する他のすべてのレイヤーを見つけることができますが、値バーのレイヤーは見つけることができません。そもそもそれが全体の問題かもしれないようです。

0 投票する
1 に答える
226 参照

objective-c - AppleのPitchShiftAudioUnitプラグインはコアアニメーションを使用していますか?

AppleのPitchShiftAudioUnitプラグインは、コアアニメーションを使用してMac OSX Lionのパラメータノブの値バーを表示していますか?

私はこの問題を抱えています。AppleのPitchShiftAudioUnitプラグインなどをホストする方法

0 投票する
1 に答える
954 参照

ios - iOS での圧縮オーディオの複数ストリームのミキシングとイコライジング

私がやろうとしていることは、まさにタイトルが言うように、複数の圧縮されたオーディオ ストリーム/ファイルをデコードすることです。これは、変更された MP4 ファイルから抽出されます。リアルタイムで同時に EQ を実行します。

私はAppleのドキュメントのほとんどを読みました。

私はAudioQueuesを試しましたが、圧縮されたオーディオが入ってくると出てこないので、イコライズを行うことはできません...だから私はそれを操作することはできません.

Audio Units には、AAC と MP3 の圧縮解除を処理するコンポーネントがないようです。私が正しければ、コンバーターは LPCM フォーマットから別の LPCM フォーマットへの変換のみを処理します。

私は今、約1か月半の間、オンとオフの解決策を考え出そうとしています.

私は今、サードパーティのデコーダーを使用することを考えています(神様助けてください。それらの使用方法がわからない、ソースコードはギリシャ語です。ああ、お勧めはありますか?:x)。次に、デコードされた LPCM をコールバックで EQ を実行する AudioQueues。

多分私はここで何かを逃しています。提案?:(

0 投票する
1 に答える
185 参照

objective-c - nsview に関連付けられているすべての CALayer を検索する方法は?

Mac OSX 10.7 Lion で Apple の Pitch Shift Audio Unit プラグインをホストしています。pitchShiftView は CALayers で構成されています: 各ノブなどに 1 つです。

CALayer と思われるノブでパラメーター値を変更すると表示される値バーがありますが、CALayer 階層には表示されません。それらは消えるはずのときに画面にとどまり、終了の不正なアクセスでアプリをクラッシュさせてしまいます。

これらのレイヤーにアクセスするにはどうすればよいですか、またはレイヤー階層の残りの部分に関連付けられていないのはなぜですか?