Dieser Abschnitt schließt unsere Erkundung von Sonic Pi’s Sample-Player ab. Fassen wir noch einmal zusammen. Wir haben uns angesehen, wie wir Samples abspielen können:
sample :loop_amen
Dann haben wir gesehen, dass wir die Samplerate ändern können - etwa um ein Sample mit halber Geschwindigkeit abzuspielen:
sample :loop_amen, rate: 0.5
Als nächstes haben wir einen Blick darauf geworfen, wie wir ein Sample ein- und ausblenden können (z. B. mit halber Geschwindigkeit):
sample :loop_amen, rate: 0.5, attack: 1
Wir haben uns auch angeschaut, wie wir einen Sample-Anfang perkussiver klingen lassen können, indem wir sustain:
ausdrücklich einen Wert zuweisen, und sowohl Attack als auch Release auf kurze Werte setzen:
sample :loop_amen, rate: 2, attack: 0.01, sustain: 0, release: 0.35
Wäre es aber nicht toll, wenn wir ein Sample nicht immer vom Anfang starten lassen müssten? Wäre es nicht auch toll, wenn wir das Sample nicht immer erst am Ende stoppen könnten?
Es ist möglich einen beliebigen Startpunkt in einem Sample als Wert zwischen 0 und 1 auszuwählen. Dabei ist 0 der Anfang, 1 das Ende und 0.5 die Mitte des Samples. Versuchen wir also jetzt nur die zweite Hälfte des Amen Break zu spielen:
sample :loop_amen, start: 0.5
Wie wäre es mit nur dem letzten Viertel des Samples:
sample :loop_amen, start: 0.75
Auf ähnliche Weise können wir mit einem Wert zwischen 0 und 1 einen beliebigen Endpunkt im Sample festlegen. Beenden wir den Amen-Break nach der ersten Hälfte:
sample :loop_amen, finish: 0.5
Natürlich können wir diese beiden auch kombinieren, um so einen beliebigen Abschnitt des Samples abzuspielen. Wie wäre es mit nur einem kurzen Abschnitt in der Mitte:
sample :loop_amen, start: 0.4, finish: 0.6
Was passiert, wenn wir eine Startposition hinter der Endposition auswählen?
sample :loop_amen, start: 0.6, finish: 0.4
Cool! Es spielt rückwärts!
Wir können diese neue Fähigkeit, beliebige Abschnitte eines Klangs zu spielen, unserem Freund rate:
kombinieren. Zum Beispiel können wir einen sehr kurzen Abschnitt des Amen-Breaks sehr langsam spielen:
sample :loop_amen, start: 0.5, finish: 0.7, rate: 0.2
Und schließlich können wir all dies mit unseren ADSR-Hüllkurven kombinieren, um interessante Ergebnisse hervorzubringen:
sample :loop_amen, start: 0.5, finish: 0.8, rate: -0.2, attack: 0.3, release: 1
Jetzt leg los und vermansche Samples mit all diesem spaßigen Zeug…