Я использую Raspberry Pi, так что это что-то вроде Debian (Raspbian).
У меня работает синтезатор (Zynaddsubfx), и я хочу отправить ему миди-сообщения из кода, чтобы он воспроизводил музыку для меня. Я буду использовать ALSA для этого.
Мне удалось создать "излучающий порт" в моей программе, выполнив следующие действия:
snd_seq_create_simple_port(seq_handle, "My own sequencer",
SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ,
SND_SEQ_PORT_TYPE_APPLICATION)
теперь я вижу ZynSubAddFX в aconnect -ol
и свой собственный секвенсор в aconnect -il
. И я могу их подключить:
pi@cacharro:~/projects/tests$ aconnect 129:0 128:0
pi@cacharro:~/projects/tests$ Info, alsa midi port connected
для этого, как было предложено CL, я использовал open snd_seq_open, сохранил последовательность, а затем использовал snd_seq_create_simple_port.. НО:
Как отмечалось ранее, я просто хочу отправлять команды в zynsubaddfx при взаимодействии с пользователем, поэтому создание очередей, добавление темпа и т. д. - не лучший вариант.
Есть ли способ отправить простые миди-команды, такие как note on/note off, через мой открытый порт???