// title: Space-Jump with a trombone // author: helena barcelona // description: // ? // code: // Space-Jump with a trombone // (dirty Code (& Sound)) ( b = Buffer.read(s, "sounds/a11wlk01.wav"); ~phas = {|in, speed=1, wet=1| var chain; chain = in+FreqShift.ar(in, 0, SinOsc.kr(speed).range(0, pi)).tanh; chain = chain + FreqShift.ar(chain, 0, SinOsc.kr(speed*0.97).range(0, pi)).tanh; chain=(chain*0.5).tanh; XFade2.ar(in, chain, wet*2-1, 1);}; ~chrs = {|in, speed, wet=1| var chain = DelayC.ar(in, 0.5, Array.fill(12, {|i| LFNoise2.ar(speed).range(0.022, 0.024);}).sum); XFade2.ar(in, chain, wet*2-1, 1);}; ~delFdbk = {|in, dtime=0.5, wet=1, fdbk=0.8, hp=500, lp=5000, rot=0.2, amp=1| var local, ampTrack, son, env, feedOut; fdbk = Clip.kr(fdbk, 0.1, 1); local = LocalIn.ar(2); local = OnePole.ar(local, 0.4); local = OnePole.ar(local, -0.08); local = Rotate2.ar(local[0], local[1], rot); local = DelayN.ar(local, 10, dtime); local = LeakDC.ar(local); local = ((local + in) * (fdbk * 1.25)).softclip; LocalOut.ar(LPF.ar(HPF.ar(local, hp.max(10)), lp)); local = (local*0.5).tanh; local = Limiter.ar(local); feedOut = local*amp; XFade2.ar(in, feedOut, wet*2-1, 1)}; Ndef.clear; Ndef(\Space_Jump_with_a_trombone).play; Ndef(\Space_Jump_with_a_trombone).fadeTime = 30; Ndef(\Space_Jump_with_a_trombone, {|freq1=0.3, freq2=0.5, noiseSubAmp=1, noiseClothsAmp=1, noiseAirAmp=1, pressure=50, amp=1| var sig, source, gain, source2, sr, jit=0.25, lpfmin=4000; var noiseCtrl = LFNoise2.ar(freq1, 1); var noiseCtrl2 = LFNoise2.ar(freq2, 1); var ctrl = LFSaw.ar(0.05, 1); sr = SampleRate.ir; source = (BufRd.ar(1, b, noiseCtrl.range(0, 4*sr);, 1, 4)*30).tanh; source = source + (BufRd.ar(1, b, ctrl.range(0, 4*sr);, 1, 4)*30).tanh; source = Mix.new(PitchShift.ar(source, 0.02, [0.25, 0.5, 1.5, 0.05]*noiseCtrl.range(0.1, 2))); source = FreeVerb.ar(Pan2.ar(source*0.1, noiseCtrl.range(-1, 1), 1), 0.4, 0.1, 0.9); source2 = BufRd.ar(1, b, noiseCtrl2.range(0, 4*sr), 1, 4); source2 = FreeVerb.ar(Pan2.ar(source2, noiseCtrl2.range(-1, 1), 1), 0.8, 0.1, 0.9); source2 = source2 * LFGauss.ar(5, 0.1, 0, 1).range(0.1, 1); source = source * LFGauss.ar(2.3, 1.1, 0.5, 1); source = ((source*noiseCtrl2.range(0, 1))+((source2*0.5)*noiseCtrl.range(1, 0))); source = ~chrs.(~phas.(source, [0.2, 0.1], wet:LFNoise0.kr(2).range(0, 1)), [3.2, 1.3], wet:LFNoise0.kr(2).range(0, 1).lag(0.05)); source = (~delFdbk.(source, [0.5, 0.7], LFNoise0.kr(1).range(0, 0.25))) * LFNoise0.kr(25).range(jit, 1).lag(0.05); source = BPF.ar(LPF.ar(source, LFNoise1.kr(0.25).range(lpfmin, 8000)), LFNoise2.kr(1).range(1000, 2000)); source = source + ((~phas.(LPF.ar(GrayNoise.ar([1, 1]*0.005), 1600), [0.01, 0.012])*LFNoise2.kr(1).range(0.5, 1))*noiseAirAmp); source = source + (HPF.ar(Pan2.ar(LPF.ar(~phas.(WhiteNoise.ar(0.1), [1.12, 1]), 80*LFNoise0.kr(25).range(1, 8).lag(0.01))*LFNoise0.kr(25).range(0, 1).lag(0.025), LFNoise0.kr(20).range(-1.0, 1.0).lag(0.01)), 320)*0.3*noiseClothsAmp); source = FreeVerb.ar(source * LFNoise2.kr(0.05).range(0.2, 1)) + ((Klank.ar(`[{rrand(320, 1400)*0.3}.dup(100), nil, 1/10], (LPF.ar(PinkNoise.ar([0.007,0.007]), 40)*0.01)))*noiseSubAmp); source = BLowShelf.ar(source, 200, 1, 4); source = BPeakEQ.ar(source, 1100, 1, -20); source = BHiShelf.ar(source, 3500, 1, -6); source = BHiPass.ar(source, 80); Limiter.ar(LeakDC.ar(((source*pressure).tanh)*amp), -10.dbamp); }); ) /* ( Ndef(\Space_Jump_with_a_trombone).set( \noiseSubAmp, 0, \noiseClothsAmp, 0, \noiseAirAmp, 0, \freq1, 0.2, \freq2, 0.1 ); ) */