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…