Boa tarde!
O enunciado do terceiro trabalho maior está disponível no PACA. Ele possui duas fases: a primeira é simples e tem data limite de entrega em 22/11/2019 até 23:55; a segunda fase poderá ser entregue até 06/12/2019.
Bom trabalho!
Marcelo
Boa tarde!
O enunciado do terceiro trabalho maior está disponível no PACA. Ele possui duas fases: a primeira é simples e tem data limite de entrega em 22/11/2019 até 23:55; a segunda fase poderá ser entregue até 06/12/2019.
Bom trabalho!
Marcelo
Boa tarde!
Segue outro arquivo de teste: esse patch abre um arquivo MIDI e produz uma sequência de instruções para o sintetizador Karplus-Strong. Arquivos MIDI em geral possuem eventos para vários canais diferentes, então pode ser necessário adaptar o patch para usar outros arquivos MIDI. O arquivo bach.midi em anexo possui instruções para os canais 144 e 145, que são direcionadas para dois sintetizadores KS independentes. Se o seu programa funcionar para 1 canal e começar a se comportar de forma estranha com dois canais, pode ser que você esteja usando variáveis globais (por exemplo "tabela" ou "tamanho") onde deveria estar usando variáveis locais ou restritas ao módulo (por exemplo M.tabela ou M.tamanho).
Pessoal,
há um pequeno erro no enunciado que pode ser difícil de achar: a fórmula correta para calcular o L nesta fase é math.floor(R/F-S), não tem aquele 0.5 que corresponderia ao arredondamento. O enunciado em pdf já está atualizado no PACA.
A razão é que para o filtro passa-tudo funcionar, o L não pode ser arredondado para o valor inteiro mais próximo, mas tem realmente que ser truncado para um valor inteiro menor, assim o passa-tudo completará o que falta para o atraso ideal correspondente à frequência fundamental pretendida. Para verificarem que essa correção de afinação está de fato melhorando o resultado, sugiro usarem o objeto [sigmund~] para verificarem a frequência fundamental do som da saída (assim como eu fiz na reformulação do patch de exemplo do Felipe).
Mais um detalhezinho para deixar o enunciado mais preciso: no item "Controle da duração percebida", caso G0<G1 devemos resolver a equação quadrática (2-2cos(2πF/R))S²+(2cos(2πF/R)-2)S+(1-G12) = 0 para encontrar um S∈[0,½] (e não "o menor S", que poderia estar fora dessa faixa): link para o PDF atualizado.