次の方法で共有


シンセサイザーのタイミング

シンセサイザーは 2 つの異なる時間システムで動作します。

  • 基準時間

  • サンプル時間

基準時間は、一連のメッセージが再生される絶対時間 (マスタークロック単位) です。 ユーザー モードの実装では、MIDI メッセージがシンセサイザーに供給されるときに、IDirectMusicSynth::PlayBuffer 方式に渡されます。 シンセサイザー、ウェーブ シンク、および残りの DirectMusic はすべて同じマスター クロックの下で動作する必要があります。マスター クロックは、IDirectMusicSynth::SetMasterClock 方式の実装によってシンセサイザーに接続され、IDirectMusicSynthSink::SetMasterClock によってウェーブ シンクに接続されます。

サンプル時間は、シンセサイザーの出力バッファーへのオフセットを測定するために使用されます。 このバッファは波形サンプルで満たされているため、サンプル時間はサンプリング レートに比例します。 たとえば、サンプリング レート 22.1 kHz では、1 秒あたり 22,100 サンプルまたは 44,200 バイト (16 ビット モノラル フォーマットの場合) に相当します。

波形サンプル バッファの再生はマスター クロックとは異なるタイミング クリスタルによって制御される可能性が高いため、基準時間とサンプル時間は乖離する傾向があります。 ウェーブ シンクは、フェーズ ロック ループを実装することにより、それらを同期させます。 このクロック同期については、クロック同期で説明します。

このセクションには次の内容も含まれます:

シンセサイザーの遅延

イベントのタイムスタンプ