# Декодер проводного протокола MIDI 1.0 / MIDI 2.0 UMP (Universal MIDI Packet, Channel Voice, SysEx 7/8 бит) и счётчик байтов

Вставьте шестнадцатеричный поток: разбор байтового потока MIDI 1.0 (running status, System Common/Real Time, SysEx) или потока UMP MIDI 2.0 — 0x0 Utility, 0x1 System, 0x2 Channel Voice MIDI 1.0, 0x3 SysEx 7 бит, 0x4 Channel Voice MIDI 2.0 (16-битная скорость + атрибут высоты 7.9), 0x5 SysEx 8 бит / Mixed Data, 0xD Flex Data, 0xF UMP Stream; подсчёт байтов/пакетов/слов, проверка зарезервированных полей и конечных автоматов SysEx, перевод между MIDI 1.0 и UMP.

> Каноническая страница: https://elysiatools.com/ru/tools/midi-1-0-midi-2-0-ump-universal-midi-packet-cib-channel-voice-2-0-sysex-7-bit-8-bit-byte-counter

- **Категория:** Media

- **Ключевые слова:** Universal MIDI Packet, UMP, MIDI 2.0, протокол MIDI 1.0, SysEx, Channel Voice, высота 7.9, декодер пакетов

## Обзор

Пакеты UMP имеют фиксированную длину по типу (0x0/0x1/0x2 — 1 слово 32 бита; 0x3/0x4 — 2 слова; 0x5/0xD/0xF — 4 слова; 0x6-0xE зарезервированы в UMP 1.1), тип — в старшем нибле первого байта. Таблица статусов Channel Voice MIDI 2.0 (MT 0x4): 0x0/0x1 зарегистрированный/назначаемый per-note контроллер, 0x2 RPN, 0x3 NRPN, 0x4/0x5 относительные RPN/NRPN, 0x6 per-note pitch bend (32 бита), 0x8/0x9 Note Off/On (16-битная скорость + тип атрибута 1 = высота 7.9: 7 бит полутона + 9 бит дробной части, 512 шагов на полутон), 0xA полифоническое давление, 0xB control change (32 бита), 0xC program change (бит банка + программа + MSB/LSB банка), 0xD давление канала, 0xE pitch bend канала (32 бита, центр 0x80000000), 0xF управление per-note. SysEx7 — всегда 2 слова (до 6 байтов), SysEx8 — всегда 4 слова (1 байт stream id + до 13 байтов). Разбор MIDI 1.0 следует оригинальной спецификации: running status только для канальных сообщений, System Real Time может вставляться без его отмены, System Common/SysEx отменяют. Раскладки сверены с Linux kernel, JUCE и cmidi2.

## Входные данные

- **Шестнадцатеричный поток (байты MIDI 1.0 или слова UMP)** (textarea): 40 90 3C 01 D2 00 0B 00 … (spaces, commas, 0x prefixes and newlines are all accepted)
- **Протокол** (select)
- **Преобразовать MIDI 1.0 → UMP** (checkbox)
- **Группа UMP для преобразованных пакетов (0-15)** (number)

## Когда использовать

- При отладке прошивок синтезаторов, плагинов и драйверов, отправляющих или принимающих UMP-пакеты.
- Для детального анализа шестнадцатеричных дампов потока MIDI 1.0 с использованием механизма running status и вставками Real Time.
- При необходимости проверить валидность многопакетных цепочек SysEx 7/8 бит или конвертировать сообщения MIDI 1.0 в формат UMP с указанием номера группы.

## Как это работает

- Введите шестнадцатеричную последовательность байтов MIDI 1.0 или 32-битных слов UMP в поле ввода.
- Выберите используемый протокол (MIDI 1.0 или MIDI 2.0 UMP) и при необходимости активируйте трансляцию потока с назначением номера группы UMP (0–15).
- Парсер извлекает типы сообщений, проверяет конечное состояние передачи данных, парсит параметры контроллеров и выводит структурированную таблицу полей со сводкой по байтам и пакетам.

## Сценарии использования

- Анализ дампов снифферов MIDI-интерфейсов для выявления ошибок в структуре сообщений Note On, Pitch Bend и RPN/NRPN.
- Верификация сборки многопакетных сообщений System Exclusive при разработке редакторов оборудования и протоколов передачи дампов памяти.
- Тестирование трансляции устаревшего байтового потока MIDI 1.0 в современный 32-битный формат Universal MIDI Packet.

## Частые вопросы

### В каких форматах можно вставлять шестнадцатеричные данные?

Поддерживаются строки с пробелами, запятыми, переносами строк и префиксами 0x.

### Как декодируются атрибуты высоты тона MIDI 2.0 (Pitch 7.9)?

Декодер извлекает 7 бит номера полутона и 9 бит дробной доли (512 шагов на полутон) с вычислением точного значения отклонения.

### Как обрабатывается running status в потоке MIDI 1.0?

