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:
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.
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:
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.
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