Startseite>Audio-Programmierung mit Sonic Pi, Teil 1
Aus Raspberry Pi Geek 12/2018

Audio-Programmierung mit Sonic Pi, Teil 1 (Seite 4)

Wie der Name schon andeutet, können Sie die Verkettungsfunktionen hintereinanderschreiben. Der Ausdruck auswahl = leiter.take(4).shuffle liefert einen Ring, der die ersten vier Töne der C-Moll-Tonleiter aus dem letzten Beispiel in zufälliger Reihenfolge enthält, und speichert diesen unter dem Namen auswahl. Wohlgemerkt: Der ursprüngliche Ring leiter bleibt unverändert.

Weitere interessante Verkettungsfunktionen wie mirror, stretch und repeat finden Sie im eingebauten Tutorial unter der Ziffer 8.5. Auch Zufallsereignisse lassen sich in den Code einbinden [4].

Hinter den Kulissen

Mit den Knöpfen Save und Load speichern Sie Code als Textdatei beziehungsweise laden ihn aus einer solchen. Sonic Pi merkt sich aber auch ohne explizites Speichern bei Beenden des Programms die Inhalte der Textpuffer. Unter /home/pi/.sonic-pi/store/default/ finden Sie zehn Textdateien, beginnend mit workspace_zero.spi, die jeweils einem Buffer zugeordnet sind. Jedes Mal, wenn Sie in Sonic Pi einen Code starten, aktualisiert es die entsprechende Datei. Allerdings lässt sich der Zustand der Puffer aus Sonic Pi heraus nicht in einem Rutsch speichern oder laden. Dazu müssen Sie ein kleines Shell-Skript schreiben.

Für die Klangerzeugung zeichnet im Hintergrund der Supercollider Synthesis Server scsynth zuständig. Wesentlich älter als Sonic Pi, ist dieses Programm allein auf die ressourcenschonende Klangerzeugung spezialisiert. Jedes Mal, wenn Sonic Pi einen sample– oder play-Befehl ausführt, erhält Scsynth eine entsprechende Nachricht im Open-Sound-Control-Format. Auf dieses Format gehen wir in einer anderen Folge dieser Artikelserie näher ein. Scsynth bietet übrigens die Möglichkeit, über die von Sonic Pi angebotenen Synths hinaus eigene Klangerzeuger zu programmieren.

Fazit und Ausblick

Aus seinen Anfängen als lehrreiches Spielzeug für Programmieranfänger heraus hat sich Sonic Pi mittlerweile zu einem professionellen Werkzeug für die Audio-Programmierung entwickelt, das sich für die Musikproduktion ebenso eignet wie für Multimedia-Installationen. Im vorliegenden Teil der Artikelserie haben Sie die Grundlagen der Programmierung in Sonic Pi kennengelernt; in den nächsten Ausgaben tauchen wir tiefer in die Feinheiten der Materie ein. 

Interview mit dem Sonic-Pi-Entwickler Sam Aaron

<i>Raspberry Pi Geek:<i> Aus welcher Motivation heraus hast du mit der Entwicklung von Sonic Pi begonnen?

Sam Aaron: Sonic Pi wurde speziell für den damals neuen Raspberry Pi entwickelt und war zugleich eine Antwort auf den neuen Lehrplan für Informatik an britischen Schulen [5]. Wir wollten die Begeisterung junger Menschen für Musik dazu nutzen, ihnen Konzepte der Software-Entwicklung zu vermitteln. Es macht schließlich mehr Spaß, einen verrücktes Bassriff zu programmieren als ein Array mit Zahlen zu sortieren!

<i>RPG:<i> Die Programmiersprache Ruby und der Supercollider Synthesis Server bilden wichtige Bausteine von Sonic Pi. Was war der Grund für diese Designentscheidung?

