Um harmônico é um modo de vibração de uma corda. Quando tocamos uma nota, a corda da guitarra vibra em uma onda estacionária com nodos nas extremidades; com a frequência da nota que estamos tocando. Porém ela também vibra SIMULTANEAMENTE em todos os múltiplos inteiros da frequência fundamental. A figura 3.1 mostra os harmônicos (modos de vibração) de uma corda solta de uma guitarra.
O número presente em cada modo de vibração na figura 3.1 representa a fração do período fundamental que o modo possui. Lembrando que a frequência de um movimento periódico é o inverso de seu período, vemos que, caso adotemos como f a frequência do primeiro modo de vibração, teremos que o segundo modo será de frequência 2f, o terceiro 3f e assim por diante.
Decidimos neste projeto interpretar até o quinto harmônico de cada nota, com o objetivo de
obter uma melhor precisão na detecção das notas. Tendo que a nota mais aguda a ser capturada pelo
G2M será o
, seu quinto harmônico terá a frequência
. Portanto,
a frequência máxima de entrada a ser capturada pelo G2M é de:
O bloco de Entrada e conversão Analógico/Digital é conectado ao sinal provindo diretamente da guitarra, e deve realizar todos os três passos ADC, ou seja, amostragem, quantização e codificação, apresentando em sua saída um fluxo de amostras na taxa definida.
O bloco FFT obtém com uma certa periodicidade uma sequência de amostras e realiza sobre elas uma transformada discreta de Fourier [2], a qual transforma o sinal do domínio do tempo para o domínio da frequência.
A função do bloco Interpretador de altura é o de, recebendo a representação da nota (ou acorde) tocada no domínio da frequência, análisar tal representação e obter a frequência do primeiro harmônico (fundamental) de cada nota. O Interpretador deve ainda comparar o valor do fundamental obtido com uma tabela contendo as frequências de cada uma das notas, e dentro de uma margem de erro, atribuir o valor da nota.
O bloco Detector de fronteira se comunica com o bloco Interpretador de duração enviando eventos que representam o início de um som específico sendo executado e o fim do mesmo (início do próximo). O Interpretador de duração deve calcular o tempo decorrido entre o início e fim da execução do som, e, com base no andamento fornecido, colocar na saída a representação simbólica da duração da nota.
Por fim, o bloco MIDI out recebe um fluxo contendo a representação simbólica das notas sendo tocadas, e tem como saída o fluxo de eventos MIDI correspondentes, os quais podem ser enviados ao mundo externo através de uma interface serial, ou então armazenados em um arquivo no próprio dispositivo.
João Paulo Pizani Flor 2010-07-12