Instalación de Chuck
Siguiendo la guía de Panisuan Chasinga en medium.com, sólo con unos cambios, en resúmen:
- Instalar ALSA
- Instalar los prerequisitos para ChucK
- Compilar e instalar ChucK
- Configurar los dispositivos de audio
Instalación de ALSA
En una instalación de Linux más completa, ya debería haber una versión de Alsa, pero como estamos usando Raspbian OS Lite (es decir, sin interfaz gráfica) muchas cosas no están incluídas.
Es mejor compilar e instalar, ya que no causó un gran problema.
Descargar la versión más reciente de Alsa
(Visitar web del proyecto Alsa para obtener el link de la versión más reciente)
mkdir -p ~/looper/assets/installs
/
cd ~/looper/assets/installs
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.2.4.tar.bz2
Descomprimir, compilar e instalar
tar -xjf alsa-lib-1.2.4.tar.bz2
cd alsa-lib-1.2.4/
sudo ./configure
sudo make
sudo make install
Prerequisitos para ChucK
De acuerdo a la documentación oficial, chuck requiere varias cosas. Comenzamos con libsnd
Descargar libsnd
, compilar e instalar igual. Visitar la web de libsnd
para obtener la versión más reciente.
cd ~/looper/assets/installs
/
wget http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz
tar -xzvf libsndfile-1.0.28.tar.gz
cd libsndfile-1.0.28/
sudo ./configure
sudo make
sudo make install
Instalar dependencias de Chuck desde los repositorios
sudo apt-get install gcc flex make bison
Descargar la versión más reciente de Chuck
(Visitar web de chuck para obtener el link de la versión más reciente)
cd ~/looper/assets/installs
/
wget https://chuck.cs.princeton.edu/release/files/chuck-1.4.0.1.tgz
tar -xzvf chuck-1.4.0.1.tgz
cd chuck-1.4.0.1/src/
make linux-alsa
sudo make install
Opcional: Para instalar Chuck en otro directorio (por default en /usr/local/bin/
) editar el archivo makefile
en la sección 'install'
antes de ejecutar make install
Probar la instalación
si se ejecuta $ chuck
(./chuck
si no se instaló al path), debería sólo notificar que no hay input files
chuck
[chuck]: no input files… (try --help)
Antes de probar la reproducción de audio, conectar la tarjeta de audio USB y reiniciar la Raspberry.
Probar Chuck
Para probar el audio, ejecutamos un ejemplo de chuck desde otra terminal:
cd ~/looper/assets/installs/chuck-1.4.0.1/examples/
chuck otf_01.ck
NOTA: Falló.
Probaré con definir el dispositivo default de audio.
Definir el dispositivo de audio predeterminado para ALSA
Primera opción: definir el dispositivo a nivel de usuario (referencia).
cd ~
vi .asoundrc
El archivo debe contener la siguiente definición
pcm.!default {
type hw
card 1
device 0
}
ctl.!default {
type hw
card 1
device 0
}
¿Cómo obtener esos números?
Utilizando los comandos arecord y aplay de la API de ALSA, nos enlista los dispositivos y tarjetas conectadas
arecord -l && aplay -l

Probar la configuración de la tarjeta de audio con ALSA
First things first, hay que probar, primero, que ALSA es capaz de hablar con la tarjeta de audio (referencia)
# Reproducir ruido blanco alternativamente en cada lado.
speaker-test -c2
# Probar un archivo de audio .wav
speaker-test -c2 --test=wav -w /usr/share/sounds/alsa/Front_Center.wav
¡Éxito!
Ahora queda resolver, por qué Chuck no usa ALSA adecuadamente.
Forzar a Chuck para utilizar el dispositivo de audio predeterminado
A pesar de que se establece el dispositivo predeterminado de audio a nivel de usuario mediante el archivo .asoundrc
, Chuck lo ignora al ejecutarse.
Intenté resolverlo configurando Chuck para utilizar el dispositivo elegido, pero terminó siendo más fácil deshabilitar definitivamente el chip integrado de audio para que sólo considere la tarjeta USB.
Deshabilitar el dispositivo integrado de audio
Siguiendo la guía de Instructables, basta con crear un archivo de configuración para ALSA que ponga en blacklist el nombre del chip de audio.
sudo nano /etc/modprobe.d/alsa-blacklist.conf
agregar una línea
blacklist snd_bcm2835
Donde snd_bcm2835 es el nombre del dispositivo integrado de audio (validarlo con los comandos arecord -l && aplay -l
)
Tras reiniciar el dispositivo, la Raspberry Pi ignorará el chip de audio en bootup y ahora sí, al ejecutar un ejemplo de Chuck, escucharemos el demo
chuck ~/looper/assets/installs/chuck-1.4.0.1/examples/otf_01.ck
Siguiente: Primeros pasos programando ChucKs