geber ramalho & osman gioia 1 midi (continuação) general midi arquivos midi standard

25
1 eber Ramalho & Osman Gioia MIDI (continuação) MIDI (continuação) General MIDI Arquivos MIDI Standard

Upload: internet

Post on 19-Apr-2015

154 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

1Geber Ramalho & Osman Gioia

MIDI (continuação)MIDI (continuação)

General MIDI

Arquivos MIDI Standard

Page 2: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

2Geber Ramalho & Osman Gioia

General MIDI (GM)General MIDI (GM)

ProblemaUm instrumento (patch) é só um número....

Como garantir que uma seqüência (música) feita para um sintetizador vai soar com os instrumentos certos em outro?

Solução: General MIDI System, Level 1 Formato e a configuração mínimos que o instrumento

reprodutor deverá possuir (logotipo GM)

Padrão que assegura portabilidade às seqüências pois define mapeamento entre canais, programas (instrumentos) e sons

Page 3: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

3Geber Ramalho & Osman Gioia

General MIDIGeneral MIDI

Especificações para os sintetizadoresMínimo de 24 vozes de polifonia alocadas dinamicamente

Resposta multitimbral aos 16 canais MIDI

Todas as vozes deverão responder à dinâmica

O número de nota MIDI 60 deve corresponder à nota Do central do piano

Cada canal deve responder aos controles de:» modulação, volume, estereofonia, expressão, sustentação,

desativação de todos os controles e desativação de todas as notas

Page 4: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

4Geber Ramalho & Osman Gioia

General MIDIGeneral MIDI

Pré-alocação dos canaisCanal 4: Melodia

Canal 8: Harmonia

Canal 10: Percussão (único realmente respeitado!!!)

PercussãoO diferentes sons de percussão são associados a números

de nota MIDI específicos

Page 5: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

5Geber Ramalho & Osman Gioia

Tabela de Percussão GMTabela de Percussão GM

Nota MIDI Nota Instrumento Nota MIDI Nota Instrumento 35 B 1 Bumbo acústico 59 B 3 Prato condutor 2 36 C 2 Bumbo 1 60 C 4 Bongô agudo 37 C# 2 Baqueta +aro 61 C# 4 Bongô grave 38 D 2 Caixa acústica 62 D 4 Conga aguda abafada 39 D# 2 Palmas 63 D# 4 Conga aguda aberta 40 E 2 Caixa elétrica 64 E 4 Conga grave 41 F 2 Surdo grave 65 F 4 Tímbale agudo 42 F# 2 Contratempo fechado 66 F# 4 Tímbale grave 43 G 2 Surdo agudo 67 G 4 Agogô agudo 44 G#2 Contratempo fechado 68 G# 4 Agogô grave 45 A 2 Tom-tom grave 69 A 4 Cabaça 46 A# 2 Contratempo aberto 70 A# 4 Maracas 47 B 2 Tom-tom médio-grave 71 B 4 Apito curto 48 C 3 Tom-tom médio-agudo 72 C 5 Apito longo 49 C# 3 Prato batido 73 C# 5 Reco-reco curto 50 D 3 Tom-tom agudo 74 D 5 Reco-reco longo 51 D# 3 Prato condutor 75 D# 5 Claves 52 E 3 Prato chinês 76 E 5 Bloco de madeira agudo 53 F 3 Centro do prato 77 F 5 Bloco de madeira grave 54 F# 3 Pandeiro 78 F# 5 Cuíca fechada 55 G 3 Prato espalmado 79 G 5 Cuíca aberta 56 G# 3 Sino de vaca 80 G# 5 Triângulo fechado 57 A 3 Prato batido 2 81 A 5 Triângulo aberto 58 A# 3 Chicote

Page 6: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

6Geber Ramalho & Osman Gioia

Especificações GMEspecificações GM

Pré-alocação dos timbres (programas/instrumentos)Números de Programa devem chamar os timbres

especificados exceto no canal 10 (percussão)

AtençãoGM é só uma mapeamento de nomes...

Não há garantia que 2 equipamentos tocando “program 1” (acoustic piano) vão soar igualmente... Depende da qualidade deles

Page 7: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

7Geber Ramalho & Osman Gioia

Mapa de Timbres GMMapa de Timbres GM

Page 8: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

8Geber Ramalho & Osman Gioia

Standard MIDI Files (SMF)Standard MIDI Files (SMF)

Page 9: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

9Geber Ramalho & Osman Gioia

SMF: Histórico e DefiniçãoSMF: Histórico e Definição Motivação: incompatibilidade

A especificação MIDI lidava com controle musical, não com armazenamento

Anos depois da introdução do MIDI, cada aplicação usava formatos proprietários de arquivos de seqüências musicais

Em 1988: Standard MIDI Files (SMF)

Permitindo... Troca de dados seqüenciados entre diferentes programas

Especialização dos programas (editores, seqüenciadores, impressão, composição,....)

» mesmo os que usam formatos proprietários exportam e importam arquivos MIDI

Troca de arquivos à distância (ex. Web)

