Wenn man sich die Geschichte der Elektronischen Tanzmusik anschaut, ist es schier unmöglich den enormen Einfluss, den der winzige Synthesizer Roland TB-303 hatte, zu übersehen. Er ist das Geheimnis hinter dem Klang des originalen Acid Bass. Diese klassisch quietschenden und quieksenden Bass Riffe des TB-303 kann man sowohl in der frühen Chicago House Szene als auch bei Interpreten moderner Elektronischen Musik wie Plastikman, Squarepusher und Aphex Twin hören.
Interessanterweise hatte Roland nicht vorgesehen, dass der TB-303 für Tanzmusik zum Einsatz kommt. Er wurde ursprünglich als eine Übungshilfe für Gitarristen entwickelt. Die Firma hatte sich überlegt, dass Leute mit Hilfe des Synthesizers Basslinien programmieren würden zu denen sie jammen könnten. Leider gab es damit mehrere Probleme: die Programmierung war etwas zu kompliziert, der Klang glich nicht wirklich einer Bassgitarre und sie waren teuer in der Anschaffung. Um ihre Verluste zu minimieren, brach Roland die Produktion nach dem Verkauf von 10.000 Exemplaren ab. Nach ein paar Jahren des Daseins als Staubfänger in den Regalen der Gitarristen wanderten die meisten TB-303s in die Schaufenster von Second-Hand-Läden. Dort warteten sie auf ihre Wiederentdeckung durch eine neue Generation von Experimentierfreudigen, die anfingen sie auf eine Art und Weise zu nutzten, die Roland nie vorgesehen hatte, um abgefahrene Klänge zu erzeugen. Das war die Geburtsstunde des Acid House.
Obwohl es nicht leicht ist sich einen originalen TB-303 zu beschaffen, wirst du dich sicher freuen zu hören, dass du deinen Raspberry Pi mit Hilfe von Sonic Pi in einen TB-303 verwandeln kannst. Los gehts, wirf Sonic Pi an, kopiere den folgenden Code in einen leeren Buffer und klicke auf Ausführen:
use_synth :tb303
play :e1
Siehe da! Wir haben einen Acid Bass! Lass uns weiter experimentieren…
Lass uns zunächst einen live Arpeggiator bauen. In unserer letzten Tutorialeinheit haben wir gelernt, dass Riffs durch Ringe von Noten, die wir nach einander in einer sich wiederholenden Schleife wiedergeben, repräsentiert werden können. Lass uns einen Live-Loop schreiben, der das gleiche macht:
use_synth :tb303
live_loop :squelch do
n = (ring :e1, :e2, :e3).tick
play n, release: 0.125, cutoff: 100, res: 0.8, wave: 0
sleep 0.125
end
Schaue dir jede Codeziele genau an.
In der ersten Zeile setzen wir den Defaultwert deruse_synth
Funktion auf tb303
.
In der zweiten Zeile erstellen wir einen Live-Loop vom Typen :squelch
, der sich die ganze Zeit wiederholt.
In der dritten Zeile erstellen wir unseren Riff - einen Ring aus Noten (E in den Oktaven 1, 2, und 3), der diese mit Hilfe eines .tick
s in Schleife durchläuft. Wir definieren n
als die aktuelle Note in unserem Riff. Das Gleichheitszeichen hier bedeutet, dass wir den Wert auf der rechten Seite der Bezeichnung auf der linken Seite zuzuweisen. In jedem Durchlauf unseres Loops hat n
also ein anderer Wert. Im ersten Durchlauf wird n
auf :e1
gesetzt. Im zweiten Durchlauf wird es auf :e2
, gefolgt von :e3
und dann wieder auf :e1
usw. gesetzt.
Mit Zeile viert wird der eigentliche :tb303
Synth eingeleitet. Dabei werden einige interessante Optionen mitgegeben: release:
, cutoff:
, res:
and wave:
über die wir etwas später genauer sprechen werden.
In Zeile fünf machen wir eine Pause - wir geben unserem Live-Loop vor sich alle 0.125
s (oder 8 mal pro Sekunde bei einem BPM von 60) zu wiederholen.
Zeile sechs markiert das Ende (end
) des Live-Loops. Sie teilt Sonic Pi nur mit, wo die zu wiederholende Sequenz zu Ende ist.
Während du dir noch überlegst, wie das alles genau funktioniert, tippe den oben stehenden Code ab und klicke auf Ausführen. Du solltest den :tb303
lostreten hören. Jetzt legen wir richtig los: lass uns mit dem Live-Coding beginnen.
Whilst the loop is still live, change the cutoff:
opt to 110
. Now hit the Run button again. You should hear the sound become a little harsher and more squelchy. Dial in 120
and hit run. Now 130
. Listen how higher cutoff values make it sound more piercing and intense. Finally, drop it down to 80
when you feel like a rest. Then repeat as many times as you want. Don’t worry, I’ll still be here…
Another opt worth playing with is res:
. This controls the level of resonance of the filter. A high resonance is characteristic of acid bass sounds. We currently have our res:
set to 0.8
. Try cranking it up to 0.85
, then 0.9
, and finally 0.95
. You might find that a cutoff such as 110
or higher will make the differences easier to hear. Finally go crazy and dial in 0.999
for some insane sounds. At a res
this high, you’re hearing the cutoff filter resonate so much it starts to make sounds of its own!
Ändere zum Schluss die wave:
Option auf 1
, um einen großen Einfluss auf die Klangfarbe zu nehmen. Dies legt die Art der Schwingungserzeugung fest. Der Standard ist mit 0
eine Sägezahnschwingung. 1
steht für eine Pulswelle und 2
für eine Dreiecksschwingung.
Versuche natürlich auch verschiedene Riffs zu erzeugen, indem du die Noten im Ring änderst oder sogar Noten aus Skalen oder Akkorden auswählst. Viel Spaß mit deinem ersten Acid Bass Synth.
Der Aufbau des originalen TB-303 ist eigentlich ganz einfach. Wie man dem folgenden Diagramm entnehmen kann, gibt es nur vier Hauptbestandteile.
First is the oscillator wave - the raw ingredients of the sound. In this case we have a square wave. Next there’s the oscillator’s amplitude envelope which controls the amp of the square wave through time. These are accessed in Sonic Pi by the attack:
, decay:
, sustain:
and release:
opts along with their level counterparts. For more information read Section 2.4 ‘Duration with Envelopes’ in the built-in tutorial. We then pass our enveloped square wave through a resonant low pass filter. This chops off the higher frequencies as well as having that nice resonance effect. Now this is where the fun starts. The cutoff value of this filter is also controlled by its own envelope! This means we have amazing control over the timbre of the sound by playing with both of these envelopes. Let’s take a look:
use_synth :tb303
with_fx :reverb, room: 1 do
live_loop :space_scanner do
play :e1, cutoff: 100, release: 7, attack: 1, cutoff_attack: 4, cutoff_release: 4
sleep 8
end
end
For each standard envelope opt, there’s a cutoff_
equivalent opt in the :tb303
synth. So, to change the cutoff attack time we can use the cutoff_attack:
opt. Copy the code above into an empty buffer and hit Run. You’ll hear a crazy sound warble in and out. Now start to play. Try changing the cutoff_attack:
time to 1
and then 0.5
. Now try 8
.
Beobachte, dass wir, um etwas mehr Stimmung zu erzeugen, alles durch einen :reverb
FX schicken - probiere ein paar andere Effekte aus und schaue welche hier gut passen!
Zum Schluss gibt es ein Beispiel, das ich mit Hilfe der Konzepte aus diesem Tutorial komponiert habe. Kopiere den Code in einen leeren Buffer, höre es dir ein Weil lang an und dann versuche deine eigenen Änderungen live zu coden. Überzeuge dich davon, was für verrückte Klänge du erzeugen kannst! Bis zum nächste Mal…
use_synth :tb303
use_debug false
with_fx :reverb, room: 0.8 do
live_loop :space_scanner do
with_fx :slicer, phase: 0.25, amp: 1.5 do
co = (line 70, 130, steps: 8).tick
play :e1, cutoff: co, release: 7, attack: 1, cutoff_attack: 4, cutoff_release: 4
sleep 8
end
end
live_loop :squelch do
use_random_seed 3000
16.times do
n = (ring :e1, :e2, :e3).tick
play n, release: 0.125, cutoff: rrand(70, 130), res: 0.9, wave: 1, amp: 0.8
sleep 0.125
end
end
end