{
   "labels" : [
      "disquiet",
      "morse code"
   ],
   "code" : "/*\r\n0050\r\n\"pushing air\" => \".--. ..- ... .... .. -. --. / .- .. .-.\"\r\n*/\r\n\r\n~morsestr = \".--. ..- ... .... .. -. --. / .- .. .-. / \";\r\n\r\n~ctlbus1 = Bus.control(s);\r\nMIDIIn.connectAll;\r\n\r\n(\r\nSynthDef(\\perc, {|freq=280|\r\n\tvar ampEnv, snd, attack, release, sat, mod;\r\n\trelease = 3;\r\n\tattack = ~ctlbus1.kr;\r\n\tsat = -2;\r\n\tmod = SinOsc.ar(4, 0, 2);\r\n\tampEnv = EnvGen.ar(Env.perc(attack, release, 1), doneAction:2);\r\n\tsnd = ampEnv * SinOsc.ar([freq, (1.005*freq)+mod], [Rand(0,3.14),Rand(0,3.14)]);\r\n\tsnd = 2/(1 + (sat*snd).exp) - 1;\r\n\tOut.ar(0,snd);\r\n}).add;\r\n)\r\n\r\n~t = TempoClock.new;\r\n~t.tempo = 3;\r\nTdef(\\morse).play(~t);\r\n\r\n\r\n(\r\nMIDIdef.cc(\\attackTime, \r\n\t{|val, num, chan, src| \r\n\tvar attackTime;\r\n\r\n\tattackTime = val.linlin(0,127,0,2);\r\n\t~ctlbus1.set(attackTime);\r\n\t(\"attackTime: \" ++ attackTime).postln;\r\n\t},2);\r\n\r\nMIDIdef.cc(\\tempo, \r\n\t{|val, num, chan, src| \r\n\tvar index;\r\n\tvar tempoArray = [3,6,12];\r\n\t\r\n\tindex = val.linlin(0,127,0,2);\r\n\t~t.tempo = val.linlin(0,127,1,12);//tempoArray[index];\r\n\tval.linlin(0,127,1,12).postln;//tempoArray[index].postln;\r\n\t},14);\r\n)\r\n\r\n(\r\nTdef(\\morse,\r\n{\t\r\n\tinf.do{ |i|\t\t\r\n\t\t\r\n\t\tvar f0 = 180 * (2**(0/12));\r\n\t\tvar freq = 2**(([-7,-3,0,2,5,9,12].choose)/12) * f0;\r\n\t\tvar char = ~morsestr.wrapAt(i).asString;\r\n\t\t\r\n\t\tswitch(char,\r\n\t\t\".\", { \".\".post; \r\n\t\t\t\t//x = Synth(\\default); \r\n\t\t\t\tx = Synth(\\perc, [\\freq, freq]); \r\n\t\t\t\t1.wait;\r\n\t\t\t\t//x.release;\r\n\t\t\t\t},\r\n\t\t\"-\", { \"-\".post; \r\n\t\t\t\t//x = Synth(\\default); \r\n\t\t\t\tx = Synth(\\perc, [\\freq, freq]); \t\t\t\r\n\t\t\t\t3.wait;\r\n\t\t\t\t//x.release;\r\n\t\t\t\t},\r\n\t\t\" \", { \" \".post;\t\t\r\n\t\t\t\t1.wait;\r\n\t\t\t  },\r\n\t\t\"/\", { \"/\".post;\r\n\t\t\t\t3.wait;\r\n\t\t}, {});\r\n\t};\r\n})\r\n)\r\n\r\nTdef(\\morse).reset;\r\nTdef(\\morse).pause;\r\nTdef(\\morse).stop;",
   "id" : "1-4RU",
   "is_private" : null,
   "name" : "Pushing air",
   "author" : "coreyker",
   "ancestor_list" : [],
   "description" : "code for disquiet 0050 project: http://disquiet.com/2012/12/13/disquiet0050-morsebeat/\r\nlisten here: http://soundcloud.com/inlet/pushing-air-disquiet0050"
}
