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.
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.
| Konstrukt | Beispiel | Wirkung |
|---|---|---|
| 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
Musterrezepte für den Editor
Kopiere eines davon in den eingebetteten Editor, drücke Wiedergabe und verändere sie jeweils um ein Token.
| Code | Was du hörst | Gezeigte Idee |
|---|---|---|
| sound("bd hh sd hh") | Ein einfacher Backbeat: Kick, Hat, Snare, Hat, einmal pro Zyklus | Vier 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-Hats | Ein 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 wandert | Spitze 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 8 | Euklidische 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 wird | Transformationen werden von links nach rechts verkettet: Muster umkehren, dann Geschwindigkeit verdoppeln. |
So startest du mit Live Coding
- Klicke auf ein Einstiegsmuster – Schlagzeug, Melodie, Basslinie oder Polyrhythmik –, um seinen Code in den eingebetteten Strudel-Editor zu laden.
- Drücke im Editor auf Wiedergabe (Browser verlangen einen Klick, bevor Klang starten kann).
- 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.
- Schichte mit stack() weitere Muster und forme sie mithilfe der Kurzübersicht mit fast, slow, rev oder euclid.
- Wenn ein Muster mehr als eine Skizze wird, öffne die vollständige Strudel-Umgebung mit Sound-Browser und Visuals.