Kapitel 14

Mit dem Sonic Pi musizieren

Für einen Großteil der Musik, die wir heute hören, sind seit vielen Jahren Computer im Studio mindestens genauso wichtig wie Mikrofone. Mit dem Sonic Pi können Sie durch Programmierung Ihres Raspberry Pi damit beginnen, Ihre eigene Computermusik zu komponieren. Sie können mit Sonic Pi einfache Programme erstellen, die Synthesizer‐Melodien und Klangmuster (Sound‐Samples) wiedergeben. Damit können Sie Ihre eigene unverwechselbare Musik erzeugen.

Sam Aaron, der Schöpfer von Sonic Pi sagt: »Sonic Pi verfolgt gleichzeitig zwei Zielsetzungen: Es soll einfach zu erlernen, dabei aber auch für professionelle Musiker leistungsfähig genug sein. Sie könnten das für ein wenig ambitioniert halten, aber genau so könnte man auch ein Piano beschreiben.«

Sam hat auf internationalen Festivals Konzerte mit dem Sonic Pi gegeben. Dazu zählte auch das Moogfest 2016 , das die elektronische Musik feiert. Während das Publikum bei Sams Auftritten seine Musik hört, kann es auf dem Bühnenbildschirm sehen, wie er seinen Code erstellt und bearbeitet. Das Musikmagazin Rolling Stone beschrieb Sams Musik und meinte, »es würde nach Kraftwerk in der Electric‐Café‐Ära (1986) klingen und ein wenig vom Aphex‐Twin ‐Glanz und dem Electrosound der Achtziger haben.«

Sonic Pi wird unter Raspbian vorinstalliert und über die Desktopumgebung gestartet (siehe Kapitel 4).

Sie starten Sonic Pi über die Schaltfläche des PROGRAMME‐Menüs in der oberen linken Bildschirmecke. Dort finden Sie den Eintrag SONIC PI in der Kategorie ENTWICKLUNG.

Warnung Das Programmfenster von Sonic Pi ist recht groß, weshalb Sie bei der Arbeit mit dem Programm einen Bildschirm mit entsprechend hoher Auflösung verwenden sollten.

Das Programmfenster von Sonic Pi

Abbildung 14.1 zeigt das Fenster von Sonic Pi. Ihnen werden möglicherweise ein paar Unterschiede zwischen Ihrem Bildschirm und unserer Darstellung auffallen, das Wesentliche sollte sich aber ähneln. Vergrößern Sie das Fenster bei Bedarf. (Näheres zum Vergrößern und Schließen Ihres Programmfensters erfahren Sie in Kapitel 4.) Links befindet sich der Editor, in den Sie Ihren Code eingeben. Rechts befindet sich das Protokoll (Log), wo Ihnen Sonic Pi mitteilt, was es während der Wiedergabe Ihrer Musik macht. Unten befindet sich der Hilfebereich.

images

Abbildung 14.1: Das Programmfenster von Sonic Pi

Warnung Sonic Pi verwendet zehn Puffer, auf die Sie über die Schaltflächen unten im Editor zugreifen. Sie können sich die einzelnen Puffer als verschiedene zur Bearbeitung geöffnete Dateien vorstellen, wobei Sie allerdings gleichzeitig Musik aus verschiedenen Puffern wiedergeben können. Das kann besonders bei Live‐Auftritten nützlich sein. So können Sie beispielsweise eine Schleife in einem Puffer speichern und dann mit Code in einem anderen Puffer experimentieren, um Noten darüberzulegen. Wenn Sie Sonic Pi verlassen, wird der Inhalt Ihrer Puffer für Sie gespeichert und bei Ihrer Rückkehr zum Programm wieder geladen. Wenn Sie die Schaltfläche SAVE in der Menüleiste am oberen Fensterrand verwenden, können Sie den Inhalt eines Puffers auch in einer Textdatei speichern.

Oben im Fenster sind Schaltflächen, über die Sie Ihr Programm starten (Musik wiedergeben) und stoppen können. Diese verwenden Symbole, die denen von Audioplayern ähneln: ein Dreieck für die Wiedergabe und ein Quadrat für das Stoppen. Es gibt auch Schaltflächen zur Anpassung der Textgröße (SIZE), die Anzeige des Oszilloskops (SCOPE), das Ihre Musik während der Wiedergabe als Wellenform darstellt, die Anzeige des Infofensters und die Anzeige des Hilfebereichs unten im Fenster (HELP).

