Pure data

Aus indiepedia.de
Wechseln zu: Navigation, Suche

Pure data ist eine objektbasierte Programmiersprache des Programmparadigmas Datenfluss, die von Miller Puckette in den 90er Jahren als Open Source Version von Max, der ersten Version des später kommerziellen Max/MSP von cycling 74, entwickelt wurde und sich besonders unter Musikern, die sich mit digitaler Klangsynthese beschäftigen, einer hohen Beliebtheit erfreut. Pure data verfügt über eine vielfältige Entwickler- und Anwendergemeinde, die sich über Foren und Mailinglists austauscht.

Pd (aka Pure Data) is a real-time graphical programming environment for audio, video, and graphical processing. It is the third major branch of the family of patcher programming languages known as Max (Max/FTS, ISPW Max, Max/MSP, jMax, etc.) originally developed by Miller Puckette and company at IRCAM. The core of Pd is written and maintained by Miller Puckette and includes the work of many developers, making the whole package very much a community effort.[1]

Objektbasiert

Textbasierte Programmiersprachen sind so angelegt, dass jede Anweisung in der kompletten Syntax (als Skript) ausgeschrieben und dann ausprobiert wird. Als Beispiel ein Auszug aus der textbasierten Musik-Programmiersprache SuperCollider. Ein solcher Befehl wird vom DSP ausgeführt, sobald ein Startimpuls gegeben wird. Auch ein Programm, bei dem die Skripte nicht ausgeschrieben werden müssen (wie Pure data), unterstützt auf diese Weise zum Beispiel hauptsächlich den Hauptprozessor / die CPU mit Routinen, die in vielen Programmiersprachen gültig sind. Eine weitreichende Vereinfachung im Rahmen des objektorientierten Programmierens ist das objektbasierte Programmieren, bei dem die Skripte grafisch in Form von einfachen benannten Kästchen mit Linien umgesetzt und wie bei einer Verkabelung analoger Instrumente miteinander verpatcht werden.

Ein Objekt ist also nicht viel mehr als eine leere Box, in die ein Wort oder ein Buchstabe (Symbol) geschrieben wird, das dann stellvertretend für das auszuführende Skript steht. Eine solche Box verfügt zumeist über mindestens ein in und ein out zum verpatchen. Auf die jeweiligen Bedeutungen der Symbole für die Objekte verweisen die einschlägigen Publikationen, sie werden mit der Zeit als Konventionen sukzessiv festgelegt. So führt eine Box, in der das Wort tabread plus der Name einer Tabelle steht, bei Pure data dazu, dass eine entsprechende Tabelle (zum Beispiel ein 16 Schritte langer Melodieverlauf, bei dem die Tonhöhen in den Intervallabständen 1-12 aufgeführt sind) ausgelesen wird. Dieses Objekt kann dann mit einem bang verkabelt werden usw.. Ein fertiges Patch ist ein funktionierender Objektzusammenhang bzw. ein Programm.[2] Diese Art der Programmierung wird auch visuelles oder grafisches Programmieren genannt.

Echtzeit

Echtzeit bedeutet, dass insbesondere die Änderungen der Nummernwerte vom Digitalen Signalprozessor auf der Festplatte sofort umgesetzt werden. Es muss also nicht erst das gesamte Patch umgestaltet werden, bevor Ergebnisse zu hören sind. Die Programmierung wird auf diese Weise wesentlich intuitiver. Der Datentransport läuft kontinuierlich, der Sound ist durchweg hörbar, sobald ein Patch verkabelt wird und der DSP im Aufklappmenü Media auf „audio an“ geschaltet ist. Um den Ton auszuschalten, muss eine „Stop“ - Anweisung integriert und betätigt werden.

Programmstruktur

Insgesamt verfügt Pure data in der aktuell stabilsten Version 0.42 („Vanilla“, 2009) über 16 unterschiedliche Kästchen oder Boxen, die im Menüpunkt Put gewählt und aufs Patchfeld gezogen werden können. Die wichtigsten sind die einfachsten Kategorien. Als leere Felder auf einem ansonsten leeren Dokument sind sie durch Umrissvariationen gekennzeichnet, eine Toolbar ist im Basispaket nicht angelegt:

  • Objekte, die die jeweiligen Funktionen vorstellen, indem sie benannt werden,
  • Messages, mit denen Anweisungen gegeben werden, durch die die Funktionsweise der Objekte gesteuert wird,
  • Numbers, Felder, in denen Tonhöhen, Frequenzen usw. angegeben werden (können),
  • Symbols, die bestimmte Strings, also Argumentationsketten beherbergen und
  • Comments, mit denen Kommentare zu den einzelnen Funktionsweisen dazugeschrieben werden können.

