// title: Vuvuzelas // author: 38nonprivate // description: // Let's travel back in time to summer 2010: a new, evil sound comes to the stadiums of South Africa and the streets of football-loving cities. // code: ( { var vuvuMix, crowdNoise, crowdHi, crowdLo, crowdDust, crowdMix, noOfVuvus = 30; vuvuMix = Mix.fill(noOfVuvus, { |i| var freq, amp, thresh = 0.39, pan, vuvu; freq = LFNoise0.kr(17.2).lag(1.1).range(57.8.midicps, 58.2.midicps) * Rand(0.96, 1.04) * WhiteNoise.kr.range(0.99, 1.01); amp = LFNoise0.kr(6.94).lag(0.52).range(0.02, 0.4) * if(LFNoise0.kr(2.95) > thresh, 1, 0).lag(0.32); vuvu = LPF.ar(Saw.ar(freq) + LPF.ar(WhiteNoise.ar(0.12), Rand(700, 1500)), 2000, amp * 0.2); Pan2.ar(vuvu, -0.3.blend(0.3, (i / (noOfVuvus - 1)))); } ); crowdNoise = WhiteNoise.ar(LFNoise0.kr(0.8).lag(1.8).range(0.1, 0.2) * 0.125); crowdHi = RHPF.ar(crowdNoise, LFNoise0.kr(2.3).lag(1.17).range(1400, 1480), 0.1); crowdHi = crowdHi + RHPF.ar(crowdNoise, LFNoise0.kr(0.9).lag(0.17).range(900, 1000), 0.1); crowdHi = LPF.ar(crowdHi, 5000, 0.3); crowdLo = BrownNoise.ar(0.01); crowdDust = Splay.arFill(70, { BPF.ar(Dust2.ar(Rand(90, 170)), ExpRand(1600, 1700), Rand(0.3, 0.4)); }, 0.6) * 3; crowdMix = (crowdHi + crowdLo + crowdDust) * 0.45; Out.ar(0, vuvuMix + crowdMix); }.play; )