{
   "author" : "Andrew Brož",
   "name" : "Deep Choir (THX Deep Note inspired synth sketch)",
   "ancestor_list" : [],
   "description" : "THX Deep Note inspired synth sketch",
   "labels" : [],
   "code" : "// A. Broz: Deep Choir (v2, 2020-10-29)\r\n(\r\n~numVoices = 30;\r\n\r\n~chaos = { |range = 1.0|\r\n\t~numVoices collect: { exprand(180 / range, 260 * range) }\r\n};\r\n\r\n~bigChord = { |fund = 30, harmonics = 5|\r\n\t~numVoices collect: {\r\n\t\tfund\r\n\t\t* rrand(1, harmonics) // build chord\r\n\t\t* rrand(1, 2) * rrand(1, 2) // octaves\r\n\t\t+ rrand(-1.2, 1.2) // beats\r\n\t}\r\n};\r\n\r\n// Try with Pmono\r\nSynthDef(\\fakeTHX, {\r\n\tvar env = EnvGen.kr(\r\n\t\tenvelope: Env.adsr(15, \\decay.kr(10), 1, 10, curve: \\sine),\r\n\t\tgate: \\gate.kr(1),\r\n\t\tdoneAction: Done.freeSelf,\r\n\t);\r\n\tvar chord = \\freq.kr(~chaos.value, \\lag.kr(10));\r\n\tvar meander = \\meander.kr(0.3, 8);\r\n\tvar sig = chord collect: { |f|\r\n\t\tf = f * LFNoise2.kr(rrand(0.3, 0.8)).exprange(1 - meander, 1 + meander);\r\n\t\tBLowPass.ar(Saw.ar(f), f, 0.6);\r\n\t};\r\n\tsig = Splay.ar(sig, 0.8) * env * \\mul.kr(0.5, 3);\r\n\tOut.ar(0, sig);\r\n}).add;\r\n)\r\n\r\n(\r\nRoutine({\r\n\tvar fakeTHX = Synth(\\fakeTHX);\r\n\r\n\t10.wait;\r\n\r\n\tfakeTHX.set(\\meander, 0);\r\n\r\n\tfakeTHX.set(\\freq, ~bigChord.(30, 5));\r\n\r\n\t10.wait;\r\n\r\n\tfakeTHX.set(\\gate, 0);\r\n}).play;\r\n)",
   "is_private" : null,
   "id" : "1-5e6"
}
