musical instrument digital interface geber ramalho & osman gioia

48
M M usical usical I I nstrument nstrument D D igital igital I I nterface nterface Geber Ramalho & Osman Gioia

Upload: cecilia-novo

Post on 07-Apr-2016

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

MMusicalusicalIInstrumentnstrumentDDigitaligitalIInterfacenterface

Geber Ramalho & Osman Gioia

Page 2: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Geber Ramalho & Osman Gioia

2

RoteiroRoteiro

Introdução

Hardware

Protocolo (Tipos, funções e formato das mensagens MIDI)

Page 3: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 4: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 5: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Geber Ramalho & Osman Gioia

5

IntroduçãoIntrodução

Duas grandes sacadasÉ uma interface padrãoSepara o controlador do gerador de som

Page 6: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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, ...

Page 7: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Geber Ramalho & Osman Gioia

7

Introdução: conseqüências Introdução: conseqüências

Possibilita comunicação (bidirecional) entre equipamentos musicais e computadores

Page 8: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 9: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 10: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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.

Page 11: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Geber Ramalho & Osman Gioia

11

HardwareHardware

Page 12: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 13: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 14: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 15: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 16: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 17: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 18: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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...

Page 19: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Geber Ramalho & Osman Gioia

19

Protocolo (Mensagens MIDI)Protocolo (Mensagens MIDI)

Page 20: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 21: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Exemplo de Exemplo de Tabela de Tabela de Implementação Implementação MIDIMIDI

Page 22: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 23: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 24: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 25: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 26: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Geber Ramalho & Osman Gioia

26

Mensagens de CanalMensagens de Canal

Mensagens de Voz

Mensagens de Modo

Page 27: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 28: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 29: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 30: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 31: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 32: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 33: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 34: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 35: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 36: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 37: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Geber Ramalho & Osman Gioia

37

Usar Midi MonitorUsar Midi Monitor

Page 38: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 39: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 40: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 41: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 42: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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!

Page 43: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 44: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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!

Page 45: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Geber Ramalho & Osman Gioia

45

Mensagens do SistemaMensagens do Sistema

Mensagens Comuns

Mensagens Tempo Real

Mensagens Exclusivas

Page 46: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 47: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

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

Page 48: Musical Instrument Digital Interface Geber Ramalho & Osman Gioia

Geber Ramalho & Osman Gioia

48

Exemplo de Exemplo de Fluxo de Fluxo de Dados Dados MIDIMIDI