XAudio2音量和音调控制

This topic describes XAudio2 volume and pitch control.

Volume
Control

Volume levels are expressed as floating-point amplitude multipliers between -XAUDIO2_MAX_VOLUME_LEVEL and XAUDIO2_MAX_VOLUME_LEVEL (-224 to 224), with a maximum
gain of 144.5 dB. A volume of 1.0 means there is no attenuation or gain; 0 means silence; and negative levels can be used to invert the audio‘s phase. Two inline functions are provided in XAudio2.h to convert between volume units: XAudio2DecibelsToAmplitudeRatio and
 XAudioAmplitudeRatioToDecibels.

音量电平表示为浮点振幅乘数因子,位于-XAUDIO2_MAX_VOLUME_LEVEL(-2的24次方)和XAUDIO2_MAX_VOLUME_LEVEL(2的24次方)之间,最大增益是144.5dB.音量为1.0表示没有衰减或者增益;0表示静音;负音量来表示反转音量的相位。

You can apply a volume level to the audio at several points as it flows through the XAudio2 graph:

音频在XAudio2数据流图中流动时你可以在几个地方施加音量电平:

  • All voice types apply an overall volume level to their input, which they control using the IXAudio2Voice::SetVolumemethod.
    In submix and mastering voices, the overall volume level is applied just before the voice‘s built-in filter and effect chain. In source voices, the overall volume level is applied after the voice‘s built-in filter and effect chain.
  • 所有类型的voice施加一个整体音量电平到输入,使用IXAudio2Voice::SetVolume方法来控制。在submix和mastering voices中,整体音量电平应用在voice的内置过滤器和效果链之前。在source voices中,整体音量电平应用在voice的内置过滤器和效果链之后。
  • Voices apply a per-channel volume level to their output, which they control using theIXAudio2Voice::SetChannelVolumes method.
    The per-channel volume level is applied just after the voice‘s final sample rate conversion, and before it is sent to other voices.
  • voices应用一个单通道音量电平到输出,使用IXAudio2Voice::SetChannelVolumes来控制。单通道音量电平应用在voice的最终采样率转换之后,并且在输送到其他voices之前。
  • Every connection between one voice and another has a table of levels used to send audio from each source channel to each target channel, which is controlled using the IXAudio2Voice::SetOutputMatrix method.
  • voice和其他voice之间的每个连接都有一张电平表,用来发送音频数据从一个源通道到每一个目的通道,使用IXAudio2Voice::SetOutputMatrix来控制。

All overall volumes and channel volumes default to 1.0 initially. All send-level matrices default to appropriate values that preserve signal power and channel positioning as accurately as possible. See the XAudio2
Default Channel Mapping
 overview for details.

所有整体音量和通道音量在初始化的时候默认为1.0。所有输送音量矩阵默认为适当的数值来尽可能准确地保持信号强度和通道定位。详细请参考XAudio2 Default Channel Mapping概述。

Note  XAudio2 automatically adjusts volume levels based on the user‘s speaker settings to maintain a consistent volume level across configurations. If the user‘s settings don‘t match their physical
configuration the volume will either be too loud or too soft compared to a system with accurate settings. For example, a system configured for 5.1 surround sound speakers that only has two speakers connected will sound too soft. XAudio2 is unable to detect
whether the user speaker settings correctly match their physical setup.

XAudio2基于用户的扬声器设置自动调节音量电平来保持一致的音量在整个配置中。如果用户的设置和物理配置不匹配,那么音量和系统准确配置比起来要么太响要么太柔和。例如,系统配置为5.1环绕立体声扬声器,但是只有两个扬声器连接着,就会听起来很柔和。XAudio2不能检测用户的扬声器设置是否可以正确的匹配他们的物理设置。

Pitch
Control

Pitches are expressed as input rate/output rate ratios between 1/1,024 and 1,024/1, inclusive. A ratio of 1/1,024 lowers pitch by 10 octaves, while a ratio of 1,024/1 raises it by 10 octaves. You can only use theIXAudio2SourceVoice::SetFrequencyRatio method
to apply pitch adjustments to source voices, and only if they were not created with the XAUDIO2_VOICE_NOPITCH flag. The default frequency ratio is 1/1: that is, no pitch change. Two inline functions are provided in XAudio2.h to convert between frequency ratios
and semitones:XAudio2FrequencyRatioToSemitones and XAudio2SemitonesToFrequencyRatio.

音调表示为输入率和输出率的比值,在1/1,024和1,024/1之间,包括两端(闭区间)。一个1/1,024的比例降低10个八度音节的音高,而一个1,024/1的比例提升了10个八度音节的音高。你只能用IXAudio2SourceVoice::SetFrequencyRatio方法来应用音调调节到source voices,并且只有当他们不是使用XAUDIO2_VOICE_NOPITCH标志来创建的才可以。默认的频率比是1/1,:表示的是,没有音调变化。在XAudio2.h头文件中提供了两个内联函数来进行频率比和半音程之间的相互转换:XAudio2FrequencyRatioToSemitones
和 XAudio2SemitonesToFrequencyRatio。

