Twitter

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)を実行した手順です。(インターネット接続は必須)

  1. Helpメニュー – Find externals を選択する(dekenの機能)。
  2. 検索ボックスに、追加したいライブラリ名を入力して、[search]ボタンをクリックする。
  3. 「(Darwin-i386-32)」の表記が含まれている検索結果(sourceではなく圧縮してあるもの)をクリックする。(半透明の候補は他のOS対応)
  4. externalのインストール先を指定するダイアログボックスが表示されるので、そのまま[Choose]ボタンをクリック。
  5. インストールが終わるまで待ってから、いったんPdだけを再起動する。
  6. これでzexyやcycloneといったライブラリが使えるようになる。

スクリーンショット 2016-05-17 0.04.46

スクリーンショット 2016-05-17 0.06.52

※私の環境(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のオブジェクトが認識されないのです。

スクリーンショット 2016-05-17 10.57.25

これを解決する手順は以下の通りとなります。

  1. Helpメニュー – Find externals を選択し、dekenで「libdir」を検索してインストールする。これはPd-extendedのContentsの中にあった「lib」フォルダ以下の「〜.dylib」群の代わりとして機能するもので、Gemにはこのlibdirが必要。
  2. dekenを使ってGemをダウンロード&インストールする。
  3. Gemの開発元からGem 0.93.3をダウンロードして解凍する。これの最終更新の日付は2011年で、dekenでインストールするGemの方が更新の日付が2015年12月15日と新しいが、このdeken経由のGemライブラリはPd vanilla 0.47.0では動かないので注意。(私はここでハマった)
  4. 解凍したGem 0.93.3のフォルダ内のGem、pix_drum、pix_fiducialtrack、pix_manoのフォルダ群を、dekenが指定したインストール先のフォルダ(~/Users/xxx/ライブラリ/Pd/ または~/Application/Pd-0.47.0/Contents/Resources/extra/)にコピーする。
  5. pdメニュー – Preferences – Startupを選択。ここでPdの起動と共にloadするライブラリを設定する。
  6. 設定画面のstartup flags:に「-lib libdir」を入力する。
  7. Newボタンをクリックし、ダイアログボックスに「libdir」を入力して[ok]ボタンをクリック。
  8. 同様にNewボタンをクリックし、ダイアログボックスに「Gem」を入力して[ok]ボタンをクリック。pmpdも設定する。上からのloadされる順番が重要で、Gemが一番上でlibdirは下になること(ドラッグして入れ替えが可能)。
  9. Pdを再起動すると、Gemがloadされ 使えるようになる。

スクリーンショット 2016-05-17 0.26.39

スクリーンショット 2016-05-21 2.35.10

 

スクリーンショット 2016-05-17 0.55.27

※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が自動的に設定されるのは正常な動作です。

スクリーンショット 2016-05-16 23.21.11

2016-05-20_17_24_36

pmpdをロードするには

※2016.5.21追記

pmpd(physical modeling for pd)はGemと一緒に使う物理演算のライブラリです。ロードする手順を記しておきます。

  1. dekenでpmpdをインストールする。
  2. Preferences – Startupにpmpdを設定する。pmpdの位置はlibdirの下。(これがlibdirよりも上になるとロードの順番が変わるらしく、Gemとpmpdの複製エラーが出る)
  3. Pdを再起動すれば、Gemとpmpdが使える。

スクリーンショット 2016-05-21 13.22.27

これで安心してPd vanillaに移行できそうですね。

なお、Pd vanillaは進化中なので将来的にはGemも他のexternalと同じように簡単に導入できるようになるかもしれませんね。

※進化しました!あとはDuplicateのWarningだけです。

3 Trackbacks