ALSA上の録音に関する覚え書きとAudacity
ライン入力やマイクなどの外部入力の録音は、ALSA標準の録音機能で行える。JACK Audio Connection Kitを使用することでJACK対応アプリケーションから録音することもできるが、JACKを使用する方法は別の記事にて扱う。
ミキサー設定
録音に関するミキサー設定は必ず行い、音がきちんと録音されるかどうかを確認する。手元のカード*1では、「Capture」をある程度上げた状態で、横の「Input Source 1」を「Line」にすることでライン入力が録音できる状態になっている。使用しているカードにより、設定項目は変わる可能性がある。
ミキサーアプリケーションは、GUIのものもあるが、最も確実に設定するにはalsamixer(alsa-utilsに含まれる)を端末で実行する。*2録音関係の設定は、Tabキーを一度押して
View: Playback [Capture] All
という表示になっているとき(もしくは「All」が選択されているとき)に可能。
関連記事:
録音方法
コマンドではarecordが使える(Ctrl+Cで止める)が、出力形式はvoc/wav/raw/auのみの対応となっているため、これらが気に入らなければ、一度WAVE形式で出力後、別途エンコードを行って変換することになる。
$ arecord -f cd out.wav
-f cdはCDの音質(16bit/リトルエンディアン/44100Hz/ステレオ)、-f datはDATの品質(16bit/リトルエンディアン/48000Hz/ステレオ)を簡単に指定できる。これ以外にも、オプションで詳細に品質を指定する方法もある(「arecord -h」でヘルプを参照)。
GUIのアプリケーションでは、Audacityなどで録音ができる。
Audacityの覚え書き
jackdを使用すると「メモリが確保できません」になる?
AudacityはALSAとJACKの両方に対応しているが、jackdが動作していると
***MEMORY-ERROR***: audacity[30157]: GSlice: failed to allocate 4080 bytes (alignment: 4096): メモリを確保できません
このようなエラーが出て起動できなかった。/etc/security/limits.confには「@audio - memlock 500000」を書いているがうまくいかない。*3
(2008/1/9)値を変化させることでエラーが出たり出なかったりした。一方で、Ardourでは
$ ardour2 (中略) ardour: [INFO]: Control protocol powermate not usable JACK tmpdir identified as [/dev/shm] loading bindings from /home/[ユーザ名]/.ardour2/ardour.bindings ardour: [ERROR]: JACK: cannot lock down memory for RT thread (メモリを確保できません)
と、似たようなエラーとなっていたが、こちらは値を変えても上のメッセージは出なくなるものの
terminate called after throwing an instance of 'std::bad_alloc' what(): St9bad_alloc
となることがある。
(2008/5/17)jackdの起動時に-u(--unlock)オプションを付けるとよいようだ。QjackCtlでは「Unlock Memory」にチェックする。
JACKが使えなくても、ALSAの録音機能を直接使用することでライン入力などからの録音はできる(JACK経由での録音も可能)。