Re:publica TEN – Hörbar programmieren mit Sonic Pi

Am 2. Mai hatte ich die Gelegenheit auf der Re:publica TEN Sonic Pi vorzustellen. Dies ist der Blogbeitrag zu Präsentation: mit Hintergrundinfos, dem Code-Beispielen und Links zu Sonic Pi.

Wer nicht programmieren kann, für den erscheint Code undurchsichtig und abstrakt. Tatsache ist, dass vieles von dem, was wir wissen, wünschen, hoffen und konsumieren seinen Niederschlag in Programmcode findet. Grund genug, sich nicht nur vorgegebenen Ergebnissen abzufinden, sondern selbst Hand anzulegen.

Sonic Pi wurde von Sam Aaron im Rahmen eines Projekts an der Cambridge University entwickelt. Es ging darum, das Curriculum an britischen Grundschulen umzusetzen. Dort steht nämlich, dass Schüler und Schülerinnen sich nicht nur oberflächlich mit digitaler Technologie beschäftigen, sondern einen tieferen Einblick erhalten sollten: Sie sollen das Programmieren lernen. Dabei hilft Sonic Pi.

Was ist Sonic Pi?

Trojanisches Pferd zu pädagogischen Zwecken: Sam Aaron berichtet, dass es in einer britischen Schulklasse voller 10-jähriger unmöglich ist, zwei zusammenhängende Sätze zu sprechen. Zunächst undenkbar, in so einer Atmosphäre etwas über Funktionen, Variablen oder noch kompliziertere Konzepte der Programmierung zu referieren. Das ist aber auch gar nicht nötig. Zwei Kommandos, nämlich play und sleep reichen aus, um die Kids ans spielen, arbeiten und verstehen zu bringen. Daraus ergibt sich das weitere. Sonic Pi ermöglicht ‚audible programming‘: Unmittelbares Feedback in Form von Tönen und Musik überführt die Abstraktheit des Codes in sinnliches Erleben (und wieder zurück).

Programmierumgebung: Auf der Basis von Ruby bietet Sonic Pi eine Vielzahl von Ausdrücken, mit denen Musik erzeugt, gesteuert und organisiert werden kann. Sonic Pi enthält einen Editor und eine Laufzeitumgebung, in das Geschriebene ausgeführt und verändert werden kann.

Synthesizer: Sonic Pi liefert aktuell 39 unterschiedliche Synthesizer-Sounds. Hinzu kommen eine Vielzahl von Filtern und Effekten, mit denen diese Palette noch erweitert werden kann. (Genauer gesagt, stellt nicht Sonic Pi diese Sounds zur Verfügung, sondern SuperCollider.)

Sequencer und Sampler: Mit Sonic Pi können musikalische Strukturen hergestellt und organisiert werden. Man kann unterschiedliche Klänge mehrstimmig ablaufen lassen, loopen oder auch abhängig vom Zufall auftauchen lassen. Sonic Pi versteht auch den Umgang mit Samples. 130 davon bringt es aktuell mit. Aber auch Klangdateien von der eigenen Festplatte können eingebunden werden (in .wav- oder .aiff-Format). Samples können u.a. gedehnt, gestaucht oder partiell abgespielt werden.

Musikalische Experimentierwerkstatt: Mit Sonic Pi kann man musikalische Experimente durchführen, Kompositionen nachbauen und verstehen und davon ausgehend eigenes entwerfen.

Live Coding-Instrument: Schließlich wird Sonic Pi zunehmend auch für das Live Coding eingesetzt. Statt D(isk) J(ockey) steht der C(ode) J(ockey) hinter seinem Laptop und kreiert Live-Musik, zu der getanzt wird. Sam Aaron beherrscht sein Intrument mittlerweile beeindruckend virtuos.

Code-Beispiele

Sonic Pi enthält ein hervorragendes Tutorial. Deshalb spare ich es mir an dieser Stelle, die Beispiele aus der Präsentation ausführlich zu kommentieren. Meine Empfehlung: Sonic Pi herunterladen und installieren, das Tutorial im Programm aufrufen (Shortcut: Alt-i) ansehen und dann gleich anfangen. Noch ein kleiner Hinweis: Das deutschprachige Tutorial ist im Moment nicht ganz auf dem neuesten Stand (vermutlich jedoch in der nächsten Version 2.11). Wer also des englischen mächtig ist, kann die englischen Seiten online lesen.

Die Code-Beispiele enthalten teilweise mehrere Abschnitte, die nicht unbedingt parallel gespielt werden können. Aus diesem Grund sind Teile auskommentiert. Das geschieht in Sonic Pi u.a. mit folgendem Befehl:

Also, falls man nichts oder zuviel hört, bitte nach „comment“ oder „uncomment“ suchen.

Play & Sleep

Mit diesen beiden Kommandos kann man schon sehr viel anfangen. Das nachfolgende Beispiel benutzt weiter unten auch noch den Befehl „play_pattern_timed“, eine Kombination aus „play“ und „sleep“; wenn man zwei musikalische Abschnitte gleichzeitig hören möchte, dann hilft der Befehl „in_thread“:

Samples & live_loop

Mit Samples kann man sich in Sonic Pi stundenlang vergnügen. Spätestens hier sollte man die „live_loop“ kennenlernen. Sie ermöglicht u.a., dass man einen Sound/Sample verändert, ohne dass dieser beim erneuten Klick auf „Run“ vervielfacht wird. „Live Loops“ sind auch die Basis für das Live Coding: Geht etwas schief beim Coden, dann läuft der Sound weiter (bis auf die Schleife, bei der man den Fehler gemacht hat). Das ist besonders dann von Vorteil, wenn man vor sich einige hundert Leute hat, die weitertanzen möchten.

Hier einige Beispiele zum Thema „Samples“, die ich in der Präsentation gezeigt habe:

Clapping Music von Steve Reich

William Denton hat die „Clapping Music“ von Steve Reich in Sonic Pi umgesetzt. Solche Experimente kann man gut als Basis für eigene Versuche verwenden:

Drums

Ein einfaches Beispiel für ein Drum-Pattern, Bass, einen Hintergrundakkord und einer pentatonischen Melodie, die per Zufall variiert wird:

Tiny Hommage to early Detroit Techno

Schließlich ein schon aufwändigeres Beispiel. Um die einzelnen „live_loops“ zu hören, muss man im ‚Mixer‘ bei jeweiligen Instrument statt einer „0“ eine „1“ eingeben. Die „live_loop : synth2“ wird eingeblendet. Es dauert also eine Weile, bis man etwas hört:

Links:

Website http://sonic-pi.net/
Github https://github.com/samaaron/sonic-pi
Google Groups https://groups.google.com/forum/#!forum/sonic-pi
Live Coding-Channel (Sam Aaron) https://www.livecoding.tv/samaaron/
Github (Leuphana Universität) https://github.com/mbutz/sonicpi-leuphana-ws1516
Support Sonic Pi https://www.patreon.com/samaaron

Kategorie: Allgemein, Bildung, Howto, Musik, Open Source Kommentare deaktiviert für Re:publica TEN – Hörbar programmieren mit Sonic Pi

Kommentarfunktion ist deaktiviert.