Что такое порты Timer и Announce системного MIDI-клиента ALSA и как его использовать?

Команда 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. Пожалуйста, примите мои извинения, если мое предположение было неверным.

2
задан 8 June 2015 в 01:24

1 ответ

Это в порядке, я нашел документацию для него, это было в документации 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 (вопрос, и его ответ может все еще стоить другим).

0
ответ дан 8 June 2015 в 01:24

Другие вопросы по тегам:

Похожие вопросы: