por Theophilo Augusto Pinto
Midi é um conjunto de mensagens para tocarmos instrumentos musicais. Que tipo de mensagens seria preciso para isso? Algumas devem ser óbvias, como tocar uma nota, ou parar de tocá-la. Deve haver controles para o pedal de volume, e o sustain do piano. Poderíamos também mudar o timbre do instrumento, mas também o padrão deve prever algum jeito de um sequencer andar em sincronismo com outro. Vamos mostrar cada uma por grupos, começando por:
Mensagens que dependem de canal MIDI
São as mensagens que, quando enviadas, afetam apenas o canal MIDI selecionado. São elas:
Note On comando para tocar uma determinada nota, com uma determinada velocidade velocidade, que na prática significa intensidade.
Note Off comando para desligar a nota que está sendo tocada. Também há dentro do comando a velocidade de desligamento da nota, mas poucos teclados a usam, e são mais raros os sequencers que deixam que manipulemos estes dados. Muito comum, porém, é usar o comando Note On com velocidade zero para desligar a nota. Porque? Para economizar alguns bytes, num processo chamado running status, que veremos adiante.
Aftertouch - um comando que disparamos ao colocarmos pressão na tecla em que tocamos. Note que, para cada tecla pode ser colocada uma pressão diferente, gerando, portanto, mensagens diferentes.
Control Change comandos que podem controlar diversas partes do teclado, como o volume (control 7) e o pedal de sustain (control 64). Basicamente, há 128 comandos para serem usados, sem contar algumas combinações por exemplo, o Control 0 e Control 32 em conjunto formam, poderíamos dizer, um Control 129. É por causa dessa enorme possibilidade de combinações de controles que o padrão MIDI não ficou obsoleto, como veremos adiante, num capítulo em separado.
Program Change (patch) o comando que muda de um timbre para outro, dos que estão dentro do instrumento. Este comando tem um alcance de, no máximo, 128 timbres.
Channel Pressure Outra forma de Aftertouch, mas que é monofônica, isto é, atua indistintamente para todas as notas do teclado. Por ser mais barato de se construir, é a forma de aftertouch mais comum nos teclados mais baratos, e também nos que têm peso, isto é, imitam a ação do piano acústico.
Pitch Wheel uma mensagem específica para a rodinha que normalmente está do lado esquerdo do teclado e muda a sua afinação.
Por incrível que pareça, são apenas essas as mensagens que o padrão MIDI usa para tocar o instrumento. Existem algumas outras, que têm mais relação com o contexto em que esse instrumento deve ser tocado. São elas:
Mensagens que não dependem de Canal MIDISystem Exclusive Muitas vezes queremos mandar outro tipo de informação ao instrumento mudar a velocidade do vibrato, ou mesmo mandar um timbre inteiramente novo que pegamos na Internet e não havia no teclado neste caso é usada uma mensagem system exclusive, que transmite essas e outras informações mais exotéricas. A única coisa que uma mensagem exclusive tem em comum com outra são os bytes de começo e fim. Elas podem ter qualquer tamanho. Praticamente todo o aparelho MIDI tem seu código exclusive, e, como uma impressão digital, é único para cada modelo de instrumento. Desta forma, não há chance de uma mensagem destinada a um instrumento ser interpretada por outro. Exclusive pode ser acessado normalmente por um computador, mas por assumir formas tão diversas de aparelho para aparelho, é uma das mensagens mais difíceis de se dominar.
Existem algumas mensagens exclusive que não são tão exclusivas assim, pois a maioria dos instrumentos atuais responde a elas, e são estas:
GM System Enable/Disable Um comando exclusive que põe o instrumento receptor no modo GM (discutido adiante).
Master Volume Não confundir com a mensagem control change, que controla o volume de cada canal MIDI. Este controla o volume global do instrumento, com todos os seus canais de uma vez.
Mensagens transparentesSão mensagens que normalmente não são manipuladas pelo músico, mas que existem para controle de diversos sistemas:
Midi Clock mensagem usada para que dois sequencers andem no mesmo andamento. Basicamente, há 24 delas para cada semínima. Numa música de andamento constante, elas irão aparecendo também a uma velocidade constante. Mas num ralentando, por exemplo, elas irão ter um espaçamento maior entre uma e outra. A maior disvantagem dessa mensagem é, depois de grava uma música com sincronismo baseado em Midi Clock, qualquer alteração de andamento será impossível. Hoje em dia, ela quase não é mais usada, em favor de outra mensagem:
Midi Time Code mensagem que carrega em si o tempo absoluto da música. Isto quer dizer que ela vai aparecendo a intervalos regulares, independente do andamento da música. A sua grande vantagem é que, se quisermos mudar esta andamento depois, ela não atrapalhará em nada, pois estava apenas marcando o tempo, e o sequencer poderá se mover livremente por cima dessa marcação. Seu uso mais comum é em conjunto com o padrão SMPTE, de sincronismo de vídeo.
Song Position Pointer Quando temos dois sequencers funcionando juntos por exemplo, um computador e uma bateria eletrônica com o ritmo programado internamente, essa mensagem faz com que, ao tocarmos uma música no meio dela no sequencer mestre, o outro comece a tocar sua parte no mesmo compasso daquele.
Como as mensagens aparecem para o músico?Vamos a alguns exemplos práticos. As figuras que usei foram extraídas do sequencer Cakewalk. Se você tiver outro, poderá notar que as diferenças são apenas cosméticas. Os dados sempre se apresentam dessa forma, como os que estão abaixo:
Você não vai ter que administrar os comandos de notas on e off separadamente. Ao invés disso, a maioria dos sequencers mostra a nota, que lugar que ela começa (em termos de compasso, tempo e a subdivisão de tempo, chamada tick) e quanto esta nota dura (também em termos de compasso, tempo e ticks). Suponha que tenha tocado:
É óbvio, mas veja como o sequencer deveria entender: o do no primeiro tempo, o mi no segundo e finalmente um acorde de três notas que dura dois tempos.
Veja como estaria escrito no sequencer: (só para informação: o sequencer está trabalhando com uma resolução de 120 divisões por semínima, isto é, entre um tempo e outro existe uma grade de 120 buraquinhos para que ele possa colocar algum evento)
Suponha que, ao tocar o acorde eu aperto mais o teclado gerando um aftertoutch. Isto ficaria registrado mais ou menos assim:
Após o acorde, vários comandos de aftertoutch são registrados, já que este tipo de modulação é feito de modo contínuo. Perceba que apesar de a modulação continuar após o espaço que há na janela, a modulação não passou nem do terceiro tempo do compasso! Modulações assim contínuas gastam muita memória, geralmente.
Suponha que eu quisesse mudar o som do instrumento na hora em que fosse tocar o acorde: isso se faz com o comando program change. No exemplo, mudei o timbre para o número 2 (que neste teclado corresponde ao som chamado Celesta)
No caso, o acorde estaria soando com o som chamdo Celesta (que pode ser parecido, ou não, com o som do instrumento acústico em questão, mas isto é um outro problema...)
Vamos abaixar um pouco esse som? Como? Usando o Control Change.
Na coluna que identifica o tipo de mensagem está especificado contrl, ou seja control change. Temos em seguida sua identificação (no 7, ou seja, volume) seguida do valor. No caso, o volume está no máximo e sendo abaixado.
Semelhantemente ao caso anterior, as mensagens contínuas são colocadas seguidamente. Temos aqui um exemplo de um glissando para o grave do acorde.
atualizado em 25/05/2000