# Decodificador do protocolo MIDI 1.0 / MIDI 2.0 UMP (pacotes universais, Channel Voice, SysEx 7/8 bits) e contador de bytes

Cole um fluxo hexadecimal: decodifica um fluxo de bytes MIDI 1.0 (running status, System Common/Real Time, SysEx) ou um fluxo UMP MIDI 2.0 — 0x0 Utility, 0x1 System, 0x2 Channel Voice MIDI 1.0, 0x3 SysEx 7 bits, 0x4 Channel Voice MIDI 2.0 (velocidade 16 bits + atributo de tom 7.9), 0x5 SysEx 8 bits / Mixed Data, 0xD Flex Data, 0xF UMP Stream; conta bytes/pacotes/palavras, valida campos reservados e as máquinas de estados do SysEx e traduz entre MIDI 1.0 e UMP.

> Página canônica: https://elysiatools.com/pt/tools/midi-1-0-midi-2-0-ump-universal-midi-packet-cib-channel-voice-2-0-sysex-7-bit-8-bit-byte-counter

- **Categoria:** Media

- **Palavras-chave:** pacote MIDI universal, UMP, MIDI 2.0, protocolo MIDI 1.0, SysEx, Channel Voice, tom 7.9, decodificador

## Visão geral

Os pacotes UMP têm comprimento fixo por tipo (0x0/0x1/0x2: 1 palavra de 32 bits; 0x3/0x4: 2 palavras; 0x5/0xD/0xF: 4 palavras; 0x6-0xE reservados na UMP 1.1), com o tipo no nibble alto do primeiro byte. Tabela de status do Channel Voice MIDI 2.0 (MT 0x4): 0x0/0x1 controladores por nota registrados/atribuíveis, 0x2 RPN, 0x3 NRPN, 0x4/0x5 RPN/NRPN relativos, 0x6 pitch bend por nota (32 bits), 0x8/0x9 Note Off/On (velocidade 16 bits + tipo de atributo 1 = tom 7.9: 7 bits de semitom + 9 de fração, 512 passos por semitom), 0xA polypressure, 0xB control change (32 bits), 0xC program change (bit de banco + programa + MSB/LSB), 0xD channel pressure, 0xE pitch bend de canal (32 bits, centro 0x80000000), 0xF gerenciamento por nota. SysEx7: sempre 2 palavras (até 6 bytes); SysEx8: sempre 4 palavras (1 byte de stream id + até 13 bytes). A decodificação MIDI 1.0 segue a especificação original: running status apenas para mensagens de canal, System Real Time pode ser intercalado sem cancelá-lo, System Common/SysEx o cancelam. Layouts verificados de forma cruzada com o kernel Linux, JUCE e cmidi2.

## Entradas

- **Fluxo hexadecimal (bytes MIDI 1.0 ou palavras UMP)** (textarea): 40 90 3C 01 D2 00 0B 00 … (spaces, commas, 0x prefixes and newlines are all accepted)
- **Protocolo** (select)
- **Traduzir MIDI 1.0 → UMP** (checkbox)
- **Grupo UMP para pacotes traduzidos (0-15)** (number)

## Quando usar

- Depuração de drivers de áudio, plugins VST/AU ou firmwares que enviam mensagens MIDI 1.0 ou pacotes UMP MIDI 2.0.
- Inspeção e validação da estrutura de mensagens SysEx de 7 ou 8 bits divididas em múltiplos pacotes de dados.
- Tradução de sequências de bytes MIDI legadas para pacotes UMP de 32 bits vinculados a grupos específicos.

## Como funciona

- Cole a sequência de dados hexadecimais (com ou sem prefixos 0x, espaços ou quebras de linha) no campo de entrada principal.
- Selecione o protocolo correspondente (fluxo de bytes MIDI 1.0 ou fluxo de palavras UMP MIDI 2.0) e ative a opção de tradução se necessário.
- A ferramenta processa a máquina de estados, analisa cada mensagem (incluindo running status e tipos de pacotes UMP) e exibe o detalhamento estruturado dos campos e a contagem total de bytes.

## Casos de uso

- Engenheiros de áudio e desenvolvedores de software analisando logs de pacotes MIDI 2.0 capturados via USB ou rede.
- Desenvolvedores de sintetizadores de hardware validando comandos de troca de programa (Program Change) e controle de parâmetros de alta resolução.
- Músicos e técnicos verificando sequências de mensagens System Exclusive para configuração e envio de dumps de parâmetros.

## Perguntas frequentes

### Quais formatos de entrada hexadecimal são aceitos?

Você pode colar valores hexadecimais separados por espaços, vírgulas, quebras de linha ou com prefixos '0x'.

### Como a ferramenta lida com o running status do MIDI 1.0?

O decodificador preserva o running status em mensagens de canal e aceita comandos System Real Time intercalados sem cancelá-lo, seguindo a especificação original.

