发布网友 发布时间:2022-05-21 08:56
共1个回答
热心网友 时间:2023-10-21 12:51
Microsoft DirectX 8.0 Audio 为播放集成的音乐和声音效果提供了新的体系结构。尽管仍然使用名称 Microsoft DirectSound 和 Microsoft DirectMusic,但在它们之间已经没有明显的区别。希望将来 DirectMusic API 能够成为创建交互式声音效果的首选 API。
DirectX 8.0 Audio 的部分新特性包括:
.wav 文件和基于消息的声音集成在一个播放机制中音频通道模型更加灵活、强大,其中包括对段落状态进行个别控制DLS2 合成,包括特殊效果音频脚本编写容器对象,用于在单个文件中保存 DirectMusic Procer 工程的所有组件对演奏、段落和声道的更强大的控制新的音频体系结构将 DirectMusic 合成器作为主要的 DirectX 8.0 Audio 声音生成器。这一高度优化的可下载声音级别 2 (DLS2) 合成器可以创建所有的声音,对它们进行混音,并将结果发送到 DirectSound 缓存,以便进行进一步的处理。DirectMusic 合成器也可以在输出之前将多个独立的声音进行混音。这样,多个独立的声音可以通过同一种音频效果进行处理,并分配到三维空间中的同一个位置。它们只使用一个 DirectSound3D 缓存,将 CPU 的使用和对三维硬件的要求降至最低
.wav 文件和资源现在可以通过 DirectMusic 加载器加载,并通过 DirectMusic 演奏器播放。应用程序不再需要分析 .wav 文件,并将其复制或流入 DirectSound 缓存。.wav 文件播放的定时基于 DirectMusic 主时钟,.wav 文件可以在音乐事件发生的同时播放,并可以象其他段落一样通过工具处理。DirectSound API 仍然会得到支持,您仍然可以通过 DirectSound 缓存直接播放 .wav 文件。DirectSound 仍将是用于 .wav 文件捕获和全双工的 API。
在以前版本的 DirectMusic 中,演奏通道被映射到端口,同时每个端口将其输出发送到一个 DirectSound 缓存。在新的模型下,段落中的声道被映射到音频通道,控制数据从演奏器流向最终输出。合成器的输出可以发送到多个播放缓存,而每个播放缓存有自己的三维位置和效果。音频通道由应用程序动态创建,或者设计在段落中。段落的每个播放实例都有自己的音频通道,因此可以单独修改每个段落状态的音量、音质和音调等参数。
DirectMusic 合成器现在基于 DLS2 标准,能够提供更高质量的声音合成。DLS2 合成器的新特性包括六级封装、语音分层、释放波形和额外的低频振荡器 (LFO)。每个语音都有一个可选的低通谐振过滤器。作为新的音频体系结构的一部分,DLS2 合成器可用于简单的声音效果播放,包括:
任意循环点每个声音的过滤器混音自动流播放用于播放的 ACM 编解码集成效果处理总线轻松加载 .wav 文件通过使用脚本,作曲家和音效设计师可以对演奏器进行更自如的控制。应用程序不需要处理播放的细节,而代之以调用脚本。例如,一个游戏事件可能触发一个脚本函数。通过修改函数,脚本作者可以轻松地修改声道对游戏事件的响应。
DirectMusic Procer 工程的所有组件都可以保留在一个文件中,查找和加载所有对象非常容易。容器也可以嵌在段落中,因此播放一个段落所需要的所有内容都可以保存在这个段落中。
DirectX Audio 对演奏、段落和声道的控制更加强大。演奏通知事件现在有一个新的通知类型 DMUS_NOTIFICATION_MUSICALMOSTEND,它表示队列中的最后一个主段落即将结束。这样,应用程序就有机会来计划播放新的段落。
段落的新特性包括:作曲家可以在段落中设置点,指定从何处开始播放段落,从而维护段落与时间签名之间的关系。主段落可以包含联接其他段落的任意点。这些点不仅可以联接最近的小节、节拍或网格,还可以进行更多的控制。在当前主段落完成播放时,可以播放新的段落联接标志 DMUS_SEGF_SEGMENTEND 指定的段落。新的 DMUS_SEG_REPEAT_INFINITE 标志使得一个段落可以播放无限多次。
对于声道,新的配置和播放标记使得每次播放或循环播放某个段落时,都可以对声道进行改写。例如,可以配置和弦声道,使得每次播放该段落时,都建立新的和声进行。应用程序可以单独设置各个声道的配置,禁用播放和参数控制。声道可以配置为根据时钟时间而不是音乐时间进行操作。通过配置自控段落中的声道,可以用它来替代主段落或控制中的参数声道。最后,包含歌词声道的段落可以将时间戳记文字发送到演奏器。
限于篇幅,其他的新音频特性在这里不再赘述。如果您正在深入研究音频,研究 DirectX 8 的音频特性可能要花费您的大量时间。