Correção da afinação

Correção da afinação

por Marcelo Queiroz -
Número de respostas: 1

Para quem tiver curiosidade de observar a qualidade do mecanismo de correção de afinação, segue abaixo uma tabela com os valores de F0 na entrada, na primeira fase do EP3 e na segunda fase do EP3 (quem quiser testar mas não tiver mais a versão entregue na 1a fase pode recuperá-la pelo PACA).

A razão pela qual a correção não é perfeita é o fato de usarmos uma fórmula aproximada para o atraso do filtro passa-tudo: usamos D=(1-C)/(1+C), quando o mais acurado seria usar a fórmula 3.104 do Moore, que é um tanto mais chata de inverter. O patch que gerou essa tabela segue em anexo.

F0    1a fase    2a fase
100.0    99.9    99.9
200.0    199.1    199.5
300.0    299.0    299.5
400.0    399.1    399.5
500.0    498.3    499.2
600.0    591.9    595.9
700.0    694.5    697.2
800.0    794.6    797.3
900.0    890.9    895.4
1000.0    991.0    995.5
1100.0    1088.9    1094.4
1200.0    1176.0    1187.9
1300.0    1278.3    1289.0
1400.0    1356.9    1378.1
1500.0    1494.9    1497.4
1600.0    1547.4    1573.2
1700.0    1664.2    1681.8
1800.0    1729.4    1764.0
1900.0    1876.6    1888.1
2000.0    1960.0    1979.7
2100.0    2051.2    2075.2
2200.0    2151.2    2175.2
2300.0    2261.5    2280.4
2400.0    2383.8    2391.7
2500.0    2383.8    2440.4
2600.0    2520.0    2559.1
2700.0    2672.7    2686.0
2800.0    2672.7    2734.6
2900.0    2845.2    2871.8
3000.0    2845.2    2920.2
3100.0    3041.4    3069.8
3200.0    3041.4    3118.2
3300.0    3266.7    3282.8
3400.0    3266.7    3331.1
3500.0    3266.7    3379.0
3600.0    3528.0    3562.6
3700.0    3528.0    3610.7
3800.0    3528.0    3658.6
3900.0    3834.8    3865.9
4000.0    3834.8    3913.8

Em resposta à Marcelo Queiroz

Re: Correção da afinação

por Marcelo Queiroz -

Complementando a mensagem anterior, fiquei aqui brincando com as equações para testar se a fórmula (3-101) poderia ser usada para definir um parâmetro C melhor para o filtro passa-tudo, e minha conclusão é que não, os melhores resultados de afinação são obtidos mesmo para a fórmula simplificada C=(1-Δ)/(1+Δ). Esses foram os números que obtive usando o [sigmund~] para medir a frequência fundamental gerando sons KS com frequências de entrada 100,200,300,...,4000:

99.9419
199.972
299.998
399.965
499.999
599.989
700.079
800.117
899.991
999.939
1099.6
1199.98
1299.97
1398.03
1500
1599.98
1699.88
1800
1899.7
1999.77
2000.33
2099.71
2208.67
2302.89
2399.71
2499.76
2599.32
2699.39
2799.35
2898.97
2999.3
3098.68
3198.91
3298.9
3397.94
3499.25
3597.32
3697.24
3798.88
3897.24
4000.85

Esses valores empíricos são bem melhores do que os valores teóricos da minha última mensagem. Minha explicação para isso é que, embora a fórmula (3-101) que eu usei para estimar o F0 teórico de fato reflita a duração do loop para a frequência fundamental F0, o filtro passa-tudo possui um atraso de grupo não-linear que varia com a frequência, e esse atraso vai ficando menor para as frequências mais altas, o que estica aqueles parciais tornando-os inarmônicos e "desafinados para cima". Assim a frequência fundamental percebida não corresponde exclusivamente à correção de atraso aplicada na fundamental, mas também é puxada para cima por conta desses parciais inarmônicos.