MAC 337/5900 - Computação Musical
Aula 7 - 28/8/7 -
Mais sobre o CSound
Estudo 2 de projeto de som: mais parâmetros
etude2.orc etude2.sco
- No estudo 2, os instrumentos ao invés de serem
definidos com parâmetros fixos, agora usam
variáveis nos parâmetros dos opcodes que eles
chamam.
- Portanto, passam a ser configuráveis a partir da
partitura .sco.
- O instr 107, por exemplo, possui argumentos para amplitude
(p4), freqüência (p5) e tabela de forma de onda (p6).
-
instr
107 ; P-Field Oscil
a1 oscil
p4, p5, p6
out
a1
endin
- Portanto, passa a ser possível fazer um mesmo instrumento
tocar uma seqüência de oitavas seguidas por um arpejo:
- ; P1
P2 P3 P4
P5 P6
; ins start dur amp freq waveshape
i 107 0 1
10000 440
1
i 107 1.5 1 20000 220 2
i 107 3 3
10000 110
2
i 107 3.5 2.5 10000 138.6 2
i 107 4 2 5000 329.6 2
i 107 4.5 1.5 6000 440 2
- O instrumento 101 foi refatorado e gerou o instr 108 que permite uma grande variedade de coloridos utilizando síntese FM:
- ver e ouvir 108.*
- Portanto, o instr 108 passa a ser um instrumento que pode soar
com timbres muito diferentes entre si, de acordo com os
parâmetros que são passados.
- A mesma refatoração foi feita com todos os instrumentos do Etude 2.
Amplitudes e truncamento
- Internamente, para o CSound, estamos apenas manipulando tabelas de números.
- Em particular, se tocamos duas notas simultaneamente, o software
vai simplesmente somar os valores númericos e a soma pode
estourar o valor máximo possível para a amplitude
(tipicamente 216=65536, no intervalo -32768 a +32767).
- Este truncamento muda a forma de
onda, alterando a sua sonoridade, por exemplo, a soma de duas ondas
triangulares de mesma fase pode ser truncada em seus topos).
- Pior ainda, 2 vezes a amplitude
não é percebido por seres humanos como o dobro da
intensidade pois nossa percepção é mais
próxima de algo logarítmico.
- Não existe nenhum opcode
pronto para resolver este problema, embora haja alguns que ajudam.
Portanto, o escultor tem que ficar ouvindo o arquivo muitas vezes
até se livrar de todos os truncamentos e seus efeitos
indesejados.
Taxas de Dados e Computação
- Variáveis podem ser recalculadas em 3 taxas possíveis:
- i-rate: reavaliadas a cada nova nota
- k-rate: reavaliadas a cada novo período de controle, na taxa de controle (kr)
- a-rate: reavaliadas a cada amostra (sr)
- A primeira letra da variável (i, k ou a) indica o tipo da variável, como em:
- ;output opcode amp, frq, func ; comment
ksig oscil
10000, 1000, 1
; 1000 Hz Sine - f 1
asig oscil
10000, 1000, 1
; 1000 Hz Sine - f 1
- No exemplo acima, ambos soariam bem semelhantes pois ambos
possuiriam amostras suficientes para soar como uma senóide a
1000 Hz para o ouvido humano.
- No entanto, se usássemos uma onda dente de serra, o
número de amostras não seria suficiente e teríamos
aliasing:
- ; output
opcode amp,
frq, func
; comment
ksig oscil 10000,
1000, 2 ; 1000
Hz Saw - f 2
asig oscil 10000,
1000, 2 ; 1000
Hz Saw - f 2
- Uma das vantagens em se usar uma taxa menor de
avaliação é ser computacionalmente mais leve.
Dependendo do contexto, isso pode ser mais ou menos relevante.
- Mas cuidado pois se você usar uma taxa mais baixa para gerar a onda sonora final, poderá ter problemas de aliasing: ver exemplo aliasing.orc.
Estudo 3: Envoltórias
- Até agora todos nossos instrumentos tocavam na amplitude
máxima direto. Mas no mundo real, os instrumentos não
são assim, sua amplitude varia ao longo do tempo.
- Variações possíveis:
- Timbrísitca: modelada através do famoso ADSR
- Ataque
- Decaimento
- Sustentação
- Liberação (Release)
- Trêmulo
- variação periódica, oscilatória na amplitude
- No instr 113, o operador linen é usado para controlar
dinamicamente a amplitude do oscilador funcionando como um gerador de
uma envoltória AR (attack-release):
-
instr 113
; SIMPLE OSCIL WITH ENVELOPE
k1 linen p4, p7, p3, p8 ; p3=dur, p4=amp, p7=attack, p8=release
a1 oscil k1, p5, p6 ; p5=freq, p6=waveshape
out a1
endin
- Com a seguinte partitura:
- ;ins
strt dur amp
frq fn atk rel
;==================================================
i113
0 2 10000
440 1
1 1
i113
2.5 2 10000
220 2 .01 1.99
i113
5 4 10000
110 2 3.9 .1
i113
10 10 10000
138.6 2 9 1
i113
10 10 10000
329.6 1 5 5
i113
10 10 10000
440 1
1 9
- Ver a documentação do linen.
- A envoltória funciona como mostra esta figura do tutorial do CSound:

