martes, 13 de abril de 2010

SC: Evaluar varias líneas de código

Entradas anteriores sobre SC (SuperCollider):
Hasta ahora hemos colocado ejemplos de código que están escritos en una sola línea que termina en ; (punto y coma) y que se evalúa (ejecuta) colocando el cursor sobre esa línea y pulsando las teclas CONTROL+ENTER (en Windows).

Si abrimos el código con
(
seguido de un salto de línea y luego el código en varias líneas y para cerrar con salto de línea y
)
y colocamos el cursor inmediatamente después del ( superior y luego pulsamos CONTROL+ENTER, entonces se evalúa todo lo que esté entre los dos paréntesis extremos ( )


Evalúe el siguiente código:

(
{Pan2.ar(
BPF.ar(
Blip.ar(261.66/2,24,1),
130.83*SinOsc.kr(0.25,0,20,21),0.1,8),
SinOsc.kr(0.25,pi/2))
}.play;
)

Revise la ayuda para los ugens Pan2, BPF, Blip y SinOsc para entender lo que está sonando.
Cuando yo lo implemento en mi pc tengo unos golpecitos filtrados que no deberían estar. Si alguien sabe por qué se producen, por favor háganmelo saber (yo creo que es un problema del render de la tarjeta de sonido, un problema con el driver asio). Por lo pronto, así con golpecitos y todo, se puede aprovechar como sonido (serendipia, lo que alivia un poco la frustración).

Para entender mejor lo que está pasando puedes separar el código anterior para ir escuchando la contribución de los diferentes ugens involucrados.

Por ejemplo, evalúa:

{Blip.ar(261.66/2,24,1)!2}.play;

y varía sus parámetros.

Luego evalúa:

{BPF.ar(Blip.ar(261.66/2,24,1),130.83*SinOsc.kr(0.25,0,20,21),0.1,8)!2}.play;

[toda la expresión en una sola línea, o usa los ( ) ]

y finalmente evalúa:

{Pan2.ar(Blip.ar(261.66/2,24,1),SinOsc.kr(0.25))}.play


Regresando a la evaluación de varias líneas de código a la vez, evalúa el siguiente código:

(
{
Saw.ar(110,0.4)*EnvGen.kr(Env.linen(5,0.2,4));

DelayN.ar(RLPF.ar(GrayNoise.ar(0.2),220,0.08)
*EnvGen.kr(Env.perc(4)),3,4);


}.play;
)

Sólo suena el ruido GrayNoise.ar y no la diente de sierra Saw.ar.
Después del ; se evalúa el código pero no genera audio hasta el play y me parece que la instrucción del GrayNoise borra la de Saw. Observe, en los ejemplos suministrados en los help de los diversos ugens, el uso del ;


Si queremos escuchar los dos ugens, es muy sencillo, los mezclamos:

(
{
Saw.ar(110,0.4)*EnvGen.kr(Env.linen(5,0.2,4)) +

DelayN.ar(RLPF.ar(GrayNoise.ar(0.2),220,0.08)
*EnvGen.kr(Env.perc(4)),3,4);


}.play;
)


No hay comentarios:

Publicar un comentario