Musik zeichnen: Sargtanz in Pure Data

Programmierung und Memes


Programmierung ist ein Prozess am Rande von Wissenschaft und Kreativität. Ohne ein gut gestaltetes Programm ist ein Computer eine hilflose Einheit, die Strom verbraucht. Die meisten modernen Spezialisten arbeiten mit deklarativen Symbolsprachen - sie erstellen Programme aus Textbefehlen: einfach - Zuweisung, Multiplikation; und komplex - Bedingungen prüfen, Routinen in einer Schleife ausführen.

Aber nicht alle Programmiersprachen sind darauf ausgelegt, Systemprobleme zu lösen. Einige wurden für Schulungen, Präsentationen und digitale Shows erstellt. Wenn Leistung und Funktionalität in den Hintergrund treten, entstehen originelle Lösungen wie die visuelle Programmierumgebung Pure Data.

Im Jahr 2020 wurde der Tanz aus dem archivierten Video der Trauerfeier der Agentur Dada awu aus Ghana zum beliebtesten Mem in Russland. Heute müssen wir Schritt für Schritt das legendäre Musikthema Coffin Dance unter Verwendung der Umgebung der algorithmischen Klangbeschreibung Pure Data nachbauen.

Über visuelle Programmierung


Unter visueller Programmierung ist es üblich, den Prozess der Beschreibung eines Programms für ein Computergerät unter Verwendung funktionaler grafischer Elemente zu verstehen. Die Verwendung des WPF-Formulardesigners in der Visual Studio-Entwicklungsumgebung kann daher als visuelle Programmierung der Benutzeroberfläche bezeichnet werden. Grafikdesigner erschienen zusammen mit den ersten PCs. Im Informatikunterricht wird Visual Pascal an einigen Schulen studiert. und die Hälfte der Standardverbesserungen in 1C kann durchgeführt werden, ohne eine Codezeile zu schreiben.

Später erschienen jedoch vollwertige visuelle Programmierumgebungen. Wenn es darum geht, eine Programmiersprache zu erstellen, die nur aus grafischen Befehlen besteht, treten eine Reihe von Schwierigkeiten auf, aufgrund derer die Funktionalität der Sprache selbst eingeschränkt werden muss.
Daher sind mehrere Aufrufe desselben Unterprogramms in verschiedenen Teilen des C ++ - Codes für den Programmierer selbstverständlich. In einer grafischen Umgebung kann ein Unterprogrammaufruf beispielsweise durch einen Pfeil von einem Objekt im Text des Hauptprogramms zu einem Objekt-Unterprogramm dargestellt werden, und wenn zu viele solcher Pfeile vorhanden sind, wird der Grafikcode unlesbar. Entwickler von Bildungsentwicklungsumgebungen legen häufig selbst eine Grenze fest (Anzahl der Aufrufe, Objekte im Programm, verwendete Variablen), um den Benutzer zu schützen und den visuellen Programmierprozess visueller zu gestalten.
Ein Beispiel für ein einfaches Sanscript-Programm:

Bild

Wenn Sie jedoch vom Programmieren im weiteren Sinne ablenken, finden Sie wichtige angewandte Probleme, die grafisch bequemer und effizienter gelöst werden als symbolisch. Eine solche Aufgabe: eine Beschreibung der virtuellen Instrumente. In den 80er Jahren des letzten Jahrhunderts wurden die meisten Musikaufnahmen live gemacht. Digitale Synthesizer waren in der Klangqualität schlechter als akustische Instrumente, und wirklich „musikalische“ digitale Systeme waren teuer.

Mit der Einführung der VST-Technologie, die 1996 als umfangreiche Bibliothek für die Arbeit mit Ton eingeführt wurde, hat sich alles geändert. Funktionalität Mit VST konnten wir die Architektur realer digitaler Synthesizer und Effektprozessoren beschreiben und ihre Arbeit auf einem Computer sehr genau emulieren. Eine solche Beschreibung konnte jedoch nur von einem Team qualifizierter Programmierer und Toningenieure erstellt werden. Die Frage der Erstellung benutzerdefinierter virtueller Instrumente blieb offen.

