やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

JACKオーディオサーバーをインストールする

DAW、ブラウザ、プレーヤでそれぞれ音声出力するため。

開発環境

前回

仮想MIDIキーボードとソフトシンセを入れてPCキーボードから音を出した。

今回

JACKオーディオサーバーをインストールする。

どうやらLinuxでは別々のアプリが同時に音を出力するために必要なソフトウェアがあるらしい。正直よくわかっていないのだが。

とにかく、qjackctl(jack), pulseaudio-module-jack, をインストールするのがいいらしい。

sudo apt install qjackctl pulseaudio-module-jack  

参考

インストール

$ sudo apt install qjackctl pulseaudio-module-jack  
[sudo] password for mint: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libc-ares2 libportaudiocpp0 libv8-3.14.5
これを削除するには 'apt-get autoremove' を利用してください。
以下の特別パッケージがインストールされます:
  jackd jackd2 jackd2-firewire libconfig++9 libffado2 libjack-jackd2-0
  libxml++2.6-2
提案パッケージ:
  jack-tools meterbridge
以下のパッケージは「削除」されます:
  libjack-dev libjack0 portaudio19-dev
以下のパッケージが新たにインストールされます:
  jackd jackd2 jackd2-firewire libconfig++9 libffado2 libjack-jackd2-0
  libxml++2.6-2 pulseaudio-module-jack qjackctl
アップグレード: 0 個、新規インストール: 9 個、削除: 3 個、保留: 428 個。
3,219 kB のアーカイブを取得する必要があります。
この操作後に追加で 7,937 kB のディスク容量が消費されます。
続行しますか? [Y/n] 

y+Enterキーで続行する。少しすると以下の謎画面が出る。メモリ1GBの貧弱PCなので「いいえ」を選択する。

f:id:ytyaru:20170831180837p:plain

パッケージの設定                                                                
 ┌────────────────────────┤ jackd2 を設定しています ├────────────────────────┐  
 │                                                                           │  
 │ jackd をリアルタイム優先度で動作させたい場合、jackd を起動したユーザはリ  │  
 │ アルタイム動作をさせられるパーミッションが必要です。このオプションを選択  │  
 │ すると、/etc/security/limits.d/audio.conf ファイルを作成し、audio グルー  │  
 │ プに対してリアルタイム優先度と memlock 権限を許可します。                 │  
 │                                                                           │  
 │ レイテンシー (遅延) を抑えて jackd をリアルタイム優先度でに動作させると   │  
 │ 、システムの物理メモリを可能な限り要求して完全にシステム停止を引き起こす  │  
 │ 可能性があります。これは、マルチユーザ環境では容認出来ません。            │  
 │                                                                           │  
 │ リアルタイム実行優先度の設定を有効にしますか?                             │  
 │                                                                           │  
 │                    <はい>                      <いいえ>                   │  
 │                                                                           │   └───────────────────────────────────────────────────────────────────────────┘  

以下ログ。

取得:1 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu/ trusty/main libjack-jackd2-0 i386 1.9.9.5+20130622git7de15e7a-1ubuntu1 [180 kB]
取得:2 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu/ trusty/universe jackd2 i386 1.9.9.5+20130622git7de15e7a-1ubuntu1 [655 kB]
取得:3 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu/ trusty/main libconfig++9 i386 1.4.9-2 [31.3 kB]
取得:4 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu/ trusty/universe jackd all 5 [2,072 B]
取得:5 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu/ trusty/main libxml++2.6-2 i386 2.36.0-2ubuntu1 [63.7 kB]
取得:6 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu/ trusty/main libffado2 i386 2.1.0+svn2240-1ubuntu3 [1,623 kB]
取得:7 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu/ trusty/universe jackd2-firewire i386 1.9.9.5+20130622git7de15e7a-1ubuntu1 [27.4 kB]
取得:8 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu/ trusty-updates/main pulseaudio-module-jack i386 1:4.0-0ubuntu11.1 [18.3 kB]
取得:9 http://ftp.tsukuba.wide.ad.jp/Linux/ubuntu/ trusty/universe qjackctl i386 0.3.10-2 [618 kB]
3,219 kB を 8秒 で取得しました (373 kB/s)                                      
パッケージを事前設定しています ...
(データベースを読み込んでいます ... 現在 203446 個のファイルとディレクトリがインストールされています。)
portaudio19-dev (19+svn20140130-1) を削除しています ...
libjack-dev (1:0.121.3+20120418git75e3e20b-2.1ubuntu1) を削除しています ...
dpkg: libjack0:i386: 依存関係に問題があります。しかし要求に従い削除しています:
 gstreamer0.10-plugins-good:i386 は以下に依存 (depends) します: libjack-jackd2-0 (>= 1.9.5~dfsg-14) | libjack-0.116 ...しかし:
  パッケージ libjack-jackd2-0:i386 はまだインストールされていません。
  パッケージ libjack-0.116 はまだインストールされていません。
  パッケージ libjack-jackd2-0:i386 は libjack-0.116 を提供しますが、まだインストールされていません。
  パッケージ libjack0:i386 は libjack-0.116 を提供していますが、削除されようとしています。
 libavdevice53:i386 は以下に依存 (depends) します: libjack-jackd2-0 (>= 1.9.5~dfsg-14) | libjack-0.116 ...しかし:
  パッケージ libjack-jackd2-0:i386 はまだインストールされていません。
  パッケージ libjack-0.116 はまだインストールされていません。
  パッケージ libjack-jackd2-0:i386 は libjack-0.
