# MIDI 1.0 / MIDI 2.0 UMP 通用 MIDI 报文·通道声部·SysEx 7/8 位线协议解码与字节计数器

粘贴十六进制流，解码 MIDI 1.0 状态字节流（运行状态、系统通用/实时消息、系统专属）或 MIDI 2.0 UMP 报文流：0x0 Utility、0x1 System、0x2 MIDI 1.0 通道声部、0x3 SysEx 7 位、0x4 MIDI 2.0 通道声部（16 位力度 + 7.9 音高属性）、0x5 SysEx 8 位/混合数据、0xD Flex Data、0xF UMP Stream；统计字节数/报文数/字数，校验保留字段与 SysEx 分包状态机，并可在 MIDI 1.0 与 UMP 之间翻译。

> 标准页面: https://elysiatools.com/zh/tools/midi-1-0-midi-2-0-ump-universal-midi-packet-cib-channel-voice-2-0-sysex-7-bit-8-bit-byte-counter

- **分类:** Media

- **关键词:** 通用 MIDI 报文, UMP, MIDI 2.0, MIDI 1.0 线协议, 系统专属, 通道声部, 7.9 音高, 报文解码

## 概述

UMP 报文按报文类型定长（0x0/0x1/0x2 各 1 个 32 位字，0x3/0x4 各 2 字，0x5/0xD/0xF 各 4 字，0x6-0xE 为 UMP 1.1 预留），报文类型位于首字节高 4 位。MIDI 2.0 通道声部（MT 0x4）状态表：0x0/0x1 已注册/可分配每音符控制器，0x2 RPN，0x3 NRPN，0x4/0x5 相对 RPN/NRPN，0x6 每音符弯音（32 位），0x8/0x9 音符关/开（16 位力度 + 属性类型 1 = 7.9 音高：7 位半音 + 9 位小数，512 步/半音），0xA 复音触后，0xB 控制器（32 位值），0xC 音色切换（bank 有效位 + 音色 + 库 MSB/LSB），0xD 通道触后，0xE 通道弯音（32 位，中心 0x80000000），0xF 每音符管理。SysEx7 恒 2 字（最多 6 字节数据），SysEx8 恒 4 字（1 字节流 ID + 最多 13 字节数据）。MIDI 1.0 解码遵循原始规范：运行状态仅适用于通道消息、System Real Time 可任意穿插且不取消运行状态、System Common/SysEx 取消运行状态。字段布局与 Linux 内核、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)

## 适用场景

- 在开发或调试 MIDI 2.0 固件与音频插件时，需要解析 UMP 32 位字结构与高分辨率通道参数。
- 分析包含运行状态（Running Status）或穿插实时时钟的传统 MIDI 1.0 原始十六进制字节流。
- 排查 SysEx 7 位或 8 位多包传输状态机中的分包拼接、保留字段错误及流 ID 异常。

## 工作原理

- 输入十六进制字节或 UMP 字数据，支持带前缀 0x、空格、逗号或换行符的格式。
- 选择输入协议模式（MIDI 2.0 UMP 流或 MIDI 1.0 字节流），并可勾选协议双向翻译与目标组号。
- 解析器根据报文类型（MT）和状态字节拆解字段，验证保留位、计算 7.9 音高与 16 位力度，并输出统计表与详细分包视图。

## 使用案例

- 音频固件开发：验证 USB MIDI 2.0 设备输出的 UMP 报文结构与保留位合规性。
- DAW 插件协议调试：检查 MPE 或 MIDI 2.0 相对/绝对控制器及高精度弯音值映射。
- 线协议抓包排查：还原带 Running Status 与穿插 Timing Clock 的 MIDI 1.0 串口数据流。

## 常见问题

### 什么是 UMP 报文类型（MT）？

UMP 首字节高 4 位表示报文类型，决定报文长度（1 到 4 个 32 位字）及承载的消息协议（如 Utility、MIDI 1.0/2.0 通道声部、SysEx 或 Flex Data）。

### MIDI 2.0 中的 7.9 音高属性如何表示？

7.9 音高使用 16 位字段，高 7 位表示基础半音数（0-127），低 9 位表示音高小数微调，精度为每半音 512 步。

### MIDI 1.0 运行状态遇到系统实时消息会中断吗？

不会。MIDI 规范中 System Real Time 消息可任意穿插且不破坏运行状态，仅 System Common 和 SysEx 会取消运行状态。

### SysEx 7 位与 SysEx 8 位有什么区别？