In denselben Jahren erschien das experimentelle Pure Data-Projekt, um die Klangsynthese unter Amateuren bekannt zu machen - eine visuelle Entwicklungsumgebung, die sich auf die Beschreibung einfacher Synthesizer konzentriert. Rund um Pure Data bildete sich eine kleine Gruppe von „Fans“, die sich für die visuelle Programmierung in FB und Youtube einsetzten: Sie schrieben und übersetzten Schulungsmaterialien, veröffentlichten Synthesizer-Beispiele und ganze Musikmischungen auf einem Patch (dies ist der Name des Pure Data-Programms in Analogie zu Patches in modularen Hardware-Synthesizern ) Aber die Umwelt hat weltweit keine breite Verbreitung gefunden.

Reine Datengrundlagen


Die Pure Data-Entwicklungsumgebung kann kostenlos von der offiziellen Website heruntergeladen werden. Das Programm verteilt Open Source und ist für Benutzer von Windows, Linux und MacOS X verfügbar. Installieren Sie Pure Data und führen Sie es aus. Erstellen Sie im Menü Datei einen neuen Patch. Das folgende Bearbeitungsfenster wird angezeigt:

Bild

Das Put-Menü enthält eine Liste grafischer Objekte, aus denen wir unseren ersten Synthesizer erstellen. Nach Auswahl des entsprechenden Elements wird das Element dem Grafikfeld (Canvas) des aktuellen Patches hinzugefügt. Elemente können bearbeitet (die Signatur ändern, die sich auf ihr Verhalten auswirkt, sowie verschoben) und durch Linien verbunden werden (indem Sie die linke Maustaste auf einer der Ausgaben des Quellobjekts gedrückt halten, den Cursor auf die Eingabe des Zielobjekts bewegen und loslassen). Als Beispiel erstellen wir ein Element vom Typ "Objekt" mit dem Namensschlüssel und ein Element vom Typ "Nummer". Die Eingänge des Elements sind schwarz hervorgehoben und befinden sich über dem Rahmen des Elements selbst. Die Ausgänge befinden sich darunter. Verbinden Sie die Ausgabe des Schlüsselobjekts mit der Eingabe des Number-Elements.
Wir bekommen:

Bild

Die ganze Zeit waren wir im Patch-Bearbeitungsmodus. Um in den Ausführungsmodus zu wechseln, gehen Sie zum Menü Bearbeiten und deaktivieren Sie das Element Bearbeitungsmodus. Der Mauszeiger auf dem Umriss sollte sich von Hand zu Pfeil ändern. Drücken Sie nun eine beliebige Taste auf der Haupttastatur. Wir werden sehen, wie sich der Wert von Number ändert, wenn gedrückt wird:

Bild

Analysieren wir das Ergebnis des Patches. Nach dem Zuweisen des Namensschlüssels zum Objekt hat es eine Ausgabe, aber keine Eingaben. Ein Objekt mit diesem Namen hört auf die Tastatur und sendet bei jedem Drücken zur Laufzeit einen Tastencode. Das Number-Element hat einen Eingang und einen Ausgang. Wenn Sie eine Zahl als Eingabe verwenden, zeigt Number sie auf dem Bildschirm an und sendet denselben Wert an die Ausgabe. Beachten Sie, dass nach dem Loslassen der Taste die Nummer weiterhin angezeigt wird. Dies zeigt, dass die Eingänge den zuletzt akzeptierten Wert beibehalten.

Kehren Sie zum Bearbeitungsmodus zurück und fügen Sie ein weiteres Objekt mit dem Namen sel 49 hinzu. Es verfügt über zwei Eingänge und zwei Ausgänge. Dieses Objekt sendet jedes Mal ein Signal an den ersten Ausgang, wenn ein Wert an einem der Eingänge ankommt und mit dem am anderen Eingang gespeicherten Wert übereinstimmt. Wenn der Eingang einen anderen Wert als den akkumulierten empfängt, wird das Signal an den zweiten Ausgang gesendet. Der erste Teil des sel-Namens gibt den Objekttyp an, der zweite 49 - schreibt den Standardwert für die zweite Eingabe. 49 ist der Schlüsselcode "1".

Ein Signal ist ein spezieller Datentyp, der nicht einfach ausgegeben werden kann, indem beispielsweise eine Nummer an den Eingang gesendet wird. Mit Hilfe von Signalen können Sie jedoch die Arbeit einiger Elemente "starten".

Gehen Sie zurück zum Put-Menü und fügen Sie das Bang-Element zu unserem Patch hinzu. Verbinden Sie den Number-Ausgang mit dem ersten Sel 49-Eingang und den ersten Sel 49-Ausgang mit dem Bang-Eingang. Wir erhalten den folgenden Patch:

