Como Falar MIDI

Dec 04 2022
Originalmente, escrevi este artigo em maio de 2019, mas o mudei para cá depois de desaprovar meu antigo site. Apreciar! Conteúdo Apêndice I: Mensagens do modo de canalApêndice II: Gráfico de afinação MIDIApêndice III: Atribuições CC padrãoApêndice IV: Mensagens de mudança de bancoApêndice V: Recursos adicionais O MIDI é antigo, mas muito útil.

Originalmente, escrevi este artigo em maio de 2019, mas o mudei para cá depois de desaprovar meu antigo site. Apreciar!

Conteúdo

  1. O que é MIDI
    1.1 O que não é MIDI
  2. Como Funciona
    2.1 Separando Mensagens
    2.2 Bytes de Status e Bytes de Dados
  3. Tipos de mensagens
    3.1 Note Off / Note On (0x8n, 0x9n)
    → 3.1.1 Sobre os números MIDI Pitch
    3.2 Control Change (0xBn)
    3.3 Pitch Bend (0xEn)
    3.4 Polyphonic Key Pressure e Channel Pressure (0xAn, 0xDn)
    3.5 Program Change (0xCn) )
    3.6 Sistema (0xFn)
  4. Sobre Hexadecimal
  5. Exemplo Aplicado: Quinta Sinfonia de Beethoven
  6. Lição bônus: status de execução

Apêndice I: Mensagens do modo de canal
Apêndice II: Gráfico de afinação MIDI
Apêndice III: Atribuições CC padrão
Apêndice IV: Mensagens de mudança de banco
Apêndice V: Recursos adicionais

MIDI é antigo, mas muito útil. Ele dirige os teclados que você vê no Guitar Center, controla coisas como iluminação e pirotecnia em shows¹ e tem sido usado para fazer a trilha sonora de praticamente todos os filmes nas últimas décadas.

Se você é um músico moderno, um conhecimento prático de MIDI é essencial. Se você é o tipo de pessoa que lê postagens de blog como essas, é provável que já tenha alguma experiência em trabalhar com isso; no entanto, acho que é útil saber não apenas como usá-lo, mas também como lê-lo, pouco a pouco. Traduzir e montar suas próprias mensagens MIDI pode parecer assustador no começo, mas na verdade é muito fácil e acho que é uma habilidade importante para qualquer compositor moderno. É como saber como os microfones funcionam como engenheiro de gravação.

Este artigo servirá como uma introdução abrangente e um guia para as mensagens MIDI aplicadas à produção musical. O que este guia não é é um tutorial sobre composição MIDI ou como usar o editor MIDI em sua DAW. No entanto, este guia é absolutamente voltado para compositores, pois você descobrirá que um conhecimento fundamental de MIDI ajudará muito ao descobrir suas ferramentas MIDI mais avançadas (e complicadas). Vamos começar.

O Profeta 600 foi um dos primeiros sintetizadores a suportar MIDI.

1. O que é MIDI

Eu gosto de começar a ensinar as coisas desde o início. No entanto, se você já sabe o que é MIDI e o que ele faz, sinta-se à vontade para pular para Como funciona , onde vamos mergulhar direto nas porcas e parafusos. Caso contrário, vamos revisar.

MIDI é um acrônimo que significa “Musical Instrument Digital Interface”. Essencialmente, é uma maneira de os computadores descreverem e transmitirem apresentações musicais entre si. Na verdade, é o caminho. Se você nasceu depois dos anos 80, provavelmente todos os teclados ou baterias eletrônicas que você já viu usam MIDI. Embora muitas tentativas tenham sido feitas para revisar ou substituir o MIDI ao longo dos anos, os fabricantes e desenvolvedores de instrumentos realmente não parecem se importar em usar qualquer outra coisa.

Com o MIDI, você pode:

  • Grave apresentações musicais e edite-as com precisão cirúrgica
  • “Patch” uma performance para qualquer instrumento com pouco ou nenhum trabalho
  • Gerar processualmente ou resequenciar performances
  • Organize apresentações de conjunto com uma única conexão
  • Execute mixagem rudimentar, completa com “automação”

