Audio-Programmierung mit Sonic Pi, Teil 1

© Janski, Photocase.com

Bytes und Beats

In Sonic Pi können Sie mit wenigen Codezeilen Klänge manipulieren, Beats zusammenstellen und ganze Songs komponieren.

In der Raspbian-Grundausstattung findet sich mit Sonic Pi ein Programm, das wie Scratch Einsteiger spielerisch an die Software-Entwicklung heranführen soll. Während Scratch den Schwerpunkt bei Grafik und Animation setzt, spezialisiert sich Sonic Pi auf Klang und Musik. Im Gegensatz zu Scratch ist Sonic Pi nicht nur ein lehrreiches und amüsantes Spielzeug, sondern eine ausgewachsene Programmiersprache, die sich auch für anspruchsvolle Aufgaben eignet, bis hin zur Verwendung in interaktiven Multimedia-Installationen.

Dieser Artikel bildet den Auftakt einer kleinen Serie zum professionellen Einsatz von Sonic Pi. Wir starten mit einem flotten Rundgang, der über die Hintergründe aufklärt und einige der wichtigsten Sprachmittel kurz vorstellt. Die Folgeartikel bieten dann Vertiefungen an und stellen fortgeschrittene Themen vor – etwa die Interaktion mit anderen Programmen mittels Open Sound Control und das Einbinden externer Audio-Hardware per MIDI.

Erste Schritte

Sollte Sonic Pi noch nicht installiert sein, holen Sie das mit dem Befehl sudo apt install sonic-pi nach. Sie starten das Programm über den Starter im Hauptmenü unter Entwicklung oder im Terminal mit sonic-pi.

Die Bedienung gestaltet sich denkbar einfach: Sie schreiben Code in einen der zehn Textpuffer (Abbildung 1). Mit einem Klick auf den Run-Knopf links oben oder mittels [Alt]+[R] führen Sie den Code aus. Mit dem Help-Knopf oben rechts oder per [Alt]+[I] öffnen und schließen Sie ein Hilfefenster, das unter anderem ein Tutorial und Übersichten über die Sprachmittel von Sonic Pi bietet. Mit dem Einzeiler sample :elec_blip spielen Sie beispielsweise einen klassischen Techno-Sound ab.

Abbildung 1: Das übersichtliche Programmfenster der Sonic-Pi-IDE umfasst lediglich eine Schalterleiste sowie einen Eingabebereich für die zehn Textpuffer.

Sonic-Pi-Programme bestehen im Wesentlichen aus Funktionsaufrufen. Sämtliche Sonic-Pi-Funktionen führt das Hilfefenster unter Sprache auf (Abbildung 2). Die Funktion sample spielt gespeicherte Klänge – also Samples – ab. Das Argument :elec_blip bezeichnet den Klang, den Sonic Pi wiedergeben soll – in diesem Fall einer von 129 Samples, die Sonic Pi von Haus aus mitbringt. Wann immer Sie sample eintippen, öffnet sich eine Auswahlliste mit allen eingebauten Klängen, eine Übersicht finden Sie zudem im Hilfebereich unter Samples.

Abbildung 2: Zu allen wichtigen Sprachelementen finden Sie im Hilfefenster von Sonic Pi eine ausführliche Erklärung.

Daneben können Sie auch Audiodateien aus anderen Quellen abspielen. In diesem Fall verwenden Sie als Argument einfach den Pfad zur entsprechenden Audiodatei als Zeichenkette, beispielsweise sample "/home/pi/klonk.wav". Sonic Pi kommt hier mit den Formaten WAV, AIF und Flac zurecht.

Die vielseitig anwendbare Funktion sample vermag unter anderem ganze Verzeichnisbäume nach Dateien zu durchsuchen, deren Namen einem bestimmten Muster entsprechen, und dann per Index auf alle Treffer zuzugreifen. Im Hilfefenster finden Sie im Bereich Sprache unter dem Eintrag sample nicht weniger als 35 Anwendungsbeispiele.

Optionen

