terça-feira, 19 de abril de 2011

O Protocolo MIDI

Autor:
Xabier Blanco
Traduzido por Germano Lins

O MIDI é um grande desconhecido para muitos usuários; aqui iremos tratar de explicar o que é o protocolo MIDI e quais são suas aplicações práticas e criativas.

Noções básicas: a linguagem MIDI
MIDI (Musical Instruments Digital Interface) é a linguagem que utilizam atualmente muitos instrumentos para se comunicar entre si, enviar e receber dados e sincronizar-se. Nasceu dentro o mundo dos sintetizadores como resposta a uma necessidade dos músicos: controlar vários equipamentoscom seus comandos e fazer layers com vários sons entre eles. Os primeiros resultados desta nova tecnologia foram mostrados no North American Music Manufacturers Show de 1983 em Los Angeles. A demonstração consistiu em dois sintetizadores de diferentes fabricantes conectados por MIDI com um par de cabos; o representante de uma dessas empresas tocou em um dos sintetizadores... e o público ficou estarrecido ao ver que os dois teclados soavam juntos! Da mesma forma como dois computadores podem se conectar via modem, dois instrumentos que suportem o protocolo MIDI podem se comunicar. A informação MIDI possui um caráter notadamente musical: se refere a comandos play-stop, ativação de nota, tempo, volume, etc, mesmo que seu uso avançado possibilite muito mais coisas.

Neste ponto vale a pena uma explicação para os mais novatos. Um dos mitos mais recorrentes entre os não iniciados é que o MIDI é algo material, um formato de som por si mesmo. Isso tem levado a tópicas e errôneas expressões, tais como, "ouça este MIDI que acabo de fazer", "estou buscando o MIDI desta canção", e o mais inocente de todos eles, "quero transformar este WAV em MIDI". Todos estes conceitos são baseados em uma má compreensão do que é MIDI. O MIDI é um protocolo de comunicação, um conjunto de comandos que circulam entre dispositivos MIDI dando ordens aos mesmos com respeito ao que devem fazer. O que soa são os aparatos, os instrumentos, "o MIDI" que, ademais, possui outras funções fora a de controlar a execução de sons. Quando alguém pergunta "como transformar WAV em MIDI", está na mesma situação que aquele que possui uma foto digital (um JPG, por exemplo) de um texto e quer que essa foto seja convertida em formato TXT para que possa trabalhar em um processador de textos. Assim como o WAV e o JPG são "fotos" digitais de uma realidade material (o som e a imagem), o MIDI e o TXT são linguagens que indicam a certos dispositivos o que estes devem fazer. No caso de um sintetizador, o MIDI lhe diz que notas devem soar, devem ser tocadas, em qual volume, etc.; e no caso de um processador de textos, o TXT lhe diz quais caracteres devem ser apresentados, em que formato... É certo que existem as tecnologias OCR para ler caracteres a partir de uma foto, mas esta técnica está implementada muito insípidamente no áudio digital. Existem programas por aí que podem identificar tonalidades a partir de um wav e construir mensagens MIDI a partir delas, mas normalmente somente funcionam com WAVs mono e não muito complexos.

Voltando ao nosso tema, convém falar um pouco do funcionamento interno desta linguagem para entender como se comporta. A base da comunicação MIDI é o byte (uma unidade de informação digital). Cada comando MIDI possui uma sequência de bytes específica. O primeiro byte é o byte de estado (stauts byte), que informa ao dispositivo MIDI que função ativar. Codificado nesse byte de estado vai o canal MIDI. O MIDI opera em 16 canais diferentes. As unidades MIDI aceitarão ou irão ignorar um byte de estado dependendo de em qual canal estejam configuradas para receber dados. Somente este byte de estado possui codificado o número de canal, já que os demais bytes da cadeia se assume que circulam no canal indicado pelo byte de estado.

Algumas das funções que podem ativar o byte de estado são estas: Note On, Note Off, System Exclusive (SysEx), Patch Change, e outras mais. Sendo assim, dependendo do byte de estado, lhe seguirão um número diferente de bytes. Por exemplo, o estado Note On informa ao dispositivo MIDI que comece a soar uma nota. Desse jeito, serão necessários dois bytes adicionais ao de estado; um que indique a tonalidade da nota (pitch byte) e outro que marque a intensidade da mesma (velocity byte). Este último byte de velocity é o que determina com que força a nota foi tocada. Ainda que nem todos dispositivos MIDI aceitem o byte de velocity - especialmente os mais antigos ou alguns modernos, porém bem baratos-, continua sendo um byte requerido para completar a cadeia.

