オーディオファイルの操作に使用できるライブラリを探しています。基本的に私がやりたいことは次のとおりです。
MP3/WAVファイルをロードする
ファイルの15秒のクリップを取得します
その上に別のMP3/WAVファイルをオーバーレイします
新しいMP3/WAVファイルとしてレンダリング
オーディオファイルの操作に使用できるライブラリを探しています。基本的に私がやりたいことは次のとおりです。
MP3/WAVファイルをロードする
ファイルの15秒のクリップを取得します
その上に別のMP3/WAVファイルをオーバーレイします
新しいMP3/WAVファイルとしてレンダリング
soxのライブラリlibsox (完全に異なるhttp://libsox.sourceforge.net/ではない)には、使用できる単純なAPIがあるようです。ドキュメントには、ステレオからモノラルへのミキシングの次の例が示されています。
サンプルを整数として表すと、オーディオの処理時に問題が発生する可能性があります。たとえば、左右のチャンネルを1つのモノフォニックチャンネルにミックスダウンするエフェクトがラインを使用する場合
*obuf++ = (*ibuf++ + *ibuf++)/2;
中間加算は32ビットをオーバーフローする可能性があるため、歪みが発生する可能性があります。この線
*obuf++ = *ibuf++/2 + *ibuf++/2;
オーバーフローの問題を回避します(最下位ビットを犠牲にして)。
一般的なMP3コーデックAPIを使用して、ストリームをデコードし、操作して、再度保存することができます。たとえば、この部分にlibLAMEを使用できます。
ミキシングに関しては、自分で行うか(たとえば、単純に2つのサンプルを追加し、2で割ると、あまり良くないように聞こえるかもしれません)、適切なライブラリを見つけることができます。
あなたはまた、最高のcオーディオライブラリLinuxで関連するスタックオーバーフローの質問に興味があるかもしれません
http://terminatorx.org/でこれを見てみるといいかもしれません 。