///////////////////////////////////////////////////
// History, as it was on Fri Aug 11 16:37:56 2006.
///////////////////////////////////////////////////

// - 0:0:0 -  
// de-re-constructing JMC analog bubbles

// - 0:0:2.76 -  
p = ProxySpace.push(s.boot);

// - 0:0:12.41 -  
p.fadeTime = 7;

// - 0:0:15.78 -  
~x.play;

// - 0:0:18.67 -  
(
// analog bubbles
~x = {
	f = LFSaw.kr(0.4, 0, 24, LFSaw.kr([8,7.23], 0, 3, 80)).midicps; // glissando function
	CombN.ar(SinOsc.ar(f, 0, 0.04), 0.2, 0.2, 4) // echoing sine wave
}
);

// - 0:0:22.76 -  
p.fadeTime = 17;

// - 0:0:34.2 -  
(
// analog bubbles
~x = {
	f = LFSaw.kr(0.4, 0, 24, LFTri.kr([8,7.23], 0, 3, 60)).midicps; // glissando function
	CombN.ar(SinOsc.ar(f, 0, 0.04), 0.2, 0.2, 4) // echoing sine wave
}
);

// - 0:0:43.13 -  
(
// analog bubbles
~x = {
	f = LFSaw.kr(0.1, 0, 24, LFTri.kr([8,7.23], 0, 3, 60)).midicps; // glissando function
	CombN.ar(SinOsc.ar(f, 0, 0.04), 0.2, 0.2, 4) // echoing sine wave
}
);

// - 0:1:31.59 -  
(
// analog bubbles
~f = {LFSaw.kr(0.1, 0, 24, LFTri.kr([8,7.23], 0, 3, 60)).midicps};
~x = {
	CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 0.2, 0.2, 4) // echoing sine wave
}
);

// - 0:1:49.29 -  
~f = {LFSaw.kr(0.1, 0, 24, LFTri.kr([8,7.33], 0, 3, 60)).midicps};

// - 0:1:59.43 -  
(
~x = {
	CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 0.2, 0.2, 14) // echoing sine wave
}
);

// - 0:2:23.37 -  
~f = {LFTri.kr(0.1, 0, 24, LFTri.kr([8,7.33], 0, 3, 60)).midicps};

// - 0:2:48.46 -  
~f = {LFDNoise3.kr(0.1, 24, LFTri.kr([8,7.33], 0, 3, 60)).midicps};

// - 0:2:56.81 -  
(
~x = {
	CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 0.2, 0.2, 1) // echoing sine wave
}
);

// - 0:3:31.94 -  
~f = { (LFDNoise3.kr(0.1) * 24 + LFTri.kr([8,7.33], 0, 3, 60)).midicps};

// - 0:3:56.21 -  
~f = { (LFDNoise3.kr(0.1) * 24 + LFTri.kr([8,7.33], 0, 3) + 60).midicps};

// - 0:4:31.11 -  
(
~x = {
	CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 0.2, 0.2 * ~f.ar.reciprocal, 1) // echoing sine wave
}
);

// - 0:4:57.38 -  
~f = { (LFDNoise3.kr(0.1) * 24 + LFDNoise3.kr([8,7.33], 3) + 60).midicps};

// - 0:5:14.23 -  
~x = { CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 0.2, ~f.ar.reciprocal, 1) };

// - 0:5:23 -  
~x = { CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 0.2, ~f.ar.reciprocal, 1) * 0.1 };

// - 0:5:32.3 -  
~x = { CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 0.2, ~f.ar.reciprocal, 0.1) * 0.1 };

// - 0:5:47.47 -  
~x = { CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 1, ~f.ar.reciprocal, 0.1) * 0.1 };

// - 0:5:54.88 -  
~f = { (LFDNoise3.kr(0.1) * 24 + LFDNoise3.kr([8,7.33], 3) + 60).midicps * 0.5 };

// - 0:6:11.92 -  
~d = { MouseX.kr(0, 1) };

