// title: Bye Fighter // author: 38nonprivate // description: // An attempt at a Star Wars sound effect! // code: ( // bye fighter { var whooshPitch, whooseVol, swish, swishPitch = 970, noise, output, timeScale = 1.5; var trump, trumpPitch = 400, chain, buf; var panning; whooshPitch = EnvGen.kr( Env( [0.8, 1.0, 0.9, 0.7, 0.5, 0.3, 0.24, 0.12, 0.0], [0.08, 0.2, 0.15, 0.11, 0.08, 0.09, 0.06, 0.18], 2 ), timeScale: 1.3 * timeScale ).lag(0.2); whooseVol = EnvGen.kr( Env( [0.0, 0.2, 0.7, 0.9, 1.0, 0.8, 0.6, 0.43, 0.22, 0.0], [0.4, 0.5, 0.2, 0.15, 0.17, 0.11, 0.1, 0.16, 0.28], 2 ), timeScale: 0.9 * timeScale ).lag(0.2, 1.5) * LFNoise1.kr(37.2, 0.2, 1).lag(0.2); noise = Mix(CombC.ar(WhiteNoise.ar(0.2), 0.1, [whooshPitch.exprange(0.16, 0.00011), whooshPitch.exprange(0.19, 0.00013)], 0.09)); noise = noise + BrownNoise.ar(0.1); swishPitch = swishPitch * LFNoise0.kr(365, 0.2, 1); swishPitch = swishPitch * whooshPitch.range(0.8, 1.3); swish = Mix.fill( 3, { |i| SinOsc.ar(swishPitch + (i * whooshPitch.exprange(45, 1)), rrand(0.0, 1.0), 0.4); } ); trumpPitch = trumpPitch * whooshPitch.range(0.92, 1.08); trump = Mix.fill(3, { |i| SinOscFB.ar(trumpPitch * LFNoise0.kr(28, 0.06, 1).lag(0.8) * (0.8 + (i * 0.05)), 1.2, 0.8) }) * 0.6; trump = RHPF.ar(trump, whooshPitch.range(120, 335), 0.2); chain = FFT(LocalBuf(2048), trump); chain = PV_BinShift(chain, WhiteNoise.kr.range(0.96, 1.01), whooshPitch.range(24, 28)); trump = IFFT(chain) * 0.2; panning = Line.kr(-0.7, 0.7, 3); output = noise + swish + trump; output = output * whooseVol; Pan2.ar(output, panning, 1.0); }.play; )