Die Möglichkeiten von sample beschränken sich nicht darauf, gespeicherte Klänge vollständig und unverändert wiederzugeben: Sie können den Abspielvorgang mit diversen Optionen modifizieren. Eine besonders effektvolle Variante verändert die Abspielgeschwindigkeit.

Der Aufruf aus der ersten Zeile von Listing 1 stößt eine Wiedergabe in normaler Geschwindigkeit an. Der Code aus der zweiten Zeile halbiert die Abspielgeschwindigkeit mit der Option rate. Eine Halbierung der Abspielgeschwindigkeit vermindert gleichzeitig die Tonhöhe um eine Oktave; entsprechend schiebt rate: 2 die Tonhöhe um eine Oktave nach oben. Ein negatives Vorzeichen kehrt die Abspielrichtung um und sie hören den Klang rückwärts (Zeile 3)

Allein die Funktion sample bietet gut 60 Optionen. So bestimmt amp etwa die Lautstärke, voreingestellt ist der Wert 1. Mit pan steuern Sie die Position im Stereofeld: Hier steht -1 für den linken und 1 für den rechten Kanal, pan: -0.5 positioniert den Klang halblinks. Möchten Sie mehrere Optionen verwenden, schreiben Sie diese durch Kommas getrennt hintereinander weg.

Das Beispiel aus der vierten Zeile von Listing 1 spielt den Amen Break, eins der am häufigsten verwendeten Samples der Musikgeschichte, auf dem rechten Audiokanal ab. Dabei steht lpf für einen Tiefpassfilter (Low Pass Filter), der Frequenzen oberhalb einer Grenzfrequenz dämpft und für einen dunkleren Klang sorgt. Die Grenzfrequenz geben Sie im MIDI-Format an, auf das wir im Folgenden noch zurückkommen. Der Wert 80 im Beispiel steht für eine Trennfrequenz von 830 Hertz.

Listing 1

 

sample :ambi_piano
sample :ambi_piano, rate: 0.5
sample :ambi_piano, rate: -1
sample :loop_amen, pan: 1, lpf: 80
sample :bass_dnb_f
sample :ambi_lunar_land
[...]
sample :bass_dnb_f
sleep 1
sample :ambi_lunar_land

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

12/2019
RasPi-Alternativen

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Grußbotschaften

    Mit Sonic Pi zaubern Sie komplexe Sounds, die Sie bei Bedarf sogar noch während des Abspielens modifizieren.

  • Das Runde und das Eckige

    Mit dem MCP4725 ergänzen Sie einen RasPi um einem D/A-Wandler, der bei Bedarf noch weitere Funktionen erfüllt.

  • Alles unter Kontrolle

    Schon ein einfaches Mikrocontrollerboard wie das CY8CKIT-049-42xx bietet erstaunlich viele Möglichkeiten beim Ansteuern von Hardware.

  • Viele Kerne

    Das Spresense Development Board von Sony lässt sich mit der Arduino IDE programmieren und bringt auch ein eigenes Entwickler-SDK mit.

  • Exotische Früchte

    Der aus China stammende Orange Pi positioniert sich mit einem guten Preis und interessanten Features gegen die RasPi-Truppe. Kann er sich auch behaupten?

  • Flexibler Surfer

    Mit dem neuen RasPi 4 setzen Sie einen öffentlichen Webkiosk schnell und kostengünstig auf.

  • Auskunftsfreudig

    Viele Devices, so auch der E.ON-Aura-Controller, verwenden eine Schnittstelle namens REST, um Zustandsdaten zu übermitteln. Mit ein wenig Bastelei lesen Sie diese auch über Ihr Smartphone aus.

  • Doppelt gemessen

    Mit wenig Aufwand und einem Pi Zero realisieren Sie einen mobilen Zweikanal-Spannungsprüfer.

  • Elegant zusammengeführt

    Tizonia streamt Musik von Online-Quellen und lokalen Sammlungen. Die schlanke Architektur macht den Player zur guten Wahl für den Einsatz auf dem RasPi.

  • Kommunikativ

    Nicht jeder traut sich zu, sein eigenes Smartphone zu bauen. Allerdings kann jeder Linux-Nutzer den Raspberry Pi im Handumdrehen zu einem VoIP-Telefon aufrüsten.