|
1 | | -1.1 Live Coding |
| 1 | +1.1 Live-Coding |
2 | 2 |
|
3 | | -# Live Coding |
| 3 | +# Live-Coding |
4 | 4 |
|
5 | | -(Übersetzung folgt) |
| 5 | +Mit Sonic Pi kannst Du etwas sehr aufregendes tun: Du kannst Musik |
| 6 | +aus Code live schreiben *und verändern*, während sie spielt. Fast so, |
| 7 | +als wenn Du mit einer Gitarre Musik machst. Mit anderen Worten: Du |
| 8 | +kannst Sonic Pi mit auf die Bühne nehmen und jammen! |
| 9 | + |
| 10 | +## Mach mal kurz den Kopf frei |
| 11 | + |
| 12 | +Wir werden später in diesem Tutorial in die Details von Sonic Pi |
| 13 | +eintauchen. Jetzt möchte ich Dir aber erst einmal zeigen, wie das ist, |
| 14 | +live Musik zu coden. Keine Sorge, Du wirst vielleicht nicht sofort |
| 15 | +alles verstehen, aber das macht nichts. Genieße kurz diesen Einblick. |
| 16 | + |
| 17 | +## Eine Live-Loop |
| 18 | + |
| 19 | +Lass uns loslegen. Kopiere den folgenden Code nach oben in einen leeren |
| 20 | +Arbeitsbereich: |
| 21 | + |
| 22 | +``` |
| 23 | +live_loop :flibble do |
| 24 | + sample :bd_haus, rate: 1 |
| 25 | + sleep 0.5 |
| 26 | +end |
| 27 | +``` |
| 28 | + |
| 29 | +Jetzt drücke den `Ausführen`-Button und Du wirst eine schöne Bass-Drum |
| 30 | +hören, die schnell vor sich hin hämmert. Mit einem Druck auf den |
| 31 | +`Stopp`-Button hört die Musik wieder auf. Aber drücke bitte noch nicht |
| 32 | +darauf... sondern probiere die folgenden Veränderungen aus: |
| 33 | + |
| 34 | +1. Lass den Beat der Bass-Drum weiter laufen. |
| 35 | +2. Verändere die Zahl hinter `sleep` von `0.5` auf einen höheren Wert, etwa `1`. |
| 36 | +3. Drücke wieder den `Ausführen`-Button. |
| 37 | +4. Gemerkt? Die Geschwindigkeit der Bass-Drum hat sich verändert. |
| 38 | +5. *Merke Dir diesen Moment.* Du hast mit Sonic Pi zum ersten Mal live |
| 39 | + Code geschrieben. Wahrscheinlich wird es nicht das letzte Mal |
| 40 | + bleiben... |
| 41 | + |
| 42 | +Ok, das war einfach. Verändern wir also die Zutaten ein wenig. Vor |
| 43 | +`sample :bd_haus` kannst Du die Zeile `sample :ambi_choir, rate: 0.3` |
| 44 | +einfügen. Dein Code müsste dan so aussehen: |
| 45 | + |
| 46 | +``` |
| 47 | +live_loop :flibble do |
| 48 | + sample :ambi_choir, rate: 0.3 |
| 49 | + sample :bd_haus, rate: 1 |
| 50 | + sleep 1 |
| 51 | +end |
| 52 | +``` |
| 53 | + |
| 54 | +So, jetzt spiele damit herum. Verändere die Werte für `rate:` - was |
| 55 | +passiert, wenn Du hohe, kleine oder negative Zahlen einträgst? Hast |
| 56 | +Du die gemerkt, wie sich eine sehr kleine Änderung des `rate:`-Wertes |
| 57 | +für das `:ambi_choir`-Sample auswirkt (z.B. 0.29)? Was passiert bei |
| 58 | +einem wirklich kleinen `sleep`-Wert? Kannst Du eine Fehlermeldung |
| 59 | +Deines Computers auslösen, wenn Du den Wert immer kleiner werden lässt? |
| 60 | +(Wenn das geschieht nimm einfach wieder einen größeren Wert für `sleep` |
| 61 | +und drücke auf `Ausführen`.) |
| 62 | + |
| 63 | +Kommentiere eine Code-Zeile aus, indem Du ein `#` an ihren Anfang |
| 64 | +schreibst: |
| 65 | + |
| 66 | +``` |
| 67 | +live_loop :flibble do |
| 68 | + sample :ambi_choir, rate: 0.3 |
| 69 | +# sample :bd_haus, rate: 1 |
| 70 | + sleep 1 |
| 71 | +end |
| 72 | +``` |
| 73 | + |
| 74 | +Siehst Du? Jetzt ignoriert der Computer diese Zeile und wir hören den |
| 75 | +Befehl nicht mehr. Was hinter einem `#` steht ist ein Kommentar. Wir |
| 76 | +können dieses Zeichen benutzen, um Code schnell zu entfernen und später |
| 77 | +wieder einzufügen. |
| 78 | + |
| 79 | +Zum Abschluss möchte ich Dir etwas zum Spielen geben. Nimm den Code |
| 80 | +unten und kopiere ihn in einen freien Arbeitsbereich. Macht nix, |
| 81 | +Du musst noch nicht alles davon durchschauen, aber Du siehst, dass da |
| 82 | +zwei Loops sind - zwei Schleifen, die gleichzeitig laufen und sich |
| 83 | +endlos wiederholen. Jetzt tue, was Du am besten kannst: Experimentiere |
| 84 | +und spiele herum. Hier sind ein paar Vorschläge: |
| 85 | + |
| 86 | +* Ändere die blauen Werte hinter `rate:` und höre zu, wie sich das |
| 87 | + Sample verändert. |
| 88 | +* Ändere die Zeitwerte von `sleep` und beobachte, wie die beiden |
| 89 | + Schleifen in unterschiedlicher Weise aneinander vorbei laufen. |
| 90 | +* Hole die auskommentierte Sample-Zeile wieder hervor und Du kannst |
| 91 | + den Sound einer umgekehrt abgespielten Gitarre genießen. |
| 92 | +* Probiere, die blauen Werte von `mix:` zu ändern auf Werte zwischen |
| 93 | + `0` (nicht im Mix) und `1` (voll im Mix) |
| 94 | + |
| 95 | +Vergiss nicht, `Ausführen` zu drücken, dann hörst Du sofort beim |
| 96 | +nächsten Durchlauf der Loops Deine Änderungen. Wenn irgendwas schiefgeht |
| 97 | +- macht nichts! Drücke `Stopp`, lösche den kaputten Code und fang noch |
| 98 | +einmal von vorn mit dem ursprünglichen Code an. Denn am besten lernt man |
| 99 | +beim Fehlermachen... |
| 100 | + |
| 101 | + |
| 102 | +``` |
| 103 | +live_loop :guit do |
| 104 | + with_fx :echo, mix: 0.3, phase: 0.25 do |
| 105 | + sample :guit_em9, rate: 0.5 |
| 106 | + end |
| 107 | +# sample :guit_em9, rate: -0.5 |
| 108 | + sleep 8 |
| 109 | +end |
| 110 | +
|
| 111 | +live_loop :boom do |
| 112 | + with_fx :reverb, room: 1 do |
| 113 | + sample :bd_boom, amp: 10, rate: 1 |
| 114 | + end |
| 115 | + sleep 8 |
| 116 | +end |
| 117 | +``` |
| 118 | + |
| 119 | +Spiele also herum und experimentiere, bis Deine Neugierde einsetzt und |
| 120 | +Du Dich fragst, wie das hier alles eigentlich wirklich funktioniert und |
| 121 | +was man noch so alles damit anstellen kann. Jetzt bist Du bereit für |
| 122 | +den Rest dieses Tutorials. |
| 123 | + |
| 124 | +Worauf wartest Du...? |
0 commit comments