3.5 Esantioane partiale

# Esantioane partiale

Aceasta sectiune va incheia explorarea player-ului de esantioane din Sonic Pi. Sa facem o scurta recapitulare. Pana acum am vazut cum putem porni esantioanele:

```
sample :loop_amen
```

Apoi am vazut cum putem schimba viteza de redare a esantioanelor, cum ar fi ascultandu-le la jumatate din viteza initiala:

```
sample :loop_amen, rate: 0.5
```

Apoi, am vazut cum putem introduce progresiv un esantion (sa facem asta la jumatate din viteza):

```
sample :loop_amen, rate: 0.5, attack: 1
```

Am vazut de asemenea cum putem sa folosim un start mai percutant al esantionului, dand o valoare explicita pentru 'sustain:' si atribuind valori mici pentru fazele de attack si release:

```
sample :loop_amen, rate: 2, attack: 0.01, sustain: 0, release: 0.35
```

Totusi, nu ar fi frumos daca nu ar trebui sa pornim mereu de la inceputul esantionului? Nu ar fi frumos daca nu ar trebui sa mergem mereu pana la sfarsitul esantionului?

## Alegerea punctului de pornire

Putem alege un punct de pornire arbitrar in esantion specificand un numar intre 0 si 1, unde 0 este inceputul acestuia, 1 sfarsitul, iar 0.5 este la jumatatea esantionului. Sa incercam sa redam doar a doua jumatate din amen break:

```
sample :loop_amen, start: 0.5
```

Ce-ar fi sa incercam ultimul sfert din esantion:

```
sample :loop_amen, start: 0.75
```

## Alegerea punctului de oprire

Asemanator, este posibil sa alegem un punct de oprire arbitrar in cadrul esantionului , ca o valoare intre 0 si 1. Sa oprim amen break la jumatate:

```
sample :loop_amen, finish: 0.5
```

## Precizarea inceputului si sfarsitului

Desigur, putem combina aceste 2 valori pentru a reda segmente arbitrare din fisierul audio. Cum ar fi doar o mica bucata de la mijloc:

```
sample :loop_amen, start: 0.4, finish: 0.6
```

Ce se intampla daca alegem o pozitie de inceput dupa pozitia de sfarsit?


```
sample :loop_amen, start: 0.6, finish: 0.4
```

Super! Este redat de la coada la cap!

## In combinatie cu viteza

Putem combina aceasta posibilitate de a reda segmente audio arbitrare cu parametrul deja cunoscut 'rate:' (viteza de redare). De exemplu, putem reda o bucata foarte mica de la mijlocul esantionului amen break foarte lent:

```
sample :loop_amen, start: 0.5, finish: 0.7, rate: 0.2
```

## In combinatie cu anvelopele

In fine, putem combina toate acestea cu anvelopele ADSR pentru a produce rezultate interesante:

```
sample :loop_amen, start: 0.5, finish: 0.8, rate: -0.2, attack: 0.3, release: 1
```

Acum poti sa te joci modeland esantioanele cu ajutorul acestor chestii distractive...
