XAudio2音频特效

An audio effect is an object that takes incoming audio data, and performs some operation on the data before passing it on. You can use an effect to perform a variety of tasks, including adding reverb to an audio stream and monitoring peak volume levels.

一个音频特效是这样一个对象,它获取输入的音频数据,在将数据继续传下去之前会在数据上做一些操作。一个音效可以用来执行各种不同的任务,包括向音频流添加混响以及监视音量的峰值。

Effect
Chains

Any XAudio2 voice can host a chain of audio effects. You can use an array of XAUDIO2_EFFECT_DESCRIPTOR structures
to specify effect chains. Each descriptor contains a pointer to an effect object provided by the client. These objects must implement the Audio Processing Object (APO) interfaces. See the XAPO
Overview
 for more information about the APO model.

任何XAudio2 voice都可以持有一个音频效果链。你可以使用XAUDIO2_EFFECT_DESCRIPTOR数组来指定效果链。每个描述因子都包含了由客户端提供的指向音效对象的指针。这些对象必须实现APO接口。参见XAPO
Overview
以获取关于APO模型的更多信息。

Effect chains can be modified by the client dynamically (while the XAudio2 engine is running), effects can be enabled or disabled individually, and effect parameters can be changed—all without any interruption of the audio. Whenever any aspect of the effect
graph changes, XAudio2 optimizes the graph again to avoid unnecessary processing. See IXAudio2Voice::SetEffectChain,IXAudio2Voice::EnableEffect,
and IXAudio2Voice::SetEffectParameters.

效果链可以动态地被客户端修改(当XAudio2引擎在运行的时候),特效可以独立地启用和禁用,并且特效参数可以改变--这一切都不会对音频有任何影响。无论什么时候,特效图的任何部分发生改变,XAudio2会再次优化特效图来避免不必要的处理。参考:IXAudio2Voice::SetEffectChain,IXAudio2Voice::EnableEffectIXAudio2Voice::SetEffectParameters.

After an effect is attached to an XAudio2 voice, XAudio2 takes control of the effect, and the client should not make any further calls to it. The simplest way to ensure this is to release all pointers to the effect.

在把特效附加到XAudio2 voice上,XAudio2会接管此特效,并且客户端不应该对它再做任何进一步的调用。保证这样的最简单的方式就是释放所有指向特效的指针。

The effects in a given XAudio2 voice‘s effect chain must consume and produce floating-point audio at that voice‘s processing sample rate. The only aspect of the audio format they can change is the channel count (for example, a reverb effect can convert mono
data to 5.1). The client can use the XAUDIO2_EFFECT_DESCRIPTOR.OutputChannels field
to specify the number of channels that each effect should produce. The effect chain fails if any of the effects cannot fulfill these requirements, or if an effect produces a number of channels that the next effect cannot handle. Any IXAudio2Voice::EnableEffect or IXAudio2Voice::DisableEffect calls
that cause the effect chain to stop fulfilling these requirements will fail.

一个给定的XAUdio2 voice效果链的特效必须以那个voice的处理采样率消费和生产浮点音频数据。音频格式中它们可以改变的唯一部分就是声道数(例如,一个混响特效可以将单声道数据转为5.1通道数据)。客户端可以使用XAUDIO2_EFFECT_DESCRIPTOR.OutputChannels 部分来指定每个特效应该产生的音频通道数。如果任何特效不能完成这些需求的话那么效果链就会失效,或者一个特效产生的通道数下一个效果不能处理。任何 IXAudio2Voice::EnableEffect or IXAudio2Voice::DisableEffect会导致效果链停止完成这些需求的调用都会失败。

APO interfaces used in XAudio2 must be destructive. This means they always overwrite any data they find in their output buffers. Otherwise, the resulting audio might be incorrect because XAudio2 makes no guarantee that these buffers have been initialized
previously with silence.

使用在XAudio2的APO接口必须具有可销毁性。这表示它们会一直重写它们在自己的输出缓冲区发现的任何数据。否则,计算得到的音频可能会不正确,因为XAudio2没有保证这些缓冲区先前初始化时是没有声音的。

XAudio2
Built-in Effects

The following table lists the set of built-in audio effects provided by XAudio2 and their creation methods.

下面的表格列举了XAudio2提供的内置音频效果的集合以及他们的创建方法。

Effect Creation Method
Reverb XAudio2CreateReverb
Volume Meter XAudio2CreateVolumeMeter

For an example of creating and using an instance of an audio effect, see How
to: Create an Effect Chain
.

创建和使用音频效果的实例请参见How
to: Create an Effect Chain
.

Custom
Effects in XAudio2

The XAPO API
provides a framework for creating custom audio effects that you can use in XAudio2. For an example of creating a custom effect with XAPO, see How
to: Create an XAPO
.

XAPO
Effect Library (XAPOFX)

XAPOFX provides
an additional library of XAPOs and common mechanism for creating them. For an example of using XAPOFX with XAudio2, see How
to: Use XAPOFX in XAudio2
.

XAPOFX提供了一个XAPOs的额外的库,并且提供了创建它们的通用机制。使用XAPOFX和XAudio2的示例请参考How
to: Use XAPOFX in XAudio2

时间: 2024-11-04 03:54:31

XAudio2音频特效的相关文章

