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 ファイルは
-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.05kHz を 44.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