Curvas de Envelope de Amostras (ou simplesmente Envelopes de Amostras)

Também é possível modificar a duração e a amplitude de um sample usando um pacote ADSR. Entretanto, isso funciona um pouco diferente dos pacotes ADSR disponíveis em sintetizadores. Envelopes de samples permitem apenas a redução da amplitude e da duração de um sample - e nunca seu incremento. O sample irá parar de tocar quando o sample chegar ao fim ou quando o envelope se completar - O que vier primeiro. Então, se você usar um release:comprido, isso não irá extender a duração do sample.

Envelopes Amen

Vamos voltar ao nosso fiel amigo Amen Break:

sample :loop_amen

Sem opts, nós ouvimos o sample com a amplitude máxima. Se quisermos fazer um fade com mais de 1 segundo, podemos usar o parâmetro attack::

sample :loop_amen, attack: 1

Para um fade in mais curto, escolha um valor menor de attack:

sample :loop_amen, attack: 0.3

Sustain Automático

Onde o envelope ADSR tem um comportamento diferente dos sintetizadores é no valor de sustain. Em um envelope padrão de sintetizador, o sustain tem um valor 0 por padrão, a não ser que outro valor seja definido manualmente. Com samples, o sustain é definido com um valor automágico - o tempo de duração da sample. É por isso que ouvimos toda a sample quando não passamos nenhum valor. Se os valores de attack, decay, sustain e release fossem todos 0, nós não ouviríamos nem um pio. Portanto, o Sonic Pi calcula a duração da sample, deduz qualquer tempo de attack, decay e release, e usa o resultado como tempo de sustain. Se os valores de attack, decay e release somarem mais do que a duração da sample, o sustain é definido como 0.

Fade Outs

Para explorarmos isso, vamos analisar nosso Amen Break em mais detalhes. Se perguntarmos ao Sonic Pi qual é a duração do sample:

print sample_duration :loop_amen

Irá exibir o valor 1.753310657596372, que é a duração da sample em segundos. Vamos arredondar isso para 1.75 por conveniência. Agora, se definirmos o valor de release para 0.75, algo surpreendente acontece:

sample :loop_amen, release: 0.75

Primeiro, ele ira tocar o primeiro segundo do sample na amplitude máxima, e depois fará um fading out por um período de 0,75 segundos. Esse é o auto sustain em ação. Por padrão, o release sempre trabalha com o final do sample. Se o nosso sample tiver 10,75 segundos de duração, ele ira tocar os primeiros 10 segundos na amplitude máxima antes do fading out de 0,75 segundos.

Este envelopamento (ataque curto e repouso longo) é ilustrado no seguinte diagrama:

Fade In e Fade Out

Nós podemos usar ambos attack: e release: em conjunto com o auto sustain para fazer o fade-in e o fade-out na duração do sample:

sample :loop_amen, attack: 0.75, release: 0.75

Como a duração completa do sample é de 1.75s e nossas fases de ataque e release somam 1.5s, o sustain é automaticamente ajustado para 0.25s. Isso nos permite fazer facilmente um fade in e out no sample.

Sustentação (sustain) explícito

Nós podemos facilmente voltar para o comportamento normal do nosso sintetizador ASDR, configurando manualmente o sustain: para um valor como 0:

sample :loop_amen, sustain: 0, release: 0.75

Agora, nosso sample toca apenas durante 0.75 segundos no total. Com os valores padrão de attack: e decay: em 0, o sample pula direto para a amplitude máxima, permanece (sustain) lá por 0s e volta (release) para amplitude 0 durante o tempo de release -0.75s.

Pratos percussivos

Nós podemos utilizar esse comportamento a nosso favor para tornar samples longos em versões mais curtas e percussivas. Considere o sample :drum_cymbal_open:

sample :drum_cymbal_open

Você pode ouvir os pratos soando por um período de tempo. Entretanto, nós podemos utilizar nosso envelope para fazê-lo soar mais percussivo:

sample :drum_cymbal_open, attack: 0.01, sustain: 0, release: 0.1

Você pode emular o tocar e amortecer do prato aumentanto o período de sustain:

sample :drum_cymbal_open, attack: 0.01, sustain: 0.3, release: 0.1

Agora vá e divirta-se colocando envelopes sobre os samples. Tente modificar também a taxa para resultados realmente interessantes.