Strudel Live Coding: Musik online mit Code erstellen

Schreibe musikalische Muster als Code und höre sie sofort im eingebetteten Strudel-Editor – TidalCycles für den Browser.

Wähle unten ein Einstiegsmuster, drücke im Editor auf Wiedergabe und ändere den Code, während er läuft. Das ist Live Coding: Die Musik aktualisiert sich, sobald du neu auswertest.

Strudel Live Coding: Musik online mit Code erstellen
Schreibe musikalische Muster als Code und höre sie sofort im eingebetteten Strudel-Editor – TidalCycles für den Browser.
Einstiegsmuster

Muster: Schlagzeug

sound("bd hh sd hh")

Klang beginnt erst, nachdem du im Editor auf Wiedergabe gedrückt hast. Möchtest du die komplette Umgebung mit Sample-Browser und Visuals? In vollständigem Strudel öffnen

Strudel-Mini-Notation: Kurzübersicht

Die zehn Konstrukte, mit denen du den Großteil der Mustersprache erschließt. Alles in doppelten Anführungszeichen ist Mini-Notation; eine zitierte Sequenz dauert genau einen Zyklus.

KonstruktBeispielWirkung
sound() / s()sound("bd hh sd hh")Spielt benannte Samples oder Synths: bd = Bassdrum, sd = Snare, hh = Hi-Hat. Die vier Ereignisse teilen sich einen Zyklus gleichmäßig.
note()note("c4 e4 g4").sound("piano")Spielt Tonhöhen anhand von Namen (c4, eb3) oder MIDI-Nummer und sendet sie an den danach verketteten Klang.
* (wiederholen)sound("hh*8")Presst 8 Hi-Hats in den Raum eines Ereignisses – die Standardmethode für schnelle Unterteilungen.
~ (Pause)sound("bd ~ sd ~")Ein stiller Platz. Das Ereignisraster behält sein Timing; die Tilde spielt einfach nichts.
[ ] (Gruppe)sound("bd [sd sd] bd sd")Eckige Klammern packen mehrere Ereignisse in einen Platz und unterteilen dessen Zeit; hier teilen zwei schnelle Snares Schlag 2.
< > (abwechseln)note("<c2 eb2 g2>")Spitze Klammern spielen einen Eintrag pro Zyklus und wechseln sie durch – eine sofortige Akkordfolge.
stack()stack(sound("bd*4"), sound("hh*8"))Schichtet Muster, damit sie gleichzeitig spielen – so baust du ein komplettes Drumkit oder legst eine Basslinie unter Drums.
fast() / slow()sound("bd sd").fast(2)Beschleunigt oder streckt ein Muster: fast(2) enthält zwei Wiederholungen pro Zyklus, slow(2) verteilt eine über zwei Zyklen.
rev()note("c4 e4 g4 b4").rev()Kehrt das Muster innerhalb jedes Zyklus um – eine melodische Variation mit einem Wort.
.euclid(k, n)sound("bd").euclid(3, 8)Verteilt k Schläge möglichst gleichmäßig auf n Schritte. euclid(3,8) ist der Tresillo-Rhythmus hinter zahllosen Dance- und Latin-Grooves.

Über Strudel und Live Coding

Live Coding bedeutet, Musik aufzuführen, indem man Code schreibt und umschreibt, während sie spielt. Statt Noten auf einer Zeitleiste anzuordnen, beschreibst du Muster – eine Kick auf jeder Viertelnote, einen Akkordwechsel pro Zyklus, in Triolen gepresste Hi-Hats – und die Sprache verwandelt diese Beschreibungen sofort in Klang. Ändere eine Zeile, werte neu aus, und die Musik verändert sich im nächsten Zyklus, ohne jemals anzuhalten. Um diese Praxis entstand die Algorave-Szene: Clubnächte, bei denen der Code der Künstler für das tanzende Publikum projiziert wird. Strudel ist die JavaScript-Version von TidalCycles, der von Alex McLean um 2009 in Haskell geschaffenen Mustersprache, die zur Lingua franca live codierter Musik wurde. Strudel implementiert Tidals Ideen neu, sodass sie vollständig in einem Browser-Tab laufen: keine Haskell-Toolchain, kein SuperCollider-Audioserver, keine Installation. Diese Seite bettet das offizielle Strudel-REPL von strudel.cc in einem Frame ein. Du erhältst also den echten Editor – Aufblitzen bei der Auswertung, Fehlermeldungen und integrierte Sounds – direkt auf der Seite, und die Einstiegsbuttons laden funktionierende Muster. Der Link zur vollständigen Strudel-Umgebung nimmt dein aktuelles Muster samt Sample-Browser und Visualisierungen mit. Im Zentrum der Tidal-Familie steht der Zyklus: eine wiederholte Zeitspanne von standardmäßig etwa zwei Sekunden, an der jedes Muster gemessen wird. Die Mini-Notation zwischen doppelten Anführungszeichen zerlegt diesen Zyklus. Schreibe bd hh sd hh und du erhältst vier gleich lange Ereignisse pro Zyklus: Kick, Hat, Snare, Hat. Kleine Änderungen erzeugen große musikalische Veränderungen: Ein Sternchen vervielfacht Ereignisse, eine Tilde fügt Stille ein, eckige Klammern unterteilen einen Platz, und spitze Klammern wechseln Werte über aufeinanderfolgende Zyklen ab – so wird aus einer Änderung von zwei Zeichen eine Akkordfolge. Mustersprachen machen süchtig, weil sich Transformationen kombinieren lassen. Hänge rev() an, um eine Melodie umzudrehen, fast(2), um ihre Geschwindigkeit zu verdoppeln, oder euclid(3,8), um Schläge in den kubanischen Tresillo-Rhythmus umzulegen. Jede davon gilt für ganze Muster statt einzelner Noten, sodass eine Änderung die gesamte Textur wandelt. Beginne mit Schlagzeug, tausche einen Sample-Namen aus, füge ein Sternchen hinzu – und du codest live.