Bild

Wir werden zu einem Ausführungsmodus übergehen. Durch Drücken verschiedener Tasten werden deren Codes angezeigt. Wenn Sie die „Sondertaste“ mit Code 49 drücken, erzeugt das sel-Objekt einen Singal, der beim Drücken der Bang-Taste automatisch drückt:

Bild

Das Bang-Objekt erzeugt ein Signal an seinem einzigen Ausgang, wenn es im Run-Modus gedrückt wird, das Signal oder der Wert gelangt zum Eingang. Fügen Sie unserem Projekt ein wenig Sound hinzu. Damit der Patch ordnungsgemäß mit Audiodaten funktioniert, sollte das Menü Medien neben dem Element DSP On ein Häkchen haben. Sie müssen auch das Menü Midi-Einstellungen aufrufen und das Ausgabegerät installieren. Unter Windows:

Bild

Klicken Sie auf OK und kehren Sie zum Bearbeitungsmodus zurück. Um mit Midi-Signalen zu arbeiten, werden am häufigsten zwei Elemente verwendet: Makenote- und Noteout-Objekte. Fügen Sie ein solches Objekt hinzu und erstellen Sie mehrere Nachrichtennachrichten mit den folgenden Werten:

Bild

Nachricht ist ein Element der visuellen Programmierung mit komplexem Verhalten. Wenn die Nachricht eine bestimmte Nummer genannt wird, werden in beiden Fällen diese Nummer und das Signal gleichzeitig ausgegeben, indem Sie auf die Nachricht klicken oder ein Signal an ihrem Eingang empfangen.

Wenn das Noteout-Objekt den Wert am ersten Eingang empfängt, erzeugt es Ton auf einem der MIDI-Kanäle. Die Kanalnummer kann explizit im Namen des Objekts angegeben werden (in unserem Fall 1 - Klavier) oder auf die dritte Eingangsnotiz übertragen werden. Der erste Eingang nimmt die Tonhöhe in Form von Midi an: (60 - dies ist die erste Oktave und dann +1 - Erhöhung um einen halben Ton, -1 - Verringerung um einen halben Ton) und die zweite - Beschreibung der Note: Lautstärke, Dauer, Art der Klangerzeugung.
Das Makenote-Objekt empfängt die Tonhöhe zum ersten Eingang und zur zweiten Lautstärke (0 - Stille, 127 - maximale Lautstärke) übersetzt die Tonhöhe in die erste Ausgabe und generiert eine Notenbeschreibung für die zweite Eingangsnotiz am zweiten Ausgang. Die Standardwerte für die erste und zweite Makenote-Eingabe werden unmittelbar nach dem Objektnamen angegeben. Verbinden Sie die Elemente wie in der Abbildung gezeigt und wechseln

Bild

Sie in den Ausführungsmodus: Wenn Sie auf eine Nachricht klicken, sollte eine Note ertönen, die der Tonhöhe im Nachrichtennamen entspricht. 60 - Anmerkung zu, 62 - re, 67 - la. Verbinden Sie nun im Bearbeitungsmodus den ersten Ausgang des Selektors (Sel-Objekt) mit der Meldung 60. Fügen Sie 2 weitere Selektoren mit den Codes für die Tasten 2 und 3 auf der Tastatur hinzu und erhalten Sie den einfachsten Synthesizer:

Bild

Durch Drücken der Tasten 1-3 in Makenote wird eine Nachricht mit der entsprechenden Tonhöhe gesendet und eine Note ertönt. Im nächsten Abschnitt werden wir versuchen, eine komplexe Melodie zu beschreiben, die nacheinander Note für Note gespielt wird, wenn nur ein Signal gesendet wird.

Sargtanz nachbauen


Musik


Um eine komplexe Melodie zu beschreiben, müssen wir zwei wichtige Objekte untersuchen - Metro und F sowie eine Reihe von Hilfsobjekten. Betrachten Sie ein einfaches Beispiel:

Bild

