{
   "ancestor_list" : [],
   "description" : "This week’s project involves making music from the basic building block of sound: the sine wave.\r\n\r\nYou will compose and record a piece of music using just three different sine waves, and nothing else — well, nothing else in terms of source material, but the waves can, after the piece has gotten underway, be transformed by any means you choose.\r\n\r\nThese are the steps:\r\n\r\nStep 1: Devise which three sine waves you will employ. They should be different from each other in some evident way.\r\nStep 2: The track should open with just one of the sine waves.\r\nStep 3: Add the second sine wave at 5 seconds.\r\nStep 4: Add the third sine wave at 10 seconds.\r\nStep 5: Only at 15 seconds should you begin to in any way manipulate any of the source waves.\r\nFrequencies Used: 125Hz, 237Hz, 1012Hz\r\n\r\nMy Process: Coding up something quickly in Supercollider on lunch break and did final adjustments at home. I decided to see how much I could get out of the sound of just the three sines without any effects. The click is created by purposely cutting the waveform at non-zero crossings. Every other sound is made from adding or multiplying the three sines.\r\n\r\nThis is my 10th piece for the Disquiet Junto and the second piece I have created using only sine waves.\r\n\r\nBlog post and audio about the piece: http://schemawound.com/post/45152975247/a-map-to-everything-disquiet0062-lifeofsine",
   "name" : "A Map To Everything [Disquiet0062-LifeOfSine]",
   "author" : "Schemawound",
   "code" : "/*NOTE: I have not bothered to clean this code up after writing it. Don't take it as a good example ;) */\r\n(\r\nfork{\r\n\tvar pat = ();\r\n\r\n\tSynthDef(\\addOfSine, {\r\n\t\t|\r\n\t\tout = 0, gate = 1, amp = 1, doneHandlerLength = 10,\r\n\t\tfreq0 = 125, phase0 = 0, amp0 = 1, attack0 = 0.1, decay0 = 0.1, sustain0 = 0.5, release0 = 0.3, pan0 = 0,\r\n\t\tfreq1 = 237, phase1 = 0, amp1 = 1, attack1 = 0.1, decay1 = 0.1, sustain1 = 0.5, release1 = 0.3, pan1 = 0,\r\n\t\tfreq2 = 1012, phase2 = 0, amp2 = 1, attack2 = 0.1, decay2 = 0.1, sustain2 = 0.5, release2 = 0.3, pan2 = 0\r\n\t\t|\r\n\t\tvar doneHandler = Linen.kr(gate, 0, 1, doneHandlerLength, doneAction:5); //This guy is just here to handle the doneAction\r\n\t\tvar sine = [//Div by 3 to avoid clipping\r\n\t\t\tPan2.ar(SinOsc.ar(freq0, phase0 * 2pi, amp0) * EnvGen.ar(Env.adsr(attack0, decay0, sustain0, release0), gate), pan0) / 3,\r\n\t\t\tPan2.ar(SinOsc.ar(freq1, phase0 * 2pi, amp1) * EnvGen.ar(Env.adsr(attack1, decay1, sustain1, release1), gate), pan1) / 3,\r\n\t\t\tPan2.ar(SinOsc.ar(freq2, phase0 * 2pi, amp2) * EnvGen.ar(Env.adsr(attack2, decay2, sustain2, release2), gate), pan2) / 3,\r\n\t\t];\r\n\t\tvar output = (sine[0] + sine[1] + sine[2]) * amp;\r\n\t\tOut.ar(out, output);\r\n\t}).add;\r\n\r\n\tSynthDef(\\mulOfSine, {\r\n\t\t|\r\n\t\tout = 0, gate = 1, amp = 1, doneHandlerLength = 10,\r\n\t\tfreq0 = 125, phase0 = 0, amp0 = 1, attack0 = 0.1, decay0 = 0.1, sustain0 = 0.5, release0 = 0.3, pan0 = 0,\r\n\t\tfreq1 = 237, phase1 = 0, amp1 = 1, attack1 = 0.1, decay1 = 0.1, sustain1 = 0.5, release1 = 0.3, pan1 = 0,\r\n\t\tfreq2 = 1012, phase2 = 0, amp2 = 1, attack2 = 0.1, decay2 = 0.1, sustain2 = 0.5, release2 = 0.3, pan2 = 0\r\n\t\t|\r\n\t\tvar doneHandler = Linen.kr(gate, 0, 1, doneHandlerLength, doneAction:5); //This guy is just here to handle the doneAction\r\n\t\tvar sine = [\r\n\t\t\tPan2.ar(SinOsc.ar(freq0, phase0 * 2pi, amp0) * EnvGen.ar(Env.adsr(attack0, decay0, sustain0, release0), gate), pan0),\r\n\t\t\tPan2.ar(SinOsc.ar(freq1, phase0 * 2pi, amp1) * EnvGen.ar(Env.adsr(attack1, decay1, sustain1, release1), gate), pan1),\r\n\t\t\tPan2.ar(SinOsc.ar(freq2, phase0 * 2pi, amp2) * EnvGen.ar(Env.adsr(attack2, decay2, sustain2, release2), gate), pan2),\r\n\t\t];\r\n\t\tvar output = sine[0] * sine[1] * sine[2] * amp;\r\n\t\tOut.ar(out, output);\r\n\t}).add;\r\n\r\n\ts.sync;\r\n\r\n\tpat.intro =\r\n\tPseq([\r\n\t\tPbind(*[\r\n\t\t\tinstrument: \\addOfSine,\r\n\t\t\tamp: 1,\r\n\t\t\tdur: Pn(5, 1),\r\n\t\t\tsustain: 4,\r\n\t\t\tamp0: 1, attack0: 4, decay0: 0, sustain0: 1, release0: 1,\r\n\t\t\tamp1: 0,\r\n\t\t\tamp2: 0\r\n\t\t]),\r\n\t\tPbind(*[\r\n\t\t\tinstrument: \\addOfSine,\r\n\t\t\tamp: 1,\r\n\t\t\tdur: Pn(5, 1),\r\n\t\t\tsustain: 4,\r\n\t\t\tamp0: 1, attack0: 4, decay0: 0, sustain0: 1, release0: 1,\r\n\t\t\tamp1: 1, attack1: 4, decay1: 0, sustain1: 1, release1: 1,\r\n\t\t\tamp2: 0\r\n\t\t]),\r\n\t\tPbind(*[\r\n\t\t\tinstrument: \\addOfSine,\r\n\t\t\tamp: 1,\r\n\t\t\tdur: Pn(5, 1),\r\n\t\t\tsustain: 4,\r\n\t\t\tamp0: 1, attack0: 4, decay0: 0, sustain0: 1, release0: 1,\r\n\t\t\tamp1: 1, attack1: 4, decay1: 0, sustain1: 1, release1: 1,\r\n\t\t\tamp2: 1, attack2: 4, decay2: 0, sustain2: 1, release2: 1,\r\n\t\t]),\r\n\t]);\r\n\r\n\tpat.intro2 =\r\n\tPseq([\r\n\t\tPbind(*[\r\n\t\t\tinstrument: \\addOfSine,\r\n\t\t\tamp: 1,\r\n\t\t\tdur: Pn(12.8 / 3, 1),\r\n\t\t\tsustain: 4,\r\n\t\t\tamp0: 1, attack0: 4, decay0: 0, sustain0: 1, release0: 1,\r\n\t\t\tamp1: 0,\r\n\t\t\tamp2: 0\r\n\t\t]),\r\n\t\tPbind(*[\r\n\t\t\tinstrument: \\addOfSine,\r\n\t\t\tamp: 1,\r\n\t\t\tdur: Pn(12.8 / 3, 1),\r\n\t\t\tsustain: 4,\r\n\t\t\tamp0: 0,\r\n\t\t\tamp1: 1, attack1: 4, decay1: 0, sustain1: 1, release1: 1,\r\n\t\t\tamp2: 0\r\n\t\t]),\r\n\t\tPbind(*[\r\n\t\t\tinstrument: \\addOfSine,\r\n\t\t\tamp: 1,\r\n\t\t\tdur: Pn(12.8 / 3, 1),\r\n\t\t\tsustain: 4,\r\n\t\t\tamp0: 0,\r\n\t\t\tamp1: 0,\r\n\t\t\tamp2: 1, attack2: 4, decay2: 0, sustain2: 1, release2: 1,\r\n\t\t]),\r\n\t]);\r\n\r\n\tpat.p0 = Pbind(*[\r\n\t\tinstrument: \\addOfSine,\r\n\t\tamp: 1,\r\n\t\tdur: Pseq([0.1], 16),\r\n\t\tsustain: Pkey(\\dur),\r\n\t\tdoneHandlerLength: 1,\r\n\t\tphase0: Pseq([0.2, 0, 0, 0], inf), amp0: 1, attack0: 0.001, decay0: 0.001, pan0: Pseq([-0.5, 0.5], inf),\r\n\t\tphase1: 0, amp1: 0, attack1: 0.1, release1: 0,\r\n\t\tphase2: 0, amp2: 0, attack2: 0,\r\n\t]);\r\n\r\n\tpat.p1 = Pbind(*[\r\n\t\tinstrument: \\addOfSine,\r\n\t\tamp: 1,\r\n\t\tdur: Pseq([0.1], 16),\r\n\t\tsustain: Pkey(\\dur),\r\n\t\tdoneHandlerLength: 3,\r\n\t\tphase0: Pseq([0.2, 0, 0, 0], inf), amp0: 1, attack0: 0.001, decay0: 0.001, pan0: Pseq([-1, 1], inf),\r\n\t\tphase1: Pseq([0.2, 0.2, 0, 0], inf), amp1: Pseq([1,0,0], inf), attack1: 0.01, release1: 0.001, pan1: Pseq([1, 1, -1, -1, 0, 0, 0, 0], inf),\r\n\t\tamp2: 0, phase2: 0, attack2: 0,\r\n\t]);\r\n\r\n\tpat.p2 = Pbind(*[\r\n\t\tinstrument: \\addOfSine,\r\n\t\tamp: 1,\r\n\t\tdur: Pseq([0.1], 16),\r\n\t\tsustain: Pkey(\\dur),\r\n\t\tdoneHandlerLength: 3,\r\n\t\tphase0: Pseq([0.2, 0, 0, 0], inf), amp0: 1, attack0: 0.001, decay0: 0.001, pan0: Pseq([-0.5, 0.5], inf),\r\n\t\tphase1: 0, amp1: 0, attack1: 0.01, release1: 0.001, pan1: Pseq([1, 1, -1, -1, 0, 0, 0, 0], inf),\r\n\t\tphase2: Pwhite(), amp2: 0.7, attack2: 0.001, release2: 0.001, decay2: Pseq([0.3, 0.1, 0.01, 0.01, 0.01], inf), sustain2: 0, pan2: Pseq([-1, 0, 1], inf)\r\n\t]);\r\n\r\n\tpat.p3 = Pbind(*[\r\n\t\tinstrument: \\addOfSine,\r\n\t\tamp: 1,\r\n\t\tdur: Pseq([0.1], 16),\r\n\t\tsustain: Pkey(\\dur),\r\n\t\tdoneHandlerLength: 3,\r\n\t\tphase0: Pseq([0.2, 0, 0, 0], inf), amp0: 1, attack0: 0.001, decay0: 0.001, pan0: Pseq([-1, 1], inf),\r\n\t\tphase1: Pseq([0.2, 0.2, 0, 0], inf), amp1: Pseq([1,0,0], inf), attack1: 0.01, release1: 0.001, pan1: Pseq([1, 1, -1, -1, 0, 0, 0, 0], inf),\r\n\t\tphase2: Pwhite(), amp2: 0.7, attack2: 0.01, release2: 0.01, decay2: Pseq([0.3, 0.1, 0.01, 0.01, 0.01], inf), sustain2: 0, pan2: Pseq([-1, 0, 1], inf)\r\n\t]);\r\n\r\n\tpat.p4 = Pbind(*[\r\n\t\tinstrument: \\addOfSine,\r\n\t\tamp: 1,\r\n\t\tdur: Pseq([0.17], 16),\r\n\t\tsustain: Pkey(\\dur),\r\n\t\tdoneHandlerLength: 0.4,\r\n\t\tphase0: Pseq([0.2, 0, 0, 0], inf), amp0: 1, attack0: 0, decay0: 0, pan0: Pseq([-1, 1], inf),\r\n\t\tphase1: Pseq([0.2, 0.2, 0, 0], inf), amp1: Pseq([1,0,0], inf), attack1: 0, release1: 0, pan1: Pseq([1, 1, -1, -1, 0, 0, 0, 0], inf),\r\n\t\tphase2: Pwhite(), amp2: 0.7, attack2: 0.17, release2: 0, decay2: Pseq([0.3, 0.1, 0.01, 0.01, 0.01], inf), sustain2: 0, pan2: Pseq([-1, 0, 1], inf)\r\n\t]);\r\n\r\n\tpat.p5 = Pbind(*[\r\n\t\tinstrument: \\addOfSine,\r\n\t\tamp: Pseq([Pn(1,64), Pn(0, 64)], 4),\r\n\t\tdur: 0.05,\r\n\t\tsustain: Pkey(\\dur),\r\n\t\tdoneHandlerLength: 0.4,\r\n\t\tphase0: 0, amp0: 0.25, attack0: 0.05, decay0: 0.001, sustain0: 0, release0: 0.001, pan0: Pseq([-1, 1], inf),\r\n\t\tphase1: 0, amp1: 0.25, attack1: 0.05, decay0: 0.001, sustain0: 0, release0: 0.001, pan1: Pseq([1, 1, -1, -1, 0, 0, 0, 0], inf),\r\n\t\tphase2: 0, amp2: 0.25, attack2: 0.05, decay0: 0.001, sustain0: 0, release0: 0.001, pan2: Pseq([-1, 0, 1], inf)\r\n\t]);\r\n\r\n\tpat.p6 = Pbind(*[\r\n\t\tinstrument: \\addOfSine,\r\n\t\tamp: Pseq([Pn(1,64), Pn(0, 64)], 8),\r\n\t\tdur: 0.025,\r\n\t\tsustain: Pkey(\\dur),\r\n\t\tdoneHandlerLength: 1,\r\n\t\tphase0: 0.5, amp0: 0.2, attack0: 0.001, decay0: 0.001, sustain0: 0, release0: 0.001, pan0: Pseq([-1, 1], inf),\r\n\t\tphase1: 0.5, amp1: 0.2, attack1: 0.001, decay0: 0.001, sustain0: 0, release0: 0.001, pan1: Pseq([1, 1, -1, -1, 0, 0, 0, 0], inf),\r\n\t\tphase2: 0.5, amp2: 0.2, attack2: 0.001, decay0: 0.001, sustain0: 0, release0: 0.001, pan2: Pseq([-1, 0, 1], inf)\r\n\t]);\r\n\r\n\tpat.hold = Pbind(*[\r\n\t\tinstrument: \\mulOfSine,\r\n\t\tamp: 3,\r\n\t\tdur: Pn(0.2, 64),\r\n\t\tsustain: Pseq([Pkey(\\dur), Pkey(\\dur) / 2, Pkey(\\dur), Pkey(\\dur) / 4]),\r\n\t\tamp0: Pseq([1,0.5,0.3,0.5], inf), attack0: 0.001, decay0: 0.001, pan0: 0, release0: 0.001,\r\n\t\tamp1: Pseq([1,0.5,0.7], inf), attack1: 0.001, decay1: 0.001, pan1: 0, release1: 0.001,\r\n\t\tamp2: Pseq([1,0.5,0.7,1,0.7], inf), attack2: 0.001, decay2: 0.001, pan2: 0, release2: 0.001\r\n\t]);\r\n\r\n\r\n\r\n\t//Sequence\r\n\tPseq([\r\n\t\tpat.intro,\r\n\t\tPseq([Pn(pat.p0, 4), Pn(pat.p1, 4)], 2),\r\n\t\tPseq([Pn(pat.p2, 4), Pn(pat.p3, 4)], 2),\r\n\t\tPn(pat.hold, 1),\r\n\t\tPpar([Pn(pat.hold, 2), Pseq([Pn(pat.p0, 4), Pn(pat.p1, 4)], 2)]),\r\n\t\tPpar([pat.p5, Pn(pat.hold, 2), Pseq([Pn(pat.p2, 4), Pn(pat.p3, 4)], 2)]),\r\n\t\tPpar([pat.p5, pat.p6, Pn(pat.hold, 2), Pseq([Pn(pat.p0, 4), Pn(pat.p1, 4)], 2)]),\r\n\t\tPpar([pat.p5, pat.p6, pat.intro, Pn(pat.hold, 1)]),\r\n\t]).play\r\n}\r\n)",
   "is_private" : null,
   "id" : "1-4T1",
   "labels" : [
      "sine",
      "disquiet junto",
      "disquiet",
      "junto"
   ]
}
