soxをビルドした。

公開:2011-10-10 17:01
更新:2020-02-15 04:36
カテゴリ:c++,dawもどきの作成,アプリ・ライブラリ・言語,windows,audio

理屈はじっくり勉強するとして、変換コードは早く組み込みたい。のでsoxを参考にすることにする。できればコードをそのまま使って実装したいところだ。

soxとは

soxはコマンドラインユーティリティである。あるフォーマットからあるフォーマットへのファイル変換を行う。その際さまざまなエフェクトをかけることができる。私は一回も使ったことはない。。

soxのビルド

バイナリはあるのだけれど、勉強のためにビルドすることにした。

soxの入手

soxのソースコード自体はgitレポジトリからcloneしてくれば入手できる。VC++10でコンパイルするためのソリューション・プロジェクトファイルも付いてくる。

周辺ライブラリのソースコード入手

プロジェクトには依存するライブラリのソースコードはついてこないので、入手する。すべてオープンソースのライブラリである。

プロジェクトの修正・ビルド

そのままビルドすると何個かリンカーでエラーが発生する。プロジェクトに追加するファイルが足りていないようである。エラーから必要なファイルを特定して追加する。これでビルドが完了する。

使ってみる

44.1KHzのWAVファイルを、48KHzに変換してみる。

H:\libs\sox\msvc10\Debug>sox "E:\wav_data\44.1Khz_ST\test.wav" "E:\wav_d
ata\48Khz_ST\test.wav" rate 48k
sox WARN rate: rate clipped 387 samples; decrease volume?
sox WARN dither: dither clipped 334 samples; decrease volume?

少しwarningが出ているけれども変換できた。