Sommaire
- Le contexte
- Technologies de diffusion audio bluetooth
- Installation de pipewire et bluez
- L'impasse
- Moralité
- Pour aller plus loin
'lut les gens,
Le contexte
J’envoie régulièrement l’audio de mon ordinateur portable Thinkpad vers ma barre de son en bluetooth. Alors que celle-ci dispose de toutes les fonctionnalités audio surround, dolby, DTX, 5.1, et j'en passe, ça me désole d’envoyer simplement en stéréo alors que je pourrais faire mieux puisque je dispose de tout le kit d'enceintes permettant une diffusion multicanal audio.
Technologies de diffusion audio bluetooth
J'ai commencé alors quelques recherches pour pouvoir diffuser de l'audio multicanal. Au fil de mes recherches je découvre qu’il existe principalement 2 technologies de diffusion audio bluetooth:
- L'A2DP (Advanced Audio Distribution Profile) est celle qu’on retrouve sur tous les périphériques bluetooth actuels. Elle permet une sortie audio stéréo (qu’on retrouve sous le terme sink). Elle utilise en natif le codec audio SBC qui fournit une qualité audio juste acceptable. Aussi d’autres codecs ont fait leur apparition, SBC XQ qui est une version améliorée de SBC, mais également LDAC, Aptx, AAC ou LC3. Cette technologie est associée à AVRCP (Audio Video Remote Control Profile) qui permet de gérer les commandes.
- LE Audio associé au Bluetooth Low Energy (BLE) est un mode basse consommation qui utilise le codec LC3 qui à terme devrait équiper tous les périphériques bluetooth. Ce mode permettra la diffusion vers plusieurs périphériques bluetooth et de pouvoir utiliser la diffusion multicanal 5.1 contrairement aux autres codecs précédemment cités qui sont limités au mono et au stéréo.
Or en connectant ma barre de son « Abri de jardin » (je sais, c’est bizarre…) avec blueman, je me rends compte que je n’ai accès qu’au codec standard SBC et à sa version améliorée SBC XQ. Pas moyen d’avoir un codec plus qualitatif.
Installation de pipewire et bluez
Ni une, ni deux, je me lance dans l’installation du serveur audio pipewire car pulseaudio installé de base sur ma Mageia 9 ne gère que l’A2DP et ne gère pas le LE Audio.
Je bascule sous pipewire fourni sur mon système avec l’outil pa-switcher et je constate aucune évolution avec blueman et j’ai toujours les mêmes codecs, je choisis d’installer la dernière version de pipewire à partir des sources après avoir installé via les sources les codecs LC3 et Aptx.
Et là je me retrouve avec une installation hybride entre une installation système et local bluez et pipewire avec un mix de fichiers et les services systemd des versions locales qui ont écrasé les versions système. Au reboot du PC, c’est bien par défaut les binaires locaux qui sont lancés, et dans les logs j'ai bien :
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/ldac
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/aptx_hd
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_hd
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/aptx
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/aac
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aac
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/opus_g
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/opus_g
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/sbc
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/sbc
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_ll_1
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_ll_0
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/faststream
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/faststream_duplex
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/opus_05
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/opus_05
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSink/opus_05_duplex
déc. 22 12:12:57 cilaos.kervao.fr bluetoothd[857]: Endpoint registered: sender=:1.197 path=/MediaEndpoint/A2DPSource/opus_05_duplex
C’est tout bon en ce qui concerne les nouveaux codecs, même si je ne vois pas clairement apparaitre LC3. Et là je constate avec désappointement que blueman ne m’offre pas mieux, je recompile donc cette fois-ci bluez qui fournit le daemon bluetoothd.
Au bout de toutes ces pérégrinations je connecte ma barre de son avec blueman et je constate avec dépit que j’en suis au même stade avec SBC et SBC XQ comme codecs. En dernier ressort, je compile blueman, mais ça ne change rien à l’affaire.
L'impasse
Je me tourne vers les spécifications de ma barre de son LG SL10YG et ce n’est qu’à ce moment là que je comprends que les modes multicanaux ne marchent que via l’interface HDMI et qu’elle se repose sur Bluetooth 4.2 qui ne prend pas en charge le LE Audio (qui arrive avec la version 5.2). J’aurais dû commencer par là !!
D’ailleurs la commande bluetoothctl info me renvoie :
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
j’aurais du avoir quelque chose comme :
UUUUID: Published Audio Capabilities (00001850-0000-1000-8000-00805f9b34fb)
Fin du sketch qui m’aura pris quelques heures, pour positiver je suis passé à pipewire et j'ai découvert son fonctionnement.
Moralité
La morale de cette histoire, s'il doit y en avoir une, est qu'à l'achat de votre barre de son vérifiez bien si elle est au moins compatible bluetooth 5.2 pour pouvoir envoyer de l'audio multicanal, dès lors que la musique correspondante soit au format qui va bien (mais ça c'est une autre histoire).
Pour aller plus loin
- une page de présentation de tous les codecs audio (en français) https://www.frandroid.com/comment-faire/comment-fonctionne-la-technologie/752329_aptx-ldac-sbc-tout-comprendre-aux-codecs-bluetooth-audio
- une autre page (en français) https://www.audiophonics.fr/fr/blog-diy-audio/45-les-differents-codecs-bluetooth-acc-sbc-aptx-ldac.html
- une autre page (en français) https://www.clubic.com/audio-hifi/article-878271-1-comprendre-codecs-bluetooth.html
- support LE Audio dans pipewire (en anglais) https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/LE-Audio-+-LC3-support
- le codec SBC et SBC XQ (en français) https://fr.wikipedia.org/wiki/Low_Complexity_Subband_Codec
- le codec LDAC (en anglais) https://en.wikipedia.org/wiki/LDAC_(codec)
- le codec Aptx (en anglais) https://en.wikipedia.org/wiki/AptX
- le codec LC3 (en anglais) https://en.wikipedia.org/wiki/LC3_(codec)
- cette même page mais en plus détaillée sur mon blog https://olivier.hoarau.site/?p=6608
# Complément d'infos
Posté par mrintrepide . Évalué à 3 (+2/-0).
Bien vérifier "LE Audio", parce que je ne suis pas sur que c'est obligatoire pour BT 5.2+
"SBC XQ" c'est juste sur SBC en dual channel (SBC c'est joint stereo) avec plus de bitrate. Ça utilise le bande passante supplémentaire du mode EDR, c'est plus du hack qu'un truc officiel.
https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/spa/plugins/bluez5/README-SBC-XQ.md
http://soundexpert.org/articles/-/blogs/audio-quality-of-sbc-xq-bluetooth-audio-codec
[^] # Re: Complément d'infos
Posté par Funix (site web personnel, Mastodon) . Évalué à 3 (+1/-0).
Bluetooth 5.2 est une norme, s'il n'y a pas le LE Audio alors que le périphérique est donné pour être 5.2 c'est qu'il ne respecte pas la norme et c'est mensonger ! J'ose espérer que les constructeurs ne se permettent pas cette fantaisie.
https://www.funix.org mettez un manchot dans votre PC
[^] # Re: Complément d'infos
Posté par Enzo Bricolo 🛠⚙🛠 . Évalué à 2 (+0/-0).
Ils n'oseraient pas
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.