Das Metro-Objekt hat zwei Eingänge. Das erste Signal wird empfangen. Jedes andere Signal als Stop enthält ein Metronom. Verwenden Sie zum Deaktivieren das Ausgangssignal der Nachricht mit dem Textstopp. Der zweite Eingang, Metro, erhält ein Intervall in Millisekunden. Wenn das Metronom eingeschaltet ist, sendet es sofort ein Signal an seinen einzigen Ausgang und sendet das Signal alle n Millisekunden erneut. Das Intervall n kann durch den Standardwert im Objektnamen angegeben oder an die zweite Eingabe übertragen werden. Nachdem wir in den Run-Modus eingetreten sind, können wir das Metronom mit der Knalltaste darüber starten und sehen, wie die Taste darunter alle 0,4 Sekunden gedrückt wird. Durch das Senden einer Nachricht mit einem neuen Intervall beschleunigen oder verlangsamen wir die Häufigkeit des Sendens von Signalen. Nachdem die Stoppnachricht gesendet wurde, stoppt die Signalisierung.

Erinnern Sie sich an die Musik von Coffin Dance:


Die Hauptmelodie kann durch eine Folge von 64 Noten und Pausen der 8. Dauer beschrieben werden, d.h. bei 8 Maßnahmen in 4/4. Wir müssen also das zyklische Senden der 64. Signale an die entsprechenden Notennachrichten organisieren. Verwenden Sie dazu das Objekt f.

F - von float - repräsentiert eine reelle Variable. Objekt f hat zwei Eingänge. Bei der zweiten Eingabe können Sie einen numerischen Wert (z. B. aus der Ausgabe der Nachricht oder der Ausgabe von Number) eingeben, der als Wert der Variablen geschrieben wird. Der Standardwert ist 0. Beim ersten Ein- und Ausstieg sind die Dinge etwas komplizierter. Betrachten Sie ein Beispiel:

Bild

So fanden wir eine magische Verbindung zwischen den Memen „Drücke F, um Respekt zu zollen“ und „Sargtanz“. Wechseln wir in den Run-Modus. Wenn Sie auf Nachricht 3 klicken, wird der Wert in die Objektvariable f geschrieben, aber in der Anzahl wird dies nicht angezeigt. Wenn Sie das Signal mit der Bang-Taste an den ersten Eingang f senden, geschieht in Bezug auf Pure Data eine Iteration, nämlich:

  • Ausgang f sendet den aktuellen Wert der Variablen (3)
  • Objekt + 5 erhält die Nummer 3 bei der ersten Eingabe und gibt die Summe von zwei Eingaben 8 zurück (hier wird der Wert bei der zweiten Eingabe standardmäßig nach dem Namen + Additionsobjekt festgelegt).
  • Objekt% 40 erhält die Nummer 8 bei der ersten Eingabe und gibt den Rest der Division der 8. durch 40 zurück (der Wert der zweiten Eingabe ist standardmäßig festgelegt).
  • Die Variable f erhält bei der zweiten Eingabe den Wert (3 + 5)% 40 = 8. Die Iteration ist abgeschlossen

Somit sehen wir nach der ersten Iteration den Wert 3 an der Eingangsnummer und haben einen reellen Wert von 8 für die Variable f. Bei der nächsten Iteration erhält die Zahl die acht, die früher gespeichert wurden, und f erhöht sich um weitere 5 und nimmt den Wert 13 an. Wenn es um die Iteration mit Ausgabe 38 geht, erhalten wir den Wert (38 + 5)% 40 = 3 für die Variable f. Somit werden f-Werte und Ausgangswerte zyklisch wiederholt. Mit Additions- und Divisionsmodulo können Sie einen Zyklus mit einem beliebigen Zeitraum und beliebigen Werten für Iterationen erstellen.

Verbinden Sie den Metronomausgang mit dem ersten Eingang f und stellen Sie mehrere Selektoren und Tasten am Ausgang f ein. Starten Sie das Metronom und sehen Sie, wie die Tasten der Reihe nach aufleuchten. Nach dem automatischen Drücken der letzten Taste wird der Zyklus wiederholt. Patch:

Bild

Damit die Schleife jedes Mal ab Wert 3 ausgeführt wird, habe ich den Ausgang der Stoppnachricht mit dem Eingang von Nachricht 3 verbunden und den Anfangswert an f gesendet.

Beschreiben wir die Melodie. Erstellen Sie dazu einen sauberen Patch und beschreiben Sie das Metronom mit einem Intervall von 230 (genau 230 Millisekunden dauern eine Achtelnote in der Melodie) und einem Zyklus von 64 Noten. Zur Auswahl der Werte verwenden wir für uns die Variable f und das neue Element moses, deren Funktionalität nachfolgend beschrieben wird. Wir fügen auch mehrere Makenote-Objekte, Nachrichten mit Noten, Noteout mit den Kanälen 1 (Klavier) und 10 (Schlagzeug) hinzu und kombinieren die Moses-Selektoren jeder Iteration mit den entsprechenden Noten. Holen Sie sich den Patch:

