好的,这个问题可能有点突然,但我还是会尝试回答。
Pad是一种环境电子声音,有点像“嗡嗡”的声音。类似于这个。
如何在代码中生成这种声音?可以使用Processing、OpenFrameworks、C、Objective-C或C++。请记住,我编程时间不长。
如果这个回答能解决你的问题,我会非常印象深刻!
好的...开始吧!
好的,这个问题可能有点突然,但我还是会尝试回答。
Pad是一种环境电子声音,有点像“嗡嗡”的声音。类似于这个。
如何在代码中生成这种声音?可以使用Processing、OpenFrameworks、C、Objective-C或C++。请记住,我编程时间不长。
如果这个回答能解决你的问题,我会非常印象深刻!
好的...开始吧!
F = 440; // Hz
tone[t] = A * sin(t/F) + B * sin(t/(2*F)) + C * sin(t/(3*F)); // + etc, perhaps
也许,这里需要说明的是
A = 1.0;
B = 1.0/2.0;
C = 1.0/3.0;
或类似的东西。
对于一个 ADSR 滤波器(请查阅相关资料),您需要将生成的波形乘以一个放大系数,在您选择的“攻击”期间逐渐增加到 1,然后在“衰减”期间下降到您选择的某个数字(可能是 0.7),然后当您“释放”持续音符时线性下降到 0。
对于回声/混响,您可以将波形与一些延迟后的自身相加,例如:
D = 4410; // 10 msec at 44.1 kHz., as an example value
tone[t] += 0.5 * tone[t-D];
以下是关于PAD合成的说明:
http://zynaddsubfx.sourceforge.net/doc/PADsynth/PADsynth.htm
如果你在音频编程方面没有经验,我建议你看看Java Sound,因为它非常容易学习和使用。我知道你标记了C*,但我不知道是否有这样一个易于使用的API。
基本上创建声音就像grumdrig所说的那样,“只需”以一种你喜欢的方式组合不同的波形即可。;-)