mirror of
https://github.com/eliasstepanik/strudel.git
synced 2026-01-11 21:58:37 +00:00
optimize sounds chapter after teach test
This commit is contained in:
parent
3ccbd35fad
commit
c287ff554c
@ -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>
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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
|
||||
/>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user