Compartilhar via


Tempo do sintetizador

O sintetizador funciona com dois sistemas diferentes de tempo:

  • Hora de referência

  • Tempo de exemplo

A hora de referência é a hora absoluta (em unidades de relógio mestre) em que uma sequência de mensagens deve ser reproduzida. Em implementações de modo de usuário, ela é passada para o método IDirectMusicSynth::PlayBuffer quando as mensagens MIDI são alimentadas ao sintetizador. O sintetizador, o coletor de ondas e o restante do DirectMusic devem funcionar no mesmo relógio mestre, que é anexado ao sintetizador pela implementação do método IDirectMusicSynth::SetMasterClock e ao coletor de ondas por IDirectMusicSynthSink::SetMasterClock.

O tempo de amostragem é usado para avaliar os deslocamentos no buffer de saída do sintetizador. Esse buffer é preenchido com amostras de onda, portanto, o tempo de amostragem é relativo à taxa de amostragem. Por exemplo, a uma taxa de amostragem de 22,1 kHz, cada segundo do tempo é equivalente a 22.100 amostras ou 44.200 bytes (no caso de um formato mono de 16 bits).

Como a reprodução do buffer de amostra de onda provavelmente será controlada por um cristal de sincronização diferente do relógio mestre, o tempo de referência e o tempo da amostra tendem a se separar. O dissipador de ondas os mantém sincronizados implementando um loop de bloqueio de fase. Essa sincronização de relógio é descrita na Sincronização de Relógio.

Esta seção também inclui:

Latência do sintetizador

Eventos deTime-Stamped