03 julio, 2009
ultima fecha de entrega
Los que les falta por entregar deben hacer directo a mi correo personal.
30 junio, 2009
Tareas jose peña
1. Incluye Dust e impulse en dos de tus códigos anteriores, utiliza variables.
2. Realiza un código que tenga Pan2.ar y Mix y el gatillo de Impulse o Dust
(1)
(a)
Mix.fill(2,{Blip.ar(SinOsc.ar(4,0,rrand(500,2000),0,EnvGen.ar(Env.perc,Dust.ar(2))))})}.play
(1)
(b)
{Mix.fill(2,{SinOsc.ar([rrand(150,250),10], 0,EnvGen.ar(Env.perc,Dust.ar(1)))*Saw.ar(rrand(200,250),EnvGen.ar(Env.perc(0.5, 0.7, 0.7, 0.5),Impulse.ar(rrand(3.5,2.0))))})*0.5}.scope
(2)
({Pan2.ar({Mix.fill(3,{SinOsc.ar(rrand(100,200), 0,EnvGen.ar(Env.sine(5,6),Impulse.ar(2)))})},SinOsc.kr(0.5))}.scope)
Tarea 5-partitura
Has una partitura usando "cebolla" y da indicaciones de cómo te moverías en ella, devolviéndote o siguiendo todo el tiempo hacia adelante.
(SynthDef("cebolla",{alt,arm1,arm2,tiempo,vol,pos
var suena,total;
suena =Blip.ar(alt,XLine.kr(arm1,arm2,tiempo),vol);
total =Pan2.ar(suena,SinOsc.kr(pos),vol);Out.ar(0,total)}).send(s))
f=Synth("cebolla",[\alt,rrand(100,1000),\arm1,10,\arm2,70,\tiempo,15,\vol,0.9,\pos,1])
f.set(\alt,rrand(10,20))
f.set(\pos,2)
f.set(\vol,0.5)
f.free
f=Synth("cebolla",[\alt,rrand(100,1000),\arm1,10,\arm2,70,\tiempo,15,\vol,0.9,\pos,1])
f.set(\alt,rrand(50,100))
f.set(\pos,5)
f.set(\vol,0.7)
f.set(\vol,0.6)
f.set(\vol,0.5)
f.set(\vol,0.4)
f.set(\vol,0.3)
f.set(\vol.0.2)
f.free
Este es otro con que practique
(SynthDef("pera",{altura=250var suena;suena=Saw.ar(altura,EnvGen.ar(Env.sine(0.5,1)));Out.ar(0,suena)}).send(s))
(SynthDef("manzana",{altura,armonicos,volumenvar suena;suena=Blip.ar(altura,armonicos,volumen);Out.ar(1,suena)}).send(s))
\*Iniciamos el Synth "manzana "*\
a=Synth("manzana",[\altura,100,\armonicos,3,\volumen,0.1])
b=Synth("pera",[\altura,200])
Synth("pera")
b=Synth("pera",[\altura,200])
b=Synth("pera",[\altura,50])
b=Synth("pera",[\altura,40])
a.set(\altura,200)
Synth("pera")
b=Synth("pera",[\altura,150])
Synth("pera")
b=Synth("pera",[\altura,50])
b=Synth("pera",[\altura,40])
a.set(\altura,100)
b=Synth("pera",[\altura,100])
Synth("pera")
b=Synth("pera",[\altura,50])
a.set(\altura,150)
b=Synth("pera",[\altura,40])
Synth("pera")
a.free
/*Tarea 5-Sinte*/
Has un sintetizador (SynthDef) a partir del siguiente código de Anabel.
(
{var linea,todo, moviendose;
linea = XLine.ar(10,70,7);
todo = SinOsc.ar(Saw.ar(10,100,1000),0,Blip.ar(linea,10,0.2),0.5);
moviendose = Pan2.ar(todo, SinOsc.kr(3))}.scope
)
/*y sugiere diferentes valores para los argumentos*/
(SynthDef("anabel",{distorcion,magico,vol
var linea,todo,moviendose;
linea=XLine.ar(10,70,20);
todo=SinOsc.ar(Saw.ar(0,10,distorcion),0,Blip.ar(linea,magico));
moviendose=Pan2.ar(todo,SinOsc.kr(2),vol);
Out.ar(0,moviendose)}).send(s))
a=Synth("anabel",[\distorcion,1000,\magico,10,\vol,0.5])
a.set(\distorcion,500)
a.set(\magico,5)
a.set(\vol,0.3)
a.free
a=Synth("anabel",[\distorcion,1000,\magico,10,\vol,0.5])
a.set(\distorcion,800)
a.set(\magico,2)
a.set(\vol,0.2)
a.free
a=Synth("anabel",[\distorcion,500,\magico,10,\vol,0.5])
a.set(\distorcion,250)
a.set(\magico,20)
a.set(\vol,0.3)
a.free
Ultima tarea
Hacer dos ejercicios Código-SynthDef-Pbind, donde se utilicen los patrones Pshuf,Prand, Pwhite y Pseq.
Synth Pbin— Original partitura sin azar. Como debe sonar normalmente
(SynthDef("run",{altura=0var suena;suena=Saw.ar(altura,EnvGen.ar(Env.sine(0.5,1)));Out.ar(0,suena)}).store)
Pbind(\instrument,\run,\altura,
Pseq([70,80,90,100,110,120,110,100,90,80,70,190,190,200,200,190,190,
180,180,170,170,160,160,150,150,140,140,150,120,160,110,170,100,180,
90,190,90,200,80,210,70,220,60,230,50,70,60,80,70,90,80,100,90,110,100,
120,110,130,120,140,130,150,140,160,130,150,120,140,110,130,100,120,90,110,80,100,70,90,60,80,50,60,40,50],1),
\dur,0.3).play
Synth Pbin: Aplicando Pwhite, Prand, Pshuf, Pseq.
El Pseq los estoy utilizando en la partitura original y con esto obtengo los dos ejercicios que pidió.
Pbind(\instrument,\run,\altura,
Pshuf([70,80,90,100,110,120,110,100,90,80,70,190,190,200,200,190,190,
180,180,170,170,160,160,150,150,140,140,150,120,160,110,170,100,180,
90,190,90,200,80,210,70,220,60,230,50,70,60,80,70,90,80,100,90,110,100,
120,110,130,120,140,130,150,140,160,130,150,120,140,110,130,100,120,90,110,80,100,70,90,60,80,50,60,40,50],1),
\dur,Pwhite(0.1,0.5)).play
En este ejercicio aplicamos Pshuf y Pwhite.
(Pbind(\midinote,Prand([69,71,72,74,76,74,72,71,69,90,88,86,84,85,83,76,74,72,71,69],inf),\dur, 0.1).play)
Aplique MIDINOTE para hacer el segundo ejercicio con Prand
(Pbind(\midinote,Prand([69,71,72,74,76,74,72,71,69,90,88,86,84,85,83,76,74,72,71,69],inf),\dur, 0.1).play)
29 junio, 2009
Evaluación y cierre de trimestre
Ultima tarea
Patrones para Pbind
/*Los patrones son secuencias de números que van cambiando a cada vuelta del Pbind, de diferentes maneras de acuerdo a cada caracterítica individual.
Pseq es una secuencia que se establece y se le dice cuantas vueltas debe dar, podemos usar "inf" para indicar que es infinito*/
(
Pbind(\midinote, Pseq([69,71,72,74,76],inf),
\dur, 0.1
).play
)
/*Pshuf baraja los números que tiene y escoge una secuencia y la repite, si te detienes y empiezas otra vez escogerá otra secuencia con las mismas notas*/
(
Pbind(\midinote, Pshuf([69,71,72,74,76],inf),
\dur, Pseq([1,0.5,0.5],inf)
).play
)
/*Prand escoge aleatoriamente de su lista a cada vuelta
*/
(
Pbind(\midinote, Prand([69,71,72,74,76],inf),
\dur, Prand([0.1,0.3,0.3],inf)
).play
)
/*Pwhite se parece a rrand, se establece la cota superior y la inferior, si no se pone duración asume el infinito como default*/
(
Pbind(\freq, Pwhite(400,1000),
\dur, Pwhite(0.1,0.3)
).play
)
SIntetizador genérico para Pbind
Supercollider tiene un sintetizador genérico que responde al Pbind sin tener que hacer código, ni declarar SynthDef
/*\dur,es el tiempo antes de que de la vuelta*/
(
Pbind(\freq, 400,
\dur, 0.1
).play
)
/*En vez de poner frecuencias se puede poner notas midi(que van del 0 a 127)*/
(
Pbind(\midinote, 69,
\dur, 0.5
).play
)
/*Otros parámetros son amp, para amplitud*/
(
Pbind(\midinote, 69,
\dur, 0.5 ,
\amp, 0.01
).play
)
Otro Ejemplo de SInte a Pbind
(SynthDef("manzana",{|altura,armonicos,volumen,paneo|
var suena,env;
env = EnvGen.ar(Env.perc,doneAction:2);
suena =Blip.ar(altura,armonicos,volumen);
suena =Pan2.ar(suena*env,paneo);
Out.ar(0,suena)}).store
)
(Pbind(\instrument,\manzana,
\altura,Prand([500,200,30],inf),
\armonicos, Prand([5,20,3],inf),
\volumen,0.3,
\paneo,Pwhite(-1.0,1.0),
\dur,Prand([0.2,0.3,0.1],inf)).play
)