Ubuntu QuantalでPureData
PureDataをUbuntu 12.10 (Quantal Quetzal)で動かす。
JACKの導入
JACK Audio Connection Kit経由で音声を出力する。なぜか自分の環境ではjackd2が動かなかったので、jackd1を導入する。
sudo aptitude install jackd1
PulseAudioとの共存
Ubuntu標準のサウンドサーバーはPulseAudioで、普通のアプリケーションはPulseAudio経由で音声を流している。JACK起動中はサウンドカードをjackdが専有してしまうので、PulseAudioを使っているアプリケーションと共存させるには少し作業が必要になる。作業についてはHow use PulseAudio and JACK? | JACKを参照のこと。
今回は、Option 3のJACK起動中はPulseAudioのデータをJACK経由で出力する方法を採用する。この方法では、ALSAの管理するサウンドカードから出力するならPulseAudio→JACK→ALSAという経路で音声が出力されることになる。
PulseAudioのmodule-jackdbus-detectというモジュールはJACKサーバーが起動すると自動的にPulseAudioとのルーティングを行なってくれるのだが、jack1では使えないので、ハックすることにする。
次のスクリプトをconnect_pulse_jackというファイル名で保存してパスを通しておく。
#!/bin/sh src=$(pactl load-module module-jack-source) snk=$(pactl load-module module-jack-sink) trap "pactl unload-module $src ; pactl unload-module $snk ; exit" 1 2 3 15 while true ; do sleep 1d done
QjackCtlのSetupウィンドウOptionsタブで、実行するスクリプトを次のように設定する
Execute script on Startup: pasuspender -- sleep 1 & Execute script after Startup: connect_pulse_jack & Execute script on Shutdown: killall connect_pulse_jack Execute script after Shutdown: killall jackd
(pasuspenderで1秒だけPulseAudioを止めているあたり汚いハックだと思う)
また、MiscタブのEnable D-Bus interfaceのチェックボックスをオフにしておく。これを行わないとjackdが起動しなかった。
JACK起動後は、サウンド設定からサウンドの出力先をJack sinkに切り替えておく。
PureDataの動作確認
QjackCtlでJACKサーバーを起動した後、PureDataを起動する。
Mediaメニューからjackを選択するとウィンドウが出てくるので、そのままOKを選択する。
その後、MediaメニューからTest Audio and MIDI...を選択する。
TEST TONESの左側のラジオボックスをいじって、音が出るか確認する。マイクが接続してあるなら、monitor-inputsのチェックボックスをオンにすることで、マイクからの入力が出力される。
Gemを使う
Gemを使ってみる。importオブジェクトでGemライブラリを読み込むことができる。
追記: PPAからpd-extendedを導入する
pd-extendedは最初から各種ライブラリがセットになっているPureDataディストリビューション。PPAがあるので、そこからインストールできる。Ubuntu標準リポジトリのPureDataと同時にインストールしても大丈夫。UIも日本語になる。
sudo apt-add-repository ppa:eighthave/pd-extended sudo aptitude update sudo aptitude install pd-extended