// posted this earlier this year at // http://sccode.org/1-5cM // and this is now a combination of above and variations at // http://sccode.org/1-5cR and http://sccode.org/1-5cQ // SynthDefs, buses, tempoclock: ( SynthDef("plucking", {arg out = 0, amp = 0.1, freq = 440, decay = 5, coef = 0.1; var env, snd; env = EnvGen.kr(Env.linen(0, decay, 0), doneAction: 2); snd = Pluck.ar( in: PinkNoise.ar(amp), trig: Impulse.kr(0), maxdelaytime: 0.1, delaytime: freq.reciprocal, decaytime: decay, coef: coef); snd = LeakDC.ar(snd).clip2; Out.ar(out, snd * env); }).add; SynthDef("reverbBus", { arg outBus = 0, inBus, wet = 0.5; var input, rev; input = In.ar(inBus,1); rev = JPverb.ar(input * wet, t60:3); Out.ar(outBus, input + rev); }).add; // create separate bus for send->reverb b = Bus.audio(s,1); // tempoclock. t = TempoClock.default; ) ///////////////////////////////////////////////////////////////////////////////////// // variation 2 ( r = Synth("reverbBus", [\inBus, b, \wet, 0.5]); t.tempo_(80/60); // beats per minute Pbind( \instrument, "plucking", \scale, Scale.major.tuning_(\just), \octave, 4, \degree, Pseq([1,3,7,8], inf), // four main notes \mtranspose, Pseq([Pseq([0],3),Pseq([-5],3)],inf), // switched mode every 3 notes (*2) \gtranspose, Pseq([Pseq([0],36),Pseq([4],36),Pseq([[-3]],36),Pseq([2],36)],inf), \ctranspose, Pser([Pseries(-4,1,6) +.x Pseq([0], 144)],1), \coef, Pser([Prand([0.2,0.3,0.4,0.5],1), Prand([0.8,0.7,0.6,0.5],11)], inf), \dur, Prand([0.25,0.26,0.24,0.255,0.255,0.25], 240), \decay, Prand([1,2,3,4,5], inf), \out, b, \amp, 0.4, ).play; ) ///////////////////////////////////////////////////////////////////////////////////// // variation 1 ( ~reverb = Synth("reverbBus", [\inBus, b, \wet, 0.6]); t.tempo_(60/60); Pbind( \instrument, "plucking", \out, b, \scale, Scale.major.tuning_(\just), \octave, 4, \degree, Pseq([1,3,7,8,Prand([7,10,11,13,14]),8,7,3], inf), \dur, Pseq( [ Pwrand([ Pseq([0.2,0.2]), //0.2, 0.4, Pseq([0.1],4), Pseq([0.05],4) ], [0.5,0.3,0.1,0.1] // weights ) ], 240), \coef, Pwrand([0.8, 0.6, 0.4, 0.2], [0.4,0.3,0.2,0.1], inf), \amp, 0.4, \addAction, 0, // make sure new synths are added to head of group (optional) ).play; ) ///////////////////////////////////////////////////////////////////////////////////// // variation 3 ( r = Synth("reverbBus", [\inBus, b, \wet, 0.5]); t.tempo_(1); // Pbind( \instrument, "plucking", \scale, Scale.major.tuning_(\just), \octave, 4, \degree, Pseq([1, 3, 7, 3,-4,-2, 7, 8, 1,-2, 2, 3], inf), \mtranspose, Pseq([Pseq([0],144),Pseq([0],48),Pseq([3],48),Pseq([4],48)], inf), \gtranspose, Pseq([Pseq([0],36),Pseq([4],36),Pseq([[-3]],36),Pseq([2],36)],inf), \ctranspose, Pser([Pseries(-4,1,4) +.x Pseq([0], 144)],2), \coef, Pseq([ Pseq([ Prand([0.2,0.3,0.4,0.5],1), Prand([0.6,0.5],5), Prand([0.2,0.3],1), Prand([0.6,0.5],5) ], 1), Prand([0.7,0.6],12) ],inf), \dur, Pseq([Prand([0.25,0.25,0.24,0.245,0.255,0.25], 140),0.26,0.3,0.4,0.7], inf) * Pseq([Pseq([0.8],110), Pgeom(0.8,1.002,34)],inf), \decay, Pseq([8, Prand([1,2,3,4], 4),3,2,1], inf), \out, b, \amp, 0.4, ).play; )