Subsections

Requisitos

Restrições musicais

O foco do projeto é a ``tradução'' da linha melódica tocada por um guitarrista para o formato MIDI, que posso ser postariormente lido e armazenado em um computador que suporta tal formato. Essa visão reduz bastante o escopo do projeto, nos seguintes aspectos:

Múltiplas vozes

Múltiplas vozes refere-se à captura simultânea da execução de vários instrumentos musicais. O nosso projeto fica, portanto, restrito à captura da execução de somente UMA guitarra elétrica. De fato, se desejássemos fazer a captura da execução simultânea de vários instrumentistas, poderíamos utilizar vários equipamentos em paralelo e depois realizar a mixagem dos fluxos MIDI em um computador de mesa.

Acordes

Acordes2.1 são um componente vital na performance de um guitarrista, porém a interpretação de um acorde a partir da onda sonora é mais complexa do que uma nota sozinha. A figura2.1 mostra um exemplo de acorde, a tríade de Dó Maior.
Figura: Acorde de Dó Maior com três notas
Image CM_triad

Quando se realiza a análise de Fourier sobre um trecho musical contendo um acorde, estarão presentes no domínio da frequência todos os harmônicos de todas as notas do acorde, o que aumenta a complexidade do algoritmo de detecção das notas, e também a chance de notas serem confundidas devido à erros de ADC e erros numéricos.

Tessitura

A tessitura2.2 de uma guitarra típica é mostrada na figura 2.2. Ela vai de E2 (nota mi da 2a oitava do piano) até D6 (nota ré da 6a oitava do piano).
Figura: Tessitura de uma guitarra típica
Image range_guitar

Em uma partitura, todos os intervalos entre duas notas consecutivas parecem iguais, e de fato nosso ouvido percebe todos os intervalos entre notas consecutivas como se tivessem a mesma largura. Porém, à medida em que um par de notas consecutivo mais agudo é escolhido, a diferença entre suas frequências aumenta, e a cada intervalo de uma oitava essa diferença dobra. A tabela 2.1.3 dá uma noção dessa variação.

Tabela: Uma escala musical e as respectivas diferenças entre pares de notas consecutivas
Nota Frequência Diferença
C3 130.813 Hz 16.019 Hz
D3 146.832 Hz -
C4 261.626 Hz 32.039 Hz
D4 293.665 Hz -
C5 523.251 Hz 64.079 Hz
D5 587.330 Hz -
C6 1046.50 Hz 128.16 Hz
D6 1174.66 Hz -


Portanto, devido à variação dessa diferença de frequência nos intervalos, não é indiferente para a implementação a escolha de qual intervalo musical vamos suportar na captura. Caso escolhêssemos um intervalo muito alto (agudo), seria necessário utilizar uma alta taxa de amostragem, pois a frequência fundamental da nota e de seus harmônicos seria muito alta.

Porém, caso escolhêssemos um intervalo muito baixo, o problema seria maior ainda. Como em um intervalo baixo a diferença entre notas consecutivas é muito pequena, algumas imprecisões devidas à conversão A/D e a erros numéricos nos algoritmos de DSP poderiam nos levar a detectar a nota errada. Em uma seção específica serão abordadas as características de entrada do equipamento (incluindo a tessitura) em mais detalhes.

Restrições de protocolo

As restrições sobre as formas musicais que nosso equipamente é capaz de traduzir impõem várias limitações sobre o stream MIDI produzido como saída, e o simplifica bastante.

O fato de capturarmos apenas uma voz significa que no stream de saída hávera apenas um canal MIDI. Todos os eventos NOTEON e NOTEOFF carregarão o mesmo número de canal, e não serão produzidos eventos CONTROLCHANGE.

A figura 2.1 ilustra, de forma simbólica, a sequência de eventos MIDI que ocorreriam ao se tocar um acorde de Dó Maior em semicolcheia.

Figura: Stream MIDI para um acorde de Dó Maior em semicolcheia
\begin{figure}\begin{center}
\textbf{(NOTEON.CH1 C4) (NOTEON.CH1 E4) (NOTEON.CH...
...(NOTEOFF.CH1 C4) (NOTEOFF.CH1 E4) (NOTEOFF.CH1 G4)}
\end{center}
\end{figure}

Em primeiro lugar, todos os eventos NOTEON e NOTEOFF têm o mesmo canal (canal 1), o que indica a presença de somente uma voz no trecho. Além disso, existem 6 eventos MIDICLK entre os grupos NOTEON e NOTEOFF, indicando que a duração é de semicolcheia. O fato de um evento NOTEON seguir imediatamente o anterior (sem nenhum MIDICLK entre eles) é o que indica que as notas foram acionadas simultaneamente. De forma análoga, a inexistência de MIDICLK entre os eventos NOTEOFF indica que as notas foram liberadas também ao mesmo tempo.

João Paulo Pizani Flor 2010-07-12