E isso se a partitura for executada. Enquanto as orquestras virtuais dos anos 80 soavam ridiculamente falsas, os instrumentos modernos soam tão bem que os ouvintes casuais nem percebem a diferença. E isso mudou tudo. Em filmes e programas de TV de baixo orçamento, a trilha sonora geralmente usa orquestras MIDI na versão final, e o público não percebe. E, surpreendentemente, essas ferramentas estão disponíveis para músicos de quase todos os níveis de renda.

1.1 O que MIDI não é

Antes de continuar, quero dissipar alguns equívocos que os recém-chegados às vezes têm. Não vai demorar muito.

Primeiro, o MIDI não faz música: ele apenas diz a outros dispositivos como fazer música. Mas também pode fazer outras coisas. Por exemplo, em software de vídeo profissional, as mensagens MIDI são usadas para controlar itens como parâmetros de animação. Muitas superfícies de controle de estúdio usam MIDI para controlar o software de mixagem, e este piano sofisticado o usa para acionar atuadores robóticos. O ponto que estou tentando enfatizar é que, embora os dados MIDI sejam predominantemente usados ​​para controlar instrumentos virtuais, eles podem realmente ser usados ​​para qualquer coisa e não “soam” como nada por conta própria.

As ferramentas que um compositor MIDI usa abstraem o código de computador em algo mais fácil de visualizar. (Captura de tela do Nuendo 8)

Em segundo lugar, os dados MIDI não são apenas “partituras para computadores”, por mais útil que a analogia possa ser. Embora a partitura ocidental seja o meio que codificou toda a música mais expressiva da história, a verdade é que ela deixa um espaço considerável para interpretação - e os computadores não lidam muito bem com a ambigüidade.

Em vez disso, provavelmente é melhor pensar em MIDI como uma linguagem de programação e seu editor MIDI como um ambiente de programação visual. Os editores MIDI representam comandos MIDI como formas em rolos de piano, em vez do que realmente são: instruções digitais glorificadas. E como todas as linguagens de programação, o MIDI está sujeito a todos os tipos de bugs e falhas. Por exemplo, se uma mensagem de “nota ligada” não for emparelhada corretamente com uma “nota desligada”, a nota continuará tocando para sempre, porque os computadores não têm o bom senso de parar.

De qualquer forma, estou cansado de escrever esta introdução. Vamos descascar todas essas camadas de abstração e aprender, em um nível fundamental, como falar MIDI.

2. Como Funciona

Como quase tudo em computadores, o MIDI se resume a um monte de uns e zeros. Cada dígito é chamado de bit (abreviação de “dígito binário”) e oito deles formam um byte . Quando você toca um piano digital, as mensagens MIDI são geradas internamente e enviadas ao gerador de tons do instrumento, onde são interpretadas e convertidas em som audível. Se você der uma olhada no sinal, as mensagens geradas podem ser algo como isto:

Esta é a forma binária de uma performance MIDI simples: as quatro primeiras notas da Quinta de Beethoven. Se você gravasse essa sequência e a repetisse para outro instrumento MIDI exatamente como foi entregue, o resultado seria uma cópia idêntica da apresentação. Se você mexesse com o tempo, mudaria o ritmo da apresentação. Tudo o mais sobre o desempenho é codificado nos próprios dados.

É meio interessante perceber que os compositores hoje em dia basicamente gastam seu tempo criando, editando e aprimorando o que se resume a uma entrega cronometrada de números. De qualquer forma, vamos quebrar a tarefa de interpretar essa confusão, um passo de cada vez.

2.1 Separando mensagens

A primeira coisa a saber sobre as mensagens MIDI é que elas quase sempre abrangem mais de um byte. Isso faz sentido se você considerar que existem apenas 256 números únicos de 8 bits e provavelmente precisamos codificar muito mais informações do que isso para descrever algo tão expressivo quanto um evento musical.

