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")
  1. ⬆️ Klicke in das obige Textfeld ⬆️
  2. Drücke Strg+Enter zum Abspielen
  3. Ändere casio in metal
  4. Drücke Strg+Enter zum Aktualisieren
  5. Drücke Strg+Punkt zum 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 numbers

Es 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 - Basstrommel
  • sd = snare drum - Schnarrtrommel
  • rim = rimshot - Rahmenschlag
  • hh = hihat - Hallo Hut
  • oh = 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

  • AkaiLinn
  • RhythmAce
  • RolandTR808
  • RolandTR707
  • ViscoSpaceDrum

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:

ConceptSyntaxExample
SequenzLeerzeichen
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:

NameDescriptionExample
soundSpielt den Sound mit dem Namen
sound("bd sd")
bankWählt die Soundbank / Drum Machine
sound("bd sd").bank("RolandTR909")
cpmTempo in Cycles pro Minute
sound("bd sd").cpm(90)
nSample 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.