- Já o instr 117 usa vários tipos de envelopes para mudar os parâmetros da síntese granular.
- um aspecto interessante é que meu laptop não
é capaz de gerar o som em tempo real, portanto é
necessário gravar no disco e ouvir depois.
- Ouvir o estudo 3 inteiro que aplica envoltórias em diferentes parâmetros de diferentes sintetizadores.
Síntese FM
- Freqüência modulada, usada inicialmente para síntese de som por John Chowning.
- Documentação do opcode foscil no manual de referência.
- Vamos ver uma série de variações em cima do instr 108.
- Exemplos interessantes da documentação:
- Manual/html/examples/fmb3.csd (som de órgão)
- Manual/html/examples/fmvoice.csd (órgão imitando o timbre da voz????)
- Manual/html/examples/fmbell.csd (sino)
- Manual/html/examples/fmpercfl.csd (som maluquinho)
- O instr 119 usa envoltórias para variar dinamicamente os parâmetros da síntese FM.
Estudo 4 - Mixagem, Chorus, Trêmulo e Vibrato
- O instr 120 é uma mixagem de 3 sinais (amix = asig1+asig2+asig3)
- um precisamente na nota
- outro 1% desafinado para cima
- outro 1% desafinado para baixo
- Esta desafinação gera um efeito conhecido por chorus (derivado do batimento)
- Ele usa um envelope de envoltória dado por kenv
- ver e ouvir
- Note que ele usa o display para mostrar a envoltória kenv a cada nota tocada.
- Já o instrumento 122 usa Fusão Espectral
- Ele é um instrumento híbrido, composto por um foscil (síntese FM) e um buzz
(combinação de harmônicos de uma senóide
fundamental). O som se transforma ("morfa") de um para outro durante
cada nota com um ataque pluck (ataque de corda beliscada).
- De quebra, ele usa o dispfft para usar a FFT para calcular o espectro e mostrar a cada 250 ms.
- Ao invés de simplesmente mixar o som gerado por dois
sintetizadores e oscilar de um para outro, pode-se modular um
sintetizador com o sinal gerado por outro.
- No instr 124, a amplitude é modulada por um oscilador enquanto que a freqüência é modulada por outro.
- Já o instr 126 apresenta um vibrato
(micro-variação periódica na altura), que é
algo presente em muitos instrumentos reais, até na voz humana.
- Note que, neste instrumento, a freqüência é determinada em classes de alturas e convertida com cpspch
- Trêmulo é uma micro-variação periódica na amplitude do som e também pode ser gerada da mesma forma.
Referências
Próxima Aula
Página de MAC
337/5900
Página do Fabio
Página do
DCC