Команда aconnect -lio
всегда показывает эти записи:
client 0: 'System' [type=noyau]
0 'Timer '
1 'Announce '
client 14: 'Midi Through' [type=noyau]
0 'Midi Through Port-0'
Клиент «Midi Through» имеет очевидное значение, так как он является стандартным в мире MIDI, и его легко использовать. Порт «Таймер» клиента «Система» имеет довольно очевидное абстрактное значение, но, похоже, документации по нему нет. Порт «Announce» выглядит загадочно и неизвестно для стандартных MIDI-устройств (или это только для меня). Долгое время поиск в Интернете о портах «Таймер» и «Анонс» ничего не дал.
Вопросы: Есть ли несколько указателей, чтобы узнать больше о портах «Таймер» и «Анонс» клиента «Система»? Я имею в виду ответы на такие вопросы: какое сообщение можно получить / отправить с / на него и как запустить / остановить / настроить (особенно для «Таймера»).
Это, в основном, вопрос о платформе или системной документации, но поскольку он также связан с ALSA, я не уверен, лучше ли размещать его здесь или в StackOverflow. Пожалуйста, примите мои извинения, если мое предположение было неверным.
Это в порядке, я нашел документацию для него, это было в документации API ALSA (я просто пропустил его на первом взгляде):
проект ALSA - библиотека C referenceВ (alsa-project.org)
ядро секвенсера А имеет два предопределенных системных порта на системном клиенте SND_SEQ_CLIENT_SYSTEM: SND_SEQ_PORT_SYSTEM_TIMER и SND_SEQ_PORT_SYSTEM_ANNOUNCE. SND_SEQ_PORT_SYSTEM_TIMER является системным портом таймера, и SND_SEQ_PORT_SYSTEM_ANNOUNCE является системой, объявляют о порте. Для управления очередью от клиента клиент должен отправить, событие управления очереди любят, запускают, останавливают и продолжают очередь, темп изменения, и т.д. к системному порту таймера. Тогда система секвенсера обрабатывает очередь согласно полученному событию. Этот порт поддерживает подписку. Полученные события таймера широковещательно переданы всем подписанным клиентам.
[приблизительно 110]:
последний порт не получает сообщения, но поддерживает подписку. Когда каждый клиент или порт присоединяются, отсоединили или изменили, объявление отправляется подписчикам от этого порта.
Напр. от SND_SEQ_PORT_SYSTEM_TIMER
, можно получить SND_SEQ_EVENT_START
события и от SND_SEQ_PORT_SYSTEM_ANNOUNCE
, можно получить SND_SEQ_EVENT_PORT_SUBSCRIBED
события.
кажется, что я должен был отправить это на StackOverflow, а не на AskUbuntu. Если кто-либо с этой возможностью видит, что это сообщение, перемещает ее в StackOverflow (вопрос, и его ответ может все еще стоить другим).