rasbian 中的虚拟 midi 端口路由

rasbian 中的虚拟 midi 端口路由

我正在尝试在 rpi3 上创建具有一个通道输入和一个输出的虚拟 midi 端口。

我首先使用创建虚拟端口

$ modprobe snd-virmidi snd_index=1

我可以看到它是使用创建的

$ aconnect -lio
client 0: 'System' [type=kernel]
0 'Timer           '
1 'Announce        '
client 14: 'Midi Through' [type=kernel]
0 'Midi Through Port-0'
client 20: 'Virtual Raw MIDI 1-0' [type=kernel]
0 'VirMIDI 1-0     '
client 21: 'Virtual Raw MIDI 1-1' [type=kernel]
0 'VirMIDI 1-1     '
client 22: 'Virtual Raw MIDI 1-2' [type=kernel]
0 'VirMIDI 1-2     '
client 23: 'Virtual Raw MIDI 1-3' [type=kernel]
0 'VirMIDI 1-3     '

然后尝试使用以下方式将 21 号路由路由到 20 号路由

$ aconnect 21:0 20:0

看起来很成功

$ aconnect -l
...
client 20: 'Virtual Raw MIDI 1-0' [type=kernel]
0 'VirMIDI 1-0     '
    Connected From: 21:0
client 21: 'Virtual Raw MIDI 1-1' [type=kernel]
0 'VirMIDI 1-1     '
    Connecting To: 20:0

然后当我尝试通过以下方式在一个终端窗口中转储 ch 20 的内容时

$ amidi -p hw:1,0 -d

并使用另一个终端发送原始 midi

$ amidi -p hw:1,1 -S 'A0'

无论我输入的字节序列或值有多长,我的第一个终端上都什么也没有得到。最后,我通过 ctrl+c 终止读取,它终止并显示以下消息

^C
0 bytes read

关于我做错了什么,有什么建议吗?或者是否可以通过虚拟 midi 实现?

答案1

snd-virmidi驱动程序是 ALSA 音序器端口和 OSS MIDI 端口之间的桥梁。

要获得环回端口(将收到的内容发回),请使用snd-seq-dummy驱动程序。它会自动加载;您已经拥有“Midi 直通端口”。

相关内容