fantasía
_rrr está formado por Ernesto Romero y Ezequiel Netri en la parte sonora y Jaime Vilarreal en la parte visual. Aqui se muestran solamente los códigos de Ernesto Romero.
/* Tdef(\secFantasia).play Tdef(\secFantasia).stop  Tdef(\fantasia).play; Tdef(\fantasia2).play  Tdef(\fantasia).stop; Tdef(\fantasia2).stop  Tdef(\secFantasia).stop  // Ejecucion (select all & play)  Tdef(\secFantasia).play  ( Tdef(\morongasnight).play; ~outMoronga=Synth(\outMoronga); ~outMoronga.set(\amp, 0.25) ) ( Tdef(\morongasnight).stop; ~outMoronga.set(\gate, 0); ) ~modFraseFantasia=37;~offsetFraseFantasia=0;     // frase 1  indice 0 al 37 ~modFraseFantasia=10;~offsetFraseFantasia=38;    // frase 2  indice 38 al 48 ~modFraseFantasia=15;~offsetFraseFantasia=49;    // frase 3  indice 49 al 64 ~modFraseFantasia=13;~offsetFraseFantasia=65;    // frase 4  indice 65 al 78  ~tempoFantasia=1; ~tempoFantasia=2; ~tempoFantasia=4;  ~tonica=440*(-12..12).midiratio.choose;    ~desfaseFantasia=1/4;Tdef(\secFantasiaDes).play; ~desfaseFantasia=0/4;Tdef(\secFantasiaDes).play;   Tdef(\fantasiaDes).stop; Tdef(\fantasiaDes2).stop; */               ( "/home/tito/Documents/rrr/Rosa/moronga.rtf".load; ( // SynthDef  ( SynthDef(\son, {|freq=440, dur=0.1, amp=0.25, mix=0.5, room=0.75, pan=0|         var sig, env;         env=EnvGen.kr(Env([0,1,1,0],dur*[0.01,0.98,0.01]));         sig=Formant.ar(freq, freq*2, mul:amp)+SinOsc.ar(freq*[1/4,8],0,amp*[1/1,1/2]);         sig=sig.mean;         sig=FreeVerb.ar(sig*env, mix, room);         sig=Pan2.ar(sig,pan);         DetectSilence.ar(sig,doneAction:2);         Out.ar(0,sig);         }).send(s); );  ( SynthDef(\son, {|freq=440, dur=0.1, amp=0.425, mix=0.12, room=0.75, pan=0|         var sig, env;         env=EnvGen.kr(Env([0,1,1,0],dur*[0.01,0.98,0.01]));         sig=Pulse.ar(freq*[1,1.01]/2, 0.5, amp);//+SinOsc.ar(freq*[1/4,8],0,amp*[1/1,1/2]);         sig=LPF.ar(sig.mean, 5000);         sig=FreeVerb.ar(sig*env, mix, room);         sig=Pan2.ar(sig,pan);         DetectSilence.ar(sig,doneAction:2);         Out.ar(0,sig);         }).send(s); ); /* ( SynthDef(\son, {|freq=440, dur=0.1, amp=0.425, mix=0.12, room=0.75, pan=0, freqMod=0|         var sig, env;         env=EnvGen.kr(Env([0,1,1,0],dur*[0.01,0.98,0.01]));         sig=Pulse.ar(freq*[1,1.01]/2, 0.5, amp);         sig=LPF.ar(sig.mean, 5000);         sig=sig+SinOsc.ar(freq*16,0,amp/3);         sig=sig*LFPulse.kr(Demand.kr(Impulse.kr(10),0,Drand([0,0,50,120],inf)));         sig=FreeVerb.ar(sig*env, mix, room);         sig=Pan2.ar(sig,pan);         DetectSilence.ar(sig,doneAction:2);         Out.ar(0,sig);         }).send(s); );    Synth(\son, [\dur, 2]) */   );  // Arrays de notas y duraciones  ( ( ~aNotasFantasia=[// cuartos separados por doble espacio          // frase 1   indice 0 al 37           14, // anacruza          0,0,4,7,  10,10,  10,10,  10,10,          10,11,12,10,  10,10,  10,11,12,10,  10,10,          10,11,12,10,  10,10,11,12,  10,10,  10,11,12,14,                    // frase 2  indice 38 al 48                    /*ligado*/  10,11,12,16, /*ligado*/  10,11,12,17,          /*ligado*/       18,       19,          20,                              // frase 3  indice 49 al 64                    -4,-4,  -4,-4,  -4,-4,  -4,-4,           -5,7,  -6,6,  -7,5,  7,-5,                    // frase 4  indice 65 al 78                    0,7,  12,-5,  0,7, 12,-5,          0,-5,  0,-5, 0,        12,          -5                    ].midiratio );  ( ~aDurFantasia=[// cuartos separados por doble espacio            // frase 1   indice 0 al 37            1/8, // anacruza           1/8,1/24,1/24,1/24,  1/8,1/8,  1/8,1/8,  1/8,1/8,           1/24,1/24,1/24,1/8,   1/8,1/8,  1/24,1/24,1/24,1/8,  1/8,1/8,           1/24,1/24,1/24,1/8,  1/8,1/24,1/24,1/24,  1/8,1/8,  1/24,1/24,1/24, 3/8,                      // frase 2  indice 38 al 48                      /*ligado*/    1/24,1/24,1/24, 3/8,    1/24,1/24,1/24, 3/8,           /*ligado*/    1/4,    1/4,  1/8,                          // frase 3  indice 49 al 64                      1/8,1/8,  1/8,1/8,  1/8,1/8,  1/8,1/8,             1/8,1/8,  1/8,1/8,  1/8,1/8,  1/8,1/8,                      // frase 4  indice 65 al 78                      1/8,1/8,  1/8,1/8,  1/8,1/8,  1/8,1/8,           1/8,1/8,  1/8,1/8,  3/8,          1/8,           3/4           ] );  ( ~aArticulacionFantasia=[// cuartos separados por doble espacio                     // frase 1   indice 0 al 37            \s, // anacruza           \s,\t,\t,\t,  \s,\s,  \s,\s,  \s,\s,           \t,\t,\t,\s,   \s,\s,  \t,\t,\t,\s,  \s,\s,           \t,\t,\t,\s,  \s,\t,\t,\t,  \s,\s,  \t,\t,\t, \t,                      // frase 2  indice 38 al 48                      /*ligado*/    \t,\t,\t, \t,    \t,\t,\t, \t,           /*ligado*/    \t,    \t,  \t,                          // frase 3  indice 49 al 64                      \s,\s,  \s,\s,  \s,\s,  \s,\s,             \s,\s,  \s,\s,  \s,\s,  \s,\t,                      // frase 4  indice 65 al 78                      \s,\s,  \s,\t,  \s,\s,  \s,\t,           \s,\t,  \s,\t,  \t,          \s,           \t                      ] ) );  // Tdefs  frase original    ( ( ~tempoFantasia=2; ( Tdef(\fantasia, {var index, notaArticulada;         (~aNotasFantasia.size).do{|i|             index=i%~aNotasFantasia.size;                      switch(~aArticulacionFantasia[index], \s, {notaArticulada=0.1},                                    \t, {notaArticulada=~aDurFantasia[index]*~tempoFantasia}                   );                          ~son=Synth(\son, [\freq, ~aNotasFantasia[index]*440,                     \dur, notaArticulada]);             (~aDurFantasia[index]*~tempoFantasia).wait;             };                      Tdef(\fantasiaDes).play;         }).quant_(0) ); ( Tdef(\fantasia2, {var index, notaArticulada;         (~aNotasFantasia.size).do{|i|             index=i%~aNotasFantasia.size;                      switch(~aArticulacionFantasia[index], \s, {notaArticulada=0.1},                                    \t, {notaArticulada=~aDurFantasia[index]*~tempoFantasia}                   );                          ~son=Synth(\son, [\freq, ~aNotasFantasia[index]*440*4.midiratio,                     \dur, notaArticulada]);             (~aDurFantasia[index]*~tempoFantasia).wait;             };                      Tdef(\fantasiaDes2).play;         }).quant_(0) ) );  // Tdef secuencia a dos voces en canon  ( Tdef(\secFantasia, {                    Tdef(\fantasia).play;                    ((1/4)*~tempoFantasia).wait; // retraso del canon            Tdef(\fantasia2).play;            }) ) ); // Tdefs Des ( ( ~modFraseFantasia=13;~offsetFraseFantasia=65;    // frase 4 ~tempoFantasia=2; ~tonica=440*(-12..12).midiratio.choose; ~desfaseFantasia=1/4; ( Tdef(\fantasiaDes, {var index, notaArticulada;         inf.do{|i|             index=(i%~modFraseFantasia)+~offsetFraseFantasia;                      switch(~aArticulacionFantasia[index], \s, {notaArticulada=0.1},                                    \t, {notaArticulada=~aDurFantasia[index]*~tempoFantasia}                   );                          ~son=Synth(\son, [\freq, ~aNotasFantasia[index]*~tonica,                     \dur, notaArticulada]);             (~aDurFantasia[index]*~tempoFantasia).wait;             }         }).quant_(0) ); ( Tdef(\fantasiaDes2, {var index, notaArticulada;         inf.do{|i|             index=(i%~modFraseFantasia)+~offsetFraseFantasia;                      switch(~aArticulacionFantasia[index], \s, {notaArticulada=0.1},                                    \t, {notaArticulada=~aDurFantasia[index]*~tempoFantasia}                   );                          ~son=Synth(\son, [\freq, ~aNotasFantasia[index]*~tonica*4.midiratio,                     \dur, notaArticulada]);             (~aDurFantasia[index]*~tempoFantasia).wait;             }         }).quant_(0) ) );  // Tdef secuencia a dos voces en canon  ( Tdef(\secFantasiaDes, {                    Tdef(\fantasiaDes).play;                    ((~desfaseFantasia)*~tempoFantasia).wait; // retraso del canon            Tdef(\fantasiaDes2).play;            }) ) ) )