有谁知道在Linux上双向获取MIDI SysEx数据的好方法吗? (在Yamaha PSR-E413 MIDI键盘和在Wine中运行的Yamaha MusicSoft Downloader的副本之间)
我想对用于将MIDI文件复制到键盘内部存储器或从键盘内部存储器复制MIDI的协议(protocol)进行反向工程,为此,我需要对两者之间的有效交换进行一些记录。
该实用程序确实可以在Wine(with a little nudging)中运行,但是当我可以使用FUSE文件系统时,我不想依靠Wine中一个便宜的,无法编写脚本的应用程序。
这是当前的状态:
首选
snd-seq-dummy
工作。 最佳答案
这个问题已经有一段时间没有得到解答了,虽然我没有确切的答案可以解决我的问题,但我也许会提出一些可以帮助您朝正确方向发展的东西(或者其他有类似问题的人)。
当我想嗅探用来设置和读取Akai LPK25 MIDI键盘上的预设的数据时,我遇到了一个类似的问题,尽管问题并不那么复杂。与您的设置类似,用于设置键盘的软件可以在Wine中运行,但是我也没有找到用于Linux的嗅探器设置的运气。
由于缺乏现有的解决方案,我在VirMidi端口上使用ALSA MIDI路由进行了滚动。我了解您为什么认为它们无用,因为如果没有其他软件,它们将无助于监听MIDI流量。
我的解决方案是用Java编写MIDI中继/桥接器,在其中我从virmidi端口读取输入,显示数据并将其进一步发送到键盘。键盘上的答案(如果有的话)也会被读取,显示并最终传输回virmidi端口。可以将Wine中的应用程序设置为使用virmidi端口进行通信,并且从理论上讲,此过程是完全透明的(潜在的延迟问题除外)。该应用程序是以通用方式编写的,并未针对我的问题进行硬编码。
我只处理大约20字节长的SysEx消息,所以我不确定该软件如何监听大量数据的传输。但是也许您可以按照示例修改它/编写自己的程序。
可用资源在这里:https://github.com/hiben/MIDISpy
(Java 1.6,包含ant构建文件,源在BSD许可下)