Con questa sezione si conclude la nostra esplorazione su come Sonic Pi gestisce i campioni audio. Facciamo un breve riassunto. Finora abbiamo visto come avviare l’esecuzione di un campione:
sample :loop_amen
Quindi abbiamo visto come cambiare la velocità di lettura dei campioni in modo da farli suonare a velocità dimezzata:
sample :loop_amen, rate: 0.5
Abbiamo visto come inserire un fade-in all’inizio del campione (ora facciamolo a velocità dimezzata):
sample :loop_amen, rate: 0.5, attack: 1
Abbiamo visto anche come dare al campione un attacco percussivo dando un valore di sustain:
esplicito (zero) e impostando attacco e rilascio su valori molto corti:
sample :loop_amen, rate: 2, attack: 0.01, sustain: 0, release: 0.35
Ma non sarebbe bello se non dovessimo suonare il campione sempre dall’inizio? E non sarebbe altrettanto bello non doverlo suonare sempre fino alla fine?
È possibile scegliere un punto d’inizio a piacere nell’esecuzione del campione come valore associato al parametro start:
compreso tra 0 e 1, dove 0 corrisponde all’inizio del campione, 1 alla fine e 0.5 esattamente a metà. Proviamo a suonare soltanto la seconda metà del nostro solito loop di batteria:
sample :loop_amen, start: 0.5
Ed ecco l’ultimo quarto soltanto:
sample :loop_amen, start: 0.75
In modo simile è possibile scegliere a piacere un punto finale all’interno del campione impostando un valore tra 0 e 1 per il parametro finish:
. Eseguiamo il loop di batteria fino a metà campione:
sample :loop_amen, finish: 0.5
È possibile, naturalmente, combinare queste due istruzioni per eseguire a piacere un frammento del file audio. Ecco come eseguire una piccola porzione al centro del file:
sample :loop_amen, start: 0.4, finish: 0.6
Ma cosa succede se scegliamo un punto d’inizio collocato dopo il punto finale?
sample :loop_amen, start: 0.6, finish: 0.4
Forte! Suona all’indietro!
Possiamo combinare questa nuova possibilità di suonare frammenti a scelta di un file audio con la nostra vecchia conoscenza rate:
, la velocità di lettura. Possiamo ad esempio eseguire un frammento brevissimo del loop di batteria ad una velocità molto bassa:
sample :loop_amen, start: 0.5, finish: 0.7, rate: 0.2
Possiamo infine combinare tutto questo con gli inviluppi ADSR per ottenere risultati interessanti:
sample :loop_amen, start: 0.5, finish: 0.8, rate: -0.2, attack: 0.3, release: 1
E ora sbizzarriamoci a creare mix di campioni manipolati in tutti questi fantastici modi…