Então, se você está recebendo uma mensagem em vários pacotes pequenos, possivelmente todos de uma vez, como você sabe onde uma mensagem termina e a próxima começa? Realisticamente, se você souber quantos bytes esperar por mensagem e começar no topo, poderá diferenciá-los, desde que nenhum deles seja perdido na transmissão. No entanto, o MIDI nos oferece uma maneira infalível de analisar cada mensagem: dedicando o primeiro bit de cada byte à causa.

REGRA 1: Se o primeiro bit de um byte MIDI for 1 , então o byte é um byte de status , que marca a primeira parte de uma mensagem MIDI. Se o primeiro bit for 0 , então é um byte de dados , que forma o corpo da mensagem.

Fácil. Cada vez que um byte começa com um 1 , sabemos que estamos lendo o início de uma nova mensagem e podemos interpretar os bytes seguintes em conjunto com o primeiro. Vamos usar essa regra para dividir a performance MIDI acima em mensagens discretas.

Agora que estamos olhando para algo um pouco mais organizado, você pode notar alguns padrões surgindo. Por um lado, há apenas duas versões exclusivas de cada byte. Sabendo que essas mensagens representam as primeiras quatro notas da Quinta Sinfonia de Beethoven, você consegue adivinhar o que elas significam?

2.2 Bytes de Status e Bytes de Dados

O byte de status de uma mensagem MIDI serve como cabeçalho e, portanto, é a parte mais importante. Ele nos diz o que a mensagem faz e como interpretar os seguintes bytes de dados. O que os bytes de dados codificam depende da mensagem, mas eles normalmente fornecem informações importantes para a execução da mensagem. Se o byte de status disser "pular", os bytes de dados podem informar a que altura.

Como o primeiro bit de cada byte é reservado para diferenciar os dois tipos de bytes, há apenas sete bits utilizáveis ​​por ambos. Veja como eles são usados:

REGRA 2: Os bits 2, 3 e 4 de um byte de status identificam seu tipo de mensagem . Os bits 5–8 identificam o canal MIDI que está endereçando. Os bytes de dados têm diferentes funções, dependendo do tipo de mensagem.

Três bits para determinar o tipo de mensagem e quatro para o número do canal significam que existem oito tipos de mensagem distintos e 16 canais possíveis. Os bytes de dados podem conter qualquer valor de 0 a 127 . Embora a esmagadora maioria das mensagens use dois bytes de dados, esse número pode realmente diferir dependendo das necessidades da mensagem. Por exemplo, as mensagens de “mudança de programa” precisam apenas de um byte de dados e as mensagens “exclusivas do sistema” podem ter um número arbitrário.

Se você já trabalhou com MIDI antes, provavelmente já está familiarizado com os canais MIDI. Mas caso não esteja, cada conexão MIDI pode comandar até 16 vozes. O byte de status especifica em seus quatro bits menos significativos a qual desses canais a mensagem está se dirigindo.³

3. Tipos de mensagens

A tabela a seguir identifica os diferentes tipos de mensagem MIDI e como eles usam os bytes de dados. Exploraremos cada um nas subseções a seguir.

3.1 Nota desligada / Nota ligada (0x8n, 0x9n)

Estas são as mensagens MIDI mais elementares e as mais fáceis de entender. Quando quiser tocar uma nota, envie uma mensagem “note on” e, quando quiser encerrá-la, envie uma mensagem “note off”. Essas mensagens usam dois bytes de dados: o primeiro identifica qual afinação você deseja controlar e o segundo identifica uma velocidade. ⁴ Uma “note on” com velocidade 0 não produz som e é equivalente a uma mensagem de “note off”.

Considerações:

  • A existência de mensagens “note on” de velocidade zero significa que as mensagens “note off” são totalmente desnecessárias. O padrão MIDI declara especificamente que as mensagens “note off” e “note on” de velocidade zero são equivalentes e devem ser tratadas de forma idêntica. Como resultado, um dispositivo pode disparar notas de forma diferente de outro.
  • Enquanto os transmissores só precisam usar um método para desarmar as notas, os receptores precisam ser capazes de lidar com ambos.
  • Embora um valor de velocidade não faça muito sentido em uma mensagem de “note off”, ele ainda faz parte da mensagem e deve ser enviado. O valor não é utilizado e é descartado.

