Journal Une installation hi-fi de qualitay avec le Raspberry Pi (Arch, Pulseaudio, Shairport, trolls inside)

Posté par  . Licence CC By‑SA.
64
21
oct.
2014

Sommaire

Bonjour,

Aujourd'hui on va s'amuser avec le Raspberry Pi pour en faire une petite borne audio qui fera de nombreux jaloux dans vos soirées mondaines. Mais pas que ça, et c'est bien l'intérêt de la baser sur Arch, vous aurez en parallèle toute la flexibilité pour installer les autres projets qui vous chantent (au hasard : XBMC, Retropie, etc).

Comprendre : vous pourriez obtenir plus ou moins la même chose avec plusieurs cartes SD flashées avec différentes iso spécialisées sous Raspbian, sauf que là vous avez tout sur un seul système, en bleeding edge (désolé pas de traduction) sans avoir besoin de redémarrer pour changer d'activité.

Ainsi Volumio ou PiMusicBox sont de bonnes alternatives pour qui veut écouter de la musique avec son RPi sans se prendre la tête, et donc sans suivre ce tuto. Notez que ces distributions proposent un serveur MPD, ce qui n'est pas abordé dans ce tuto (il faut bien que Pulseaudio serve à quelque chose).

J'ai quoi à la fin ?

  • Un Raspberry Pi branché à vos enceintes
  • Un serveur Pulseaudio qui permet à tous les postes sous Linux/Pulseaudio d'envoyer leurs flux
  • Un récepteur Airplay (audio) pour envoyer du son depuis Mac OS / iOS / Android
  • Rien pour Windows
  • Une qualité sonore au top (bon au moins non dégradée)
  • Une fiabilité plus que correcte
  • Une automatisation totale (tout est prêt au boot)
  • Un système Arch standard pour toutes vos envies futures

Le matos

  • Bon ben un Pi
  • Une alimentation correcte, de type 5V 2A ou 2.5A
  • Une carte SD performante (classe 10 tant qu'à faire)
  • Un DAC USB, la sortie audio du Pi n'étant vraiment pas terrible (11 bits, souffle, claquement au démarrage et à l'extinction)
  • Un hub USB alimenté, le Pi ayant un peu de mal à gérer sur la longueur tout ce qui consomme plus qu'un clavier. Sans vouloir faire de pub, ThePiHut propose un bon hub 7 ports spécialement adapté (sans "backpower" pouvant endommager votre Pi si vous n'êtes pas très chanceux).

Normalement vous vous en sortez pour moins de 100€.

On installe Arch

Outre le fait d'être l'une des deux seules distributions mère à être réellement maintenue pour le Pi avec Raspbian (Debian Stable), et donc la seule à être vraiment à jour, Arch Linux est également à remercier pour la formidable qualité de son wiki. J'hésite donc à faire un copier coller de la manip, mais vu qu'elle diffère d'un simple dd et qu'en plus je fais ce que je veux dans mon journal, la voici en version courte pour une carte SD sur /dev/sdb :

En root :

fdisk /dev/sdb
o
p
n
p
1
ENTER
+100M
ENTER
t
c
n
p
2
ENTER
ENTER
w

Puis

