MAC 337/5900 - Computação Musical
Aula 22 - 1/11/7
Capítulo 7 - Deslocamentos no tempo e Atrasos (delays)
- Quando sobrepomos o mesmo som ou trecho musical com atrasos, criamos diferentes tipos de efeitos:
- Cânones: percebemos cada uma das instâncias do trecho independentemente.
- Ecos: com atrasos entre
30ms e 1s, percebemos a segunda instância como um eco da
primeira, a uma certa perda de inteligibilidade, principalmente no caso
da voz humana, mas o som resultante é percebido como tendo a
mesma forma e estrutura do som original.
- Filtragem: com atrasos
menores do que 30ms, as duas instâncias se sobrepõem de
forma quase imperceptivel de forma que não as separamos
auditivamente mas isso gera um efeito de filtragem que esconde algumas
freqüências e ressalta outras, desta forma alterando o
espectro do som.
- Alteração na qualidade acústica de uma sala:
se tocamos a cópitrasada numa intensidade um pouco menor, ou
ainda tocamos várias cópias atrasadas em
seqüências, com intensidade cada vez menor, isso mimetiza a
acústica de uma sala, com as múltiplas reflexões
que ocorrem com as ondas sonoras. Esse efeito é muitas vezes
chamado de reverberação.
- Além disso, podemos combinar mais do que uma das técnicas acima em um mesmo trecho.
- Matematicamente, atrasos podem ser representados como mudanças nas fases das senóides que compõem um som.
Números Complexos
- Até agora trabalhamos com números reais. Mas, a
partir do Capítulo 7, se faz necessário lidar com
números complexos.
- Vamos dar uma olhada rápida na Seção 7.1 e na Figura 7.1 que apresenta números complexos.
- A razão pela qual usamos números complexos em
Computação Musical é que eles "magicamente"
calculam funções trigonométricas úteis.
- Muitas vezes temos que adicionar ângulos para representar
mudanças nas fases de senóides em um sinal de
áudio ao longo do tempo (quando estamos implementando um delay).
- Quando multiplicamos 2 números complexos, o argumento do
produto é a soma dos argumentos dos dois fatores (ver
cálculo no Puckette pp. 177).
Senóides Complexas
- Relembrando a fórmula da senóide real : x[n] = a cos(ω n + θ)
- a é a amplitude
- θ é a fase e a freqüência angular é ω
- Suponha que um número complexo Z tenha magnitude 1 e argumento ω e seja escrito, na forma polar, do seguinte modo:
- Então, as potências de Z obedecem a seguinte fórmula:
- Zn = cos(nω) + i sin(nω)
- vale para n negativo também
- isso é mostrado graficamente na Fig. 7.2
- Pegando a parte real de cada um, obtemos uma senóide de fase inicial zero e amplitude 1:
- cos(0), cos(ω), cos(2ω), cos(3ω), cos(4ω),...
- Se multiplicamos o número por uma constante complexa A de magnitude a e argumento Φ obtemos
- A, AZ2, AZ3, ...
- mostrada na Fig. 7.2
- as magnitudes são todas a e o argumento do termo n é nω + Φ
- O número complexo A guarda dentro de si tanto a amplitude do sinal (a) quanto a fase (Φ).
- O número complexo Z, de magnitude unitária, controla a freqüência ω.
- Numa senóide como a anterior, A é chamada de amplitude complexa.
- Podemos utilizar este ferramental matemático da seguinte forma.
- Suponha que queremos saber a amplitude e fase da soma de duas senóides X e Y de mesma freqüência:
- X[n] = AZn
- Y [n] = BZn
- X[n] + Y [n] = (A + B)Zn
- uma senóide com amplitude |A + B| e fase igual ao argumento de A+B
- Este é um jeito muito mais simples de manipular amplitudes
e fases do que utilizar funções trigonométricas e
as propriedades de senos e cossenos.
Deslocamento no tempo e mudanças de fases
- Começando com um sinal qualquer X[n] podemos deslocá-lo no tempo incluindo um atraso d fazendo:
- assim, a d-ésima amostra de Y será a primeira amostra de X.
- Deslocamento não muda em nada o espectro do som. O som continua idêntico mas deslocado no tempo.
- Em numa senóide X[n] = AZn, um deslocamento no tempo é representado por
- Y [n] = X[n - d] = AZ(n-d) = Z-dAZn = Z-dX[n]
- ou seja, é o equivalente a multiplicar a senóide por Z-d lembrando que a amplitude de Z é 1 e não se altera
- a mudança de fase é igual a -dω, a senóide avança ω radianos por amostra e é atrasada em d amostras.
Redes de atrasos
- Um deslocamento no tempo de d amostras gera um atraso de d/R unidades de tempo onde R é a taxa de amostragem.
- A Fig. 7.3 mostra um esquema de uma rede de atraso linear.
- Se o atraso não muda, o espectro do som de saída é idêntico ao de entrada (a menos do atraso)
- Como podemos implementá-la computacionalmente?
- ver G01.delay.pd
- A Fig. 7.4 mostra o comportamento da rede do domínio do tempo.
- Em termos algébricos, o que a rede faz é o seguinte:
- se a entrada é X[n] = Zn
- a saída então é (1 + Z-d)Zn
- A FIg. 7.5 mostra o que acontece no plano complexo quando somamos 1 + Z-d
- A quantidade H é chamada de ganho da rede de atraso linear
e o cálculo de seu valor é apresentado em Puckette pp.
183.
- A Fig. 7.6 mostra graficamente este ganho que varia em função da freqüência angular ω. Esta é a chamada resposta de freqüência da rede.
- Se o atraso é múltiplo de 2π/d, o som se soma a ele mesmo e a amplitude é o dobro.
- Se é múltiplo de π/d, as ondas se cancelam e o resultado é nulo.
- Como o ganho varia de acordo com a freqüência, esta rede pode ser utilizada também como um filtro.
- Devido à sua forma, ele é chamado de filtro pente (comb filter).
- Se temos na entrada um som complexo com múltiplos harmônicos, podemos afinar o filtro pente em d = π/ω de forma que os harmônicos ímpares sejam cancelados e os harmônicos pares multiplicados por 2.
- Assim, obtemos um novo sinal com harmônicos 2ω, 4ω, 6ω.
- A não ser pelo fator multiplicativo 2, a envoltória espectral do novo som será igual ao do som de entrada.
- Ou seja, descobrimos uma forma de transpor o som uma oitava
acima, sem modificar a sua envoltória espectral (o seu timbre).
- Isso é implementado em G06.octave.doubler.pd
- Com atrasos menores do que 20ms em geral nos interessará apenas analisar o efeito do ponto de vista espectral.
- Com atrasos maiores do que 50ms em geral nos interessará apenas analisar o ofeito no domínio do tempo.
Redes de atrasos recirculantes
- É interessante realimentar o gerador de atraso com a
própria saída final do som, gerando assim um laço
infinito de atrasos compostos.
- A Fig. 7.7 mostra isso esquematicamente, é um filto em pente recirculante (recirculating comb filter)
- Note a importância do ganho g na retroalimentação, chamado de coeficiente de retroalimentação.
- Uma rede circulante cuja amplitude vai a 0 é chamada estável.
- Por outro lado, se a amplitude cresce sem limites, é chamada de instável.
- A Fig. 7.8 mostra uma análise do que acontece no domínio do tempo.
- ver G02.delay.loop.pd
- A análise algébrica (complexa) da rede recirculante
leva à Figura 7.10 que mostra o efeito do filtro nas
várias freqüências.
- Note como no filtro de pente recirculante os dentes são bem mais finos (se parece bem mais com um pente :-)
- O Capítulo 8 mostra como usar redes de atrasos com d = 1 amostra para implementar diferentes tipos de filtros.
Um sintetizador baseado em pulsos com atrasos recirculantes
- Uma técnica interessante para gerar timbres de cordas beliscadas, como um cravo, é implementada em G04.control.blocksize.pd.
- Ele usa pulsos inseridos em redes de atrasos recirculantes. O
atraso é calculado em função da nota que se quer.
- A idéia é mimetizar a propagação das ondas na corda após o pizzicato (pulso) inicial.
- Esta técnica foi publicada num artigo de Karplus-Strong mas já era conhecida antes.
- Já G03.delay.variable.pd mostra como usar atrasos recirculantes num sintetizador FM.
- G07.shaker.pd mostra como usar atrasos para mudar dar uma chacoalhada no timbre aleatoriamente.
Reverberação artificial
- Tenta imitar computacionalmente a reverberação gerada por um ambiente real.
- Ou seja, as reflexões que as ondas sonoras fazem ao colidir com os antemparos em um abiente como uma sala, por exemplo.
- Reverberação artificial é muito usada para
dar um caráter mais "vivo" em gravações em
estúdio, por exemplo.
- Há uma série de outras aplicações
musicais também [Dodge-Jerse85], por exemplo, esconder
imperfeições da voz.
- Simulamos a acústica da sala usando um gerador de atraso para cada parede ou anteparo da sala.
- Cada vez que o som bate na parede, ele perde um pouco de sua energia, que é absorvida pela parede.
- A Fig. 7.15 mostra um esquema de um reverberador.
- Os Rx são multiplicações por matrizes de
rotação que intermixa os dois sinais de entrada
- os dx são atrasos simples.
- Em cada estágio o número de ecos é
dobrado, indo a 4, 8, 16 (no exemplo da figura) e 32, 64, 128 , 256 em
reverberadores reais.
- Na segunda parte, vem a parte recirculante do reverberador,
- G08.reverb.pd contém uma implementação de um reverberador
- Reverberadores podem ser usados também para capturar um som de um instrumento e fazê-lo durar para sempre.
- Em instrumentos monofônicos como em guitarras, isso pode ser usado para tocar acordes.
- Existe um pedal de guitarra para fazer isso.
Referência
Página de MAC
337/5900
Página do Fabio
Página do
DCC