Tudo bem, encontrei uma documentação para isso, estava na documentação da API da ALSA (acabei de errar na primeira olhada):
Projeto ALSA - a referência da biblioteca C (alsa-project.org)
Um núcleo do sequenciador tem duas portas do sistema pré-definidas no cliente do sistema SND_SEQ_CLIENT_SYSTEM: SND_SEQ_PORT_SYSTEM_TIMER e SND_SEQ_PORT_SYSTEM_ANNOUNCE. O SND_SEQ_PORT_SYSTEM_TIMER é a porta do temporizador do sistema e SND_SEQ_PORT_SYSTEM_ANNOUNCE é a porta de anúncio do sistema. Para controlar uma fila de um cliente, o cliente deve enviar um evento de controle de fila como iniciar, parar e continuar a fila, alterar o andamento, etc. para a porta do cronômetro do sistema. Então o sistema seqüenciador manipula a fila de acordo com o evento recebido. Esta porta suporta assinatura. Os eventos do temporizador recebidos são transmitidos para todos os clientes inscritos.
Sobre SND_SEQ_PORT_SYSTEM_ANNOUNCE
:
A última porta não recebe mensagens, mas suporta assinatura. Quando cada cliente ou porta é anexado, desanexado ou modificado, um anúncio é enviado aos assinantes dessa porta.
a partir de SND_SEQ_PORT_SYSTEM_TIMER
, pode-se receber SND_SEQ_EVENT_START
eventos e, a partir de SND_SEQ_PORT_SYSTEM_ANNOUNCE
, pode-se receber SND_SEQ_EVENT_PORT_SUBSCRIBED
eventos.
Parece que eu deveria ter postado isso no StackOverflow em vez de no AskUbuntu. Se alguém com essa capacidade vir este post, por favor, mova-o para o StackOverflow (a questão e sua resposta ainda podem valer para outros).