試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

JACK Audio Connection Kitを使用した録音について

JACKを使用することで、PCM音声の録音が行える。JACK対応アプリケーションはもちろん、非対応アプリケーションでもALSAプラグインにより使用できることもあり、録音を行うのに最も有効な方法。
関連記事:

録音レベルについて

ALSAの録音機能で「alsa_pcm:capture_[番号]」を使用する場合はALSAのミキサーで「Capture」などを設定することになる。PCM音声の場合、JACKアプリケーション側の録音レベル調整を利用する。

コマンドで録音

jackrecというコマンドで(録音したいアプリケーションの出力)ポートを指定して録音する。
単純な例として、ALSAの録音ポート(alsa_pcm:capture_[番号])から録音する場合は

$ jackrec -f [ファイル名].wav -d [録音する秒数] alsa_pcm:capture_{1,2}

とする。
ポート名はjack_lspで調べられる他、QjackCtlの接続ダイアログなどでも確認できる。

GUIのJACKアプリケーションからの録音

RosegardenArdourなどのアプリケーションでは、アプリケーションからの音声を録音できる。録音の操作や録音レベルの調整方法はアプリケーションごとに異なる。
ポートの接続作業はアプリケーション内でできる場合もあるが、QjackCtl上のほうが分かりやすい気がする。

Rosegardenの場合
  1. オーディオデータを保存するディレクトリを指定しておく(「コンポジション - ドキュメントプロパティの編集」で「オーディオ」を選択)
  2. QjackCtlなどで、録音したい音声を出力するアプリケーションの出力ポートから、Rosegardenの入力ポートに手動で接続を行う
  3. オーディオトラックの「楽器」タブで入力ポートを(先ほど接続したポートに)指定し、録音レベル(赤)を調整
  4. 録音したいオーディオトラックに「録音」マークを付け、録音ボタンを押し、止めたいところで停止

ポート接続は下のようになっている(外部アプリケーションとしてHydrogenを使用)。alsa_pcmの入力ポート(playback)の部分はそのままで、いじっていない。

下は録音レベル設定部分(画像右下)。「プラグイン無し」の部分では、LADSPAプラグインで効果をかけることができるようになっている。

録音されたオーディオトラックは波形表示される。

Ardourの場合

(2008/2/27)アプリケーションもしくはキャプチャの出力ポートからシステムのplaybackに出ているポートはそのままにして、出力ポートからArdourのAudioの入力につなぐだけでよい。

  1. アプリケーションもしくはキャプチャの出力ポートからシステムのplaybackに接続されていない場合は接続しておく
  2. 外部の出力ポートからシステムのplaybackとArdourのAudioの入力に分岐するように新しく接続する
  3. ArdourのAudio出力からシステムのplaybackに出ていなければ接続する


以下は推奨しない方法。
使い慣れていないこともあり、正しくない方法を書いてしまっている可能性もあるのだが、

  1. 外部アプリケーションの出力ポートから、新規作成*1したBusの入力につなぎ、外部アプリケーションからalsa_pcmの再生ポートへの接続は切る
  2. Busの出力からmasterと新規作成したAudioの両方の入力につなぐ
  3. Audioの出力をmasterの入力につなぐ
  4. masterの出力からALSAの再生ポートへつなぐ
  5. Audioトラックを録音モードにする(次のミキサー上でもできる)
  6. ミキサー(Alt+M)でBusのレベルを調整
  7. メインウィンドウの録音ボタンを押した後に再生ボタンで録音を開始し、停止ボタンで止める

という流れで、外部アプリケーションの音を鳴らしながら録音/再生をすることができている。

関連記事:

使用したバージョン:

  • JACK Audio Connection Kit 0.103.0
  • Rosegarden 1.6.1(1.6.1-r1)
  • Ardour 2.0.5

*1:トラック一覧の空白部分(トラックの無い部分)を右クリックするとBusかAudioが追加できる