Os números de afinação são mapeados para as teclas do piano essencialmente de um para um. No entanto, como existem 128 valores possíveis e apenas 88 teclas de piano, o MIDI na verdade suporta 40 semitons não encontrados no piano. 19 deles estão localizados acima da nota mais alta, C7, e os outros 21 estão abaixo da nota mais baixa, A-1. A faixa de afinação MIDI é mais ou menos centrada no C central, que é a nota número 60.

Esteja ciente de que nem todos os fabricantes concordam com os números de oitava. A notação de afinação científica, usada por músicos analógicos, identifica o Dó mais baixo do piano como Dó1 , o que torna o Dó central C4 . Os programadores, por outro lado, geralmente começam a contar com 0; portanto, para eles, o C mais baixo é C0 e o C central é C3 . Esta é a notação que costumo usar, porque é o que todas as minhas ferramentas MIDI usam. No entanto, não importa qual sistema você use, Middle C é sempre a nota número 60.

No Apêndice II , forneço um gráfico para converter de e para números de afinação MIDI.

3.2 Mudança de Controle (0xBn)

As mensagens de “mudança de controle” são usadas para modificar os controladores contínuos de um canal . Um controlador contínuo é análogo a uma via de automação; ele permite o controle contínuo sobre diferentes aspectos do desempenho de um canal.

O primeiro byte de dados identifica o número CC (0–119) e o segundo atribui a ele um valor (0–127) .

Considerações:

  • Ao contrário do que o nome indica, os dados do controlador contínuo não são contínuos. Em vez de interpolar suavemente entre os valores da maneira que a automação faz, o valor atual de uma faixa CC só pode mudar em etapas discretas. Para aumentar suavemente para outro valor, você deve enviar um grande número de mensagens de “alteração de controle”, incrementando ou diminuindo o valor em uma taxa controlada.
  • A especificação MIDI define para o que a maioria dos 120 CCs devem ser usados, embora poucos dispositivos observem mais do que um punhado. Eu forneço uma tabela de todos os CCs no Apêndice III .
  • Os últimos oito números CC (120–127) na verdade não representam CCs. Em vez disso, eles representam uma categoria especial de mensagem chamada mensagens de modo de canal . As mensagens do modo de canal são comandos especializados que afetam todo o dispositivo que as recebe. Na prática, você não terá que se preocupar muito com eles, mas forneço mais informações sobre eles no Apêndice I.
  • Os números CC 0 e 32 são usados ​​por muitos dispositivos para fins de seleção de patch. Leia mais sobre isso no Apêndice IV .

Curva a afinação para cima ou para baixo. Duh.

Pitch bend se comporta um pouco como um CC. Na verdade, a maioria dos editores de MIDI trata o Pitch Bend como se fosse apenas outro CC. No entanto, um valor CC de 7 bits, com 128 valores possíveis, não oferece resolução suficiente para vender um efeito de pitch bend. Nossos ouvidos são incríveis na resolução da altura do tom e, portanto, mesmo quando nos aproximamos de um novo tom 1/128 de cada vez, ele não soa suave e orgânico.

Para obter uma resolução mais fina, as mensagens “pitch bend” usam dois bytes de dados para transmitir um único valor grande. Basicamente, se você juntar sete bits de uma mensagem e sete bits de outra, poderá montar um único valor de 14 bits, aumentando sua resolução em um fator de 2⁷ ou 128.

Agora, em vez de 128 valores possíveis para nosso pitch bend, temos impressionantes 16.384 - passos mais do que suficientes para criar um efeito de pitch bend suave. A metade direita é fornecida pelo primeiro byte de dados (o byte menos significativo ou LSB) e a metade esquerda é fornecida pelo segundo (o byte mais significativo ou MSB).