Инструмент сохраняет текущий статус для канальных сообщений, не сбрасывает его при поступлении байтов System Real Time и корректно отменяет при встрече команд System Common и SysEx.

### В чём разница между SysEx7 и SysEx8 в стандарте UMP?

SysEx7 занимает 2 слова UMP (до 6 байт данных), а SysEx8 занимает 4 слова и включает идентификатор потока (Stream ID) вместе с 8-битными «чистыми» байтами (до 13 байт).

### Выполняется ли проверка зарезервированных полей UMP?

Да, инструмент проверяет зарезервированные биты и соответствие структуры спецификации UMP 1.1.

## Связанные инструменты

- [Конвертер DSD в PCM](https://elysiatools.com/ru/tools/dsd-to-pcm): Преобразование DSD (Direct Stream Digital) аудиофайлов в формат PCM WAV с выбором разрядности и частоты
- [Тональное преобразование HDR AVIF в SDR PNG](https://elysiatools.com/ru/tools/hdr-avif-to-sdr-png): Декодирует PQ или HLG AVIF, преобразует BT.2020 в sRGB и отображает света в SDR PNG.
- [Мастерская A1Z26 буква-число](https://elysiatools.com/ru/tools/a1z26-letter-number-workbench): Преобразование между буквами и числами (A=1…Z=26) с настройкой разделителя и регистра, декодирование чисел в буквы и сумма букв.
- [Тьютор микротональности блюз/рага/макам (кодирование MIDI 2.0 и MPE + экспорт Scala)](https://elysiatools.com/ru/tools/blues-ragas-modes-microtonal-pitch-bend-midi-2-and-maqam-tuning-tutor): Отображает 11 мировых строёв в конкретные кодировки MIDI: блюз в чистом строе 7-предела (терция 7/6, тритон 7/5, септима 7/4), арабские макамы в 24-EDO (Раст/Баяти/Хиджаз/Саба), полную таблицу 22 шрути, слендро ≈5-EDO и пелог гамелана, 31/53-EDO и гармоническую сетку A440; выдаёт ближайшую ноту + точную подстройку RPN, 14-битный питч-бенд MPE при ±2/24/48/96 полутонов, 32-битный бенд MIDI 2.0 и атрибут ноты Pitch 7.9, плюс файл Scala .scl.
- [Декодер сертификатов X.509](https://elysiatools.com/ru/tools/certificate-decoder): Разбирает SSL/TLS сертификат X.509 (вставить PEM или загрузить .pem/.crt) и показывает субъекта, эмитента, срок действия со статусом, открытый ключ, алгоритм подписи, серийный номер, SAN, использование ключа и отпечаток. Как openssl x509 -text, визуально. Локально.
- [Декодер счетов за коммунальные услуги и детектор скрытых платежей (райдеры CSR/CFL/MHC/HFA · пиковая нагрузка · пересчёт kWh/Btu/therm)](https://elysiatools.com/ru/tools/csr-cfl-cfl-mhc-hfa-btu-ton-hours-utility-bill-line-item-validator-and-rgp-peak-explainer): Вставьте строки счёта: классификация и пояснения для клиентского сбора, платы за мощность, тарифов по зонам, транспортных/распределительных райдеров, «зелёных» фондов, декаплинга, capacity tag; пересчёт kWh↔Btu↔therm↔Ccf↔м³↔тонно-часов по коэффициентам EIA; поиск скрытых фиксированных платежей и оценка экономии.
- [Декодер распределенных трассировок и waterfall](https://elysiatools.com/ru/tools/distributed-trace-decoder-waterfall-visualizer): Разбирает JSON Jaeger, Zipkin или OpenTelemetry и показывает spans, время и ошибки в waterfall-отчете
- [Расширенные текстовые кодеки (Base65536 + netstring)](https://elysiatools.com/ru/tools/extended-text-base-codecs): Кодируйте и декодируйте редкими кодеками: Base65536 (бинарное → плотный Unicode) и netstring (саморазграничивающее обрамление).

## Примеры

- [Примеры Протокола QUIC](https://elysiatools.com/ru/samples/quic-protocol-samples): Комплексные примеры протокола QUIC, включая реализацию HTTP/3, надежный UDP-транспорт, миграцию соединений и оптимизацию производительности
- [Протокол сообщений AMQP](https://elysiatools.com/ru/samples/amqp-samples): Примеры протокола AMQP (Advanced Message Queuing Protocol) для корпоративной передачи сообщений с RabbitMQ, очередями, обменниками и расширенными паттернами маршрутизации
- [Образцы MIDI](https://elysiatools.com/ru/samples/midi-viewer-samples): Образец MIDI-файла для браузерного просмотрщика
- [Протокол сообщений MQTT](https://elysiatools.com/ru/samples/mqtt-samples): Примеры протокола MQTT (Message Queuing Telemetry Transport) для IoT и обмена сообщениями в реальном времени с паттернами публикации/подписки