E... por que falamos tudo isso sobre este sistema de dados? É importante agora salientar uma limitação da linguagem MIDI, que é a sua transmissão em série. Por um cabo MIDI trafegam todos esses bytes que citamos anteriormente... porém, um após o outro, um de cada vez. Isto tem implicações práticas: por exemplo, se possuímos um teclado controlador conectado a um sampler e estamos enviando dados MIDI para o sampler desde o teclado, ao tocarmos um acorde de várias notas, estas não irão chegar todas juntas ao sampler, e sim uma depois da outra. Este processo acontece em grande velocidade e não há atrasos audíveis neste exemplo, mas, em uma cadeia interconectada de dispositivos MIDI sim, poderão ocorrer problemas, como mostraremos a seguir. Por tudo isso, é muito importante ter uma idéia clarado que realmente transmitem os dados MIDI: quais bytes, e qual a sua ordem.
Conexões e cadeias MIDI
Com certeza você já conhece as conexões de 5 pinos dos teclados ou aparatos MIDI, etiquetadas como IN, OUT e THRU. Ao redor destes três conectores girará todo nosso sistema MIDI.

Pelas portas MIDI IN de um aparato serão recebidas todas as mensagens MIDI e pela porta MIDI OUT cada aparato enviará, por sua vez, as suas mensagens. A conexão MIDI THRU é algo que confunde os mais inexperientes, mas não tem nenhum mistério e é de grande utilidade para configurar uma cadeia. O que faz a porta MIDI THRU é simplesmente copiar os dados que são recebidos pela porta MIDI IN desse aparato e enviá-los novamente para fora. Aida que da porta MIDI THRU saiam dados MIDI, não devemos confundi-la com a porta MIDI OUT; desta última saem somente os dados enviados pelo mesmo aparato, enquanto que da porta THRU sai a cópia dos dados recebidos pelo aparato em sua porta MIDI IN.

Qual é a utilidade desta MIDI THRU? Basicamente, conectar os aparatos uns com os outros em uma cadeia, de forma que todos respondam a uma fonte de dados MIDI inicial. Como exemplo prático, se temos um sequenciador MIDI do qual nascem todas nossas mensagens MIDI  de controle e queremos enviá-las para 2 aparatos diferentes, teríamos que estabelecer a seguinte cadeia:


No nosso esquema, o sequenciador envia seus dados MIDI pela saída MIDI OUT (A); estes dados são recebidos pelo sintetizador através de sua MIDI IN (B), e reenviados pela MIDI THRU (C) até o sampler, que os recebe, logicamente, pela sua MIDI IN (D). Dessa forma, os dados do sequenciador estariam sendo recebidos pelos dois aparatos, já que o primeiro (sintetizador) os recebe diretamente pela sua MIDI IN, e ao mesmo tempo os copia e os reenvia pela sua MIDI THRU até o sampler.

Como podemos imaginar, poderíamos continuar conectando dispositivos MIDI nesta cadeia, simplesmente enlaçando-os com a MIDI THRU. Por exemplo, se queremos acrescentar outro sintetizador, poderíamos enviar a MIDI THRU do sampler até sua MIDI IN. De todos modos, pela questão anteriormente mencionada de que o MIDI é transmitido em série, não convém enlaçar uma cadeia muito grande pela MIDI THRU, já que o último aparato desta cadeia poderia sofrer atrasos ao receber as mensagens. Por esta razão, muitos sequenciadores possuem várias saídas MIDI, para poder enviar os mismos dados em diferentes séries a diferentes aparatos sem utilizar as conexões THRU, ou pelo menos reduzindo-as. Por exemplo, se nosso sequenciador tivesse duas MIDI OUT, o esquema anterior não necessitaria do uso da cadeia THRU: simplesmente conectaríamos o sintetizador e o sampler a cada uma das saídas, e ambos iriam receber os dados do sequenciador ao mesmo tempo.

Mensagens MIDI: teoria
Já sabemos que graças ao MIDI podemos controlar vários equipamentos, estabelecer relações entre eles e sincronizá-los. Imaginando que nossos aparatos MIDI são os componentes de uma tropo de soldados, e nós os capitães, o mais importante agora será conhecer que ordens podemos enviar para que cumpram sua missão. Igualmente a uma tropa obediente, nosso equipe de dispositivos MIDI funcionará corretamente se soubermos quais mensagens devemos lhes enviar e se estas estão corretas.

Desta forma, nos encontramos com as seguintes categorias de mensagens que podemos enviar:

Mensagens de canal
Se chamam assim porque atuam soamente no canal que se determina. São de dois tipos:
  • Mensagens de voz: São baseadas na interpretação; por exemplo: Note on (ativação de uma nota), Note off (desativação), Program Change(alteração de timbre) ou Control Change (alteração de controlador, também chamada de CC; estas são numerados de 0 a 127, e algumas estão determinadas como padrão, por exemplo, CC 7 é o controle de volume e a CC 10 é o pan). 
  • Mensagens de modo: Indicam a um sintetizador como deve distribuir as vozes internas; basicamente são estas: Omni on/off (caso recebam mensagens por todos os canais -on- ou somente por um determinado -off-) e Mono on/off (indica se cada canal tocará somente uma nota -on-, ou será polifônico -off-).


Mensagens de sistema
Não afetam só um canal, e sim todo o sistema, e são de três tipos:
  • Mensagens comuns: por exemplo, as de afinação geral de um sintetizador.
  • Mensagens de tempo real: idealizadas para sequenciadores (start-stop, mensagens de sincronismo, etc)
  • Mensagens SysEx: seu nome deriva de "sistema exclusivo". Servem para que diferentes dispositivos de uma mesma marca e modelo intercambiem informação (por exemplo, sobre sons, síntese, efeitos, etc.). Cada dispositivo MIDI costuma possuir funções próprias, não gerais a todos demais dispositivos, e por isso estas mensagens são necessárias, são "exclusivas" dessa marca e modelo.


Mensagens MIDI: prática
Certo. O que preciso para meu trabalho prático? Descartando os tipos de mensagens mais elementares e de menor importância (por ejemplo, não irá fazer falta perder muito tempo sobre os evidentes usos das mensagens Note on-off ou mensagens de afinação), a resposta já está em seus próprios nomes: por isso vamos nos ater naquelas que são necessárias dominar para controlar nossos caros equipamentos com o máximo de precisão.

· Alteração de banco e programa (patche/instrumento): Possuímos um sintetizador ou sampler repleto de sons interessantes, mas, como acessar a eles a partir do exterior, por exemplo, a partir de um outro teclado? A resposta é dada por estas duas mensagens: Bank Change e Patch Change. São as que indicarão ao dispositivo MIDI qual timbre deve soar por cada canal (lembremos que são mensagens de canal e somente afetarão o canal que determinemos).

-Patch Change: Como no restante do protocolo MIDI, dispomos da numeração 0 a 127 para escolher qualquer som de uma fonte externa. Se tivermos um sintetizador com 32 memórias para patches (por exemplo, o clásico Yamaha DX7), para ouvir o som número 20 devemos mandar uma mensagem Patch Change 19 (não 20, porque o 0 já conta como primeiro número). Mas claro, isto nos limitaria a escolher 128 sons, quando os aparatos atuais podem conter muito mais. É por isso que estes aparatos ordenam seus sons em diferentes séries de 128 sons, chamadas de "bancos". Sendo assim, um sintetizador com 512 patches tem que dividi-los em 4 bancos de 128.

-Bank Change: Esta é a mensagem que nos dá definitivamente o acesso total aos patches de um dispositivo com mais de 128 sons. Continuando com nosso exemplo de um sintetizador que possui 512 sons, organizados em 4 bancos: se quisermos selecionar o som 138, ou para entendernos melhor, o décimo som do segundo banco, temos que enviar uma mensagem Bank Change 1 e a seguir uma mensagem Patch Change 9. Lembre-se que esta é uma explicação simplificada; la maioria dos sintetizadores têm números específicos para designar seus bancos; por exemplo, o banco A de um synth pode requerer uma mensagem Bank Change 64 o outra, não necessariamente precisa se a 0. Estamos explicando assim para elucidar melhor. Para saber quais mensagens de banco você deve enviar para o seu synth, consulte o seu manual.

· Controladores: as mensagens CC (Control Change) nos dão acesso a montão de funções importantes que afetam a cada canal. Podemos mandar 128 mensagens CC diferentes, e a cada uma atribuir um valor. Por exemplo, uma mensagem CC 7 (volume) com valor 120 aumentará o volume deste canal por 120. Uma mensagem CC 10 (pan) com valor 80, colocará a panoramização desse canal ligeiramente à direita, visto que 64 é o centro. Algumas CC foram padronizadas, e possuem a mesma função em qualquer dispositivo MIDI, seja ele de qualquer fabricante. O restante não possui nenhuma função endereçada a princípio, de modo que cada fabricante atribuir a função que quiser. Para saber a quais mensagens CC responde o seu dispositivo, você terá que consultar a sua tabela de implementação MIDI.

