# Cheatsheet für Strudel.cc ## 1. Grundlegende Syntax und Muster | Zeichen | Funktion | Beispiel | Beschreibung | |:---:|---|---|---| | `< >` | Sequenz | `` | Spielt `a`, dann `b`, dann `c` | | `[ ]` | Stack | `[bd hh]` | Spielt `bd` und `hh` gleichzeitig | | `/` | Division | `bd/2` | Spielt `bd` mit halber Geschwindigkeit (halbe Frequenz) | | `*` | Multiplikation | `sd*4` | Spielt `sd` viermal so schnell | | `!` | Zufällige Auswahl | `sd!3` | Wählt 3 Ereignisse aus dem Pattern zufällig aus | | `~` | Pause / Stille | `` | Spielt `a`, dann Pause, dann `b` | | `&` | Parallel | `a&b` | Spielt a und b gleichzeitig (wie Stack, aber flexibler) | | `,` | Zufällige Wahl | `` | Wählt zufällig eins von `a`, `b` oder `c` | | `@` | Zeit-Offset | `bd@2` | Verschiebt das Pattern um 2 Einheiten nach vorn | | `s()` | Sample abspielen | `s("bd")` | Spielt das Bassdrum-Sample | | `n()` | Noten abspielen | `n("c4")` | Spielt die Note C4 | --- ## 2. Samples und Instrumente Strudel hat eine Reihe von integrierten Samples und kann auch externe Pakete laden. | Shortcut | Sample | Beschreibung | |:---:|:---|:---| | `bd` | `kick` | Bassdrum | | `sd` | `snare` | Snare-Drum | | `cp` | `clap` | Händeklatschen | | `hh` | `hi-hat` | Hi-Hat (geschlossen) | | `oh` | `open hi-hat` | Hi-Hat (offen) | | `cr` | `crash cymbal` | Crash-Becken | | `ride` | `ride cymbal` | Ride-Becken | | `lt` | `low tom` | Low Tom | | `mt` | `mid tom` | Mid Tom | | `ht` | `high tom` | High Tom | **Allgemeine Instrumente:** * `s("synth")`: Ein klassischer analoger Synthesizer. * `s("fm")`: Ein FM-Synthesizer. * `s("superfm")`: Ein FM-Synthesizer mit SuperSaw-ähnlicher Oszillator. * `s("string")`: Eine Streicher-ähnliche Klangerzeugung. * `s("am")`: Ein AM-Synthesizer. * `s("sine")`: Ein einfacher Sinuswellen-Oszillator. **General MIDI (GM) Sounds:** * `s("gm_acoustic_grand_piano")`: Akustisches Klavier * `s("gm_acoustic_guitar_steel")`: Akustische Stahlgitarre * `s("gm_electric_bass_finger")`: E-Bass * `s("gm_violin")`: Violine * ... und viele mehr, erreichbar über `gm_[instrumentname]`. --- ## 3. Effekte und Parameter-Modifikatoren Effekte werden mit der Punkt-Syntax an ein Pattern angehängt. | Funktion | Parameter | Beispiel | Beschreibung | |:---|:---|:---|:---| | `gain()` | `0.0` - `1.0` | `.gain(0.5)` | Stellt die Lautstärke ein | | `room()` | `0.0` - `1.0` | `.room(.7)` | Fügt Hall hinzu | | `delay()` | Zeit in Zyklen | `.delay(.25)` | Fügt ein Echo hinzu | | `pan()` | `-1.0` - `1.0` | `.pan(-1)` | Position im Stereo-Panorama | | `lpf()` | Frequenz (Hz) | `.lpf(1000)` | Tiefpassfilter | | `hpf()` | Frequenz (Hz) | `.hpf(8000)` | Hochpassfilter | | `shape()` | `0.0` - `1.0` | `.shape(.3)` | Verzerrungs-Effekt | | `crush()` | `1` - `16` | `.crush(8)` | Bit-Crusher | | `phaser()`| Frequenz | `.phaser(4)` | Phaser-Effekt | | `speed()` | Wert | `.speed(.5)` | Ändert die Abspielgeschwindigkeit von Samples | | `note()` | Skala | `.note().scale("c:minor")` | Spielt die Noten als Melodie aus der Skala | | `chord()`| Akkordname | `.chord("Cmaj7")` | Spielt einen Akkord | --- ## 4. Zeit, Skalen und Generative Funktionen | Funktion | Beispiel | Beschreibung | |:---|:---|:---| | `setcps()`| `setcps(0.75)` | Setzt die Geschwindigkeit in **Cycles per Second** (Zyklen pro Sekunde) | | `setbpm()`| `setbpm(120)` | Setzt die Geschwindigkeit in **Beats per Minute** (Schläge pro Minute) | | `rand()` | `rand.range(0,1)` | Erzeugt eine zufällige Zahl | | `perlin()`| `perlin.range(.6, .9)` | Erzeugt sanft fließende Zufallswerte (Perlin-Noise) | | `sine()` | `sine.range(1, 10)` | Erzeugt eine Sinuswelle | | `scale()`| `scale("c:minor")` | Wandelt Noten in eine bestimmte Tonleiter um | | `pick()` | `pick([a,b,c])` | Wählt ein Pattern aus einer Liste aus | | `pickRestart()`| `pickRestart([a,b])` | Wählt ein Pattern und startet von vorn, wenn es beendet ist |