General MIDI Arquivos MIDI Standard

Slides:



Advertisements
Apresentações semelhantes
Representação da Informação como padrões de bits
Advertisements

Contadores e Registradores
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 11 Criado por Frederick H. Colclough, Colorado Technical University Compilação Separada.
Software Básico Silvio Fernandes
Transmissão de pacotes
Arquitetura de Computadores
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Operadores e Funções do LINGO
Introdução à Programação usando Processing Programação Gráfica 2D Animações Exercício Animações 14/10/09 Bruno C. de Paula 2º Semestre 2009 > PUCPR >
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
UNIVERSIDADE LUTERANA DO BRASIL COMUNIDADE EVANGÉLICA LUTERANA SÃO PAULO Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89 Campus.
Análise de Casos de Uso.
Vetores Representação e características Operações I Decomposição
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes
Administrando projetos com MS Project – Unidade IV
Arquitetura de Sistemas Operacionais
Vi 1 Editando com vi. vi 2 Por que vi? l Editar arquivos de configuração l Editar scripts de shell l Disponível em todas as distribuições l Necessita.
Chapter 4: Threads.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Algoritmos Distribuídos Professora: Lúcia Drummond
DIAGRAMA DE ATIVIDADES
Object Pascal e Delphi Programas e Units.
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Capítulo 7 Multimídia 7.1 Introdução à multimídia
Polinômios Prof. Marlon.
Estruturas de Controle
Organização da Memória Principal
Sincronização e Comunicação entre Processos
Autor: Fernando de Mesentier Silva
Curso de Jornalismo e Ciências da Comunicação
Programação Baseada em Objectos Desenho de TAD
Listas Encadeadas.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Lógica do Sequenciamento das Operações
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
JAVA: Conceitos Iniciais
UML - Unified Modeling Language
Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003.
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 12. Estados Objetivo: compreender a notação do diagrama de estados.
SISTEMAS LINEARES.
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Estruturas de Dados com Jogos
PROGRAMAÇÃO I UNIDADE 2.
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Financeiro – Despesas Fixas e Variáveis
Financeiro – Despesas Fixas e Variáveis
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Fundamentos de Programação
Linguagem e Ambiente Scratch
Campus de Caraguatatuba Aula 2: Somatório e Produtório
UML - Unified Modeling Language
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Gerenciamento de Arquivos
Jaime Vinícius de Araújo Cirilo- Engenharia de Produção
Planilha Eletrônica - Excel
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Musical Instrument Digital Interface
A música e a voz A música e a voz © 2001 Wilson de Pádua Paula Filho.
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Musical Instrument Digital Interface
Rede de Computadores MAT164 – Redes de Computadores I Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação.
Capítulo 14 Camada 6 A Camada de Apresentação. Sumário A Camada de Apresentação.
Prof. Ivair Teixeira Redes de Computadores.
General MIDI Arquivos MIDI Standard
Transcrição da apresentação:

General MIDI Arquivos MIDI Standard MIDI (continuação) General MIDI Arquivos MIDI Standard

General MIDI (GM) Problema Solução: General MIDI System, Level 1 Um 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

General MIDI Especificações para os sintetizadores Mí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

General MIDI Pré-alocação dos canais Percussão Canal 4: Melodia Canal 8: Harmonia Canal 10: Percussão (único realmente respeitado!!!) Percussão O diferentes sons de percussão são associados a números de nota MIDI específicos

Tabela de Percussão GM

Especificaçõ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ção GM é 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

Mapa de Timbres GM

Standard MIDI Files (SMF)

SMF: 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)

SMF: 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 dados Sempre MSB LSB (Big-Endian format) Lembrar que processadores Intel seguem padrão little-endian format!

SMF: Formato Formado por 2 tipos de bloco Cada bloco é formado por 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 por Um rótulo com 4 caracteres: “MThd” e “MTrk” Seu tamanho do bloco (descrito em 32 bits, MSB LSB) Bytes de dados

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

Formatos Formato 0: single track Formato 1: multitrack 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)

Bloco de Trilha Observações Igual independente do formato Os eventos são amazenados usando o running status

Timestamps 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

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)

Eventos MIDI Evento MIDI (propriamente dito) Meta Evento É 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

Meta Eventos Rótulo Tipo Tamanho Dados Meta Eventos sempre iniciam com o identificador 0xFF Tipo 14 tipos da tabela a seguir Tamanho Quantidade de bytes de dados armazenado em número com tamanho variável, se não existirem dados, Tamanho = 0 Dados Bytes de dados pertinentes ao tipo de evento em questão

Meta Eventos

Meta 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

Meta Eventos Nome do Instrumento (Instrument Name) Letra (Lyrics) 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

Meta Eventos Fim de Pista (End of Track) Andamento (Set Tempo) 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)

Meta 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

Meta Eventos SMPTE offset Armadura de Clave Especifica 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 Clave Formato (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

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