Deze sectie zal onze verkenning afsluiten van Sonic Pi’s sample player. Laten we een snelle samenvatting maken. Tot nu toe hebben we gekeken hoe we samples kunnen triggeren:
sample :loop_amen
Vervolgens hebben we gekeken hoe we de rate kunnen wijzigen naar bv. het afspelen op halve snelheid:
sample :loop_amen, rate: 0.5
Verder hebben we gekeken hoe we deze sample konden in fade-en (we doen deze op halve snelheid):
sample :loop_amen, rate: 0.5, attack: 1
We hebben ook gekeken hoe we de start van een sample meer percussief kunne maken door aan de sustain:
een expliciete waarde te geven en aan zowel de attack als de release korte waarden te geven:
sample :loop_amen, rate: 2, attack: 0.01, sustain: 0, release: 0.35
Zou het niet leuk zijn, als we deze niet altijd hoeven te laten starten vanaf het begin van de sample? Zou het niet leuk zijn, als we deze niet altijd hoeven te laten stoppen tot het einde van de sample?
Het is mogelijk om een willekeurige startpunt in de sample te kiezen als een waarde tussen 0 en 1, waarbij 0 is het begin van de sample 1 is het einde en 0,5 is halverwege sample. Laten we proberen om alleen de laatste helft van de amen break te spelen:
sample :loop_amen, start: 0.5
Of het laatste kwart van de sample:
sample :loop_amen, start: 0.75
Ook is het mogelijk om een willekeurig eindpunt te bepalen in de sample met een waarde tussen 0 en 1. Laat ons de Amen Break halverwege doen stoppen:
sample :loop_amen, finish: 0.5
Natuurlijk kunnen we deze alle twee gebruiken om elk willekeurig segment van het audiobestand af te laten spelen. Hoe zit dat met een heel kleine sectie ergens in het midden:
sample :loop_amen, start: 0.4, finish: 0.6
Wat gebeurd er als we een startpunt achter het eind punt kiezen?
sample :loop_amen, start: 0.6, finish: 0.4
Cool! Het speelt achterstevoren!
We kunnen deze nieuwe mogelijkheid combineren om een willekeurige selectie in ons audiofragment met onze oude vriend rate:
. We kunnen bijvoorbeeld een heel klein stukje in het midden van onze amen break sample traag laten afspelen:
sample :loop_amen, start: 0.5, finish: 0.7, rate: 0.2
Tot slot kunnen we dit alles combineren met onze ADSR envelop om tot interessante resultaten te komen:
sample :loop_amen, start: 0.5, finish: 0.8, rate: -0.2, attack: 0.3, release: 1
Experimenteer er nu maar even op los en maak leuke mash-ups van samples met deze toffe nieuwigheden…