由于声音是一种波,根据物理实现,如果两个波之间不发生干涉或者衍射,其大小就是f= a+ b,因此有了下面的算法。
1.最简单的两路声音,a,b其输出为sum=a + b,如果sum > max, sum = max
如果sum < min, sum = min.
这种方法效果不是很好。
2.看到有人使用这种方法 ,对于n位采样,For n-bit sampling audio signal
If both A and B are negative Y = A + B - (A * B / (-(2 pow(n-1) -1)))
Else Y = A + B - (A * B / (2 pow(n-1))
相当于有一个相关值。
3.也有使用这种模型的 sum = k(a +b),k 开始为1,如果sum > MAX, 那么K 变小。比如有个系数表,t={0.1,0.2,0.3,..}那么选择一个ti,让ti * sum < MAX, t(i + 1) >=MAX。
注意:写代码时,要注意溢出。