DLS 下载支持

如果你要编写自己的合成器,则还必须提供对可下载声音 (DLS) 的支持,以便应用程序可以将 MIDI 注释消息转换为特定的检测声音。 具体而言,应实现 IDirectMusicSynth::Download 方法,以便它可以将检测波和发音数据下载到合成器。 此方法应接受原始数据(通常来自集合文件),并以呈现引擎可以使用的形式存储它。

当 DirectMusic 将 DLS 数据下载到驱动程序时,数据缓冲区的格式根据多个 DirectMusic 结构定义。 下载的数据以两个结构开头:

DMUS_DOWNLOADINFO
描述正在下载的信息的固定大小标头。

DMUS_OFFSETTABLE
标头后面的偏移量表,用于描述所下载数据中各种信息区块的偏移量。

偏移量表后面的是实际数据,该数据可以下任一结构开头:

DMUS_INSTRUMENT
描述 DLS 检测的结构。

DMUS_WAVEDATA
一个包含 PCM 格式的波次数据块的结构。

有关这些数据结构和用于下载检测和波次数据的数据格式的详细信息,请参阅 Microsoft Windows SDK 文档中的 DirectMusic 低级别 DLS 讨论。

DLS 数据格式在内核和用户模式下完全相同。

KSPROPSETID_Synth_Dls 属性集包含用于将 DLS 样本和检测下载到 DirectMusic 合成器的属性。 此属性集可用于下载 DLS 级别 1 和 DLS 级别 2 数据。 只有已下载数据的格式可在 DLS 级别 1 和 2 之间更改。