简体中文
什么是 MIDI SysEx?
InputConfig 在 Mac App Store 免费提供。支持 macOS 14 或更高版本,无需账户,不追踪,开源。
SysEx 是 System Exclusive 的缩写,是 MIDI 里用来表达标准消息说不了的一切内容的消息。它以字节 F0 开头,指明它是给哪个厂商的,带着需要的任意多个数据字节,最后以 F7 结束。厂商用它来做音色转储、固件更新,以及没有 Control Change 编号的设置。不认识这个厂商的设备会忽略整条消息。
这个格式是 MIDI 标准的一部分。日常的 MIDI 工作大多碰不到它,最后一节会说明什么时候可以不管它。
读懂这条消息
| 部分 | 字节(十六进制) | 含义 |
|---|---|---|
| 开始 | F0 | System Exclusive 开始 |
| 厂商 ID | 一个字节,或以 00 开头的三个字节 | 哪个厂商的设备应该读取它 |
| 数据 | 任意多个字节,每个 00 到 7F | 厂商定义的任何内容 |
| 结束 | F7 | System Exclusive 结束 |
厂商 ID 和 F7 之间的一切,只有那个厂商说它是什么意思,它才是什么意思。MIDI 消息解码器能读取粘贴进去的字节,并报告一条 System Exclusive 消息有多长。
认识通用消息
有两个厂商 ID 不属于任何厂商。7E 标记与时序无关的通用消息,7F 标记通用实时消息。任何设备都可以回应它们。
| 消息 | 字节(十六进制) | 作用 |
|---|---|---|
| Identity Request | F0 7E 7F 06 01 F7 | 请每台设备报告它的厂商、型号和版本 |
| General MIDI On | F0 7E 7F 09 01 F7 | 让 General MIDI 乐器进入它的标准状态 |
| Master Volume | F0 7F 7F 04 01,两个数值字节,F7 | 设置整台设备的音量 |
Identity Request 是询问设备是什么的标准办法。
了解它用来做什么
- 音色转储。把合成器的音色存到电脑里,再发回去,这是 SysEx 管理工具的工作。
- 固件更新。很多设备把新固件当作一长串 SysEx 消息来接收。
- 深层设置。没有 Control Change 编号的参数,通过厂商的编辑器 App 来编辑。
- 采样和批量传输。设备需要通过 MIDI 搬运的任何大块数据。
SysEx 搬运数据,而其他消息用来演奏音乐。
在 Mac 上发送和接收它
- 管理工具或编辑器 App。厂商自己的编辑器,或者 SysEx 管理工具,把文件发送给设备,并记录设备发回的内容。
- 正确的端口。设备必须已连接,并且在 Audio MIDI Setup 的 MIDI Studio 里处于在线状态。
- 浏览器。网页需要单独的、更强的权限才能使用 SysEx,因为它可以改写设备。本站的 MIDI 工具不会请求这个权限,所以它们既不向设备发送 System Exclusive,也不从设备接收。
只给设备发送它自己的厂商为它发布的 SysEx。Mac 上的 Audio MIDI Setup 讲了 MIDI Studio 窗口。
日常控制就别管它
音符、旋钮、踏板和音色切换都有标准消息,映射工具用的就是这些。我做的免费 Mac App InputConfig 绑定音符、Control Change、弯音、触后、Program Change 和走带消息,除了触后,发送的也是同一批。System Exclusive 不在其中。如果一个控件有 CC 编号,就不需要 SysEx 去触及它。MIDI CC 列表显示哪些编号是标准的。
简短总结
- 形状。以 F0 开头,然后是厂商 ID,然后是数据,以 F7 结束。
- 含义。除了通用消息,由厂商决定。
- 用途。用于转储、固件,以及没有 CC 的设置。
SysEx 是 MIDI 里装厂商想发送的任何东西的信封。
常见问题
SysEx 是什么的缩写?
System Exclusive。这个名字的意思是消息专属于某一个厂商的系统:其他厂商的设备会忽略它。
SysEx 消息是什么格式?
它以 F0 开头,然后是一个字节或三个字节的厂商 ID,然后是任意多个 00 到 7F 的数据字节,最后以 F7 结束。
SysEx 文件是什么?
一个通常以 .syx 结尾的文件,里面有一条或多条 SysEx 消息,比如一组合成器音色或一次固件更新。
SysEx 用来做什么?
备份和恢复设备的音色,更新固件,以及编辑没有 Control Change 编号的设置。
SysEx 会损坏设备吗?
错误的数据可能覆盖音色,或者中断固件更新。只发送厂商为那个确切型号发布的文件,并且先备份。
SysEx 是在 MIDI 通道上发送的吗?
不是。它是没有通道的系统消息。有些厂商在数据里放一个设备编号,这样就能指定好几台中的某一台。
更多中文页面
详细指南(英文)
作者说明。Ryleigh Newman 开发了 InputConfig,因为双手活动不便,每天都用手柄操作自己的 Mac。本页译自英文。Mac 的语言设为简体中文时,App 的主要按钮和菜单显示为中文,本页使用这些名称,并在括号中附上英文名称。App 的其他部分和网站的其他页面都是英文。
本页的其他语言版本: English, العربية, Čeština, Dansk, Deutsch, Español, Suomi, Français, עברית, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Norsk, Nederlands, Polski, Português, Русский, Slovenčina, Svenska, ไทย, Türkçe, Українська, Tiếng Việt, 繁體中文
免费。macOS 14 或更高版本。无需账户,数据不会离开你的 Mac。 源代码在 GitHub 上.