Contador y Secuenciador
1h 30 mins
¿Qué elementos de Pure data necesitaremos conocer?
¿Para qué, para crear un secuenciador?
Variable int y float
En Pure data una variable numérica va a ser una cajita en la que podamos almacenar un valor numérico. Podremos enviar ese valor por su outlet y también podremos sustituir ese valor por otro, esto nos va a ayudar a crear una estructura que nos permita contar. Esta cajita puede ser de tipo integer, int o de tipo float. Las variables de tipo int solo aceptan números enteros y si reciben un numero decimal ignoraran su parte decimal y solo almacenaran la entera. Sin embargo, las variables de tipo float aceptan números enteros y decimales.
Contador
Una vez que conocemos la variable, vamos a utilizarla para realizar un contador.
Anteriormente, introdujimos este concepto si tienes alguna duda vuelve a la página tal.
Un contador nos va a permitir contar el número de veces que sucede un evento y en función de ese número tomaremos decisiones, de momento vamos a dejar lo de tomar decisiones más adelante y ahora aprenderemos a contar con Pure data. En este caso, utilizaremos una variable de tipo int, al contenido de esa variable le sumaremos 1 cada vez que llegue un evento.
Como podéis apreciar en el patch, el outlet de la cajita de la variable i se envía a la entrada de otra cajita cuya función es sumar una unidad al valor que entre y devolver el resultado por su salida.
El resultado de esta suma se envía al inlet derecho de la variable i que lo almacenara. Los valores que entran por el inlet derecho de la variable i sustituyen el valor que almacena la variable sin sacarlo de nuevo por el outlet de la cajita con la variable i.
Para obtener el valor almacenado en la variable i a traves de su outlet utilizaremos un bang en su inlet izquierdo. El mensaje con el valor 0 en el inlet derecho nos permitirá inicializar el contador a 0.
Tomaremos como valor de cuenta el resultante de la suma, luego el output del +1.
%
El objeto % es un operador matemático conocido como módulo, que devuelve por su outlet el resto de una division. El argumento de objeto(¿?) indica el divisor que también se puede configurar en el inlet derecho. El dividendo es el valor introducido por el inlet izquierdo y el resto de esta division es el outlet del objeto %.
Radio
El Radio es una interfaz gráfica (GUI) que nos permite enviar valores correspondientes con una secuencia de celdas, esos valores se envían activando las diferentes celdas.
Para seleccionar cada celda, clicaremos sobre ella o enviaremos al inlet del radio un numero correspondiente a la posición de la celda. La numeración de las celdas comienza en 0, luego la primera celda corresponderá con el numero 0. Esta interfaz podrá ser vertical u horizontal y configuraremos el número de celdas, haciendo click derecho sobre el radio>Propiedades>Número de Celdas. En propiedades también podremos configurar los colores, etiqueta o tamaño del radio.
El radio por defecto tiene 8 celdas que tendremos que ajustar a nuestras necesidades. Este objeto nos va a ser extremadamente útil para visualizar secuencias o iniciar distintos eventos.
Contador cíclico
Ahora vamos a crear un contador que llegue a un número determinado y vuelva a empezar, para ello vamos a utilizar el objeto %, que nos proporciona el resto de una división. Dividiremos por el numero al que queremos que llegue la cuenta teniendo en cuenta que el primero de esos números sera 0. Por ejemplo, si queremos que cuente hasta 8, 8 será nuestro divisor y el argumento de %. El resto de esta división tendrá valores entre 0-7. De esta forma obtendremos una cuenta cíclica de 8 pasos.
Select, sel
Este objeto nos va a permitir clasificar valores, comparando el valor que recibe en su inlet izquierdo con el o los argumentos que contiene. Si en esa comparación hay una coincidencia emitirá un bang por el outlet correspondiente a ese argumento, comenzando a contar por la izquierda. Cuando no haya una coincidencia emitirá el valor recibido y no coincidente por el outlet derecho.
Digamos que si el objeto select tiene 5 argumentos, va a tener 6 puertas de salida. Para salir por cada una de las puertas hay que cumplir un requisito. En el caso de la figura de abajo, para salir por la primera puerta (primera-izquierda) el valor recibido tiene que ser un dos, para salir por la segunda puerta un 4, por la tercera un 6, por la cuarta puerta el valor deberá de ser igual a 8 y por la quinta igual a 10.
¿Y quién sale por la ultima puerta? Por la ultima puerta salen todos los valores que no puedan salir por las puertas anteriores y es la unica que enviara un valor número, el resto de las puertas envían un mensaje de bang.
Ejercicio: Utilizando el contador que acabamos de ver y el objeto selector crea una melodía de 8 tiempos. Pista: Utiliza el objeto select para enviar las diferentes notas en el momento deseado.