2009-11-29 2 views
12

私はいつもオーディオ変換ソフトに興味がありますが、初心者からは、たとえばmp3ファイルをwavに変換する簡単なプログラムを書く方法については、決して適切な説明を見たことがありません。単純なライブラリを使ったほんの少しの例を含めて、複雑なアルゴリズムは何も質問していません。 SOの検索、私はを含むいくつかの名前を思い付いた:C/C++でのオーディオ作業の初心者ガイド

  • ラメ
  • 合成ツールキット
  • OpenALの
  • DirectSoundの

しかし、私はの簡単な例を見つけることができませんよこれらのライブラリのいずれか。通常、私はたくさんのコードを渡しても構いませんが、ここで私はその件について全く知らないので、私はいつも暗闇の中で撮影しているように感じます。

誰でもここに、これらのライブラリのいずれかを使用してサウンドファイルを変換する簡単な例/チュートリアルがありますか?私の質問は、特にC/C++に向けられています。なぜなら、それらは現在私が学んでいる2つの言語なので、それらに焦点を当て続けたいと思います。

を編集してください:私は* NIXシステムを使用しています。

+0

通常、音声を抽象的に扱わないため、再生したいということはオペレーティングシステムAPIに依存するため、非常に難しい質問です。キッチンシンクを処理するためにAPIを記述する必要があります。 –

答えて

3

返信いただきありがとうございます。私はAIFF/WAV/etcファイルをmp3ファイルに変換する小さなユーティリティを作るために、それらを一緒に結びつけました。ジェームズ・モリスによって示唆されているように ダウンロードしてlibsndfileライブラリをインストールします。

ステップ1:私は、ステップバイステップをやったので、ここではそれを、この問題に関心があるようです。このライブラリは非常に使いやすいです - その唯一の欠点はmp3ファイルでは動作しません。

手順2: libsndfileに付属の「examples」フォルダを参照し、generate.cを探します。これは非mp3ファイルをいろいろなファイル形式に変換する素晴らしい動作例を提供します。また、libsndfileの背後にあるパワーを垣間見ることもできます。

ステップ3: generate.cのコードを借用して、オーディオファイルを.wavファイルに変換するcファイルを作成しました。ここに私のコードは次のとおりです。http://pastie.org/719546

ステップ4: ダウンロードしてLAME encoderをインストールします。これにより、libmp3lameライブラリとlameコマンドラインユーティリティの両方がインストールされます。

ステップ5: 今、あなたはあなたのwavファイルをmp3ファイルに変換するにはラメするプロセスをexecしLAMEのAPIを熟読か、単にフォーク&ことができます。

ステップ6:シャンパンとキャビアを持ち出す!

これを行うには良い方法がある場合は、私にお知らせください。私は個人的にこのようなステップバイステップのロードマップを見たことがないので、私はそこに置くと思った。

0

「libmadを確認してください」「M」ペグ「A」オーディオ「D」エコーダーライブラリ」は良い例です。 また、簡単なクロスプラットフォームのオーディオ処理のために、SDL http://www.libsdl.org/をチェックしてください。 希望に役立ちます。

+0

私はこれを動作させましたが、この例では.PCMファイルが作成されていますが、これはどのように再生するかわかりません。関連する質問はこちらからsuperuser.com:http://superuser.com/questions/76665/playing-a-pcm-file-on-a-unix-system –

+0

更新:私はAudacityでPCMファイルをプロジェクトに行くことでインポートできます>生データをインポートします。 –

1

DSPとコンピュータについて興味がある場合は、Synthesis Toolkitをご覧ください。それは甘い。それは学習のために設計されています。彼らがウェブサイトに持っている例とチュートリアルは、簡単で徹底的です。それを書いた人たちは、実際の楽器の音響モデルを作ることができるように書きました。その結果、彼らにはちょっと変わった楽器がいくつか含まれていますが、楽しいものです。それはあなたにPCMサウンドの処理の中核的な理解を与えるでしょう。そして、あなたはおそらく少し楽しい小さなnoisemakersを一緒にハックすることができるでしょう。 (MP3以外)は、様々なフォーマット間の変換するため

https://ccrma.stanford.edu/software/stk/

2

http://mega-nerd.com/libsndfile/

Libsndfileがが に設計されたライブラリであるLibsndfileがチェックは、多く 異なるサンプリングサウンドファイル形式 の読み書きを可能にする(例えばMS Windows WAVおよび Apple/SGI AIFF形式)を1つの 標準ライブラリインターフェイス経由で使用できます。読み取りおよび書き込み動作中

は、 フォーマットシームレス形式アプリケーション プログラムが要求または供給していると ファイルのデータ形式間 に変換されます。 アプリケーションプログラマは、このような ファイルエンディアンやデータフォーマットなどの問題の穏やか気づかない を残すことができる

標準Cライブラリ関数の名前のスタイル以下のAPIを使用することも簡単です:

http://mega-nerd.com/libsndfile/api.html

例はソースディストリビューションに含まれています。

実際のオーディオ出力には、もう1つのライブラリが必要です。前述のSDLは、開始するのに適しているかもしれません。 SDLはオーディオファイルの読み書きも可能ですが、libsndfileははるかに優れています。

関連する問題