Musterrezepte für den Editor

Kopiere eines davon in den eingebetteten Editor, drücke Wiedergabe und verändere sie jeweils um ein Token.

CodeWas du hörstGezeigte Idee
sound("bd hh sd hh")Ein einfacher Backbeat: Kick, Hat, Snare, Hat, einmal pro ZyklusVier Ereignisse teilen einen Zyklus gleichmäßig – das Hello World der Mini-Notation.
sound("bd*4, hh*8")Four-on-the-floor-Kick unter einem Strom aus Achtel-Hi-HatsEin Komma in den Anführungszeichen schichtet Sequenzen, wie ein kompaktes stack().
note("<c2 eb2 g1 bb1>").sound("sawtooth").lpf(500)Eine dunkle gefilterte Basslinie, die pro Zyklus zu einem neuen Grundton wandertSpitze Klammern wechseln pro Zyklus; lpf(500) ist ein 500-Hz-Tiefpass, der den Sägezahn zähmt.
sound("bd").euclid(3, 8)Der Tresillo: Schläge auf den Schritten 1, 4 und 7 von 8Euklidische Rhythmen verteilen 3 Schläge möglichst gleichmäßig auf 8 Schritte – von kubanischem Son bis EDM.
note("c4 e4 g4 b4").rev().fast(2)Ein absteigendes Arpeggio, das zweimal pro Zyklus gespielt wirdTransformationen werden von links nach rechts verkettet: Muster umkehren, dann Geschwindigkeit verdoppeln.

So startest du mit Live Coding

  1. Klicke auf ein Einstiegsmuster – Schlagzeug, Melodie, Basslinie oder Polyrhythmik –, um seinen Code in den eingebetteten Strudel-Editor zu laden.
  2. Drücke im Editor auf Wiedergabe (Browser verlangen einen Klick, bevor Klang starten kann).
  3. Bearbeite den Code während er spielt: Ändere einen Sample-Namen, füge *2 zu einem Ereignis hinzu oder tausche eine Note aus; drücke dann Ctrl+Enter (Cmd+Enter auf dem Mac), um neu auszuwerten.
  4. Schichte mit stack() weitere Muster und forme sie mithilfe der Kurzübersicht mit fast, slow, rev oder euclid.
  5. Wenn ein Muster mehr als eine Skizze wird, öffne die vollständige Strudel-Umgebung mit Sound-Browser und Visuals.

Strudel Live Coding: FAQ

Was ist der Unterschied zwischen Strudel und TidalCycles?
TidalCycles ist die ursprüngliche Mustersprache, in Haskell geschrieben und meist mit der SuperCollider-Synthese-Engine kombiniert. Strudel ist ein offizielles Schwesterprojekt, das dasselbe Mustersystem auf JavaScript und die Web Audio API überträgt; es läuft daher ohne Installation in jedem modernen Browser. Muster und Konzepte lassen sich fast eins zu eins zwischen beiden übertragen.
Warum laden die Einstiegsbuttons den Editor neu?
Strudel akzeptiert ein ganzes Programm über seine URL: Der Musterquelltext wird base64-kodiert in die Adresse nach dem #-Zeichen geschrieben. Jeder Einstiegsbutton zeigt den eingebetteten Editor auf eine neue URL mit diesem Muster. Deshalb nimmt auch der Link zur vollständigen Strudel-Umgebung dein aktuelles Muster mit.
Warum gibt es keinen Klang, bis ich im Editor Wiedergabe drücke?
Browser blockieren jedes Audio, bis der Nutzer mit der Seite interagiert, die es erzeugt. Das ist ein Autoplay-Schutz. Der Strudel-Frame ist eine eigene Seite, daher muss der erste Wiedergabe-Klick im Editor selbst erfolgen. Danach aktualisiert erneutes Auswerten des Codes die Musik ohne sie anzuhalten.
Was ist ein Zyklus?
Der Zyklus ist Tidals und Strudels Einheit musikalischer Zeit: eine wiederholte Zeitspanne von beim Standardtempo ungefähr zwei Sekunden, an der alle Muster gemessen werden. Eine zitierte Sequenz wie bd hh sd hh teilt einen Zyklus gleichmäßig; fast(2) packt zwei Zyklen in einen, und spitze Klammern geben einen Wert pro Zyklus aus.
Was ist eine Algorave?
Eine Algorave ist ein Musikevent, bei dem Künstler Musik und oft auch Visuals live durch Schreiben von Code erzeugen. Typischerweise wird der Bildschirm projiziert, damit das Publikum den sich verändernden Quellcode sehen kann. Der Begriff entstand um 2012 in der TidalCycles-Community; Algoraves finden heute weltweit statt.
Ist Strudel kostenlos? Warum ist es in einem Frame eingebettet?
Ja. Strudel ist freie Open-Source-Software, die von der Strudel/TidalCycles-Community unter der AGPL-3.0-Lizenz veröffentlicht wird. Die Einbettung des offiziellen strudel.cc-Editors belässt dessen Codebasis auf ihrer eigenen Origin und sauber von dieser Website getrennt, bietet dir aber das echte, stets aktuelle REPL statt einer Kopie.