{
   "ancestor_list" : [],
   "description" : "Migration from the old SourceForge wiki.",
   "name" : "Scgraph sound and vision part 2",
   "author" : "codepool",
   "id" : "1-56M",
   "is_private" : null,
   "code" : "/*\r\nTrying to get more concise style.\r\n\r\nFirst boot scgraph from the terminal:\r\n\r\n./bin/scgraph\r\n\r\nthen...\r\n*/\r\n\r\n\r\n// nonprivate after fredrik\r\n(\r\ns = Server.local;\r\ns.boot;\r\n\r\nh = Server(\"scgraph\", NetAddr(\"localhost\", 37291));\r\nh.boot;\r\n)\r\n\r\n////////////////////////// POINTS 1\r\n(\r\n\r\nSynthDef(\\points, {|iFreq = 110, modFreq = 0.5, freqDeviation = 1, amp = 1, offset = 0.6|\r\n\r\n\tvar src, ctrlSines, ctrlMul;\r\n\r\n\tctrlMul = SinOsc.kr(modFreq * 0.7);\r\n\tctrlSines = Array.newClear(6);\r\n\t\t\r\n\tctrlSines.do { |item, index| \r\n\t\r\n\t\tctrlSines[index] = SinOsc.kr(modFreq * 1.2 * (1 + (Rand(0, 0.5) * freqDeviation) ), 0, amp * 5);\r\n\t};\r\n\t    \r\n\tsrc = \r\n\t     GPoints.gr(\r\n\t     \tctrlMul.range(2, 40), \r\n\t     \t[\r\n\t     \t[ctrlSines[0], ctrlSines[1], 0], \r\n\t     \t[ctrlSines[2], ctrlSines[3], 0], \r\n\t     \t[ctrlSines[4], ctrlSines[5], 0]\r\n\t     \t]\r\n\t     );\r\n     \r\n    GGLRenderer.gr(src);\r\n    \r\n}).send(h);\r\n\r\nSynthDef(\\points, {|iFreq = 110, modFreq = 0.5, freqDeviation = 1, amp = 1, offset = 0.6|\r\n\r\n\tvar src, audioSines, ctrlSines, ctrlMul;\r\n\r\n\tctrlMul = SinOsc.kr(modFreq * 0.7);\r\n\tctrlSines = Array.newClear(6);\r\n\taudioSines = Array.newClear(3);\r\n\t\t\r\n\tctrlSines.do { |item, index| \r\n\t\r\n\t\tctrlSines[index] = SinOsc.kr(modFreq * 1.2 * (1 + (Rand(0, 0.5) * freqDeviation) ), 0, amp * 4);\r\n\t\t\r\n\t};\r\n\t\r\n\taudioSines.do { |item, index|\r\n\t\t\r\n\t\taudioSines[index] = SinOsc.ar( (iFreq * index) * ctrlSines[(index * 2) + 1], 0, amp * ctrlMul.range(0.051, 0.2) );\r\n\t\taudioSines[index] = \r\n\t\t\tPan2.ar(audioSines[index], ctrlSines[index * 2]);\r\n\t\r\n\t};\r\n\t    \r\n\tsrc = Mix.new(audioSines);\r\n     \r\n    Out.ar(0, src);\r\n    \r\n}).send(s);\r\n\r\n\r\n~start = { |iFreq = 110, modFreq = 0.5, freqDeviation = 1, amp = 1|\r\n\r\n\t~scg = Array.newClear(2);\r\n\r\n\t[h, s].do { |item, index|\r\n\t\r\n\t\t~scg[index] = Synth.new(\\points, [\\iFreq, iFreq, \\modFreq, modFreq, \\freqDeviation, freqDeviation, \\amp, amp], target: item)\r\n\t};\r\n\r\n\r\n};\r\n\r\n~setParams = { |iFreq = 110, modFreq = 0.5, freqDeviation = 1, amp = 1|\r\n\r\n\t~scg.do { |item, index|\r\n\t\r\n\t\titem.set([\\iFreq, iFreq, \\modFreq, modFreq, \\freqDeviation, freqDeviation, \\amp, amp]);\r\n\r\n\t};\r\n\r\n};\r\n\r\n~free = { ~scg.do { |item, index| item.free } };\r\n\r\n)\r\n\r\n~start.value;\r\n~setParams.value(80, 0.3, 2, 0.9);\r\n~setParams.value(400, 0.8, 8, 0.3);\r\n~setParams.value(297, 0.1, 2, 0.7);\r\n~setParams.value(773, 0.8, 3, 0.7);\r\n~free.value;",
   "labels" : [
      "scgraph"
   ]
}