时间: 2024-10-06 14:19:45

XAudio2音量和音调控制的相关文章

iTween基础之Audio(音量和音调的变化)

一.基础介绍:二.基础属性 原文地址 : http://blog.csdn.net/dingkun520wy/article/details/50826033 一.基础介绍 AudioTo:改变声音的音量和音调到指定的数值. AudioFrom:将声音的音量和音调从给的数值变化到原始的数值; AudioUpdate:类似于AudioTo,在Update()方法或循环环境中调用.提供每帧改变属性值的环境.不依赖于EasrType Stab:播放AudioClip一次,可以不用手动加载AudioSo

XAudio2学习之调节音量

XAudio2音量调节分为全局和声道调节以及连接音量调节.所谓全局就是说设置了音量后会影响整个音频流的声音大小:声道调节就是说只调节某一个声道的音量大小:连接音量设置是说设置voice与其输出voice之间的声道映射音量.举个例子来说明: IXAudio2SourceVoice->IXAudio2SubmixVoice->IXAudio2MasteringVoice 由三个voice组成的音频图.IXAudio2SourceVoice为2声道,IXAudio2SubmixVoice和IXAud

1-控制App的音量和多媒体文件的播放(Managing Audio Playback)

良好的用户体验是可以被预测的.如果你的App需要播放多媒体,那么你的用户可以通过你的App利用硬件或软件的方式来控制他们的设备的音量,蓝牙耳机,头带耳机等对于他们来说是非常必要的. 同样的,在哪个位置合理恰当地提供播放.停止.暂停.跳过以及回放功能的按钮需要根据他们各自在你的App中对于audio stream的处理来决定. 控制App的音量和多媒体文件的播放主要有以下三个方面:     确认需要使用哪个Audio Stream       建立一个可预测的audio体验的第一步是理解你的App

在一个GameObject上进行多个AudioSource的控制

http://www.verydemo.com/demo_c161_i105215.html?qqdrsign=03f8c using UnityEngine; using System.Collections; public class SoundSwitch : MonoBehaviour { public AudioSource as1; public AudioSource as2; public AudioClip[] a1; // Use this for initializatio

简单的音量放大

花满楼原创 小白:音量设置?按几下音量按键就好啦! 花满楼:这种办法是全局的音量控制方式,现在是直接改音频数据,来做到音量的变化控制. 本文介绍直接更改pcm值,以达到能量控制. 大体的思路是这样的,先解码音频文件,得到pcm文件,再运算pcm文件,最后把pcm文件编码成aac. 重点讲解的部分是pcm文件的运算,解码与编码部分可以参考之前的文章来写代码完成,这里直接用ffmpeg的命令行来完成编解码. 先看整体代码,再做解释: #include <stdio.h> #include <

Linux ALSA声卡驱动之四:Control设备的创建

声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢! Control接口 Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等.对于Mixer(混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的. ALSA已经为AC97定义了完整的控制接口模型,如果你的Codec芯片只支持AC97接口,你

(转载)虚幻引擎3--基础知识

这是虚幻引擎3UDN的技术文档,共有六个章节.以下将分别把中文译本贴出来,方便懒人学习[偷笑]  一.虚幻引擎 3 基础知识 概述 -------------------------------------------------------------------- 有几个游戏性元素实际上是所有使用虚幻引擎3或虚幻开发工具包创建的项目所共有的.自定义这些元素可以创建出完全独特的.外观和行为符合期望的游戏.没有任何两个项目是相同的,尽管虚幻引擎提供了这些元素的默认实现,但是肯定需要对它们进行很大

Tickeys - Liunx 给键盘配上音效的软件

简介 Tickeys是一款很强大的键盘音效软件.Tickeys 自带了四种声音效果方案,有打字机.冒泡.机械键盘.剑气等.每天都听着键盘声音是不是很烦闷,现在有了这款神器你就可以瞬间帮助自己的键盘加上逼格特效. 这个软件之前发布了Windows和Mac版,Tickeys 是由 Nozama 所做的一个 Mac 平台的开源小项目 (GitHub),Windows 版由黄飞实现.我使用了下,觉得挺有意思的,因此用Python写了个Linux版的. Tickeys已经发布到PyPI上了,有PIP的可以

ios 视频播放器MPMoviePlayerController

这个东西和之前的音频播放差不多, 也是先需要导入系统框架MediaPlayer.framework 才能使用到MPMoviePlayerController 的文件中导入相应的头文件 初始化:这里就有些不一样了MPMoviePlayerController是可以通过远程url初始化的, 例如: MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]initWithContentURL:[NSURL url