// - 0:6:35.4 -  
~f = { (LFDNoise3.kr(0.1) * 24 + LFDNoise3.kr([~d, 1-~d] * 8, 3) + 60).midicps * 0.5 };

// - 0:6:53.3 -  
~x = { CombN.ar(LFNoise0.ar(~f.ar, 0, 0.04), 1, ~f.ar.reciprocal, 0.1) * 0.1 };

// - 0:6:57.07 -  
~x = { CombN.ar(LFNoise0.ar(~f.ar, 0, 0.04), 1, ~f.ar.reciprocal, 0.1) * 0.01 };

// - 0:7:5.98 -  
~x = { CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 1, ~f.ar.reciprocal, 0.1) * 0.1 };

// - 0:7:15.07 -  
~x.rebuild;

// - 0:7:17.45 -  
~x = { CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 1, ~f.ar.reciprocal, 0.1) * 0.1 };

// - 0:7:19.27 -  
~x.rebuild;

// - 0:7:21.94 -  
~f = { (LFDNoise3.kr(0.1) * 24 + LFDNoise3.kr([~d, 1-~d] * 8, 3) + 60).midicps * 0.5 };

// - 0:7:27.54 -  
~x.clear;

// - 0:7:28.69 -  
~x = { CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 1, ~f.ar.reciprocal, 0.1) * 0.1 };

// - 0:7:33.23 -  
~x.play;

// - 0:7:39.17 -  
// ups.

// - 0:7:49.6 -  
~f = { (LFDNoise3.kr(0.1) * 24 + LFDNoise3.kr([~d, 1-~d] * 80, 3) + 60).midicps * 0.5 };

// - 0:9:11.84 -  
~f = { |note=60|(LFDNoise3.kr(0.1) * 24 + LFDNoise3.kr([~d, 1-~d] * 80, 3) + note).midicps * 0.5 };

// - 0:9:34.75 -  
(
Tdef(\x, {
	loop {
		1.wait;
		~f.set(\note, 60 + rrand(2, 0));
	} 

}).play;
);

// - 0:9:41.95 -  
~f = { |note=60|(LFDNoise3.kr(0.1) * 24 + LFDNoise3.kr([~d, 1-~d] * 80, 3) + note).midicps * 0.5 };

// - 0:9:48.86 -  
(
Tdef(\x, {
	loop {
		1.wait;
		~f.set(\note, 60 + rrand(0, 20));
	} 
}).play;
);

// - 0:10:18.85 -  
// back to the basics

// - 0:10:29.72 -  
Tdef(\x).stop;

// - 0:10:41.71 -  
~f = { |note=60| (LFDNoise3.kr(~d) * 24 + LFDNoise3.kr([~d, 1-~d] * 80, 3) + note).midicps * 0.5 };

// - 0:10:48.73 -  
~f = { |note=60| (LFDNoise3.kr(~d * 10) * 24 + LFDNoise3.kr([~d, 1-~d] * 80, 3) + note).midicps * 0.5 };

// - 0:11:3.16 -  
~x = { CombN.ar(SinOsc.ar(~f.ar, 0, 0.04), 1, ~f.ar.reciprocal, 1) * 0.1 };

// - 0:11:14.87 -  
~f = {LFSaw.kr(0.1, 0, 24, LFTri.kr([8,7.33], 0, 3, 60)).midicps};

// - 0:11:26.91 -  
~f = { |note=60| (LFDNoise3.kr(~d * 10) * 24 + LFDNoise3.kr([~d, 1-~d] * 80, 3) + note).midicps * 0.5 };

// - 0:11:36.18 -  
~f = {LFSaw.kr(0.1, 0, 24, LFTri.kr([8,7.33], 0, 3, 60)).midicps};

// - 0:11:39.13 -  
~f = {LFSaw.kr(0.1, 0, 24, LFTri.kr([8,7.33], 0, 3, 30)).midicps};