Uma pequena explicação sobre sysex

Aviso: o texto abaixo requer que você tenha algum conhecimento sobre MIDI e algum conhecimento sobre hexadecimal. Não diga que eu não avisei.

O padrão MIDI, que completou já 30 anos, provou ser um padrão muito bem pensado e resistiu a prova do tempo, tanto que continua o mesmo até os dias de hoje. Pois bem, vou falar de uma das partes interessantes do padrão MIDI, o sysex.

Se você já conhece o protocolo MIDI, sabe por exemplo, que para aumentarmos ou diminuirmos o volume enviamos o control change número 7, para enviarmos o sinal de um pedal de sustain usamos normalmente o control change 64, com os valores 127 para pressionado e 0 para não pressionado. Aliás, hoje em dias, alguns synths, como o Motif XS aceitam valores intermediários para o meio pedal nos timbres de piano.

Bom, controlar volume, pedal de sustain, de expressão, modwheel, pitchwheel, são coisas que esperamos de todos os synths. Mas e se o meu synth fizer algo diferente dos outros. Por exemplo, eu poderia querer alterar um padrão de configuração esotérico do meu synth. Ou talvez, o meu synth tivesse a maravilhosa habilidade de fazer café expresso (seria um sonho para alguns de nós!) Como poderemos controlar essas funcionalidades remotamente, via MIDI?

A resposta vem através do system exclusive. O system exclusive é uma forma de permitir que o padrão MIDI possa ser expandido através de um conjunto de mensagens dentro do fluxo de mensagens MIDI.

Para distinguir a mensagem sysex das outras, ela vem dentro de um ‘envelope’- começa sempre com o byte F0 (240 em hexadecimal) e termina sempre com o byte F7 (247 em hexadecimal). Para uma análise simples, vou mostrar como fazer o transpose para um módulo nanosynth em 2 semitons. Lembrando que esse módulo não tem interface de usuário, então esse pode ser um comando útil 🙂

A mensagem a ser enviada para o nanosynth seria essa:

F0 00 00 0E 0E 10 00 00 04 02 F7

Essa mensagem então pode ser analisada da seguinte forma:

  1. F0 – início da mensagem sysex
  2. 00 00 0E – código de fabricante da Alesis – indica que estou mandando uma mensagem pra um synth Alesis (cada fabricante tem um código diferente, e essa é outra parte obrigatória do sysex)
  3. 0E – Id da famíiia quadrasynth – porque estou mandando uma mensagem pra um synth dessa família.
  4. 10 – indica que quero editar um parâmetro
  5. 00 – Esse parâmetro é global
  6. 00 – página (jeito interno da alesis catalogar seus comandos. O comando a ser editado no modo global na página 0 é o transpose)
  7. 04 – pelo que to lendo aqui na documentação é o canal, quando eu coloquei essa mensagem, sei lá pq eu coloquei no canal 4 mas enfim.
  8. 02 – valor que estou enviando.
  9. F7 – Tchau sysex!

Enfim, essa é uma mensagem de exemplo, usando algumas coisas que eu tinha guardado aqui da época que tinha o nanosynth.

Basicamente, todo sysex se comporta dessa forma. O formato padrão é esse: cabeçalho (F0), código do fabricante, a mensagem que é definida de forma diferente por cada fabricante, então aí entra a consulta as famosas MIDI Implementation Charts, e a despedida, o F7 que encerra tudo.

A maioria dos controladores pode enviar apenas control change padrão por seus potênciometros e sliders, o Roland A800 pro consegue enviar sysex. O BCR-2000 consegue enviar sysex e na lista de discussão (em inglês) os usuários disponibilizam vários ‘mapas’ prontos para editar diversos synths e módulos.

Um exemplo de uso que eu já fiz: o Motif XS Rack, tem os mesmos timbres do Motif XS, mas não os mesmos controles. Existe um timbre de orgão Hammond que é feito de 8 drawbars (a forma de constituição de timbres do Motif ele tem 8 elementos, então 1 dos drawbars foi na verdade juntado com outro). Se fosse no Motif XS teclado, para controlar o volume de cada parte poderíamos usar os oito sliders, mas no módulo isso não está disponível. E aumentar o volume de cada slider não é possível via uma mensagem MIDI comum, mas sim via sysex apenas. Na época eu enviava as informações do meu controlador (o Axiom 61) para um software no computador, o MIDI OX. Entre as coisas legais que o MIDI OX pode fazer, ele pode traduzir uma mensagem na outra. Então eu traduzia o valor do slider para o sysex que o Motif receberia como volume daquele elemento em particular do timbre, e assim eu poderia controlar o volume dos 8 elementos, como se fossem drawbars.

3 comentários

  1. Muitto bom á esplicação,bem claro!

    A esplicação de mensagens MIDI sobre-sysex

    parabéns!

  2. Lindo ! É realmente uma tecnologia fascinante e bem atual apesar da idade, impressionante como algumas coisas não mudam com o tempo.

  3. A informação foi muito útil pra mim, apesar de eu estar bem no início dos meus projetos.
    Mas valeu pela explicação.

Os comentários estão fechados.