我一直在尝试以下代码: alsarawmidiin.c
alsa rawmidi 声明您可以通过将输入端口命名为“virtual”来创建虚拟 rawmidi 端口
所以我编译了代码并使用以下命令启动它:
alsarawmidiin 虚拟
这有效,我可以使用 aconnect 连接其他 MIDI 端口。问题是操作系统显示的 MIDI 数据仅显示 MIDI 消息的第一个和最后一个字节。大多数 MIDI 消息都是三个字节,但使用虚拟驱动程序时仅显示两个字节。
直接连接到 rawmidi 设备(非虚拟设备)确实有效。但我想将多个 MIDI 设备连接到同一个 rawmidi 端口。这是 alsa rawmidi 库中的错误吗?
答案1
这是virtual
插件中的一个错误。处理小于 MIDI 消息的缓冲区的代码似乎从未经过测试。
这将在 alsa-lib 1.1.4 中修复;在该软件包到达您的分发版之前,您可以申请补丁手动,或通过使用更大的缓冲区来解决此问题。