Ubuntu Weekly Recipe

第202回ladishでJACKサウンドサーバー環境のセッションを管理する

JACKサウンドサーバー環境には音楽編集やレコーディングをする上で必要なソフトウェアがひととおり揃っています。しかし、ソフトウェアを起動して音声入出力ポートを接続する作業を、JACKサーバーを起動する度に繰り返す必要があり、少々面倒です。加えて、接続するサウンドデバイスを変更するとハードウェアが設けるポート数が変化してしまうため、ラップトップを持ち運んで場所を変えて使う場合などには、さらに手間がかかってしまいます。

今回は、この難点を解決するべく開発が進められている、ladishというソフトウェアを紹介します。

ladishとは

ladish(LADI Session Handler)はJACKのセッション管理をするためのソフトウェアです。⁠セッション」という言葉そのものは様々な文脈で用いられますが、ladishでの「セッション」は、JACKサウンドサーバーやJACK対応ソフトウェアの接続状態を意味します。

ladishは2009年から始まった比較的若いプロジェクトです。ladish以前にも、LASH(LASH Session Handler)注1やJACKのセッション管理機能がありましたが、いずれも制約があります。ladishはこの2つとの互換性を保ちながら、ladiセッションハンドラーを新たに定義してさらなる使い勝手の向上を図っています。

ladishを使うにはUbuntuソフトウェアセンターなどでパッケージ「gladish」をインストールします。パッケージの依存関係で必要なソフトウェアがすべてインストールされます。なお、ladishはOneiricになって初めてインストールすることが出来るようになりました。

Studio/Room/Project

ladishによるセッション管理の特徴は、Studio、Room、Projectの3つです。

Studioはハードウェアを含めた広範な接続空間です。ladishはStudio内に開かれた接続状態を管理し、セッションを保存することで次回の起動でも同じ状態から作業を開始することができるようにします。

Studio内にはRoomを複数設けることができます。RoomはStudioの中に設けられたStudioのようなものですが、Studioに対する独立した入出力ポートを持ち、Room内に開いたソフトウェアとStudioとを仲介する、文字通りの「部屋」です。ProjectはRoomに展開されるソフトウェアとその接続状態のことで、個別に保存可能です。

図1 ladishによるセッション管理
図1 ladishによるセッション管理

これらは、ソフトウェアをパフォーマーと見立て、スタジオの部屋でライブレコーディングしているイメージを持つと、より理解しやすくなります。

ladishはこうして、StudioとRoomによりハードウェアとの接続とソフトウェア間の接続状態を分離することで、同じProjectを様々なハードウェアで再利用することを簡単にしてくれます。

Studioの使いかた

gladishはladishの機能を画面で操作するためのソフトウェアです。gladishはUnityのLensでは「メディア」カテゴリーに、KDEやXFCEでは「マルチメディア」カテゴリーに登録されます。起動すると以下の画面となります。

図2 起動直後の画面
図2 ladishによるセッション管理

親切にも、ウィンドウの右のペインに使い方が表示されています。

  1. Studioの作成
  2. JACKサウンドサーバーの設定
  3. Studioの開始
  4. ソフトウェアの起動
  5. ポート間の接続
  6. Studioの保存と終了

順を追って見てみましょう。

1. Studioの作成

メニュー「Studio」で項目「New Studio」を選択し、名前を入力して自分のStudioを作成します。

図3 メニュー「Studio」を選択
図3 メニュー「Studio」を選択

2. JACKサウンドサーバーの設定

ladishからJACKサーバーを起動するために、JACKサーバーに関する設定を先に行います。JACKサーバーを起動するソフトウェアとして本連載の第161回で紹介したqjackctlと、主要な設定は共通しています。

メニュー「Tools」から項目「Configure JACK」を選択すると、⁠ladiconf」というウィンドウが開きます。合計6つのボタンから別々な設定画面が開きますが、JACKの起動にあたっては上の2つのボタンの設定さえちゃんとしていれば大丈夫です。

図4 ladiconfウィンドウ
図4 ladiconfウィンドウ

まずは「JACK engine parameters⁠⁠。項目「driver」にはFirewire接続のサウンドデバイスを使う場合「firewire」を選択することになりますが、大抵の場合「alsa」を選択することになるでしょう。本連載の第161回で説明した、JACKサーバーをリアルタイムオプション付きで実行できるように設定している場合のみ、項目「realtime」にチェックを入れ、項目「realtime-priority」に優先度を入力してください。

図5 ⁠JACK engine parameters」の設定画面
図5 「JACK engine parameters」の設定画面

次に「JACK driver parameters」です。これは先の項目「driver」に応じた設定となります。⁠rate」はお使いのサウンドデバイスの性能に合わせて適した値を設定してください。⁠period」「nperiods」は本連載の第150回でお伝えしたリングバッファに関する設定となります。項目「device」「alsa」を選択している場合に用いるオプションです。本連載の第159回のように複数のサウンドデバイスを接続している際には変更することになります。

図6 ⁠JACK driver parameters」の設定画面
図6 「JACK driver parameters」の設定画面

3. Studioの開始

メニュー「Studio」から項目「Start Studio」を選択してStudioを開始し、JACKサーバーを起動します。もし起動に失敗した場合は下の図のようにエラーが表示されますので、⁠ladiconf」ウィンドウでJACKサーバーの設定を見直してください。エラーログは「ladilog」というソフトウェアでも参照できます。

図7 JACKの起動に失敗するとアラートが表示される
図7 JACKの起動に失敗するとアラートが表示される
図8 ladilogのウィンドウ
図8 ladilogのウィンドウ

無事にJACKサーバーが起動すると、gladishのウィンドウにハードウェアの音声入出力ポートが表示されます。

図9 JACKの起動に成功するとハードウェアとの入出力が見える
図9 JACKの起動に成功するとハードウェアとの入出力が見える

なお、あらかじめパッケージ「pulseaudio-module-jack」をインストールしておくと、PulseAudioサウンドサーバーがJACKサウンドサーバーの起動を自動認識し、間をブリッジする入出力ポートを設けるようになります[2]⁠。

4. ソフトウェアの起動

JACKサウンドサーバーが起動しサウンドデバイスとの接続が確立すれば、あとは必要なソフトウェアを起動してポートを接続し、作業を開始するだけとなります。ここで注意するべきは、使用するソフトウェアをgladishに登録して起動することです。こうすることで、Studio開始時の自動起動機能とポート接続機能を利用できるようになります。これは、メニュー「Application」の項目「New Application」で実行コマンドを登録することで行います。

図10 実行コマンド登録画面
図10 実行コマンド登録画面

となると普段使っているソフトウェアの実行コマンドを知りたくなります。大抵はパス「/usr/bin」以下にインストールされているため、ファイルブラウザなどで見て見当をつけておき、GNOME端末などであらかじめ実行して目的のソフトウェアが起動するかどうか確認しておくとよいでしょう。

コマンド登録画面では、Levelを付加します。これはソフトウェアとの連携レベルを設定するもので0から3までの4段階が定義されています。現在のladishの開発では0と1が実装されています。

5. ポート間の接続

ソフトウェアが無事に起動すると、ウィンドウの右ペインにポートが表示されます。ポート間を接続することで経路を作成することができます。

図11 ポート間接続による経路作成の一例
図11 ポート間接続による経路作成の一例

青いポートは音声入出力を示し、赤いポートはMIDI入出力を示します。本連載の第177回ではMIDIの入出力を管理するサブシステムとして、ALSAシーケンサー機能とJACKシーケンサー機能を紹介しましたが、gladishから直接利用できるのはJACKシーケンサー機能です。ALSAシーケンサー機能に開かれたポートを利用するには、実行コマンド「a2j -e」を先ほどの方法で登録し、ブリッジを作成します。

図12 a2jでALSAシーケンサー機能とJACKシーケンサー機能をブリッジ
図12 a2jでALSAシーケンサー機能とJACKシーケンサー機能をブリッジ

6. Studioの保存と終了

ladishは各ソフトウェアのファイルへの保存もセッション管理機能として自動化する予定ですが、今のところは実装されていないので忘れずに個別に保存してください。Studioの作業が一段落したら、メニュー「Studio」の項目「Save Studio」「Save Studio As」を使ってStudioを保存してください。Studioを終了するには同じメニューの項目「Stop Studio」を使います。Studioを終了するとJACKサウンドサーバーも終了します。

一旦保存したStudioはメニュー「Studio」の項目「Load Studio」で読み込むことができます。この際、登録されているソフトウェアが自動で起動されるようになります。

RoomとProjectの使い方

メニュー「Room」でRoomをStudioに追加することができます。追加できるRoomは4種類あり、音声入出力2組/MIDI入出力1組のものから音声入出力40組/MIDI入出力16組のものまでの中から選択することができます。

図13 Roomの作成
図13 Roomの作成

Roomを設けるとウィンドウの左ペインに表示されます。左ペインでStudioを選択すると、右ペインにはRoomがStudioに開かれたひとつのソフトウェアのようなものとして見えます。左ペインでRoomを選択すると、今度は右ペインでRoomの中とStudioとの入出力ポートを見ることができます。

図14 Studioから見るRoom。図では3種類を開いている
図14 Studioから見るRoom。図では3種類を開いている

Roomにも、Studioと同じ方法でソフトウェアを登録することができます。しかしその前に、Projectを作っておく必要があります。Projectはメニュー「Project」から作成できる他、既存のProjectがあれば読み込むことができます。

図15 Projectの作成
図15 Projectの作成

ladishはまだまだ開発途上にあり、また効率的に働くにはソフトウェア側がladiセッションハンドラーを実装している必要があります。LASHやJACK-Sessionとの連携もまだ十分であるとは言えませんが、実現すればJACKサーバー環境の使い勝手を大きく進展させることになります。今後の開発がとても楽しみです。

おすすめ記事

記事・ニュース一覧