PureData vanillaでdekenを使ってGemを導入する
Pd-extendedは終わり?
少し以前から、Pdの拡張版のPd-extendedがpuredata.infoのダウンロードページに表示されなくなりました。
理由はPd-extendedの整備が2014年の時点でされていないため、out of dateバージョンとなったためです。
もちろんPd-extended 0.43.4はまだダウンロードできますが、Miller Pucketteが開発する本家Pure Data vanillaは開発が進み、2016年5月16日現在のバージョンはPd vanilla 0.47.0になって便利な機能が追加されています。
一方、Pd-extendedは古いインターフェイスのままで、例えばMacのOSのバージョンとマシンの環境によっては起動/動作が不安定になるという現象も発生するようです。バージョンもPd-extendedの0.43.4とPd vanilla 0.47.0ではだいぶ離れてしまったし、できるならもろもろの拡張ライブラリと共にPd vanillaを使えるようになりたいというのは自然な流れです。
dekenとは?
しかし、ライブラリをPd vanillaに導入するためには、(ライブラリによっては)ソースコードからコンパイルをしなければならず、管理も大変です。
そこで登場したのがdeken。
dekenはPdのライブラリ(externals)を、Pd vanillaに選択的に追加して管理できる、プラグインプログラムです(tclを使います)。元々は別途にダウンロードしてインストールするものでしたが、現行バージョンのPd vanilla 0.47.0からdekenが初期状態で組み込まれるようになりました。
dekenでexternalを導入する
使い方は非常に簡単です。以下はMac OSX Yosemite 10.10.5でPd vanilla 0.47.0(32bit)を実行した手順です。(インターネット接続は必須)
- Helpメニュー – Find externals を選択する(dekenの機能)。
- 検索ボックスに、追加したいライブラリ名を入力して、[search]ボタンをクリックする。
- 「(Darwin-i386-32)」の表記が含まれている検索結果(sourceではなく圧縮してあるもの)をクリックする。(半透明の候補は他のOS対応)
- externalのインストール先を指定するダイアログボックスが表示されるので、そのまま[Choose]ボタンをクリック。
- インストールが終わるまで待ってから、いったんPdだけを再起動する。
- これでzexyやcycloneといったライブラリが使えるようになる。
※私の環境(2015 mid Macbook Air)では、ライブラリのインストール先として、
~/Users/xxx/ライブラリ/Pd/
があらかじめ指定されました。別のMacbook ProのEl Capitan 10.11.1では
~/Application/Pd-0.47.0/Contents/Resources/extra/
がインストール先に指定されたので、OSの違いかと思いきや2015 late iMacのEl Cpitan 10.11.4では
~/Users/xxx/ライブラリ/Pd/
が指定されました。この差異がなぜ起こるのかは不明です。マシンの違いもあるのでしょうか?
でもGemはすんなりとはいかない
※2016.5.20 Gemの管理者のIOhannes Zmoeling氏がdekenがダウンロードするGemをオフシャル版Gemにアップデートしました。現在は、OSXで動くPd0.47.0+dekenでインストールしたGemが問題なく動くようになっています。
簡単に外部ライブラリ(external)が導入できるdekenですが、うまく動かないexternalがあります。それはGemライブラリとそれに関連するpmpdなどのexternal群です。dekenでインストールしただけでは、Gemライブラリがloadされず、Gemのオブジェクトが認識されないのです。
これを解決する手順は以下の通りとなります。
- Helpメニュー – Find externals を選択し、dekenで「libdir」を検索してインストールする。これはPd-extendedのContentsの中にあった「lib」フォルダ以下の「〜.dylib」群の代わりとして機能するもので、Gemにはこのlibdirが必要。
- dekenを使ってGemをダウンロード&インストールする。
Gemの開発元からGem 0.93.3をダウンロードして解凍する。これの最終更新の日付は2011年で、dekenでインストールするGemの方が更新の日付が2015年12月15日と新しいが、このdeken経由のGemライブラリはPd vanilla 0.47.0では動かないので注意。(私はここでハマった)解凍したGem 0.93.3のフォルダ内のGem、pix_drum、pix_fiducialtrack、pix_manoのフォルダ群を、dekenが指定したインストール先のフォルダ(~/Users/xxx/ライブラリ/Pd/ または~/Application/Pd-0.47.0/Contents/Resources/extra/)にコピーする。- pdメニュー – Preferences – Startupを選択。ここでPdの起動と共にloadするライブラリを設定する。
- 設定画面のstartup flags:に「-lib libdir」を入力する。
- Newボタンをクリックし、ダイアログボックスに「libdir」を入力して[ok]ボタンをクリック。
- 同様にNewボタンをクリックし、ダイアログボックスに「Gem」を入力して[ok]ボタンをクリック。
pmpdも設定する。上からのloadされる順番が重要で、Gemが一番上でlibdirは下になること(ドラッグして入れ替えが可能)。 - Pdを再起動すると、Gemがloadされ 使えるようになる。
※Gemライブラリは32bit対応なので、Pd vanilla 0.47.0(32bit)を使用する方が安定するようです。
※なぜかstartupに設定すると、2回ほどの再起動でGemが複製されているという警告が出ます。勝手にPreferences – Pathにも登録されてしまうのが原因みたいなのですが、Pathを削除しても再起動すると復活している謎現象発生。Gemの動作は問題なく実行されます。この解決策は現在のところ不明です。
※2016.5.21追記
Gemが複製されているエラーが消えない場合は、いったんPreferences – PathからGemを削除してから再起動してください。Preferences – StartupにGem, libdirの順番で設定されていれば、再起動後はエラーが出なくなります。
Preferences – Pathの中にGemが自動的に設定されるのは正常な動作です。
pmpdをロードするには
※2016.5.21追記
pmpd(physical modeling for pd)はGemと一緒に使う物理演算のライブラリです。ロードする手順を記しておきます。
- dekenでpmpdをインストールする。
- Preferences – Startupにpmpdを設定する。pmpdの位置はlibdirの下。(これがlibdirよりも上になるとロードの順番が変わるらしく、Gemとpmpdの複製エラーが出る)
- Pdを再起動すれば、Gemとpmpdが使える。
これで安心してPd vanillaに移行できそうですね。
なお、Pd vanillaは進化中なので将来的にはGemも他のexternalと同じように簡単に導入できるようになるかもしれませんね。
※進化しました!あとはDuplicateのWarningだけです。
ピンバック: PureDataでprependオブジェクトが作れない – KEINOSのBlog
ピンバック: PureDataでprependオブジェクトが作れない - KEINOSの日記
ピンバック: 開発が止まってしまっているPd-extendedからPureData vanillaへ移行する為に「deken」を使ったセットアップ – Creative Plus