home page of GridFlow. A Multidimensional dataflow processing library for PureData, designed for interactive multimedia. 現行バージョンは 0.9.3.バイナリが提供されていないので,ソースからビルドしなければならない.ここでは Pd-extended.0.40.3-rc1 に突っ込んでみる.
前準備: ソースの取得,ビルド環境の構築
- インストールには Pd のヘッダ・ファイル (m_pd.h) と Gem のソースが必要になる.ソースがなけりゃ Pd-extended に入ってる Gem のバージョンを確かめて取得しておく[Pd-extended.0.40.3-rc1 では Gem は 0.91.0 ’tigital’ が使われている.最新版は 0.91.1.].もちろん GridFlow 自体のソースも忘れずに (笑).
- ソースの展開先の doc/install.html を佳く読む (笑).オンラインでは GridFlow 0.9.3 - Installation.
- その Installation instructions (incl. compilation) によると, ruby は 1.8.2 がデフォルトで入ってるからエエとしても,他に lib* が 7 個ぐらい必要らしい (libjpeg libjpeg-shlibs libpng-shlibs libpng3 libpng3-shlibs libmpeg libmpeg-shlibs).面倒くさいので仰せのとおり Fink を使うことにする. XCode (2.4.1) と X11 のユーザ・パッケージ (1.1.3) はインストース済み.						- Fink を落としてインストール. Fink - Download Quick Start
- 前述 Fink のドキュメントで指示されている scanpackagesとindex更新が済んだら, FinkCommander のリストから必要ライブラリ (libjpeg libjpeg-shlibs libpng-shlibs libpng3 libpng3-shlibs libmpeg libmpeg-shlibs) を選択して,メニューから Source->Install でソースからインストールする.依存関係があるものはちゃんと処理してくれるので七回やる必要はない (笑).
 
ビルドとインストール
- GridFlow のソース展開先ルートに Pd のヘッダ m_pd.h をコピー.Mac 用の Pd-*.app だとパッケージ内にある. extended なら Contents/Resources/include/, pd-vanillae ならContents/Resources/src/.
- GridFlow のソース展開先ルートで ./configure --gem-include gem の展開先のソース・ディレクトリ・トップ (ex. gem-0.91.0/src)を実行する. JPEG Library, PNG Library <libpng12/png.h>, PureData (or DesireData), PureData GEM (source code) with m_holdname が found になってるのを確認.
- makeする. warning がぽこぽこ出るうちに, gridflow.c.fcs でエラー orz.
 ソース (gridflow.c.fcs) の該当箇所.- gridflow.c.fcs:133: error: expected unqualified-id before '{' token- //----------------------------------------------------------------// Dimvoid Dim::check() { // <- here if (n>MAX_DIM) RAISE("too many dimensions"); for (int i=0; i<n; i++) if (v[i]<0) RAISE("Dim: negative dimension");}
- ↑意味判んね.とりあえず make を通すために以下のように変更. gridflow.c / (gridflow.c.fcs) の Dim::check() メソッド全体をヘッダ (gridflow.h / gridflow.h.fcs) へ移して,元の方はコメント・アウト.						
 なぜかコレで通る.謎.struct Dim : CObject {...// void check(); // test invariants void check() { if (n>Dim::MAX_DIM) RAISE("too many dimensions"); for (int i=0; i<n; i++) if (v[i]<0) RAISE("Dim: negative dimension"); }...
- ちゃんと終わると, gridflow.pd_darwinという 10MB ほどのライブラリ・ファイルが生成される.
- make install でインストールの仕方が表示されるので,手動で組込む (笑).ディレクトリを丸ごとアプリのパッケージ内の Contents/Resoures/extra/に突っ込む.ここではバージョン番号を削ってgridflowというディレクトリ名にしている.
- パッケージ内の Contents/org.puredata.pd.default.plistを変更する.純正の Developer Tools である Property List Editor が楽.- Property List の loadlib\d\d を追加する. class は String, Value は gridflow.
- Property List の nloadlib の Value を +1 する.
 
- 起動時にメッセージが出れば,無事にインストール完了.						
 インストールした先の examples ディレクトリ (GridFlow 0.9.3, Copyright (c) 2001-2008 Mathieu BouchardGridFlow was compiled on Jun 12 2008, 18:11:08 Contents/Resources/extra/gridflow/examples/) にある例題を動かして遊ぶ.動かないのもけっこうある orz. [#camera] オブジェクトなどは,当然ながら入力がないと動かない.お手軽に試すなら, iSight カメラを搭載した MacBook 等で動かすべし.
例題集の実行例
しっかし,負荷が掛かるな〜 (笑).↓ ps の出力から抜き出し.
PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND18586 0.7 1.0 146796 11532 ?? S 10:12AM 0:06.08 Pd-extended.0.40.3... -psn_0_2136473718587 13.1 1.0 189916 12304 ?? S 10:12AM 0:52.59 Pd-extended.0.40.3... -guiport 560218736 0.0 1.8 135924 20660 ?? S 10:12AM 0:07.72 Pd-0.41-4... -psn_0_2175795318737 12.9 0.7 37716 8240 ?? S 10:12AM 0:43.54 Pd-0.41-4... -guiport 5602
*.app/Contents/MacOS/Pd -psn_... と *.app/Contents/Resources/Scripts/../bin/pd -guiport 5602.
; echo '/'; echo get_settings('upload_path'); ?>/2008/06/gridflow_installed_s.png)
; echo '/'; echo get_settings('upload_path'); ?>/2008/06/gridflow_blob_s.png)
; echo '/'; echo get_settings('upload_path'); ?>/2008/06/gridflow_feedback_fractal_s.png)
; echo '/'; echo get_settings('upload_path'); ?>/2008/06/gridflow_polygon_s.png)
; echo '/'; echo get_settings('upload_path'); ?>/2008/06/gridflow_photo_pianoroll_s.png)
 
 
0 件のコメント:
コメントを投稿