Aplicar time stretching em Samples

Agora que sabemos como tocar uma variedade de sintetizadores e samples para criar música, está na hora de aprender a modificar tanto sintetizadores como samples para criar música com um som mais pessoal e consequentemente interessante. Primeiro, vamos explorar a possibilidade de aplicar time-stretching em samples.

Representação de Samples

Samples são sons pré-gravados, guardados como números que representam como o diafragma da coluna em movimento com vista a gerar som. O diafragma da coluna pode mover-se para dentro ou fora, e então, os números representam o quão dentro ou fora tem de estar o cone para cada momento no tempo. Um sample normalmente tem de guardar vários milhares de números por segundo para para poder ser reproduzido com qualidade e precisão. O Sonic Pi pega nesses números e dá-os à velocidade certa para mover a coluna para dentro e fora e reproduzir o som. Mas também é divertido mudar a velocidade a que os números são alimentam o processo de conversão de sinal digital analógico para que as colunas gerem som.

Mudar a Velocidade (Rate)

Vamos brincar com um dos sons de ambiente: :ambi_choir. Para tocá-la à velocidade (rate) normal, podes passar a opt rate: com o valor 1:

sample :ambi_choir, rate: 1

Isto toca o sample à velocidade normal (1), nada de especial para já. Mas, podemos mudar esse valor para outro qualquer. Que tal 0.5:

sample :ambi_choir, rate: 0.5

Wow! Que é que se passou aqui? Bem, duas coisas. Primeiro, o sample demora o dobro do tempo a ser reproduzido. segundo, o som está uma oitava abaixo. Vamos explorar estas coisas com um bocado mais de detalhe.

Vamos aplicar time-stretching ao som

Um sample que resulta muito bem com time-stretching é o “Amen Break”. À velocidade normal, poderiamos pô-la numa música de drum ‘n’ bass:

sample :loop_amen

Contudo, ao mudar a velocidade podemos eventualmente entrar em domínios estéticos, e consequentemente géneros musicais diferentes. Tenta, transpor o sample para metade da velocidade, para obter uma espécie de “hip-hop old school”:

sample :loop_amen, rate: 0.5

Se aumentarmos a velocidade entramos no território jungle:

sample :loop_amen, rate: 1.5

Agora para o nosso truque final – vamos ver o que acontece se usarmos um valor de rate (velocidade) negativo:

sample :loop_amen, rate: -1

Wow! Toca em sentido contrário! Agora experimenta samples diferentes com rates diferentes. Experimenta rates muito altas e muito lentas. Vê até que ponto consegues obter sons interessantes.

Uma Explicação simples do Termo Sample Rate

Uma maneira de pensar em samples é como molas. Mudar a rate é como esticar ou encolher um mola. Se tocarmos a sample com rate: 2, estamos a encolher a mola para metade do seu comprimento normal, e então o sample demora metade do tempo a tocar por ser mais curta. Se tocarmos a sample com rate: 0.5, estamos a esticar a mola para o dobro do seu comprimento e, portanto, a sample demora o dobro do tempo a tocar por ser mais longa. Quanto a encolhermos (rate mais alta), esta fica mais curta, quanto mais a esticares (rate mais baixa), mais longa fica.

Ao comprimir uma mola a sua densidade aumenta (número de voltas por cm) – isto faz com que o sample soe mais agudo. Ao esticar a mola a sua densidade diminui e isso faz com que o sample acabe por soar mais grave.

Vamos perceber o conceito de Sample Rate de um Ponto de Vista Matemático

(Esta parte é para aqueles interessados nos detalhes. Podes passar à frente se não for o teu caso…)

Como vimos anteriormente, um sample é representada por uma lista grelha de representação de valores ao nível das suas coordenadas polares e cartesianas e consequentemente na sua representação através de pfft (fast Fourier transform) e que acabam por ter uma correlação com a fase do som e indicar-nos o ponto onde a coluna se deve encontrar ao longo do tempo. Podemos pegar nessa lista de números e usá-la para desenhar um gráfico que seria parecido com este:

gráfico do sample Copiar →↵…«»“”-–—

Já deve ter visto imagens parecidas com esta anteriormente. Esta imagem consiste basicamente na forma de onda de um sample. É só uma gráfico de números. Normalmente, uma onda como esta terá 44100 pontos de informação por segundo (isto deve-se ao Teorema de Nyquist-Shannon), apesar de poder ter mais ou menos (48000, 96000, 192000, etc., resultando daí a necessidade de mais capacidade processamento, e consequentemente um nível superior de qualidade de audio, especialmente em processos de manipulação do áudio como time-stretching). Se o sample tiver a duração de 2 segundos, a onde vai ser representada por 88200 números, e iremos dar à coluna a uma velocidade de 44100 pontos por segundo. Claro, podíamos dá-los ao dobro da velocidade, que seria 88200 pontos por segundo. Levaria, portanto, apenas 1 segundo a tocar. Também podemos tocá-la a metade da velocidade, correspondente a 22050 pontos por segundo, demorando 4 segundos a tocar.

A duração de um sample sample é afectada pela velocidade (rate):

Podemos representar isto com a seguinte fórmula:

new_sample_duration = (1 / rate) * sample_duration 

Mudar o rate também afecta a altura (não confundir com volume!) da sample. A frequência, ou altura, de uma onda é determinada pela velocidade com que esta se move para cima ou para baixo. O nosso cérebro, de alguma forma, transforma o movimento rápido das colunas em notas agudas e movimento lento em notas graves. É por isso que às vezes conseguimos ver as colunas a mexer.

Se pegarmos numa onda e a encolhermos, ela vai mover-se para cima e para baixo mais vezes durante o nosso período de tempo, que corresponde a um segundo (uma vibração por segundo corresponde. a um hz). Isto faz com que o som soe mais agudo. Acontece que ao duplicar o número de oscilações (movimentos para cima e para baixo) duplica a frequência. Então, tocar uma sample ao dobro do rate e isto duplica também a frequência a que esta é ouvida. Do mesmo modo, diminuir o rate para metade vai diminuir a frequência para metade. Outros rates vão afectar a frequência da mesma maneira.