問題タブ [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.
c++ - 未定義のシンボル:_sf_open(OSXのシンプルなオーディオ)
私はC++プログラミングに取り掛かろうとしていますが、細部にまでかなり苦労しています。現在、私は以下のスニペットを機能させようとしています。どうやらそれはコンパイルされますが、リンクされません。(エラーメッセージはこの投稿の下部にあります)
オーディオファイルを開くために使用libsndfile
していますが、リンカーがそのファイルの現在のライブラリファイルを見つけられないようです。これはOSX10.5にあります。
私はmega-nerd.comからlibsndfileをダウンロードし、通常の、、手順を介してインストールしconfigure
まし make
たsudo make install
。他に何かする必要がありますか?
編集:懸念がある場合は、システムにmacportsをインストールしています。
これが私のコードです:
そして、ここに完全なエラーメッセージがあります:
c - MSVCのlibsndfile-1.dllから関数にアクセスするにはどうすればよいですか?
MSVCプロジェクトでlibsndfile-1.dllを機能させるのに問題があります。コードから呼び出すことで、ライブラリをロードし、dllからバージョン文字列を取得できますsf_command()
。sf__open()
ただし、 SNDFILEポインタを返すことができないようです。
また、FILEポインタを返すこともできないことに気づきましたfopen()
(おそらくこれは関連していると思いますが、 !?sf_open()
を使用していると思います)。fopen()
私はMSVC、C / C ++、およびWindows全般にかなり慣れていないので、おそらく本当に明白な何かが欠けています。
私のmain.cppは次のようになります:
プロジェクトはコード3でビルドおよび終了します(ファイルを開くことができませんでした!(ファイルがそこにあると確信しています!!))。
exeを実行すると、出力は次のようになります。
Version: libsndfile-1.0.17
Doh! couldn't open the SNDFILE
私がどこで間違っているのかについて誰かが何か提案がありますか?
ジョシュ、どうもありがとう。
linux - パッケージ libsndfile-dev にはインストール候補がありません
「libsndfile-dev」をインストールしようとしています。私は次のことを行います:
その結果、次のようになります。
そのため、インストールの試みは失敗しました。何を明示的に選択する必要があり、どうすればそれを行うことができるか教えてもらえますか?
前もって感謝します。
java - libsndfile で記述された C++ コードを移植する場合、Android で何を使用すればよいですか?
小さな (<10 クラス) C++ プロジェクトを Java に移植しています。プロジェクトはサウンド ファイルを操作し、C++ ではlibsndfileを使用してこれを行います。コードには次のようなものが含まれます。
Javaでサウンドファイルを低レベルで操作する最良の方法は何ですか? 正規化、エコーの追加などについて話しています。
経過報告
少し掘り下げた後、javax.sound.sampledを見つけました。これでうまくいくようです。
編集 2com.sun.sound
詳細な検査では、パッケージに依存しているため、機能しません (または、少なくとも使用可能な方法では機能しません) 。
編集 3さらに調査と実験を行うと、com.sun.sound
とsun.misc
パッケージが GNU GPLv2 でリリースされ、プロジェクトにダウンロードしました。に名前を変更javax.sound.sampled
するimp.javax.sound.sampled
と、プロジェクトがコンパイルAudioFileFormat
され、まだ例外がスローされることなくオブジェクトを作成できます。まだあまり遊ぶ機会がありませんが、最新情報をお届けします。
編集 4 OK、javax.sound.sampled で動作するように見えるものもあれば、動作しないものもあります。たとえば、次のような呼び出しです。
動作しませんが、次のようにしてこれを回避できます。
AudioSystem.getAudioFileTypes()
一般に、空のリストを返すようなものへの呼び出し。パッケージを詳しく調べて、それがプロバイダーと関係があることを確認できますが、これを修正する方法がわかりません。オブジェクトを取得stream
すると、エンコーディングなどが正しく報告されます。これは励みになります。
現時点での私の大きな問題は、Clip オブジェクトを作成することです。これは、通常 AudioSystem から取得される Line オブジェクトで作成する必要があります。誰でもこれを回避する方法を考えることができますか?
java - JavaでC++に相当するsf_readf_double()
Androidで.wavオーディオファイルを操作しています。これまでのところ順調に進んでいます(マイクから.wavファイルを録音したり、エコーを追加したりできます)が、C ++のlibsndfileの動作を模倣して、より複雑なフィルターを実装し
たいと思います。
com.sun.media.sound.WaveFileReaderオブジェクトとWaveFileWriterオブジェクトがあり、次を使用してオーディオデータを取得しています。sf_readf_double()
sf_writef_double
これはAudioInputStreamを返します。
ストリームから一度に8バイトをダブルに読み取る場合だけですか、それともそれ以上のものがありますか?私が使用している他のフィルターがshort
sではなくdouble
sを操作しているように見えるので、私は少し混乱しています。
c - Libsndfile ライブラリは iPhone iOS で使用できますか?
Libsndfile C ライブラリは iPhone オペレーティング システムで使用できますか? もしそうなら、私はそれを「含める」必要がありますか、それとももっと複雑ですか?
ありがとう!
python - 関数が呼び出されると Python モジュール audiolab がエラーを返す
研究プロジェクトのために Python モジュール audiolab をインストールする必要があります。インストールしてモジュールを Python シェルにインポートすることはできましたが、モジュール内の最も基本的な関数の 1 つである wavread( を呼び出すとエラーが返されます。 )。
私は主に Python2.7.1 を使用していますが、Python2.6.6 の audiolab をバックトラックしてインストールしようとしましたが、wavread() 関数をインポートして呼び出した後に同じエラー メッセージが表示されました。
私のオペレーティング システムは Intel プロセッサを搭載した Mac OS X 10.5.8 です。
一般的には次のようになります。
トレースバック (最新の呼び出しが最後):
pipを使用してlibsndfileライブラリ(audiofileは単なるラッパーだと思います)をインストールしましたが、エラーなく正常にインストールされたようです。python setup.py install
次に、ターミナルのコマンドを使用して、tar.gz ファイルから audiolab をインストールしようとしました。これは、ドキュメントの指示どおりであり、ヘッダー「ビルド」の下にあります。
ドキュメントには、場合によっては「site.cfg」ファイルを作成する必要があることも記載されています。これは、Google で検索した後に見たもので、実際には Windows ユーザーにのみ適用されますが、これについては確信が持てません。
あなたが私の問題に当てることができるどんな光でも大歓迎です!!
audio - libsndfile の使用法 .wav ファイルの結合と混合
libsndfile を使い始めるのに助けが必要です。
4 つの .wav ファイルがあります (すべて同じサンプル レート)。
最初の 2 つを結合し、次の 2 つを結合したいのですが、
次に、結果の 2 つの .wav ファイルを 1 つにミックスします。
haskell - hsndfile (libsndfile) を使用した不適切な形式
hsndfile (libsndfile の Haskell バインディング) を使用して .wav ファイルを生成しようとしていますが、乗り越えられないさらに別のこぶに到達しました。次のコードは、「不正な形式」というエラーをスローします。(openWavHandle に書かれているとおり)。エンディアンと HeaderFormatWav および SampleFormatPcm16 が存在すると思われるすべての組み合わせを試しましたが、役に立ちませんでした。これを修正する方法を知っている人はいますか?
java - JNIプロジェクトでUnsatisfiedLinkError(依存ライブラリが見つかりません)を修正する方法
JNIを使用するJavaプロジェクトに取り組んでいます。JNIは、自分で作成したカスタムライブラリ(mylib.dllなど)を呼び出します。これは、サードパーティのライブラリlibsndfile-1.dllに依存します。
プログラムを実行すると、次のようにクラッシュします
私はこのサイト(および他のサイト)を検索し、いくつかの修正を試みました:
依存関係ウォーカーを実行しました。DWは、libsndfileに必要な2つのライブラリ、MPR.DLLとSHLWAPI.DLLに「未解決のインポート」があるという警告をいくつか出しましたが、DW FAQには、これらの警告は安全に無視できると書かれています。
ここで提案されているように、mylib.dllのメソッド名を修正しました。メソッド名はコンパイラによってなんらかの形で壊されていましたが、リンカーフラグを追加したところ、dllメソッド名がjniヘッダーファイルのメソッド名と完全に一致するようになりました。
これらのDLLをすべて同じディレクトリ(それらを呼び出す.jarと同じディレクトリ)に配置して、正しいPATH上にあることを確認します。
サイコロはありません。
誰かが何が起こっているのか分かりますか?
私はMacBookProのVisualStudio2010で(Parallels経由で)開発を行っています。私は東芝のラップトップのWindowsXPでテストを行っています。