· SysEx: Visto que estas mensagens dependem de cada fabricante, não iremos citar nenhuma em concreto porque, por exemplo, uma mensagem SysEx que varia a profundidade do efeito "chorus" em um Roland não é válida para um Yamaha. Mas as vamos destacar porque são as mensagens que permitem acessar as entranhas dos seus dispositivos. As mensagens SysEx assustam todo mundo, e realmente possuem uma certa complexidade, mas, se dominadas, abrem um mundo novo de controle total sobre as máquinas. Então iremos te animar a ser curioso e investigar sobre as mensagens SysEx, porém não é o objetivo deste texto nos aprofundarmos nelas.

Equipamento MIDI básico
Sem sombra de dúvidas, os dispositivos MIDI mais tradicionais são os sintetizadores. O MIDI foi criado para que eles se comuniquem entre si, e essa função continua sendo o carro chefe do protocolo MIDI. O MIDI permite utilizar vários teclados de som a uma só vez; desta forma podemos fazer com que um som de um synth seja reforçado com um som de outro synth, ou simplesmente fazer arranjos polifônicos e multitímbricos com várias máquinas sincronizadas.

Devemos esclarecer aqui a típica confusão de principiante entre sintetizador e teclado. O sintetizador (ou sampler, depende do caso) é o gerador de som, e o teclado simplesmente envia mensagens MIDI indicando quais notas devem ser tocadas e com que intensidade. Como a maioria dos sintetizadores trazem consigo um teclado, muita gente crê que eles são inseparáveis. Mas não é assim; existem sintetizadores sem teclado (os chamados "módulos de som") e teclados sem sintetizador. Estes últimos são os teclados master ou controllers.

Com a simplificação dos home studios atuais, muita gente utiliza os chamados teclados master ou controllers, que não possuem nenhum som. Eles simplesmente enviam dados MIDI para controlar os outros aparatos (por exemplo, synths virtuais, por software). Isto barateia o seu preço e faz com que a produção musical seja mais acessível a todos, se bem que os teclados master de boa qualidade ainda são muito caros. Alguns fabricantes famosos são FATAR (seu modelo SL-161 na imagem abaixo), OberheimMidiman, Roland e Yamaha.

 

Domine o seu equipamento externo
O centro de uma instalação MIDI é o sequenciador, que centraliza a gravação e reprodução de todas mensagens MIDI, sua edição e sincronização. O normal é que esteja baseado em um programa de computador, visto que os computadores oferecem mais potência que qualquer outro sistema de sequenciamento por hardware, e apresentam os dados em monitores de bom tamanho, o que facilita em muito a tarefa de sequenciamento. No entanto, para atuar ao vivo, muitos músicos preferem ainda a segurança dos sequenciadores hardware; alguns exemplos clássicos destes equipamentos são o Alesis MMT-8 (imagem à esquerda) ou o Roland MC-50. Também ainda são utilizados velhos computadores Atari eAmiga para esta finalidade.

Os sequenciadores por software mais famosos são sem dúvida o Logic (imagem abaixo), Cubase e Sonar. O Sonar é o mais usado na América, e os outros dois são líderes no mercado europeu. Qualquer um deles é altamente capaz, destacando principalmente o Logic, devido ao seu environment configurável. Outros programas famosos são o Digital Performer da MOTU ou o Orchestrator da Voyetra; alguns editores de partituras como o Finale possuem funcionalidades de sequenciador MIDI, assim como alguns sistemas multipistas de áudio como o Pro Tools ou o  Nuendo. Todos eles manipulam uma grande quantidade de pista de uma só vez.
Caso possua várias máquinas MIDI e queira ter controle absoluto sobre elas, tudo deverá estar bem conectado e deve ser gerenciado principalmente a partir do sequenciador. A partir deste programa você poderá gravar todos os seus equipamentos por pistas, e depois cortar, copiar, e editar as sequencias. O normal é começar gravando uma pista base, e depois ir gravando as demais por cima, enquanto as anteriormente gravadas soam. Assim a música vai sendo construída e somente se requer a intervenção de um único músico.

