問題タブ [audioeffect]
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.
java - このカスタマイズされたライブラリを適用するには、コードをどのように変更する必要がありますか?
リアルタイムでのオーディオ録音についてフォークを作成し、オーディオエフェクト(遅延(エコー)、リバーブなど)を追加することに加えて、オーディオプログラミングの世界では初めてです
以下のようなトラブルがありました
jorenさんからライブラリ(be.tarsos.dsp)をもらいました アプリケーションに遅延効果を適用したい
ライブラリからディレイエフェクト用の新しい行を追加する前はデフォルトでうまく機能していますが、私には適用が難しいので助けてください
これは、下に遅延効果を適用したいメインのアクティビティです
MainActivity.java
================================================== =========
これは DelayEffect.java という Java ファイルです (Joren の be.tarsos.dsp ライブラリから)
DelayEffect.java
q1)ライブラリを Android アプリケーションに適用できるのだろうか?
q2) DelayEffect.Java から適用される MainActivity を変更するにはどうすればよいですか?
android - ベースブーストがAndroidで機能しない
*このコードを実行すると、単純なサウンドのみが再生されます。シーク バーを変更すると、BassBoost が機能しません。何か間違ったことをしたのでしょうか。Google でいくつかのチュートリアルを見てきましたが、stack-overflow ではどれも答えられませんでした。
c# - NAudio エフェクトが機能せず、異なるサウンド カードで異なる動作をする
グローバルなエコー効果を作成するために、つまり現在のオーディオ出力に影響を与えるために、 NAudioとWasapiLoopbackCaptureをWaveOutと組み合わせて使用しています。
しかし、私の実装はかなり貧弱に思えますが、まったくうまくいきません。マシンごとに音が異なり、クラッシュすることもあります。
これが私が思いついたコードです。オーディオ出力を記録し、75 ミリ秒ごとに WaveOut を使用して記録されたストリームを再生します。
ここで何が間違っているのですか、どうすれば改善できますか?
編集:2回目の試み:
今回はBufferedWaveProvider
Markさんの提案通り使ってみました。問題は、再生に遅延がないため、エコーではなくフィードバック ループが発生することです。出力は.5f
ボリュームがあり、機能させるためには約 75ms の遅延が必要です。
android - PresetReverb がまったく機能しないのはなぜですか?
Android用のオーディオ録音アプリケーションをテストしています
以下のようなオーディオエフェクトを使用して、リアルタイムでオーディオ録音するアプリケーションを起動しています
developer.androidが提供するイコライザー、バスブースト、プリセットリバーブのAPIに適用しました
その結果、イコライザーとベースブーストエフェクトはうまく機能しているように見えますが、プリセットリバーブエフェクト.. Logcatにはエラーがなかったので理由はわかりません..
プリセットリバーブが全く効かない。ダメでも効くのを見てみたい..
だから私はあなたにSOFの専門家の助けを求めています
Q: ソース コードから原因を特定できますか?
私はあなたの助けを期待しようとしています。
c# - FMOD を使用した動的 DSP.setParameter
効果音を鳴らしたい。
例では、ローパスとハイパスを使用しています。マウスの位置 (x、y) で 2 つのエフェクトのパラメーターを設定したいと考えています。
DSP.reset() と DSP.setParameter() を使用しましたが、問題があります。
マウスをどんどん速く動かすと、サウンドが滑らかになりません。
元のサウンドは、コード reset() と setParameter() の間で再生されます。
そのため、スパーク(「カチカチ!カチカチ!」)のような音が聞こえます。
スムーズにしたい。
何か方法はありますか??
java - Android AcousticEchoCanceler はほとんどのデバイスで動作しないようです
スピーカーからの音をキャンセルするためにマイクを必要とするアプリケーションを構築しています。まったく同じ問題を抱えている他の人が長期間にわたって応答されなかったため、この問題はほとんどオンラインの陰謀のようです.
Android のネイティブ ハードウェア アクセラレーション AcousticEchoCanceler は、ほとんどのデバイスで動作しないようです。Nexus 5 や Moto X など、多くのデバイスでテストが行われ、動作しているように見えたものもありましたが、テストしたほとんどすべての Samsung デバイスはバックグラウンド サウンドを除去できませんでした。注: テストしたすべての電話は、AcousticEchoCanceler.isAvailable()
ただし、Skype や WhatsApp などのアプリケーションは、アプリのコンテキスト外の音をキャンセルするように見えるため、解決策が必要です。つまり、通話がスピーカーで行われ、マイクが受信したフィードバックをキャンセルします。
この単純化された録音アプリは、サウンドをファイルに録音し、後で再生をクリックすると再生されます。
MainActivity.java
activity_main.xml
AndroidManfist.xml のアクセス許可
デバイスが動作するかどうかを確認するには、バックグラウンドで何かを再生し、クリックStart Recording
して小さなセクターを録音し、Stop Recording
この時点でクリックPlay Back
して、バックグラウンド サウンドが聞こえるかどうかを確認します。バックグラウンド サウンドが聞こえる場合は、AEC が機能していません。しかし、なぜこの不一致が発生するのか、またはエコー キャンセレーションをどのように達成するのですか (アプリ コンテキスト内のノイズ キャンセレーションのために、アプリ内で既に WebRTC を使用しています)。
どんな助けでも大歓迎です!
java - Javaでピッチエフェクトを実装するには? (FFT、IFFT、振幅、位相)
オーディオ サンプル バッファで FFT と IFFT を変換するために、apache commons math ライブラリを使用します。FFT の outout は、複素数の配列を提供します。周波数は中央に反映されます。サンプル バッファ サイズが 4096 サンプルの場合、2048 の有用な複素数が得られます。
Java には 2 つの実装があります。1 つは IFFT の前に最終的な配列を実行し、複素数を取得する位置の補間を計算します。つまり、基本的に私がやっていることは、別の周波数スケールで複素数をワープすることです.
この実装では、入力オーディオ信号のサンプルレートにより、複数のピッチ周波数が 1 つから得られるため、主に高域で副作用のあるサウンドのピッチが設定されます。私の他の実装では、受信する複素数の振幅とフェーズ アウトを計算します。次に、振幅スケールのみを新しい位置にワープし、元の位相値と新しい振幅値を使用して新しい複素数を計算します。長方形を極座標に変換し、長方形に戻すと、符号が失われます。複素数ベクトルの長さを変更するだけなので、入力符号を出力複素数に強制できます。
2 番目の実装は、最初の実装よりもはるかに優れています。実際、私が使用したほとんどの DJ アプリケーションよりも優れたサウンドに聞こえますが、その理由はわかりません。私は何か間違ったことをしていますか?比較できる Java の他の実装は見つかりませんでした。彼らは通常、周波数スケール全体を新しいスケールの振幅と位相でワープするだけですか、それとも振幅を取得して別のスケールの元の位相に強制するだけですか?