3.5 Esecuzione parziale dei campioni

# Esecuzione parziale dei campioni

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?

## Scegliere il punto d’inizio

È 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
```

## Scegliere il punto finale

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
```

## Specificare un punto d’inizio e un punto finale

È 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!

## Combinare velocità di lettura ed esecuzione parziale del campione

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
```

## Combinare inviluppi ed esecuzione parziale del campione

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...
