問題タブ [libsndfile]

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

pipe - 生の PCM ストリームを libsndfile にパイプする

私はアプリケーションに取り組んでおり、生の PCM ストリームを 1 つのアプリケーションから自分のアプリケーションにパイプしたいと考えています。sf_open_virtual関数を使用して libsndfile でストリームを開く必要があると思いますが、正確なプロセスがわかりません。これについての助けをいただければ幸いです!ありがとう!

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

c - soxr および libsndfile を使用して PCM ファイル データをリサンプリングするとクラッシュする

部分的に、44100Hz 以外の入力 PCM オーディオ ファイルを 44.1 にリサンプリングする必要があるアプリを作成しています (または、少なくともそうするために最善を尽くします)。

リサンプリングを処理するために、私はsoxrを使用しています。soxr には依存関係がなく、軽量であるため、この場合は理想的ですが、ネイティブ ファイル I/O は提供されません。私は C での IO ストリームの経験が非常に限られているため、壁にぶつかっています。アプリはモジュール式に設計されているため、単純に出力ストリームを直接処理するのではなく、他のプロセッサに渡すことができる出力ファイルを作成するリサンプル プロセスが必要です。

その出力ファイルを作成するために、soxrリサンプリング プロセスによって生成されたデータを取得し、それをlibsndfileに渡そうとしています。これにより、オーディオをファイルに書き出すことができるはずです。

以下は、私がどこにいるのかについての非常に詳細な説明ですが、なぜクラッシュしているのかわかりません。バッファの割り当て方法と使用方法に関係があると思われます。(注: 入力ファイルは、このコードの前に sndfile で読み取られています)

(これが全体の1 つの要点です)

基本的なリサンプラ オプション

sndfile 形式を soxr 形式にマップする

soxr IO仕様のセットアップ

ねじ切り

リサンプラーを構築する

読み取り、リサンプリング、書き込み

次のコードのどれにも自信がありませんが、数学を 3 回チェックしたところ、すべてがライブラリの API の期待を満たしているようです。

これにより、EXC_BAD_ACCESS on が得られsoxr_processます。この時点で他に何を試すべきかわかりません。

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

c++ - 2 つの PCM オーディオ ソースをミックスしようとしている

libsndfile を使用して読み込んだ 2 つのオーディオ ファイルがあります。

前の手順を実行した後、x 個のサンプルをサンプリングします。

今、私はそれらの2つを混ぜたいと思っています。左右のチャンネルを別々に取得してから合計する必要があると読みました。私はこのようにしてみました:

その後、ffmpeg を使用して新しいオーディオをエンコードしています。

問題は、バッファ 1 からのオーディオがミックスダウンで問題なく聞こえることですが、ミックスダウンをファイルにエンコードするときに、新しいオーディオに「追加」されるのはノイズ (古いオーディオ録音の場合など) だけです。

2つのうちの1つだけをファイルにエンコードすると、完全に機能します。

なぜうまくいかないのかわかりません。明らかにミキシングと関係があると思いますが、何が間違っているのかわかりません。ここで混合アルゴリズムを取得しましたが、期待した結果が得られません。

同様の質問をしている人々に関するSOに関する他の情報も読みましたが、それらではわかりませんでした。

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

c++ - C++ のコンパイル方法 - iOS 上の libsndfile

ld: 警告: ファイル /Users/vibhavarirajadnya/MyDev/iOS-Projects/Music/POC/ReadWaveFile/ReadWaveFile/libsndfile.a を無視します。ファイルは、リンクされているアーキテクチャではないアーカイブ用にビルドされました (i386): /Users/vibhavarirajadnya/ MyDev/iOS-Projects/Music/POC/ReadWaveFile/ReadWaveFile/libsndfile.a アーキテクチャ i386 の未定義シンボル: "_sf_close"、参照元: SndfileHandle::SNDFILE_ref::~SNDFILE_ref() ReadWaveFile.o の "_sf_open"、参照元: SndfileHandle::SndfileHandle(char const*, int, int, int, int) in ReadWaveFile.o "_sf_strerror", 参照元: SndfileHandle::strError() const in ReadWaveFile.o ld: アーキテクチャのシンボルが見つかりませんi386 clang: エラー: リンカーコマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)

libsndfile ファイルを 3 つの方法でコンパイルしようとしました。2. http://ofdsp.blogspot.in/2011/07/installing-libsndfile-with-xcode.html 3. http://en.efreedom.net/Question/1-11576168/Cross-Compile-Libsndfile-Arm -ラズベリーパイ

最初のオプションでは、上記のエラーが発生します。2 つ目では、ほとんどが FLAC に関連する 69 個のエラーが発生しています。3 番目のオプションを使用すると、1 と同じ結果が得られます。また、コマンド プロンプトにメッセージが表示されます: インストール ディレクトリ:

しかし、Finder でチェックインすると、そのようなディレクトリはありません。

libsndfile とその依存関係を Mac iOSX 用にコンパイルするための段階的な方法を教えてもらえますか?

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

c - libao: シーケンススタッターとしてオーディオのブロックを再生する

ヘイホー、

libaoでpcmオーディオを再生しようとしています。私の目標は、再生を一時停止およびキャンセル可能にすることです。

何らかの理由で、alsa ドライバーを介した出力がスタッターし、非常に高速に再生されます。出力をスクラブしているようなものです。バッファ全体を再生するだけで問題なく動作します。

再生ループは次のとおりです。

これがバッファを準備するコードです。ストリーム全体をメモリにロードしています: