Collanews

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierVos flux RSS

Apple a son propre codec pour les casques Bluetooth

Dans le monde du Bluetooth, j’en ai déjà parlé, il y a énormément de codecs. Et Apple, avec la puce H1, a visiblement implémenté son propre codec.

Petit résumé : en Bluetooth, l’audio est automatiquement compressé. La norme impose un codec (le SBC) et propose différentes solutions alternatives dans le standard, comme l’ATRAC (oui, celui des MiniDisc), le MP3 ou l’AAC. Et elle offre aussi la possibilité d’ajouter des codecs maison. Le plus connu est l’aptX (décliné en HD, LL, etc.) mais il y a aussi le LDAC de Sony, le LHDC d’Huawei, différents codecs Samsung, etc. Et Apple, avec la puce H1, a donc intégré son propre codec.

Je vous le dis directement, je ne connais pas son nom. Je ne sais même pas s’il est utilisé, s’il vise une compression plus efficace ou s’il sert pour l’audio spatial avec les AirPods Pro et Max (c’est une possibilité). Je peux juste affirmer une chose : il est présent dans les appareils équipés de la puce H1 et macOS Big Sur ne l’utilise pas par défaut.

J’ai pu vérifier grâce à différentes personnes (merci Frédéric, Mickaël, David, Benjamin, Ouwéis) que le casque Solo Pro, les AirPods 2 et les AirPods Pro supportent le codec.

Des AirPods 2


Des AirPods Pro


Un Solo Pro

Pour le vérifier, j’ai utilisé la méthode expliquée ce matin. Attention, le changement automatique d’appareils introduit avec Big Sur empêche ma méthode de fonctionner. On voit bien dans les captures que les appareils Apple supportent le SBC, l’AAC et… un autre codec. Et en fouillant avec WireShark, il a comme identifiant Apple pour le vendor ID (0x00000004) et 0x8001 pour le codec lui-même.

Le codec Apple

La question à 1 000 € à un MacBook Air : à quoi va servir ce codec ? Aucune idée. Comme sir plus haut, c’est peut-être pour l’audio spatial, pour une nouvelle offre, pour améliorer la qualité, je ne sais pas. D’autres constructeurs proposent de temps en temps des codecs pour des appareils précis, Samsung l’a déjà fait plusieurs fois, mais Apple a l’avantage d’utiliser la même puce dans pas mal d’appareils, ce qui permet de créer assez rapidement un parc conséquent pour la compatibilité.

Déterminer les codecs supportés par un casque Bluetooth sous macOS

En faisant des essais sur le Bluetooth, je suis (re)tombé sur un problème énervant : le manque d’informations sur les codecs. Dans le meilleur des cas, le fabricant indique les codecs supportés, et il faut le croire. J’ai cherché longtemps une méthode simple pour déterminer ce que supporte un périphérique… sans succès. Je n’ai qu’une méthode compliquée et pas tout à fait efficace (je vais y revenir à la fin). Mais elle fonctionne dans la majorité des cas.

Vous aurez besoin des outils de développement de macOS et éventuellement de Wireshark. Pour les outils Apple, c’est à cette adresse, normalement c’est accessible si vous avez un compte Apple. Il faut chercher les Additional Tools for Xcode. Si vous voulez les outils Bluetooth, la version 11.4 est obligatoire, dans notre cas, la version 12 (plus récente) marche aussi.

Ensuite, dans le fichier, il faut lancer PacketLogger qui se trouve dans le dossier Hardware. Il va demander le mot de passe, puis se lancer. Je vous conseille de commencer par presser Stop, puis Clear. Avant de commencer, il faut déconnecter le casque (avec le menu Bluetooth). Ensuite, quand vous êtes prêt, il faut presser Start, et ça va commencer à défiler.

L’outil d’Apple

Maintenant, sortez votre casque (vos écouteurs, enceintes, etc.) et connectez-le au Mac avec le menu Bluetooth. Vous pouvez par exemple lancer quelques secondes de musique, bien vérifier si ça fonctionne. Une fois que c’est fait, dans PacketLogger, faites Stop. Maintenant, il faut exporter le résultat en BTSnoop (File -> Export -> BTSnoop).

Dans la majorité des cas, vous venez de capturer la liaison entre le Mac et le casque, avec les informations nécessaires pour la liste des codecs supportés. Il y a un cas précis où ça ne fonctionne pas : avec les casques Apple récents sous macOS Big Sur. Le changement automatique doit sûrement utiliser une autre méthode de connexion, et je n’ai pas réussi à obtenir un résultat.

Exploiter les données

La première méthode est la plus simple, mais elle demande de faire confiance à un site Internet. Il faut uploader le fichier sur ce site , qui va analyser les données et vous donner le résultat.

Cet adaptateur supporte pas mal de codecs

Si vous obtenez ça, vous avez raté la capture.

La seconde méthode évite d’envoyer les données sur Internet. Il faut lancer Wireshark, ouvrir le fichier de log et mettre ce filtre : btavdtp.signal_id. Les lignes GetAllCapabilities indiquent les codecs supportés. Dans le cas de l’adaptateur dans la capture, on peut par exemple voir l’aptX HD.

Pour les lignes qui indiquent uniquement Audio non-A2DP, Wireshark ne peut pas déterminer le codec. Il faut donc faire un double clic, afficher les informations complètes et investiguer. Dans ce cas précis, vous avez Qualcomm en développeur (0x0000000a) et 0x0001 en codec, ce qui correspond a priori à l’aptX LL. Vous trouverez quelques infos sur ce site, et le site proposé juste au-dessus indique que c’est justement l’aptX LL.

Quelques essais

J’ai donc vérifié qu’un casque supportait bien le MP3 (je le savais), qu’un boîtier de salon supporte le FastStream (alors qu’il n’a pas de microphone…) ou que la majorité des appareils indiquent se limiter à un bitpool (une valeur liée au débit) de 53 en SBC, même si en pratique ils acceptent souvent plus. On peut aussi indirectement vérifier si la voix passe en « HD » en regardant les fréquences d’échantillonnages supportées en SBC : il faut du 16 kHz pour la voix. Il y a des trucs particuliers sur les appareils Apple, dans un autre article qui devrait être publié séparément.

Un adaptateur compatible aptx LL


Un vieux casque avec du MP3


Un casque Creative avec du FastStream


Un casque Jabra qui ne prend que le SBC

Creative BT-W3 : la seconde solution pour la voix en Bluetooth

Je parlais hier du BT-W2, un adaptateur Bluetooth audio qui utilise un codec un peu particulier – le FastStream – pour gérer le retour audio. Avec le BT-W3, plus récent, la solution est différente.

Je vous mets le même texte que pour le BT-W2, pour bien expliquer le problème. L’A2DP (le profil Bluetooth) a été pensé pour une liaison unidirectionnelle, d’un émetteur (par exemple un smartphone) vers un récepteur (un casque, des enceintes, etc.). Dans la majorité des cas – je vais y revenir -, il n’y a pas de possibilité de retour (du casque vers le smartphone) sans réduire la qualité. Pratiquement tous les casques du marché intègrent un microphone, mais quand il est activé, ils passent sur un autre mode de transfert, le profil HFP (mains-libres). Quand c’est le cas, la qualité audio est fortement dégradée : on passe d’une liaison avec une qualité correcte dans l’absolu (une compression avec pertes, mais un débit assez large) à une liaison bidirectionnelle de mauvaise qualité. Les anciens casques travaillent en CVSD (en gros, du PCM à 64 kb/s, avec une fréquence d’échantillonnage de 8 kHz) ou du mSBC (de la compression avec pertes, en 16 kHz). Dans les deux cas, la liaison passe dans les deux sens sur le codec en question. Si vous voulez un exemple simple du résultat, connectez un casque en Bluetooth à un Mac, lancez de la musique, puis allez dans les Préférences Système, section Son, et choisissez le casque audio dans Entrée. Le résultat est immédiat : l’activation du microphone force le mode mains-libres, ce qui réduit la qualité de l’audio.

Le BT-W3, son microphone analogique et son adaptateur USB-C

La (seconde) solution de Creative : un microphone externe

Le BT-W3 (prêté par Creative pour un test dans Canard PC, il vaut 40 € officiellement) est un peu particulier. Premièrement, il est USB-C, mais est fourni avec un adaptateur USB-A (mâle) vers C (femelle). Deuxièmement, il ne supporte plus le FastStream (et a priori pas le canal de retour en aptX LL), mais uniquement le HFP (mode mains-libres) avec les défauts classiques (je vais en parler dans la suite). En fait, la solution de Creative est pragmatique et pas optimale selon moi : un microphone analogique. L’idée est simple : le microphone avec une prise jack 4 points peut être branché sur une console, sur un PC ou un Mac ou sur une manette de console (par exemple une manette de PlayStation 4) pour gérer l’entrée. Sur un Mac, ce n’est pas intéressant dans la majorité des cas, sauf peut-être sur un Mac mini : le microphone intégré est plus efficace. Dans les autres cas, c’est une solution passable, mais ça nécessite quelques manipulations, je parlerais des consoles à la fin.

Entrée et sortie en 48 kHz / 16 bits



On peut forcer la sortie sur le dongle


Ici avec le microphone branché sur le Mac mini

Sur un Mac, le comportement de base consiste donc à choisir le BT-W3 comme sortie audio (Préférences Système -> Son -> Sortie) et le microphone externe dans Entrée. Si vous sélectionnez le BT-W3 en entrée, le fonctionnement par défaut implique qu’il n’y a pas de son. Il faut passer en mode HFP en pressant deux fois le bouton de l’adaptateur pour activer l’entrée (la LED devient rouge), avec exactement le même problème qu’avec une liaison directe : le casque passe en mode mains-libres, et le son est dégradé. En fait, dans l’absolu, le BT-W3 n’a aucun intérêt sur un Mac : vous n’avez pas besoin du dongle pour sélectionner un casque en sortie et un autre microphone en entrée.

La sélection du codec

Le BT-W3 a tout de même un truc intéressant : on peut forcer le codec. Il supporte le SBC (le codec de base, LED bleue), l’aptX classique (LED verte), l’aptX HD (LED jaune) et l’aptX LL (basse latence, LED blanche). On peut noter l’absence de l’AAC, ainsi que du FastStream (pourtant porté par Creative) ou du LDAC. Le changement est simple : on presse le bouton, et il va tenter de forcer un codec quand c’est possible. Si votre casque ne supporte que le SBC, ça n’a aucun effet, par exemple. Petit point à savoir, l’aptX HD a peu d’intérêt ici : il est normalement meilleur avec un traitement 24 bits (au moins en théorie) mais l’adaptateur BT-W3 fonctionne en 16 bits. En pressant deux fois rapidement le bouton, on force le HDP (LED rouge).

SBC


aptX


aptX LL


aptX HD (plus ou moins…)

Dans la pratique, le fonctionnement est normalement le même qu’avec le BT-W2 : on met le casque en mode jumelage, puis le dongle (en pressant le bouton quelques secondes) et la connexion s’effectue seule. Avec un casque Sony, le SBC et l’aptX fonctionne. Sur un Jabra Pulse, j’ai uniquement le SBC (normal), sur le Creative Outlier Sport, j’ai du SBC et de l’aptX. Enfin, avec un adaptateur Bluetooth “de salon“, je peux tester les différents codecs (SBC, aptX, aptX LL, aptX HD). Il faut noter que mon vieux casque Sony, qui marche avec le BT-W2, n’a pas été détecté.

Dernier point avant les consoles, le volume. Le BT-W2 a le défaut de na pas contrôler le volume sous macOS, en laissant sa gestion au casque lui-même. Avec le BT-W3, on a le contrôle classique, les touches du clavier modifient bien le volume, mais c’est aussi un défaut. Plus exactement, le comportement peut être déroutant avec certains casques. Le fonctionnement attendu, c’est que le changement côté émetteur modifie le volume sur le récepteur, mais certains casques ne le font pas. Si vous avez un vieux casques (comme mon Sony), le changement de volume n’a aucun effet et il faut utiliser les boutons du casque lui-même. C’est un problème qui n’existe normalement plus, mais les anciens appareils qui ne supportent pas l’AVRCP (un profil Bluetooth) sont dans le cas.

Le cas des console : la PlayStation 4 et la Switch

L’idée, avec les consoles, est d’utiliser le microphone analogique sur la console (la Switch) ou la manette (avec une PlayStation 4) et d’envoyer l’audio sur le casque Bluetooth, ce que les constructeurs ne permettent pas. Mais il y a un problème : par défaut, les consoles laissent assez peu d’options. Si vous branchez le dongle, il est reconnu comme un casque/micro et le système ne va pas laisser sélectionner la sortie sur le dongle et l’entrée sur la prise de la console. La solution de Creative est assez basique : un firmware optionnel qui désactive totalement le microphone sur l’adaptateur. le programme de flash est disponible sous macOS, et c’est assez rapide. Une fois mis à jour, l’entrée audio disparaît, tout simplement. Le firmware n’est pas obligatoire, dans le sens ou il est possible d’utiliser le mode HFP avec un son dégradé, mais ça reste une mauvaise idée : le HFP rend vraiment l’écoute désagréable.

Mise à jour


En cours


Et terminée


Plus d’entrée micro

Le microphone sur une Dual Shock 4

Sur la PlayStation 4, si vous voulez utiliser le microphone analogique, vous avez deux possibilités. La première, si vous avez le firmware de base : il faut se rendre dans Paramètres -> Périphériques -> Périphériques audio. Choisissez le Creative BT-W3 comme périphérique de sortie (il va se caler aussi sur l’entrée), puis décochez Changer automatiquement de périphérique de sortie. Ensuite, il suffit de brancher le microphone sur la manette. Normalement, l’entrée passera sur le microphone tout en gardant la sortie sur le dongle.

20210123164937


20210123164949


20210123165123


Une entrée différente de la sortie

La seconde solution, plus simple, passe par le firmware HFP OFF. Dans ce cas-là, il suffit de choisir (au même endroit) l’entrée et la sortie.

Ici aussi (notez le changement de nom)

Sur la Switch, c’est encore plus simple : il n’y a pas d’options. Donc soit vous utilisez le firmware HFP, et le mode HFP du casque (avec le son dégradé), soit le firmware sans HFP, qui permet d’utiliser le microphone analogique sur la prise jack de la console. Le branchement du dongle force automatiquement la sortie sur l’USB, avec un petit message dans le coin de l’écran.

Le message sur la Switch


Microphone et dongle USB-C

En fait, je suis un peu dubitatif. Le BT-W3 ne corrige pas vraiment le problème du Bluetooth, il s’agit juste d’une solution efficace si vous avez une console pour utiliser un micro et un casque Bluetooth (et c’est déjà pas mal). Mais sur un ordinateur, autant le BT-W2 pouvait apporter une alternative intéressante (même si limitée par la compatibilité FastStream), autant le BT-W3 n’a aucun intérêt. Les OS modernes permettent aisément de choisir un périphérique de sortie différent de celui d’entrée, et le microphone de Creative reste assez basique. Disons que si vous avez un casque aptX LL et que la latence vous gêne (par exemple si vous jouez), le BT-W3 peut servir, mais uniquement parce que l’aptX LL est mal géré par les OS…

Creative BT-W2 : la première solution pour la voix en Bluetooth

Pendant quelques temps, ça va parler de Bluetooth. Avec un problème assez intéressant à analyser : le retour audio. En effet, le profil A2DP (la norme en Bluetooth) ne permet pas réellement le retour (c’est-à-dire la transmission de la voix) sans bidouiller. Et Creative propose deux solutions intéressantes pour régler ce problème. Aujourd’hui, commence par le BT-W2, un émetteur/récepteur USB.

Un peu de théorie basique, pour commencer. L’A2DP (le profil Bluetooth) a été pensé pour une liaison unidirectionnelle, d’un émetteur (par exemple un smartphone) vers un récepteur (un casque, des enceintes, etc.). Dans la majorité des cas – je vais y revenir -, il n’y a pas de possibilité de retour (du casque vers le smartphone) sans réduire la qualité. Pratiquement tous les casques du marché intègrent un microphone, mais quand il est activé, ils passent sur un autre mode de transfert, le profil HFP (mains-libres). Quand c’est le cas, la qualité audio est fortement dégradée : on passe d’une liaison avec une qualité correcte dans l’absolu (une compression avec pertes, mais un débit assez large) à une liaison bidirectionnelle de mauvaise qualité. Les anciens casques travaillent en CVSD (en gros, du PCM à 64 kb/s, avec une fréquence d’échantillonnage de 8 kHz) ou du mSBC (de la compression avec pertes, en 16 kHz). Dans les deux cas, la liaison passe dans les deux sens sur le codec en question. Si vous voulez un exemple simple du résultat, connectez un casque en Bluetooth à un Mac, lancez de la musique, puis allez dans les Préférences Système, section Son, et choisissez le casque audio dans Entrée. Le résultat est immédiat : l’activation du microphone force le mode mains-libres, ce qui réduit la qualité de l’audio.

La solution de Creative : un codec avec du retour

Creative, avec l’adaptateur BT-W2, a une solution partielle au problème : le FastStream ou l’aptX LL. Je passe rapidement sur le second : en théorie on peut avoir un canal de retour, mais il y a très peu d’informations, et Creative indique qu’il n’y a que deux produits compatibles, des cartes son capables de recevoir du Bluetooth, plutôt onéreuses. Le FastStream, lui, est un pseudo-codec développé par CSR – un fabricant de puces Bluetooth, racheté par Qualcomm – pour réduire la latence et propose un canal de retour audio. Il s’agit d’un pseudo-codec dans le sens le FastStream transmet du SBC avec un débit assez bas (~212 kb/s) vers le casque, et du SBC en mono (et 16 kHz) depuis le casque. C’est souvent considéré comme un hack de la norme, avec dans la pratique une compatibilité assez faible. Le FastStream a plusieurs défauts, le premier vient de la qualité : si du mono en 16 kHz suffit pour de la voix, le SBC avec un faible débit est franchement moyen. C’est mieux que de forcer du une qualité voix dans les deux sens, mais ça reste dégradé par rapport à la source. Le second problème, plus gênant, vient de la compatibilité. Les OS principaux (Android, iOS, Windows, macOS) ne supportent pas le FastStream, et le support sous Linux demande des modifications des pilotes, ce qui peut être bloquant. Du côté des casques, ça reste assez rare, avec essentiellement des modèles de chez Creative et de temps en temps des casques d’autres marques. On peut trouver une liste là, et visiblement certains écouteurs d’entrée de gamme (genre ces Aukey) sont compatibles, je testerais à l’occasion.

On en arrive au BT-W2, l’adaptateur de Creative.

Le dongle BT-W2

Un adaptateur audio

Le BT-W2 (un peu ancien, il se trouve vers 30 €) est un dongle audio. Pas un dongle Bluetooth. Il ne va pas remplacer le Bluetooth de votre Mac (PC), mais fonctionne comme une carte audio USB. L’idée est simple : c’est le dongle qui va gérer la transmission, et l’OS reçoit juste l’audio. Ça fonctionne sur à peu près n’importe quel OS, même un smartphone si vous avez un adaptateur USB. Sous macOS, il apparait simplement dans Préférences Système -> Son. Il ne propose pas de réglages particuliers pour la qualité, et travaille en 16 bits/48 kHz/stéréo pour la sortie, 16 bits/48 kHz/mono pour l’entrée. Attention, la transmission en entrée est en 16 kHz, mais ça doit simplifier le rééchantillonage.

48 kHz en entrée (c’est… théorique)


48 kHz en sortie

Le jumelage est assez simple : on met le casque en mode jumelage, ensuite on met le dongle en mode jumelage (en pressant son bouton quelques secondes) et la liaison va se faire d’elle-même. Premier bémol, impossible de régler le volume au clavier : il est géré uniquement par le casque. Par contre, les commandes des casques (play, pause, etc.) sont bien transmises, le dongle agit comme un périphérique HID.

J’ai d’abord testé avec un vieux casques Sony, qui ne prend que le MP3 et le SBC, et je n’ai donc pas de retour audio. Idem avec deux autres casques (Sony et Jabra) : pas de retour audio. J’ai rapidement testé avec un adaptateur Bluetooth “de salon” qui indique le codec utilisé : il passe en aptX LL (basse latence). Dans tous les cas, il n’y a tout simplement pas de canal de retour.

aptX LL

Ensuite, j’ai sorti un casque compatible FastStream, le Creative Outlier Sport (des écouteurs sportifs qui valent environ 40 €). Et là, il y a un canal de retour en 16 kHz (suffisant pour de la voix) avec de l’audio correct en même temps. Ce n’est pas extraordinaire (en partie parce de sont des écouteurs d’entrée de gamme) et j’entends clairement les défauts de compression sur certains morceaux, mais c’est parfaitement utilisable. Et surtout, le test de base qui consiste à activer l’entrée audio ne réduit pas la qualité. Comme expliqué plus haut, c’est flagrant avec les AirPods (ou n’importe quel autre casque) : il y a une dégradation immédiate… mais pas ici.

Des écouteurs FastStream

Une fois connecté de façon plus classique sous macOS, les écouteurs passent en aptX avec un son meilleur. Mais comme d’habitude, l’activation du microphone réduit la qualité drastiquement.

En aptX une fois connectés sous macOS directement

Une solution bâtarde

Est-ce que le choix de Creative avec le FastStream est intéressant ? Oui, et ça fonctionne. Mais est-ce la solution idéale ? Pas vraiment. Il faut un dongle (et donc utiliser une prise USB), un casque compatible (rare, Creative en propose) et on perd le réglage du volume direct. Qui plus est, le FastStream n’est pas un excellent (pseudo)codec : c’est du SBC avec un débit un peu faible. C’est suffisant pour du sport, écouter de la musique dans le métro (éventuellement) ou de la visio, mais on peut déceler les défauts, même sans être forcément entraîné.

Demain, on parlera du BT-W3, le nouveau modèle de dongle qui va dans une autre direction pour régler le problème.

Le MP3 comme codec en Bluetooth : comment ça marche ?

Si vous avez une petit idée de comment fonctionne un casque Bluetooth, vous savez peut-être que le codec est important. Et si les casques modernes proposent des codecs plutôt performants, à une époque il était possible de travailler en MP3. Ca fait un moment que j’essaye de faire fonctionner un casque dans ce mode pour vérifier un point, et là, j’ai réussi.

Le problème des codecs est souvent assez mal compris. Pour résumer rapidement, le codec de base est le SBC. Il est obligatoire, supporté par tous les appareils et offre une qualité assez moyenne. Il peut être assez bon sur des débits élevés, mais c’est de la bidouille. La norme propose d’autres codecs par défaut (MP3, AAC, etc.) et il existe la possibilité d’ajouter des codecs tiers, comme l’aptX, le LDAC, etc. Le sujet du jour est le MP3, mais il faut bien mettre les choses au point : dans tous les cas, les codecs impliquent des pertes (oui, même le LDAC), et dans 99 %, il y a un encodage lors de l’envoi. On peut lire ici et là (et je l’ai écrit à une époque) qu’Apple envoie l’AAC directement au casque, mais ce n’est pas le cas, j’y reviendrais. Malgré tout, la qualité de l’encodeur joue évidemment sur la perception du son. En AAC, l’encodeur Apple est meilleur (lors de tests en aveugle) que l’encodeur Fraunhofer, lui-même nettement devant une implémentation open source de l’AAC. Plus concrètement, la qualité du son varie en fonction des appareils émetteurs, même en utilisant le même casque. En aptX, le problème n’existe pas car Qualcomm fournit le même encodeur à tout le monde, par exemple.

Le cas MP3

A l’origine, l’idée de l’utilisation du MP3 était d’envoyer directement le son au casque, sans (ré)encodage préalable. C’est a priori ce que font quelques vieux lecteurs pour les smartphones Symbian du début des années 2000, mais c’est un comportement atypique. Dans l’exemple que j’ai pu tester, le MP3 est encodé en temps réel avec un débit assez faible (128 kb/s).

Le casque, le dongle

Il faut le savoir, le codec MP3 n’est utilisé que très rarement en Bluetooth, et pour tester, il y a deux écueils. Premièrement, trouver un périphérique qui accepte le codec. Les casques modernes ne le font généralement pas, il faut aller vers des appareils anciens, et fouiller les fiches techniques. Mon Sony DR-BT22, assez vieux, le propose. Deuxièmement, plus compliqué, l’émetteur doit le supporter aussi. La majorité des OS ne le fait pas, et j’avais trouvé à une époque quelques vieilles versions d’Android sur des appareils précis et c’est tout. macOS ne le fait pas, iOS non plus, avec GNU/Linux, c’est (peut-être) possible en bidouillant, etc. Sous Windows, ça va dépendre du pilote (la stack) et BlueSoleil, de chez IVT, le gère. Là, ça devient embêtant : on parle ici de vieilles versions de BlueSoleil, un pilote qui dépend énormément du dongle choisi. Je vais passer les détails, mais en gros la solution a été d’acheter un dongle Bluetooth d’occasion en espérant (après vérifications) que le pilote livré soit bien BlueSoleil. Et j’ai installé le tout sur un vieux PC sous Windows XP. Dans ce très long article sur les codecs, l’auteur n’a par exemple pas réussi à l’utiliser.

Par défaut, du SBC


Forcer le MP3


Il doit être avant le SBC


Pas de codec MP3 disponible ?

Une fois BlueSoleil installé, il faut forcer le MP3. Par défaut, le son est envoyé en SBC, il faut donc aller dans la configuration du protocole A2DP et mettre le MP3 devant le SBC. Et même après ça, j’ai eu un message d’erreur un peu bizarre : Professional MPEG Layer-3 Codec Not Detected. Après quelques recherches, je me suis rendu compte que le codec de base sous Windows XP est visiblement limité sur l’encodage, et il faut modifier deux entrées de la base de registre.

Dans [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc], remplacer "C:\\Windows\\System32\\l3codeca.acm" par "C:\\Windows\\System32\\l3codecp.acm".
Dans [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32], remplacer "msacm.l3acm"="C:\\Windows\\System32\\l3codeca.acm" par "msacm.l3acm"="C:\\Windows\\System32\\l3codecp.acm".

Après un redémarrage, ça a fonctionné.

Ca marche

La première question à se poser est simple : est-ce qu’il y a une différence audible ? Honnêtement… pas tellement. Le casque est un modèle d’entrée de gamme assez ancien, et je ne peux pas faire de tests en aveugle facilement, vu que le changement de codec nécessite pas mal de manipulations. Je dirais oui parce que je sais que le MP3 est probablement meilleur que le SBC dans le cas présent, mais c’est subjectif. En tout cas, les défauts du MP3 ne sont pas les mêmes à l’écoute que ceux du SBC.

La seconde question, plus intéressant : qu’envoie réellement le programme. BlueSoleil n’indique pas explicitement le débit, mais on peut afficher le nombre d’octets transmis. Donc en lisant le même morceau encore et encore, on peut vérifier ce qu’il envoie. J’ai tenté le même morceau en MP3 à 160 kb/s, en MP3 à 128 kb/s et en WAV (sans compression, donc), avec une transmission en MP3 puis en SBC. En MP3, dans tous les cas, la transmission a donné les mêmes valeurs, qui correspond à du MP3 à 128 kb/s. En SBC, le débit était de ~235 kb/s, donc un bitpool (en gros, les valeurs prédéfinies) de 35. A ce débit, le SBC est considéré comme à peine moyen, mais les casques modernes ont généralement un débit plus élevé (souvent aux alentours de 350 kb/s). Dans les deux cas, on a donc un débit assez faible en Bluetooth, ce qui a un avantage évident : ça coupe assez peu. Avec les appareils modernes, on peut monter un peu plus haut (jusqu’à environ 900 kb/s avec les meilleurs codecs) mais la liaison peut en souffrir.

BlueSoleil indique le nombre d’octets transférés

