domingo, 10 de mayo de 2009

Reproducir musica en un Airport Express desde Ubuntu

Luego de buscar un dispositivo que tenga la misma funcionalidad que el Airport Express pero sin una manzanita en su logo (por filosofías incompatibles con mi sistema operativo), terminé resignado a instalar este aparatito de Apple y dispuesto a darle batalla con mi Ubuntu 9.04.
El primer paso luego de la instalación es verificar si funciona, y el camino mas corto para ello era sin lugar a duda instalar el soft original en una máquina VMWare con XP.
Las caracteristicas del Airport sobrepasan la reproducción de música vía mi tarjeta wireless, ya que entre otras cosas se puede compartir una impresora por el puerto usb, con algunas restricciones también un disco usb externo, se puede configurar el mismo para hacer de cliente de nuestro AP wireless, ampliar la misma o crear una nueva dejando al airport como AP.
Ahora, después de configurarlo para que se integre con mi red (WPA2) sin problemas, y reproducir algun que otro mp3 desde el iTunes, se veía venir lo peor. Que todo ese sonido lo genere una aplicación Ubuntera. Para ello nos vamos a apoyar en una aplicación desarrollada por Jon Lech Johansen (más conocido como DVD Jon) a partir de ingeniería inversa, luego de analizar el streaming de Audio del Airport Express.
Dicha aplicación se llama Raop Play y para poder compilarlo necesitamos tener instalados algunos paquetes en nuestro Linux. Para ello, desde una consola ejecutamos:

[pablo@laptop]# sudo apt-get install gcc g++ libssl-dev libssl0.9.8 libfltk1.1 libfltk1.1-dev libglib2.0-0 libglib2.0-dev libsamplerate0 libsamplerate0-dev libid3tag0 libid3tag0-dev

Para poder reproducir todos los formatos debemos tener instalado también:

[pablo@laptop]# sudo apt-get install mpg321 ogg123 faad flac

Los fuentes del Raop Play se pueden descargar de: http://raop-play.sourceforge.net/

Luego de descomprimir el .tar.gz nos ubicamos en su carpeta y ejecutamos el siguiente comando:

[pablo@laptop]# ./configure

[pablo@laptop]# make

[pablo@laptop]# sudo make install


Cuando hacemos el ./configure nos fijamos en los mensajes que se van mostrando, por si hay algún error que sepamos qué nos falta o qué tenemos que hacer. En mi caso descubrí que no tenía el compilador de C++ instalado, ya que no lo encontraba en la compilación.

Bueno, ya podemos hacer streaming de audio por línea de comandos, pero nuestro objetivo es poder configurar un cliente de música, como Amarok, para hacer el streaming. Si queremos ver que todo funciona podemos comprobarlo en el terminal, siempre y cuando el Airport Express esté conectado correctamente a la red:

[pablo@laptop]# aexcl_play --aexip "la-IP-de-nuestro-Airport-Express" "directorio-de-musica"

Esto nos abrirá un pequeño interfaz gráfico para manejar la música que estamos reproduciendo a través del Airport.

Sin mas complicaciones brotó de los parlantes el sonido esperado.

Suerte!

Fuente: http://raop-play.sourceforge.net/