«Shane Demo» by Bjorn Westergard

on 02 Mar'13 01:30 in strings trap

Something I whipped up talking to my buddy Shane.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
SynthDef(\guitar2, { arg freq, amp, pan = 0;
var out, pluck, period, string;
freq = freq * [0.99,1,2,0.98];
pluck = PinkNoise.ar(Decay.kr(Line.kr(1, 0, 0.05), 0.05));
period = freq.reciprocal;
string = CombL.ar(pluck, period, period, 4);
out = LeakDC.ar(LPF.ar(string, 12000));
out = Splay.ar(out, XLine.ar(0.1,1,0.3));
out = out * XLine.ar(1,1/1000,4, doneAction:2);
Out.ar(0, Pan2.ar(out, pan, amp) * 0.4);
} ).send(s);

SynthDef(\guitar, { arg freq, amp, pan = 0;
var out, pluck, period, string;
freq = freq * [0.99,1,2,0.98];
out = SinOsc.ar(freq);
out = Splay.ar(out, XLine.ar(0.1,1,0.3));
out = out * XLine.ar(1,1/1000,2, doneAction:2);
Out.ar(0, Pan2.ar(out, pan, amp) * 0.4);
} ).send(s);

SynthDef(\ch, { | decay = 3, amp = 1, freq = 440 |
f = WhiteNoise.ar;
f = LPF.ar(f, 12000);
//f = f+ DelayC.ar(f, 0.1,LFNoise2.ar(1/2).range(0.001,0.01));
f = HPF.ar(f, 4000, 0.05);
f = f * EnvGen.kr(Env.perc(0.01,decay*0.8), doneAction:2);
Out.ar(0, 15 * f.dup * amp);
}).store;

SynthDef(\kick, { | decay = 0.03, amp = 1, freq = 40 |
var f = SinOsc.ar(freq*XLine.ar(1,1/4,0.1));
f = f * EnvGen.kr(Env.perc(0.0001,decay), doneAction:2);
Out.ar(0,f.dup * amp * 1);
}).store;

TempoClock.default.tempo = 90/60

Ppar([
	Pbind(
		\instrument, \guitar,
		\strum, 2/Pstep([32,16,3,12],2,inf),
		\degree, Pseq([
				[0,2,4,6],
				[-1,2,4,6],
				[0,2,4,6],
				[0,2,4,6]-2,		
			],inf),
		\octave, 5,
		\dur, 1,
		\decay, Pseq([1],inf),
	),
			Ppar([
		Pbind(\instrument, \kick, \dur, 1/4, \decay, Pstep([2,0.3],1/4,inf) * 0.7, \octave, 4, \amp, Pstep([1,0,0,1, 0,0,1,0, 0,0.2,1,0, 0,0,0,0],1/4,inf)),
		Pbind(\instrument, \ch,
			\decay, 0.3,
		\dur, 1/Pstep([8,4,4,4,1,1,6,1],1,inf),
		\decay, Pn(Pseg([0.3,0.1],1)) / 2,
		\amp, Pstep([0,0,0,0, 1,0,0,0, 0,0,0,0, 1,0,0,0],1/4,inf) + (0.1*Pn(Pseg([0,0.4],1)))
	)
		])
]).play;

// Add Bjorn's Patented Dub Echo:
~echo = Synth(\dubecho, [\length, TempoClock.default.beatDur*(3/4), \fb, 0.7, \sep, 0.0012], addAction: \addToTail);
~echo.free
raw 2048 chars (focus & ctrl+a+c to copy)
reception
comments
Schemawound user 28 Mar'13 14:59

Synthdef for the dubecho is not included

Bjorn Westergard user 02 Apr'13 23:20

http://sccode.org/1-h

I thought it was an acknowledged classic at this point!