Bild

Wie Sie sehen können, verringert die Verwendung einer großen Anzahl von Objekten bei der visuellen Programmierung die Lesbarkeit des Programms. Tatsächlich ist ein Patch eine Kombination aus einfachen Elementen. Betrachten Sie die folgende "Routine":

Bild

Das Objekt moses speichert eine Nummer am zweiten Eingang, die standardmäßig festgelegt werden kann. Wenn der erste Eingang eine Zahl empfängt, die kleiner als der gespeicherte Wert des zweiten Eingangs ist, wird ein Signal vom ersten Ausgang von Moses gesendet, andernfalls wird das Signal vom zweiten Ausgang gesendet. Somit verhält sich die erste Ausgabe von moses 1 ähnlich wie die erste Ausgabe von sel 0. Schauen wir uns eine Reihe von + 63% 64 an. Sie können die Werte in der Schleife um eins reduzieren. Wenn einer eingegeben wurde, ist der Ausgang 0, für Eingang 0 ist der Ausgang 63 - wir erhalten einen Zyklus von 64 Elementen in umgekehrter Reihenfolge. Wenn wir den Ausgang dieses Bündels mit dem Eingang der nächsten Konstruktion + 63% 64 verbinden und Moses 1 mit dem Ausgang jedes Bündels verbinden, aber für jeden der 64 möglichen Werte von f sendet genau ein Moses ein Signal an den ersten Ausgang. Die Zahl 7 muss also siebenmal um 1 reduziert werden.Um 0 zu erhalten, empfängt die 7. Mose 1 bei Iteration 7 beim ersten Eingang 0 und sendet ein Signal an die entsprechende Note. Wenn Sie für 64 Selektoren die Standardwerte der Parameter manuell bearbeiten müssen, können die Routinen + 63% 64 moses 1 kopiert werden, und durch Verbinden der Ausgänge des vorherigen% 64 mit den Eingängen + 63 erhalten Sie einen komplexen zyklischen Selektor mit 64 Positionen.

Das Melodie-Patch verwendet das Duplizieren von Notizobjekten. Mit dieser Technik können Sie die Lautstärke unter Umgehung der Grenzwertmarkierung erhöhen. Wenn Sie also dieselbe Makenote 67 127 mit 2 Noteout 1 verbinden, aber ein Signal vom ersten Makenote-Eingang senden, wird die Note la (Code 67, erste Oktave) mit einer Lautstärke von 127 * 2 = 254 gespielt. MIDI-Instrumente in Pure Data Sehr leise, daher ist diese Technik nützlich, um Ensemble-Melodien zu erstellen (in unserem Fall werden 2 Klaviere auf den Kanälen 1 und 5 und das Schlagzeug 10 mit dreifacher Lautstärke gespielt).

Um die Simulation zu dekorieren (das Verschieben von Daten zwischen Objekten des Patch-Codes zur Laufzeit), ist es zweckmäßig, doppelte Schaltflächen zu verwenden. Im obigen Beispiel haben ihre 6-Bang-Objekte eine Silhouette der Play-Taste, die automatisch hervorgehoben wird, wenn die Extrem-Bang-Taste rechts gedrückt wird. Die Bang-Signalverarbeitung ist ein ressourcenintensiver Prozess, aber im nächsten Abschnitt werden wir eine ganze Reihe solcher Schaltflächen platzieren und versuchen, mit ihrer Hilfe einen Tanz aus dem Video darzustellen.

Animation


Für die Animation benötigen wir dieselben Variablen f, Objekte - arithmetische Operatoren und ein Metronom sowie Selektoren. Dieses Mal brauchen wir nur 8 Frames, also werden wir sel-Objekte verwenden. Erstellen Sie ein 20x10-Feld aus den Knallschaltflächen (wir verwenden den Kopiervorgang). Nachdem Sie den Patch mit der Melodie in der Mitte platziert haben, erhalten Sie die folgende Abbildung:

Bild

