Sequenzer für Polyrhythmen in Max / MSP

    Was weiß ich über Polyrhythmen? Nicht sehr viel; Es scheint, als würden zwei oder mehr Rhythmen unterschiedlicher Größe gleichzeitig und gleichzeitig gespielt. Ich werde ein Bild zur Klarheit geben.

    Es werden zwei unterschiedlich große Rhythmen gleichzeitig gespielt.

    Diese Technik wird in der ethnischen Musik der Bewohner des afrikanischen Kontinents sowie von vielen guten Schlagzeugern verwendet. Dieser Artikel beschreibt die Methode, mit der ich solche Rhythmen generiere.

    Toolkit


    Rhythmen können als Folge von Einsen und Nullen dargestellt werden, wobei 1 ein Schlag und 0 eine Stille ist. Die Gesamtzahl der Elemente bestimmt die Länge des Rhythmus. Es ist am einfachsten, den Rhythmus mithilfe von Nachrichten auf diese Weise zu maximieren:

    Rhythmen, die als Satz von Nullen und Einsen dargestellt werden

    Im ersten Rhythmus gibt es 16 Elemente, im zweiten - 10 . Wir werden sie mit dem Objekt seq ~ spielen . Es funktioniert wie folgt: Wir hämmern Ereignisse nacheinander, für die wir jeweils die Bedingung festlegen, unter der sie angezeigt werden. Das folgende Symbol empfängt ein Audiosignal, vergleicht seinen Wert mit den eingegebenen Daten und zeigt die gespeicherte Nachricht an, wenn sie übereinstimmt. Lassen Sie das Objekt beispielsweise einen Knall zurückgebenwenn der Wert des eingehenden Signals 0,5 ist . Senden Sie dazu eine Nachricht an seq ~ (add my_rythm 0.5 bang) . Wenn der Wert des Signals, das in Sequenz ~ eingeht , gleich 0,5 ist , gibt das Objekt einen Knall durch den linken Ausgang aus. Um das Verständnis des Objekts zu erleichtern, habe ich einen kleinen Patch mit Kommentaren, die helfen sollen mit seiner Arbeit zu tun (seqhowto.maxpat) .

    Hoffe, dieser Patch hilft

    Wir gehen weiter. Im Moment brauchen wir eine Folge von Einsen und Nullen in ein Objekt treiben die Seq ~ . Zu diesem Zweck habe ich vor einiger Zeit eine kleine Abstraktion namens rtoseq erstellt(Rhythmus zu Folge ~) . Abstraktionen in Max genannt Patches sind so konzipiert, dass sie als Objekte für Programmierer verwendet werden kann , ist ein sogenannter wieder verwendbaren Code unten . Abstraktionen haben dieselbe .maxpat- Erweiterung und können genau wie Objekte hinzugefügt werden.

    Rtoseq Interna

    Das Prinzip von rtoseq ist sehr einfach. Es nimmt eine Liste von Einsen und Nullen, geht durch jedes Element und für jede Einheit erzeugt eine Nachricht, ein Ereignis in schaffen ~ dem seq . Ich werde seine Arbeit nicht im Detail erläutern, da es sich um einen Artikel über Polyrhythmen handelt und jeder, der interessiert ist, in 15 Minuten herausfinden kann, was was ist.
    Schauen Sie sich also den folgenden Patch an (polyrhythms01.maxpat) :

    polyrhythms01.maxpat

    Wenn Sie auf eine Nachricht klicken , „hämmert“ das rtoseq- Objekt den Rhythmus in seq ~ -Objekte , das Signal von phasor ~ steuert die Ausgabe der in seq ~ gespeicherten Nachrichten. Zum Aktivieren von seq ~ ist eine Nachricht (Wiedergabe 1, Seq. Rtoseq) erforderlich (Einzelheiten finden Sie in der Hilfe). Das Einstellen des Rhythmus direkt über die Nachricht ist jedoch nicht sehr bequem, daher erstellen wir ein kleines Interface (polyrhythms02.maxpat) . Bei jeder Bearbeitung sendet das Multislider- Objekt eine Liste der Werte aller Slider durch den linken Ausgang . Nachricht (Größe $ 1) ändert die Anzahl der Schieber. Die folgenden Änderungen wurden am Site Inspector vorgenommen:



    polyrhythms02.maxpat


    den Bereich: 0. 1. - Bereich Schieber Werte;
    Slider Style: Bar - das Aussehen der Slider;
    Ausgabewerte der Schieberegler : Ganzzahl - Bei den Schiebereglern handelt es sich um ganzzahlige Werte.
    Dicke dünner Linien: 2 - Erstellen Sie den Abstand zwischen den Schiebereglern.
    So verwandeln wir den Multislider in eine Art Mustereditor.

    Fazit


    Diese Methode gibt uns nicht nur die Möglichkeit, beliebige Polyrhythmen zu programmieren, sondern bietet auch vielfältige Möglichkeiten für Experimente, wenn wir Sequenzobjekte nicht mit einer Säge, sondern mit einem beliebigen Audiosignal steuern : einer Sinuswelle, einem Dreieck, weißem Rauschen und sogar einem linearen Signal Eintritt - es gibt viele Möglichkeiten.

    Dies ist übrigens der erste Artikel über Pattr , der sich mit dem Thema algorithmischer Sequenzer befasst.

    PS Ja, auf den Bildschirmen maximal 6 :)

    Archiv mit Patten pattr.ru/sites/default/files/pattr_polyrhythms.zip Ich habe

    auf Wunsch von Kommentatoren ein Video aufgenommen

    Jetzt auch beliebt: