15 junio, 2009

Tareas 5 Creacion de sintes y partituras


Tenemos el siguiente código que quiero volverlo un sintetizador:

{Blip.ar(400, 10, 0.5)}.scope

/*400, 10 y 0.5 son argumentos respectivamente para freq, numero de armonicos y mul, o sea amplitud*/


(

SynthDef("manzana",/*le doy cualquier nombre al sintetizador*/

{|altura,armonicos,volumen|

var suena;

suena =Blip.ar(altura,armonicos,volumen);

Out.ar(1,suena)}

).send(s)/*0 es a la izquierda y 1 a la derecha*/

)

/*defino argumentos, tambien les pongo cualquier nombre, pero preferiblemente que tengan relacion, si todo está bien te debe decir en el postwindow:  a SynthDef */

/*Otro ejemplo, puedo poner valores de una vez a los argumentos que funcionarán como valores default*/

(SynthDef("pera",{|altura=300,volumen= 1|

var suena;

suena =Saw.ar(altura,EnvGen.ar(Env.sine(0.5,1)));

Out.ar(0,suena)}).send(s)

)

/*Así lo hago sonar, dándole valores, si quiero verlo en scope llamo al scope aparte con s.scope*/

Synth("manzana",[\altura,1000,\armonicos,5,\volumen,0.1])

s.scope

/*como "pera" tiene valores default lo puedo llamar sin darle nada*/

Synth("pera")

/*Es importante que los argumentos sólo son números, no Ugens o variables*/

Para manejar los sintes es bueno identificarlos con una variable. (Recuerda evitar la s)

a=Synth("manzana",[\altura,1000,\armonicos,5,\volumen,0.1])

/*Ya luego puedes simplemente cambiarle los valroes al sinte usando .set. Deja el anterior sonando y dale a*/

a.set(\altura,560)

puedes usar variables del ambiente (Importante el tilde)

~manzana=Synth("manzana",[\altura,1000,\armonicos,5,\volumen,0.1])

~manzana.set(\altura,2560)

~manzana.free

Puedo usar en vez de frecuencia en Hertz números midi

~manzana=Synth("manzana",[\altura,99.48.midicps,\armonicos,5,\volumen,0.1])

~manzana.set(\altura,69.midicps)

~manzana.free


~pollitos = Synth("pera",[\altura,60.midicps,\vel,2])

~pollitos = Synth("pera",[\altura,62.midicps])

~pollitos = Synth("pera",[\altura,64.midicps])

~pollitos = Synth("pera",[\altura,65.midicps])

~pollitos = Synth("pera",[\altura,67.midicps])

~pollitos.free


/*si incluimos EnvGen y el sonido se acaba ya no podemos usar el .set y les dirá FAILURE /n_set Node not found*/




(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)

)

/*esto sería como una partitura, a medida que vas bajando vas tocando, tambien puedes devolverte*/

z=Synth("cebolla",[\alt,rrand(100,1000),\arm1,10,\arm2,70,\tiempo,15,\vol,0.9,\pos,1])

z.set(\alt,rrand(30,50))

z.set(\pos,5)

z.set(\pos,1)

z.set(\tiempo,25)

z.free

s.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.

/*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*/





22 comentarios:

  1. hola profe esta es mi tarea


    (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)

    )

    z=Synth("cebolla",[\alt,rrand(100,1000),\arm1,10,\arm2,70,\tiempo,15,\vol,0.9,\pos,1])

    z.set(\alt,rrand(30,50))

    z.set(\pos,45)

    z.set(\pos,8)

    z.set(\pos,20)

    z.set(\pos,55)

    z.set(\pos,16)

    z.set(\tiempo,25)

    z.free

    s.scope

    ResponderSuprimir
  2. hola profe esto fue lo q hice para la tarea

    (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)

    )

    r=Synth("cebolla",[\alt,rrand(90,10),\arm1,5,\arm2,57,\tiempo,15,\vol,0.9,\pos,1])

    r.set(\alt,rrand(30,50))

    r.set(\pos,2)

    r.set(\pos,5.3)

    r.set(\pos,9)

    r.set(\pos,4)

    r.set(\pos,1)

    r.set(\tiempo,5)

    r.free

    s.scope

    ResponderSuprimir
  3. Profe esta es mi tarea


    (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)

    )

    z=Synth("cebolla",[\alt,rrand(100,1000),\arm1,50,\arm2,90,\tiempo,27,\vol,10,\pos,5])

    z.set(\alt,rrand(30,50))

    z.set(\pos,30)

    z.set(\pos,60)

    z.set(\pos,90)

    z.set(\pos,120)

    z.set(\pos,150)

    z.set(\pos,180)

    z.set(\pos,210)

    z.set(\pos,240)

    z.set(\pos,270)

    z.set(\tiempo,300)

    z.free

    s.scope

    ResponderSuprimir
  4. Tarea nro5

    (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)

    )

    m=Synth("cebolla",[\alt,rrand(50,300),\arm1,5,\arm2,90,\tiempo,10,\vol,0.7,\pos,1])

    m.set(\alt,rrand(90,100))

    m.set(\pos,1)

    m.set(\pos,5)

    m.set(\pos,4)

    m.set(\pos,1)

    m.set(\pos,2)

    m.set(\tiempo,20)

    m.free

    s.scope

    ResponderSuprimir
  5. (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)
    )

    ~cebolla=Synth("cebolla",[\alt,50,\arm1,10,\arm2,180,\tiempo,15,\pos,0,\vol,0.5])
    ~cebolla.set(\alt,100)
    ~cebolla.set(\alt,60)
    ~cebolla.set(\alt,110)
    ~cebolla.set(\alt,70)
    ~cebolla.set(\alt,120)
    ~cebolla.set(\alt,80)
    ~cebolla.set(\alt,130)
    ~cebolla.set(\alt,90)

    ResponderSuprimir
  6. Para Fran, cómo vas a tener vol en 10!!! repite el ejercicio

    ResponderSuprimir
  7. (
    SynthDef("Anabel",{|os=10,fr=100,no=1000,ha=10,mu=0.5,pa=3|
    var linea,todo,paneo;
    linea= XLine.ar(10,70,7);
    todo= SinOsc.ar(Saw.ar(os,fr,no),0,Blip.ar(linea,ha,0.2),mu);
    paneo= Pan2.ar(todo, SinOsc.kr(pa));
    Out.ar(0,paneo)}).send(s)
    )


    a= Synth("Anabel")
    a.set([\os,50,\fr,150,\no,2500,\ha,30,\mu,0.8,\pa,2])
    a.set([\os,180,\fr,300,\no,5000,\ha,50,\mu,1,\pa,1])
    a.free



    Aqui esta la ultima parte de la tarea, perdon que no la postee antes (a decir verdad pense que ya no podia por lo que me dijo antes de salir en laultima clase, no se si cuente pero igual aqui esta).

    No toque el Xline porque como hablamos en la ultima clase no hay diferencia si uno cambia el Xline a medida que corre el Synth.
    Los valores originales los use como Default del Synth.

    ResponderSuprimir
  8. hola profe esta es mi tarea de sintetizador usando el codigo de anabel
    (
    SynthDef("Anabel",{|os=10,fr=100,no=1000,ha=10,mu=0.5,pa=3|
    var linea,todo,moviendose;
    linea= XLine.ar(10,70,7);
    todo= SinOsc.ar(Saw.ar(os,fr,no),0,Blip.ar(linea,ha,0.2),mu);
    moviendose= Pan2.ar(todo, SinOsc.kr(pa));
    Out.ar(0,moviendose)}).send(s)
    )


    a= Synth("Anabel")
    a.set([\os,45,\fr,200,\no,1500,\ha,45,\mu,0.8,\pa,2])
    a.set([\os,80,\fr,150,\no,1000,\ha,60,\mu,1,\pa,1])
    a.set([\os,90,\fr,150,\no,2500,\ha,75,\mu,1,\pa,2])
    a.free

    ResponderSuprimir
  9. Hola profe.. esta la parte de b de la tarea 5
    (
    SynthDef("Anabel",{|os=10,fr=100,no=1000,ha=10,mu=0.5,pa=3|
    var linea,todo,moviendose;
    linea= XLine.ar(10,70,7);
    todo= SinOsc.ar(Saw.ar(os,fr,no),0,Blip.ar(linea,ha,0.2),mu);
    moviendose= Pan2.ar(todo, SinOsc.kr(pa));
    Out.ar(0,moviendose)}).send(s)
    )


    a= Synth("Anabel")
    a.set([\os,66,\fr,100,\no,1500,\ha,55,\mu,0.8,\pa,1])
    a.set([\os,30,\fr,150,\no,3000,\ha,45,\mu,0.9,\pa,1])
    a.set([\os,66,\fr,300,\no,2000,\ha,85,\mu,1,\pa,2])
    a.set([\os,23,\fr,250,\no,3000,\ha,80,\mu,0.9,\pa,1])
    a.set([\os,90,\fr,200,\no,1500,\ha,80,\mu,1,\pa,1])
    a.free

    ResponderSuprimir
  10. ya le cambie el vol profe al otro ejercicio aqui esta

    (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)

    )

    z=Synth("cebolla",[\alt,rrand(100,1000),\arm1,20,\arm2,50,\tiempo,27,\vol,0.9,\pos,1])

    z.set(\alt,rrand(30,50))

    z.set(\pos,30)

    z.set(\pos,60)

    z.set(\pos,90)

    z.set(\pos,120)

    z.set(\pos,150)

    z.set(\pos,180)

    z.set(\pos,210)

    z.set(\pos,240)

    z.set(\pos,270)

    z.set(\tiempo,300)

    z.free

    s.scope

    ResponderSuprimir
  11. Tarea n5

    (

    {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);

    Pan2.ar(todo, SinOsc.kr(3))}.scope

    )

    (
    SynthDef("anabel",{|lados=1,altura=100,tiempo=3,vol=0.4|

    var linea,todo,moviendose;

    linea = XLine.ar(10,70,tiempo);

    todo = SinOsc.ar(Saw.ar(altura,100,1000),0,Blip.ar(linea,10,0.2),0.5);

    moviendose =Pan2.ar(todo,SinOsc.kr(lados));

    Out.ar(0,moviendose)}).send(s)

    )

    x=Synth("anabel")
    x.set([\lados,-1,\altura,300,\tiempo,8,\vol,0.9])
    x.set([\lados,0,\altura,200,\tiempo,5,\vol,0.7])
    x.set([\lados,1,\altura,220,\tiempo,5,\vol,0.6])
    x.set([\lados,0,\altura,260,\tiempo,4,\vol,0.8])
    x.set([\lados,-1,\altura,100,\tiempo,7,\vol,0.9])
    x.free

    ResponderSuprimir
  12. Tarea. Israel Di Barros.

    (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)

    )

    z=Synth("cebolla",[\alt,rrand(200,1300),\arm1,8,\arm2,68,\tiempo,15,\vol,0.8,\pos,1])

    z.set(\alt,rrand(40,60))

    z.set(\pos,35)

    z.set(\pos,9)

    z.set(\pos,25)

    z.set(\pos,35)

    z.set(\pos,18)

    z.set(\tiempo,10)

    z.free

    s.scope

    ResponderSuprimir
  13. Este comentario ha sido eliminado por el autor.

    ResponderSuprimir
  14. Israel
    el programa te dice: ERROR: Variable 'moviendose' not defined y paneo no esta definida. Repitelo.

    ResponderSuprimir
  15. Este comentario ha sido eliminado por el autor.

    ResponderSuprimir
  16. Mireles, en la parte dePan2.ar(todo,SinOsc.kr(lados))

    El segundo argumento es la posición en la panorámica, entre -1 y 1, pero si metes Sinosc.kr lo mueve continuamente entre esos números (-1 y 1) y lo que vas a meter en "lados" es a la velocidad a la que se mueve en esos rangos.

    REPITELO

    ResponderSuprimir
  17. PARAMETRO DE TIEMPO EN EL CODIGO DE ANABEL,NO ES MODIFICAble HABLAMOS DE ESO MAÑANA EN CLASES.

    ResponderSuprimir
  18. Alex, repítelo sin que haga click al comenzar.

    ResponderSuprimir
  19. Andros, repitelo sin que haga click al comenzar y terminar.

    ResponderSuprimir
  20. Israel Di Barros
    (
    SynthDef("Anabel",{|os=10,fr=100,no=1000,ha=10,mu=0.5,pa=3|
    var linea,todo,moviendose;
    linea= XLine.ar(10,70,7);
    todo= SinOsc.ar(Saw.ar(os,fr,no),0,Blip.ar(linea,ha,0.2),mu);
    moviendose= Pan2.ar(todo, SinOsc.kr(pa));
    Out.ar(0,moviendose)}).send(s)
    )


    a= Synth("Anabel")
    a.set([\os,55,\fr,90,\no,2000,\ha,60,\mu,1,\pa,2])
    a.set([\os,40,\fr,120,\no,1500,\ha,50,\mu,0.8,\pa,1])
    a.set([\os,50,\fr,280,\no,2500,\ha,75,\mu,1,\pa,1])
    a.set([\os,30,\fr,220,\no,3000,\ha,90,\mu,0.6,\pa,1])

    a.free

    ResponderSuprimir
  21. Este comentario ha sido eliminado por el autor.

    ResponderSuprimir
  22. Tarea n5 / Corregida Con nuevos parametros!!

    (

    {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);

    Pan2.ar(todo, SinOsc.kr(3))}.scope

    )

    (
    SynthDef("anabel",{|lados=1,altura=100,tiempo=5,vol=0.4|

    var linea,todo,moviendose;

    linea = XLine.ar(10,70,tiempo);

    todo = SinOsc.ar(Saw.ar(altura,100,1000),0,Blip.ar(linea,10,0.2),0.5);

    moviendose =Pan2.ar(todo,SinOsc.kr(lados));

    Out.ar(0,moviendose)}).send(s)

    )

    x=Synth("anabel")
    x.set([\lados,2,\altura,300,\vol,0.9])
    x.set([\lados,10,\altura,200,\vol,0.7])
    x.set([\lados,3,\altura,220,\vol,0.6])
    x.set([\lados,5,\altura,90,\vol,0.8])
    x.set([\lados,10,\altura,100,\vol,0.9])
    x.free

    ResponderSuprimir

Nota: solo los miembros de este blog pueden publicar comentarios.