Title: digi.komp8 Beispiel
Course: Sonic Pi - Einführung

Informatik, Musik

Sonic Pi - Einführung

9. Schulstufe

Veröffentlicht am 30.03.2017 von luiscript

Aufgabe 1

Erste Schritte

- Lade dir das Programm Sonic Pi von der Website http://sonic-pi.net herunter und installiere es auf deinem PC.
- Öffne das Programm und kopiere den Text aus "Beispielgroove" in Sonic Pi und starte ihn dann mit der Tastenkombination  ALT+R. (MAC: cmd+R).
- Verändere die Werte innerhalb von "ring(53, 55,60)" und drücke wieder ALT+R. Die Änderungen werden sofort übernommen.

Probiere aus, was du sonst noch verändern kannst!

Aufgabe 2

Zwei grundlegende Befehle: play und sleep

Unser Ziel ist die Erstellung eines eigenen Musikstücks, das du nach deinen Vorstellungen ausgestalten kannst. Damit du jedoch mit Sonic Pi selbst Melodien erstellen kannst, benötigst du einige grundlegende Befehle.

Die zwei grundlegendsten Befehle in Sonic Pi sind play und sleep, um die du nicht herumkommen wirst.
Mit play wird angegeben, dass eine bestimmte Note gespielt werden soll. Dafür gibst du ganz einfach play mit der zugehörigen MIDI Zahl bzw. der Note ein. Probiere die zwei Beispiele für den play-Befehl, zuerst mit MIDI (50) und dann mit einer Note (:A4).

play :E4
play :G4
play :C5
play: E5

Damit werden alle Töne zur gleichen Zeit abgespielt - damit du auch Melodien und Rhythmen spielen kannst, kommt jetzt gleich der zweite Befehl.
Dieser nennt sich sleep. Wenn du diese Anweisung gibst, wartet oder "schläft" dein Programm so lange, wie angegeben. Bei sleep 1 beispielsweise wartet das Programm eine Sekunde bis zur nächsten Anweisung. Füge nun zu deinen Noten von der vorherigen Übung einen sleep-Befehl ein und schau, was sich verändert.

play :E4
sleep 0.20
play :G4
sleep 0.25
play :C5
sleep 0.25
play :E5
sleep 0.40

Hiermit hast du bereits die wichtigsten Bestandteile deiner ersten Sonic Pi Programme kennengelernt.
Versuche nun eine simple Melodie mit deinem bisherigen Wissen in Sonic Pi zu programmieren.

Aufgabe 3

Sonic Pi kann jedoch nicht nur Töne spielen, sondern bietet auch eine große Anzahl an sogenannten Samples, die du in deiner Musik verwenden kannst.

Um ein Sample abzuspielen, verwendet man den Befehl sample und schreibt dahinter : und den Namen des Samples, z.B. :drum_heavy_kick. Sieh im unteren Bereich von Sonic Pi nach, welche Samples es noch gibt und teste sie aus!

Ein wichtiges Werkzeug, um sich beim Coding Tipparbeit zu sparen, sind Blöcke.
Nimm zum Beispiel diesen Code:

sample :drum_heavy_kick
sample :elec_blip2
sleep 0.25
sample :elec_blip2
sleep 0.25
sample :drum_snare_soft
sample :drum_tom_mid_soft
sleep 0.25
sample :drum_tom_mid_soft
sleep 0.25

Damit daraus jedoch ein Beat wird, wollen wir ihn öfter abspielen. Wir verwenden dafür die Wörter do und end um den Code als Block zu kennzeichnen. Wir müssen Sonic Pi jedoch noch sagen, was er mit diesem Block machen soll! Um ihn durchgängig abzuspielen, verwenden wir wie im ersten Beispiel den Befehl "live_loop :meinloop". Einen solchen Loop nennt man auf Deutsch "Schleife", weil der Programmcode immer wieder von vorne startet.

live_loop :meinloop do
  sample :drum_heavy_kick
  sample :elec_blip2
  sleep 0.25
  sample :elec_blip2
  sleep 0.25
  sample :drum_snare_soft
  sample :drum_tom_mid_soft
  sleep 0.25
  sample :drum_tom_mid_soft
  sleep 0.25
end

Siehst du wie Sonic Pi den Block nach rechts rückt? Somit siehst du auf den ersten Blick welche Teile des Codes zusammengehören.
Manchmal möchte man Blöcke auch nur für ein paar Male wiederholen. Dann verwendet man z.B. 2.times anstatt live_loop :meinloop. Probier es aus!

Manchmal möchte man Blöcke innerhalb eines anderen Blocks anlegen. Dies ist ein wichtiges Prinzip von Sonic Pi und anderen Programmiersprachen. Kopiere diesen Code und versuche nachzuvollziehen, wie der Computer ihn Stück für Stück abarbeitet.

live_loop :meinloop do
  sample :drum_heavy_kick
  sample :elec_blip2
  sleep 0.25
  sample :elec_blip2
  sleep 0.25
  sample :drum_snare_soft
  4.times do
    sample :drum_tom_mid_soft
    sleep 0.125
  end
end

Verwende jetzt dein Wissen, um deine eigenen Ideen umzusetzen! Verwende das "Cheatsheet" wenn du eine Funktion nicht verstehst, oder bitte deine Lehrerin/deinen Lehrer um Hilfe.