Intervallo di sintetizzatore

Il sintetizzatore funziona con due sistemi diversi di tempo:

  • Tempo di riferimento

  • Ora di esempio

L'ora di riferimento è l'ora assoluta (nelle unità dell'orologio master) in cui deve essere riprodotta una sequenza di messaggi. Nelle implementazioni in modalità utente, viene passato al metodo IDirectMusicSynth::P layBuffer quando i messaggi MIDI vengono inseriti nel sintetizzatore. Il sintetizzatore, il sink d'onda e il resto di DirectMusic devono funzionare nello stesso orologio master, che è collegato al sintetizzatore dall'implementazione del metodo IDirectMusicSynth::SetMasterClock e al sink onda di IDirectMusicSynthSink::SetMasterClock.

L'ora di esempio viene usata per misurare gli offset nel buffer di output del sintetizzatore. Questo buffer viene riempito con campioni di onda, quindi il tempo di esempio è relativo alla frequenza di campionamento. Ad esempio, a una frequenza di campionamento di 22,1 kHz, ogni secondo di tempo equivale a 22.100 campioni o 44.200 byte (nel caso di un formato mono a 16 bit).

Poiché la riproduzione del buffer di esempio di onda è probabilmente controllata da un cristallo di intervallo diverso rispetto all'orologio master, l'ora di riferimento e l'ora di esempio tendono a derivare a parte. Il sink di onda li mantiene in fase di implementazione di un ciclo bloccato in fase. Questa sincronizzazione dell'orologio è descritta in Sincronizzazione orologio.

Questa sezione include anche:

Latenza del sintetizzatore

Eventi timestamp