2013年11月27日水曜日

Pdのdata structures

プログラミング言語としてPdを理解するにあたり,上級編…というかある種の真髄みたいなものを感じられると目されている概念が「data structures」です.
弄りはじめたばっかりなので全くさっぱり使いこなせてないですが,とりあえず現状での自分の理解をメモしときます.


Pdはパーツとパーツを線で繋いでアルゴリズムを組めますが,そのようなデータフロー的な処理だけでは,Object-oriented的な意味での「ダイナミックさ」みたいなものに欠けるとも言えます.
例えばデータフロー処理では,音を鳴らした時に「音を鳴らすよ〜」というメッセージを起点にして処理が進んでいくものの,音楽を構成する「音」一つ一つの機能やパラメータを抽象化する概念がそこには足りない,ということです.

そこでPdでは,data structuresという構造体に似た概念が導入されています.
コードの実行時にコード自身によってダイナミックに生成できるインスタンスは,このdata structuresに集約されていると思います.



data structuresのインスタンス(scalar)はメッセージに組み込めるだけでなく視覚的に表現することもできるんですが,そのデータは用途を選びません.あるdata structureを作ったとして,それで音の強さを表現してもいいし音程を表現してもよく,図形の形を表現してもよければ色を記述してもいい.っていうかGUIを書いてもいい.外部のモータか何かを制御するPWM信号のデューティでもいい.データは何らかの形式に縛られるのではなく,純粋にデータ(Pure data)ということなんですね.

Pdが生成したデータを再生したものと,それを「楽譜化」したものが紹介されています.
solitude
パッチ(Pdのプロジェクトファイル)そのものに作品としての格(オブジェクティブ)が与えられるので,本質的には,アルゴリズムの芸術性をシステム的に表現出来る可能性すら持っているとも言えるのかもしれません.

これが,Miller PucketteがMaxの後継ソフトを開発するにあたって入れこんだ哲学の一つで,Maxとの仕様の違いとしても各所に現れています.インターフェースが原始的で明らかに不十分さを感じることが多々ある一方,機能にツギハギっぽさを感じる局面があまりないのも,こういったコンセプトの恩恵なのかも?

しかしPucketteさん,やってることの次元が高すぎて誰もついて来てなくないかw
この哲学でいくとGEM(ないしJitter)すらも邪道ということになってしまう.

0 件のコメント :

コメントを投稿