Dieses Kapitel 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_amenDann haben wir gesehen, dass wir die Samplerate ändern können - etwa um ein Sample mit halber Geschwindigkeit abzuspielen:
sample :loop_amen, rate: 0.5Als nächstes haben wir einen Blick darauf geworfen, wie wir ein Sample ein- und ausblenden lassen (hier zum Beispiel mit halber Geschwindigkeit):
sample :loop_amen, rate: 0.5, attack: 1Wir haben uns auch angeschaut, wie wir ein Sample am Anfang perkussiver klingen lassen können, indem wir sustain: ausdrücklich einen Wert zuweisen, und sowohl der Attack als auch der Release kurze Werte bekommen:
sample :loop_amen, rate: 2, attack: 0.01, sustain: 0, release: 0.35Wäre es aber nicht toll, wenn wir ein Sample nicht immer vom Anfang starten lassen müssten? Wäre es nicht auch prima, wenn das Ende des klingenden Sample nicht immer seinem wirklichen Ende entsprechen müsste?
Man kann auch einen beliebigen Startpunkt eines Sample als Wert zwischen 0 und 1 auswählen. Dabei ist 0 der Anfang, 1 das Ende und 0.5 die Mitte des Samples. Spielen wir also jetzt die zweite Hälfte des Amen Break:
sample :loop_amen, start: 0.5Oder vielleicht das letzte Viertel des Sample:
sample :loop_amen, start: 0.75Ebenso 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.5Natürlich können das auch kombinieren und so einen beliebigen Abschnitt des Sample abspielen. Wie wäre es mit einem kurzen Abschnitt aus der Mitte:
sample :loop_amen, start: 0.4, finish: 0.6Was passiert, wenn wir eine Startposition nach der Endposition auswählen?
sample :loop_amen, start: 0.6, finish: 0.4Cool! Dann spielt es rückwärts!
Diese neue Fähigkeit, beliebige Abschnitte eines Klangs zu spielen, lässt sich mit 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.2Wenn wir all dies mit unseren ADSR-Hüllkurven kombinieren, kriegen wir interessante Ergebnisse:
sample :loop_amen, start: 0.5, finish: 0.8, rate: -0.2, attack: 0.3, release: 1Jetzt leg los und hab Spaß, Samples mit diesem Zeug aufzumischen…