問題タブ [portaudio]
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.
c - Windows 7 の Cygwin で使用する PortAudio のインストール
PortAudio を自分のコンピュータで動作させようとしています。私は Cygwin と gcc を使用して C でアプリケーションを作成してきましたが、自分のシステムで PortAudio をコンパイルして動作させる方法についてはまったくわかりません。
PortAudio の Web サイトで、Microsoft Visual Studio で動作させるための情報を見つけましたが、その IDE は使用していません (または、その IDE を使用していません。Notepad++ で作業し、コマンド ラインから実行しているだけです)。
これをどのように機能させるか、またはどこで答えを探すかについて誰かが情報を持っていれば、それは大歓迎です! ありがとう!-ジャスティン
c - ALSAを使用してコンパイルすることはできません
PortAudioインターフェースを使用するDebianGNU/LinuxでCアプリケーションを作成しようとしています。gcc -lrt -lasound -ljack -lpthread -o YOUR_BINARY main.c libportaudio.aこれを行うには、このドキュメントからプログラムをコンパイルする必要があります。
このために私はインストールlibasound2-devし、ファイルが使用されている場所を確認しましたapt-file search libasound.so。これは出力です。
したがって、libasoundは正しくインストールされているはずですが、このmakefileを使用してプログラムをコンパイルすると次のようになります。
次のエラーが発生します:/usr/bin/ld: cannot find -lasound。
このライブラリを正しくリンクするにはどうすればよいですか?
c - PortAudioの初期化:ホストエラー
DebianWheezy64ビットGNU/LinuxでPortAudioアプリケーションを作成しようとしています。ライブラリを追加する方法に関するドキュメントを読みましたが、エラーなしでコンパイルされます。
このスクリプトを使用してPortAudioを初期化する場合:
次の出力が得られます。Pa_Initialize error: Host error.
これもPortAudioに基づいているAudacityを実行しようとすると、次のエラーが発生します。
そして、この関数を呼び出そうとすると、次のようになります。
次のエラーが発生します。Undefined reference to 'Pa_GetLastHostErrorInfo'
PortAudioを正しい方法で初期化するにはどうすればよいですか?また、ホストの何が問題になっていますか?PortAudioはPulseAudioで何かをする必要がありますか?
ライブラリファイルの構成に関係があると思ったので、このトピックの一番下の解決策http://ubuntuforums.org/showthread.php?t=1756822をすでに試しました。しかし、それも機能せず、エラーは変わりません。
java - JavaでPortAudio(Processingを使用したjpab)を使用して波形をプロットするにはどうすればよいですか?
Javaで複数のオーディオ入力にアクセスする必要があるので、最初にSOに相談し、この回答を見つけて、PortAudio Javaバインディング(jpab)を使用するようにデバイス化しました。残念ながら、古くなったドキュメントはほとんど見つかりませんでした。
私が見つけたもので、私はEclipseでProcessingを使用してこれを試しました:
私はマイク1から始めて、いくつかの値のように見えるので近づいていると思いますが、入力ByteBufferを正しくトラバースしていると100%確信していません。
jpabを使用して値にアクセスし、オーディオ入力から波形をプロットする正しい方法は何ですか?
コードを少し更新して、なんとかプロットに近づけることができましたが、まだ暗闇の中にいます。入力ByteBufferから読み取られたfloatの正しい最小/最大範囲は何ですか?私はそれを正しい方法で使用していますか?
これが私が持っているものの簡単なプレビューです:

