Ahora que nuestra clase ardsynth funciona correctamente y recibimos eventos MIDI podemos empezar a probar algún pequeño programa para comprobar que nuestro sistema puede reproducir sonidos sencillos.
Sintetizador analógico - Cables y módulos (se parece al Pure Data, ¿no?) |
Ardsynth_test.pd
Para ello hemos creado un nuevo patch (programa) en Pure Data en el que hemos instanciado un objeto de la clase ardsynth, que es una representación virtual del Arduino y el cual nos transfiere los eventos MIDI ya empaquetados en mensajes inteligibles por el lenguaje.Como se puede ver en la imagen, tenemos un objeto recieve $0-ardsynth-out que es el que lanza los eventos recibidos. En primer lugar separamos los mensajes cuyo byte de comando sea mayor que 248 (explicación de la estructura de los mensajes MIDI, aquí), ya que pertenecen a instrucciones que no necesitamos (salvo los que sean iguales a 254, que redirigimos a un módulo diferente).
Una vez separados los mensajes, realizamos 3 tareas diferentes en nuestro programa:
- Separamos los 3 bytes de los mensajes que llegan del flujo de instrucciones ya filtradas y los pasamos por un subpatch llamado 'pd simple note synth', que cumple la función de un pequeño sintetizador monofónico (sólo puede hacer sonar una única nota a la vez).
'pd simple note synth' |
- Dirigimos también el flujo de instrucciones útiles a otro subpatch llamado 'pd printMidi', el cual se encarga de mostrar por consola el contenido de los mensajes de una forma más visual, asociando el valor de los bytes de los mensajes a los nombres de las correspondientes acciones (de esta forma, el mensaje 144-60-88 aparece en pantalla como "Channel 0-Note ON-60-88").
No hay comentarios:
Publicar un comentario