Upload
cecilia-novo
View
222
Download
2
Embed Size (px)
Citation preview
MMusicalusicalIInstrumentnstrumentDDigitaligitalIInterfacenterface
Geber Ramalho & Osman Gioia
Geber Ramalho & Osman Gioia
2
RoteiroRoteiro
Introdução
Hardware
Protocolo (Tipos, funções e formato das mensagens MIDI)
Geber Ramalho & Osman Gioia
3
IntroduçãoIntroduçã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
MIDI x Áudio (wave) MIDI não transmite informação sonora (espectros sônicos) mas
só informações de controle» ex. toque Do6 agora com intensidade 64 usando um som de piano.
O timbre a ser utilizado (ex. o som do “piano”) é sintetizado no equipamento receptor
Geber Ramalho & Osman Gioia
4
Introdução: Histórico 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
Geber Ramalho & Osman Gioia
5
IntroduçãoIntrodução
Duas grandes sacadasÉ uma interface padrãoSepara o controlador do gerador de som
Geber Ramalho & Osman Gioia
6
Introdução: conseqüências Introdução: conseqüências
Possibilita existência de vários tipos de controladores ex. teclado, bateria, guitarra, flauta, ...
Geber Ramalho & Osman Gioia
7
Introdução: conseqüências Introdução: conseqüências
Possibilita comunicação (bidirecional) entre equipamentos musicais e computadores
Geber Ramalho & Osman Gioia
8
Introdução: conseqüências Introdução: conseqüências Facilita o desenvolvimento de software musicais
genéricos ex. editores de partitura, seqüenciadores, sistemas de
composição algorítmicaEmbora MusicXML seja melhor para isto
Geber Ramalho & Osman Gioia
9
Introdução: conseqüências Introdução: conseqüências Também facilita uso/desenvolvimento de software
específicos a um dispositivoex. editores de patch
Geber Ramalho & Osman Gioia
10
Introdução: conseqüências Introdução: conseqüências Pode ser utilizado para controle e sincronismo de
equipamentos não-musicaisex. luzes do palco, mesa de som, etc.
Geber Ramalho & Osman Gioia
11
HardwareHardware
Geber Ramalho & Osman Gioia
12
Hardware: Portas MIDIHardware: Portas MIDI
Transmissão de dados serial assíncrona e unilateral taxa 31.250 bits por segundo usa portas
Porta MIDI de um equipamentomusical Transmite e recebe mensagens MIDI Utiliza 3 conectores DIN (Deutsch
Industrielle Normung)» MIDI In» MIDI out» MIDI Thru (through = através)
cópia “amplificada” da entrada
Geber Ramalho & Osman Gioia
13
Hardware: Portas MIDI Hardware: Portas MIDI
Receptor
Entrada MIDI Repetidor Transmissor
Saída MIDI thru
Circuitos Internos do Dispositivo MIDI
Saída MIDI
Entrada/Saída Analógicas
Geber Ramalho & Osman Gioia
14
Hardware: Portas MIDI Hardware: Portas MIDI
Dois exemplos de interligação de dispositivos
MIDI Patch BayAlternativa à conexão em
cascataRoteia diretamente evitando
atraso
KeyboardSampler
in
Synthesizer 2in
thru
Synthesizer 1in
thru
HardwareSequencer
out
TocarSeqüência
KeyboardSampler
out
Synthesizer 2thru
in
Synthesizer 1thru
in
HardwareSequencer
in
GravarSeqüência
Midi Sources
Midi Destinations
MIDI Patch Bay
Geber Ramalho & Osman Gioia
15
Hardware: MIDI/Computer InterfaceHardware: MIDI/Computer Interface
As placas atuais têm...Conversor A/D e D/A (como já sabemos...)Sintetizador MIDI
» Síntese na própria placa (Tabelas de formas de onda - wavetable lookup)
Interface MIDI» Mandam mensagens MIDI para um sintetizador externo via
um adaptador (MIDI Kit) em uma porta USB
Geber Ramalho & Osman Gioia
16
Hardware: Canais MIDIHardware: Canais MIDI
PerguntaEstes 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)?
Canais MIDI: Solução!É 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 16 canais por porta
» múltiplas portas = 16*portas canais
Canais MIDICanais MIDI
Exemplo
Sintetizador 2(4 vozes
multitimbral)
Sintetizador 1(10 vozes
multitimbral)
Unidade deEfeito 1
Unidade deEfeito 2
Computador
Placa MIDI
Teclado
Split Point1 2
inout
1 a 10
11 a 14
15
16
Geber Ramalho & Osman Gioia
18
Hardware: Canais MIDIHardware: 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 VozCanal associado ao fluxo de mensagens de voz
(informação realmente musical)» Notas, controles, mudanças de programa, etc...
Geber Ramalho & Osman Gioia
19
Protocolo (Mensagens MIDI)Protocolo (Mensagens MIDI)
Geber Ramalho & Osman Gioia
20
Mensagens MIDIMensagens MIDI
PrincípioA comunicação se dá por mensagens MIDITransmissor 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
Exemplo de Exemplo de Tabela de Tabela de Implementação Implementação MIDIMIDI
Geber Ramalho & Osman Gioia
22
Mensagens MIDI: FormatoMensagens MIDI: Formato
Mensagens possuem1 byte de Status , que codifica os comandosSeguido 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
Geber Ramalho & Osman Gioia
23
Mensagens MIDI: FormatoMensagens MIDI: Formato
Bytes de dadosComplementam (instanciam) a informação do statusSó usam 7 bits para não confundir com as o byte de
status, o que é uma limitação
0 arg arg arg : arg arg arg arg
Geber Ramalho & Osman Gioia
24
Mensagens MIDI: TiposMensagens 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
Mensagens de sistema (system messages)Coordenam as atividades de todos os equipamentos
conectados ao sistemaSubdivide-se em mensagens comuns, de tempo real e
exclusivas do sistema
Geber Ramalho & Osman Gioia
25
Mensagens MIDI: TiposMensagens MIDI: Tipos
Note onNote off
Key PressureChannel PressureControl ChangeProgram Change
Pitch Bend
Voice
All Notes OffLocal Control
Omni OffOmni On
MonoPoly
Mode
Channel
Real Time Common Sys Ex
System
Geber Ramalho & Osman Gioia
26
Mensagens de CanalMensagens de Canal
Mensagens de Voz
Mensagens de Modo
Geber Ramalho & Osman Gioia
27
Byte de Status* Significado Bytes de Dados
0x8n Note Off 2 bytes - Tecla e Dinâmica
0x9n Note On 2 bytes - Tecla e Dinâmica
0xAn Key Pressure 2 bytes - Tecla e Valor
0xBn Control Change 2 bytes - Parâmetro e Valor
0xCn Program Change 1 byte - Programa selecionado
0xDn Channel Pressure 1 byte - Valor
0xEn Pitch Bend 2 bytes - Valor de 14 bits
* n = canal (0 = canal 1, F = canal 16)
Mensagens de VozMensagens de Voz
Dizem as notas a tocar, como modificar o som destas
Geber Ramalho & Osman Gioia
28
Mensagens de Voz: Note On/Note OffMensagens de Voz: Note On/Note Off
Note On Indica a nota a ser tocada: altura (MIDI key) e intensidade (velocity) 3 bytes
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
1270 12 24 36 48 72 8460 96 108 120C1 C2 C3 C4 C6C5 C7 C8
Tecla
9n key velocity
Geber Ramalho & Osman Gioia
29
Mensagens de Voz: Note On/Note OffMensagens de Voz: Note On/Note Off
IntensidadeChamada de velocidade devido à maneira de detectar
intensidade em um teclado7 bits => 128 valores (0 a 127)
fff0 64
ppp127
off pp mp mf f ffpVelocity
Geber Ramalho & Osman Gioia
30
Mensagens de Voz: Note On e Note OffMensagens de Voz: Note On e Note Off
Note offLiberação de tecla Mesma informação do Note On
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 importanteUsar Note On com velocity = zero dá no mesmo que um Note Off
8n key velocity
Geber Ramalho & Osman Gioia
31
Mensagens de Voz: Pitch BendMensagens 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
Geber Ramalho & Osman Gioia
32
Mensagens de Voz: PressãoMensagens de Voz: Pressão
Key Pressure (aftertouch)Enviada por alguns teclados depois de se pressionar a
teclaPode 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
Geber Ramalho & Osman Gioia
33
Mensagens de Voz: Program ChangeMensagens de Voz: Program Change Program Change
Seleciona o programa/patch/instrumento desejadoEx. uma mesma melodia de flauta pode passar a ser
tocada (no mesmo canal) pelo piano, pela guitarra ou por uma flauta sttacato
Os sintetizadores General MIDI tem uma lista padrão de de instrumentos devidamente numerados01 = piano acústico27 = guitarra de jazz53 = coral “ah”70 = corne inglês109 = kalimba
Geber Ramalho & Osman Gioia
34
Mensagens de Voz: Control ChangeMensagens de Voz: Control Change
Control ChangeUsada para mudar volume, modulação e outras
qualidades sonoras do sintetizador120 controles
Geber Ramalho & Osman Gioia
35
Mensagens de Voz: Control ChangeMensagens de Voz: Control Change0, 32 Seleção de Banco (somente
MSB)
1 Modulação
2 Embocadura
4 Pedal
5 Tempo de Portamento
6, 38 Entrada de Dados
7 Volume
8 Balanço
10 Estereofonia
11 Expressão
64 Sustentação 1 (Booleano)
65 Portamento (Booleano)
66 Sostenuto (Booleano)
67 Abafador (Booleano)
69 Sustentação 2 (Booleano)
91 Reverberação
92 Tremolo
93 Chorus
94 Desafinador
95 Modificador de Fase
98, 99 NRPN (LSB, MSB)
100, 101 RPN (LSB, MSB)
120 Cancela todas as Notas
121 Zera todos os controladores
Geber Ramalho & Osman Gioia
36
Running StatusRunning Status
DefiniçãoCaso uma mensagem venha sem status, vale o últimoGanha tempo minimizando a redundância do protocolo
MIDI
ExemploPare 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
Geber Ramalho & Osman Gioia
37
Usar Midi MonitorUsar Midi Monitor
Geber Ramalho & Osman Gioia
38
Mensagens de ModoMensagens de Modo
Mensagens de ModoServem 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
FormatoByte de status (0xB0 a 0xBF) mais 1 ou 2 bytes de dados
Geber Ramalho & Osman Gioia
39
Mensagens de ModoMensagens de Modo
Status Arg1 Arg2 Evento B0 7A 0/127 Local On/Off B0 7B 0 All Notes Off B0 7C 0 Omni On B0 7D 0 Omni Off B0 7E 0-16 Mono Mode B0 7F 0 Poly Mode
Geber Ramalho & Osman Gioia
40
Mensagens de ModoMensagens de Modo
Mensagens (1)Local/Remoto: Conecta/desconecta o controlador local
(teclado) do sintetizador interno de somAll Notes off: Pânico
Mensagens (2)Omni On/Off- Habilita a recepção de Mensagens de voz
em qualquer canalMono/Poli - Responde monofônica ou polifonicamenteEstes dois últimos são utilizados conjuntamente para
definir os modos de operação 1, 2, 3 e 4
Geber Ramalho & Osman Gioia
41
SintetizadoresSintetizadores
Monofônicos x PolifônicosPolifonia: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 PolitimbraisPolitimbralidade: 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
Geber Ramalho & Osman Gioia
42
Modos de OperaçãoModos 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
instrumentoUsado para testar a conexão
Modo 2: Omni On / MonoMensagens de voz recebidas em qualquer canalNotas executadas monofonicamenteEm total desuso
Estes 2 modos são pouco ou não utilizados!
Geber Ramalho & Osman Gioia
43
Modos de OperaçãoModos de Operação
Modo 3: Omni Off / Poli (ou simplesmente “poli”)Mensagens de voz recebidas somente pelo canal base e as
notas alocadas polifonicamenteMuito útil para organizar vários sintetizadores monotimbrais
mas polifônicos» Ex. sintetizador 1 = piano, sintetizador 2 = guitarra, sintetizador
3 = bateria, etc.Pouco usado atualmente
Geber Ramalho & Osman Gioia
44
Modos de OperaçãoModos 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!
Geber Ramalho & Osman Gioia
45
Mensagens do SistemaMensagens do Sistema
Mensagens Comuns
Mensagens Tempo Real
Mensagens Exclusivas
Geber Ramalho & Osman Gioia
46
Mensagens do SistemaMensagens do Sistema
System CommonTransportam 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 TimeMensagens de sincronismo (start, stop, clock)
ExclusivasReservadas para utilização proprietária de cada
fabricantes» Cada fabricante deverá fornecer explicação detalhada
sobre a implementação Sys Ex em cada equipamento
Geber Ramalho & Osman Gioia
47
Exemplo de Sys-ex GenéricaExemplo de Sys-ex Genérica
General MIDI OnF0 - Início de Sys-ex7E - 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)
F0 7E 7F 09 01 F7
Geber Ramalho & Osman Gioia
48
Exemplo de Exemplo de Fluxo de Fluxo de Dados Dados MIDIMIDI