Я пытаюсь создать виртуальный MIDI-порт на Rpi3 с одним входом канала и одним выходом.

Я сначала создаю виртуальный порт, используя

$ 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

затем, когда я пытаюсь сбросить содержимое канала 20 в одном окне терминала через

$ amidi -p hw:1,0 -d

и отправка сырых миди с помощью другого терминала

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

Я не получаю ничего на моем первом терминале, независимо от того, как долго я набираю последовательность байтов или значения. Наконец, я просто прекращаю чтение через Ctrl + C, и это заканчивается следующим сообщением

^C
0 bytes read

Любые предложения о том, что я делаю не так или это вообще возможно через виртуальный миди?

1 ответ1

0

Драйвер snd-virmidi является мостом между портами секвенсора ALSA и портами OSS MIDI.

Чтобы получить петлевые порты (которые отправляют обратно то, что они получают), используйте драйвер snd-seq-dummy . Он загружается автоматически; у вас уже есть "Midi Through Port".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .