Reine Daten
Pure Data (oder Pd) ist eine visuelle Programmiersprache , die von Miller Puckette in den 1990er Jahren für die Erstellung interaktiver Computermusik und Multimedia -Werke entwickelt wurde . Obwohl Puckette der Hauptautor der Software ist, ist Pd ein Open-Source-Projekt und verfügt über eine große Entwicklerbasis, die an neuen Erweiterungen des Programms arbeitet. Es wird unter einer Lizenz veröffentlicht, die der BSD- Lizenz ähnelt .
Pd ist Puckettes ursprünglichem Programm Max (das entwickelt wurde, als er am IRCAM war) in Umfang und Design sehr ähnlich und ist bis zu einem gewissen Grad interoperabel mit Max/MSP , dem kommerziellen Nachfolger der Max-Sprache. Sowohl Pd als auch Max sind vertretbare Beispiele für Programmiersprachen mit „Datenfluss“. Bei dieser Art von Sprache werden Funktionen oder "Objekte" in einer grafischen Umgebung, die den Steuerungs- und Audiofluss modelliert, miteinander verbunden oder "gepatcht". Im Gegensatz zur Originalversion von Max war Pd jedoch immer darauf ausgelegt, die Signalverarbeitung und Steuerraten auf der nativen CPU durchzuführen, anstatt die Signalsynthese und -verarbeitung auf ein PDS-Board (wie das Ariel ISPW, das für Max/FTS verwendet wurde) auszulagern. . Der Pd-Code ist die Grundlage für David Zicarellis MSP-Erweiterungen der Max-Sprache für die Audioverarbeitung in Software.
Wie Max hat Pd eine modulare Codebasis mit Externals oder Objekten, die als Bausteine für in Software geschriebene Programme verwendet werden. Das macht das Programm über eine öffentliche API beliebig erweiterbar und ermutigt Entwickler, eigene Audio- und Steuerroutinen hinzuzufügen, entweder in der Programmiersprache C oder mit Hilfe von Außenstehenden in Python , Javascript , Ruby und möglicherweise anderen Sprachen auch. Pd ist jedoch eine Programmiersprache für sich. Modulare und wiederverwendbare Codeeinheiten, die nativ in Pd geschrieben sind und als „Patches“ oder „Abstraktionen“ bezeichnet werden, werden als eigenständige Programme verwendet und frei von der Pd-Benutzergemeinschaft geteilt, und es sind keine weiteren Programmierkenntnisse erforderlich, um Pd zu verwenden, aber es hilft . . .
Mit der Hinzufügung der externen "Graphical Environment for Multimedia" ( GEM ) und anderer Externals, die dafür entwickelt wurden, damit zu arbeiten (wie Pure Data Packet, PiDiP für Linux , Framestein für Windows , GridFlow für die n-Matrix-Verarbeitung, die Pure Data mit integriert die Programmiersprache Ruby usw.), ist es möglich, Videos, OpenGL -Grafiken , Bilder usw. in Echtzeit zu erstellen und zu manipulieren, mit scheinbar endlosen Möglichkeiten zur Interaktion mit Audio, externen Sensoren usw.
Darüber hinaus ist Pd von Haus aus so konzipiert, dass es Live-Zusammenarbeit über Netzwerke oder das Internet ermöglicht, sodass Musiker, die über LAN oder sogar in verschiedenen Teilen der Welt verbunden sind, in Echtzeit gemeinsam Musik machen können.
Die Einheiten, in denen der Code programmiert ist, werden "Patch" oder Abstraktionen genannt, sie werden als unabhängige Programme verwendet und frei von der Gemeinschaft der Pd-Benutzer geteilt. Patches bestehen aus verschiedenen Objekten, die miteinander verbunden sind. In seinem oberen Teil finden wir die Eingänge, wo numerische Werte oder andere Arten von Daten gesendet werden, und im unteren Teil die Ausgabe dieser.
Es besteht auch die Möglichkeit, sekundäre Patches, sogenannte Subpatches, zu erstellen. Sie befinden sich im Hauptpatch. Sie werden erstellt, indem Sie in ein Objekt die Buchstaben „pd“ schreiben, gefolgt von einem Leerzeichen und dem Namen, den Sie diesem Subpatch geben möchten, wie in der Abbildung gezeigt. Ein Klick darauf öffnet das Fenster, in dem wir den Code unseres Subpatches finden.
Das Programm hat zwei Zustände, in denen sich der Benutzer befinden kann. Im Bearbeitungsmodus oder im Ausführungsmodus. Um von einem Zustand in einen anderen zu wechseln, geben Sie Strg+E ein. Wenn wir uns im Bearbeitungsmodus befinden, können wir den Inhalt der Felder oder die Verbindung zwischen ihnen ändern. Im Ausführungsmodus haben wir die Möglichkeit, den gesamten Patch zu starten und Werte während der Wiedergabe oder beim Stoppen zu ändern. Wir können Bangs senden, den Wert von Variablen innerhalb der „number“-Objekte ändern oder Sektoren des Codes mit dem [toggle]-Objekt aktivieren und deaktivieren, aktiviert, wenn es ein Kreuz hat, und deaktiviert, wenn es kein Kreuz hat.
Arten von Objekten
Objekt : Sein Verhalten hängt von dem darin eingefügten Text ab. Das Programm hat einige vordefinierte Objekte, die von Drittanbietern in verschiedenen Sprachen wie C programmiert wurden. Pd erkennt die Art des Objekts und diese Box verhält sich bereits als solche.
Zahlen : Ihre Verwendung kann vielfältig sein, von der Steuerung des Signalwerts an verschiedenen Punkten im Patch bis zur Initialisierung von Werten, die an Objekte übergeben werden, die beispielsweise die Deckkraft eines Bilds steuern.
Nachrichten : Sie werden mit Informationen versehen, die an Objekte weitergegeben werden.
Symbol : Dieses Objekt speichert ein Symbol, bis es einen [Knall] oder ein anderes Symbol erhält. Dann kommt dieses Symbol aus dem Objekt heraus, durch den Boden der Box. Diese Objekte werden in Pd nur angeboten, wenn Sie die entsprechende Bibliothek heruntergeladen und korrekt installiert haben . Sie müssen nicht in den einfachen Bibliotheken vorhanden sein, obwohl sie normalerweise in den Installationsdateien enthalten sind.
Kommentar : Wir werden es verwenden, um Klarstellungen in die verschiedenen Schritte aufzunehmen, denen unser Code folgt.
Wichtigste Objekte
Das [osc~] -Objekt erzeugt ein sinusförmiges Signal. Die Oszillationsfrequenz hängt von dem Wert ab, der in die Eingabe eingegeben wird, die das Objekt oben links hat. Wann immer wir einen Oszillator platzieren, müssen wir auch einen Multiplikator und einen Digital-Analog-Wandler (dac~) platzieren. Dies geschieht, weil der standardmäßige „osc~“ die maximale Amplitude bei 1 hat, also multiplizieren wir ihn mit 0,1, um seine Amplitude zu verringern, und senden ihn dann an den „dac~“. Das "dac~"-Objekt hat zwei Eingänge, die sich auf die beiden Ausgangskanäle der Soundkarte Ihrer Maschine beziehen.
Ein [Knall] hat die Funktion, die unmittelbar darauf folgende Aktion zu aktivieren.
Metro : Senden Sie regelmäßig eine Reihe von [bang]. Wir erstellen es, indem wir das Wort „Meter“ in ein Objekt schreiben. Dieses Objekt hat zwei Eingänge, der linke akzeptiert [Pony]. Es bringt die U-Bahn zum Laufen; Es akzeptiert auch Nachrichten mit dem Text „Haltestellen“, die den Betrieb der U-Bahn stoppen. Wir können Ihnen auch eine andere Zahl als Null senden, um es zu aktivieren. Wenn ihm eine Null gesendet wird, hört der Zähler auf zu senden [knallt]. Im Eintrag rechts führen wir die Zahl ein, die die Periodizität des Sendens von Knallen regelt, die Einheit dieses Werts ist Millisekunden. Innerhalb desselben Feldes [Meter] wird nach dem Wort Meter und gefolgt von einem Leerzeichen eine Zahl eingegeben, die das Objekt bereits als Periode versteht.
Start : Führt die Objekte des Patches aus, die es mit sich selbst verbunden hat. Wir erstellen das [start]-Objekt, indem wir das Wort „start“ in eine Nachricht schreiben.
Stop : Stoppt die Ausführung des aktuell laufenden Patches. Wir werden es erstellen, indem wir das Wort „Stopp“ in eine Nachricht eingeben.
Select : Wir agieren als Selektor nach einer anfangs gegebenen numerischen Bedingung. Wir erstellen es, indem wir das Wort „Bedingung (Leerzeichen) auswählen“ eingeben. Auf diese Weise wird, wenn der Eingangswert gleich der Bedingung ist, ein Knall durch den linken Ausgang gesendet. Wenn sie nicht übereinstimmen, wird der Knall an den richtigen Ausgang gesendet. Mehrere durch Leerzeichen getrennte gleichzeitige Bedingungen können eingegeben werden. Es werden so viele Starts wie Bedingungen und ein Finale erstellt. Wenn der Wert mit einer der Bedingungen übereinstimmt, wird der Knall von dem Ausgang gesendet, der diesem Wert entspricht. Wenn es nicht übereinstimmt, wird der [Bang] immer von der letzten Ausgabe ganz rechts gesendet.
Moses : Wir werden das Wort „moses“ in ein Objekt schreiben, um es funktionsfähig zu machen. Es enthält zwei Eingänge und zwei Ausgänge. In der linken Eingabe verbinden wir den Wert, der im Prozess ist, und rechts den Wert, den wir als Grenze fungieren möchten. Wenn der Wert des Prozesses kleiner als die Grenze ist, nimmt er den Eingabewert von der linken Ausgabe. Wenn der Wert andererseits gleich oder größer als der Wert ist, der als Grenze dient, wird die Zahl von der Ausgabe auf der rechten Seite ausgegeben. Wir könnten den [moses] mit einem simultanen Tiefpass- und Hochpassfilter vergleichen.
Mögliche Probleme und Lösungen der GNU-Installation
Um Pd in GNU zu installieren, müssen wir das mit dem Programm heruntergeladene Paket dekomprimieren und die Datei mit der Erweiterung „.deb“ ausführen. Das erste mögliche Problem, das wir finden können, ist, dass die Ubuntu Studio-Distribution bereits standardmäßig ein Pure Data installiert hat. Da empfohlen wird, die Pd_extended-Version zu verwenden (obwohl dies sehr oft variiert), müssen wir Pure Data von GNU/Linux Ubuntu deinstallieren, damit wir bei der Installation der neuen Version keine Probleme damit haben der Freigabe von Ordnern . Ein weiterer sehr häufiger und wichtiger Faktor bei der Installation von GNU-Programmen sind die möglicherweise vorhandenen sekundären Bibliotheksabhängigkeiten. Sie müssen installiert werden, damit das Programm ordnungsgemäß funktioniert. Bei Pure Data und einigen externen Bibliotheken müssen einige Abhängigkeiten mit dem Paketmanager namens Synaptic installiert werden. Dort finden wir, welche wir brauchen.
Sobald der korrekte Betrieb des Pd getestet wurde, laden wir zur Optimierung der Programmressourcen beim Start die am häufigsten verwendeten Bibliotheken, damit Sie sie nicht jedes Mal importieren müssen, wenn Sie sie verwenden möchten. Auf diese Weise werden sie automatisch geladen, wenn Sie Pd auf Ihrem Computer starten.
Linux
Schnelleinführung
Sobald wir das stabile Pd auf unserem Rechner haben, machen wir einen ersten Test des Programms, um zu überprüfen, ob die Verbindung mit unserer Soundkarte korrekt ist. Wir finden dies unter Medien> Audio und MIDI testen. Dort können wir ein Testsignal (einen Ton, rosa Rauschen, ...) erzeugen, indem wir es über unsere Lautsprecher hören und so überprüfen, ob alles richtig funktioniert.
Um die Pd-Umgebung kennenzulernen, können wir damit beginnen, Beispiele zu öffnen, die wir in den Dokumentationsdateien im Pd-Ordner finden. Es gibt Audio- und Video-Patches, die Ihnen helfen, sich mit dem Programm vertraut zu machen. Wenn wir unseren eigenen Patch erstellen möchten, gehen wir im Pd-Fenster zu File>New und das Fenster öffnet sich, wo wir unsere Objekte einführen, die wir miteinander verbinden und so unsere Anwendung erstellen.
pdp-, pidip- und opencv-Bibliotheken
Die PDP-Bibliothek ist eine Sammlung von Objekten, die zur Verarbeitung zahlreicher Daten verwendet werden. Es funktioniert unter Linux und die meisten Objekte funktionieren auch unter Mac OSX. Nach dem Herunterladen erfolgt die Installation unter Linux über das Terminal, wobei die angehängte Installationsdatei wie folgt kompiliert und ausgeführt wird:
./konfigurieren
sudo machen
sudo make install
Wenn die Daten bereits als Paket in Pd dargestellt sind, ist es möglich, damit zu beginnen, sie zu manipulieren. Die PiDiP-Bibliothek sind Videoobjekte, die die Sammlung von PDP-Objekten vervollständigen. Die Installation ist identisch mit der von PDP, vom Terminal aus führen wir die gleichen Befehle aus und sind damit einsatzbereit.
Es gibt auch eine andere Bibliothek, die sich auf den OpenCV-Videoanruf bezieht. Es ist eine offene Bibliothek, die von Intel entwickelt wurde. Diese Bibliothek bietet ein hohes Maß an Bildverarbeitungsfunktionen. Es ermöglicht dem Programmierer, Anwendungen im Bereich des digitalen Sehens zu erstellen. OpenCV ist Open Source, sodass es auf vielen Plattformen funktioniert. Diese Bibliothek ermöglicht uns grundlegende Operationen, Bildverarbeitung, Modellerkennungsanalyse, Strukturanalyse, 3D-Rekonstruktion, Kamerakalibrierung, Bewegungsanalyse, grafische Benutzeroberfläche und Erfassung usw. Es implementiert eine Vielzahl von Werkzeugen zur Bildinterpretation, wie unter anderem Merkmalserkennung oder Formanalyse (Geometrie, Kontur, die in diesem Moment verarbeitet werden).
Patchmuster
Ein guter erster Kontakt mit Pd kann die Erzeugung eines Sinustons sein. Dazu verwenden wir das [osc~]-Objekt. In der linken Eingabe verbinden wir eine Nachricht mit einer Zahl darin, die als Oszillationsfrequenz fungiert. Wir senden seine Ausgabe an einen Multiplikator, der diese Frequenz in hörbar umwandelt, und schließlich senden wir diese an einen Digital-Analog-Wandler [dac~], um sie über die Lautsprecher unserer Maschine wiedergeben zu können. Sobald wir diesen Patch erstellt haben, können wir die Frequenz ändern, indem wir mit der Maus auf die Zahlenmeldung klicken und sie gedrückt halten und den Cursor nach oben und unten bewegen, wodurch der Wert der Frequenz erhöht oder verringert wird.
Um ein externes Gerät wie eine Webcam zu öffnen , müssen wir das Wort „Öffnen“ gefolgt von einem Leerzeichen und dem Pfad, in dem sich dieses Gerät befindet, in eine Nachricht schreiben. Dazu verbinden wir es mit dem Objekt, das es uns ermöglicht, das Bild gemäß unserem Betriebssystem anzuzeigen, unter Linux wäre es pdp_v4l (Video für Linux). Wir verbinden auch eine andere Nachricht mit diesem Objekt, in der wir den Kanal angeben, über den wir die Informationen senden möchten. Schließlich verbinden wir ein [Meter] mit [pdp_v4l] und geben ihm die Information über die Häufigkeit, mit der es uns die Bilder zeigen soll, die die Kamera aufnimmt. Um eine Kontinuität der Bewegung zu gewährleisten, geben wir ihm einen Standardwert von 100 ms. Nach Belieben des Benutzers können wir das Bild auch horizontal drehen, sodass beim Betrachten des Bildes ein Spiegeleffekt entsteht. Um dies zu erreichen, verbinden wir die Ausgabe von [pdp_v4l] mit dem Objekt [pdp_flip_lr]. Damit haben wir bereits in einem separaten Fenster das Bild, das die Kamera aufnimmt.
Siehe auch
Material auf Spanisch
- Interaktive Musiksysteme Interaktive Musiksysteme Kursunterlagen von Sergi Jordà
- Elektronische Musik-Workshop Elektronische Musik- Workshop Kursunterlagen von Sergi Jordà
- Einführung in den GEM-Kurs ( defekter Link im Internetarchiv verfügbar ; siehe Geschichte , erste und letzte Version ). Einführung in GEM und Live-Kino von Carles Sora
Externe Links
- puredata.info Offizielles Portal über PureData.
- puredata-de Puredata Community auf Spanisch
- IEM Institut für Elektronische Musik und Akustik, Graz Viele nützliche Links
- Miller S. Puckette Homepage mit biografischem Vermerk und aktuellen Tätigkeiten.
- Reine Datenbank, pdb Hier können Sie nach reinen Datenobjekten suchen
- Footils.org Sehr vollständige Seite mit praktischen Zusammenfassungen (auf Englisch)
- 3 Pd International Convention (auf Portugiesisch)
