sábado, 9 de agosto de 2008

MIDI

MIDI, ou Musical Instrument Digital Interface, descreve uma série de eventos que afetam o som que um sintetizador produz. Os eventos podem ser interpretados como ações sobre um teclado musical ou ações em pedais, sliders, dentre outros dispositivos.

Embora grande parte das vezes estes eventos sejam acionados por um instrumento musical (o hardware), é possível também criar tais eventos via software. Além disso, este conjunto de eventos podem ser armazenados em arquivo, permitindo a posterior edição e execução do mesmo.

Um programa que possui a capacidade de criar, editar e executar estes arquivos é chamado de sequencer.

Um arquivo MIDI padrão contém trilhas (tracks), cada uma delas com uma lista de eventos MIDI. O sequencer pode enviar as mensagens MIDI para algum outro dispositivo como um sintetizador, por exemplo. O sintetizador lê um arquivo de banco de sons (soundbank) contendo instruções para emular os sons de certos instrumentos musicais e executa tais instrumentos de acordo com o evento MIDI recebido do sequencer.

A imagem abaixo exemplifica como é esse esquema:
Neste exemplo, um arquivo MIDI contendo várias trilhas com eventos MIDI é carregado. A maioria dos eventos são representados por notas musicais. O arquivo MIDI é lido e é então executado por um sequencer. O sequencer envia as mensagens MIDI para outro dispositivo tal como um sintetizador interno ou externo. O sintetizador, pode ler um banco de sons contendo as informações necessárias para emular os sons de um instrumento musical. Caso contrário as notas serão executadas usando-se qualquer som que esteja carregado no sintetizador.

Como visto, as mensagens MIDI podem ser enviadas para um sintetizador externo por meio das portas de saída. Da mesma forma, um dispositivo externo (um teclado musical) pode enviar mensagens MIDI (via portas de entrada) diretamente para um sintetizador ou para que um sequencer armazene para futura execução.

Por hoje é só. Em breve mais detalhes. Estamos apenas na introdução do basicão.

Um comentário:

Flávio Miranda disse...

Como se consegue capturar notas, altura, velocidade e características da de um arquivo MIDI para posteriormente grava-los em outro canto, como em um XML?