我需要诊断一种奇怪的症状,即虚假的 MIDI 消息可能会发送到通过 USB 连接的特定 MIDI 硬件。我不知道允许监控 MIDI 的软件输出并且由于外部硬件是通过 USB MIDI 连接的,所以我无法将物理输出连接到任何其他地方。
是否有一种(可能不太明显的)方法可以嗅探出站 MIDI 流量?
如果需要“编程”的话,那就没问题了(Python 是我的朋友)。
答案1
经过多次网络搜索后,我也感到惊讶的是,虽然入站 MIDI 在 Linux 中很容易监控,但出站 MIDI 却不然。
你提到你的 MIDI 是通过 USB 传输的。我刚刚非常成功地使用了Wireshark USB 捕获对 MIDI 设备通信(制造商特定的 SYSEX 消息)进行逆向工程。您可以使用过滤器仅显示 MIDI 事件(或更具体的 MIDI 数据包类型)
警告:在 Wireshark 中开始捕获后再插入 USB 设备,因为 Wireshark 需要查看 USB“握手”(USB 描述符消息)才能解析消息,否则它只是 Wireshark 不知道其协议的不透明 USB 数据。
答案2
也许 midisnoop 有帮助:
sudo apt-get install midisnoop