«The Piano» by Schemawound

on 15 Aug'12 06:48 in ambientsignalvoidreverb

Schemawound track from the SIGNALVOID compilation. SIGNALVOID is a noise compilation. Participants were asked to create up to three tracks, each of exactly one minute in length, with no gaps of silence at the beginning or end. Download the free compilation here: http://archive.org/details/SignalvoidMp3 or http://archive.org/details/SignalvoidFlac Physical copies are available here http://signalvoid.bandcamp.com/merch/signalvoid-2

Blog post about the creation of this track http://schemawound.tumblr.com/post/29070261257/signalvoid-3-the-piano

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
/* 
Schemawound track from the SIGNALVOID compilation.
SIGNALVOID is a noise compilation. Participants were asked to create up to three tracks, each of exactly one minute in length, with no gaps of silence at the beginning or end. Download the free compilation here: http://archive.org/details/SignalvoidMp3 or http://archive.org/details/SignalvoidFlac
Physical copies are available here http://signalvoid.bandcamp.com/merch/signalvoid-2

Blog post about the creation of this track http://schemawound.tumblr.com/post/29070261257/signalvoid-3-the-piano
*/

(
	SynthDef(\ThePiano, {
		|
			sampleHoldFreq = 1,			saw0Freq = 0.1,			saw0DepthMin = 1,		saw0DepthMax = 1000,
			saw1FreqLeft = 10,			saw1FreqRight = 10.92, 
			saw2FreqLeft = 9, 			saw2FreqRight = 11.59,
			saw5FreqLeft = 0.1,			saw5FreqRight = 0.125,	saw5DepthMin = 1,		saw5DepthMax = 60
			i_comb0MaxDelay = 1,		comb0Delay = 0.001,		comb0Decay = 0.1,
			i_comb1MaxDelay = 1,		comb1Delay = 0.0125,	comb1Decay = 0.1,
			verb0Mix		= 1.0,		verb0Room = 0.7,
			verb1Mix		= 1.0,		verb1Room = 1.0,
			amp = 1
		|

		//Local Vars
		var sampleAndHold;
		var saw = Array.new;
		var comb = Array.new;
		var verb = Array.new;
		var comp;
		
		//Saws
		/* -----------
			Saw Index:
			0: Mod for Saw 3 (Sample and Hold mod)
			1: Dual Channel Saw
			2: Dual Channel Saw
			3: Saw with freq modified by a S&H
			4: 1 * 2 * 3
			5: Mod for saw 6
			6: 5 * 4, used for reverb
		-------------*/
		sampleAndHold = Latch.ar(WhiteNoise.ar, Impulse.ar(sampleHoldFreq));
		saw = saw.add(SinOsc.ar(saw0Freq).range(saw0DepthMin, saw0DepthMax));
		saw = saw.add(LFSaw.ar([saw1FreqLeft, saw1FreqRight]));
		saw = saw.add(LFSaw.ar([saw2FreqLeft, saw2FreqRight]));
		saw = saw.add(LFSaw.ar(sampleAndHold * saw[0]));
		saw = saw.add(saw[1] * saw[2] * saw[3]);
		saw = saw.add(LFSaw.kr([saw5FreqLeft, saw5FreqRight]).range(saw5DepthMin, saw5DepthMax));
		saw = saw.add(LFSaw.ar(saw [5] * saw[4]));
		
		//Combs
		comb = comb.add(CombC.ar(saw[4],	i_comb0MaxDelay, 	comb0Delay, 	comb0Decay));
		comb = comb.add(CombC.ar(comb[0],	i_comb1MaxDelay, 	comb1Delay, 	comb1Decay));
		
		//Verbs
		verb = verb.add(FreeVerb.ar(comb[1], 			verb0Mix,	verb0Room));
		verb = verb.add(FreeVerb.ar(verb[0] * saw[6],	verb1Mix,	verb1Room));
		
		//Out
		Out.ar(0, verb[1] * (amp * 0.2));
	}).add;
)

(
	x = Synth(\ThePiano, [
		\saw0ModFreq, 		0.1,	\saw0ModDepthMin,	1,		\saw0ModDepthMax,	1000,	
		\saw1FreqLeft,		10,		\saw1FreqRight,		10.92,
		\saw2FreqLeft,		9,		\saw2FreqRight,		11.59,
		\saw5FreqLeft,		0.1,	\saw5FreqRight,		0.125,	\saw5DepthMin,		1,		\saw5DepthMax,		60,
		\i_comb0MaxDelay,	0.001,	\comb0Delay,		0.001,	\comb0Decay,		0.1,
		\i_comb1MaxDelay,	0.0125,	\comb1Delay,		0.0125,	\comb1Decay,		0.1,
		\verb0Mix,			1.0,	\verb0Room,			0.7,	
		\verb1Mix,			1.0,	\verb1Room,			1.0,
		\amp,				1
	]);
)
raw 2895 chars (focus & ctrl+a+c to copy)
comments