Un ejercicio en Pure Data: Un secuenciador de cuatro canales

Este es un pequeño ejercicio en Pure Data para generar un secuenciador de cuatro canales utilizando osciladores:




1. El primer paso es generar un oscilador que permitirá producir sonidos. Para esto, generaremos un objeto de tipo oscilador:

                1. Ctrl+1
                2. Escribir osc~ como parámetro.

2. Ahora, necesitamos una salida de audio. Un objeto de tipo dac~:
               
                1.Ctrl+1
                2. Escribir dac~ como parámetro.
   
En este momento no se escucha ningún sonido, pues no se ha definido una   frecuencia para el oscilador. 


3. La frecuencia del oscilador determina el tono obtenido de este. En vez de trabajar con las frecuencias puras, utilizaremos un objeto intermedio que es el conversor de notas MIDI a frecuencias:
              1. Ctrl+1
              2. escribir mtof como parámetro.

4. Ahora asignaremos un número para la nota del osciloscopio:
             1. Ctrl+3
Este número se puede modificar utilizando el mouse. Para modificarlo es preciso cambiar del modo de edición al modo de presentación.

5. queremos modificar la nota de un modo más gráfico. Para esto, insertaremos un objeto de tipo Vslider que permitirá modificar la nota de modo más sencillo. Para esto insertaremos en vez un número, una variable y utilizaremos la salida en frío del slider. 
1. En el menú put elegir el objeto Vslider.
2. Insertar un nuevo objeto (Ctrl+1) y escribir como argumento float.


La salida en frío y en caliente pemiten controlar el flujo del programa de diferente manera. Una salida en caliente tiene un efecto inmediato en la salida. La salida en frío solo es activada por medio de otro evento. 

6. Vamos a añadir cuatro tonos diferentes para generar el secuenciador. Para esto, puede copiarse y pegarse el Vslider y la variable float. En Pure Data las variables no llevan nombre de por sí. La salida de cada variable float debe conectarse al objeto mtof. Nótese que las entradas en frío de cada variable están afectadas por los Vsliders. 

7. Para producir los diferentes tonos, pondermos un objeto de selección con cuatro posiciones posibles:
             1. Ctrl+
             2. Utilizar como parámetro: select 0 1 2 3




Ahora debemos conectar cada salida en caliente de las variables float con las salidas posibles del objeto select:


8. El objeto select solamente envía un pulso a la salida seleccionada. Sin embargo, la selección de la salida debe hacerse utilizando otro objeto, que en este caso será un Vradio:
9. Ahora, solo es necesario conectar la salida del Vradio a la entrada en caliente del objeto select:
En este momento es posible producir sonidos utilizando los Vsliders definidos hasta ahora, junto con el objeto Vradio para cambiar el tono. 

10. La selección del tono se puede hacer iterativamente mediante la introducción de un número iterando entre 0 y 3 para producir las selecciones posibles del Vradio. Para garantizar que los números se mantengan entre 0 y 3 podemos utilizar la operación módulo.



11. Ahora, es necesario iterar este número para producir una melodía continua. Para esto introduciremos un contador:
Nótese la conexión entre salidas en caliente y frío entre la variable float y la instrucción +1 (sumar uno a la entrada en caliente). 

12. Necesitamos ahora que la variable se actualice. Para esto utilizaremos un objeto metro:
Aparte del objeto metro hemos introducido un número como entrada en frío del metro para determinar la duración del objeto metro (la frecuencia de iteración) y un objeto de tipo toggle que permitirá activar ó desactivar el objeto metro. 

Al final debemos terminar con un secuenciador de cuatro tonos iterativo. Para cambiar las notas solo es necesario modificar los valores de los sliders (fuera del modo de edición).