跳转到内容

SuperCollider/雨中声音设计

来自维基教科书,开放的书籍,为开放的世界

图 38.1: 流体球体撞击

[编辑 | 编辑源代码]

流体球体撞击坚硬表面的波形 - 我们将在这里将其创建为一个函数,以便我们可以重复使用它

~dropletonhard = {|dur=0.0005| Env.perc(dur/2, dur/2, 1, [-4, 4])};
~dropletonhard.value.plot

图 38.3: 获取高斯噪声分布。

[编辑 | 编辑源代码]

中心极限定理告诉我们,将独立噪声源加在一起最终会得到高斯噪声。十二个对于听觉目的来说已经足够了。

x = { {WhiteNoise.ar}.dup(12).mean.dup * 0.5}.play;
x.free;

在书中,Andy 说使用两个白噪声源并使用 Box-Muller 变换创建高斯形状更有效率。但是,这涉及一些相对繁重的数学运算(log、cos、sqrt),因此在给定系统上哪种方法更有效率并不明显。将上述方法的 CPU 使用率(以及音频结果)与以下方法进行比较

(
x = {
	var amount=MouseX.kr(0,1); // move mouse left/right to change amount
	var n1 = WhiteNoise.ar.abs * amount + (1-amount);
	var n2 = WhiteNoise.ar(2pi);
	var gaussian = sqrt(-2 * log(n1)) * cos(n2);
	gaussian.dup * 0.5
}.play;
)
x.free;


图 38.4: 雨滴对坚实地面的压力

[编辑 | 编辑源代码]
(
x = {
	var gaus, osc;
	gaus = {WhiteNoise.ar}.dup(12).sum;
	gaus = LPF.ar(BPF.ar(gaus, 50, 1/0.4), 500);
	
	osc = SinOsc.ar(gaus.linlin(-1, 1, 40, 80)) * gaus.squared * 10;
	osc = (osc - 0.35).max(0);

	2.do {
		osc = HPF.ar(osc, 500);
	};

	osc.dup
}.play
)
华夏公益教科书