optimize sounds chapter after teach test

This commit is contained in:
Felix Roos 2023-06-09 00:26:40 +02:00
parent 3ccbd35fad
commit c287ff554c
4 changed files with 97 additions and 37 deletions

View File

@ -278,7 +278,7 @@ Was passiert wenn du den Wert automatisierst? z.b. `.fast("<1 [2 4]>")` ?
Anstatt Werte schrittweise zu automatisieren können wir auch sogenannte Signale benutzen:
<MiniRepl hideHeader client:visible tune={`sound("hh*16").gain(sine)`} punchcard />
<MiniRepl hideHeader client:visible tune={`sound("hh*16").gain(sine)`} punchcard punchcardLabels={false} />
<Box>

View File

@ -11,7 +11,9 @@ import QA from '@components/QA';
Dies ist das erste Kapitel im Strudel Workshop, schön dich an Bord zu haben!
Los geht's mit ein paar Sounds:
## Textfelder
Der Workshop ist voller interaktiver Textfelder. Lass uns lernen wie sie funktionieren. Hier ist eins:
<MiniRepl hideHeader client:visible tune={`sound("casio")`} />
@ -21,37 +23,51 @@ Los geht's mit ein paar Sounds:
2. Drücke `Strg`+`Enter` zum Abspielen
3. Ändere `casio` in `metal`
4. Drücke `Strg`+`Enter` zum Aktualisieren
5. Drücke `Strg`+`.` zum Stoppen
5. Drücke `Strg`+`Punkt` zum Stoppen
Mac: `Strg` = `control` oder auch `option`
</Box>
Glückwunsch, du kannst nun live coden!
Die ganze Seite ist voller interaktiver Textfelder.
In jedes kannst du hineinklicken und mit `Strg`+`Enter` starten / aktualisieren und mit `Strg+.` stoppen.
## Sounds
**Probiere mehr Sounds aus**
Gerade haben wir schon den ersten sound mit `sound` abgespielt:
Mit `:` gefolgt von einer Zahl kannst du einen anderen Sound aus dem Set wählen:
<MiniRepl hideHeader client:visible tune={`sound("casio:0")`} hideHeader />
<MiniRepl hideHeader client:visible tune={`sound("casio")`} />
<Box>
Ändere `casio:0` in `casio:1` um einen anderen Sound aus dem Set `casio` zu hören.
Ohne Zahl ist gleichbedeutend mit `:0`
`casio` ist einer von vielen Stanard Sounds.
Hier sind ein paar mehr Sounds zum ausprobieren:
Probier ein paar andere Sounds aus:
```
insect wind jazz metal east crow casio space numbers
```
Probier verschiedene Kombinationen von Sounds und Nummern! Es kann sein dass du kurz nichts hörst während ein neuer Sound lädt.
Es kann sein, dass du kurz nichts hörst während ein neuer Sound lädt.
</Box>
Jetzt weißt du wie man verschiedene Sounds benutzt.
**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:
<MiniRepl hideHeader client:visible tune={`sound("casio:1")`} hideHeader />
<Box>
Probiere verschiedene Sound / Zahlen Kombinationen.
Ohne Zahl ist gleichbedeutend mit `:0`
</Box>
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
@ -60,21 +76,25 @@ Strudel kommt von Haus aus mit einer breiten Auswahl an Drum Sounds:
<MiniRepl hideHeader client:visible tune={`sound("bd hh sd oh")`} hideHeader />
Diese 2-Buchstaben Kombinationen stehen für verschiedene Teile eines Drumsets:
<Box>
Diese 2-Buchstaben Kombinationen stehen für verschiedene Teile eines Schlagzeugs:
- `bd` = **b**ass **d**rum - Basstrommel
- `sd` = **s**nare **d**rum - Schnarrtrommel
- `rim` = **rim**shot - Rahmenschlag
- `hh` = **h**i**h**at
- `oh` = **o**pen **h**ihat - Offenes Hi-Hat
- `hh` = **h**i**h**at - Hallo Hut
- `oh` = **o**pen **h**ihat - Offener Hallo Hut
Probier verschiedene Sounds aus!
</Box>
Wir können den Charakter des Drum Sounds verändern, indem wir mit `bank` die Drum Machine auswählen:
{/* To change the sound character of our drums, we can use `bank` to change the drum machine: */}
<MiniRepl hideHeader client:visible tune={`sound("bd hh sd oh").bank("RolandTR909")`} hideHeader />
In diesem Beispiel ist `RolandTR909` der Name der Drum Machine, welche eine prägende Rolle für House und Techno Musik spielte.
In diesem Beispiel ist `RolandTR909` der Name der Drum Machine, die eine prägende Rolle für House und Techno Musik spielte.
<Box>
@ -88,6 +108,9 @@ In diesem Beispiel ist `RolandTR909` der Name der Drum Machine, welche eine prä
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.
</Box>
## Sequenzen / Sequences
@ -120,34 +143,43 @@ cpm = **c**ycles per **m**inute = Cycles pro Minute
Das Tempo ist standardmäßig auf 60cpm eingestellt, also 1 Cycle pro Sekunde.
`cpm` ist angelehnt an `bpm` (=beats per minute).
</Box>
Wir werden später noch mehr Möglichkeiten kennen lernen wie man das Tempo verändert.
Wir werden später noch mehr Möglichkeiten kennen lernen das Tempo zu verändern.
**Pausen mit '~'**
<MiniRepl hideHeader client:visible tune={`sound("bd hh ~ rim")`} punchcard />
<Box>
Tilde tippen:
- Windows / Linux: `Alt Gr` + `~`
- Mac: `option` + `N`
</Box>
**Unter-Sequenzen mit [Klammern]**
<MiniRepl hideHeader client:visible tune={`sound("bd [hh hh] rim [hh bd]")`} punchcard />
<MiniRepl hideHeader client:visible tune={`sound("bd [hh hh] rim [hh hh]")`} punchcard />
<Box>
Der Inhalt der Klammer wird ebenfalls zusammengequetscht!
Füge noch mehr Sounds in die Klammern ein!
</Box>
Genau wie bei der ganzen Sequence wird der eine Unter-Sequence schneller je mehr drin ist.
Genau wie bei der ganzen Sequence wird eine Unter-Sequence schneller je mehr drin ist.
**Multiplikation: Dinge schneller machen**
<MiniRepl hideHeader client:visible tune={`sound("bd hh*2 sd hh*3")`} punchcard />
**Multiplikation: Unter-Sequences schneller machen**
<MiniRepl hideHeader client:visible tune={`sound("bd [hh sd]*2")`} punchcard />
**Multiplikation: Vieeeeeeel schneller**
<MiniRepl hideHeader client:visible tune={`sound("bd hh*16 sd hh*8")`} punchcard />
@ -158,6 +190,20 @@ Tonhöhe = sehr schneller Rhythmus
</Box>
**Multiplikation: Ganze Unter-Sequences schneller machen**
<MiniRepl hideHeader client:visible tune={`sound("bd [sd hh]*2")`} punchcard />
Bolero:
<MiniRepl
hideHeader
client:visible
tune={`sound("sd sd*3 sd sd*3 sd sd sd sd*3 sd sd*3 sd*3 sd*3")
.cpm(10)`}
punchcard
/>
**Unter-Unter-Sequenzen mit [[Klammern]]**
<MiniRepl hideHeader client:visible tune={`sound("bd [[rim rim] hh]")`} punchcard />
@ -172,7 +218,7 @@ Du kannst so tief verschachteln wie du willst!
<MiniRepl hideHeader client:visible tune={`sound("hh hh hh, bd casio")`} punchcard />
Du kannst soviele Kommas benutzen wie du magst:
Du kannst so viele Kommas benutzen wie du möchtest:
<MiniRepl hideHeader client:visible tune={`sound("hh hh hh, bd bd, ~ casio")`} punchcard />
@ -184,31 +230,37 @@ Kommas können auch in Unter-Sequenzen verwendet werden:
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.
Es kommt öfter vor, dass man die gleiche Idee auf verschiedene Arten ausdrücken kann.
</Box>
**Mehrere Zeilen mit \`**
**Mehrere Zeilen schreiben mit \` (backtick)**
<MiniRepl
hideHeader
client:visible
tune={`sound(\`bd*2, ~ cp,
~ ~ ~ oh, hh*4,
[~ sawtooth]*2\`)`}
[~ casio]*2\`)`}
punchcard
/>
**Sound Nummer separat auswählen**
<Box>
Anstatt mit ":" kann man die Sound Nummer auch separat mir der `n` Funktion steuern:
Ob man " oder \` benutzt ist nur eine Frage der Übersichtlichkeit.
<MiniRepl hideHeader client:visible tune={`n("0 1 [4 2] 3*2").sound("jazz")`} punchcard />
</Box>
Das ist kürzer und lesbarer als:
**Sample Nummer separat auswählen**
Benutzt man nur einen Sound mit unterschiedlichen Sample Nummer sieht das so aus:
<MiniRepl hideHeader client:visible tune={`sound("jazz:0 jazz:1 [jazz:4 jazz:2] jazz:3*2")`} punchcard />
Das gleiche kann man auch so schreiben:
<MiniRepl hideHeader client:visible tune={`n("0 1 [4 2] 3*2").sound("jazz")`} punchcard />
## Rückblick
Wir haben jetzt die Grundlagen der sogenannten Mini-Notation gelernt, der Rhythmus-Sprache von Tidal.
@ -309,3 +361,11 @@ insect [crow metal] ~ ~,
Jetzt haben wir eine grundlegende Ahnung davon wie man mit Strudel Beats baut!
Im nächsten Kapitel werden wir ein paar [Töne spielen](/de/workshop/first-notes).
---
- vllt mal das wörtchen `sound` behandeln
- was ist überhaupt casio??
- Strg = ctrl on mac "+" ist verwirrend
- cursor ist sehr undeutlich wenn nicht in emacs mode
- wieviele zahlen gibt es

View File

@ -279,7 +279,7 @@ By the way, inside Mini-Notation, `fast` is `*` and `slow` is `/`.
Instead of changing values stepwise, we can also control them with signals:
<MiniRepl hideHeader client:visible tune={`sound("hh*16").gain(sine)`} punchcard />
<MiniRepl hideHeader client:visible tune={`sound("hh*16").gain(sine)`} punchcard punchcardLabels={false} />
<Box>

View File

@ -195,7 +195,7 @@ It is quite common that there are many ways to express the same idea.
client:visible
tune={`sound(\`bd*2, ~ cp,
~ ~ ~ oh, hh*4,
[~ sawtooth]*2\`)`}
[~ casio]*2\`)`}
punchcard
/>