- 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. Die Patches werden in einer graphischen Benutzeroberfläche erstellt und sehen Datenflussdiagrammen sehr ähnlich.
Objekte
Beim Anlegen eines Patches greift man auf die in Pd vorhandenen und vordefinierten Objekttypen zurück. Dies geschieht, in dem man ein neues Objekt erstellt und diesem den entsprechenden Namen gibt. Grundsätzlich lassen sich die Objekttypen in drei Gruppen einteilen:
- Quellen
- wie etwa Mikrofon, Kamera, Netzwerk, Sinus-Generator
- Knoten
- die Datenströme manipulieren, beispielsweise Invertieren, die Addition von mehreren Datenströmen oder andere mathematische Operationen wie z. B. eine Verzerrung durch Wurzelziehen der Lautstärkewerte
- Senken
- die sind Ausgabegeräte wie Lautsprecher und Bildschirm.
Datenstrom
Die Ein- und Ausgänge der Objekte werden mit der Maus durch gezeichnete Linien verbunden, die den Weg angeben, 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) Gleitkomma-Darstellung, die verwendete Abtastrate ist frei wählbar, der Defaultwert ist 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 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. Weitere Conventions fanden 2007 in Montreal, 2009 in São Paulo und 2011 in Weimar/Berlin statt.
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
- Graphics Environment for Multimedia (GEM) Es wird vor allem im Bereich 3D verwendet.
- GridFlow Rasterorientierte Video Processing Bibliothek.
- PiDiP/PDP 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
- Puckette, Miller: The Theory and Technique of Electronic Music ISBN 981-270077-3 Online Version
- Zimmer, Fränk: 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 978-3-936000-57-3 Online Version
- Farnell, Andy: Designing Sound ISBN 0-262-01441-6 obiwannabe.co.uk Code examples
Weblinks
Commons: Pure Data – Sammlung von Bildern, Videos und AudiodateienKategorien:- Programmiersprache
- Freies Programmierwerkzeug
- Computerkunst
Wikimedia Foundation.