Pure Data
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Pure Data(Pd)は1990年代に Miller Puckette が開発したデスクトップミュージックとマルチメディア作成用のビジュアルプログラミング言語である。Puckette が主に開発したが、Pd はオープンソースプロジェクトであり、多数の開発者が参加している。BSD License に似たライセンス条件でリリースされている。
目次 |
[編集] 概要
Pd はその対象領域も設計も Puckette が以前(IRCAM在籍時)に開発した Max に似ており、Max の商用の後継である Max/MSP とある程度相互運用が可能である。Pd も Max も典型的なデータフロープログラミング言語である。グラフィカルな環境で関数や「オブジェクト」が相互にリンクされ、制御フローや音響の流れを表す。Pd では音声処理などもホストCPU上で行われる。これは、Max/FTS においてDSPボード(Ariel ISPW)に信号処理や合成を任せていたのと対照的である。Pd のコードは David Zicarelli による Max の MSP 拡張(ソフトウェア音声処理)のベースとなった。
Max と同様、Pd はソフトウェアで部品として利用できるモジュールコードベース(外部および内部)を備えている。拡張可能なAPIを備え、C言語で書かれた部品を流用したり、他の外部部品を活用することでPython、Ruby、Schemeなどの言語で書かれたモジュールも活用できる。ただし、Pd 自身もプログラミング言語である。Pd で書かれた流用可能なコードは「パッチ」または「アブストラクション」と呼ばれ、フリーなプログラムとして流通している。また、他のプログラミング言語の知識が無くとも Pd の利用には何の問題もない。
外部リンクの節には Pure Data の様々な外部モジュールがリストアップされている。GEM(Graphical Environment for MultiMedia)は他の外部モジュール(Pure Data Packet、PiDiPi、Framestein、GridFlow)のベースとなっていると同時に、OpenGL画像や動画のリアルタイム操作を可能としている。
また、Pd はネットワークやインターネット上での共同作業が可能であり、リアルタイムで遠隔にいる人々が共同で音楽を作成するといった利用が可能である。
[編集] 言語機能
Pd はデジタル信号処理ソフトウェアとして、44100 サンプル毎秒のサンプリング周波数と64サンプル毎に1ブロックの制御レートを実現している。制御メッセージや音声信号は一般に画面の上から下に繋がっているオブジェクト間を流れていく。
Pd は、メッセージ、オブジェクト、アトム、コメントという4種類の基本テキストをサポートする。アトムは Pd における基本データ単位であり、浮動小数点数か記号か他のデータ構造へのポインタのいずれかである。なお、Pd では全ての数値は 32ビットの浮動小数点数である。メッセージは1つ以上のアトムから構成され、オブジェクトへの命令として働く。中身のない特別なメッセージを bang と呼び、データの流れを開始させるスタートボタンのような役目を持っている。
Pd の基本オブジェクトは、算術演算、論理演算、ビット演算といった通常のプログラミング言語にある演算子のようなものから、波形発信器や高速フーリエ変換や各種デジタルフィルタなどの音声処理DSP機能に特化したもの(チルダ(~)が付いていて区別される)まである。入力データは、ファイルから読み込んだり、FireWire、USB、ネットワークなどから OpenSound Control(OSC)経由で何らかのオーディオボードやMIDIを読み込んだり、その場で生成したりする。結果をテーブルに保持して、それを新たな入力に使用することもできる。
[編集] データ構造
Pd の特筆すべき機能はデータ構造を視覚的に表現できることである。これには様々な応用が考えられ、作曲やイベントの順序付けから、視覚的な作品を作ったり、Pd 自体のGUIを拡張したりできる。
Pure Data(純粋なデータ)の名の通り、Pd のデータ構造は音楽データを静止画としても動画としても表現できる。C言語の構造体のように Pd のデータ構造は様々なデータで構成でき、データ構造の視覚化をデータ構造でパラメータ指定することで制御したり、Pd のパッチ内でのメッセージや音声信号を制御したりできる。Puckette は以下のように記している。
- Pd はデータ構造とそのグラフィカルな外観を記述するために全く構造化されていない環境を提供するよう設計されている。根底にある考え方は、ユーザーが任意のデータを任意の見せ方で表示できるようにすることである。このため、Pd では C言語などとは全く異なる、データに形や色を与える視覚的なデータ構造を導入し、ユーザーがデータを視覚的に編集できるようにした。データは内部で編集することも、ファイルから読み込むことも、アルゴリズムによって生成することも、入力音声やデータを解析することで作成することもできる。
- — Miller Puckette、Pd Documentation Chapter 2 — 2.9. Data structures
[編集] 関連項目
[編集] 参考文献
- Danks, M. (1996). The graphics environment for max. In: Proceedings of the International Computer Music Conference, pp. 67-70. International Computer Music Association.
- Danks, M. (1997). Real-time image and video processing in Gem. In: Proceedings of the International Computer Music Conference, pp. 220-223. International Computer Music Association.
- Puckette, M. S. (1997). Pure data. In: Proceedings of the International Computer Music Conference, pp. 224-227. International Computer Music Association.
- Puckette, M. S. (2004?-). The Theory and Technique of Electronic Music. オンライン版はこちら
[編集] 外部リンク
- Software by Miller Puckette — Pd の最新版、文書、ソースコード
- Pure Data Oss4Art(日本語)
- PureDataLab(日本語)
- pddoc(日本語)
- Pure Data Portal
- PD Webring
- Pd forum
- rradical pd by Frank Barknecht
- RTC-lib — Karlheinz Essl の Pd 用 Real Time Composition Library
- Pure Data External Repository
- GEM — Graphics Environment for Multimedia(Pd 用プラグイン)
- netpd Pd-ベースのネットワーク接続リアルタイム共同作業環境
- GridFlow
- Pure Data Packet
- PiDiP Is Definitely In Pieces
- Framestein — Pure Data を使った静止画/動画処理ソフトウェア
- pure:dyne — Pure Data 環境を含む GNU/Linux liveCD
- Obiwannabes tutorials — Pure Data による音響設計のチュートリアル