Rechts neben der Schaltfläche HELP finden Sie die Einstellungen (PREFS). Im Fenster EINSTELLUNGEN finden Sie einen Lautstärkeregler und Optionen, über die Sie beispielsweise festlegen, ob die Audioausgabe über Kopfhörer oder das HDMI‐Kabel erfolgen soll. Dort finden Sie auch Optionen zur Anpassung der Anzeige im Editor und die Suche nach Aktualisierungen. Wenn Sie andere elektronische Instrumente oder Musiksoftware benutzen, können Sie diese mit dem Sonic Pi über die Protokolle MIDI (Musical Instrument Digital Interface ) oder OSC (Open Sound Protocol ) ansteuern, deren EINSTELLUNGEN Sie im Reiter IO ab Version 3.0 von Sonic Pi vorfinden.

Tipp Sie können die Größe der Bereiche anpassen, wenn Sie die Trennlinien zwischen diesen anklicken und ziehen.

Tipp Wenn Sie Sonic Pi bei Auftritten nutzen, können Sie die Option DUNKLER MODUS im Editor für ein Farbschema verwenden, das auf einem dunklen Hintergrund basiert. Das ist in Clubs oder an Veranstaltungsorten bei schwacher Beleuchtung angenehmer. Optional gibt es auch die Einstellung PRO ICONS, bei der die Schaltflächen durch einfachere Symbole für eine schnittigere Benutzerschnittstelle ersetzt werden. Die zugehörigen Einstellungen finden Sie im Editor (unter PREFS) allerdings nicht bei allen Versionen von Sonic Pi.

Ihre ersten Noten wiedergeben

Klicken Sie in den Editor und geben Sie Folgendes ein:

play 60

Natürlich passiert dabei weiter nichts, da Sie jetzt nur Ihr Programm eingegeben haben, ohne es auszuführen. Wenn Sie die Schaltfläche RUN anklicken, wird ein mittleres C ertönen. Gleichzeitig sehen Sie, wie das Protokoll aktualisiert wird.

Tipp Bei den verwendeten Notenzahlen handelt es sich um Notennummern von Standard‐MIDI, die von elektronischen Instrumenten verbreitet genutzt werden. Sie haben bereits in Scratch mit ihnen zu tun gehabt. Höhere Töne verwenden höhere, tiefere Töne niedrigere Nummern.

Fügen Sie weitere Noten in Ihrem Programm hinzu:

play 60 play 64 play 67

Wenn Sie die Schaltfläche RUN anklicken, hören Sie weiterhin nur einen Ton, jetzt werden aber drei Noten gleichzeitig wiedergegeben. Dabei handelt es sich um den Akkord C, der sich aus den Noten C (60), E (64) und G (67) zusammensetzt. Wenn Sie einzelne Noten wiedergeben wollen, können Sie mit dem Befehl sleep Pausen zwischen ihnen einfügen:

play 60 sleep 0.5 play 64 sleep 0.5 play 67 sleep 0.5 play 72

Am Ende der Tonfolge wird noch eine C‐Note zusätzlich wiedergegeben, damit das Ganze wie eine Fanfare klingt. Sie können herumprobieren und Ihre eigenen Melodien schreiben. Stellen Sie dazu einfach Abfolgen von Noten zusammen.

Tabelle 14.1 zeigt die Standard‐MIDI‐Noten, deren Werte zwischen 0 und 127 liegen. Praktisch klimpert es am hohen Ende stark, während am tiefen Ende kaum mehr als undeutliche, weiche Schläge ertönen. Für möglichst gute Ergebnisse empfehlen wir, bei den Zahlen zwischen 48 und 96 zu bleiben. Experimentieren Sie ruhig ein wenig, um herauszufinden, was für Sie gut klingt.

Note

0

1

2

3

4

5

6

7

8

9

C

0

12

24

36

48

60

72

84

96

108

120

C#

1

13

25

37

49

61

73

85

97

109

121

D

2

14

26

38

50

62

74

86

98

110

122

D#

3

15

27

39

51

63

75

87

99

111

123

E

4

16

28

40

52

64

76

88

100

112

124

F

5

17

29

41

53

65

77

89

101

113

125

F#

6

18

30

42

54

66

78

90

102

114

126

G

7

19

31

43

55

67

79

91

103

115

127

G#

8

20

32

44

56

68

80

92

104

116

A

9

21

33

45

57

69

81

93

105

117

A#

10

22

34

46

58

70

82

94

106

118

B

11

23

35

47

59

71

83

95

107

119

Tabelle 14.1: MIDI‐Noten