Considerações:

  • A intensidade do pitch bend (quantos semitons para cima ou para baixo representa um pitch bend máximo) difere de instrumento para instrumento. Muitas vezes é configurável.
  • A curva de afinação é “centralizada” em 8192 (onde não há mudança de afinação).
  • Pitch bends afetam todas as notas tocadas em um canal, assim como os CCs.
  • Programar com MSBs e LSBs é melhor feito com operadores bit a bit. Não vou passar por cima deles aqui, mas forneci alguns recursos no Apêndice V se você quiser aprender mais.

Alguns controladores MIDI, como o Akai MPK225 , apresentam algo chamado aftertouch . Os controladores Aftertouch são sensíveis não apenas à velocidade de cada tecla pressionada, mas continuamente sensíveis à pressão com que as teclas são mantidas.

Aftertouch vem em duas variedades: aftertouch de canal e aftertouch polifônico . O aftertouch do canal, também conhecido como pressão mono , mede a pressão em todo o teclado, enquanto o aftertouch polifônico mede a pressão de forma independente para cada tecla. Devido ao menor custo de hardware, o aftertouch de canal é o mais comum dos dois. As mensagens de pressão do canal usam apenas um byte de dados, que representa o nível geral de pressão. As mensagens de pressão das teclas polifônicas usam duas: a primeira relata a afinação (usando os números de afinação padrão) e a segunda informa sua pressão.

Considerações:

  • O aftertouch polifônico é o único controle que pode ser configurado independentemente para cada afinação. Todos os outros controles (além da nota ativada ou desativada) afetam todo o canal.
  • Uma extensão para MIDI, chamada “MIDI Polyphonic Expression” (MPE), foi projetada para permitir que CCs e pitch bend sejam aplicados polifonicamente também. O MPE não é muito comum, mas foi popularizado por dispositivos como o ROLI Seaboard . Forneci links para recursos que cobrem isso no Apêndice V .

Se você não usa muito hardware MIDI externo, provavelmente não usará esse tipo de mensagem com muita frequência. Uma mensagem de “mudança de programa” comanda um dispositivo para carregar um novo programa (um novo patch ou preset). Ele usa apenas um byte de dados, que especifica o índice do patch.

Esse tipo de mensagem é super útil ao compor com dispositivos MIDI externos. Contanto que seu hardware suporte predefinições, seu projeto ou sessão pode selecionar e carregá-los: basta sequenciar as mensagens apropriadas de “mudança de programa” no início.

Considerações:

  • Instrumentos com mais de 128 presets geralmente armazenam seus patches em vários bancos . Para recuperar programas armazenados em outros bancos, CC's 0 e 32 são reaproveitados em mensagens de "seleção de banco". No Apêndice IV , examino como isso funciona.
  • Com agendamento inteligente de mensagens de alteração de programa, é possível que um único dispositivo use mais de 16 patches diferentes de uma só vez, desde que não estejam tocando simultaneamente. Embora seja real, você provavelmente deve dividir as coisas em capturas separadas se precisar extrair tantas vozes de um único dispositivo.
  • O Cubase e o Nuendo oferecem suporte nativo para mensagens de alteração de programa no inspetor de trilha MIDI. Não tenho certeza de quantos outros DAWs suportam isso.

As mensagens do sistema são um tópico avançado que não abordarei aqui. Eles realmente merecem um artigo próprio. Eles são usados ​​para todos os tipos de coisas; transferências gigantes de dados (chamadas “ dumps ”), sincronização de relógios, transmissão de timecode e muito mais.

No futuro, posso escrever um guia para as mensagens do sistema, mas, por enquanto, não se preocupe com elas. Esteja ciente de que eles existem e geralmente não são usados ​​na composição MIDI.

4. Sobre Hexadecimal

Antes de continuar, devemos falar sobre todos os 0x's que usei na seção anterior. O prefixo 0x informa que um número está em hexadecimal.⁵ Conforme você se aprofunda em suas ferramentas MIDI avançadas e manuais de dispositivos, você notará que as mensagens MIDI são quase sempre representadas em hexadecimal em vez de binário ou base dez. Isso pode parecer contra-intuitivo a princípio - quero dizer, se você vai converter um número binário, por que não apenas converter para base dez legível por humanos?

