SoXでオーディファイルをミックス

 オーディオファイルのミックス。普通の音楽制作の話ではなく、必要にかられての作業的なやつ。バッチ処理したいので、いろいろ調べた結果、SoXというコマンドラインで使用するソフトウェアに行き着いた。
 最初はSonyのSound Forgeでやろうと思ったのだけど、そういう機能は見つけられず。前後の不要部分をトリミングするとか、エフェクトをかけるといった処理は、複数ファイルに一括で行える。フォーマット変換などももちろん可能。バッチコンバーターという機能だ。しかし、カット、ミックスといった編集的なことはこの機能ではサポートされない模様。処理はジョブファイル(.jpb)として保存でき、その中身はXMLファイルなので、もしかするとなんかできそうな気もするのだけど、ドキュメントが見つけられず。
 で、探すとSoXというソフトウェアがあった。初耳。Linux、Mac、Windowsで動くという。コマンドラインで操作、GUIはないらしい。今回の用途にはそれで問題ない。ということで、これ。
 SoX – Sound eXchange | HomePage はてなブックマーク - SoX - Sound eXchange | HomePage


 機能の概要や使い方などは以下で知る。
 soxmix でミックスする音源の開始位置を指定する – 暇人じゃない
 soxコマンドで音声ファイルを編集する10の例 : アシアルブログ
 suz-lab – blog: “soxmix”での音声合成時の音量について
 これらを見ると、ミックスに使うsoxmixという実行ファイルがあるようなのだが、ダウンロードしたWindows版には存在せず。ドキュメントを見ると、sox.exeに「-m」オプションでいけるようだ。これで2つのファイルを前後でつなぐのではなく、ミックスすることができた。
 しかし、音量が小さい。上記リンクにあるのと同じ状況だ。
 今回素材となる2つのファイルを音量変えずにミックスしてもクリップしないことは確認済みである。そのままミックスしてほしい。というわけでこんな感じにオプション指定してみた。
 sox.exe -m -v 1inpu1.wav -v 1 input2.wav output.wav
 入力ファイルの前にある「-v」オプションで。パラメーターの「1」だとそのままの音量という感じ。
 ミックスする際のオフセットを設定することはできない模様。見つけられない。そんな話は先のリンクにもあった。リンク先の人はこれもsoxでやったみたいだけど、今回はSound Forgeで作成。これは一発。これで作成した無音部分をconcatして、テンポラリファイルを作成。これを対象ファイルとミックスするという2段階の処理になった。まあ、こうするしかなよなあ。
 てな具合にいろいろ調べてバッチファイルを作成。 これにファイルをつっこんで一瞬で複数ファイルのミックス作業が完了。
 まあ、トータルでは手作業で1つ1つやったほうが早かったという結果になったのだけど、今後もありそうなので、自動処理のプログラムは準備しておくに越したことはない。勉強にもなるし。

コメント