Musical Instrument Digital Interface Geber Ramalho Osman Gioia
Musical Instrument Digital Interface Geber Ramalho & Osman Gioia
Roteiro n Introdução n Hardware n Protocolo (Tipos, funções e formato das mensagens MIDI) 2 Geber Ramalho & Osman Gioia
Introdução n Definição t MIDI = Musical Instrument Digital Interface t Esquema de interconexão física e protocolo de comunicação que possibilitam o controle e conexão de instrumentos musicais em tempo real t Codifica informações de execução (performance) através de mensagens em formato binário n MIDI x Áudio (wave) t MIDI não transmite informação sonora (espectros sônicos) mas só informações de controle » ex. toque Do 6 agora com intensidade 64 usando um som de piano. O timbre a ser utilizado (ex. o som do “piano”) é sintetizado no equipamento receptor 3 Geber Ramalho & Osman Gioia
Introdução: Histórico n Antigamente. . t Controle analógico por variações de tensão (V) t Interconexão somente entre instrumentos do mesmo fabricante n 1983 t Sequential Circuits, Oberheim, Roland. . . primeira versão 1. 0 do MIDI 4 Geber Ramalho & Osman Gioia
Introdução n Duas grandes sacadas t É uma interface padrão t Separa o controlador do gerador de som 5 Geber Ramalho & Osman Gioia
Introdução: conseqüências n Possibilita existência de vários tipos de controladores t ex. teclado, bateria, guitarra, flauta, . . . 6 Geber Ramalho & Osman Gioia
Introdução: conseqüências n Possibilita comunicação (bidirecional) entre equipamentos musicais e computadores 7 Geber Ramalho & Osman Gioia
Introdução: conseqüências n Facilita o desenvolvimento de software musicais genéricos t ex. editores de partitura, seqüenciadores, sistemas de composição algorítmica t Embora Music. XML seja melhor para isto 8 Geber Ramalho & Osman Gioia
Introdução: conseqüências n Também facilita uso/desenvolvimento de software específicos a um dispositivo t ex. editores de patch 9 Geber Ramalho & Osman Gioia
Introdução: conseqüências n Pode ser utilizado para controle e sincronismo de equipamentos não-musicais t ex. luzes do palco, mesa de som, etc. 10 Geber Ramalho & Osman Gioia
Hardware 11 Geber Ramalho & Osman Gioia
Hardware: Portas MIDI n Transmissão de dados t serial assíncrona e unilateral t taxa 31. 250 bits por segundo t usa portas n Porta MIDI de um equipamento musical t Transmite e recebe mensagens MIDI t Utiliza 3 conectores DIN (Deutsch Industrielle Normung) » MIDI In » MIDI out » MIDI Thru (through = através) cópia “amplificada” da entrada 12 Geber Ramalho & Osman Gioia
Hardware: Portas MIDI Saída MIDI thru Entrada MIDI Receptor Repetidor Transmissor Saída MIDI Circuitos Internos do Dispositivo MIDI Entrada/Saída Analógicas Geber Ramalho & Osman Gioia 13
Hardware: Portas MIDI n Dois exemplos de interligação de dispositivos n MIDI Patch Bay t Alternativa à conexão em cascata t Roteia diretamente evitando atraso Midi Sources MIDI Patch Bay Midi Destinations Geber Ramalho & Osman Gioia Tocar Seqüência Gravar Seqüência Hardware Sequencer out Hardware Sequencer in in thru Synthesizer 1 thru in in thru Synthesizer 2 thru in in out Keyboard Sampler 14
Hardware: MIDI/Computer Interface n As placas atuais têm. . . t Conversor A/D e D/A (como já sabemos. . . ) t Sintetizador MIDI » Síntese na própria placa (Tabelas de formas de onda wavetable lookup) t Interface MIDI » Mandam mensagens MIDI para um sintetizador externo via um adaptador (MIDI Kit) em uma porta USB 15 Geber Ramalho & Osman Gioia
Hardware: Canais MIDI n Pergunta t Estes tipos todos de conexão não geram confusão? Como saber que notas serão tocadas em que equipamento (de uma mesma porta ou não)? n Canais MIDI: Solução! t É um endereçamento de rede: mensagens processadas só equipamentos “sintonizados” naquele(s) canal(is) » Diferente da noção de canal de áudio » ex. se sintetizador 1 reponde ao canal 1, as mensagens dos outros canais serão ignoradas por ele t 16 canais porta » múltiplas portas = 16*portas canais 16 Geber Ramalho & Osman Gioia
Canais MIDI n Exemplo Teclado 1 Split Point Computador 2 in Sintetizador 1 (10 vozes multitimbral) Sintetizador 2 (4 vozes multitimbral) Placa MIDI out 1 a 10 11 a 14 Unidade de Efeito 1 15 Unidade de Efeito 2 16
Hardware: Canais MIDI n Canal Base t Canal associado a fluxo de eventos com mensagens de modo de operação » Informa ao dispositivo a configuração de recebimento das mensagens de voz » Cada fabricante tem o seu default (em geral o canal 1) t Limitações » A configuração é manual: não configurável por software » Como não há handshaking (MIDI é unilateral), não se sabe se o equipamento esta recebendo n Canal de Voz t Canal associado ao fluxo de mensagens de voz (informação realmente musical) » Notas, controles, mudanças de programa, etc. . . 18 Geber Ramalho & Osman Gioia
Protocolo (Mensagens MIDI) 19 Geber Ramalho & Osman Gioia
Mensagens MIDI n Princípio t A comunicação se dá por mensagens MIDI t Transmissor origina mensagens e receptor realiza a ação desejada (sintetiza, processa, liga, . . . ) t Mensagens enviadas/reconhecidas por cada equipamento estão listadas na Tabela de Implementação MIDI 20 Geber Ramalho & Osman Gioia
Exemplo de Tabela de Implementação MIDI
Mensagens MIDI: Formato n Mensagens possuem t 1 byte de Status , que codifica os comandos t Seguido por 0, 1 ou 2 bytes de dados (argumentos) n Byte de status t Bit de mais alta ordem sempre igual a 1 (=> vai de 0 x 80 a 0 x. FF) t Os outros 3 ou 7 bits mais significativos codificam tipo de mensagem, t Quando necessário, os 16 canais MIDI são codificados nos 4 bits menos significativos (para complicar!!) 1 cmd cmd : chn chn Geber Ramalho & Osman Gioia 1 cmd cmd : cmd cmd 22
Mensagens MIDI: Formato n Bytes de dados t Complementam (instanciam) a informação do status t Só usam 7 bits para não confundir com as o byte de status, o que é uma limitação 0 arg arg : arg arg 23 Geber Ramalho & Osman Gioia
Mensagens MIDI: Tipos n Mensagens de canal (channel messages) t Endereçadas em um canal, dizem as notas a tocar, como modificar o som destas, ou como o equipamento deve tratar estas requisições t Subdivide-se em mensagens de voz e de modo n Mensagens de sistema (system messages) t Coordenam as atividades de todos os equipamentos conectados ao sistema t Subdivide-se em mensagens comuns, de tempo real e exclusivas do sistema 24 Geber Ramalho & Osman Gioia
Mensagens MIDI: Tipos Channel Voice System Mode Note on Note off Key Pressure Channel Pressure Control Change Program Change Pitch Bend Real Time Common Sys Ex All Notes Off Local Control Omni Off Omni On Mono Poly 25 Geber Ramalho & Osman Gioia
Mensagens de Canal Mensagens de Voz Mensagens de Modo 26 Geber Ramalho & Osman Gioia
Mensagens de Voz n Dizem as notas a tocar, como modificar o som destas * n = canal (0 = canal 1, F = canal 16) Geber Ramalho & Osman Gioia 27
Mensagens de Voz: Note On/Note Off n Note On t Indica a nota a ser tocada: altura (MIDI key) e intensidade (velocity) 9 n key velocity t 3 bytes n Altura t Baseada no teclado (afinação temperada, La = 440 Hz) t 7 bits => 128 valores (0 a 127) » Tessitura = MIDI C 0 (8, 17 Hz) a G 10 (12. 543, 89 Hz) » Do Central (MIDI C 5) = 60 (261, 63 Hz) » Ver em http: //www. cin. ufpe. br/~musica/cmps/ • Chart_Pitch_1. pdf, ou equivalencia. html Tecla 0 12 Geber Ramalho & Osman Gioia 24 36 48 60 72 84 96 108 C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 120 127 28
Mensagens de Voz: Note On/Note Off n Intensidade t Chamada de velocidade devido à maneira de detectar intensidade em um teclado t 7 bits => 128 valores (0 a 127) Velocity 0 off ppp pp p 64 mp mf f ff 127 fff 29 Geber Ramalho & Osman Gioia
Mensagens de Voz: Note On e Note Off n Note off t Liberação de tecla t Mesma informação do Note On 8 n key velocity n Duração t tempo decorrido entre Note On e Note Off t por ser em tempo real, não é possível trabalhar explicitamente com a duração em MIDI a priori n Observação importante t Usar Note On com velocity = zero dá no mesmo que um Note Off 30 Geber Ramalho & Osman Gioia
Mensagens de Voz: Pitch Bend n Pitch Bend (mudança de altura) t Usada para efeitos musicais (ex. glissando), para obter micro afinação, etc. t Utiliza 14 bits = 16. 384 valores » byte menos significativo antes » centro em 0 x 00 0 x 40 t Variação é determinada pelo receptor » ex. se um sintetizador implementa um desvio de 3 semitons para cima e para baixo, teremos um “passo” 6/16384 31 Geber Ramalho & Osman Gioia
Mensagens de Voz: Pressão n Key Pressure (aftertouch) t Enviada por alguns teclados depois de se pressionar a tecla t Pode ser interpretada de maneiras diversas » ex. disparando um efeito n Channel Pressure t Igual a anterior mais se aplica à todas as notas do canal, e não a um única tecla 32 Geber Ramalho & Osman Gioia
Mensagens de Voz: Program Change n Program Change t Seleciona o programa/patch/instrumento desejado t Ex. uma mesma melodia de flauta pode passar a ser tocada (no mesmo canal) pelo piano, pela guitarra ou por uma flauta sttacato n Os sintetizadores General MIDI tem uma lista padrão de de instrumentos devidamente numerados t t t 01 = piano acústico 27 = guitarra de jazz 53 = coral “ah” 70 = corne inglês 109 = kalimba 33 Geber Ramalho & Osman Gioia
Mensagens de Voz: Control Change n Control Change t Usada para mudar volume, modulação e outras qualidades sonoras do sintetizador t 120 controles 34 Geber Ramalho & Osman Gioia
Mensagens de Voz: Control Change 0, 32 Seleção de Banco (somente MSB) 66 Sostenuto (Booleano) 1 Modulação 67 Abafador (Booleano) 2 Embocadura 69 Sustentação 2 (Booleano) 4 Pedal 91 Reverberação 5 Tempo de Portamento 92 Tremolo 6, 38 Entrada de Dados 93 Chorus 7 Volume 94 Desafinador 8 Balanço 95 Modificador de Fase 10 Estereofonia 98, 99 NRPN 11 Expressão 100, 101 RPN (LSB, MSB) 64 Sustentação 1 (Booleano) 120 Cancela todas as Notas 65 Portamento (Booleano) 121 Zera todos os controladores 35 Geber Ramalho & Osman Gioia
Running Status n Definição t Caso uma mensagem venha sem status, vale o último t Ganha tempo minimizando a redundância do protocolo MIDI n Exemplo t Pare enviar e relaxar 3 notas => 18 bytes (com Note On e velocity zero servindo de Note Off) » 90 3 C 40 90 3 B 62 90 39 27. . . 90 3 C 00 90 3 B 00 90 39 00 t Com o running status => 13 bytes » 90 3 C 40 3 B 62 39 27. . . 3 C 00 3 B 00 39 00 36 Geber Ramalho & Osman Gioia
Usar Midi Monitor 37 Geber Ramalho & Osman Gioia
Mensagens de Modo n Mensagens de Modo t Servem para definir como cada equipamento vai receber as mensagens de voz t Recebidas pelo receptor através de canal base que pode ser fixo ou definido pelo usuário a critério de cada fabricante n Formato t Byte de status (0 x. B 0 a 0 x. BF) mais 1 ou 2 bytes de dados 38 Geber Ramalho & Osman Gioia
Mensagens de Modo 39 Geber Ramalho & Osman Gioia
Mensagens de Modo n Mensagens (1) t Local/Remoto: Conecta/desconecta o controlador local (teclado) do sintetizador interno de som t All Notes off: Pânico n Mensagens (2) t Omni On/Off- Habilita a recepção de Mensagens de voz em qualquer canal t Mono/Poli - Responde monofônica ou polifonicamente t Estes dois últimos são utilizados conjuntamente para definir os modos de operação 1, 2, 3 e 4 40 Geber Ramalho & Osman Gioia
Sintetizadores n Monofônicos x Polifônicos t Polifonia: capacidade de tocar mais de uma nota ao mesmo tempo » exemplo: piano, contra-exemplo: flauta t Todos sintetizadores MIDI minimamente decentes são polifônicos, porém a polifonia máxima pode variar n Monotimbrais x Politimbrais t Politimbralidade: capacidade de tocar mais de um timbre (notas de diferentes instrumentos) ao mesmo tempo » Todo politimbral é polifônico mais não o inverso t Os sintetizadores modernos são politimbrais, os antigos (ex. DX 7) não 41 Geber Ramalho & Osman Gioia
Modos de Operação n Modo 1: Omni On / Poli (ou simplesmente “omni”) t Mensagens de voz recebidas em todos os canais t Notas alocadas polifonicamente até o limite de polifonia do instrumento t Usado para testar a conexão n Modo 2: Omni On / Mono t Mensagens de voz recebidas em qualquer canal t Notas executadas monofonicamente t Em total desuso n Estes 2 modos são pouco ou não utilizados! 42 Geber Ramalho & Osman Gioia
Modos de Operação n Modo 3: Omni Off / Poli (ou simplesmente “poli”) t Mensagens de voz recebidas somente pelo canal base e as notas alocadas polifonicamente t Muito útil para organizar vários sintetizadores monotimbrais mas polifônicos » Ex. sintetizador 1 = piano, sintetizador 2 = guitarra, sintetizador 3 = bateria, etc. t Pouco usado atualmente 43 Geber Ramalho & Osman Gioia
Modos de Operação n Modo 4: Omni Off / ex-mono e atual Multi mode (“multi”) t Na versão anterior, o sintetizador respondia monofônicamente. . . atualmente muito usada para sintetizadores multitimbrais t Mensagens de voz recebidas em cada um dos canais com cada timbre ficando sintonizado em um canal! » Vários sintetizadores em um, pois pode responder a mais de um canal mas não necessariamente todos! 44 Geber Ramalho & Osman Gioia
Mensagens do Sistema Mensagens Comuns Mensagens Tempo Real Mensagens Exclusivas 45 Geber Ramalho & Osman Gioia
Mensagens do Sistema n System Common t Transportam informações gerais aos sistemas, enviadas para todas as unidades e todos canais » Utilizadas para configurar (set) os sintetizadores para tocar uma dada música a partir de uma dada posição no tempo n Real Time t Mensagens de sincronismo (start, stop, clock) n Exclusivas t Reservadas para utilização proprietária de cada fabricantes » Cada fabricante deverá fornecer explicação detalhada sobre a implementação Sys Ex em cada equipamento 46 Geber Ramalho & Osman Gioia
Exemplo de Sys-ex Genérica n General MIDI On F 0 7 E 7 F 09 01 F 7 F 0 - Início de Sys-ex 7 E - ID number (Universal non-real time message) 7 F - Device ID (Broadcast) 09 - sub-ID#1 (General MIDI message) 01 - sub-ID#2 (General MIDI on) F 7 - EOX (End of Exclusive) 47 Geber Ramalho & Osman Gioia
Exemplo de Fluxo de Dados MIDI 48 Geber Ramalho & Osman Gioia
- Slides: 48