3.5 Amostras Parciais

# Amostras Parciais

Esta seção concluirá nossa exploração do reprodutor de samples do Sonic Pi. Vamos fazer uma rápida revisão. Até agora nós vimos como podemos ativar samples:

```
sample :loop_amen
```

E então nós vimos como mudar a taxa dos samples, como tocando eles com metade da velocidade:

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

Depois, nós vimos como podemos fazer um "fade in" no sample (vamos fazer com metade da velocidade):

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

Nós também vimos como poderíamos usar o início do sample de maneira percussiva adicionando ao `sustain:` um valor explícito e setando attack e release para valores pequenos:

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

De qualquer forma, não seria ótimo se não tivéssemos sempre que começar no início do sample? Não seria ótimo também se nós não tivéssemos que sempre terminar no fim do sample?

## Escolhendo um ponto de partida

É possível escolher um ponto de partida qualquer no sample com valores entre 0 e 1, onde 0 é o início do sample, 1 é o fim e 0.5 é o meio. Vamos tentar tocar apenas a metade final de amen break:

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

E o último quarto do sample:

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

## Escolhendo um ponto final

De maneira parecida, é possível escolher um ponto final qualquer no sample com valores entre 0 e 1. Vamos finalizar o amen break na metade:

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

## Especificando início e fim

Com certeza nós podemos combinar as duas coisas para tocar qualquer segmento do arquivo de áudio. Que tal apenas uma pequena seção no meio:

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

O que acontece se escolhermos uma posição inicial posterior a posição final?


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

Massa! Ele toca ao contrário!

## Combinando com a taxa

Nós podemos combinar essa nova habilidade de tocar qualquer parte do audio com o nosso amigo `rate:``(taxa). Por exemplo, nós podemos tocar uma pequena seção no meio do amen break bem devagar:

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

## Combinando com envelopes

Por último, nós podemos combinar tudo isso com nossos envelopes ADSR para produzir resultados interessantes:

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

Agora tente combinar samples com todas essas coisas divertidas...
