Estrategia y planeación

El objetivo de este proyecto es obtener un dispositivo que permita grabar y reproducir al mismo tiempo cumpliendo con la funcionalidad básica de un looper. Para ello hay que dividir las funcionalidades e irlas resolviendo por partes

Boceto de interfaz de usuario física
(Look & Feel)

Diagrama de bloques funcional de proyecto LoopeRPi
Diagrama de bloques funcional del dispositivo

Unidad de procesamiento

Como procesamiento central, utilizaremos una Raspberry Pi. De preferencia el modelo “Zero” pues es el que tengo libre, pero además por tamaño y simplicidad. Si bien es cierto que un modelo completo (RPi3, o RPi4) ya tiene un conector de audífonos para salida de audio y puertos USB, carece de entrada de audio (micrófono) así que de todos modos se necesita un USB, pero por tamaño, es innecesario lo demás. Lo que me lleva a mencionar…

Adquisición y salida de audio

El procesamiento de audio no se puede llevar a cabo sin una interfaz con el mundo análogo. Para ello usaré una tarjeta de audio USB que compré en Steren, pero bien puede ser una tarjeta usb con entrada de micrófono y salida de audífonos, siempre y cuando sea detectable por la Raspberry, o que tengas acceso a los controladores adecuados.

Afortunadamente mi tarjeta USB fue detectada adecuadamente por la Raspberry, así que en esta guía no llevaré a cabo nada relacionado con los drivers de la tarjeta de sonido.

Procesamiento digital de audio

Aunque para nuestra aplicación, el procesamiento de audio es muy simple, se necesita hacer. Para ello utilizaremos la librería de procesamiento de audio en tiempo real “ChucK“, simplemente porque vi en otros proyectos que es la base de cosas similares (más notoriamente el proyecto de Szymon Kaliski). Originalmente hay otro proyecto de Toby Hendricks que fue presentado en el blog de Raspberry Pi, pero él utiliza un teensy para procesar el audio y los botones. Además que su proyecto es más complejo, así que decidí no irme por ahí y primero tratar de hacer un looper simple con ChucK

Interfaz de usuario

Como interfaz de manipulación, para mantener un uso lo más amigable posible, utilizaré botones push button y una pantalla como si fuera un dispositivo comercial. Además, para hacerlo compatible al hardware utilizado en música, y en lo particular, efectos de guitarra, deberá aceptar entradas en conectores hembra de 1/4 de pulgada mono y salida también monoaural (aunque puede que consiga un conector stereo, sólo por si llego a hacer alguna cosa extra con ChucK que lo requiera después)

Alimentación

De igual manera, para hacerlo compatible, el dispositivo debe tomar su energía de una entrada hembra de 9V con positivo en el exterior y negativo en la punta (del mismo modo que los pedales de guitarra)

De esta alimentación debo derivar los 5V para la Raspberry con su conector micro USB.

Documentación y referencias