mkfs.vfat /dev/sdb1 && mkdir boot && mount /dev/sdb1 boot && mkfs.ext4 /dev/sdb2 && mkdir root && mount /dev/sdb2 root && wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz && bsdtar -xpf ArchLinuxARM-rpi-latest.tar.gz -C root && sync && mv root/boot/* boot && umount boot root

On peut ensuite insérer sa carte dans le Pi et le brancher.

Configuration de base

On modifie le mot de passe root (par défaut "root") :

passwd root

On ajoute un utilisateur :

useradd -m -g users -G wheel -s /bin/bash pi
passwd pi

On met à jour sa distrib :

pacman -Suy

On installe quelques trucs :

pacman -S git binutils arm-mem-git pulseaudio alsa-plugins alsa-firmware alsa-tools alsa-utils pulseaudio-alsa

reboot

On remplace Vi par nano (Arch ayant une certaine tendance à forcer l'utilisation de Vi - par exemple pour Cron) :

pacman -Rns vi
ln -s /usr/bin/nano /usr/bin/vi

Configuration Alsa

On blackliste le module audio du Pi pour laisser le champ libre au DAC :

nano /etc/modules-load.d/raspberrypi.conf

#snd-bcm2835

On force l'id du DAC dans Alsa :

nano /etc/modprobe.d/alsa-base.conf

options snd-usb-audio index=0

On donne quelques consignes à Alsa pour s'intégrer comme il faut avec Pulseaudio :

nano /etc/asound.conf

    pcm.!default {
      type pulse
      fallback "sysdefault"
      rate_converter "samplerate_best" 
      hint {
        show on
        description "Default ALSA Output (currently PulseAudio Sound Server)"
      }
    }

   ctl.!default {
     type pulse
      fallback "sysdefault"
    }

    defaults.pcm.dmix.!rate 44100

Configuration Pulseaudio

Deux enjeux ici : lancer Pulseaudio en mode session (car le mode système c'est le mal) et le faire travailler en "real time", au plus près du noyau.

On ajoute des groupes à notre utilisateur :

groupadd pulse-rt
usermod -aG pulse-rt pi
usermod -aG audio pi

On modifie les droits du groupe :

nano /etc/security/limits.conf

En ajoutant tout en bas :

@pulse-rt       hard nice -20
@pulse-rt       soft nice -20

Et en modifiant ce qui existe pour @audio :

@audio          -       rtprio          99
@audio          -       nice           -19
@audio          -       memlock         unlimited

Quelques réglages dans Pulseaudio :

nano /etc/pulse/default.pa

### Automatically load driver modules depending on the hardware available
#.ifexists module-udev-detect.so
#load-module module-udev-detect
#.else
### Use the static hardware detection module (for systems that lack udev support)
#load-module module-detect
#.endif
load-module module-alsa-card device_id=0 tsched=true tsched_buffer_size=2048576 tsched_buffer_watermark=262144

Les valeurs tsched_buffer_size et tsched_buffer_watermark sont à modifier si vous essuyez de l'audio déformé ou une trop grosse latence. La doc sur le sujet étant inexistante j'avoue ne pas avoir une vraie idée des réglages optimaux.

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1
load-module module-zeroconf-publish

Ici on profite d'avoir une distribution moderne pour virer le protocole legacy, puis on ajoute les autorisations pour que les autres Pulseaudio du réseau puissent se connecter.

Enfin on peut aussi désactiver les modules inutiles, comme tout ce qui touche à Jack et qui ont tendance à se charger alors qu'on en veut pas :

### Automatically connect sink and source if JACK server is present
#.ifexists module-jackdbus-detect.so
#.nofail
#load-module module-jackdbus-detect channels=2
#.fail
#.endif

Installation et configuration Shairport

Shairport est une implémentation rétro-ingénérée de Airplay, le protocole Apple. Le but est de démarrer Shairport au boot, qui appellera et démarrera Pulseaudio tout seul comme un grand (via l'option Pulseaudio autospawn, configurée sur "yes" par défaut).

Compilation et installation :

git clone https://github.com/abrasive/shairport.git shairport
./configure && make && sudo cp shairport /opt/shairport && sudo chmod a+x /opt/shairport

Intégration à systemd

Ici on va tenter de lancer Shairport au boot via systemd en mode --user (par l'utilisateur Pi dans notre cas). Pourquoi ne pas passer par un service systemd classique avec l'option User= ? Parce que dans ce cas Pulseaudio est lancé en system mode et ne peut pas obtenir la bonne priorité de la part du noyau. Ne me demandez pas pourquoi, je ne sais pas.

mkdir ~/.config/systemd && mkdir ~/.config/systemd/user && nano shairport.service

[Unit]
Description=Shairport AirTunes receiver

[Service]
ExecStart=/opt/shairport -b 90 -a Salon -o pulse
Restart=always

[Install]
WantedBy=default.target

-b définit le buffer (par défaut 200, à vous de tester ce qui va le mieux chez vous)
-a le nom de votre borne Airplay
-o le pilote audio à utiliser (à préciser absolument dans notre cas)
L'option Restart=always de systemd est très pratique, Shairport pouvant parfois planter, elle vous garantira un redémarrage automatique et instantané du service.

Activer systemd --user

systemd --user enable shairport.service
loginctl enable-linger pi

A ce niveau il n'est pas une mauvaise idée de passer Pulseaudio en mode verbose pour s'assurer que tout va bien :

nano /etc/pulse/client.conf

extra-arguments = --log-target=syslog -v

reboot
journalctl _COMM=pulseaudio -b

Vous devriez voir quelque chose comme

core-util.c: Successfully gained nice level -X
Running in system mode: no

Vous pouvez alors supprimer le mode verbose pour soulager journald :

nano /etc/pulse/client.conf

#extra-arguments = --log-target=syslog

Et violà !

Vous devriez déjà avoir vu apparaître votre serveur Airplay sur tous vos appareils compatibles ainsi que le "sink" Pulseaudio sur tous vos postes Linux/Pulseaudio (configurés via paprefs "make Pulseaudio network available locally" et éventuellement "make Apple Airtune network available locally").

En réseau Pulseaudio classique, par exemple en utilisant Spotify depuis votre portable dans la cuisine, la consommation CPU du Pi s'élève à 10%, ce qui est très satisfaisant.
Via Shairport ce n'est pas la même chose, on tourne plutôt autour des 50%.

Enjoy !

  • # Amplification

    Posté par  (site web personnel) . Évalué à 2.

    Tu as surtout une source bien sympa.

    Du coup, avec quoi tu amplifies tes enceintes ?

    La réalité, c'est ce qui continue d'exister quand on cesse d'y croire - Philip K. Dick

    • [^] # Re: Amplification

      Posté par  . Évalué à 10.

      Ha alors merci de me donner l'occasion de placer ce petit ampli qui s'intègre magnifiquement bien dans ce genre de config "petit budget mais qualité plus que correcte" : Le SMSL SA-50, qui vaut aux alentours de 60€ et qui a un son qui dépote.

      Voir le thread sur forum-audiophile.fr, avec des centaines de commentaires d'"audiophiles" qui disent préférer cette minuscule boîte à leurs amplis valant facilement dix fois plus cher.

      • [^] # Re: Amplification

        Posté par  . Évalué à 4.

        Merci pour le pointeur sur cet ampli qui a l'air très sympa d'après les commentaires. Par ailleurs toujours amusant de voir des gens parler de rodage sur ce genre de matériel tout ce qu'il y a de plus numérique. Quand je constate l'incroyable manque d'objectivité dont peut faire preuve notre cerveau quant à nos perceptions (un exemple classique : https://www.youtube.com/watch?v=vJG698U2Mvo ), les 100h de rodage pour ce genre de matériel me semblent difficile à avaler.

        • [^] # Re: Amplification

          Posté par  . Évalué à 10.

          C'est toujours amusant à lire les forums d'audiophiles :-)

          La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".

        • [^] # Re: Amplification

          Posté par  . Évalué à 5.

          Tout à fait d'accord, le monde "audiophile" est rempli de fausses croyance. Un lien intéressant à ce sujet (ne ratez pas les commentaires à la fin).

          Mais j'avoue, et je ne pensais vraiment pas dire ça, que le son de l'ampli me parait meilleur au bout de 200h d'écoute qu'au déballage.

          M'enfin tant qu'on est satisfait de sa qualité audio, peu importe la réalité scientifique !

          • [^] # Re: Amplification

            Posté par  . Évalué à 8.

            Il faudrait comparer en achetant 2 exemplaires identiques. On ne peut pas négliger qu'au bout de 200H l'oreille se soit accoutumée au son de l'ampli et qu'une préférence inconsciente se soit installée.

            BeOS le faisait il y a 20 ans !

            • [^] # Re: Amplification

              Posté par  (site web personnel) . Évalué à 10.

              Rodage des oreilles donc.

              Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

          • [^] # Re: Amplification

            Posté par  . Évalué à 4.

            Il y a même des psychopathes qui doivent roder leurs câbles… si ça peut les occuper tant mieux ^_^.

            Par contre pour le lien c'est dommage ce gros bullshit comme quoi les lampes c'est juste bon pour la radio car le reste est tout à fait pertinent.

            Perso j'ai eu de vrais coups de cœur pour certains amplis à tube. Ils n'ont rien d'inférieur à ce qui se fait aujourd'hui… C'est aussi une des fausses croyances de la Hifi : penser qu'il y vraiment des progrès d'année en année. Je ne pense pas que les ampli d'aujourd'hui sont meilleurs que ceux d'il y a 50 ans. J'aurai même tendance à dire que c'est plutôt l'inverse : les constructeurs essayent beaucoup plus d'économiser sur les composants / assemblages aujourd'hui.

            La vraie raison de la "disparition" des tubes est industrielle et ne tiens pas à un manque de qualités sonores mais à la supériorité de l'amplificateur à transistor en terme de poids, de consommation et surtout au fait qu'il n'est pas nécessaire de faire de maintenance sur ce type d'appareils.

            Le tube permet aussi de faire de la classe A. Quand on fait de la classe A avec des transistors ça n'a plus rien d'économique non plus :D

            Et pour ce qui est de la classe D, pour le moment j'en ai écouté un paquet sans encore avoir trouvé un modèle avec lequel j'accroche vraiment.

            • [^] # Re: Amplification

              Posté par  . Évalué à 4.

              Par contre pour le lien c'est dommage ce gros bullshit comme quoi les lampes c'est juste bon pour la radio

              Il ne dit pas ça, il dit :

              l'affirmation que les lampes sont de manière inhérente supérieures aux transistors dans les applications audio : n'y croyez pas

              Et en sous-entendu dans cette section il parle de l'audio haut de gamme / très haut de gamme.

              Ton analyse aurait-elle été biaisée par tes "coups de coeur" ? ;)

              • [^] # Re: Amplification

                Posté par  . Évalué à 1. Dernière modification le 23 octobre 2014 à 11:40.

                Si c'est bien ce qu'il dit, tu as loupé une partie je pense :

                Les lampes sont bonnes pour les transmetteurs RF de forte puissance ou les fours à micro ondes, mais au moment de changer de siècle, pas pour les amplificateurs, pré-amplificateurs ou (bon dieu !) les appareils digitaux comme les lecteurs de CD ou DVD.

          • [^] # Re: Amplification

            Posté par  (site web personnel) . Évalué à 0.

            un lien intéressant à ce sujet (ne ratez pas les commentaires à la fin).

            Un discours complètement a côté de la plaque. L'auteur n'a strictement rien compris a ce qui importe aux audiophiles : la couleur, le cachet, l'émotion. Bref du scientisme mal a propos pour un discours sans intérêt. Simplement hors sujet.

            Quand au commentaires, j'imagine qu'il faut être connecté sur facebook pour les voir …

            • [^] # Re: Amplification

              Posté par  . Évalué à 3.

              L'auteur n'a strictement rien compris a ce qui importe aux audiophiles : la couleur, le cachet, l'émotion. Bref du scientisme

              Quand il y a la preuve scientifique d'absence de différence, celui qui voit une différence l'invente de toute pièce, point.

              Personne ne nie la couleur, le cachet, l'émotion, du moment qu'ils sont réels.

              Mais toi tu nies les faits scientifiques, c'est grave.

              Quand au commentaires, j'imagine qu'il faut être connecté sur facebook pour les voir

              Heu non il faut juste ouvrir les yeux.

              Au passage les commentaires facebook embarqués ne demandent jamais d'être connectés pour les voir, je ne sais pas où tu vas chercher ça. Dans ton agacement peut-être ? Sache que les vérités énoncées dans cet article ne remettent pas en cause ta passion pour le son, juste tes fausses croyances.

              Il est vrai que cet article a dû scandaliser plus d'un possesseur de câbles audio à 300€.

            • [^] # Re: Amplification

              Posté par  (site web personnel) . Évalué à 5.

              Techniquement attention, il ne faut pas confondre l’absence de différence et l'incapacité à la reconnaître.

              Ici, dans tous les tests statistiques ABx, on arrive à un gros problème scientifique : Tous nos échantillons contrôles foirent lamentablement avec notamment l'incapacité pour une même personne de reconnaître deux fois de suite le même matériel.

              Bref, scientifiquement, on peut pas dire grand chose si ce n'est que le test n'est pas adapté pour étudier les différences entre deux matériels…

              On peut conclure par les différences ne sont pas identifiables dans ce test, mais en aucun cas par il n'y a pas de différence.

              Je pense que c'est une différence non négligeable.

              La réalité, c'est ce qui continue d'exister quand on cesse d'y croire - Philip K. Dick

  • # DAC USB ?

    Posté par  (Mastodon) . Évalué à 5.

    Merci pour cette présentation.

    Niveau DAC USB, on peut prendre les yeux fermés, ou il y a les compatibles Linux et les pas compatibles Linux ? Dans ces prix corrects que tu nous proposes, quel DAC sympa fait l'affaire ?

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: DAC USB ?

      Posté par  . Évalué à 6.

      Depuis le temps que je me rencarde sur le sujet je ne crois pas avoir vu passer de DAC non compatibles avec Linux.

      Perso j'utilise un HiFimeDIY Sabre ES9023.

      La puce ES9023 est réputée très bonne, mais la qualité peut varier en fonction de l'implémentation. Celle d'HiFimeDIY n'est pas trop mal sans être géniale, mais pour 35€ c'est le jour et la nuit comparé à la sortie du Pi (surtout sur les enregistrements récents).

      • [^] # Re: DAC USB ?

        Posté par  . Évalué à 2.

        Je ne comprends pas bien la description, il semble que l'on contrôle le niveau de sortie directement sur le pc en jouant sur le volume. Ça signifie que ce n'est pas une sortie "line" du DAC vers l'ampli ?

        Qui peut recommander un DAC usb avec line out à un prix raisonnable (autour de 50€) ?

        La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".

        • [^] # Re: DAC USB ?

          Posté par  . Évalué à 2.

          J'ai acheté, il y a un peu plus d'un an, le Fiio Andes E07K.

          Il est 100% compatible Linux et propose deux sorties audios. Le son est vraiment très bon (je l'utilise principalement avec un casque AKG K240 MKII) et permet de régler le niveau des basses et des aigus très facilement.

          J'en suis très content mais il est un peu au dessus de ton budget (80€).

          • [^] # Re: DAC USB ?

            Posté par  . Évalué à 2. Dernière modification le 22 octobre 2014 à 22:56.

            Il semble que ce soit un ampli. Je vois sur un site le vendant : "1 sortie Ligne (connecteur propriétaire 18 broches, compatible avec l'ampli casque / pré-ampli Fiio Qogir-E09K)".

            ça n'est pas vraiment ce que j'appelle une line out (dans mon esprit, c'est plutôt avec un connecteur jack ou cinch).

            La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".

        • [^] # Re: DAC USB ?

          Posté par  . Évalué à 2.

          Effectivement sur le mien comme sur la quasi totalité des DACs pas cher la sortie est de type headphone et non pas line.

          Dans les 50€ il y a UX1 Sabre ES9023 chez le même constructeur avec la même puce, qui possède une sortie headphone et une sortie line.

          Si un jour tu es en mesure de faire des comparaisons entre les deux sorties je serais curieux de connaître tes retours !

          • [^] # Re: DAC USB ?

            Posté par  . Évalué à 3.

            Merci pour le tuyau.

            Malheureusement, je ne serai pas en mesure de faire des comparaisons. Ce sera juste pour brancher sur une chaîne hifi normale, dans une maison normale, et avec des oreilles pas particulièrement fines à ma connaissances :-)

            Je cherche juste une sortie line pour pouvoir gérer le volume sur la chaîne et n'utiliser le PC que comme source audio, sans avoir à bricoler les menus sans arrêt.

            La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".

    • [^] # Re: DAC USB ?

      Posté par  (site web personnel) . Évalué à 3.

      Audiophonics a toute une gamme de DAC avec même une version spécial Rpi : http://www.audiophonics.fr/fr/raspberry-pi-c-660.html

      Born to Kill EndUser !

  • # Joli

    Posté par  . Évalué à 6.

    Merci pour ce modus operandi detaillé,
    je n'en ai pas l'utilité, mais ca fait du bien de voir un journal precis, detaillé qui n'appelle pas à troll dans tous les sens.

    • [^] # Re: Joli

      Posté par  . Évalué à 7.

      bof, il a remplacé vi par nano et franchement on comprend pas pourquoi puisque nano est vraiment très limité comparé à vi

      Dire que vous vous n'en avez rien à faire de la vie privée parce que vous n'avez rien à cacher, c'est comme dire que vous n'en avez rien à faire de la liberté d'expression parce que vous n'avez rien à dire. Edward Snowden

  • # Wifi

    Posté par  . Évalué à 7.

    As tu essayé ta configuration avec un client en wifi ? Pas de latence ? Tout ce que j'ai essayé étais inutilisable sans cable.

    • [^] # Re: Wifi

      Posté par  . Évalué à 2.

      Non je n'ai pas testé en wifi, mais a priori tes problèmes viennent d'une mauvaise alimentation. En audio pur (pas audio/video) même une latence de 2s n'est pas vraiment problématique. Pour info en ethernet Pulseaudio me donne entre 0.3s et 0.4s de latence.

      Pour rappel rien que pour faire tourner le Pi correctement (+ un clavier on va dire) il faut une alimentation correcte (5V 2A), et si tu rajoutes des périphériques USB il devient carrément nécessaire d'avoir un hub alimenté.

    • [^] # Re: Wifi

      Posté par  . Évalué à 0.

      As tu essayé ta configuration avec un client en wifi ? Pas de latence ? Tout
      ce que j'ai essayé étais inutilisable sans cable.

      Idem pour moi, il y a 6 mois en tout cas, shairplay comme pulseaudio étaient tout-à-fait inutilisables pour streamer du son à travers du wifi.

      J'avais d'ailleurs écrit un article pour partager mon désespoir ;-) http://hackriculture.fr/tour-des-serveurs-de-son-en-reseau.html

  • # Latence et synchronisation audio/video

    Posté par  (site web personnel) . Évalué à 6.

    Sympa cette installation, je cherchais justement a faire quelque chose comme ca (sauf que j'ai un mele A1000; je pense que la sortie audio est meilleure et que je pourrais faire l'economie d'un DAC USB).

    Par contre je me demandais si une installation comme celle-ci ne causait pas des latences quand tu regardes une video sur ton PC principal? Entre le moment ou ton image s'affiche d'un cote, et qu'elle soit transferee a pulseaudio en local, puis sur le reseau, puis pulseaudio sur le serveur, puis sur le DAC USB, ca doit certainement introduire de la latence. Comment (et y-a-t-il besoin?) de synchroniser tout ca?

    Et encore, pour la video on peut le resoudre en reglant le delai A/V sur le lecteur audio (je sais que mplayer permet ca par exemple). Mais comment faire pour d'autres applications, e.g. video sur internet, jeux videos?

    http://l-lang.org/ - Conception du langage L

    • [^] # Re: Latence et synchronisation audio/video

      Posté par  . Évalué à 4. Dernière modification le 22 octobre 2014 à 15:08.

      Très clairement cette installation n'est pas faite pour de l'audio/video. Comme tu dis vu le chemin que prennent les données avant d'arriver à bon port, plus le buffer, il y a fatalement une latence (je suis entre 0.3s et 0.4s pour Pulseaudio et un peu plus pour Shairport).

      Pulseaudio n'est pas fait pour ça, et Shairport ne gère pas (encore) les flux video. Je ne suis même pas sûr qu'il existe une techno fiable pour cet usage (si quelqu'un a des infos).

      Tu peux en effet utiliser des techniques de sioux genre retarder la video pour tenter une synchro mais ça sera toujours un peu bancal.

      C'est aussi pour ça que j'évoque XBMC, qui me semble une solution simple et efficace pour tout ce qui est vidéo (bon sur la TV, et pas depuis un ordi).

      Pour l'anecdote, en sortant du cadre d'un film pour rentrer dans celui d'une vidéo Youtube (au hasard le pote qui te dit "tiens il faut absolument que tu la vois celle-là) Shairport peut s'avérer très pratique pour éviter de tomber dans une "soirée Youtube", celle où tout le monde prend son ticket pour passer SA vidéo. Pas besoin de bouger du canapé, on lance la vidéo sur le smartphone / la tablette et l'audio sur les enceintes. Bien sûr il y a une latence mais c'est supportable, quelques minutes plus tard la vidéo se termine, la musique repart automatiquement, et tout le monde reprend une activité normale. Win.

      • [^] # Re: Latence et synchronisation audio/video

        Posté par  . Évalué à 1.

        Par quelle magie fonctionne le super airplay vidéo de la freebox revolution? Est ce qu'à ton avis, ils paient une licence à Apple pour leur support airplay complet?

        • [^] # Re: Latence et synchronisation audio/video

          Posté par  . Évalué à 3.

          De mémoire je crois que la Freebox V6 utilise également Shairport sans rien payer à Apple. Je n'ai pas eu l'occasion de tester le stream video, mais si ça marche bien je dirais que c'est du développement spécifique (et qu'ils évitent de le crier sur tous les toits). A vérifier.

    • [^] # Re: Latence et synchronisation audio/video

      Posté par  . Évalué à 2.

      Comment (et y-a-t-il besoin?) de synchroniser tout ca?

      si le decalage est connu, tu peux configurer ton player pour le prendre en compte.
      VLC par exemple permet avec un simple raccourci clavier de decaler l'audio par pas de quelques millisecondes vers l'avant ou l'arriere.

  • # Mon install à moi

    Posté par  . Évalué à 3.

    J'avais plus ou moins le même besoin sur Raspberry pi.

    Je suis parti de la même base (Archlinux). Par contre j'utilise Mpd, ce qui me permet de contrôler de le contrôler depuis mon smartphone/linux/windows. Via un hub usb alimenté, j'ai une Sound blaster X-FI HD + un disque dur externe de 640 go. Du coup le Raspberry me sert aussi de NAS que je synchronise via Rsync. J'ai aussi mis en place un partage NFS, pour simplifier l'accès.
    A terme je voudrais utiliser les contrôles de la Sound Blaster pour éteindre le Raspy, voir ajouter un écran de 4".

    Le tout va dans un ampli Yamaha RXV673.

  • # dlna/upnp

    Posté par  . Évalué à 3.

    Merci pour le partage des infos. Je note tout cela dans un coin pour plus tard.

    A l'époque, j'avais un peu fait le fainéant en prenant une chaine tout en un avec un client dlna/upnp (Onkyo CS-N755 pour ceux que ça intéresse, une des rares compatible ogg).

    Qu'est-ce qu'il faudrait ajouter à ton installation pour qu'il soit compatible avec un serveur dlna/upnp fourni par un nas et contrôlé via Bubble Upnp par exemple ?

    • [^] # Re: dlna/upnp

      Posté par  . Évalué à 3. Dernière modification le 23 octobre 2014 à 04:35.

      Pulseaudio a un module http qui peut a priori faire l'affaire, tu peux t'inspirer de ce lien qui ne semble pas trop mal. N'hésite pas à me faire des retours !

  • # Merci!!

    Posté par  . Évalué à 2.

    Je m'y met ce soir :)

  • # EDITOR !!

    Posté par  . Évalué à 7.

    Bon tuto,

    Un peu la même chez moi avec un joli petit boitier pour le RPi (http://shortcrust.net/short-crust-case/)
    Oui, il coute cher, mais il est vraiment bien foutu.
    Un DacMagic de Cambridge de tout banché sur un ampli à tubes EL84.
    Je joue principalement avec MPD dessus mais parfois avec shairport pour les podcast que j'écoute sur mon smartphone et que je veux poursuivre à la maison.
    Une chose toutefois qui m'a fait saigner les yeux :

    "On remplace Vi par nano (Arch ayant une certaine tendance à forcer l'utilisation de Vi - par exemple pour Cron) :
    pacman -Rns vi
    ln -s /usr/bin/nano /usr/bin/vi"

    Tu peux aussi définir la variable EDITOR, c'est un peu moins sale ;-)

    Sinon, merci pour le tuto, ça va surement servir à beaucoup de monde pour se monter un système de "qualitay" pour peu de soussous !

    • [^] # Re: EDITOR !!

      Posté par  . Évalué à 4.

      Merci pour les compliments !

      Au sujet de nano je sais la méthode est carrément sale, j'avais noté ce snippet trouvé sur le forum Arch car certaines commandes (je ne souviens plus lesquelles) forçaient Vi même après avoir renseigné EDITOR. Il faudrait que je retrouve le thread.

      D'ailleurs le wiki l'avoue plus ou moins :

      Setting the EDITOR environment variable will work for many applications

      • [^] # Re: EDITOR !!

        Posté par  (site web personnel) . Évalué à 1.

        Faire un bug report pour cette application, voir un patch parait plus efficace que ce genre de hack!

        • [^] # Re: EDITOR !!

          Posté par  . Évalué à 2. Dernière modification le 23 octobre 2014 à 02:33.

          On attend ta contribution alors :)

          Visiblement ils sont déjà au courant, et si c'était trivial ce serait déjà corrigé.

          • [^] # Re: EDITOR !!

            Posté par  . Évalué à 4.

            Oué enfin en l'occurrence quand tu fais un crontab -e cette variable est bien prise en compte hein ;)

      • [^] # Re: EDITOR !!

        Posté par  . Évalué à 6.

        De toute façon, forcer vi au lieu de nano, c'est de l'utilité publique, pas un bug.

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

  • # Qualité de la sortie audio jack vs. HDMI du Raspberry

    Posté par  . Évalué à 2.

    Il est reconnu que la sortie jack du Raspberry est de piètre qualité (PWM…).
    Par contre, il y a quelques (rares) sources internet qui avancent que l'audio de la sortie HDMI est de qualité tout à fait honorable (du moins, comparé à la sortie jack). Quelqu'un peut confirmer ?

    • [^] # Re: Qualité de la sortie audio jack vs. HDMI du Raspberry

      Posté par  . Évalué à 8.

      Ben la qualité de la sortie HDMI, c'est la qualité de n'importe quelle sortie HDMI : c'est des bits, pas du son. Et ya de fortes chances que même une télé pourrie ai un meilleur son que la sortie jack du Pi.

      • [^] # Re: Qualité de la sortie audio jack vs. HDMI du Raspberry

        Posté par  . Évalué à 1.

        Ouais mais donc en gros, celui qui veut économiser un peu, il devrait pouvoir économiser le prix d'un DAC, non ? ^

        • [^] # Re: Qualité de la sortie audio jack vs. HDMI du Raspberry

          Posté par  . Évalué à 4.

          Ben oui et non. Il y de très fortes chances que le DAC de ta télé soit de la qualité d'une carte son super bas de gamme (donc plus ou moins celle du Pi). Sans compter le fait qu'il faut laisser ta télé allumée pour écouter du son, bof. Et qu'à la fin de l'année tu aura dépensé en électricité à peu près le prix d'un DAC correct.

    • [^] # Re: Qualité de la sortie audio jack vs. HDMI du Raspberry

      Posté par  (site web personnel) . Évalué à 0.

      J'utilise Squeezeplug comme serveur sur mon Raspberry. J'envoie l'audio via HDMI sur mon ampli "home cinéma", un Onkyo TX-SR308 : ça fonctionne plutôt bien.

      Alerte audiophiles, à partir d'ici, bouchez-vous les oreilles.
      Je voudrais réaliser l'upmix de stéréo vers 4.0, 4.1, ou 5.1. J'aime bien le rendu "mur de son" que j’obtiens sur mon PC avec une carte X-Fi, je voudrais la même chose. Le Neo DTS de l'ampli, quel que soit le réglage, ne rend pas du tout pareil.

  • # Activer pulseaudio

    Posté par  (site web personnel) . Évalué à 3.

    En suivant ce tuto (excepté que je n'ai pas installé shairport, je n'en vois pas l'intérêt), je n'avais pas pulseaudio d'exécuté. Voici les étapes pour activer pulseaudio dans ce cas:

    Activer l'utilisateur pi au démarrage:

    loginctl enable-linger pi
    Se connecter comme simple utilisateur (la variable d'environnement XDG_RUNTIME_DIR doit être modifie pour se connecter au daemon systemd user, sinon ce ne sera pas possible):

    su pi
    export XDG_RUNTIME_DIR=/run/user/$(id -u)
    Créer l'unité pulseaudio.service:

    mkdir -p ~/.config/systemd/user
    nano ~/.config/systemd/user/pulseaudio.service
    dont le contenu serait:
    ```
    [Unit]
    Description=PulseAudio server

    [Service]
    ExecStart=/usr/bin/pulseaudio
    Restart=always

    [Install]
    WantedBy=default.target
    Démarrer et activer pulseaudio:

    systemctl --user enable pulseaudio.service
    systemctl --user start pulseaudio.service
    systemctl --user status
    ```

  • # MultiRoom

    Posté par  . Évalué à 2.

    Bonjour,

    Je souhaitai utiliser ces outils, avec mpd, pour réaliser un système multiroom
    Même source audio diffuser sur plusieurs raspberry avec pulseaudio.

    Comment s'assurer que la latence soit la même sur les différent raspberry, pour pas avoir un effet d’écho par rapport a mes différente pièces ?

    • [^] # Re: MultiRoom

      Posté par  (site web personnel) . Évalué à 1.

      Essaie le protocole RTP dans PulseAudio, tu auras une latence, mais il fonctionne en multicast et tu peux avoir plusieurs appareils connectés.

  • # Retour d'expérience PulseAudio vs Shairport / Shairplay

    Posté par  (site web personnel) . Évalué à 3.

    J'ai constaté une différence nette de qualité entre le protocole PulseAudio (TCP) et le protocole AirPlay (en configuration UDP), en faveur d'AirPlay.

    Je n'utilise pas shairport comme indiqué dans le journal mais shairplay et je viens de réussie a avoir une qualité bien meilleure que le protocole tunnel natif de PulseAudio. Avec PulseAudio, j'ai rencontré quelques problèmes de sont qui saute, et surtout, les clients (comme le lecteur vidéo) peuvent se désynchroniser rapidement, ou même planter complètement. Surtout si la vidéo est lente. je pense que cela est causé par le protocole TCP, et je n'ai pas eu les mêmes problèmes avec des protocoles UDP.

    PulseAudio permet aussi de faire du RTP (Realtime Transfer Protocol, un protocole au dessus de l'UDP). Avec, tout fonctionne presque a merveille, a part une latence constante et assez élevée (surtout si on fait de la vidéo). Mais si la latence n'est pas un problème, je pense que c'est une excellente solution, et en plus, elle permet a plusieurs clients de jouer le flux. Intéressant donc.

    Finalement, j'ai utilisé le paquet shairplay que je lance sur le serveur avec la commande suivante:

    shairplay --ao_driver=pulse --ao_devicename=0
    Le problème principal, c'est que shairplay communique en UDP, et pour le moment, PulseAudio avec son module raop ne communique qu'en TCP. De base, PulseAudio n'est donc pas compatible avec shairplay. Sur le PC qui envoie le son, j'ai donc installé le paquet AUR pulseaudio-raop2-v2-v5.99.1-git parmi les 3 paquets AUR implémentant RAOP2. Le son se fait alors entandre sur le PC shairplay.

    J'ai testé avec plusieurs lecteurs multimédia, et je n'ai eu qu'un seul problème: le plugin Flash NPAPI (celui de Firefox, le plugin Flash de Google Chrome fonctionne bien). Avec Flash, j'ai un son très haché. En HTML5, pas de problème.

    Pour utiliser le plugin Flash de Chrome, j'ai installé le paquet AUR freshplayerplugin-git qui combiné au plugin Flash de Chrome permet d'avoir un son correct dans Firefox lorsque les sites utilisent encore un player Flash.

    Je teste depuis ce matin, je n'ai pas remarqué de gros problèmes. Peut être une légère instabilité sur le PC qui joue les vidéos, sans doute a cause de la version instable de PulseAudio. Mais sinon, ça marche relativement bien.

    Le réseau testé est du 100Mbits sur un switch tout simple. Pas de Gigabit ou quelque chose de particulier.

  • # Shairport Sync

    Posté par  . Évalué à 4.

    Salut. Se il vous plaît excuser mon mauvais français. Je ai développé une version de shairport qui pourrait intéresser vos lecteurs - il conserve la synchronisation sur plusieurs haut-parleurs. Vous pouvez obtenir plus de détails (en anglais, je ai peur) au https://github.com/mikebrady/shairport-sync.

    Cordialement, Mike Brady

  • # Focal xs

    Posté par  . Évalué à 0. Dernière modification le 30 décembre 2014 à 21:37.

    Salut à tous! Ce petit tuto m'intéresse au plus haut point car je cherchais desesperement une solution AirPlay + DAC
    Es-ce que vous pensez qu'il est possible brancher sur cette installation en USB l'ensemble Focal XS 2.1 qui possèdent un DAC intégré?
    http://www.focal.com/fr/focal-xs-21/266-focal-xs-21-3544054690253.html

    Merci les amis

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.