Minutage du synthétiseur
Le synthétiseur fonctionne avec deux systèmes de temps différents :
Heure de référence
Heure de l’exemple
L’heure de référence est l’heure absolue (en unités d’horloge master) à laquelle une séquence de messages doit être lue. Dans les implémentations en mode utilisateur, il est passé à la méthode IDirectMusicSynth ::P layBuffer lorsque les messages MIDI sont transmis au synthétiseur. Le synthétiseur, le récepteur d’ondes et le reste de DirectMusic doivent tous fonctionner sous la même horloge master, qui est attachée au synthétiseur par votre implémentation de la méthode IDirectMusicSynth ::SetMasterClock et au récepteur d’ondes par IDirectMusicSynthSink ::SetMasterClock.
L’exemple de temps est utilisé pour mesurer les décalages dans la mémoire tampon de sortie du synthétiseur. Cette mémoire tampon étant remplie d’échantillons d’ondes, la durée de l’échantillon est relative au taux d’échantillonnage. Par exemple, à un taux d’échantillonnage de 22,1 kHz, chaque seconde de temps équivaut à 22 100 échantillons ou 44 200 octets (dans le cas d’un format mono 16 bits).
Étant donné que la lecture de la mémoire tampon d’échantillon d’ondes est susceptible d’être contrôlée par un autre cristal de minutage que l’horloge master, l’heure de référence et l’heure de l’échantillon ont tendance à s’éloigner. Le récepteur d’ondes les maintient en phase en implémentant une boucle à verrouillage de phase. Cette synchronisation d’horloge est décrite dans Synchronisation d’horloge.
Cette section comprend également les éléments suivants :