### O que representa o atributo de tom 7.9 no MIDI 2.0?

É uma representação de afinação de alta precisão que combina 7 bits para o semitom e 9 bits de fração, totalizando 512 passos por semitom.

### A ferramenta valida pacotes SysEx de 8 bits?

Sim, valida pacotes UMP MT 0x5 de 4 palavras (128 bits), verificando o identificador de stream (Stream ID) e até 13 bytes de dados por pacote.

### Posso converter mensagens MIDI 1.0 para um grupo UMP específico?

Sim, ao ativar a opção de tradução, você pode configurar o número do grupo UMP de destino entre 0 e 15.

## Ferramentas relacionadas

- [Conversor DSD para PCM](https://elysiatools.com/pt/tools/dsd-to-pcm): Converte arquivos de áudio DSD (Direct Stream Digital) para formato PCM WAV com profundidade e taxa de amostragem selecionáveis
- [Mapeador HDR AVIF para PNG SDR](https://elysiatools.com/pt/tools/hdr-avif-to-sdr-png): Decodifica AVIF PQ ou HLG, converte BT.2020 para sRGB e mapeia realces para PNG SDR.
- [Bancada A1Z26 letra-número](https://elysiatools.com/pt/tools/a1z26-letter-number-workbench): Converte entre letras e números (A=1…Z=26) com separador e caixa configuráveis, decodifica números em letras e soma letras.
- [Tutor microtonal blues/raga/maqam (codificação MIDI 2.0 e MPE + exportação Scala)](https://elysiatools.com/pt/tools/blues-ragas-modes-microtonal-pitch-bend-midi-2-and-maqam-tuning-tutor): Mapeia 11 afinações mundiais para codificações MIDI concretas: blues em entonação justa limite 7 (terça 7/6, trítono 7/5, sétima 7/4), maqamat árabes em 24-EDO (Rast/Bayati/Hijaz/Saba), a tabela completa dos 22 shrutis, slendro ≈5-EDO e pelog do gamelão, 31/53-EDO e a grade harmônica de A440; entrega a nota mais próxima + ajuste fino RPN, pitch bend MPE de 14 bits em ±2/24/48/96 semitons, bend de 32 bits MIDI 2.0 e o atributo de nota Pitch 7.9, além de um arquivo Scala .scl.
- [Decodificador de certificados X.509](https://elysiatools.com/pt/tools/certificate-decoder): Analisa um certificado X.509 SSL/TLS (colar PEM ou enviar .pem/.crt) e inspeciona sujeito, emissor, período de validade com status de expiração, chave pública, algoritmo de assinatura, série, SAN, uso de chave e impressão digital. Como openssl x509 -text, visualizado. Local.
- [Decodificador de contas de energia e detector de taxas ocultas (riders CSR/CFL/MHC/HFA · demanda ponta/vale · conversão kWh/Btu/therm)](https://elysiatools.com/pt/tools/csr-cfl-cfl-mhc-hfa-btu-ton-hours-utility-bill-line-item-validator-and-rgp-peak-explainer): Cole as linhas da sua fatura: classifica e explica taxa de cliente, demanda, tarifas horárias, riders de transmissão/distribuição, fundos renováveis, desacoplamento, capacity tag; converte kWh↔Btu↔therm↔Ccf↔m³↔tonelada-hora com fatores EIA; detecta taxas fixas ocultas e projeta economias.
- [Decodificador de trace distribuido e waterfall](https://elysiatools.com/pt/tools/distributed-trace-decoder-waterfall-visualizer): Analisa JSON de Jaeger, Zipkin ou OpenTelemetry e mostra spans, duracao e erros em waterfall
- [Codecs de texto estendidos (Base65536 + netstring)](https://elysiatools.com/pt/tools/extended-text-base-codecs): Codifique e decodifique com codecs menos comuns: Base65536 (binário → Unicode denso) e netstring (enquadramento autodelimitante).

## Exemplos

- [Exemplos Protocolo QUIC](https://elysiatools.com/pt/samples/quic-protocol-samples): Exemplos completos do protocolo QUIC cobrindo implementação HTTP/3, transporte UDP confiável, migração de conexão e otimização de desempenho
- [Protocolo de Mensagens AMQP](https://elysiatools.com/pt/samples/amqp-samples): Exemplos do protocolo AMQP (Advanced Message Queuing Protocol) para mensageria corporativa com RabbitMQ, filas, exchanges e patterns de roteamento avançados
- [Amostras MIDI](https://elysiatools.com/pt/samples/midi-viewer-samples): Arquivo MIDI de amostra para o visualizador MIDI
- [Protocolo de Mensagens MQTT](https://elysiatools.com/pt/samples/mqtt-samples): Exemplos do protocolo MQTT (Message Queuing Telemetry Transport) para IoT e mensagens em tempo real com padrões publicar/assinar
