// title: blipecho context // author: vividsnow // description: // sample mash-up from "Funky Klangs" and "Re: Dub Echo" // code: ( SynthDef(\klang_blip, { | out = 0, release = 1, freq1 = 1, freq2 = 5, freq3 = 8, freq_mul = 4, atk_dur = 0.01, amp = #[0.3,0.3,0.3], mod_freq = 25 | var sig = DynKlang.ar( `[([freq1, freq2, freq3].linexp(1,12,1,1140) * freq_mul), amp, nil ], EnvGen.kr(Env([5,1.05,0.95,0.01],[0.025,release*3/4,release/4])), 150 ) * LFGauss.kr(mod_freq.reciprocal, 0.3); Out.ar(out, (sig/8)!2 * Linen.kr(Impulse.kr(0), atk_dur, 1, release, doneAction:2)) }).add; SynthDef(\dubecho,{|in, out, length = 1, fb = 0.8, sep = 0.012| var input = In.ar(in, 2); var feedback = LocalIn.ar(2); var output = LeakDC.ar(feedback*fb + input); output = HPF.ar(output, 400); output = LPF.ar(output, 12000); output = output.tanh; LocalOut.ar(DelayC.ar(output, 1, LFNoise2.ar(12).range([length,length+sep],[length+sep,length])).reverse); ReplaceOut.ar(out, output); }).add; ) ( ~bus = Bus.audio(s, 2); ~echo = Synth(\dubecho, [\in, ~bus, \length, TempoClock.default.tempo*(3/8), \fb, 0.25, \sep, 0.0012], addAction: \addToTail); Pbind(*[ instrument: \klang_blip, dur: Pwrand([0.25,0.5,1,0.125], [16,16,1,1].normalizeSum, inf), release: Pkey(\dur), freq_mul: Pstutter(Pwrand([1,2,4],[5,3,2].normalizeSum,inf), Pxrand((1..6), inf)), freq1: Pstutter(Pxrand((2,4..16), inf), Prand((1..4), inf)), freq2: Pstutter(Pxrand((2,4..16), inf), Prand((4..8), inf)), freq3: Pstutter(Pxrand((2,4..16), inf), Prand((8..12), inf)), mod_freq: Pstutter(Pxrand((2,4..16), inf), Pbrown(7,30,3)), atk_dur: Pkey(\freq_mul).linlin(12,2,0.01,0.4), out: ~bus, amp: Pstutter(Pxrand((2,4..16),inf), Pfunc({[2,3,4].normalizeSum.scramble})) ]).play; )