MAC 337/5900 - Computação Musical
Aula 8 - 30/8/7 -
Mais sobre o CSound
Filtros Digitais
- Filtros não são perfeitos, i.e., um filtro
passa-baixa não corta imediatamente as freqüências
acima de um determinado valor, ele vai atenuando as
freqüências progressivamente.
- Tipos de filtros:
- passa-baixa
- passa-alta
- passa-banda
- rejeita-banda
- Na figura abaixo, a linha pontilhada indica uma atenuação de 3dB no som.
- No CSound, estes filtros são implementados pelos opcodes:
- tone — a one-pole lowpass (b),
- atone — a one-pole highpass (c),
- reson — a two-pole bandpass (d) and
- areson — a two-pole bandreject (e).
In instr 128, shown in figures 1.45 and 1.46, we dynamically filters "white noise" produced by Csound’s rand opcode. Separate expon and line opcodes are used to independently modify the cutoff frequency and bandwidth of Csound’s two-pole reson (bandpass) filter. Also, an expseg amplitude envelope is used and displayed.
Estudo 5 - Ruído, Filtros, Atrasos e Flangers
- Operador rand gera ruído branco, i.e., um sinal com todas as freqüências.
- O instr 128 filtra o ruído branco mudando dinamicamente a forma como esta filtragem é feita.
- Ele usa um filtro passa banda reson que recebe como parâmetros a freqüência central e a largura de banda.
- A freqüência central é variada com um expon.
- A largura de banda é variada com um line.
- Todo o som é acomodado dentro de uma envoltória de amplitude fixa para o instrumento.
- Analisar os arquivos e ouvir.
- Os instrumentos de 129 a 131 mostram como podemos colocar vários filtros (neste caso iguais) em série.
- Podemos tanto ouvir como ver o espectro do efeito de cada filtro novo.
- Ouvir 129.{orc,sco}
- instr 129 ; One-Pole Lowpass
anoise rand ifrq
afilt tone anoise, kcut
dispfft afilt, idur, 4096
instr 130 ; Two-Pole Lowpass
anoise rand ifrq
afilt2 tone anoise, kcut
afilt1 tone afilt2, kcut
dispfft afilt1, idur, 4096
instr 131 ; Three-Pole Lowpass
anoise rand ifrq
afilt3 tone anoise, kcut
afilt2 tone afilt3, kcut
afilt1 tone afilt2, kcut
dispfft afilt1, idur, 4096
instr 132 ; Four-Pole Lowpass
anoise rand ifrq
afilt4 tone anoise, kcut
afilt3 tone afilt4, kcut
afilt2 tone afilt3, kcut
afilt1 tone afilt2, kcut
dispfft afilt1, idur, 4096
- Os filtros citados acima foram os primeiros a aparecer em CSound.
- Eles são rápidos mas freqüentemente distorcem o som e causam estouros (erros samples-out-of-range).
- Posteriormente, filtros mais precisos e sofisticados foram desenvolvidos, como os da família Butterworth.
- O instrumento 133 aplica um filtro butterbp e um butterlp num som do tipo pluck.
- Ouvir 133 sem os filtros e depois com os filtros.
Abreviações no arquivo da partitura
- Não é nada fácil compor uma música inteira digitando nota por nota nos arquivos .sco.
- O seu uso fez com que vários músicos fossem
aprender a linguagem C para poder compor as partituras
programaticamente.
- O uso de arquivos MIDI ou de teclados MIDI também foi uma solução muito usada.
- Mas há algumas abreviações e comandos que podem ser usados no arquivo de partitura.
- O comando "a" indica que se deve avançar direto para um determinado instante (por exemplo, tocar a partir do tempo 120s).
- O comando "s" permite que você indique que uma nova
seção da peça está começando e
começa de novo a contar do instante 0. Isso é importante
para poder repetir seções e mudá-las de lugar.
- Um ponto ". " significa que o respectivo parâmetro da linha anterior deve ser repetido.
- Um sinal "<" interpola linearmente entre dois valores dados
nas linhas superiores e inferiores. O número de notas determina
o número de interpolações.
- O sinal "+" funciona apena para o p2 (start time)
e calcula automaticamente onde deve ser o início da nota de
forma que ela fica grudada no final da nota anterior, ou seja, é
igual ao p2+p3 da nota anterior.
- O comando "t" (tempo) permite que se defina o andamento da peça. O padrão é 60 pulsos por minuto. Mas pode ser mudado.
- t 0 120 indica 120 pulsos por minuto, ou seja, o dobro do normal.
- t 0 120 10 30 indica que a peça começa no andamento 120 e gradualmente muda para andamento 30 no instante 10.
- Um experimento interessante é colocar no instrumento 133:
- t 0 120 2 30 4 120
- t 0 30 2 120 4 30
Eco e Ressonância
- Um filtro pente (comb filter)
é um circuito cuja saída é retroalimentada em sua
entrada após ser multiplicado por um certo valor e sofrer um
certo atraso.
- Quando o atraso é grande, e o fator de multiplicação é menor do que 1, temos um efeito de eco.
- Quando o atraso é pequeno, temos um efeito de ressonância.
- O instrumento 135 mostra como um eco pode se tornar uma
ressonância (reverberação) à medida que
diminuímos o atraso.
Flanger
- O opcode comb não permite que o atraso seja mudado dentro de uma mesma nota mas o vdelay permite.
- Variando dinamicamente estes atrasos, é possível de
se criar um dos efeitos mais populares da música
eletrônica, o flanger.
- Normalmente o que se faz é montar uma seqüência encadeada de vdelays e depois mixar todos eles.
- Ver instrumento, partitura e ouvir o flanger em 136.
- exercício: trocar ruído branco do instr 136 por uma nota definida, por exemplo, senóide.
Variáveis Globais
- Variáveis do tipo i, k e a que usamos até agora são locais ao escopo de um dado instrumento.
- Mas podemos ter variáveis globais, do tipo gi, gk e ga.
- Variáveis globais podem ser usadas para trocar informações entre os instrumentos.
Reverberação e Balanço (Pan)
- No instrumento 137, um sinal simples é gerado com o loscil e esse sinal seco é jogado para a placa de som.
- Mas, além disso, o sinal é disponibilizado para
fora do instrumento através das variáveis garvb e gacmb.
- gacmb é usado pelo instrumento 198 que é um gerador de eco que usa um filtro pente.
- garvb é usado pelo instrumento 199 que é um reverberador que usa o opcode reverb2
- reverb2 é simplesmente um reverberador que consiste de 6 filtros pente paralelos
- Ouça o exemplo 137 e perceba como o uso desses
instrumentos podem gerar diferentes tipos de efeitos; desde
acústicas de salas pequenas, médias e grandes, até
sons de caráter essencialmente sintetizados e robóticos.
- O instrumento 138 é nosso velho conhecido da síntese FM mas agora com capacidades de panning,
i.e., de controle de posicionamento entre a saída esquerda e
direita (supondo saída em dois canais, ou seja, estéreo).
- Isso é feito com o opcode outs que joga dois sinais para uma saída estéreo, um para cada canal.
- Neste exemplo, usa-se uma variável ipan variando entre 0 e 1 como se fosse um botão de "balanço".
- outs asig*ipan, asig*(1-ipan)
- No instrumento 138, o pan é fixo (é um parâmetro).
- Experimente tirar e por o reverberador (instr 199).
- Já o etude6 contém instrumentos onde o pan varia dinamicamente.
- Finalmente, o instrumento 141 usa um instrumento baseado em
modulação de amplitude adicionando um reveberador global
e um balanço (panning) baseado num oscilador senoidal de baixa freqüência.
- Exercício: analisar em detalhes o que está acontecendo nos exemplos 139 e 140.
Referências
Próxima Aula
Página de MAC
337/5900
Página do Fabio
Página do
DCC