#1 Le 03/02/2024, à 03:18
- Coeur Noir
Configurer paramètres codec sbc / bluetooth à travers pipewire ?
Hello,
le but : faire en sorte que le pc envoie via bluetooth un signal audio de « meilleure qualité » à travers son codec habituel, le sbc.
À priori il y avait cette méthode ( vue ici, 2020 ) avec pulse-audio : modifier le fichier /etc/pulse/default.pa, vers la ligne 70
.ifexists module-bluetooth-discover.so
## initial settings
# load-module module-bluetooth-discover
## added on 2024-02-02 ↓
load-module module-bluetooth-discover a2dp_config="sbc_cmode=dual sbc_min_bp=24 sbc_max_bp=79 sbc_freq=48k"
.endif
J'aimerais faire l'équivalent dans un système qui utilise pipewire/wireplumber.
Il semble qu'il faille s'intéresser au fichier /etc/pipewire/pipewire-pulse.conf, vers la ligne 73 qui dit
# Extra modules can be loaded here. Setup in default.pa can be moved here
context.exec = [
{ path = "pactl" args = "load-module module-always-sink" }
#{ path = "pactl" args = "load-module module-switch-on-connect" }
#{ path = "/usr/bin/sh" args = "~/.config/pipewire/default.pw" }
]
C'est juste que là, la syntaxe c'est quoi ?
{ path = "a2dp_config" args = "sbc_cmode=dual sbc_min_bp=24 sbc_max_bp=79 sbc_freq=48k" }
???
Manifestement la modif' faite dans default.pa est sans effet :
django@ASGARD:~$ sudo hcidump avdtp
[sudo] Mot de passe de django :
HCI sniffer - Bluetooth packet analyzer ver 5.64
device: hci0 snap_len: 1500 filter: 0x400
> AVDTP(p): Discover cmd: transaction 0 nsp 0x00
< AVDTP(p): Discover rsp: transaction 0 nsp 0x00
ACP SEID 1 - Audio Source
ACP SEID 2 - Audio Sink
ACP SEID 3 - Audio Source
ACP SEID 4 - Audio Sink
ACP SEID 5 - Audio Source
ACP SEID 6 - Audio Source
ACP SEID 7 - Audio Source
> AVDTP(p): Capabilities cmd: transaction 0 nsp 0x00
ACP SEID 1
< AVDTP(p): Capabilities rsp: transaction 0 nsp 0x00
Media Transport
Media Codec - non-A2DP (LDAC)
3C 07
> AVDTP(p): Capabilities cmd: transaction 0 nsp 0x00
ACP SEID 3
< AVDTP(p): Capabilities rsp: transaction 0 nsp 0x00
Media Transport
Media Codec - SBC
16kHz 32kHz 44.1kHz 48kHz
Mono DualChannel Stereo JointStereo
4 8 12 16 Blocks
4 8 Subbands
SNR Loudness
Bitpool Range 2-64
> AVDTP(p): Capabilities cmd: transaction 0 nsp 0x00
ACP SEID 5
< AVDTP(p): Capabilities rsp: transaction 0 nsp 0x00
Media Transport
Media Codec - SBC
16kHz 32kHz 44.1kHz 48kHz
Mono DualChannel Stereo JointStereo
4 8 12 16 Blocks
4 8 Subbands
SNR Loudness
Bitpool Range 2-64
> AVDTP(p): Capabilities cmd: transaction 0 nsp 0x00
ACP SEID 6
< AVDTP(p): Capabilities rsp: transaction 0 nsp 0x00
Media Transport
Media Codec - non-A2DP (Unknown)
01 23
> AVDTP(p): Capabilities cmd: transaction 0 nsp 0x00
ACP SEID 7
< AVDTP(p): Capabilities rsp: transaction 0 nsp 0x00
Media Transport
Media Codec - non-A2DP (Unknown)
03 23
> AVDTP(p): Set config cmd: transaction 0 nsp 0x00
ACP SEID 5 - INT SEID 1
Media Transport
Media Codec - SBC
48kHz
JointStereo
16 Blocks
8 Subbands
Loudness
Bitpool Range 2-38
< AVDTP(p): Set config rsp: transaction 0 nsp 0x00
> AVDTP(p): Open cmd: transaction 0 nsp 0x00
ACP SEID 5
< AVDTP(p): Open rsp: transaction 0 nsp 0x00
< AVDTP(p): Close cmd: transaction 4 nsp 0x00
ACP SEID 1
> AVDTP(p): Close rsp: transaction 4 nsp 0x00
< AVDTP(p): Set config cmd: transaction 5 nsp 0x00
ACP SEID 1 - INT SEID 3
Media Transport
Media Codec - SBC
48kHz
JointStereo
16 Blocks
8 Subbands
Loudness
Bitpool Range 2-38
> AVDTP(p): Set config rsp: transaction 5 nsp 0x00
< AVDTP(p): Open cmd: transaction 6 nsp 0x00
ACP SEID 1
> AVDTP(p): Open rsp: transaction 6 nsp 0x00
< AVDTP(p): Start cmd: transaction 7 nsp 0x00
ACP SEID 1
> AVDTP(p): Start rsp: transaction 7 nsp 0x00
< AVDTP(c): ver 2 cc 0 pt 96 seqn 0 time 0 ssrc 1
< AVDTP(c): ver 2 cc 0 pt 96 seqn 1 time 0 ssrc 1
(…) etc etc (…)
et au cas où :
django@ASGARD:~$ pactl list sinks
Destination #71 c'est la sortie anolog-stereo, pas utilisée à ce moment là
État : SUSPENDED
(…)
Destination #409 Le casque bluetooth que je teste en ce moment
État : RUNNING
Nom : bluez_output.58_FC_C6_D3_76_71.a2dp-sink
Description : TOZO HT2
Pilote : PipeWire
Spécification de l’échantillon : s16le 2ch 48000Hz
Plan des canaux : front-left,front-right
Module du propriétaire : 4294967295
Sourdine : non
Volume : front-left: 19639 / 30% / -31,40 dB, front-right: 19639 / 30% / -31,40 dB
balance 0,00
Volume de base : 65536 / 100% / 0,00 dB
Source du moniteur : bluez_output.58_FC_C6_D3_76_71.a2dp-sink.monitor
Latence : 0 usec, configuré 0 usec
Marqueurs : HARDWARE HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
Propriétés :
api.bluez5.address = "58:FC:C6:D3:76:71"
api.bluez5.codec = "sbc"
api.bluez5.profile = "a2dp-sink"
api.bluez5.transport = ""
card.profile.device = "1"
device.id = "61"
device.routes = "1"
factory.name = "api.bluez5.a2dp.sink"
device.description = "TOZO HT2"
node.name = "bluez_output.58_FC_C6_D3_76_71.a2dp-sink"
node.pause-on-idle = "false"
priority.driver = "1010"
priority.session = "1010"
factory.id = "8"
clock.quantum-limit = "8192"
device.api = "bluez5"
media.class = "Audio/Sink"
node.driver = "true"
node.latency = "512/48000"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "64"
object.serial = "409"
client.id = "34"
Ports :
headset-output: Casque (type: Casque, priority: 0, available)
Port actif : headset-output
Formats :
pcm
django@ASGARD:~$
Lectures en rapport : https://habr.com/en/articles/456182/ ⋅ https://habr.com/en/articles/456476/ ⋅ http://soundexpert.org/articles/-/blogs … udio-codec ← /!\ pas httpS ⋅ https://btcodecs.valdikss.org.ru/sbc-bi … alculator/ ⋅ https://www.redpill-linpro.com/techblog … -msbc.html ( 2021 )
Dernière modification par Coeur Noir (Le 03/02/2024, à 04:12)
Débuter ⋅ Doc ⋅ Bien rédiger ⋅ Retour commande ⋅ Insérer image | illustrations & captures d'écran < ⋅ >
Hors ligne
#2 Le 04/02/2024, à 02:01
- Coeur Noir
Re : Configurer paramètres codec sbc / bluetooth à travers pipewire ?
Le sujet n'a pas l'air de passionner
Bon je suis arrivé à quelque chose d'utile, à partir du dernier lien dans le message précédent ; avoir le choix entre divers « codecs » pour la sortie casque via bluetooth :
mais je voudrais plutôt ajouter mes propres paramètres pour sbc, à cet endroit…
Pour arriver à ce résultat - sous pipewire/wireplumber et Ubuntu 22.04 - j'ai créé ce fichier :
$HOME/.local/share/wireplumber/30-bluez-monitor.lua
( c'est à dire un équivalent personnel local de /usr/share/wireplumber/30-bluez-monitor.lua )
dans lequel il y a :
bluez_monitor = {}
bluez_monitor.properties = {
bluez5.msbc-support = true # ici ce sont
bluez5.sbc-xq-support = true # les ajouts
}
bluez_monitor.rules = {}
function bluez_monitor.enable()
load_monitor("bluez", {
properties = bluez_monitor.properties,
rules = bluez_monitor.rules,
})
load_optional_module("logind")
end
…et j'ai l'impression que ça change quelque chose ( la scène s'ouvre, comme si la stéréophonie s'élargissait ).
À moins que ce soit juste un biais cognitif - difficile de faire des tests en double aveugle tout seul.
Ça ne m'apprend pas encore où je pourrais caser un « profil » sbc avec ces paramètres :
a2dp_config="sbc_cmode=dual sbc_min_bp=24 sbc_max_bp=79 sbc_freq=48k"
mais je vais continuer mes bidouilles…
Débuter ⋅ Doc ⋅ Bien rédiger ⋅ Retour commande ⋅ Insérer image | illustrations & captures d'écran < ⋅ >
Hors ligne
#3 Le 04/02/2024, à 07:15
- xubu1957
Re : Configurer paramètres codec sbc / bluetooth à travers pipewire ?
Bonjour,
Il semble y avoir des limitations, suivant les codecs, à lire cette page > reddit.com/r/linuxaudio/comments/11fgoqq/comment_activer_le_codec_bluetooth_aac_dans Pipewire ?
Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Réso|u] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci. Membre de Linux-Azur
Hors ligne
#4 Le 04/02/2024, à 07:31
- krodelabestiole
Re : Configurer paramètres codec sbc / bluetooth à travers pipewire ?
bluez5.codecs
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
En ligne
#5 Le 06/02/2024, à 23:03
- Coeur Noir
Re : Configurer paramètres codec sbc / bluetooth à travers pipewire ?
Merci pour ces autres lectures fort intéressantes, qui me permettent de mieux formuler le souhait initial :
⋅ je ne cherche pas à installer un « nouveau » codec, le sbc pourrait suffire ;
⋅ lorsqu'a2dp est utilisé, je souhaite que ce soit avec le codec sbc MAIS utilisant ces paramètres : "sbc_cmode=dual sbc_min_bp=24 sbc_max_bp=78 64 sbc_freq=48k" ( qui ne sont pas les paramètres standards minimaux ).
Débuter ⋅ Doc ⋅ Bien rédiger ⋅ Retour commande ⋅ Insérer image | illustrations & captures d'écran < ⋅ >
Hors ligne