Escolar Documentos
Profissional Documentos
Cultura Documentos
Instrument
Digital
Interface
Hardware
2
Geber Ramalho & Osman Gioia
Introdução
Definição
MIDI = Musical Instrument Digital Interface
Esquema de interconexão física e protocolo de comunicação
que possibilitam o controle e conexão de instrumentos musicais
em tempo real
Codifica informações de execução (performance) através de
mensagens em formato binário
3
Geber Ramalho & Osman Gioia
Introdução: Histórico
Antigamente....
Controle analógico por variações de tensão (V)
Interconexão somente entre instrumentos do mesmo
fabricante
1983
Sequential Circuits, Oberheim, Roland... primeira versão
1.0 do MIDI
4
Geber Ramalho & Osman Gioia
Introdução
Duas grandes sacadas
É uma interface padrão
Separa o controlador do gerador de som
5
Geber Ramalho & Osman Gioia
Introdução: conseqüências
Permite troca dados entre os mais diversos
equipamentos musicais
6
Geber Ramalho & Osman Gioia
Introdução: conseqüências
Facilita o desenvolvimento de software musicais
genéricos
ex. editores de partitura, seqüenciadores, sistemas de
composição algorítmica
Embora MusicXML seja melhor para isto
7
Geber Ramalho & Osman Gioia
Hardware
8
Geber Ramalho & Osman Gioia
Hardware: Portas MIDI
Transmissão de dados
serial assíncrona e unilateral
taxa 31.250 bits por segundo
usa portas
Saída
MIDI thru
Entrada Saída
MIDI Receptor Repetidor Transmissor MIDI
Circuitos Internos
do Dispositivo
MIDI
Entrada/Saída
Analógicas 10
Geber Ramalho & Osman Gioia
Hardware: Portas MIDI Tocar Gravar
Seqüência Seqüência
12
Geber Ramalho & Osman Gioia
Hardware: Canais MIDI
Pergunta
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)?
13
Geber Ramalho & Osman Gioia
Canais MIDI Teclado
Computador
1 2
Exemplo Split Point
Placa MIDI
in
out
Sintetizador 1
(10 vozes
1 a 10
multitimbral)
Sintetizador 2
(4 vozes 11 a 14
multitimbral)
Unidade de
Efeito 1 15
Unidade de
Efeito 2 16
Hardware: Canais MIDI
Canal Base
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)
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
Canal de Voz
Canal associado ao fluxo de mensagens de voz
(informação realmente musical)
» Notas, controles, mudanças de programa, etc...
15
Geber Ramalho & Osman Gioia
Protocolo (Mensagens MIDI)
16
Geber Ramalho & Osman Gioia
Mensagens MIDI
Princípio
A comunicação se dá por mensagens MIDI
Transmissor origina mensagens e receptor realiza a ação
desejada (sintetiza, processa, liga, ...)
Mensagens enviadas/reconhecidas por cada equipamento
estão listadas na Tabela de Implementação MIDI
17
Geber Ramalho & Osman Gioia
Exemplo de
Tabela de
Implementação
MIDI
Mensagens MIDI: Formato
Mensagens possuem
1 byte de Status , que codifica os comandos
Seguido por 0, 1 ou 2 bytes de dados (argumentos)
Byte de status
Bit de mais alta ordem sempre igual a 1 (=> vai de 0x80 a
0xFF)
Os outros 3 ou 7 bits mais significativos codificam tipo de
mensagem,
Quando necessário, os 16 canais MIDI são codificados
nos 4 bits menos significativos (para complicar!!)
1 cmd cmd cmd : chn chn chn chn 1 cmd cmd cmd : cmd cmd cmd cmd
19
Geber Ramalho & Osman Gioia
Mensagens MIDI: Formato
Bytes de dados
Complementam (instanciam) a informação do status
Só usam 7 bits para não confundir com as o byte de
status, o que é uma limitação
20
Geber Ramalho & Osman Gioia
Mensagens MIDI: Tipos
Mensagens de canal (channel messages)
Endereçadas em um canal, dizem as notas a tocar, como
modificar o som destas, ou como o equipamento deve
tratar estas requisições
Subdivide-se em mensagens de voz e de modo
21
Geber Ramalho & Osman Gioia
Mensagens MIDI: Tipos
Channel System
22
Geber Ramalho & Osman Gioia
Mensagens de Canal
Mensagens de Voz
Mensagens de Modo
23
Geber Ramalho & Osman Gioia
Mensagens de Voz
Dizem as notas a tocar, como modificar o som destas
Note On
Indica a nota a ser tocada: altura (MIDI key) e intensidade
(velocity)
3 bytes 9n key velocity
Altura
Baseada no teclado (afinação temperada, La = 440 Hz)
7 bits => 128 valores (0 a 127)
» Tessitura = MIDI C0 (8,17 Hz) a G10 (12.543,89 Hz)
» Do Central (MIDI C5) = 60 (261,63 Hz)
» Ver em http://www.cin.ufpe.br/~musica/cmps/
• Chart_Pitch_1.pdf, ou equivalencia.html
Intensidade
Chamada de velocidade devido à maneira de detectar
intensidade em um teclado
7 bits => 128 valores (0 a 127)
Velocity 0 64 127
off ppp pp p mp mf f ff fff
26
Geber Ramalho & Osman Gioia
Mensagens de Voz: Note On e Note Off
Note off
Liberação de tecla
Mesma informação do Note On 8n key velocity
Duração
tempo decorrido entre Note On e Note Off
por ser em tempo real, não é possível trabalhar
explicitamente com a duração em MIDI a priori
Observação importante
Usar Note On com velocity = zero dá no mesmo que um
Note Off
27
Geber Ramalho & Osman Gioia
Mensagens de Voz: Pitch Bend
Pitch Bend (mudança de altura)
Usada para efeitos musicais (ex. glissando), para obter
micro afinação, etc.
Utiliza 14 bits = 16.384 valores
» byte menos significativo antes
» centro em 0x00 0x40
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
28
Geber Ramalho & Osman Gioia
Mensagens de Voz: Pressão
Key Pressure (aftertouch)
Enviada por alguns teclados depois de se pressionar a
tecla
Pode ser interpretada de maneiras diversas
» ex.disparando um efeito
Channel Pressure
Igual a anterior mais se aplica à todas as notas do canal, e
não a um única tecla
29
Geber Ramalho & Osman Gioia
Mensagens de Voz: Program Change
Program Change
Seleciona o programa/patch/instrumento desejado
Ex. uma mesma melodia de flauta pode passar a ser
tocada (no mesmo canal) pelo piano, pela guitarra ou por
uma flauta sttacato
30
Geber Ramalho & Osman Gioia
Mensagens de Voz: Control Change
Control Change
Usada para mudar volume, modulação e outras
qualidades sonoras do sintetizador
120 controles
31
Geber Ramalho & Osman Gioia
Mensagens de Voz: Control Change
0, 32 Seleção de Banco (somente 66 Sostenuto (Booleano)
MSB)
67 Abafador (Booleano)
1 Modulação
69 Sustentação 2 (Booleano)
2 Embocadura
91 Reverberação
4 Pedal
92 Tremolo
5 Tempo de Portamento
93 Chorus
6, 38 Entrada de Dados
94 Desafinador
7 Volume
95 Modificador de Fase
8 Balanço
98, 99 NRPN (LSB, MSB)
10 Estereofonia
100, 101 RPN (LSB, MSB)
11 Expressão
120 Cancela todas as Notas
64 Sustentação 1 (Booleano)
121 Zera todos os controladores
65 Portamento (Booleano)
32
Geber Ramalho & Osman Gioia
Running Status
Definição
Caso uma mensagem venha sem status, vale o último
Ganha tempo minimizando a redundância do protocolo
MIDI
Exemplo
Pare enviar e relaxar 3 notas => 18 bytes (com Note On e
velocity zero servindo de Note Off)
» 90 3C 40 90 3B 62 90 39 27 ... 90 3C 00 90 3B 00 90 39 00
Com o running status => 13 bytes
» 90 3C 40 3B 62 39 27 ... 3C 00 3B 00 39 00
33
Geber Ramalho & Osman Gioia
Usar Midi Monitor
34
Geber Ramalho & Osman Gioia
Mensagens de Modo
Mensagens de Modo
Servem para definir como cada equipamento vai receber
as mensagens de voz
Recebidas pelo receptor através de canal base que pode
ser fixo ou definido pelo usuário a critério de cada
fabricante
Formato
Byte de status (0xB0 a 0xBF) mais 1 ou 2 bytes de dados
35
Geber Ramalho & Osman Gioia
Mensagens de Modo
36
Geber Ramalho & Osman Gioia
Mensagens de Modo
Mensagens (1)
Local/Remoto: Conecta/desconecta o controlador local
(teclado) do sintetizador interno de som
All Notes off: Pânico
Mensagens (2)
Omni On/Off- Habilita a recepção de Mensagens de voz
em qualquer canal
Mono/Poli - Responde monofônica ou polifonicamente
Estes dois últimos são utilizados conjuntamente para
definir os modos de operação 1, 2, 3 e 4
37
Geber Ramalho & Osman Gioia
Sintetizadores
Monofônicos x Polifônicos
Polifonia:capacidade de tocar mais de uma nota ao
mesmo tempo
» exemplo: piano, contra-exemplo: flauta
Todos sintetizadores MIDI minimamente decentes são
polifônicos, porém a polifonia máxima pode variar
Monotimbrais x Politimbrais
Politimbralidade: capacidade de tocar mais de um timbre
(notas de diferentes instrumentos) ao mesmo tempo
» Todo politimbral é polifônico mais não o inverso
Os sintetizadores modernos são politimbrais, os antigos
(ex. DX7) não
38
Geber Ramalho & Osman Gioia
Modos de Operação
Modo 1: Omni On / Poli (ou simplesmente “omni”)
Mensagens de voz recebidas em todos os canais
Notas alocadas polifonicamente até o limite de polifonia do
instrumento
Usado para testar a conexão
39
Geber Ramalho & Osman Gioia
Modos de Operação
Modo 3: Omni Off / Poli (ou simplesmente “poli”)
Mensagens de voz recebidas somente pelo canal base e as
notas alocadas polifonicamente
Muito útil para organizar vários sintetizadores monotimbrais
mas polifônicos
» Ex. sintetizador 1 = piano, sintetizador 2 = guitarra, sintetizador
3 = bateria, etc.
Pouco usado atualmente
40
Geber Ramalho & Osman Gioia
Modos de Operação
Modo 4: Omni Off / ex-mono e atual Multi mode (“multi”)
Na versão anterior, o sintetizador respondia
monofônicamente... atualmente muito usada para
sintetizadores multitimbrais
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!
41
Geber Ramalho & Osman Gioia
Mensagens do Sistema
Mensagens Comuns
Mensagens Exclusivas
42
Geber Ramalho & Osman Gioia
Mensagens do Sistema
System Common
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
Real Time
Mensagens de sincronismo (start, stop, clock)
Exclusivas
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
43
Geber Ramalho & Osman Gioia
Exemplo de Sys-ex Genérica
General MIDI On F0 7E 7F 09 01 F7
F0 - Início de Sys-ex
7E - ID number (Universal non-real time message)
7F - Device ID (Broadcast)
09 - sub-ID#1 (General MIDI message)
01 - sub-ID#2 (General MIDI on)
F7 - EOX (End of Exclusive)
44
Geber Ramalho & Osman Gioia
Exemplo de
Fluxo de
Dados
MIDI
45
Geber Ramalho & Osman Gioia