Sonic Pi - Musik coden - Code klingt
  • Home
  • Sonic Pi - Die Sprache
  • Was kann Sonic Pi?
  • Sonic Pi - Blog
  • Contact

Sonic Pi - die Sprache

Die Sprache (der Syntax) von Sonic Pi ist bewusst ganz einfach gehalten. "Wenn es ein Schulkind von 10 Jahren nicht versteht, kommt's nicht in rein", sagt Sam Aaron.
Nebst dieser Devise bietet Sonic Pi aber durchaus sehr komplexe Programmiermöglichkeiten.
Als Sounderzeuger dient Supercollider, eine sehr mächtige Entwicklungsumgebung und Programmiersprache für Klangsynthese und algorithmische Komposition.
​
​Sonic Pi bietet unter Help sehr gute Tutorials, Beispiele und Erklärungen innerhalb des Programms an. Im Folgenden wird also nur kurz auf die wichtigsten Kontrollstrukturen und Variablen eingegangen.
​
Anweisungen
Mit der Anweisung play ​kann ich nun schon einen Klang in Sonic Pi erzeugen:
play 60   #spielt die Midinote 60 - entspricht c4 auf der Klaviertastatur

​Nummern können erhöht oder vertieft werden. Die Tonhöhe verändert sich dementsprechend.

Natürlich versucht man nun mehrere play-Anweisungen ​untereinander zu schreiben. Das Ergebnis verblüfft. Sonic Pi spielt alle play gleichzeitig ab.
Wichtige Informatik-Erkenntnis: Programme führen den Code gleichzeitig aus!
Ich brauche also eine 2. Anweisung: sleep
Mit diesen 2 Anweisungen lässt sich rein theoretisch eine nicht unbedeutende Menge an westlicher Musik abbilden.
play 60   #spielt die Midinote 60 - entspricht c4 auf der Klaviertastatur
sleep 1   #das Programm schläft 1 - entspricht einem Schlag beim Tempo x (default 120)
play :D4  #auch eine konkrete Tonangabe ist möglich
sleep 1
play 64
sleep 1
play 60

Mit der Anweisung sample lassen sich wav- und aiff-Sounddateien direkt vom Rechner abspielen.
sample :ambi_lunar_land

Schleifen
Nach dem ersten Anweisungen kommt man schnell auf den Geschmack. Beim Versuch ein einfaches Kinderlied wie Bruder Jakob zu schreiben, scheitere ich schnell mal was den Überblick angeht. Fehler schleichen sich rasch ein.

Ich brauche eine Vereinfachung - eine Schleife. Jede Passage des Liedes kommt ja 2 mal hintereinander.
Dies ist in Sonic Pi genau so simpel wie die Anweisungen play und sleep.
2.times do   #2 mal mache - und mit end abschließen 
   play 60
   sleep 1
   play 62
   sleep 1
   play 64
   sleep 1
   play 60
   sleep 1
end

Variablen
Mit play, sleep, einer Scheife und einer Variable lässt sich nun schon viel anstellen:
i = 30

60.times do
  play i          #spielt beim ersten Mal den Ton 30
  sleep 0.06125
  i = i+1         #erhöht i um 1
end

Funktionen
Mit einer Funktionen (Methoden) kann ich ein kleines Programm ausführen. Dies ist in der Programmierung dann sinnvoll, wenn immer wieder gleicher oder ähnlicher Code geschrieben werden müsste.
define :kleinesProgramm do |wieOft, ton, pause|   #Name der Funktion, sowie die Parameter und deren Anzahl sind frei bestimmbar.
  wieOft.times do
    play ton
    sleep pause
    ton = ton + 1
  end
end

kleinesProgramm 50, 30, 0.015                     #Aufruf der Funktion mit den Werten für die Parameter
Proudly powered by Weebly
  • Home
  • Sonic Pi - Die Sprache
  • Was kann Sonic Pi?
  • Sonic Pi - Blog
  • Contact