Erste Sounds
Dies ist das erste Kapitel im Strudel Workshop, schön dich an Bord zu haben!
Textfelder
Der Workshop ist voller interaktiver Textfelder. Lass uns lernen wie sie funktionieren. Hier ist eins:
sound("casio")- ⬆️ Klicke in das obige Textfeld ⬆️
- Drücke
Strg+Enterzum Abspielen - Ändere
casioinmetal - Drücke
Strg+Enterzum Aktualisieren - Drücke
Strg+Punktzum Stoppen
Mac: Strg = control oder auch option
Glückwunsch, du kannst jetzt live coden!
Sounds
Gerade haben wir schon den ersten sound mit sound abgespielt:
sound("casio")casio ist einer von vielen Standard Sounds.
Probier ein paar andere Sounds aus:
insect wind jazz metal east crow casio space numbersEs kann sein, dass du kurz nichts hörst während ein neuer Sound lädt.
Sample Nummer ändern mit :
Ein Sound kann mehrere Samples (Audio Dateien) enthalten.
Du kannst ein anderes Sample wählen, indem du : und eine Zahl an den Sound-Namen anhängst:
sound("casio:1")Probiere verschiedene Sound / Zahlen Kombinationen.
Ohne Zahl ist gleichbedeutend mit :0
Jetzt weißt du wie man Sounds abspielt und ihre Sample Nummer einstellt. Vorerst bleiben wir bei den voreingestellten Sounds, später erfahren wir noch wie man eigene benutzt.
Drum Sounds
Strudel kommt von Haus aus mit einer breiten Auswahl an Drum Sounds:
sound("bd hh sd oh")Diese 2-Buchstaben Kombinationen stehen für verschiedene Teile eines Schlagzeugs:
bd= bass drum - Basstrommelsd= snare drum - Schnarrtrommelrim= rimshot - Rahmenschlaghh= hihat - Hallo Hutoh= open hihat - Offener Hallo Hut
Probier verschiedene Sounds aus!
Wir können den Charakter des Drum Sounds verändern, indem wir mit bank die Drum Machine auswählen:
sound("bd hh sd oh").bank("RolandTR909")In diesem Beispiel ist RolandTR909 der Name der Drum Machine, die eine prägende Rolle für House und Techno Musik spielte.
Ändere RolandTR909 in
AkaiLinnRhythmAceRolandTR808RolandTR707ViscoSpaceDrum
Es gibt noch viel mehr, aber das sollte fürs Erste reichen..
🦥 Tipp für faule: Mach Doppel-Klick auf einen Namen um ihn zu markieren.
Dann kannst du ihn mit Strg+C kopieren und mit Strg+V einfügen.
Sequenzen / Sequences
Im letzten Beispiel haben wir schon gesehen dass man mehrere Sounds hintereinander abspielen kann wenn man sie durch Leerzeichen trennt:
sound("bd hh sd hh")Beachte wie der aktuell gespielte Sound im Code markiert und auch darunter visualisiert wird.
Versuch noch mehr Sounds hinzuzfügen!
Je länger die Sequence, desto schneller
sound("bd bd hh bd rim bd hh bd")Der Inhalt einer Sequence wird in einen sogenannten Cycle (=Zyklus) zusammengequetscht.
Tempo ändern mit cpm
sound("bd bd hh bd rim bd hh bd").cpm(40)cpm = cycles per minute = Cycles pro Minute
Das Tempo ist standardmäßig auf 60cpm eingestellt, also 1 Cycle pro Sekunde.
cpm ist angelehnt an bpm (=beats per minute).
Wir werden später noch mehr Möglichkeiten kennen lernen das Tempo zu verändern.
Pausen mit ’~’
sound("bd hh ~ rim")Tilde tippen:
- Windows / Linux:
Alt Gr+~ - Mac:
option+N
Unter-Sequenzen mit [Klammern]
sound("bd [hh hh] rim [hh hh]")Der Inhalt der Klammer wird ebenfalls zusammengequetscht!
Füge noch mehr Sounds in die Klammern ein!
Genau wie bei der ganzen Sequence wird eine Unter-Sequence schneller je mehr drin ist.
Multiplikation: Dinge schneller machen
sound("bd hh*2 sd hh*3")Multiplikation: Vieeeeeeel schneller
sound("bd hh*16 sd hh*8")Tonhöhe = sehr schneller Rhythmus
Multiplikation: Ganze Unter-Sequences schneller machen
sound("bd [sd hh]*2")Bolero:
sound("sd sd*3 sd sd*3 sd sd sd sd*3 sd sd*3 sd*3 sd*3")
.cpm(10)Unter-Unter-Sequenzen mit [[Klammern]]
sound("bd [[rim rim] hh]")Du kannst so tief verschachteln wie du willst!
Parallele Sequenzen mit Komma
sound("hh hh hh, bd casio")Du kannst so viele Kommas benutzen wie du möchtest:
sound("hh hh hh, bd bd, ~ casio")Kommas können auch in Unter-Sequenzen verwendet werden:
sound("hh hh hh, bd [bd,casio]")Ist dir aufgefallen dass sich die letzten beiden Beispiele gleich anhören?
Es kommt öfter vor, dass man die gleiche Idee auf verschiedene Arten ausdrücken kann.
Mehrere Zeilen schreiben mit ` (backtick)
sound(`bd*2, ~ cp, ~ ~ ~ oh, hh*4, [~ casio]*2`)
Ob man ” oder ` benutzt ist nur eine Frage der Übersichtlichkeit.
Sample Nummer separat auswählen
Benutzt man nur einen Sound mit unterschiedlichen Sample Nummer sieht das so aus:
sound("jazz:0 jazz:1 [jazz:4 jazz:2] jazz:3*2")Das gleiche kann man auch so schreiben:
n("0 1 [4 2] 3*2").sound("jazz")Rückblick
Wir haben jetzt die Grundlagen der sogenannten Mini-Notation gelernt, der Rhythmus-Sprache von Tidal.
Das haben wir bisher gelernt:
| Concept | Syntax | Example |
|---|---|---|
| Sequenz | Leerzeichen | sound("bd bd sd hh") |
| Sound Nummer | :x | sound("hh:0 hh:1 hh:2 hh:3") |
| Pausen | ~ | sound("metal ~ jazz jazz:1") |
| Unter-Sequenzen | [] | sound("bd wind [metal jazz] hh") |
| Unter-Unter-Sequenzen | [[]] | sound("bd [metal [jazz sd]]") |
| Schneller | * | sound("bd sd*2 cp*3") |
| Parallel | , | sound("bd*2, hh*2 [hh oh]") |
Die mit Apostrophen umgebene Mini-Notation benutzt man normalerweise in eine sogenannten Funktion. Die folgenden Funktionen haben wir bereits gesehen:
| Name | Description | Example |
|---|---|---|
| sound | Spielt den Sound mit dem Namen | sound("bd sd") |
| bank | Wählt die Soundbank / Drum Machine | sound("bd sd").bank("RolandTR909") |
| cpm | Tempo in Cycles pro Minute | sound("bd sd").cpm(90) |
| n | Sample Nummer | n("0 1 4 2").sound("jazz") |
Beispiele
Einfacher Rock Beat
sound("bd sd, hh*4").bank("RolandTR505").cpm(100/2)Klassischer House
sound("bd*2, ~ cp, [~ hh]*2").bank("RolandTR909")Ist die aufgefallen dass die letzten 2 Patterns extrem ähnlich sind? Bestimmte Drum Patterns werden oft genreübergreifend wiederverwendet.
We Will Rock you
sound("bd*2 cp").bank("RolandTR707").cpm(81/2)Yellow Magic Orchestra - Firecracker
sound("bd sd, ~ ~ ~ hh ~ hh ~ ~, ~ perc ~ perc:1*2")
.bank("RolandCompurhythm1000")Nachahmung eines 16 step sequencers
sound(` [~ ~ oh ~ ] [~ ~ ~ ~ ] [~ ~ ~ ~ ] [~ ~ ~ ~ ], [hh hh ~ ~ ] [hh ~ hh ~ ] [hh ~ hh ~ ] [hh ~ hh ~ ], [~ ~ ~ ~ ] [cp ~ ~ ~ ] [~ ~ ~ ~ ] [cp ~ ~ ~ ], [bd ~ ~ ~ ] [~ ~ ~ bd] [~ ~ bd ~ ] [~ ~ ~ bd] `).cpm(90/4)
Noch eins
sound(`
[~ ~ ~ ~ ] [~ ~ ~ ~ ] [~ ~ ~ ~ ] [~ ~ oh:1 ~ ],
[hh hh hh hh] [hh hh hh hh] [hh hh hh hh] [hh hh ~ ~ ],
[~ ~ ~ ~ ] [cp ~ ~ ~ ] [~ ~ ~ ~ ] [~ cp ~ ~ ],
[bd bd ~ ~ ] [~ ~ bd ~ ] [bd bd ~ bd ] [~ ~ ~ ~ ]
`).bank("RolandTR808").cpm(88/4)Nicht so typische Drums
s(`jazz*2, insect [crow metal] ~ ~, ~ space:4 ~ space:1, ~ wind`) .cpm(100/2)
Jetzt haben wir eine grundlegende Ahnung davon wie man mit Strudel Beats baut! Im nächsten Kapitel werden wir ein paar Töne spielen.