A resposta é que é apenas mais prático. Embora eu ache que o binário é a melhor maneira de começar a aprender MIDI, é muito complicado trabalhar com ele. Espalhar cada byte em oito dígitos torna a leitura e a escrita uma tarefa árdua e, como tudo em binário é apenas uns e zeros, é fácil perder o lugar ao ler longas sequências.

Inverter um bit em um número binário pode afetar apenas um dígito de sua representação hexadecimal.

Portanto, os programadores bit a bit geralmente trabalham em hexadecimal. Ele reduz cada byte a apenas dois dígitos e, como 16 é uma potência de 2, cada bit alterado afeta apenas um dígito em hexadecimal. Isso permite que você pense em cada dígito hexadecimal como seu próprio número de quatro bits. Se você quisesse trabalhar bit a bit em uma representação decimal, teria que converter o byte inteiro em binário e vice-versa.

Há apenas algumas coisas a serem lembradas ao trabalhar com MIDI em hexadecimal.

  • Por causa da maneira como os bits são agrupados em hexadecimal, você pode dizer a qual canal MIDI um byte de status está endereçando olhando apenas para o dígito hexadecimal à direita.
  • Se o dígito esquerdo de um byte for 0x7ou menos, você saberá que é um byte de dados e, da mesma forma, saberá que um byte começando com 0x8ou maior é um byte de status.
  • O valor máximo do byte de dados, 127, está 0x7F em hexadecimal.

5. Exemplo Aplicado: Quinta Sinfonia de Beethoven

Quando paramos com este exemplo, tínhamos acabado de dividir o binário bruto em mensagens discretas. Ficou assim:

Para tornar isso mais fácil de resolver, vamos convertê-lo em hexadecimal. Vou deixar os bytes de status em vermelho e os bytes de dados em azul.

Sabendo o que sabemos agora, reconhecemos que os 0x9 e 0x8 que lideram os bytes de status identificam as mensagens como “note on” e “note off” respectivamente. O dígito direito do byte nos diz que eles estão direcionando para o canal MIDI 1.⁶

Aqui está a aparência do desempenho com bytes de status traduzidos.

Nos tipos de mensagens “note on” e “note off”, o primeiro byte de dados codifica uma afinação e o segundo codifica uma velocidade. O valor da velocidade é apenas um número. Para descobrir o tom, precisamos nos referir a uma tabela de notas MIDI . E lembre-se, as velocidades “notas” não são usadas.

Vamos terminar a tradução:

É isso! Essas são as instruções MIDI traduzidas que codificam as quatro primeiras notas da Quinta de Beethoven. Dum dum dum duuum!

Sabendo o que você sabe agora, você pode criar e decodificar mensagens MIDI comuns manualmente. Ferramentas mais avançadas, como transformadores MIDI e editores lógicos, agora estão disponíveis para você. No entanto, há sempre mais para aprender. Se você é um glutão por conhecimento, forneci alguns recursos que você pode usar para estudar MIDI mais a fundo no Apêndice V.

6. Lição Bônus: Status em execução

Há um atalho útil que o MIDI oferece que não mencionei até agora para manter as coisas simples. Veja como funciona: depois de enviar um byte de status, você não precisa enviar outro até que seja diferente do anterior. O último byte de status recebido permanece “ligado” e é usado para interpretar todos os bytes de dados a seguir. Isso é conhecido como Status de execução .

Considere a seguinte cadeia de bytes:

O que você está vendo é exatamente a mesma performance da Quinta de Beethoven que traduzimos no exemplo aplicado, mas com quase todos os bytes de status faltando. No entanto, devido ao Running Status, esse desempenho é tão válido quanto o primeiro. Assim que enviamos o byte de status 0x90, ele se torna o Status de execução, e cada par de bytes a seguir pode ser tratado como se fosse precedido por seu próprio “ 0x90”.

