Zum Hauptinhalt

Lektion 4 - Variablen und Zufallsprozesse

Abschlussbedingungen
Hier lernt ihr, wie ihr Variablen erzeugt, um den Prozess zu automatisieren. Ihr lernt über zufällige Objekte und die Skalierung von Ergebnissen, um hiermit verschiedene Parameter des Patch zu kontrollieren.

Lektion 4:

edu sharing object


Video-Transkript

00:08 - Lektion 04. Variablen und Zufallsprozesse In diesem Tutorial werden wir die "linie"-Technik verfeinern und lernen, wie Variablen innerhalb der Nachrichten zu verwenden sind. Wie wir bisher gesehen haben, enthalten die Nachrichten, die wir verwendet haben, um die „line“ zu steuern, feste Werte. Zum Beispiel gehe ich jetzt auf 30% der Lautstärke, 0,3 in 1 Sekunde, und gehe zurück zu 0 in einer halben Sekunde. 00:47 - Aber vielleicht möchte ich mich mit einem oder noch mehr dynamischen Werten beschäftigen, die vielleicht zum Beispiel durch einen „slider“ gesteuert werden. Dies würde es uns ermöglichen, mehr Kontrolle über den Patch zu gewinnen, den wir entwickeln. Dazu muss ich den Amplitudenwert durch "$1" und die Zeit durch "$2 " ersetzen. Das String-Symbol ist dasselbe wie das Dollar-Symbol. Im Moment kümmern wir uns nur um die Amplitude und lassen die Zeit so, wie sie ist. "$1" oder im Allgemeinen das Symbol "$", gefolgt durch eine Zahl, die der Variablenanzahl innerhalb der gleichen Nachricht entspricht, bedeutet, dass jede eingehende Zahl, die durch den Nachrichteneingang kommt, das Symbol "$" wieder aufsetzt, und als Ergebnis haben wir immer eine Liste von zwei Werten. Wenn ich einen „slider“ nehme und seine "Properties" von 0 auf 1 setze, können wir jetzt reibungslose Lautstärkeänderungen haben. 02:10 - Wir können auch ein "print"-Objekt damit verbinden, um die Liste zu überprüfen, die wir als Ergebnis erhalten. 02:30 - Allgemeiner erlaubt dieses "linie"-Objekt, das verwendet wird, um die Lautstärke zu steuern, dass wir glatte Änderungen in der Amplitude haben und Klickgeräusche verhindern, die passieren können, wenn ich die Lautstärke abrupt mit Zahlen anstelle von Zahlenrampen setze. Ich könnte das Gleiche tun, um die Frequenz des Oszillators zu steuern. Ich nehme einen horizontalen „slider“. 03:02 - Ich setze seine "properties" z. B. so, dass er von 50 auf 1.000 Hz geht. 03:15 - Ich verbinde es mit der Nachricht, die an die "line" geht, und ersetze den Wert, der der Frequenz entspricht, durch eine Variable „$1“. 03:30 - Wenn ich jetzt ein wenig die Lautstärke erhöhe und beginne, den horizontalen "slider" zu bewegen, kann ich dynamisch die Rate einstellen, mit der der Oszillator oszillieren wird. Sie können hören, dass die Frequenz jedes Mal die neue Sollfrequenz in 250 Millisekunden erreicht und so ein kleines Glissando erzeugt. Dies macht jede Änderung, sowohl in der Frequenz als auch in der Amplitude, sehr glatt. Jetzt sind wir bereit, ein sehr nützliches Objekt einzuführen, das "random"-Objekt. Wie der Name schon sagt, ist "random" in der Lage, Zufallszahlen zu generieren. Lassen Sie uns für einen Moment seine Hilfedatei anschauen. 04:23 - Wie Sie sehen können, erfordert "random" ein Argument, das den Bereich unseres zufälligen Pfades neu darstellt. In diesem Fall haben wir 5, das bedeutet, dass "random" Zahlen zwischen 0 und 4 generiert. "random" erfordert einen "bang", um die Zahlen zu generieren, lassen Sie es uns überprüfen. 04:46 - Lassen Sie uns zu unserem Patch zurückgehen und geben Sie 1.000 als Argument unseres "random" ein. Dies bedeutet, dass "random" Zufallszahlen zwischen 0 und 999 generiert, die der Frequenz in Hertz entsprechen. 05:07 - Die Einführung der Zufälligkeit in unserem Patch ermöglicht es uns, einen Schritt in Richtung des Bereichs der algorithmischen Komposition zu machen. Das bedeutet, dass sich unsere Kompositionen in Form von Pure Data-Patches entsprechend den Befehlssätzen verhalten, die wir entwickeln werden und Elemente der Zufälligkeit enthalten können. Wir haben bereits aus der Hilfedatei gesehen, dass "random" einen "bang" erfordert, um zu funktionieren, also lassen Sie uns einen erstellen und verbinden Sie es. 05:42 - Hören wir uns das Ergebnis an. 06:09 - Da wir nicht jedes Mal einen „bang“ manuell auslösen wollen, brauchen wir ein anderes Objekt, das wir bereits im vorherigen Tutorial kennengelernt haben, das in der Lage ist, den "bang" zu generieren. Raten Sie, welches? Genau, es ist "metro"! Lassen Sie uns also eins erstellen, und diesem eine Zeitrate zuweisen. Schalten Sie das „metro“ ein, indem Sie ein "toggle" erstellen und sich das Ergebnis anhören. 06:59 - Wir haben einen zufälligen Arpeggiator sinusförmiger Wellen geschaffen. Wir könnten den gleichen zufälligen Prozess auch für die Lautstärke implementieren. 07:14 - Lassen Sie uns den Teil des Algorithmus, den wir erneut verwenden möchten, kopieren und einfügen. 07:27 - Wir dürfen nicht vergessen, dass die Lautstärke im Bereich von 0 bis 1 arbeitet. Da "random" nicht in der Lage ist, Gleitkommazahlen zu generieren, müssen wir nur die Zahlen, die aus dem "random"-Objekt kommen, nach unten skalieren, indem wir sie durch 1.000 dividieren. Und wir verbinden dies mit dem „slider“, der die Lautstärke oder Amplitude steuert. Und nun können wir es ausprobieren. 08:02 - Ich kann jetzt ein rhythmischeres Verhalten haben, indem ich die Zeit der Rampe der Lautstärke verkürze und auch dies aufmerksam anhöre, indem ich das "metro" abschalte, das die Erzeugung der Frequenzen steuert. Jetzt ist der erzeugte Rhythmus deutlich zu erkennen. 08:28 - Als letzte Sache kann ich auch eine "numberbox" hinzufügen, die mit den kalten Eingängen beider „metros“ verbunden ist, um die Geschwindigkeit zu steuern, mit der die „bangs“ erzeugt werden. 08:45 - Hören wir uns das Ergebnis an. 08:57 - Mit diesem Basis-Patch kann ich bereits eine interessante Vielfalt an Ergebnissen erzielen. In dem nächsten Tutorial werden wir die Prinzipien der additiven Synthese vorstellen und gemeinsam das erste ready-to-use Patch mit den Daten von externen Sensoren entwickeln, die im zweiten Teil dieser Serie eingeführt werden.



Beispiel Patch:

 

edu sharing object
 

Zuletzt geändert: Dienstag, 12. September 2023, 19:25