gpt4 book ai didi

ios - 混合声波(iOS 上的 CoreAudio)

转载 作者:行者123 更新时间:2023-11-29 11:18:04 25 4
gpt4 key购买 nike

在我看来,CoreAudio 在混合到单个 channel 时会将声波添加到一起。我的程序将发出合成声音。我知道每种声音的振幅。当我一起玩它们时,我应该将它们加在一起并乘以合成波以保持在范围内吗?我可以这样做:

MaxAmplitude = max1 + max2 + max3 //Maximum amplitude of each sound wave
if MaxAmplitude > 1 then //Over range
Output = (wave1 + wave2 + wave3)/MaxAmplitude //Meet range
else
Output = (wave1 + wave2 + wave3) //Normal addition
end if

我可以这样做吗?我是否应该预先分析声波以找到实际的最大幅度(因为时间线上的最大点可能不匹配)并使用它?

我想要的是一种同时播放多个合成声音的方法,而不会在整个过程中极大地降低音量并且听起来无缝。如果我用多个合成乐器演奏一个和弦,我不想要求单个音符几乎没有声音。

谢谢。

最佳答案

在单个样本的基础上突然改变比例,这就是你的“if”语句所做的,听起来很糟糕,类似于剪裁。

您可以查看自适应 AGC(自动增益控制),它会更缓慢地改变比例因子,但在快速瞬变期间仍可能会削波或突然发生音量变化。

如果您将前瞻与 AGC 算法一起使用以防止突然的瞬变削波,那么您的延迟会变得更糟。

如果您确实使用了 AGC,那么孤立的音符听起来可能比在和弦中演奏时响亮得多,这可能无法正确代表音乐作品的意图(尽管这种类型的压缩在烦人的电视和广播中很常见广告)。

降低混音器输出音量,使音符永远不会剪辑或降低音量,除非成分指示将导致大量 channel 的音量大大降低的混音(这就是正确再现古典音乐的原因广播通常太安静,无法吸引足够多的观众来赚取足够的钱)。

这都是一个权衡。

关于ios - 混合声波(iOS 上的 CoreAudio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com