Raspberry Pi et Subsonic : le mode Jukebox !

Se servir de Subsonic et du Raspebbry Pi pour faire de l’Airplay avec un smartphone, c’est possible.

Pour ma part, à titre d’exemple, mon raspberry pi est planqué dans un meuble, duquel sortent deux enceintes stéréo. Quand je fais une soirée, je sors mon tél, je lance le client subsonic, et je lance la lecture de la musique. Les potes sont subjugués.

En fait, on se sert du mode « Jukebox » incorporé à Subsonic. Ce mode permet de lire la musique directement là ou se trouve le serveur. Bien sûr, vous devez avoir paramétrer un compte subsonic qui autorise l’exécution du mode Jukebox. Nous allons donc nous servir de notre client subsonic pour obliger son daemon tournant sur votre Raspi de lire la musique directement à partir de sa sortie audio. Et, accrochez-vous, car en procédant comme cela, la RAM ne prends rien du tout, puisque qu’après tout on ne fait que lire un son directement depuis un support de stockage interne/externe, rien de gourmand, donc.

Le problème est que, par défaut, ce mode ne fonctionne pas vers un Raspberry Pi, du moins pas avec une (énorme) majorité de personnes. Voici donc la marche à suivre afin d’y parvenir :

D’abord, il nous faut télécharger une version un peu speciale de JAVA8. Cette version supporte le module JavaFX du JDK pour les processeurs ARM. Cette archive se trouve ici !

Une fois téléchargée, allez à son emplacement via un « cd », et procédez de la façon suivante :

Nous allons d’abord créer un dossier d’extraction :

mkdir -p /opt

Dans lequel nous allons dézipper/installer l’archive précédemment téléchargée :

sudo tar zxvf [le nom complet du tar] -C /opt

Ensuite, il nous faut faire comprendre à Raspian que la nouvelle version de Java qu’on vient d’installer est celle à utiliser par défaut :

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0/bin/java" 1

sudo update-alternatives –set java /opt/jdk1.8.0/bin/java

Maintenant c’est à Subsonic que nous devons le faire comprendre, en créant/mettant à jour la variable d’environnement JAVA_HOME :

sudo nano /etc/environment

Ajouter/modifier la ligne :

JAVA_HOME="/opt/jdk1.8.0"

Ensuite on met également à jour la console bash :

sudo nano ~/.bashrc

Ajouter tout à la fin :

export JAVA_HOME="/opt/jdk1.8.0"

export PATH=$PATH:$JAVA_HOME/bin

Si ce n’est déjà fait, on installe lame et ffmpeg pour un transcodage optimal :

sudo apt-get install ffmpeg lame

On créé les liens symboliques pour mettre à jour lame et ffmpeg au sein de subsonic :

sudo ln -fs /usr/bin/ffmpeg /var/subsonic/transcode

sudo ln -fs /usr/bin/lame /var/subsonic/transcode

Il nous faut ensuite aller modifier le code source de subsonic pour lui faire reconnaitre directement la carte son du Raspi :

sudo nano /usr/bin/subsonic

Trouvez la ligne « -verbose:gc « , et juste AU-DESSUS, aoutez celle-ci :

-Djavax.sound.sampled.SourceDataLine=#ALSA

La dernière étape consiste à choisir quelle sortie audio du Raspi on souhaite utiliser (Jack3.5/HDMI/Auto) .

Privilégiez le Jack3.5 ou le HDMI, l’Auto a tendance à ne pas marcher.

sudo amixer -c 0 cset numid=3 N

N est à remplacer par (1=Jack/2=HDMI)

Suite à cela, faites un :

sudo service subsonic restart

Voilà, il ne vous reste plus qu’à tester sur votre smartphone via une application client subsonic le mode jukebox lié au serveur présent sur le raspberry pi.

Si cela ne fonctionne pas malgré des heures à repasser toutes les manipulations précédentes, vérifiez-bien que vous avez branché les enceintes au raspi.(=Vécu :] )

Vous aimerez aussi...