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

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

ALSA PCMデバイスとしてJACK Audio Connection Kitを使用

ALSAには対応しているがJACKには対応していない」というアプリケーションからでも、JACK経由でのPCM音声のやりとりが可能になる。
このALSAプラグインはオプション扱いで、alsa-libには含まれず、「alsa-plugins」の中に入っていて、Debianでは「libasound2-plugins」、Gentoo Linuxでは「alsa-plugins」(USE=jack)をインストールする。Ubuntuでは事情により「libasound2-plugins」から外されている。パッケージ検索結果から各バージョンごとのページに移動するとその事情について書かれているが、ビルドは自分で行う必要がありそう。
以下は、このプラグインを使用するための設定例。[ホームディレクトリ]/.asoundrcが既に存在する場合は追加し、無ければ作成する。
ファイル名: ~/.asoundrc

pcm.pjack
{
  type plug
  slave.pcm pcm.jack
}
pcm.jack
{
  type jack
  playback_ports
  {
    0 alsa_pcm:playback_1
    1 alsa_pcm:playback_2
  }
  capture_ports
  {
    0 alsa_pcm:capture_1
    1 alsa_pcm:capture_2
  }
}

この設定を追加後、jackdデーモンを起動した状態でALSAのPCMデバイス名を「pjack」に指定して*1実行すればよい。
例として、SDL(ALSA向けにビルドされている必要がある)を使用したアプリケーションでは

$ AUDIODEV=pjack [SDLアプリケーション]

のような形で実行する。

*1:直接「type jack」なPCM(例では「pcm.jack」)を開いてもダメ