Designing Sound in SuperCollider/Bouncing ball

From Wikibooks, open books for an open world
Jump to: navigation, search

Fig 30.2: Bouncing ball[edit]

(
Ndef(\bouncer, {
 
var bounceperiod, bouncetrigs, amp, fm, mainosc;
 
bounceperiod = Line.kr(0.3, 0, 3, doneAction: 2);
 
bouncetrigs = Impulse.kr(bounceperiod.reciprocal.min(30));
 
amp = EnvGen.ar(Env.perc(0.001, 0.0), bouncetrigs);
amp = Amplitude.ar(amp, 0, bounceperiod) * Line.kr(1, 0.05, 3);
 
fm = 
	SinOsc.ar(120).range(0, Line.ar(1, 0, 3))
		+
	(amp * Line.ar(1, 0, 3).cubed * 130 + 80)
;
 
mainosc = SinOsc.ar(fm, pi/2);
 
amp * mainosc;
}).play
)