- Pure data
-
Pure Data (Abkürzung: Pd) ist eine datenstromorientierte Programmiersprache und Entwicklungsumgebung, die visuelle Programmierung benutzt. Sie wird vor allem zur Erstellung von interaktiver Multimedia-Software eingesetzt, etwa für Software-Synthesizer in der elektronischen Musik.
Inhaltsverzeichnis
Programmstruktur
Ein Programm wird in Pd als Patch bezeichnet und besteht aus Objekten und den Datenströmen zwischen ihnen. Das Erstellen eines Patches erfolgt durch eine graphische Benutzeroberfläche, die es erlaubt, ein Datenflussdiagramm zu erstellen.
Objekte
Bei der Erstellung eines Patches greift man auf die in Pd vorhandenen und vordefinierten Objekt-Typen zurück. Dies geschieht, in dem man ein neues Objekt erstellt und diesem den entsprechenden Namen gibt.
- Quellen: Mikrofon, Kamera, Netzwerk, Sinus-Generator
- Knoten: Knoten werden dazu verwendet, Datenströme zu manipulieren; z. B.: Invertieren, Addition von mehreren Datenströmen, oder auch Mathematische Operationen wie z. B. eine Verzerrung durch Wurzelziehen in Bezug auf die Lautstärke.
- Senken: Ausgabegeräte: Lautsprecher, Bildschirm
Datenstrom
Die Ein- und Ausgänge der Objekte werden verbunden, um den Weg anzugeben, den der Datenstrom geht.
Messages
Messages sind Befehle bzw. Botschaften, die an ein Pure-Data-Objekt gesendet werden und eine Änderung der Art der Signal- bzw. Datenverarbeitung in diesem bewirken. Die Message count down, die an ein Zähler-Objekt gesendet wird, könnte dieses beispielsweise zu einer Umkehr der Zählrichtung veranlassen.
Abstraktionen
Es gibt in Pd die Möglichkeit, einen ganzen Patch als Objekt innerhalb eines anderen Patches zu verwenden: Jede Patch-Datei, die Pd in seinem Suchpfad auffinden kann, ist automatisch auch als Objekt verfügbar. Im Pd-Jargon heißen solche Patches auch Abstraktionen („abstractions“). Sie entsprechen grob den Funktionen in textbasierten Sprachen wie C oder Python und können wie diese durch die Übergabe von Argumenten unterschiedlich initialisiert werden. Änderungen an der originalen Abstraktions-Datei werden automatisch an alle Vorkommen des Objekts weitergegeben.
Subpatches
Im Unterschied zu Abstraktionen werden Subpatches als Teil ihres Elternpatches gespeichert. Subpatches dienen im allgemeinen dazu, die Objekte eines Patches sinnvoll zu gruppieren und den begrenzten Bildschirmplatz effektiv zu nutzen. Subpatches können außerdem durch Nachrichten modifiziert werden und spielen eine wichtige Rolle bei der Arbeit mit „Data Structures“ in Pd.
Array
Die Daten in einem Array werden als Graph dargestellt, können durch das Verändern des Graphen manipuliert werden und durch andere Objekte ausgelesen werden.
Verarbeitung von Audiosignalen
Die meisten Operationen sind nicht nur auf einem Strom von Zahlen, sondern auch auf Audiosignalen möglich. Deren Verarbeitung erfolgt innerhalb von Pure Data in (üblicherweise 32 bit breiter) Floating-Point- beziehungsweise Gleitkomma-Darstellung, die verwendete Abtastrate ist frei wählbar, standardmäßig 44.100 Hz. Wie bei Max/MSP tragen die Objekte für Audiosignale per Übereinkunft den gleichen Namen wie für Operationen auf Zahlen, nur mit einer angehängten Tilde ~.
Geschichte
Pure Data wurde in den 1990er von Miller Puckette entwickelt, um damit interaktive Computermusik zu erzeugen. In seinem Umfang und seinen Zielen ist Pure Data dem ursprünglichen Max sehr ähnlich, das ebenfalls von Puckette entwickelt wurde und der Vorgänger des kommerziellen Max/MSP ist. Im Gegensatz zu Max/MSP handelt es sich bei Pd um freie Open-Source-Software. Pd besitzt eine aktive Entwicklergemeinschaft. Diese traf sich im Herbst 2004 zur ersten internationalen pd~convention in Graz, auf der Workshops, Performances und Vorträgen für Entwickler und Anwender angeboten wurden.
Erweiterungen
Das Standard-Paket von Pd enthält nur die notwendigen Objekte für das Bearbeiten von seriellen Zahlenströmen (z. B. MIDI-Daten) und Audiosignalen, es gibt jedoch zahlreiche Erweiterungen (Plugins, Bibliotheken), z. B. für Videodaten (PDP (Pure Data Packet), PiDiP (PiDiP Is Definitely In Pieces)), Grafikdaten (Gem (Graphics Environment for Multimedia)), etc.
Erweiterungen können sowohl in Pd selbst als auch in einer allgemeinen höheren Programmiersprache wie z. B. C, C++, Python, Ruby geschrieben sein. Die für Echtzeitverarbeitung von Audiosignalen entwickelte Programmiersprache Faust bietet neben anderen Plugin-Formaten auch das Erstellen von Pd-Erweiterungen an.
Grafikbibliotheken für Pd
- Graphical Environment for Multimedia (GEM) Es wird vor allem im Bereich 3D verwendet.
- PiDiP/PDP Video Processing Bibliothek
- Framestein Video Processing Bibliothek.
- GridFlow Rasterorientierte Video Processing Bibliothek.
Anwendungsgebiete
Pure Data findet zur Zeit vielfache Anwendung in Kunst, Wissenschaft und Lehre, vor allem für interaktive Multimedia-Projekte. Die Möglichkeit, über ein Netzwerk verteilt zu arbeiten und zu interagieren, ist häufig für Künstler interessant.
Literatur
- Pd-Graz (Hg.): bang. Pure Data. Wolke Verlag, Hofheim 2006, ISBN 3-936000-37-9
- Johannes Kreidler: loadbang. Programming Electronic Music in Pure Data. Wolke Verlag, Hofheim 2009, ISBN 3-936000-57-3
Weblinks
- http://puredata.info/ Community-Portal (Englisch)
- http://pd.iem.at/ Pd-Webseiten des Instituts für Elektronische Musik und Akustik IEM Graz
- http://www.crca.ucsd.edu/~msp/Pd_documentation/ englische Dokumentation von Miller S. Puckette
- http://footils.org/cms/ rradical pd – Website von Frank Barknecht
- http://www.pd-tutorial.com/ Programmierung Elektronischer Musik in Pd – Tutorial in deutscher und englischer Sprache
Wikimedia Foundation.