«Unloop Antidote [Disquiet0048-libertederive]» by Schemawound

on 07 Dec'12 06:32 in beatdisquiet juntodisquietjuntodisquiet0048libertederivemechanical

Unloop Antidote [disquiet0048-libertederive] By Schemawound

All code by Jonathan Siemasko All sound sampled from the releases mentioned below

NOTE: ~media.disquiet just points to the directory containing the files.

DESCRIPTION: This Disquiet Junto project was done as a celebration of the efforts of the Three Legs Duck netlabel, and to support its employment of licenses that allow for derivative works. This track is comprised of three pieces of music, all originally released on Three Legs Duck: “Unloop Hullaballoo” off The Fleet’s Lit Up by Alex Charles and Richard Sanderson, “Etude” off Emosphere by !Kung, and “04:54AM” off Four AM at Dusk Jérôme Poirier. More on the Three Legs Duck netlabel, and the original versions of these tracks, at http://threelegsduck.weebly.com/.

More on this 48th Disquiet Junto project at: http://disquiet.com/2012/11/29/disquiet0048-libertederive/

More details on the Disquiet Junto at: http://soundcloud.com/groups/disquiet-junto/info/

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/*
Unloop Antidote [disquiet0048-libertederive]
By Schemawound

All code by Jonathan Siemasko
All sound sampled from the releases mentioned below

NOTE: ~media.disquiet just points to the directory containing the files.

DESCRIPTION:
This Disquiet Junto project was done as a celebration of the efforts of the Three Legs Duck netlabel,
and to support its employment of licenses that allow for derivative works. This track is comprised of
three pieces of music, all originally released on Three Legs Duck: “Unloop Hullaballoo” off The Fleet’s
Lit Up by Alex Charles and Richard Sanderson, “Etude” off Emosphere by !Kung, and “04:54AM” off Four AM
at Dusk Jérôme Poirier. More on the Three Legs Duck netlabel, and the original versions of these tracks,
at http://threelegsduck.weebly.com/.

More on this 48th Disquiet Junto project at: http://disquiet.com/2012/11/29/disquiet0048-libertederive/

More details on the Disquiet Junto at: http://soundcloud.com/groups/disquiet-junto/info/
*/