Isso nos permite cortar muitos bytes de status repetidos, o que pode encurtar drasticamente nossos fluxos MIDI. Quando os computadores eram mais lentos e as taxas de transmissão eram mais restritivas, isso foi incrivelmente útil. Hoje, no entanto, os computadores são tão rápidos que o uso do Status em execução não traz uma melhoria perceptível no desempenho. Eu ainda trago isso, no entanto, porque se você estiver fazendo qualquer programação MIDI, você deve estar preparado para ver bytes de status sendo omitidos aqui e ali.

Observe que, como as “notas ativadas” de velocidade zero contam como “notas desligadas”, podemos iniciar e encerrar as notas sem interromper o status de execução; pelo menos, até precisarmos enviar uma mudança de controle ou uma mensagem para um canal diferente.

  1. Isso é feito com uma extensão para MIDI chamada MIDI Show Control.
  2. “O que você vê é o que você obtém”.
  3. Os números dos canais MIDI começam com 1, enquanto sua representação aqui começa com 0. Um valor de 0 significa Canal 1 e um valor de 15 significa Canal 16.
  4. A velocidade pode ser considerada como a “força” com que uma nota é tocada.
  5. Outra notação comum é seguir o número com uma letra maiúscula “H”, como em “78H”.
  6. Lembre-se, mesmo que o número na mensagem seja zero, ele corresponde ao Canal 1 porque começamos a contar os números em 0 e os canais em 1.

Apêndice I: Mensagens do modo de canal

Mensagens de “modo de canal” são comandos especiais que alteram todo o comportamento de um dispositivo alterando seu modo MIDI . Bem, mais ou menos.

Na prática, as mensagens do “modo de canal” servem apenas para ligar ou desligar determinados recursos e enviar determinados comandos. O que o MIDI enumera como “modos” são essencialmente apenas configurações diferentes das alternâncias Omni e Poly. Para ser honesto, não acho que “modos” sejam uma maneira muito adequada de pensar sobre esses comandos; mas pelo menos explicarei o que os comandos fazem.