Uma primeira sugestão para conectar vários equipamentos entre eles é a cadeia THRU, já expiclada anteriormente. Entretanto, caso possua muitos equipamentos, haverá latência nos últimos dispositivos da cadeia.A solução para isso é utilizar uma interface MIDI dotada de várias portas de saída e não apenas de uma só. Isto evita as cadeias THRU, ou pelo menos as minimiza: caso sua interface MIDI possua quatro saídas, você poderá dominar quatro dispositivos diretamente, e todas as mensagens chegarão ao mesmo tempo. Como já dissemos antes, o protocolo MIDI funciona de forma serial, mas isso acontece em cada porta; ou seja, se dispomos de várias portas, elas atuarão de maneira separada, sem acumular seus dados uns aos outros. Existem muitas interfaces deste tipo no mercado; algumas marcas são a Midiman (à esquerda, Midisport 2x2), Egosys, MOTU, Steinberg e Emagic. Todas elas oferecem diversos modelos dependendo de suas saídas e entradas MIDI. Também algumas placas de som incorporam duas ou mais portas MIDI de entrada e saída, mas são raras e o normal é que somente venham de uma ou nenhuma.

Para gerinciar as bibliotecas de sons dos seus sintetizadores e editar seus patches via MIDI existem também soluções por software muito úteis, que evitarão em muitas ocasiões o enfrentamento com esses pequeno displays desses tipos de máquinas. Quantos já se atreveram a editar sons de um DX7 através do seu display frontal? Utilizando estes programas você poderá fazer essas tarefas de forma remota, aproveitando-se da capacidade de armazenamento e organização de um computador e uma maior clareza e comodidade graças à tela grande. Sound Diver da Emagic e SoundQuest são dois exemplo de gerenciadores-editores totais, que incluem soluções para um amplo número de aparatos, mas existem também uma quantidade enorme de editores mais simples, que somente se ocupam de uma máquina. A maior parte destes últimos são gratuitos; procure na web o que corresponda ao seu sintetizador.

Domine o seu equipamento virtual
Com a implantação cada vez maior dos sintetizadores e samplers virtuales, muitos usuários começaram a precisar de um controle mais manual sobre eles. O mouse não parece convencer na hora de controlar com precisão estes programas, e é por isso que os fabricantes têm dado uma alternativa: os controladores MIDI externos. Estes dispositivos adotam a forma de mesas ou consoles com faders ou knobs configuráveis, e se limitam a enviar dados MIDI como CCs ou sysex, que controlam as funções do software. Assim como para tocar um sintetizador virtual será necessário um teclado master que lhe envie mensagens MIDI, para controlá-lo como se fosse um hardware, com botões giratórios, deslizantes e mias coisas, será necessário uma destas máquinas. Sua principal vantagem é que não se limitam a um só sintetizador virtual; ao utilizar o protocolo universal MIDI, podem dominar qualquer dispositivo software que siga estas especificações. Isto inclui, é lógico, as máquinas hardware que admitam seu controles a partir de mensagens CC ou sysex externos.

A oferta de controladores vem aumentando, e desde o clássico Keyfax Phatboy (foto esquerda) tem aparecido muitos outros, como o Doepfer Pocket, Native Instruments 4Control, Phillip Rees C16 o em um nível mais ambicioso, o Kenton Control FreakPeavey 1600 ou o Doepfer Drehbank.

Flautas, guitarras... e outras coisas MIDI
Se tem fabricado toda uma diversidade de aparatos MIDi muito "especiais", sobretudo no que se refere a controladores. O fato do MIDI ser um protocolo padrão, standard, universal, faz com que qualquer dispositivo compatível possa ser integrado na cadeia, e as possibilidades são várias.

Por exemplo, a Yamaha oferece seu controlador de sopro WX5 (à esquerda), que é uma espécie de saxofone-flauta que envia dados MIDI baseando-se no sopro. Existem módulos de som especiais para este controlador, como o Yamaha VL-70m, que imita muito bem os timbres de sopro reais através de modelagem física. Mas como o WX5 é MIDI, ele pode controlar qualquer coisa... podemos tocar um violino ou marimbas com ele.

Os guitarristas também têm seus próprios dispositivos MIDI. Acoplando uma interface MIDI na guitarra pode se converter seu sinal em dados MIDI que poderão controlar um sintetizador de guitarra (como o Roland GR-30 ou 50)... ou o que for necessário.

o mundo dos controladores MIDI se converteu numa caixa de surpresas, e cada vez mais nos deparamos com máquinas inovadores e originais. Caso você tenha gostado das harpas à laser do Jean Michel Jarre, a Rolando oferece seus sistemas D-Beam em muitos de seus teclados e sintetizadores; se trata de uma raio que, ao ser interrompido em diferentes alturas e ângulos, gera mensagens MIDI que modificam o som.

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.