我一直在玩动态音频库standingwave 3 .几乎人们注意到的第一件事是,如果尝试 developer's guide 中的代码示例,即这段代码:
// Create a chord of three simultaneous sine tones: A3, E4, A4.
var sequence:ListPerformance = new ListPerformance();
sequence.addSourceAt(0, new SineSource(new AudioDescriptor(), 0.1, 440));
sequence.addSourceAt(0, new SineSource(new AudioDescriptor(), 0.1, 660));
sequence.addSourceAt(0, new SineSource(new AudioDescriptor(), 0.2, 880));
// Play it back.
var source:IAudioSource = new AudioPerformer(sequence);
player.play(source);
然后一个人得到一个非常令人不快的声音和跟踪消息,上面写着“音频剪辑”。开发人员在 issue reports 之一中进行了解释。在 github 上,当您将它们混合在一起时需要减少样本的增益以避免这种情况,并且没有简单的方法可以动态地知道需要减少多少。
我的问题是,stagingwave2 似乎是如何自动处理这个问题的?例如,上面引用的代码在 SW2 中没有剪辑。同样考虑这个SW2 example demo - 如果您增加延音和保持(S/H slider )并按下其中一个音序按钮,多个音调将重叠而不会削波,即使 source没有任何明显的迹象表明正弦音的增益或音量发生了变化,它们只是混合在一起。
这里发生了什么 - SW2 是否有某种方法可以自动处理这个问题,或者是否有一些强大的方法可以动态地覆盖任意数量的声音而不会导致削波?谢谢!
最佳答案
由于这里似乎没有任何事件,我会注意到显然 SW2 只是以远低于满量程的方式返回正弦源,但事实证明,如果您组合足够多的源,您确实会得到削波。 SW3 以满量程返回源,因此在更少的源中削波变得明显。
关于actionscript-3 - StandingWave3 中的重叠声音和削波,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7143841/