SysEx7 占用 2 个 32 位字并最多携带 6 字节 7 位数据；SysEx8 占用 4 个 32 位字，包含 1 字节流 ID 并支持最多 13 字节 8 位清洁数据。

### 如何将 MIDI 1.0 字节流转换为 MIDI 2.0 UMP？

选择 MIDI 1.0 协议并勾选翻译选项，指定目标 UMP 组号（0-15），工具会自动将状态与数据字节打包为对应的 UMP 字格式。

## 相关工具

- [DSD 转 PCM 转换器](https://elysiatools.com/zh/tools/dsd-to-pcm): 将 DSD (Direct Stream Digital) 音频文件转换为 PCM WAV 格式，可选位深和采样率
- [HDR AVIF 转 SDR PNG 色调映射器](https://elysiatools.com/zh/tools/hdr-avif-to-sdr-png): 解码 PQ 或 HLG AVIF，将 BT.2020 转换为 sRGB，并把高光映射到可查看的 SDR PNG。
- [A1Z26 字母数字工作台](https://elysiatools.com/zh/tools/a1z26-letter-number-workbench): 字母与数字互转(A=1, B=2 … Z=26),可配置分隔符和大小写;支持数字解码回字母,以及计算文本字母求和。
- [蓝调/拉格/玛卡姆微分音弯音导师（MIDI 2.0 与 MPE 编码 + Scala 导出）](https://elysiatools.com/zh/tools/blues-ragas-modes-microtonal-pitch-bend-midi-2-and-maqam-tuning-tutor): 把 11 种世界音乐律制映射到具体 MIDI 编码：7-limit 纯律蓝调（7/6 蓝三度、7/5 蓝三全音、7/4 蓝七度）、阿拉伯玛卡姆 24-EDO 四分之一音（Rast/Bayati/Hijaz/Saba）、印度 22 律全表、加美兰 slendro≈5-EDO 与 pelog 普查均值、31/53-EDO、A440 分音网格；输出每级最近音符 + RPN 微调、±2/24/48/96 半音档的 MPE 14 位弯音、MIDI 2.0 32 位弯音与 Note 属性 Pitch 7.9 编码，并生成 Scala .scl 文件。
- [X.509 证书解析器](https://elysiatools.com/zh/tools/certificate-decoder): 解析 X.509 SSL/TLS 证书（粘贴 PEM 或上传 .pem/.crt），查看主题、签发者、有效期（含过期状态）、公钥、签名算法、序列号、SAN、密钥用途和指纹。类似 openssl x509 -text 的可视化版。本地运行。
- [水电气账单行项解码器与隐藏费用探测器（CSR/CFL/MHC/HFA rider · 峰谷需量 · kWh/Btu/therm 换算）](https://elysiatools.com/zh/tools/csr-cfl-cfl-mhc-hfa-btu-ton-hours-utility-bill-line-item-validator-and-rgp-peak-explainer): 粘贴账单行项即可解码：客户费/需量费/峰谷电价/输配 rider/可再生能源基金/解耦 rider/容量标签等归类解释，kWh↔Btu↔therm↔Ccf↔m³↔冷吨时 EIA 标准换算，隐藏固定费与年度化测算，负荷率与削峰省钱建议。
- [分布式追踪解码与瀑布图可视化](https://elysiatools.com/zh/tools/distributed-trace-decoder-waterfall-visualizer): 解析 Jaeger、Zipkin 或 OpenTelemetry 的 trace JSON，并以瀑布图展示 span 时序与异常节点
- [扩展文本编码(Base65536 + netstring)](https://elysiatools.com/zh/tools/extended-text-base-codecs): 编码/解码较少见的文本编码:Base65536(二进制→高密度 Unicode)和 netstring(自定界成帧)。Base85 不重复建设(已覆盖)。

## 示例

- [QUIC 协议示例](https://elysiatools.com/zh/samples/quic-protocol-samples): 全面的 QUIC 协议示例，涵盖 HTTP/3 实现、UDP 可靠传输、连接迁移和性能优化
- [AMQP 消息协议](https://elysiatools.com/zh/samples/amqp-samples): AMQP（高级消息队列协议）示例，用于企业消息传递，包含RabbitMQ、队列、交换器和高级路由模式
- [MIDI 查看器样本](https://elysiatools.com/zh/samples/midi-viewer-samples): 用于浏览器内 MIDI 查看器的样本文件
- [MQTT 消息协议](https://elysiatools.com/zh/samples/mqtt-samples): MQTT（消息队列遥测传输）协议示例，用于物联网和实时消息传递，包含发布/订阅模式