Sie können einfach die linken Ausgänge jedes Selektors mit den Tasten verbinden, die auf diesem Frame gedrückt werden sollen, und das Signal vom Metronom an den Eingang einer neuen Variablen des Zyklus f senden. Dieser Ansatz weist jedoch zwei Mängel auf:

  • 0,23 Sek. Pro Frame - zu schnell für unseren Tanz. Und die Verwendung des zweiten Metronoms wird uns aus dem Takt bringen: Noteout und Bang haben unterschiedliche Verzögerungen als Reaktion auf das Signal;
  • Die Taste bleibt ab dem Moment des Signalempfangs 0,05 Sekunden lang gedrückt. Dies bedeutet, dass für die verbleibenden 0,18 Sekunden der „Bildschirm“ der Animation leer ist und das Bild in der Schleife blinkt.

Um diese Probleme zu lösen, verwenden wir Division. Die folgende Konstruktion:

Bild

Nimmt den Eingangswert f der Hauptzyklusmelodie. Nach dem Teilen durch 2 erhalten wir eine Verlangsamung der Bildänderung: Für 0 und 1 wird Bild 1 angezeigt, für 2 und 3 Bild 2 und so weiter. Für jeden Frame wird weiterhin alle 0,23 Sekunden ein Signal gesendet. Verwenden wir jetzt eine andere Schleife:

Bild

Um mit der Hauptmelodie zu synchronisieren, wurde eine Verzögerung hinzugefügt: Das Einschlusssignal wird vom Selektor zuerst über die Taste und erst dann zum ersten Eingang des Metronoms geleitet. Wenn Sie nun einen Knall erzeugen und seine Ausgabe mit allen Pixeltasten eines bestimmten Rahmens verbinden, können Sie im Rahmen darüber alle 0,046 Sekunden den Rahmen hervorheben, was schneller ist als die Aktualisierungsfrequenz der Tasten, d. H. Der Rahmen leuchtet kontinuierlich, bis sich der nächste Rahmen ändert. Ein Zyklus von 5 Iterationen stellt sicher, dass Frames nicht geschichtet werden, da 0,046 * 5 = 0,23 Sekunden - die Periode der Frame-Selektoren.

Beim Erstellen einer Animation stürzte der Computer regelmäßig ab, es war jedoch möglich, 5 verschiedene Bilder zu zeichnen und daraus einen Zyklus von 8 Bildern in der folgenden Reihenfolge zu erstellen:

1 2 3 2 1 4 5 2

Der letzte Patch mit Coffin Dance (viele dekorative Elemente - Schaltflächen und Kommentare hinzugefügt) im Bearbeitungsmodus:

Bild

Es ist kaum möglich, den Quellcode der Simulation in diesem höllischen Bild zu analysieren, aber der Patch funktioniert korrekt:

Bild

In der unteren rechten Ecke wird ein Zähler verwendet, um den Player nach dem 121. automatisch anzuhalten Anmerkungen. Ursprünglich wurde eine Animation mit 48 x 24 Pixel angenommen, die der Computer jedoch mit einem traurigen Dröhnen des Kühlers und einem unerwarteten Neustart von Windows im abgesicherten Modus kategorisch ablehnte. Die ursprüngliche Pixelkunst 48x24 des Künstlers LikaLou ist am Ende des Videos angehängt. Nach 3 Tagen „Zeichnen von Musik“ haben wir Coffin Dance in Pure Data:


Fazit


Die visuelle Programmierung von Memes ist eine unterhaltsame Aktivität, die jedoch viel Zeit in Anspruch nimmt und manchmal Ihre Hardware zerstört. Selbst eine solch scheinbar einfache Beerdigungstanzaufgabe erfordert einen modularen Ansatz zur Erstellung eines Programms und die Kenntnis der Merkmale nicht nur der Implementierungssprache, sondern auch der Entwicklungsumgebung.

Anhand des Beispiel-Patches für Coffin Dance können Sie den Entwicklungsstand der visuellen Programmierung beurteilen. Es gibt grafische Sprachen, die einige Anwendungsaufgaben gut bewältigen, wenn es sich um geeignete Entwicklungsumgebungen handelt. Die gesamte visuelle Programmierbranche steckt jedoch noch in den Kinderschuhen.

Verweise


Offizielle Website
von Pure Data Grundlagen der visuellen Programmierung in Pure Data
Über den VST-Standardartikel
Coffin Dance auf Wikipedia
Coffin Dance in Pure Data: Originalvideo

All Articles