Page 10: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

10Geber Ramalho & Osman Gioia

SMF: Conceitos BásicosSMF: Conceitos Básicos

Trilhaé o fluxo contendo informação temporal para cada evento

(ex. notas) e meta-evento (ex. andamento, compasso) MIDI

Arquivos MIDI podem conter uma ou mais trilhas

Nomes de trilhas e outros textos também podem ser armazenados

Formatos dos dadosSempre MSB LSB (Big-Endian format)

» Lembrar que processadores Intel seguem padrão little-endian format!

Page 11: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

11Geber Ramalho & Osman Gioia

SMF: FormatoSMF: Formato Formado por 2 tipos de bloco

Cabeçalho: fornece as informações iniciais sobre o arquivo

Trilhas: Contém o fluxo seqüencial de eventos MIDI separados em até 16 canais

Sempre começa com um Bloco Cabeçalho e é seguido por um ou N Blocos de Trilha.

Cada bloco é formado porUm rótulo com 4 caracteres: “MThd” e “MTrk”

Seu tamanho do bloco (descrito em 32 bits, MSB LSB)

Bytes de dados

Rótulo Tamanho (32 bits) Bytes de Dados

MThd Quantidade de dados do Cabeçalho Dados do Cabeçalho

MTrk Quantidade de dados da Trilha Dados da Trilha

Page 12: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

12Geber Ramalho & Osman Gioia

Bloco de CabeçalhoBloco de Cabeçalho

Contém informações sobre Formato, Número de Trilhas e Divisão

Valores Tamanho

Rótulo MThd 4 caracteres (4 Bytes)

Tamanho (em bytes) 00 00 00 06 4 Bytes

Formato 00 00 (Formato 0)00 01 (Formato 1)00 02 (Formato 2)

2 Bytes

Número de trilhas 00 01 (p/ formato 0 e 2)00 01 a FF FF(p/ formato 1)

2 Bytes

Divisão (resolução) 0+15bits (ticks per beat)1+15 bits (frames per second)

2 Bytes

Page 13: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

13Geber Ramalho & Osman Gioia

FormatosFormatos

Formato 0: single track Uma trilha multicanal

Mapa de andamentos (tempo) na própria trilha

Mais básico dos formatos (e historicamente o primeiro)

Formato 1: multitrack Várias trilhas simultâneas com métrica de compasso e

andamento iguais

Primeira trilha contém o mapa de andamentos geral

Formato 2: multisequence Várias trilhas independentes, cada uma com a sua própria

métrica de compasso e andamento

Pouquíssimo usado (nem todo equipamento dá suporte)

Page 14: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

14Geber Ramalho & Osman Gioia

Bloco de TrilhaBloco de Trilha

Observações Igual independente do formato

Os eventos são amazenados usando o running status

Valores Tamanho

Rótulo MTrk 4 caracteres (4 Bytes)

Tamanho (em bytes) 00 00 00 00 - FF FF FF FF 4 Bytes

Eventos Eventos, Meta-eventos e SysEx

Page 15: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

15Geber Ramalho & Osman Gioia

TimestampsTimestamps

Cada mensagem MIDI em uma trilha está associada a um indexador temporal chamado de timestamp O início da seqüência corresponde ao tempo zero

Timestamp (delta de tempo) mensurado em Clock Ticks = subdivisão de uma semínima e a

menor subdivisão do tempo em MIDI

Normalmente, um múltiplo de 2 e 3 (ex. 96)

Indica ao programa quando executar os eventos (escalonamento)

Valor entre 8 a 32 bits representando o lapso de tempo entre dois eventos consecutivos na mesma trilha

» quanto tempo passou desde o último evento!» Não é uma medida absoluta, mas relativa!» exemploSMF.doc

Page 16: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

16Geber Ramalho & Osman Gioia

Parêntese sobre o timestamp...Parêntese sobre o timestamp...

A Posição temporal absoluta nos sequenciadores e editores adota formatos mais amigáveis

MBT: Measure:Beat:Tick Representação métrica (compasso:tempo:ticks decorridos dentro

do beat)

04:02:48 = 4o compasso, segundo tempo, metade do tempo caso tempo = 96 (semínima = 96 => 48 = colcheia)

HMSF: Hour:Minute:Second:Frame Representação tempo real (hora:minuto:segundo:frames

decorridos dentro de um segundo)

Usado em sincronização de equipamentos: SMPTE (Society of Motion Picture and Television Engineers) e MTC (MIDI time code)

Page 17: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

17Geber Ramalho & Osman Gioia

Eventos MIDIEventos MIDI

Evento MIDI (propriamente dito) É representado por qualquer mensagem com número de canal,

com status corrente podendo ser utilizado» Já estudamos (Note On/Off, Pitch Bend, Program Change,...)

Meta Evento Especificam vários tipos de informação úteis além das previstas

nas mensagens MIDI normais

Não é permitido o uso de status corrente

Não é exigido o reconhecimento de todos os Meta Eventos por parte dos programas aplicativos

