USB MIDI · 设备识别 · 鼓垫
USB MIDI 鼓垫识别不到?主机、供电与端口五道门禁
Pad 亮灯只证明有一部分电力到达,并不能证明 USB 主机或 MIDI 服务发现了设备、App 启用了正确路线,或预期的原始 MIDI 事件真正穿过链路。下面按五道门禁停在第一个缺失证据:先核对 host/device 角色,再检查数据与供电、设备发现、App 路线启用,最后看事件是否到达。
适用范围:本文用一台手机、平板或电脑测试一台外接 USB MIDI 鼓垫/控制器。支持的操作系统、USB 角色、线缆、转接器、Hub、驱动、固件、供电、transport 与逻辑端口,都必须以控制器与主机的准确型号文档为准。若 MIDI 1.0 接口显示有方向的 input/output 端口,本文按设备自身视角命名;若使用 MIDI 2.0/UMP 或双向端口,则应遵循其文档与工具里的路线标签。接口形状、亮屏或“class-compliant”标签,都不能单独证明端到端兼容。不要使用超出厂商规格的电源或自创转接方案。本文不声称 FingerDrum 支持外部 MIDI 输入。G1–G5 门禁、证据卡、替换梯、结果码与停止规则,均为 FingerDrum 编辑团队基于文末来源整理的原创框架。
写下控制器、主机、系统版本、端口、线缆、转接器、Hub、供电与 App,然后依次过五关:G1 DOC 确认有文档支持的 host–device 路径,G2 LINK 确认数据与供电链路,G3 ENUM 确认主机/MIDI 服务发现设备,G4 PORT 确认 App 启用控制器到 App 的路线,G5 EVENT 确认至少一个预期原始事件确实来自该实体端口。一个这样的事件就能证明识别通过;后面的八击检查衡量的是响应稳定性,不是 USB 是否存在。
“识别不到”其实藏着五种不同观察
不要从“Pad 坏了”开始。先记录你真正看见的最窄现象。USB 主从协商、MIDI 设备发现、App 路由、原始事件传输与最终出声属于不同层级;调好后一层,不能替前一层补证据。
| 观察状态 | 能够证明 | 先查哪一关 | 不能证明 |
|---|---|---|---|
| 没有亮灯、屏幕或文档注明的供电指示 | 还没有预期供电状态的正面证据 | 确认 G1 DOC 后查 G2 LINK | 控制器本体已经损坏 |
| 控制器开机,但主机列表始终没有它 | 有一部分电力到达控制器 | G1 DOC 与 G2 LINK | 线缆能传数据或主机已枚举 MIDI |
| 主机/MIDI 服务或兼容 App 的列表出现设备,但它没有被启用为来源 | 实体身份已被发现 | G4 PORT | App 已启用控制器到 App 的路线 |
| App 列出一个端口,原始监视器却无事件 | App 发现了某个 MIDI 实体或端口 | G4 PORT,再查控制器模式/预设 | 所选方向会发送 Pad 事件 |
| 原始 Note On 到达,但鼓音不响 | 受测 USB-MIDI 输入链路已经交付事件 | 音源映射与音频监听 | USB 识别失败 |
对有方向的 MIDI 1.0 端口,Android MIDI 文档特别指出:input/output 是从 MIDI 设备本身的角度命名,而不是从 App 角度。App 接收 Pad 击打时会打开控制器的 output 端口。MIDI 2.0/UMP 接口可以暴露双向端口,因此应遵循工具显示的路线名称与设备文档,不能把 MIDI 1.0 规则强套上去。
拔线之前,先冻结一张证据卡
给原始链路拍照或做简短记录,再抄下这些字段。这样,换线后成功就不会与未记录的 App、预设或供电变化混为一谈。
| 字段 | 准确记录 | 作用 |
|---|---|---|
| 控制器 | 型号、可见的固件版本、当前预设/模式、准确端口标识 | 同一产品可能按模式暴露不同 USB 功能或要求 |
| 主机 | 手机/平板/电脑型号与操作系统版本 | USB host 能力与 MIDI API 取决于硬件和软件 |
| 物理链路 | 按顺序写出每条线、转接器、Dock 或 Hub,并注明外接供电 | 供电与数据可能在不同节点失败 |
| 官方路径 | 该控制器连接该主机的说明书页;是否要求驱动或指定 App | 插头能插进去不等于官方兼容声明 |
| 发现状态 | 主机/MIDI 服务或兼容 App 的设备名、启用状态、端口名与路线方向 | “出现”与“启用”能显示不同停止层 |
| 事件探针 | 预期事件类型、实体来源端口、字段与顺序;再做可选的八击稳定性计数 | 一个可归因事件证明识别,计数衡量响应稳定性 |
五关期间只用一台控制器与一台主机。断开无关 MIDI 设备,关掉 Note Repeat 与琶音器,只保留一个能显示设备/端口、事件类型、通道、音符编号或其他消息字段及顺序的原始监视器。只有系统明确显示端口 busy/in use,或 App/设备文档要求时,才关闭对应客户端。不要因为某个搜索结果的说法,就安装非官方驱动或授予宽泛系统权限。
G1 DOC:证明文档真的描述了这条 host–device 路径
USB 需要互补角色。Android 官方概览区分两种模式:在 host mode 中,Android 设备充当 USB 主机并为总线供电;在 accessory mode 中,外部配件充当主机。该文档同时提醒,最终是否支持这些模式取决于设备硬件。USB-IF 的 MIDI 类规范则描述 USB MIDI device 暴露接口、再由 host 软件发现和选择。仅靠一根能插上的线,不能把角色不匹配的两个端点变成有效链路。
- 从文档确认两端角色:写清这条路径中谁是 USB host、谁是 peripheral/device。控制器接口写着“TO HOST”只说明它要连向主机,不能只凭这几个字推断所有电气与软件角色。
- 核对支持的平台路径:找到厂商针对准确手机、平板或电脑平台的连接说明,记录要求的转接器、供电连接、官方驱动与 App 限制。
- 把 class support 与万能兼容分开:USB-IF 定义 MIDI device class 与兼容机制,但主机硬件、系统、App、可用电力与设备实现仍共同参与。“Class compliant”只能算一条文档事实,不是任意线缆、主机和 App 都能工作的承诺。
Yamaha FGDP-30 指南提供了一个具体例子,但不是所有设备的通用接线图:它分别给出 Android 与 iOS 连接方法,Lightning 转接路径包含外接供电,并在 Windows 路径要求 Yamaha Steinberg USB Driver,而 Mac 路径另有直接说明。你的设备应查自己的对应页面。
G2 LINK:同时证明数据路径与规定供电条件
供电和数据必须分两栏记录。Apple 文档说明 USB-C iPad 可以连接 MIDI 设备,USB-A 设备可能需要转接器;这份连接说明并没有承诺每台控制器、每条线、每种供电条件或每个 App 都兼容。因此,Pad 亮灯仍只是供电观察,直到兼容设备列表真正发现它。
- 线缆身份:优先使用控制器随附线缆,或符合文档要求且已知能传数据的替代品。不要凭接口形状或能充电就给线缆下结论。
- 转接路径:把每个转接器与 Hub 对照官方图示,记录准确端口。某些 Dock 的充电、数据和上行端口功能不同。
- 供电条件:只使用说明书规定的电源、供电转接器、Hub 或控制器电池状态;记录击打 Pad 时是否重启、变暗或断连。
- 稳定重连:关闭测试 App,断开控制器,按文档顺序恢复供电,只重连一次,再打开监视器并等待系统正常发现。不要同时热插拔多段链路。
G2 的通过条件是:物理路径符合说明,并能稳定维持到尝试枚举;不是“LED 亮了”。若找不到准确手册路径,或文档明确不支持,应记录 DOC 并停止,而不是随机购买更多转接器。
G3 ENUM:证明主机或 MIDI 服务发现了实体设备
设备发现是物理 USB 链路与路线启用之间的边界。Android MIDI API 支持 USB transport,并提供设备枚举与插拔通知。Apple 则针对 Logic Pro for iPad 这个具体例子说明:已连接的实体 Core MIDI 设备会出现在 MIDI Input Devices and Ports 列表中,之后还要另行启用为来源。应使用平台提供的 MIDI 工具,或兼容 App 文档注明的设备列表;本文不假设每个操作系统都有全局 MIDI 浏览器。如果同一 App 同时承担 G3 与 G4,G3 只记录实体身份随插拔出现/消失,G4 再记录它是否被启用为输入来源。
- 保存断开状态:控制器未连接时,保存一份当前设备列表。
- 只连接一次:保持 G2 链路不变,再次保存列表;若出现新对象,抄下准确名称与 transport。
- 只移除一次:拔下控制器,确认同一个对象随之消失。始终留在列表里的名称可能是虚拟或记忆端口,不一定就是这台 Pad。
- 再重复一次:不改线缆、供电、预设或 App,再连接一次。进入下一关前,两次发现都应得到同一身份。
若实体设备从未出现在文档确认兼容的列表中,问题仍在 MIDI 映射之前。回到 G1/G2,只替换一个文档允许的链路。不要改 MIDI channel、note map、鼓插件或音频输出;这些设置无法让缺席的 USB 设备出现。
G4 PORT:证明一个 App 启用了控制器到 App 的路线
实体身份能稳定出现后,使用一个 MIDI 监视器。连接完成后刷新列表,把实体控制器选中或启用为来源,并逐字记录所有逻辑端口。App 可能把它写成“输入到 App”。若是有方向的 MIDI 1.0 端口,应核对控制器的发送/output 端口;若是 MIDI 2.0/UMP 或双向端口,则遵循 App 与设备标签。
| G4 检查 | 通过证据 | 失败时 | 暂时不要改 |
|---|---|---|---|
| App 中出现 | G3 看见的同一实体身份出现在当前 App 会话 | 核对 App MIDI 支持、权限、刷新与重开顺序 | Pad 音符映射或音频插件 |
| 路线启用 | 文档所述的控制器到 App 路线被启用为来源 | 记录全部逻辑端口,一次只测一条有文档的路线 | 一次全开所有端口 |
| 明确可用 | 目标路线可选择,且没有 busy/in-use 提示 | 只有出现 busy 提示时,才关闭提示所指客户端并重测本行 | 若 G3 稳定,不要先换 USB 线 |
| 控制器模式 | 已启用说明书要求的 USB-MIDI/Pad 预设 | 加载文档模式;只有说明要求时才重连 | 力度曲线、量化或音色 |
G5 EVENT:先捕获一个预期事件,再测响应稳定性
清空原始监视器。选择厂商文档明确说明、或已在已知可用主机上证明会在击打时发送 Note On 的 Pad 与预设,做一次有意接触。如果该模式按文档发送的是另一类 MIDI 消息,就在测试前预先定义准确事件类型。第一个可归因于 G4 实体来源的事件已经证明事件到达;后续探针只衡量稳定性。
- 识别门禁:一个预期事件来自 G4 所选的实体设备与路线;断开该控制器后,来源随之消失。此时就分配
EVENT。 - 单音稳定性基线:若厂商提供关闭 layer、chord output 与 Note Repeat 的单音预设,让 Pad A 四击、Pad B 四击,每次只做一个预期接触;记录起音数量、通道、音符编号与力度,不评价 timing 或动态。
- 复合模式基线:若所有受支持预设都会有意发送 layer、和弦、CC 集合或其他事件包,应在击打前预先定义事件集合与数量,不能强套单音 8/8 规则。
- 计数边界:8/8 支持稳定的单音基线;漏一个或多一个起音都不能推翻 USB 已被识别。保留
EVENT,把计数差异转去查 Pad 响应、预设、Note Repeat、echo 或映射。 - 重连回归:关闭监视器,通过完全相同的通过链路断开并重连;重新打开、选择同一路线,并再次捕获至少一个预期事件。只有需要评估响应稳定性时,才重复八击基线。
预期原始事件能在重连后再次到达,受测 USB-MIDI 路径就已经被识别并在交付控制器数据。若可选单音基线不是 8/8,使用20 击 Pad 响应审计,不要把它重命名成“识别不到”。若鼓音源仍然无声,转去做音符与通道映射审计;若有声但感觉慢,使用独立的四层监听延迟测试。
用 A0 → B → A1 替换梯,一次只动一个链路
某关失败时,把原始路线保存为 A0。只换一个有文档依据的组件或端点,命名为 B;只重跑到失败门禁,然后恢复原件为 A1。替代件应已证明能传数据,不能只因为它能给另一台设备充电。
| 替换项 | 保持不变 | 有用结果 | 结论边界 |
|---|---|---|---|
| 已知数据线 | 主机、控制器、转接器、供电、App 与预设 | B 连续两次枚举;A1 再次失败 | 只能定位这条线有路径差异,不能证明内部故障类型 |
| 文档支持的供电转接器/Hub | 线缆、两端设备、App 与预设 | B 能稳定通过 G3/G5;A1 重启或消失 | 只支持此设置中的供电/路径诊断 |
| 第二台文档支持的主机 | 控制器、线缆、预设与原始击打模式 | 控制器在第二台主机通过 G3/G5 | 不能证明第一台主机支持同样角色、驱动或供电预算 |
| 原主机上的已知兼容控制器 | 主机、App,以及文档允许保持的链路 | 主机和 App 能枚举并捕获另一实体 USB-MIDI 来源 | 不能让原控制器因此变得兼容 |
如果从 A0 到 B 的同时又升级固件、切换预设、授予权限、改 Hub 并换 App,结果就没有单一原因。固件与驱动应视为独立、官方文档支持的干预;存档更新前状态,并在变更后完整重跑 G1–G5。
保留五列账本,只标记第一道失败门禁
| 轮次 | G1 DOC | G2 LINK | G3 ENUM | G4 PORT | G5 EVENT | 结果 |
|---|---|---|---|---|---|---|
| A0 原始 | 有 Android 路径文档 | 文档路径稳定 | 实体身份连续两次缺席 | 未到达 | 未到达 | ENUM |
| B 已知数据线 | 相同 | 稳定 | 设备出现、消失、再出现 | 路线已启用 | 重连后有预期事件;基线 8/8 | PASS |
| A1 恢复原件 | 相同 | 文档路径稳定 | 实体身份再次连续两次缺席 | 未到达 | 未到达 | ENUM 在 A1 复现 |
| 系统看见,App 沉默 | 通过 | 通过 | 稳定 | 实体端口缺席 | 未到达 | PORT |
| 原始事件到达,无声 | 通过 | 通过 | 稳定 | 通过 | 重连后有预期事件;基线 7/8 | PASS;退出 USB,另查响应 |
| 代码 | 可说的有限结论 | 下一项受控动作 |
|---|---|---|
DOC | 尚未确认官方支持这组主机/控制器路线 | 购买或连接更多硬件前,先找到厂商支持的拓扑 |
LINK | 有文档的物理数据/供电前提无法建立,或在发现设备前不稳定 | 只替换一个文档允许的线缆、转接或供电节点,再回到 A1 |
ENUM | 实体设备没有在主机层稳定出现/消失 | 停留在 G1–G3,不改 MIDI 音符或乐器 |
PORT | 实体身份已出现,但 App 没启用已验证的控制器到 App 路线 | 解决 App 支持、权限、启用状态、明确 busy 提示或文档方向 |
EVENT | 所选实体路线至少交付一个预先定义的原始事件 | 退出 USB 识别;把响应计数、映射、音源或音频另行审计 |
PASS | 五关与重连后的一个预期事件全部一致 | 保存证据卡;把八击计数作为独立响应基线 |
USB MIDI 鼓垫识别常见问题
Pad 已经亮了,能证明 USB 线没问题吗?
不能。它只证明出现了当前供电状态。数据导体、host/device 角色、枚举、App 访问与 MIDI 事件仍是独立门禁。至少要有可重复的 G3 枚举,才能把它称为已工作的数据路径。
两头都是 USB-C,就一定兼容吗?
不一定。接口形状没有说明 USB 角色、受支持功能、数据能力、驱动要求、可用供电或 App 支持。必须查准确控制器与主机文档。
“Class compliant”是否代表任何手机都能用?
不是。主机支持相应 USB MIDI class 时,这类实现可以减少对厂商专用驱动的依赖,但主机硬件、操作系统、角色、供电、App 访问与设备实现仍然重要。厂商兼容声明只适用于它明确写出的平台。
为什么 App 能列出控制器,却收不到任何事件?
路线可能没有启用,也可能选错逻辑端口,控制器还可能处于另一 USB/预设模式。对有方向的 MIDI 1.0,应记录设备的发送/output 端口;对 UMP 或双向接口,应遵循文档路线标签。只有平台明确显示 busy/in use 时才关闭对应客户端,然后先捕获一个预期原始事件,不要先改 note map。
供电 Hub 一定能解决识别吗?
不能。只有在兼容且有文档支持的路径中,供电或链路稳定性恰好是失败变量时,它才有针对性。Hub 无法补上缺失的 host 角色、驱动、系统 MIDI 支持、App 端口或控制器模式。
原始 Note On 已到达,鼓音源不响,还是 USB 坏了吗?
受测 USB-MIDI 输入路线已经通过 G5。保留证据,往下检查 note/channel 映射、音源输入、轨道监听与音频输出。把这些层与 USB 枚举混在一起,只会造成无谓重连。
这篇文章是否表示 FingerDrum 支持外接 USB MIDI Pad?
不是。本文是通用 USB-MIDI 排错框架,不声称 FingerDrum App 接收、映射、录制或监听外部 MIDI 控制器。
停在第一道失败门禁,后面所有栏写“未到达”。路线没有官方依据就不要自创;有文档的物理路径没有出现在兼容设备列表,就一次只换线缆、转接器、供电条件或主机,再恢复 A1。实体身份出现但路线未启用,就冻结硬件,只查 App 支持与端口。重连后再次出现一个预先定义的事件,USB 识别任务就结束。八击结果单独保留为响应基线;计数异常或剩余无声分别转去查 Pad 响应、映射、音源或音频监听。
来源与访问日期
以下官方资料用于核对 USB MIDI device/host 术语、Android 的硬件相关 host 行为、Android MIDI 设备发现与有方向的 MIDI 1.0 端口术语、iPad 的 USB MIDI 连接与转接、Logic Pro for iPad 中分开的设备列表与来源启用步骤,以及一个真实鼓垫产品按平台区分的连接说明。它们没有规定 G1–G5 顺序、可选八击基线、A0/B/A1 替换、证据账本、结果码或停止规则;这些是 FingerDrum 的原创综合。
- USB-IF — USB Class Definition for MIDI Devices v2.0(访问:2026-10-14)
- Android Developers — USB 主机和配件概览(访问:2026-10-14)
- Android Developers — android.media.midi API 参考(访问:2026-10-14)
- Apple 支持 — 使用 iPad 的 USB-C 端口充电和连接(访问:2026-10-14)
- Apple Logic Pro for iPad 用户指南 — MIDI 输入/输出设置(访问:2026-10-14)
- Yamaha FGDP-30 用户指南 — 通过 USB TO HOST 连接外部设备(访问:2026-10-14)