Xaudio 声音强度和平方反比距离

Posted

技术标签:

【中文标题】Xaudio 声音强度和平方反比距离【英文标题】:Xaudio sound intensity and inverse square distance 【发布时间】:2021-10-30 07:21:56 【问题描述】:

我刚刚注意到,在使用 Xaudio 时,声音强度遵循以下公式:

volume=1/distance

但是根据https://sound.pressbooks.com/chapter/intensity-and-distance-april-2019-version/ 正确的应该是:

volume=1/(distance*distance)

有什么方法可以将默认公式更改为正确的公式?

我正在使用X3DAudioCalculate - https://docs.microsoft.com/en-us/windows/win32/api/x3daudio/nf-x3daudio-x3daudiocalculate

代码 - https://github.com/Esenthel/EsenthelEngine/blob/master/Engine/Source/Sound/Sound%20Buffer.cpp#L529

示例: 我在 (1,0,0) 位置播放声音,然后是 (2,0,0),然后是 (4,0,0)

监听器在 (0,0,0)

使用GoldWave程序录制系统音频,得到以下结果:

X3D​​AUDIO_DSP_SETTINGS.pMatrixCoefficients 是 full=1,然后是 1/2,然后是 1/4

但是预期值不应该是 1,然后是 1/4,然后是 1/16?

【问题讨论】:

目前任何寻求帮助的人都必须查找 xaudio,找出要使用的编程语言,编写一个基本程序来理解问题,编写另一个程序来演示解决方案等等搜索文档。如果您可以提供一个最小的示例,设置语言标签,链接到文档,您将避免其他人不得不做繁重的工作。请记住,SO 用户在所有方面本质上都是懒惰的。降低帮助你的障碍只会是有益的 更新了我的帖子 【参考方案1】:

得到https://www.gamedev.net/forums/topic/711052-xaudio-sound-intensity-and-inverse-square-distance/5443074/用户“Aressera”的回答

这是一种常见的混淆,源于两者之间的差异 声强和声压。声音强度是一种能量 确实像 1/(r*r) 一样下降的量。然而,我们不 听到声音强度/能量,我们听到压力,这是成比例的 为强度的平方根。因此,声压下降 1/r。 XAudio 确实是正确的。

【讨论】:

以上是关于Xaudio 声音强度和平方反比距离的主要内容,如果未能解决你的问题,请参考以下文章

引力为何与距离的平方成反比?平方反比有何特殊意义?

平方反比定律是啥?

剂量与点源距离的关系为

优化算法萤火虫算法matlab

XAudio2 是不是有最大声音数?

如何使用蓝牙信号强度计算两个安卓设备之间的距离?