Spezifischer sind die ebenfalls im Put - Menüpunkt angelegten GUIs oder Grafischen Benutzeroberflächen. Sie vertreten jeweils Namen, die als Symbole angelegt sind, sind alternativ verwendbar und hinzugekommen, um die Programmierung zu beschleunigen:

  • Bang = ein Impulsgeber (Trigger), ein quadratisches Kästchen, das stellvertretend für das Kürzel bang (in einem Messagefeld) steht,
  • Toggle = An / Aus Schalter (Kipp- oder Umschalter),
  • Number2 = eine Nummernbox, in der die Werte auch grafisch komplex (mit Farben usw.) dargestellt werden können,
  • VSlider = ein vertikaler Fader von 0 - 127, der gewöhnlich für die Tonhöhenregulation verwendet wird,
  • HSlider = ein horizontaler Fader 0 -127 für denselben Zweck,
  • VRadio = ein Schaltfeld mit bis zu acht Positionen oder Stufen (0 - 7), mit der gewöhnlich die Lautstärke eingestellt wird.
  • HRadio = dasselbe horizontal,
  • VU Meter = ein buntes Master-Levelmeter für den Output,
  • Canvas = ein farbig gestaltetes Feld, in dem bestimmte Objektzusammenhänge als zusammengehörig markiert werden können.
  • Graph = ein Container, der einen Zusammenhang von Arrays beherbergen soll und verpatchte Arrays erlaubt,
  • Array = ein benanntes Feld, in dem Amplituden und Samples grafisch dargestellt werden.

Einfache Patches sind mit dem üblichen copy und paste oft schnell zu erstellen.

Möglichkeiten

Das Programm wird für Audiodesign, Liveperformances, Live-Coding, die Steuerung aller möglichen Soft- und Hardware (auch die Bedienung und Fernbedienung von Motoren), Videobearbeitung, 3D GEM, Open GL Grafikmanipulationen und weiteres verwendet und bietet eine nahezu endlose Palette an Einsatzmöglichkeiten. So aufgrund des modularen Aufbaus auch interaktiv bei der Kommunikation zwischen Computern in Netzwerken. Es soll Echtzeitkollaborationen auch im Bereich der Musik trotz großer Distanzen über das Internet ermöglichen:

Pd is natively designed to enable live collaboration across networks or the Internet, allowing musicians connected via LAN or even in disparate parts of the globe to create music together in real time.[3]

Die Möglichkeiten für Steuerung sind deutlich im Vorteil gegenüber den Möglichkeiten zum Beispiel für ein qualitativ hochwertiges Sounddesign, das dementsprechend schwerer zu gestalten ist. Die Filegröße des Downloads beträgt etwa 70 MB. Als Freeware eignet sich Pure data besonders auch für Max/MSP-Interessierte oder -Einsteiger. Daten können über USB, Firewire oder Netzwerkapplikationen eingelesen, manipuliert und gespeichert werden.

Systemvoraussetzungen

GNU/Linux, Macintosh OSX, iOS, Android oder Microsoft Windows.

Siehe auch

Literatur

  • Puckette, Miller: The Theory and Technique of Electronic Music, ISBN 981-270077-3 Online Version / ausführliche Beschreibung der Funktionsweisen (nicht für Einsteiger)
  • Zimmer, Fränk: Bang: Pure Data Wolke Verlag, Hofheim 2006, ISBN 3-936000-37-9
  • Kreidler, Johannes: 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 Code examples
  • Brinkmann, Peter: Making Musical Apps – Real-time audio synthesis on Android and iOS 2012, ISBN 978-1-4493-1490-3 (e-Book ISBN 978-1-4493-1489-7 )
  • Barkl, Michael: Composition: Pure Data as a Meta-Compositional Instrument, ISBN 3838316479
  • Sei Matsumura: Pd Recipe Book ― Pure Data ではじめるサウンドプログラミング, ISBN 978-4-86100-780-4 (Literaturliste kopiert aus de.wiki)

Einzelnachweise

  1. Pure Data Startseite [1]
  2. Einfaches [2] und komplexes [3] Pure data Patch.
  3. Artikel Pure data [4] bei en.wiki

Weblinks

  • Homepage [5] bei puredata.org
  • pd-graz – bang  Pure Data (2006) [6] das bang book bei pd-graz.mur.at
  • Dave Poulter – Algorhitmic Composition in Pure Data [7] Pure data – Komposition mit Video-Patchtutorial bei Youtube
  • Beispiel für eine Grafische Musiknotation, Hans-Christoph SteinerSolitude (2006) [8] Jpg bei en.wiki
  • Dieter Trüstedt – Elektronische Musik / Computermusik [9] bei luise37.de (scroll)

Print Tutorials / Manuals

  • Johannes Kreidler – Programmierung Elektronischer Musik in Pd [10] Online-Handbuch bei pd-tutorial.com, rev. 27. Januar, 2009

Video Tutorials

  • [11] Patchtutorial Simply Sample, Rekonstruktion eines einfachen Pd-Samplers bei Youtube
  • [12] Patchtutorial für einen Sequencer in zwei Teilen bei Youtube, es empfiehlt sich für einen Beginn mit Pure data solche Patchtutorials Schritt für Schritt nachzubauen.
  • [13] Achtteilige Playlist Pure data bei Youtube
  • [14] Pd live coding/patching bei Youtube

Links im Juli 2017.