XAudio2学习之自定义音频特效

XAPO API允许创建跨平台音频处理对象(XAPO)以及微软跨平台音频创建工具(XACT)在Windows和Xbox 360上给XAudio2使用. XAPO API提供了IXAPO接口和CXAPOBase类,可以用来创建新的XAPO类型.IXAPO接口包含了创建一个新的XAPO所需要实现的所有方法.CXAPOBase类简单的继承实现了IXAPO接口,除了IXAPO::Process方法,因为对于每一个XAPO来说,这个方法是唯一的. XAPO实例以IUnknown接口的形式传递给XAudio

XAudio2学习之音频特效库XAPOFX

XAPOFX是一个继承自XAPO接口的音频效果集合,用于XAudio2.XAPOFX包含了几种效果以及一个通用的创建音效实例的机制. XAPOFX中包含的效果如下表: Effect Description Parameter Structure Parameter Constants Requirements FXECHO An echo effect. FXECHO_PARAMETERS FXECHO Constants Only supports FLOAT32 audio formats.

XAudio2学习之内置音效:混响

XAudio2提供了两种内置音频特效,这两种音频特效以及它们的创建方式如下: Effect Creation Method Reverb XAudio2CreateReverb Volume Meter XAudio2CreateVolumeMeter 如何使用内置音频特效呢?大致步骤如下: 1.创建XAPO对象: 2.创建XAPO对象描述结构体对象,用于对XAPO信息进行描述: 3.创建效果链结构体对象,用于持有描述结构体对象:包括两个成员变量:一个是持有的对象个数,一个是所有对象的数组: 4

音频系统(一)

一.概述 使游戏世界产生声音:(Audio Listenner & Audio Source组件) ● Listenner:是声音的接受着,每个场景只能有一个: ● Source:声音的产生源: ● Audio clip:声音资源(在Audio Source组件中使用): 1.Unity常用的音频格式类型 ● AIF:适于较短的音乐文件,可用作音效: ● WAV(PCM):无损压缩格式.音质好.文件大,适于较短的音乐文件,可用作音效: ● MP3:有损压缩格式.文件小,适于较长的音乐文件,可用于

htm插入音频视频

1.网络视频中缓存一部分既能播放的,称之为流媒体<br /> 网络流媒体插入<br />(1)找到视频位置,点击下方的分享按钮<br />(2)出现下拉面板,找到html代码,点击复制(3)找到想存放的位置,点击粘贴即可注释:使用<embed>按钮2.简便方法插入<br /> 点击dw上方的菜单栏里的插入-选择插入-选择媒体-选择文件类型-选择文件位置,同样使用<embed>标签<br />3.html 5里面<vi

DirectX 因素:了解 XAudio2 中的筛选器

Charles Petzold 下载代码示例 在著名的波形的万神殿,简单的正弦曲线至高无上. 只是看着它,您可以看到其精髓的顺利起伏性质 - - 当它达到其峰值. 几乎停止,它冠,然后逐步加快速度减慢,达到它的最大速度横渡水平轴开始另一个经济放缓. 这种视觉印象更深的数学分析所证实. 正弦曲线在任意点的瞬时速度是对曲线切线. 图的那些速度,并可以得到另一个正弦曲线,由四分之一周期从原始偏移. 不要再使用这第二条曲线,它和那是显示加速度,偏移量从原来的半个周期,如中所示的正弦曲线图 1. 图 1

IOS音频1:之采用四种方式播放音频文件(一)AudioToolbox AVFoundation OpenAL AUDIO QUEUE

本文转载至 http://blog.csdn.net/u014011807/article/details/40187737 在本卷你可以学到什么? 采用四种方法设计应用于各种场合的音频播放器: 基于AudioToolbox.framework框架.播放系统声音文件. 基于AVFoundation.framework框架.播放多种音频格式文件.具有高级音频播放器功能.如实时显示进度.功率,控制音量.播放时间等. 基于OPENAL框架.实现对本地音频文件播放,播放pcm音频文件,3D音频特效. 基

音频工作(采集)模式是什么?

在即时通讯应用中,根据应用场景的不同,需要对音频输入源进行选择,不同的应用场景对应不同的音频工作模式.AnyChat Platform Core SDK(需要V2.8.6以上版本)支持多种音频工作(采集)模式,包括: 1.发言模式(默认):自动选择麦克风为音频输入源设备,用户说话的声音被麦克风采集,启动音频特效处理(包括:回音消除.静音检测.噪音抑制.自动增溢),该模式通常应用于互动交流,用户发言讨论等场合[参数值:0]: 2.放歌模式:自动选择立体声混音输入源设备,本地计算机所播放的声音被采集

unity音频组件

unity 支持的四种音频格式: .AIFF  适用于较短的音乐文件可用作游戏打斗音效 .WAV  适用于较短的音乐文件可用作游戏打斗音效 .MP3  适用于较长的音乐文件可用作游戏背景音乐 .OGG  适用于较长的音乐文件可用作游戏背景音乐 audiosource 组件 德兴馆参数的含义: AudioClip :声音片段,还可以在代码中去动态的截取音乐文件. Mute : 是否静音 Bypass Effects: 是否打开音频特效 Play On Awake: 开机自动播放 Loop:循环播放