eclipseプロジェクトもここにアップロードしました。ビルド済みのWindowsx86PortAudioバイナリを使用しています。
別の更新:値を-1.0から1.0にする必要があるとアドバイスされ、これに合わせてコードをマップ/クランプするように調整しましたが、これが正しいかどうかはわかりません。更新された例を次に示します。
また、レイテンシーを設定すると、入力ByteBufferカウントが変化することにも気づきました。
そして、私が気付いたもう1つの紛らわしい点は、JPABはjportaudioと同じではありませんが、createStream(jpab)/ openStream(jportaudio)を除いて、ほとんどのAPIは似ています。コンパイルされたバージョンのjportaudioを見つけられず、Windowsで自分でコンパイルすることもできませんでした。
どうすれば続行できるかについての手がかりはありますか?
portaudio - Win7のPortAudioでWASAPIを使用中にエラーが発生しました
PortAudioとlibsndfileを使用して、Windows 7マシンで排他モードで.wavファイルを再生しようとしていますが、
エラー番号-9984「互換性のないホストAPI固有のストリーム情報」。
次のようにPaWasapiStreamInfo構造体に入力しました。
次に、hostApiSpecificStreamInfoパラメーターを割り当て、Pa_OpenStreamを介して次のようにストリームを開きます。
私は一歩を逃したことがありますか?
ありがとう、タイラー
gtk - Gtkオーディオプレーヤー。曲が終わる前に音を止める方法
私は非常にシンプルなオーディオプレーヤーを開発しています。Gtkとportaudio/libsndfileを使用します。[参照]、[再生]などのいくつかのボタンを備えたシンプルなテストインターフェイスを作成しました。プレーヤーはファイル名を正しく選択し、[再生]を押すと再生を開始します。しかし、すべてが再生が終了するのを待ちます。何もアクティブではなく、それが自動的に終了する前にそれを停止する方法を考えています。
Gtkの私のコードは次のとおりです。
必要に応じて、サウンドを再生するためのコードを提供します。
alsa - 5.1PortAudioのチャンネル
PortAudioを使い始めようとしています。バンドルされたサンプルファイル「paex_sine.c」を問題なくビルドできます。これは、左チャネルの正弦波と右チャネルの異なる周波数の正弦波です。これはエラーなしで正しく機能します。
私のセットアップは、Puppy LinuxSlacko5.5を実行している32ビットPCです。EMU10k1xチップを搭載したSoundBlasterSB0200を搭載しています。Alsaライブラリはv1.0.26で、ドライバーはv1.0.24です。このコマンドを使用して、すべての5.1チャンネルをテストしました。
テストでは、6つのチャネルのそれぞれで適切にサウンドが再生されますが、パイプの破損については不満があります。これは、6つのチャネルすべてのテストプログラムでバッファが十分に大きくないことが原因である可能性があります。
私が抱えている問題は、「paex_sine.c」を2つではなく6つのチャネルで実行するように変更すると、右前と左前のチャネルでのみサウンドが再生されることです。エラーは報告されておらず、2つのチャネルは適切に聞こえます。場合によっては、チャンネルのミュートを解除する必要があると聞きました。AlsaMixerとPuppyの「Retrovol」(AlsaMixerを反映)では、マスター、PCM、サラウンドをミュートせずに最大音量に設定しました。PortAudioに、ミュートを解除する必要のあるミキサーがありますか?スピーカーテストを適切に実行することと、変更されたpaex_sineの例を実行することと、2つのチャネルのみを聞くこととの間を行き来することができます。これが私が変更したpaex_sine.cです:
c - PortAudio での連続録音 (マイクまたは出力から)
PortAudio で音楽ビジュアライザー アプリケーションを作成しようとしています。基本的な調査を行い、マイクから (一時) ファイルに録音する方法の例をいくつか見つけました。しかし、記録中に実行時にデータが使用されない例はありませんでした。
では、現在の「フレーム」からデータを取得できる連続オーディオ ストリームを開始するにはどうすればよいでしょうか。
これは私がそれをやろうとした方法です:
しかし、次の出力が得られます。
audio - ファイルとマイクからの録音の音声信号の違い
ライブ録音用の音声感情認識システムの開発に取り組んでいます。特徴抽出にはOpenSMILEライブラリを使用しています。さまざまなクラスの音声タイプを含む一連のオーディオ ファイルを収集し、それらから特徴を抽出して、感情認識用の SVM ベースの分類子をトレーニングしました。ただし、ライブ音声でテストすると、これは完全に失敗します。その理由は、ライブ スピーチの信号と特徴の分布 (MFCC、LSP、ピッチ、強度、F0) が、ファイル内のものとはまったく異なるためです。OpenSMILE ライブラリは、マイクからの音声信号にアクセスするためにportaudioを使用します。
ファイル (f_original) を無線で再生し、マイクで録音してから、OpenSMILE に保存してもらいました (f_distorted)。f_original と f_distorted は、再生しても人間の耳にはあまり変わらないことがわかりました。ただし、大胆に視覚化した場合のオーディオ信号はかなり異なり、f_original と f_distorted から抽出された特徴は大きく異なります。ファイル f_original は 16000Hz で、特徴抽出の前に 44100Hz にアップサンプリングします。マイクは 44100Hz で録音します。
マイクを介して録音する場合、多少の歪みは予想されますが、実際に見られる歪みの量は極端です。
他の誰かが同様の問題に直面しましたか? これを修正する方法についての指針。
ありがとう!
c - オーディオの音量をリアルタイムで制御する
現在、libsndfileをPortAudio V19と組み合わせて使用して、ファイルからオーディオ データを読み取り、再生しています。(Raspbian を実行している Raspberry Pi でこれを行っていることに注意してください。) 私が直面している問題は、この方法で再生される各オーディオ サンプルの再生音量をリアルタイムで動的に制御する必要があることです。システム コールを使用して alsamixer を介してグローバル再生ボリュームを操作しようとしましたが、これは私のユース ケースでは許容できるソリューションですが、レイテンシが高すぎて機能しません。
私が求めているのは、次の2つのうちの1つです。
libsndfile によって取得された生のオーディオ データに作用するか、最小限のレイテンシ (サブミリ秒) でグローバル再生ボリュームを設定することにより、オーディオ ボリュームの変更をリアルタイムで処理できるライブラリ。ライブラリは無料 (無料) で、Raspbian で使用できる必要があります。ライセンスは問題ではありません。
データのボリューム レベルを変更するために、libsndfile によって取得されたオーディオ データに適用する必要がある数学的変換。できれば、ターゲット ボリュームが [0.0f, 1.0f] の範囲内にあり、0.0f が無音で、0.0f が無音で、 1.0f はファイルの元のボリュームです。
私は、この件に関する有用な (無料の) 資料をあちこち探してみましたが、役立つものを見つけることができませんでした。どんな支援も大歓迎です!