SA: Für das Entwickeln, Testen und Auswerten der ersten Version standen lediglich drei Monate Zeit zur Verfügung, sodass ich stark auf frühere Arbeiten und Erfahrungen zurückgreifen musste. Ich hatte schon an der Uni und in der Industrie mithilfe der dynamischen Eigenschaften von Ruby Code geschrieben, den auch Nichtprogrammierer lesen können. Obendrein hatte ich mit Overtone bereits eine deutlich komplexere Live-Coding-Sprache entwickelt, die den enormen Leistungsumfang von Supercollider bei der Klangsynthese nutzte. Da lag es schlicht nahe, beides zu kombinieren und für Supercollider ein Ruby-Interface zu entwickeln, das schon Kinder benutzen können.

<i>RPG:<i> Du hast einmal gesagt, jeder solle Programmieren lernen. Warum?

SA: Ich denke, jeder Mensch sollte ein bisschen Programmieren können, genauso wie jeder etwas Mathe lernen oder etwas Sport machen sollte. Der Sportunterricht an der Schule macht nicht jedes Kind zum Profisportler, und genauso wenig soll der Informatikunterricht jeden Schüler zum Software-Entwickler ausbilden. Allerdings wird unsere Welt immer deutlicher durch Code bestimmt, und deshalb sollte sich meiner Überzeugung nach jeder grundlegende Kenntnisse der Software-Entwicklung aneignen, damit er sich im Alltag besser zurechtfindet.

<i>RPG:<i> Wie sehen die aktuellen Ziele und Herausforderungen für Sonic Pi aus?

Es gibt ganz konkrete Pläne für die Zukunft von Sonic Pi: Zunächst will ich die mit Version 3.0 begonnene Kommunikation mit externer Hardware weiter ausbauen. Für Version 4 stelle ich mir eine Schnittstelle vor, über die sich mehrere Rechner für gemeinsame Live-Coding-Sessions verbinden lassen – auch via Internet, sodass Nutzer etwa in Afrika und Europa gemeinsam in Echtzeit Musik coden können. Zudem möchte ich es vereinfachen, Sonic-Pi-Kompositionen einschließlich aller externen Samples zu speichern und zu teilen. Auf diese Weise müsste man nicht bei null anfangen, sondern könnte die Ideen anderer Coder weiterentwickeln oder remixen.

<i>RPG:<i> Du arbeitest seit mehr als fünf Jahren an Sonic Pi. Macht es noch Spaß?

SA:Die Arbeit an Sonic Pi macht nach wie vor jede Menge Spaß. Es ist schön, so viele positive Rückmeldungen zu erhalten und zu sehen, was für coole Sachen die Anwender damit bauen. Allerdings stellt die Finanzierung meiner Arbeit ein Problem dar: Sonic Pi soll kostenlos und quelloffen bleiben. Honorare für Workshops, Vorträge und Konzerte helfen weiter, zudem gibt es eine Reihe von Leuten, die meine Arbeit freundlicherweise über Patreon mit ein paar Euro im Monat unterstützen. Trotzdem genügt das nicht, und mehr Unterstützung wäre höchst willkommen.

<i>RPG:<i> Wir drücken dir die Daumen, dass du weitere Unterstützer findest, und bedanken uns ganz herzlich für deine Antworten!

Der Autor

Der Medienkünstler Pit Noack nutzt Sonic Pi seit der ersten Stunde. In seinem Atelier in Hannover gibt er Programmierkurse für Laien und Profis zu Sonic Pi, Python und Processing.

Infos

  1. Live-Coding-Konzert mit Sam Aaron: https://vimeo.com/218918467
  2. Tonhöhenkodierung im MIDI-Format: https://www.zem-college.de/midi/mc_taben.htm
  3. Ringe erzeugen: http://www.maschinennah.de/sonic-pi-ringe
  4. Zufallsfunktionen: http://www.maschinennah.de/zufall-in-sonic-pi/
  5. Sam Aaron über die Idee hinter Sonic Pi: https://vimeo.com/219055138
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland