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


miércoles, 7 de abril de 2010

PD - Excelente Tutorial de Johannes Kreidler

Pure Data (PD) es un programa extraordinariamente versátil para la síntesis y manipulación, no sólo de sonido sino también de gráficos y videos en tiempo real. Fue desarrollado por Miller Puckette, creador de MAX/MSP, con la diferencia que PD es libre y gratuito y según el propio Puckette ha evolucionado más allá de sus propias expectativas gracias a la colaboración de múltiples otros desarrolladores (una de las grandes fortalezas del software libre).

Pueden conseguir el programa y mucha otra información en:

Pure Data es multiplataforma (hay versiones para Linux, Windows y Mac)

Recomiendo que descarguen y trabajen con pd-extended ya que aumenta el potencial del programa pero también pueden limitarse a la versión original y más orientada a audio que es el pd-vanilla (mantenido or Miller Puckette). El pd-extended contiene en su totalidad al pd-vanilla.


Afortunadamente Johannes Kreidler escribió un excelente tutorial para PD y hay una muy buena traducción al castellano de Raúl Lacabanne. Hay una traducción más reciente de Lucas Cordiviola que no he revisado y también está en inglés y alemán (el original) en:

http://www.pd-tutorial.com/

y al abrir el tutorial de Lucas Cordiviola consigue el siguiente enlace:
 Puede descargar el tutorial completo para leerlo en computadoras sin conexión a Internet haciendo click aqui (incluye los patches)


Recomiendo que sigan el tutorial paso a paso y sabrán usar PD mejor que yo.

Espero estar ofreciendo en otras entradas de este blog algunos circuitos y sugerencias en el uso de PD.