ecasound

ecasound は UNIX (主に Linux) 上で音を扱うプログラムである。 マルチトラックレコーディングやミキシングなど様々な機能があるが、 すべての機能を使いこなすことは不可能なので、 一般的な使い方をメモしておく。

インストール

$ cd /usr/local/src
$ wget http://ecasound.seul.org/download/ecasound-2.0.4.tar.gz
$ tar xzvf ecasound-2.0.4.tar.gz
$ cd ecasound-2.0.4
$ ./configure
$ make
# make install

普通に使う

一般的なコマンドプログラム同様、コマンドに引数を与えて起動する。 起動例を以下に示す。

$ ecasound -i:test.wav -t:60 -y:60 -o:/dev/dsp

オプションの指定は、順番が重要なようだ。 -i,-o,-y,-t の順に指定すると、正常に機能しない。

よく使うオプションを以下に示す。 また、オプションと値は ":" (コロン) で区切る。

オプション 機能
-i 入力を指定。サウンドカードの Line 入力なら /dev/dsp を指定。
-o 出力を指定。サウンドカードから音を出す場合には /dev/dsp を指定。 ファイルを指定すれば、指定したファイルに書き込まれる。 この時に拡張子を指定すればそのフォーマットで書き込まれる。 例えば、.mp3 を指定すれば mp3 に圧縮されて書き込まれる。 この場合 ecasound から lame を呼び出しているので、 lame がインストールされている必要がある。
-t 処理をする時間を指定。単位は秒。
-y 処理を開始する位置を指定。単位は秒。

インタラクティブモード

-c オプションを指定して起動すると、インタラクティブモードで起動し、 コマンドにより動的に制御できる。


$ ecasound -i:test.wav -o:/dev/dsp -c

インタラクティブモードでよく使うコマンドを以下に示す。

コマンド 機能
start 再生。
stop 停止。コマンド実行後も停止位置は保持される。
run start と同じだが、コマンド実行後にプロンプトが返ってこない。
rewind, rw 巻き戻し。コマンドの後に秒数を指定する。
forward, fw 早送り。コマンドの後に秒数を指定する。
dump-position 現在の位置を表示する。単位は秒。
dump-length 全体の時間を表示する。単位は秒。
set-position 位置を指定する。単位は秒。

ノーマライズ

-ev, -ea オプションを併用すればノーマライズができる。 -ev はクリップせずに音量を上げられる最大値を調査し、 -ea は指定された倍率に全体の音量を上げる。 -ev で得られた値を -ea に指定すればよい。

$ ecasound -i:test.wav -o:null -ev

出力を指定しないと普通に再生され、終了後に結果が表示される。 これでは時間がかかるので、出力先に null を指定する。 これでコンピュータが可能な最高の速度で調査できる。

マニュアルによれば、null でも /dev/null でも良いと書いてあったが、 /dev/null では以下のエラーを吐いて止まってしまう。

ERROR: [ECA-CHAINSETUP] : "Format of output /dev/null not recognized."

マルチチャンネル WAV ファイルを各モノラル WAV ファイルに分割

マルチチャンンル WAV ファイルは -i: にてそのまま読み込ませようとするとエラーになってしまう。 拡張子を .wav から .raw に変更し、 -f: にてフォーマットを明確に指定すれば読み込み可能。

以下は 6ch WAV から各モノラル WAV ファイルへの変換。

$ ecasound -a:1,2,3,4,5,6 -f:16,6,48000 -i:6ch.raw \
  -a:1 -f:16,1,48000 -o 1.wav \
  -a:2 -f:16,1,48000 -o 2.wav -erc:2,1 \
  -a:3 -f:16,1,48000 -o 3.wav -erc:3,1 \
  -a:4 -f:16,1,48000 -o 4.wav -erc:4,1 \
  -a:5 -f:16,1,48000 -o 5.wav -erc:5,1 \
  -a:6 -f:16,1,48000 -o 6.wav -erc:6,1

6ch の各チャンネルは以下のように対応している。

1: Center
2: Woofer
3: Back Left
4: Back Right
5: Front Left
6: Front Right

サンプリングレートの変更

22.05kHz44.1kHz に。

$ ecasound -f:16,2,44100 -i: resample,22050,hoge.wav -o out.wav

WAV ファイルの場合には、auto を指定すれば自動判別。

$ ecasound -f:16,2,44100 -i: resample,auto,hoge.wav -o out.wav

フェードイン・フェードアウト

300秒の長さの WAV ファイルの最初をフェードインし、 最後をフェードアウト。フェードイン・フェードアウトの時間は共に5秒。 -ea:100 オプションを省略すると -kl, -kl2 オプションが機能しなくなる。

$ ecasound -i:input.wav -o:output.wav -ea:100 -kl:1,0,100,5 -kl2:1,100,0,300,5

Re: [ecasound] Fade-in/Fade-out

モノラルファイルをステレオに変換

$ ecasound -a:1 -f:16,1,44100 -i mono.wav \
           -a:2 -f:16,1,44100 -i mono.wav -erc:1,2 -eac:0,1 \
           -a:1,2 -f:16,2,44100 -o stereo.wav

-erc:1,2 は、 1つ目のチャンネル (left) を2つ目のチャンネル (right)にコピー、 -eac:0,1は、 1つ目のチャンネルを0倍に (つまり無音) 設定。

Re: [ecasound] Merging two mono files into one stereo etc.

レベルメーター

ecasignalview コマンドを使えば、 サウンドカードからの入力レベルをモニターできる。


viusulce@hotmail.com
Last modified: Sat Jun 28 17:46:48 JST 2003