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.
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.
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.
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.
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 |
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.
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)
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.
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.
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.
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
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.
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
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.
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 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 oder aus. Das ist eine schnelle Möglichkeit zur Eingabe Ihres Codes, mit der Sie auch
die verfügbaren Synthesizer und Optionen erforschen.
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.
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.
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.
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
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.
Ob Sie nun Dance, Prog, Pop oder Rock mögen, Sonic Pi hat einen Platz in Ihrer Band verdient.