{
   "description" : "//\r\nharmonized harmonic minor scale\r\nchords + melody\r\n////\r\ndownload audio @ http://www.archive.org/details/PaisajeEspanol",
   "ancestor_list" : [],
   "name" : "harmonized harmonic minor scale, chords + melody",
   "author" : "josecaos",
   "code" : "////////#superCollider///////////\r\n//////////////////////10_dic_2011\r\n///////  paisaje Espanol\r\n///// audio @ http://www.archive.org/details/PaisajeEspanol\r\n/////// escala  A| B| C| D| E| F| G#| A  menorArmonica    \r\n///////        57|59|60|62|64|65| 68|69 //////////////\r\ns.boot;\r\ns.scope;\r\ns.meter;\r\nFreqScope.new;\r\n//\r\ns.record;\r\n////////\r\n(// *\r\n(//fx\r\nSynthDef(\\master,{|gate=1|\r\n\tvar fx,env;\r\n\t\tfx=In.ar(20);\r\n\t\tfx=GVerb.ar(fx,24,3,0.2,mul:0.3);\r\n\t\tenv=EnvGen.ar(Env.asr(0.01,0.98,0.01),gate,doneAction:2);\r\n\tLimiter.ar(Out.ar(0,Pan2.ar(fx*env,[0.92,-0.92])),0.75);\r\n}).add;\r\n);\r\n(//acordes\r\nSynthDef(\\inst,{|gate=1,nota1,nota2,nota3,nota4,rel|\r\n\tvar cuerda,env;\r\n\t\tcuerda=HPF.ar(\r\n\t\t\tLimiter.ar((LFTri.ar(nota1.midicps,0,0.7)+SinOsc.ar(nota2.midicps,0.2,0.6)+\r\n\t\t\tSinOsc.ar(nota3.midicps,-0.2,0.5)+SinOsc.ar(nota4.midicps,0.1,0.5))\r\n\t\t\t\t+LFTri.ar(Mix(nota1.midicps,nota2.midicps,nota3.midicps,nota4.midicps),0,0.5),\r\n\t\t\t0.9),\r\n\t\t\t200,0.75);\r\n\t\tenv=EnvGen.ar(Env.perc(0.015,rel),gate,doneAction:2);\r\n\tOut.ar([0,20],Pan2.ar(cuerda*env,[0.1,-0.9]))\r\n}).add;\r\n);\r\n(//melodia\r\nSynthDef(\\inst2,{|gate=1,nota1|\r\n\tvar cuerda2,env;\r\n\t\tcuerda2=Limiter.ar(SinOsc.ar(nota1.midicps,0,0.1)+\r\n\t\t\t\tSaw.ar(nota1.midicps,0.1,0.06)+\r\n\t\t\t\t\tRLPF.ar(\r\n\t\t\t\tLFCub.ar(nota1.midicps,0.1,0.1)+\r\n\t\t\t\tLFTri.ar(nota1.midicps,0.1,0.2),\r\n\t\t\t\t\tPhasor.kr(Impulse.kr(1),60,10000),\r\n\t\t\t\t\t0.5),\r\n\t\t\t0.2);\r\n\t\tenv=EnvGen.ar(Env.perc(0.01,0.15),gate,doneAction:2);\r\n\tOut.ar(20,Pan2.ar(cuerda2*env,[0.9,-0.82]))\r\n}).add;\r\n);\r\n////\r\n(\r\nTdef(\\acordes,{\r\n\tvar c=0,fund,primerg,segundog,tercerg,cuartog,quintog,sextog,septimog,tiempo,trans,release;\r\n\tSynth(\\master);//sinte master\r\n\t~acorde=Array.newClear(4);//1a,3a,5ta,7ma\r\n\t~a=[45,47,48,50,52,53,56,57,59,60,62,64,65,68,69,71,72,74,76,77,80,81,83,84,86,88,89,92,93];//escala 4 octavas\r\n        primerg=~a[0];//1er grado\r\n\tsegundog=~a[1];//2do grado\r\n\ttercerg=~a[2];//3er grado\r\n\tcuartog=~a[3];//4to grado\r\n\tquintog=~a[4];//5to grado\r\n\tsextog=~a[5];//6to grado\r\n\tseptimog=~a[6];//7mo grado\r\n\ttiempo=Pwrand([0.25,0.5,0.75,1,2],[0.35,0.45,0.05,0.1,0.05],inf).asStream;\r\n\trelease=Pwrand([0.25,0.5,0.75,1],[0.1,0.5,0.2,0.2],inf).asStream;\r\n\tinf.do{\r\n\t\tc=c+1;\r\n\t\tfund=Array.series(7,0);//fundamentales posibles la primera octava\r\n\t\t~numfund=fund.scramble.pyramid.mirror2.reverse[c%fund.size];//grado de la escala\r\n\t\t//~numfund.postln;\r\n\t\t~acorde.put(0,~a[~numfund]);//pone en la tonica algun grado de la escala\r\n\t\ttrans=[0,0,12,24,36,0].choose;\r\n\t\t//trans.postln;\r\n\t\tif((~acorde[0]+trans)==(primerg+trans),{//Am7\r\n\t\t\t\t~acorde.put(1,~a[~numfund]+3);//menor\r\n\t\t\t\t~acorde.put(2,~a[~numfund]+7);//5ta justa\r\n\t\t\t\t~acorde.put(3,~a[~numfund]+11)//7ma mayor\r\n\t\t\t\t}\r\n\t\t);\r\n\t\tif((~acorde[0]+trans)==(segundog+trans),{//Bm5b7m\r\n\t\t\t\t~acorde.put(1,~a[~numfund]+3);//menor\r\n\t\t\t\t~acorde.put(2,~a[~numfund]+6);//5ta disminuida\r\n\t\t\t\t~acorde.put(3,~a[~numfund]+10)//7ma menor\r\n\t\t\t\t}\r\n\t\t);\r\n\t\tif((~acorde[0]+trans)==(tercerg+trans),{//C5#7\r\n\t\t\t\t~acorde.put(1,~a[~numfund]+4);//mayor\r\n\t\t\t\t~acorde.put(2,~a[~numfund]+8);//5ta aumentada\r\n\t\t\t\t~acorde.put(3,~a[~numfund]+11)//7ma mayor\r\n\t\t\t\t}\r\n\t\t);\r\n\t\tif((~acorde[0]+trans)==(cuartog+trans),{//Dm7m\r\n\t\t\t\t~acorde.put(1,~a[~numfund]+3);\r\n\t\t\t\t~acorde.put(2,~a[~numfund]+7);\r\n\t\t\t\t~acorde.put(3,~a[~numfund]+10)\r\n\t\t\t\t}\r\n\t\t);\r\n\t\tif((~acorde[0]+trans)==(quintog+trans),{//E7m\r\n\t\t\t\t~acorde.put(1,~a[~numfund]+4);\r\n\t\t\t\t~acorde.put(2,~a[~numfund]+7);\r\n\t\t\t\t~acorde.put(3,~a[~numfund]+10)\r\n\t\t\t\t}\r\n\t\t);\r\n\t\tif((~acorde[0]+trans)==(sextog+trans),{//F7\r\n\t\t\t\t~acorde.put(1,~a[~numfund]+4);\r\n\t\t\t\t~acorde.put(2,~a[~numfund]+7);\r\n\t\t\t\t~acorde.put(3,~a[~numfund]+11)\r\n\t\t\t\t}\r\n\t\t);\r\n\t\tif((~acorde[0]+trans)==(septimog+trans),{//G#5b7dis\r\n\t\t\t\t~acorde.put(1,~a[~numfund]+3);\r\n\t\t\t\t~acorde.put(2,~a[~numfund]+6);\r\n\t\t\t\t~acorde.put(3,~a[~numfund]+9)//7ma disminuida\r\n\t\t\t\t}\r\n\t\t);\r\n\t\t~acorde.postln;\r\n\t\t~ins=Synth(\\inst);\r\n\t\t~ins.set(\\nota1,~acorde[0]);\r\n\t\t~ins.set(\\nota2,~acorde[1]);\r\n\t\t~ins.set(\\nota3,~acorde[2]);\r\n\t\t~ins.set(\\nota4,~acorde[3]);\r\n\t\t~ins.set(\\rel,release.next);\r\n\t\ttiempo.next.wait\r\n\t\t}\r\n});\r\n);\r\n(\r\nTdef(\\melodia,{\r\n\tvar c=0,quinta,\r\n\t\ttiempo=Pwrand([0.25,0.5,1,0.0125],[0.35,0.6,0.25,0.025],inf).asStream;\r\n\tinf.do{\r\n\t\t~amel=[57,59,60,62,64,65,68,69,71,72,74,76,77,80,81,83,84,86,88,89,92,93];//3 octavas\r\n\t\tc=c+1;\r\n\t\t~numel=~amel.scramble[c%~amel.size];\r\n\t\t~numel.postln;\r\n\t\tquinta=[0,0,7,12,0].choose;//se transpone una quinta u octava\r\n\t\t~ins2=Synth(\\inst2);\r\n\t\t~ins2.set(\\nota1,~numel+quinta);\r\n\t\ttiempo.next.wait\r\n\t\t}\r\n});\r\n);\r\n)\r\n(//\r\nTdef(\\acordes).play;\r\nTdef(\\melodia).play;\r\n)\r\nTdef(\\melodia).stop;\r\nTdef(\\acordes).stop;\r\ns.stopRecording;",
   "is_private" : null,
   "id" : "1-Sm",
   "labels" : [
      "supercollider",
      "armonizacion",
      "escala",
      "menor armonica",
      "harmonic minor scale",
      "coding"
   ]
}