Globalement, mon petit test a permis de vérifier qu’il est possible de transférer en MP3 depuis un PC, mais c’est à peu près tout : l’intérêt n’est pas évident, surtout avec des appareils aussi vieux et des débits aussi faibles.

SCMS-T, le DRM inutile en Bluetooth

En cherchant des infos sur les codecs en Bluetooth, je suis tombé sur un truc bizarre : une sorte de DRM intégré dans les périphériques audio Bluetooth, mais qui a très peu d’effet. Le SCMS-T.

Le SCMS (Serial Copy Management System) est un flag présent dans les flux numériques (par exemple les CD) qui empêche théoriquement la copie. J’en avais parlé il y a longtemps, c’est essentiellement utilisé sur les DAT ou les MiniDisc (par exemple) pour empêcher la copie numérique. Et chez Creative, j’ai découvert que la technologie est déployée en Bluetooth, sous le nom SCMS-T. Mais là aussi… elle ne sert pratiquement à rien.

Le principe semble être le même que le HDCP, en théorie il faut que les appareils soient compatibles SCMS-T pour que l’audio fonctionne. Mais c’est visiblement très théorique, de ce que j’ai pu tester. Pour essayer, j’ai sorti un vieux casque Bluetooth (Sony DR-BT22) qui a la particularité de pouvoir désactiver le SCMS-T. En pratique, c’est assez simple : 99 % des appareils Bluetooth sont compatibles, et pour trouver un appareil qui ne l’est pas, il faut vraiment aller chercher des antiquités.

Le casque propose de désactiver le SCMS-T (et il supporte le codec MP3)

Maintenant, il se passe quoi quand on désactive le SCMS-T ? Dans la majorité des cas… rien. J’ai testé avec macOS (Big Sur), iOS (14), un smartphone sous Android (10) et un PC sous Windows 10 et ça marche. En fait, la majorité des stacks (le pilote, au sens large) ne réagit pas en l’absence de SCMS-T. Il y a quelques cas où la technologie est obligatoire tout de même, notamment avec la stack Bluetooth de Toshiba. Elle était utilisée sur les PC portables de la marque, et elle nécessitait un périphérique compatible par défaut (on trouve quelques traces de ce problème sur de vieux forums, avec des réponses d’un certain… Dandu). Dans les trucs plus récents, la stack CSR Harmony (utilisée, par exemple, par ce dongle) peut être configurée pour l’imposer, même si ce n’est pas obligatoire. On trouve aussi des traces de la technologie dans les pilotes Bluetooth Intel.

Petit test

Pour vérifier ce que ça donnait, j’ai donc désactivé le SCMS-T sur le casque Bluetooth, et installé le pilote CSR. Au départ, il désactive SCMS-T par défaut, et il est possible de l’activer. On peut aussi ensuite le faire dans les pilote, avec un avertissement.


Ensuite, le SCMS-T ne semble pas bloquer : j’ai pu jumeler le casque et envoyer de l’audio dessus… mais uniquement avec le profil HFP, donc avec une qualité sonore (très) dégradée.


En fait, l’absence de SCMS-T (ici, donc avec l’option activée côté PC et désactivée côté casque) bloque la liaison A2DP, c’est-à-dire l’audio de qualité. La première capture montre le message d’erreur en cas de tentative de connexion, et ce n’est pas très explicite. La seconde capture montre le résultat quand on active le SCMS-T côté casque.

Une erreur pas très explicite


Une fois activé, ça marche

Du coup, le SCMS-T rejoint la longue liste des DRM inutiles, qui peuvent juste ennuyer les gens dans de très rares cas. Mais la protection elle-même n’empêche pas réellement de copier du contenu. Et de toute façon, vu la dégradation de l’audio en Bluetooth, il n’y a aucune raison de vouloir récupérer le flux nativement.

Review: Kali Audio Mountain View Bluetooth Input Module

Review - Kali Audio MV-BT Bluetooth module

if you’d like to add Bluetooth audio compatibility to your existing setup, Kali Audio has a low-cost dedicated module for you: the MV-BT. This review examines the unit’s audio quality, performance, and value.

The post Review: Kali Audio Mountain View Bluetooth Input Module appeared first on DJ TechTools.

❌