(
fork{
	//Source Files
	~etude = ~media.disquiet ++ "Emosphere - 03 Etude.wav";
	~four54 = ~media.disquiet ++ "Four AM at Dusk - 02 04-54AM.wav";
	~unloop = ~media.disquiet ++ "The Fleets Lit Up - 04 Unloop Hullaballoo.wav";

	//Cut Samples
	Buffer.freeAll;
	~buffers = ();
	~buffers.squeak = Buffer.read(s, ~etude, 0, 29000);
	~buffers.hornSnip = Buffer.read(s, ~etude, 29000, 6000);
	~buffers.clickClack = Buffer.read(s, ~etude, 5000, 15000);
	~buffers.thumpThump = Buffer.read(s, ~etude, 50000, 15000);
	~buffers.paperNoise = Buffer.read(s, ~etude, 70000, 15000);
	~buffers.steamlet = Buffer.read(s, ~etude, 83000, 15000);
    ~buffers.steamlet2 = Buffer.read(s, ~etude, 105000, 15000);
	~buffers.steamSynth = Buffer.read(s, ~unloop, 105000, 300000);
	~buffers.steamSynth2 = Buffer.read(s, ~unloop, 555000, 300000);
	~buffers.stab = Buffer.read(s, ~unloop, 4005000, 30000);
	~buffers.clickSnare = Buffer.read(s, ~unloop, 9025500, 6000);
	~buffers.lowPluck = Buffer.read(s, ~four54, 1222000, 1400);

	//SynthDef
	SynthDef(\bufPlay2, {|out = 0, bufnum, rateScale = 1, amp = 1|
		var buf = PlayBuf.ar(2, bufnum, BufRateScale.kr(bufnum) * rateScale, doneAction: 2);
		Out.ar(out, buf * amp);
	}).add;

	SynthDef(\bufADSR2, {|out = 0, gate = 1, bufnum, rateScale = 1, amp = 1, attack = 0.01, decay = 0.3, release = 1|
		var buf = PlayBuf.ar(2, bufnum, BufRateScale.kr(bufnum) * rateScale);
		var env = EnvGen.ar(Env.adsr(attack, decay, 1, release), gate, doneAction: 2);
		Out.ar(out, buf * env * amp);
	}).add;

	SynthDef(\snareFX, {|out = 0, in, amp = 1|
		var inSig = In.ar(in, 2);
		inSig = inSig + (CombC.ar(inSig, 10, 0.5, 0.5) * 0.8);
		inSig = inSig + (GVerb.ar(inSig, 8, 2) * 0.2);
		Out.ar(out, inSig * amp);
	}).add;

	SynthDef(\hatFX, {|out = 0, in, amp = 1|
		var inSig = In.ar(in, 2);
		inSig = inSig + (CombC.ar(inSig, 10, 0.5, 0.5) * 0.8);
		inSig = GVerb.ar(inSig);
		Out.ar(out, inSig * amp);
	}).add;

	SynthDef(\squeakFX, {|out = 0, in, amp = 1|
		var inSig = In.ar(in, 2);
		inSig = inSig + (CombC.ar(inSig, 10, 0.3, 3) * 0.8);
		inSig = GVerb.ar(inSig);
		Out.ar(out, inSig * amp);
	}).add;

	SynthDef(\kickFX, {|out = 0, in, amp = 1|
		var inSig = In.ar(in, 2);
		inSig = BLowPass4.ar(inSig, 300);
		Out.ar(out, inSig * amp);
	}).add;

	SynthDef(\twinkleFilterFX, {|out = 0, in, amp = 1|
		var inSig = In.ar(in, 2);
		inSig = RHPF.ar(inSig, 1000);
		Out.ar(out, inSig * amp);
	}).add;

	//Sync
	s.sync;

	//Display
	~buffers.do{|buf| buf.postln};

	//FX
	~snareBus = Bus.audio(Server.default, 2);
	~snareFX = Synth(\snareFX, [\out: [0,1], \in: ~snareBus, amp: 0.3]);
	~hatBus = Bus.audio(Server.default, 2);
	~hatFX = Synth(\hatFX, [\out: [0,1], \in: ~hatBus, amp: 0.5]);
	~squeakBus = Bus.audio(Server.default, 2);
	~squeakFX = Synth(\squeakFX, [\out: [0,1], \in: ~squeakBus, amp: 0.5]);
	~kickBus = Bus.audio(Server.default, 2);
	~kickFX = Synth(\kickFX, [\out: [0,1], \in: ~kickBus, amp: 0.5]);
	~twinkleFilterBus = Bus.audio(Server.default, 2);
	~twinkleFilterFX = Synth(\twinkleFilterFX, [\out: ~hatBus, \in: ~twinkleFilterBus, amp: 0.5]);

	//Sequence (8 beat bars)
    ~songClock = TempoClock(1, 0);
	~pat = ();
	~pat.intro = Pbind(*[instrument: \bufADSR2, bufnum: ~buffers.steamSynth2, dur: 8, amp: Pn(1, 1), rateScale: 1, out: ~snareBus]);
	~pat.thump = Ppar([
		Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.thumpThump, dur: 1, amp: Pseq([Pseq([1.5,Rest], 3), Pn(1,2)], 1), rateScale: 0.5]),
		Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.thumpThump, dur: 1, amp: Pseq([1,Rest], 4), rateScale: 0.2]),
	]);
	~pat.clickSnare = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.clickSnare, dur: 1, amp: Pseq([Rest, 0.9], 4), rateScale: 1, out: ~snareBus]);
	~pat.squeakHalf = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.squeak, dur: 1, amp: Pseq([Pn(Rest,4), Pn(1,4)],1), rateScale: 0.5]);
	~pat.squeak = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.squeak, dur: 1, amp: Pn(0.9,8), rateScale: 0.5]);
	~pat.squeakInfinity = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.squeak, dur: 1, amp: Pn(0.9,8), rateScale: 0.5, out: ~squeakBus]);
	~pat.squeakInfinity2 = Pbind(*[instrument: \bufADSR2, bufnum: ~buffers.squeak, dur: 1, sustain: 5, amp: Pn(0.5,8), rateScale: 0.05, out: ~squeakBus]);
	~pat.clickClack = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.clickClack, dur: 1/2, amp: Pseq([Rest, 0.5], 8), rateScale: Pseq([Pn(1, 8), Pn(0.8, 8)])]);
	~pat.paperNoise = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.paperNoise, dur: 1/2, amp: Pseq([0.9], 16), rateScale: 0.7]);
	~pat.steamlet2Half = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.steamlet2, dur: 1/4, amp: Pseq([Pn(Rest, 8), Pn(1, 4), Pn(Rest, 4)], 2), rateScale: 0.5, amp: 0.6]);
	~pat.steamSynth = Pbind(*[instrument: \bufADSR2, bufnum: ~buffers.steamSynth, dur: Pseq([Pn(1,7),Pn(1/4,4)]), sustain: Pkey(\dur), amp: 3.3, rateScale: Pseq([Pn(1,4), Pn(1.5,7)]), amp: 0.6, decay: 0.01]);
	~pat.steamSynth2 = Pbind(*[instrument: \bufADSR2, bufnum: ~buffers.steamSynth2, dur: Pseq([Pn(1,7),Pn(1/4,4)]), sustain: Pkey(\dur), amp: 3.3, rateScale: Pseq([Pn(1,4), Pn(1.5,7)]), amp: 0.6, decay: 0.01]);
	~pat.stab = Pbind(*[instrument: \bufADSR2, bufnum: ~buffers.stab, dur: 1/4, sustain: Pkey(\dur), amp: 0.1, rateScale: Pseq([0.5, Rest, Rest, 0.7], 4), amp: 0.6, decay: 0.01]);
	~pat.hat = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.steamlet, dur: 1/8, amp: Pn(0.15, 64), rateScale: Pseq([10, 20, 30, 20], inf), out: ~hatBus]);
	~pat.hatDoubleTime = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.steamlet, dur: 1/16, amp: Pn(0.15, 128), rateScale: Pseq([10, 10, 10, 10], inf), out: ~hatBus]);
	~pat.pluck = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.lowPluck, dur: 1/8, amp: Pn(0.3, 64), rateScale: Pseq([10, 20, 30, 20], inf), out: ~hatBus]);
	~pat.kickish = Pbind(*[instrument: \bufPlay2, bufnum: ~buffers.lowPluck, dur: 2, amp: Pn(2, 4), rateScale: 0.18, release: 0.25, out: ~kickBus]);
	~pat.twinkleFilter = Pbind(*[instrument: \bufADSR2, bufnum: ~buffers.steamSynth, dur: 1/16, amp: Pseq([0.2, Rest], 32), rateScale: Pseq([4,5,6,7],inf), release: 0.1, out: ~twinkleFilterBus]);

	Pseq([
		~pat.intro,
		Pn(Ppar([~pat.thump, ~pat.paperNoise, ~pat.squeakHalf, ~pat.clickSnare, ~pat.kickish]), 2),
		Pn(Ppar([~pat.thump, ~pat.paperNoise, ~pat.clickClack, ~pat.clickSnare, ~pat.steamlet2Half, ~pat.steamSynth, ~pat.hat, ~pat.kickish]), 2),
		Pn(Ppar([~pat.thump, ~pat.squeakHalf, ~pat.paperNoise, ~pat.clickSnare, ~pat.clickClack, ~pat.steamlet2Half, ~pat.steamSynth, ~pat.hat, ~pat.kickish]), 2),
		Pn(Ppar([~pat.thump, ~pat.paperNoise, ~pat.clickClack, ~pat.clickSnare, ~pat.steamlet2Half, ~pat.steamSynth2, ~pat.hat, ~pat.kickish, ~pat.twinkleFilter]), 2),
		Pn(Ppar([~pat.thump, ~pat.squeakHalf, ~pat.paperNoise, ~pat.clickSnare, ~pat.clickClack, ~pat.steamlet2Half, ~pat.steamSynth2, ~pat.hat, ~pat.kickish, ~pat.twinkleFilter]), 2),
		Pn(Ppar([~pat.thump, ~pat.clickSnare, ~pat.steamSynth, ~pat.hat, ~pat.kickish, ~pat.pluck]), 2),
		Pn(Ppar([~pat.thump, ~pat.paperNoise, ~pat.clickSnare, ~pat.steamSynth, ~pat.kickish, ~pat.hatDoubleTime, ~pat.pluck]), 2),
		Pn(Ppar([~pat.thump, ~pat.paperNoise, ~pat.clickClack, ~pat.clickSnare, ~pat.steamlet2Half, ~pat.steamSynth, ~pat.hat, ~pat.kickish, ~pat.pluck]), 2),
		Pn(Ppar([~pat.thump, ~pat.squeakHalf, ~pat.paperNoise, ~pat.clickSnare, ~pat.clickClack, ~pat.steamlet2Half, ~pat.steamSynth, ~pat.hat, ~pat.kickish, ~pat.pluck]), 2),
		Pn(Ppar([~pat.thump, ~pat.paperNoise, ~pat.clickClack, ~pat.clickSnare, ~pat.steamlet2Half, ~pat.steamSynth2, ~pat.hat, ~pat.kickish, ~pat.pluck, ~pat.twinkleFilter]), 2),
		Pn(Ppar([~pat.thump, ~pat.squeakHalf, ~pat.paperNoise, ~pat.clickSnare, ~pat.clickClack, ~pat.steamlet2Half, ~pat.steamSynth2, ~pat.hat, ~pat.kickish, ~pat.pluck, ~pat.twinkleFilter]), 2),
		Pn(Ppar([~pat.thump, ~pat.squeak]), 2),
		~pat.squeakInfinity,
		Ppar([~pat.squeakInfinity2, ~pat.intro]),
		~pat.squeakInfinity2
	]).play(~songClock);
};
)
raw 9063 chars (focus & ctrl+a+c to copy)
reception
comments
sandrovale user 07 Dec'12 09:38

Excellent.