libjack0:i386 (1:0.121.3+20120418git75e3e20b-2.1ubuntu1) を削除しています ...
doc-base (0.10.5) のトリガを処理しています ...
doc-base ファイルを 1 個削除 を処理中...
scrollkeeper をドキュメントとして登録しています...
libc-bin (2.19-0ubuntu6.6) のトリガを処理しています ...
以前に未選択のパッケージ libjack-jackd2-0:i386 を選択しています。
(データベースを読み込んでいます ... 現在 203293 個のファイルとディレクトリがインストールされています。)
.../libjack-jackd2-0_1.9.9.5+20130622git7de15e7a-1ubuntu1_i386.deb を展開する準備をしています ...
libjack-jackd2-0:i386 (1.9.9.5+20130622git7de15e7a-1ubuntu1) を展開しています...
以前に未選択のパッケージ jackd2 を選択しています。
.../jackd2_1.9.9.5+20130622git7de15e7a-1ubuntu1_i386.deb を展開する準備をしています ...
jackd2 (1.9.9.5+20130622git7de15e7a-1ubuntu1) を展開しています...
以前に未選択のパッケージ libconfig++9:i386 を選択しています。
.../libconfig++9_1.4.9-2_i386.deb を展開する準備をしています ...
libconfig++9:i386 (1.4.9-2) を展開しています...
以前に未選択のパッケージ jackd を選択しています。
.../apt/archives/jackd_5_all.deb を展開する準備をしています ...
jackd (5) を展開しています...
以前に未選択のパッケージ libxml++2.6-2 を選択しています。
.../libxml++2.6-2_2.36.0-2ubuntu1_i386.deb を展開する準備をしています ...
libxml++2.6-2 (2.36.0-2ubuntu1) を展開しています...
以前に未選択のパッケージ libffado2 を選択しています。
.../libffado2_2.1.0+svn2240-1ubuntu3_i386.deb を展開する準備をしています ...
libffado2 (2.1.0+svn2240-1ubuntu3) を展開しています...
以前に未選択のパッケージ jackd2-firewire を選択しています。
.../jackd2-firewire_1.9.9.5+20130622git7de15e7a-1ubuntu1_i386.deb を展開する準備をしています ...
jackd2-firewire (1.9.9.5+20130622git7de15e7a-1ubuntu1) を展開しています...
以前に未選択のパッケージ pulseaudio-module-jack を選択しています。
.../pulseaudio-module-jack_1%3a4.0-0ubuntu11.1_i386.deb を展開する準備をしています ...
pulseaudio-module-jack (1:4.0-0ubuntu11.1) を展開しています...
以前に未選択のパッケージ qjackctl を選択しています。
.../qjackctl_0.3.10-2_i386.deb を展開する準備をしています ...
qjackctl (0.3.10-2) を展開しています...
man-db (2.6.7.1-1ubuntu1) のトリガを処理しています ...
hicolor-icon-theme (0.13-1) のトリガを処理しています ...
desktop-file-utils (0.22-1ubuntu1) のトリガを処理しています ...
mime-support (3.54ubuntu1.1) のトリガを処理しています ...
libjack-jackd2-0:i386 (1.9.9.5+20130622git7de15e7a-1ubuntu1) を設定しています ...
jackd2 (1.9.9.5+20130622git7de15e7a-1ubuntu1) を設定しています ...
libconfig++9:i386 (1.4.9-2) を設定しています ...
jackd (5) を設定しています ...
libxml++2.6-2 (2.36.0-2ubuntu1) を設定しています ...
libffado2 (2.1.0+svn2240-1ubuntu3) を設定しています ...
jackd2-firewire (1.9.9.5+20130622git7de15e7a-1ubuntu1) を設定しています ...
pulseaudio-module-jack (1:4.0-0ubuntu11.1) を設定しています ...
qjackctl (0.3.10-2) を設定しています ...
libc-bin (2.19-0ubuntu6.6) のトリガを処理しています ...

起動確認

f:id:ytyaru:20170831181003p:plainf:id:ytyaru:20170831181012p:plain

設定確認

とりあえず初期状態のキャプチャを撮っておく。

f:id:ytyaru:20170831181739p:plainf:id:ytyaru:20170831181742p:plainf:id:ytyaru:20170831181746p:plainf:id:ytyaru:20170831183226p:plainf:id:ytyaru:20170831181749p:plain

接続

前回、aconnectguiでソフトシンセと仮想MIDIキーボードを接続した。今回はインストールしたqjackctlを使って接続する。

種別 ソフト名
MIDIポート接続 qjackctl(前回:aconnectgui)
ソフトシンセ amSynth
ソフトMIDIキーボード vkeybd

これらのアプリを起動しておく。以下のようにqjackctlを操作することでシンセとMIDIキーボードを接続できる。

f:id:ytyaru:20170831183332p:plainf:id:ytyaru:20170831183346p:plainf:id:ytyaru:20170831183354p:plainf:id:ytyaru:20170831183357p:plain

音が再生されることを確認する。

f:id:ytyaru:20170831170107p:plain

併用確認

jackを導入する理由は以下らしい。併用して音が鳴るか確認したいが、低スペックPCだからできない。導入した意味あったのか?

  • ブラウザやプレーヤとの併用でも音が鳴らなくなるトラブルが無くなる
  • 低レンシになる(MIDI入力から再生までのレスポンスが早くなる?)

所感

DTM環境の基礎が整った。残るはシーケンサ