Madsonic est un un serveur de streaming audio et vidéo, fork gratuit de Subsonic, basé sur Java. Il existe pas mal de tuto pour installer Subsonic sur serveur ou desktop, mais je me suis heurté à quelques bugs en suivant les trames sur le net. Le principal rend inutilisable la fonction télécommande (remote ou RC) de l'application android; fonction qui permet de piloter la chaine hifi reliée au PC qui fait office de serveur avec un smartphone ou une tablette.
Il faudra donc installer la version oracle et non pas openjdk de java. Pour cette partie, suivre le tuto mis à disposition sur Webupd8.
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer
Ensuite installer le .deb dispo sur le forum Madsonic (créer un compte) . Ayant réinstallé mon HTPC avec la version 14.04 LTS de Ubuntu, j' ai choisi la dernière version stable en date, Madsonic server 5.0 final. Je mets une sauvegarde du .deb ici mais allez toujours à la source éditeur pour vos téléchargements.
On va ouvrir le port 4040 sur le serveur :
sudo ufw allow in 4040
On va maintenant changer les permissions. Par défaut, le processus Madsonic est exécuté en tant que super-utilisateur. Pour améliorer la sécurité, il est fortement conseillé que vous l'exécutiez en tant qu'utilisateur dédié avec des privilèges moins élevés. Pour ce faire vous devez spécifier votre nom utilisateur dans le fichier de config.
gksu gedit /etc/default/madsonic
Et éditer la ligne SUBSONIC_USER=root par SUBSONIC_USER=votreuser .
Note : les utilisateurs non-root ne sont pas autorisés à utiliser les ports inférieurs à 1024. Veillez aussi à accorder les autorisations d'écriture de l'utilisateur dans les répertoires de musique, sinon il sera impossible de changer les covers.
Il va falloir rebooter la machine avant de se rendre sur la page de Madsonic : http://localhost:4040
Commandes Usuelles :
sudo service madsonic start
sudo service madsonic restart
Utilisation d'un DAC USB :
il va falloir passer cette carte son par défaut, sinon encore une fois la fonction remote de l'application Android ne sera fonctionnelle qu’après manipulations à chaque redémarrage. Ayant déjà désactivé dans le BIOS la puce son de la carte mère, la sortie HDMI est la sortie utilisée par défaut :
cat /proc/asound/cards
qui nous retourne alors
0 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xddffc000 irq 17
1 [DAC ]: USB-Audio - HiFimeDIY DAC
HiFimeDIY Audio HiFimeDIY DAC at usb-0000:00:1d.0-2, full speed
On souhaite que le DAC USB reconnu en 1 prenne la place de la carte 0 afin qu'il devienne la carte son par défaut, on va éditer le fichier de configuration d'Alsa :
gksudo gedit /etc/modprobe.d/alsa-base.conf
Ajouter:
# Assign USB Audio as default sound card options snd_usb_audio index=-1
Effacer ces 2 lignes :
# Keep snd-usb-audio from beeing loaded as first soundcard options snd-usb-audio index=-2
le nouveau fichier de config devrait ressembler à ceci :
# autoloader aliases install sound-slot-0 /sbin/modprobe snd-card-0 install sound-slot-1 /sbin/modprobe snd-card-1 install sound-slot-2 /sbin/modprobe snd-card-2 install sound-slot-3 /sbin/modprobe snd-card-3 install sound-slot-4 /sbin/modprobe snd-card-4 install sound-slot-5 /sbin/modprobe snd-card-5 install sound-slot-6 /sbin/modprobe snd-card-6 install sound-slot-7 /sbin/modprobe snd-card-7 # Cause optional modules to be loaded above generic modules install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; } # # Workaround at bug #499695 (reverted in Ubuntu see LP #319505) install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; } install snd-mixer /sbin/modprobe --ignore-install snd-mixer $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss ; : ; } install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe --quiet --use-blacklist snd-seq-oss ; : ; } # install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; : ; } # Cause optional modules to be loaded above sound card driver modules install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-emu10k1-synth ; } install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq ; } # Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway) install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; } # Assign USB Audio as default sound card options snd_usb_audio index=-1 # Prevent abnormal drivers from grabbing index 0 options bt87x index=-2 options cx88_alsa index=-2 options saa7134-alsa index=-2 options snd-atiixp-modem index=-2 options snd-intel8x0m index=-2 options snd-via82xx-modem index=-2 options snd-usb-audio index=-2 options snd-usb-caiaq index=-2 options snd-usb-ua101 index=-2 options snd-usb-us122l index=-2 options snd-usb-usx2y index=-2 # Ubuntu #62691, enable MPU for snd-cmipci options snd-cmipci mpu_port=0x330 fm_port=0x388 # Keep snd-pcsp from being loaded as first soundcard options snd-pcsp index=-2
Puis redémarrer. Dans l'application Madsonic, on a bien la fonction RC fonctionnelle.
Pulseaudio Resampler la sortie DAC en 24 bit - 96 khz
Voir doc Ubuntu et pulse-daemon.conf(5) - Linux man page. La manipulation se fait dans le fichier /etc/pulse/daemon.conf . Les autres formats disponibles sont ( mais doivent être supportés par votre carte ):
u8, s16le, s16be, s24le, s24be, s24-32le, s24-32be, s32le, s32be float32le, float32be, ulaw, alaw. Depending on the endianess of the CPU the formats s16ne, s16re, s24ne, s24re, s24-32ne, s24-32re, s32ne, s32re, float32ne, float32re (for native, resp. reverse endian) are available as aliases.
Changer les valeurs par défaut par : (retirer les espaces et le ";" pour dé-commenter les lignes)
default-sample-format = s24le default-sample-rate = 96000 resample-method = src-sinc-best-quality
Relancer pulseaudio :
pulseaudio -k pulseaudio -D
Vérifions que les changements ont étés pris en compte :
find /proc/asound -name "hw_params" -exec cat {} \; | grep -v closed
la commande doit retourner l'info: rate 96000
Avec ce réglage pour une carte son xonar ST :
default-sample-format = s24-32le
default-sample-rate = 96000
find /proc/asound -name "hw_params" -exec cat {} \; | grep -v closed me retourne :
FMRaccess: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 96000 (96000/1)
period_size: 131072
buffer_size: 131072