Mensagem Exclusiva do Sistema (Sysex) Utilizada para especificar um fluxo de dados arbitrário e

proprietário de cada fabricante

Page 18: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

18Geber Ramalho & Osman Gioia

Rótulo Tipo Tamanho Dados

0xFF 0 - 127 Número de Bytes de Dados Bytes de Dados

Meta EventosMeta Eventos

RótuloMeta Eventos sempre iniciam com o identificador 0xFF

Tipo14 tipos da tabela a seguir

TamanhoQuantidade de bytes de dados armazenado em número

com tamanho variável, se não existirem dados, Tamanho = 0

DadosBytes de dados pertinentes ao tipo de evento em questão

Page 19: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

19Geber Ramalho & Osman Gioia

Meta EventosMeta Eventos

Tipo Dados Descrição0x00 2 bytes Número de Seqüencia0x01 Variável Evento Texto0x02 Variável Direitos Autorais

0x03 Variável Nome da Seqüência ou Trilha

0x04 Variável Nome do Instrumento0x05 Variável Letra

0x06 Variável Marcador de Seção0x07 Variável Ponto de Cue0x2F 0 bytes Fim de Trilha0x51 3 bytes Andamento0x54 Hora:Minuto:Segundo:Frames:Divisão SMPTE offset0x58 Numerador:Denominador:Resolução:

Fusas/CompassoCompasso

0x59 Tom:Modo Armadura de Clave0x7F Variável Específico do Seqüenciador

Page 20: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

20Geber Ramalho & Osman Gioia

Meta EventosMeta Eventos

Número de Seqüência (MIDI Channel Prefix) Evento opcional que deve ocorrer no tempo zero de uma pista

antes de qualquer evento MIDI

Evento Texto (Text Event) Qualquer tipo de texto descritivo podendo ocorrer em qualquer

momento ou trilha

Direitos Autorais (Copyright Notice) Deve conter o formato padrão: , “ano”, “autor”

Nome da Seqüência ou Trilha (Track Name) Quando estiver na primeira trilha especifica o nome da seqüência,

caso contrário especifica o nome da trilha

Nome único para cada trilha

Page 21: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

21Geber Ramalho & Osman Gioia

Meta EventosMeta Eventos

Nome do Instrumento (Instrument Name) Instrumento que executa a trilha

Letra (Lyrics)Letra da canção, geralmente secionada em sílabas

correspondendo aos tempos de início de cada evento nota

Marcador de Seção (Marker)Deverá estar na primeira trilha e serve como guia de ensaio

ou marcação de seção (refrão, ponte, parte A, etc.)

Ponto de Cue (Cue Point)Texto descritivo de evento temporal multimídia

Page 22: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

22Geber Ramalho & Osman Gioia

Meta EventosMeta Eventos

Fim de Pista (End of Track)Evento obrigatório, deve aparecer como último evento de

uma determinada trilha especificando o seu término.

Andamento (Set Tempo)Andamento inicial ou mudança de andamento normalmente

em microsegundos por semínima (beat)» Em um arquivo no formato 0, as mudanças de andamento

estarão entremeadas aos outros eventos» Em um arquivo no formato 1, o mapa de tempos deverá estar

na primeira trilha» Em um arquivo no formato 2 cada padrão independente

deverá conter pelo menos um andamento inicial

Se não houver andamento especificado é assumido o valor de 120 semínimas por minuto (bpm - beats per minute)

Page 23: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

23Geber Ramalho & Osman Gioia

Meta EventosMeta Eventos

Compasso (Time Signature)Formato (4 bytes)

» Numerador:Denominador:Resolução:Fusas/Compasso» Numerador especifica o numerador do compasso» Denominador especifica o denominador do compasso em

potência negativa de dois» Resolução especifica o número de pulsos MIDI por tempo» Fusas/Compasso especifica o número de fusas em um

compasso

Obedece às mesmas regras que o Andamento

Se não for especificado é assumido o compasso 4/4

Page 24: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

24Geber Ramalho & Osman Gioia

Meta EventosMeta Eventos

SMPTE offsetEspecifica o lapso de tempo a partir do qual a seqüência

deve iniciar a execução

Deverá estar no tempo zero da primeira trilha, e antes de qualquer evento MIDI

A hora deverá estar codificada no formato SMPTE

Armadura de ClaveFormato (2 Bytes)

» Tom:Modo» Tom especifica a tonalidade variando de -7 (sete bemóis - Dó

b Maior ou La b menor) a +7 (sete sustenidos - Dó # Maior ou La # menor) com o valor 0 igual a Dó Maior ou La menor

» Modo: 0 = Modo Maior e 1 = Modo menor

Page 25: Geber Ramalho & Osman Gioia 1 MIDI (continuação) General MIDI Arquivos MIDI Standard

25Geber Ramalho & Osman Gioia

Meta EventosMeta Eventos

Meta Evento Específico de Sequenciador Reservado a informações proprietárias de cada fabricante

O primeiro byte de dados deverá conter o número de identificação do mesmo.