As mensagens do modo de canal não têm seu próprio tipo de mensagem. Em vez disso, o que teria sido os últimos oito números de controladores contínuos (CC's 120–127) são reaproveitados. As mensagens do modo de canal são as seguintes:

Para que um dispositivo responda às mensagens do modo de canal, ele precisa recebê-las em seu canal básico . O canal básico de um dispositivo é o único canal MIDI no qual as mensagens do modo de canal são consideradas válidas. Para muitos dispositivos, este canal é configurável. Dessa forma, as mensagens do modo de canal podem direcionar dispositivos específicos dentro de uma cadeia.

O que se segue é um resumo rápido de cada mensagem do modo de canal. O Apêndice V contém recursos para estudos adicionais.

  • All Sound Off (“CC” 120): Corta todos os sons que o instrumento está fazendo no momento, incluindo decaimento de notas e efeitos de reverberação.
  • Redefinir todos os controladores (“CC” 121): define todos os CCs, controladores de chave, pitch bend e efeitos aftertouch para seus padrões. O valor para o qual cada controlador retorna depende do controlador e é definido na especificação MIDI.
  • Local Control (“CC” 122): Desconecta o teclado em um sintetizador de seu gerador de tom. Isso permite que você use um sintetizador como um controlador MIDI e, ao mesmo tempo, sequenciá-lo. Defina como 0x00para desligar o controle local e 0x7Fpara ligá-lo novamente.
  • All Notes Off (“CC” 123): O “botão de pânico”. All Notes Off é equivalente a enviar mensagens de “note off” para cada afinação em cada canal. É útil para resolver notas emperradas. As notas acionadas localmente não são afetadas.
  • Modo Omni desligado/ligado (“CC's” 124, 125): Quando o modo Omni está ligado, todos os canais responderão a todas as mensagens recebidas, não importa qual canal seja indicado no byte de status.
  • Mono Mode / Poly Mode (“CC's” 126, 127): Força uma voz ou vozes a um comportamento monofônico ou comportamento polifônico. Se o valor "mono mode on" for definido como 0x00, o canal básico e todos os canais acima dele serão definidos como modo mono. Para qualquer outro valor n , os canais n a n+m-1 serão configurados para o modo mono (onde m é o valor do segundo byte de dados). Uma mensagem de “modo poli ativado” definirá todos os canais de volta ao modo poli.

Apêndice III: Atribuições CC Padrão

A especificação MIDI define usos padronizados de CCs, que copiei aqui. Todos os números CC são definidos, exceto: 3, 9, 14, 15, 20–31, 85–90 e 102–119 . Os CCs mais amplamente suportados são Modulação ( 0x01), Controlador de pedal ( 0x04), Volume do canal ( 0x07), Pan ( 0x0A), Expressão ( 0x0B) e Sustain ( 0x40).

Confira os recursos no Apêndice V se quiser saber mais sobre esses CCs.

Apêndice IV: Mensagens de Alteração Bancária

Os sintetizadores modernos podem armazenar e recuperar muito mais predefinições do que podem ser endereçadas por uma única mensagem de alteração de programa. Para contornar isso, os fabricantes geralmente classificam seus programas em bancos . Cada banco tem um máximo de 128 predefinições e um endereço exclusivo de 7 ou 14 bits.

Para chamar um patch de um banco diferente, primeiro você deve enviar uma mensagem “bank select” com seu endereço. Depois disso, envie uma mensagem de mudança de programa como de costume, e o patch carregado virá do novo banco.

Como você deve ter notado, essas são, na verdade, mensagens de “alteração de controle” para CC's 0 e 32 . Para endereços de 7 bits, apenas CC 0 é usado. Para endereços de 14 bits, CC 0 representa um MSB e 32 um LSB. Se você precisar de uma cartilha sobre MSBs e LSBs, há uma na seção Pitch Bend do artigo principal.

Se um dispositivo usa endereços de 7 ou 14 bits é meio arbitrário e você precisará verificar seu manual para saber qual usar ao se comunicar com seu dispositivo.

Apêndice V: Recursos Adicionais

  • A Associação MIDI : A Associação MIDI é o principal repositório de informações sobre ou relacionadas à tecnologia MIDI. O registro é gratuito e, assim que o fizer, você poderá fazer o download da Especificação Detalhada Complete MIDI 1.0 aqui .
  • Bitwise Operation (Wikipedia) : Eu sei, eu sei, a Wikipedia não é um bom recurso primário, mas eu gosto deste artigo porque é neutro em termos de linguagem e não tem anúncios. Estude sobre deslocamentos de bits aritméticos e OR bit a bit, que são úteis ao trabalhar com MSBs e LSBs.
  • O que é MPE? : um artigo no banco de dados de suporte da ROLI sobre MIDI Polyphonic Expression, que é usado em controladores multidimensionais como os produtos Seaboard. O MPE foi formalmente adotado pela MIDI Manufacturer's Association em janeiro de 2018, e um link para download da especificação está disponível aqui .
  • Modos MIDI (Electronic Music Interactive v2, University of Oregon): Esta página oferece uma visão geral boa e concisa dos quatro modos MIDI padrão. Faz parte de um curso online mais longo sobre música eletrônica.
  • MIDI CC List (Nick Fever) : Uma lista dos CCs padrão com explicações mais elaboradas. Se você ainda precisar de mais informações depois de passar pela lista de Nick, consulte The Complete MIDI 1.0 Detailed Specification, que você pode baixar aqui .
  • Mensagens comuns do sistema MIDI , mensagens em tempo real do sistema MIDI e mensagem exclusiva do sistema MIDI (RecordingBlogs Wiki): excelentes introduções a cada tipo de mensagem do sistema.
  • MIDI Registered Parameter Number (RecordingBlogs Wiki): Uma visão geral dos Números de Parâmetros Registrados, que podem ser considerados como uma extensão dos CCs. Depois de entender os RPNs, os NRPNs (números de parâmetro não registrados) também estarão acessíveis para você.