Wie Sie sehen können, laufen die Nummern in der Tabelle erst von oben nach unten und dann von links nach rechts. Nach unten und spaltenweise nach rechts werden die Noten höher. Die nächsthöhere Note nach dem B (unten in der Tabelle) ist das C oben in der nächsten Spalte nach rechts. Das ist wie bei einem Piano, bei dem dasselbe Tastenbild erst von C bis G und dann von A bis B läuft, um anschließend wieder bei C zu beginnen, was sich dann nur noch wiederholt.

Tipp Wenn Sie wenig von Noten verstehen, sollten Sie bei den Noten bleiben, die nicht erhöht sind (denen kein # folgt) und größere Tonsprünge vermeiden. Versuchen Sie, innerhalb einer Spalte ein paar Töne nach oben oder unten zu gehen, und in die nächste Spalte zu wechseln, wenn Sie sich oben oder unten in einer Spalte befinden. Wenn Sie diese einfachen Regeln befolgen, sollten Sie am Ende zu einem lustigen kleinen Liedchen kommen.

Erinnerung Sollten Sie sich wundern, sei Ihnen gesagt, dass die internationale Abfolge der Noten mit A beginnt und dann mit B, C, D, E, F und G weitergeht. Im deutschsprachigen und slawischen Raum wird stattdessen ahcdefg verwendet. Dazu passend gibt es eine Legende von einem Mönch und schlechtem Licht. Wenn es Sie interessiert, wird dieses Phänomen unter de.wikibooks.org/wiki/Musiklehre:_Das_Problem_mit_dem_Notennamen_H aufgebröselt.

Noten und Akkordnamen verwenden

Mit Sonic Pi können Sie die richtigen Notennamen (Buchstaben von A bis G) zusammen mit der Oktave verwenden, in der sie sich befinden. Die entsprechenden Zahlen werden in Tabelle 14.1 als Spaltenüberschriften angegeben.

Um beispielsweise ein mittleres C zu spielen, können Sie diese Anweisung verwenden

play :c4

Um das B zu spielen, das sich eine Note davor in der nächstniedrigeren Oktave befindet, würden Sie diese Anweisung verwenden:

play :b3

Das Protokoll zeigt, dass Sonic Pi die Noten 60 und 59 wiedergibt. Sie können die Notennamen und Zahlen in Tabelle 14.1 prüfen, um sich davon zu überzeugen, dass es sich um das erwartete Ergebnis handelt.

Damit könnten Sie eine Fanfare mit Notennamen anstelle von Zahlen so notieren:

play :c4 sleep 0.5 play :e4 sleep 0.5 play :g4 sleep 0.5 play :c5

Wenn Sie erhöhte (sharp) Noten wiedergeben wollen, fügen Sie den Buchstaben s in den Notennamen ein (zum Beispiel: play :cs4). Für verminderte Noten können Sie b verwenden (play :cb4).

Um Akkorde zu spielen, können Sie auch Namen verwenden. Dabei teilen Sie Sonic Pi die niedrigste Note im Akkord mit und setzen die Art des gewünschten Akkords hinzu (probieren Sie :major [Dur], :minor [Moll] oder :diminished [vermindert]). Es gibt unter anderem auch Optionen für :major7 (Dur‐Septakkord ), :minor7 (Moll‐Septakkord), :diminished7 und :dom7 (Dominantsept), um verschiedene Septakkorde zu erzeugen. Eine vollständige Liste finden Sie unter Datenstrukturen im Abschnitt Akkorde der Hilfe zu Sonic Pi. Probieren Sie einmal dies hier aus:

play chord(:a3, :major) sleep 1 play chord(:a3, :minor)

In beiden Fällen werden drei Noten gleichzeitig wiedergegeben. Wenn Sie sich die Notennummern im Protokoll ansehen, können Sie feststellen, dass die mittlere Note beim zweiten Akkord einen Halbton tiefer ist, weil es sich dabei um einen Moll‐Akkord handelt. Auch hier können Sie wieder Tabelle 14.1 benutzen, um zu prüfen, ob die von Sonic Pi angezeigten Notennummern den Notennamen entsprechen.

Die Akkorde werden als Liste zurückgegeben. Sie können daher play_pattern verwenden, um die Noten nacheinander als Arpeggio wiederzugeben:

play_pattern chord(:a3, :major) play_pattern chord(:a3, :minor)

Kürzere Programme schreiben

Es gibt eine effizientere Möglichkeit, eine Notensequenz zu spielen und die Zeit zwischen den einzelnen Noten in Takten anzugeben. Verwenden Sie dazu den Befehl play_pattern_timed . Klicken Sie eine Schaltfläche an, um zu einem neuen Puffer zu wechseln, und probieren Sie diesen Befehl aus:

play_pattern_timed [:c4, :e4, :g4, :c5], [0.5, 0.5, 1]

Achten Sie hier genau auf die Klammern und Kommas. Dieser Befehl enthält zwei verschiedene Datensätze, die jeweils zwischen eckigen Klammern stehen. Beim ersten Satz handelt es sich um die Noten, die gespielt werden sollen. Dafür verwenden wir dieselben Noten, die wir vorhin in unserer Fanfare verwendet haben. Der zweite Satz von Daten wird vom ersten Satz durch ein Komma getrennt und enthält die Länge der Pausen zwischen den Noten. Es gibt vier Noten, aber nur drei Lücken zwischen ihnen, weshalb es im ersten Klammernpaar weniger Elemente gibt. Die Zahlen, die wir hier verwendet haben, fügen zwischen der ersten und der zweiten Note sowie zwischen der zweiten und der dritten Note einen halben Takt Pause ein. Vor dem Erklingen der letzten Note wird die Pause dann aber verdoppelt, um Spannung aufzubauen.

Zufällige Melodien mit shuffle komponieren

Die Abschnitte in Klammern sind Listen, die denen in Python ähneln. Sie können verschiedene Befehle (oder Methoden) zu Listen hinzufügen, um die Reihenfolge der darin enthaltenen Elemente zu ändern. Probieren Sie beispielsweise dies mit der Methode reverse aus:

play_pattern_timed [:c4, :e4, :g4, :c5], [0.5, 0.5, 1] play_pattern_timed [:c4, :e4, :g4, :c5].reverse, [0.5, 0.5, 1]

Sie hören, wie die Noten der Fanfare erst vorwärts und dann rückwärts gespielt werden, wobei die zeitliche Abfolge jeweils gleich bleibt. Sie können die Methode shuffle benutzen, die die Reihenfolge der Elemente in einer Liste ändert, um zufällige Melodien zu erzeugen. Probieren Sie dies aus:

play_pattern_timed [:c4, :d4, :e4, :f4, :g4, :a4, :c5].shuffle, [0.5, 0.5, 1, 0.5, 0.5, 1]

Wir haben hier einen einfachen Rhythmus verwendet: zwei kurze und dann eine lange Note. Das ergibt eine heitere Melodie, die allerdings ein wenig kurz ist. Lassen Sie sie also von Sonic Pi wiederholen. Das geht so:

4.times do play_pattern_timed [:c4, :d4, :e4, :f4, :g4, :a4, :c5].shuffle, @@ra [0.5, 0.5, 1, 0.5, 0.5, 1, 2] end play :c4

Dieses Beispiel bettet den Code für die Wiedergabe der Melodie in eine Schleife ein, die vier Mal wiederholt wird. Der Beginn der Schleife ist 4.times do und das Ende des zu wiederholenden Abschnitts wird passend genug durch das Word end markiert. Sonic Pi rückt Ihren musikalischen Code automatisch um zwei Leerzeichen ein, um zu verdeutlichen, dass er wiederholt werden soll. Wenn der Abschnitt öfter oder weniger oft als vier Mal wiederholt werden soll, ändern Sie die Zahl 4 am Anfang.

Es gibt hier noch einige weitere Änderungen. Erst einmal haben wir eine Zeitangabe für die letzte Note in der Abfolge eingefügt. Das ist die 2, die sich in die letzte eckige Klammer eingeschmuggelt hat. Wir haben mit :c4 auch eine letzte Note eingefügt. Was der Zufall auch im Rest der Melodie bewirken mag, diese Notenfolge klingt immer gut, wenn sie auf einem C endet, weil alle Noten aus der C‐Dur‐Skala stammen.

Den Startwert der Zufallszahl ändern

Auch wenn die Sequenz zufällig erzeugt wurde, verwendet das Programm jeweils dieselbe Notenfolge. Wo das Programm auch läuft, Sonic Pi sorgt dafür, dass Ihre Musik bei jedem Programmlauf immer wieder gleich klingt, obwohl es Zufallselemente enthält. Dadurch wird dafür gesorgt, dass Sie als Komponist die Kontrolle behalten und wissen, wie die Musik für Ihre Zuhörer klingt.

Wenn Sie die Abfolge ändern wollen, ändern Sie den Startwert (seed), der für die Erzeugung der Zufallszahlen verwendet wird. Standardmäßig wird er auf den Wert 0 gesetzt. Fügen Sie die nachfolgende Zeile am Anfang Ihres Programms zum Erzeugen zufälliger Melodien mit shuffle ein und lassen Sie es dann laufen:

use_random_seed 10

Verwenden Sie versuchsweise verschiedene Startwerte und lassen Sie das Programm wiederholt laufen, um festzustellen, wie sich die Abfolge ändert.

Listennamen in Ihren Programmen verwenden

Durch die Notenlisten und Werte kann Ihr Programm leicht überladen aussehen, Sie können es aber aufräumen, wenn Sie Listen Namen geben und diese anstelle der Listen verwenden. Sie können Ihre bisherigen Programme wie folgt optimieren:

use_random_seed 10 note_pitches = [:c4, :d4, :e4, :f4, :g4, :a4, :c5] note_timings = [0.5, 0.5, 1, 0.5, 0.5, 1, 2] 4.times do play_pattern_timed note_pitches.shuffle, note_timings end play 60

Zufällige Noten spielen

Sie können zufällige Notennummern wie folgt spielen:

lowest_note = 60 highest_note = 84 6.times do play rrand_i(lowest_note, highest_note) sleep 0.5 end

Probieren Sie dieses Programm in einem neuen Puffer aus. In diesem Programm sind lowest_note und highest_note Variablen. Die Funktion rrand_i() liefert Ihnen zufällige ganze Zahlen (Integer‐Werte). Sie übergeben der Funktion die niedrigste und höchste mögliche Zufallszahl, die der Computer auswählen kann. Wie bei der Methode shuffle erzeugt das Programm auch hier bei jedem Lauf wieder dieselben Zufallszahlen und die Musik klingt gleich. Sie können den Startwert für die Zufallszahlen ändern, um eine neue Melodie zu erhalten. (Das wird im Abschnitt zur Erzeugung von zufälligen Melodien mit shuffle beschrieben.)

Das Problem beim Erzeugen von zufälligen Notennummern besteht darin, dass nicht alle Notennummern zusammen gut klingen. Vor diesem Beispiel haben wir die Noten der weißen Tasten (die C‐Dur‐Skala) auf dem Klavier und keine der erhöhten Noten verwendet. Wenn Sie damit beginnen, erhöhte Noten einzustreuen, wie das bei zufällig erzeugter Musik der Fall sein kann, klingt es schnell chaotisch. Eine alternative Möglichkeit zur Auswahl von zufälligen Noten bestünde in der Erzeugung einer Liste der Noten, die Sie mögen (die C‐Dur‐Skala, die wir verwendet haben) und dann mit der Methode choose() eine zufällige Note daraus auszuwählen. Dazu hier ein Beispiel:

note_pitches = [:c4, :d4, :e4, :f4, :g4, :a4, :c5] loop do play note_pitches.choose() sleep 0.5 end

Das Programm verwendet eine Schleife, die endlos wiederholt wird und damit improvisiert, bis die Schaltfläche STOP angeklickt wird.

Erinnerung Das Protokoll zeigt Ihnen, welche Notennummern wiedergegeben werden. Sie können es also dazu verwenden, um sich anzusehen, welche Noten ausgewählt wurden, und um sich davon zu überzeugen, dass sich Ihr Programm wie erwartet verhält.

Mit Live‐Schleifen experimentieren

Eine der besten Funktionen von Sonic Pi ist die Live‐Schleife (live loop), die es Ihnen ermöglicht, Ihre Musik zu ändern, während sie wiederholt wird. Es werden zudem eine Konstante für das Tempo (BPM steht kurz für Beats Per Minute – Schläge pro Minute) verwendet und ein Synthesizer‐Instrument ausgewählt. Außerdem werden einige weitere Optionen implementiert.

Wenn synth geändert wird, entspricht das einem Wechsel des Instruments, auf dem die Noten gespielt werden. Optionen (oder opts) können nach dem Befehl, eine Note zu spielen, hinzugefügt werden und beeinflussen, wie die Note auf dem Instrument gespielt wird. Über die Option attack lässt sich ändern, wie lange eine Note benötigt, um ihre volle Lautstärke zu erreichen.

Die neuen Zeilen werden nachfolgend fett dargestellt:

note_pitches = [:c4, :d4, :e4, :f4, :g4, :a4, :c5] live_loop :endless_notes do use_bpm 120 use_synth :dull_bell play note_pitches.choose() , attack: 0.01 sleep 0.5 end

Warnung Passen Sie auf, wo Sie Leerzeichen um Doppelpunkte herum setzen. In Sonic Pi werden Doppelpunkte unmittelbar vor irgendwelchen Namen gesetzt, wie beispielsweise den Namen einer Live‐Schleife, eines Musters, eines Synthesizers oder eines Akkords. Das Programm würde nicht funktionieren, wenn Sie ein Leerzeichen zwischen den Doppelpunkt und den Namen des Synthesizers setzen würden. Doppelpunkte werden auch verwendet, um Parameter (oder etwas, das Sie ändern können) von ihrem Wert zu trennen. In diesem Beispiel ist attack ein Parameter. Der Doppelpunkt muss dann unmittelbar hinter dem Parameternamen stehen.

Beachten Sie, dass Sie Live‐Loops einen Namen geben müssen. Dieses Programm verwendet :endless_notes; wenn Ihnen das lieber sein sollte, könnten Sie aber auch einen anderen Namen verwenden.

Wenn Sie das Programm ausführen, werden Sie den neuen Synthesizer‐Klang (:dull_bell) zu hören bekommen und die neue Geschwindigkeit gleich merken.

Das Clevere daran ist, dass Sie Änderungen am Programm vornehmen können, die nahtlos in die Musik integriert werden. Wenn Sie beispielsweise den Synthesizer (synth) in :chipbass ändern und die Schaltfläche RUN anklicken, wird das in der Melodie verwendete Instrument gewechselt und alles bleibt im Takt. Versuchen Sie, BPM in 60 zu ändern und klicken Sie die Schaltfläche RUN an, um sich anzuhören, wie sich die Musik verlangsamt. Wenn Sie den Wert von attack in 1 ändern, werden Sie hören, wie sich das harte perkussive Klangbild des Instruments in ein langsames Dröhnen verwandelt, das fast nach einer Kirchenorgel klingt. Sie können weitere Optionen zur Anweisung play hinzufügen, müssen diese dazu nur jeweils mit einem Komma voneinander trennen.

Erinnerung Um Sonic Pi mitzuteilen, dass Sie Ihre Änderungen abgeschlossen haben und diese in der Musik hören wollen, klicken Sie erneut auf RUN.

Im Hilfebereich finden Sie eine Liste der Synthesizer, aus denen Sie auswählen können. Lassen Sie den Hilfebereich anzeigen und klicken Sie unten SYNTHS an. Für die jeweiligen Synthesizer finden Sie Informationen zu den verfügbaren Optionen und nützliche Zahlenwerte zum Ausprobieren.

Um flotter zu experimentieren, können Sie beim Schreiben Ihres Codes die Autocomplete‐Funktion nutzen, um Ihren Code vervollständigen zu lassen. Wenn Sie beispielsweise einen anderen Wert für synth verwenden wollen, löschen Sie zusammen mit dem Leerzeichen davor den aktuell verwendeten Namen. Drücken Sie denn keycaps nach use_synth, um sich die Liste der verfügbaren Synthesizer im Autocomplete‐Menü anzeigen zu lassen (siehe Abbildung 14.2). Klicken Sie auf ein Element im Menü oder markieren Sie es mit den Pfeiltasten und wählen Sie es durch Drücken von keycaps oder keycaps aus. Das ist eine schnelle Möglichkeit zur Eingabe Ihres Codes, mit der Sie auch die verfügbaren Synthesizer und Optionen erforschen.

images

Abbildung 14.2: Auswahl eines Synthesizers mit der Autocomplete‐Funktion

Tipp Wenn Sie in einem Programm, das keine Live‐Schleife verwendet, mehrmals RUN auswählen, werden Sie mehrere unsynchronisierte Instanzen der Musik gleichzeitig zu hören bekommen.

Klangmuster verwenden

Die bisher erstellten Programme bieten insbesondere dann eine interessante Möglichkeit, um Computermusik zu erforschen, wenn der Computer Sie mit zufälligen Kompositionen überrascht.

Sonic Pi kann auch Samples verwenden, bei denen es sich um kurze Musikschnipsel oder Klangmuster handelt, die Sie manipulieren können, indem Sie beispielsweise deren Geschwindigkeit ändern oder Effekte hinzufügen. Sonic Pi umfasst eine größere Palette von Samples. Sie können sich eine Liste mit ihnen anzeigen lassen, wenn Sie in den Hilfebereich gehen und dann auf die Schaltfläche SAMPLE unten links klicken. Samples sind insbesondere nützlich, um Schlagzeug‐Loops zu Ihrer Musik hinzuzufügen.

Ein Sample, das zu unseren Favoriten zählt:

sample :loop_industrial

Legen Sie es in einem neuen Puffer ab und klicken Sie auf RUN, um es sich anzuhören. Sie können es beschleunigen oder verlangsamen, wenn Sie den Wert von rate verändern. So können Sie das Sample mit der Hälfte seiner normalen Geschwindigkeit wiedergeben:

sample :loop_industrial, rate: 0.5

Wir können das Sample wiederholen, um einen fortlaufenden Rhythmus zu erzeugen. Wir verwenden den Befehl sleep, um eine Pause zwischen den Wiederholungen einzufügen, wie wir das auch bei der Wiedergabe von Noten gemacht haben. Samples können aber unterschiedlich lang sein, wodurch es schwierig wird, herausfinden, wie lang die Pausen mit sleep sein müssen. Glücklicherweise stellt Sonic Pi eine Funktion bereit, mit der ein Sample über eine gewisse Anzahl von Takten ausgedehnt werden kann, um dieses Problem zu lösen. Sie können sie so einsetzen:

loop do sample :loop_industrial, beat_stretch: 2 sleep 2 end

Nun erstreckt sich das Sample über zwei Taktschläge (Beats ), wobei zwischen den einzelnen Wiederholungen jeweils eine zwei Taktschläge lange Pause eingefügt wird. Als Ergebnis erhalten Sie einen fortgesetzten Rhythmus. Wie Sie beim Experimentieren mit Live‐Loops sehen konnten, können Sie das Tempo mit dem Befehl use_bpm ändern.

Spezialeffekte hinzufügen

Sie können ein Sample wiedergeben und Effekte hinzufügen, wie beispielsweise Verzerrung (distortion), Echo und Hall (reverb). Eine vollständige Liste der Effekte (kurz Fx ) finden Sie im Hilfebereich. Sie können sie wieder auflisten lassen, wenn Sie die Autocomplete‐Funktion zum Vervollständigen Ihres Codes benutzen. Mit den folgenden Zeilen können Sie eines der Gitarren‐Samples verzerren lassen:

with_fx :distortion do sample :guit_e_fifths end

Über Optionen können Sie anpassen, wie der Effekt angewendet wird. Es gibt einige Optionen für Verzerrungen, zu denen distort (steuert, wie stark der Sound verzerrt wird) und mix (regelt das Verhältnis zwischen dem Originalsound und der verzerrten Version) gehören. In beiden Fällen sollte der Wert zwischen 0 und 1 liegen. Und so können Sie das einsetzen:

with_fx :distortion, distort: 0.9, mix: 0.5 do sample :guit_e_fifths end

Probieren Sie verschiedene Werte für diese Optionen im Code aus, um zu hören, wie sich der Klang verändert. Experimentieren Sie auch mit anderen Effekten.

Tipp Um sich alle Optionen für diesen oder andere Effekte anzeigen zu lassen, klicken Sie auf FX im Hilfe‐Bereich oder klicken den Effektnamen in Ihrem Quelltext an und verwenden dann keycaps+keycaps, um zu seinem Eintrag (sofern vorhanden) in der Hilfe zu springen. Sie können auch keycaps+keycaps verwenden, um Hilfe zu Befehlen in Ihrem Quelltext zu erhalten.

Mit Ihren Taktschlägen synchronisieren

Sie wissen nun, wie Sie sich wiederholende Rhythmen und andere Samples und Synthesizer‐Melodien wiedergeben können. Sie können mehrere Live‐Loops gleichzeitig wiedergeben. Eine der Herausforderungen besteht darin, alle verschiedenen Teile der Musik zu synchronisieren, damit sie im Takt sind. Dazu können Sie eine Option verwenden, um den Start einer Live‐Loop mit dem Namen einer anderen live_loop zu synchronisieren. Es folgt ein Beispiel, in dem ein Beckenschlag mit der Hauptschleife eines Schlagzeugs synchronisiert wird:

live_loop :drums do sample :loop_industrial, beat_stretch: 2 sleep 2 end live_loop :cymbals, sync: :drums do 4.times do sample :elec_cymbal sleep 1 end sleep 8 end

Wenn Sie das Beispiel (synchronizing with drumbeat) wiedergeben, können Sie hören, wie das Becken vier Mal ertönt und dabei perfekt mit der Hauptschleife des Schlagzeugs synchronisiert wird. Dann pausiert es acht Taktschläge lang, bevor die Schleife wiederholt wird.

Warnung Passen Sie beim Setzen der sync‐Option für Ihre Live‐Loop mit den Doppelpunkten auf. Ansonsten wird das Programm nicht funktionieren. Der erste Doppelpunkt (nach sync) steht zwischen der Option und ihren Parametern und berührt den Namen der Option. Der zweite Doppelpunkt (vor drums) markiert den Start des Schleifennamens, mit dem Sie synchronisieren wollen.

Alles zusammenführen

Listing 14.1 vereint die in diesem Kapitel vorgestellten Ideen. Es verwendet das Sample loop_industrial als Rückgrat, wobei die anderen Live‐Loops so synchronisiert werden, dass sie im Takt damit beginnen. Es gibt eine Live‐Loop für die Melodie, die zufällige Noten aus der bereitgestellten Liste wiedergibt. Die Liste enthält die Note C mehrfach, damit der erzeugte Song tendenziell diese Note häufiger verwendet. Es gibt eine Schleife, in der höhere Noten schneller gespielt und darübergelegt werden. Und es gibt einen Bassteil, der unter Verwendung der Anweisung play_pattern_timed wiedergegeben wird, die Sie bereits früher in diesem Kapitel kennengelernt haben. Schließlich ist eine weitere Live‐Loop vorhanden, die den amen‐Trommelschlag explosionsartig darüberlegt. Er wird acht Mal wiedergegeben, wobei der Befehl sleep benutzt wird, dafür zu sorgen, dass der Taktschlag sofort beginnt, und eine Pause zwischen den einzelnen Schüben einzufügen.

# Robot jam von Sean McManus # Musikbeispiel aus Raspberry Pi für Dummies live_loop :drums do with_fx :krush do sample :loop_industrial, beat_stretch: 2 end sleep 2 end live_loop :melody, sync: :drums do note_pitches = [:c3, :c3, :c3, :d3, :g3, :g3, :a3, :c4, :c4] use_synth :saw with_fx :wobble do play note_pitches.choose() sleep 2 end end live_loop :plinks, sync: :drums do plink_pitches = [:c4, :d4, :e4, :g4, :a4] use_synth :chiplead play plink_pitches.choose() sleep 0.25 end live_loop :bass, sync: :drums do use_synth :tb303 play_pattern_timed [:c2, :c2, :c2, :c2, :c2, :c2, :g2, :a2], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5] end live_loop :amen, sync: :drums do sleep 16 8.times do sample :loop_amen, beat_stretch: 2 sleep 2 end end

Listing 14.1: Alles zusammenführen

Vorsicht Sie können dieses Stück als Grundlage für eigene Experimente benutzen. Da diese Abschnitte Live‐Loops verwenden, können Sie die Effekte, Optionen, Synthesizer und Noten modifizieren, um dann auf die Schaltfläche RUN zu klicken, um sich die Änderungen anzuhören.

Die nächsten Schritte mit Sonic Pi

Wir hoffen, dass Sie dieses Kapitel dazu inspiriert hat, mit dem Erstellen von Musik mit dem Raspberry Pi zu experimentieren. Sie haben gelernt, wie Sie Melodien mit verschiedenen Synthesizern wiedergeben können. Sie haben auch einige verschiedene Möglichkeiten entdecken dürfen, um improvisierte Musik zu erzeugen, bei der Sie zufällige Notennummern und zufällig aus einer Liste ausgewählte Noten verwendet haben. Wir haben Ihnen auch gezeigt, wie Sie diese einzelnen Teile alle zusammenführen können, um Samples und Synthesizer‐Melodien zu synchronisieren. Mit den Quelltexten aus diesem Kapitel und den vielfältigen von Sonic Pi bereitgestellten Samples und Werkzeugen können Sie Ihre eigene Musik komponieren.

Es gibt noch weit mehr, was Sie mit Sonic Pi machen können, wie beispielsweise die gemeinsame Nutzung mit Minecraft und die Verwendung von MIDI‐Signalen für die Verbindung und Steuerung anderer elektronischer Instrumente und Musiksoftware. Im Hilfebereich finden Sie ein Tutorial, das ins Deutsche übersetzt wurde, und eine Reihe von Artikeln, die zuvor im Magazin The MagPi veröffentlicht wurden, sodass reichlich unterstützende Materialien bereitstehen, wenn Sie weitergehende Ausflüge in die Musikwelt mit Sonic Pi unternehmen wollen.

Tipp In Sonic Pi finden Sie noch weitere Beispiele, von denen Sie sich Bach und Sonic Dreams auf jeden Fall einmal anhören sollten.

Ob Sie nun Dance, Prog, Pop oder Rock mögen, Sonic Pi hat einen Platz in Ihrer Band verdient.