Pulseaudio pour enceinte Bluetooth

Configuration de pulseaudio

Pulseaudio, gestionnaire de son par défaut

Dans un premier temps, tu vas faire en sorte que ce soit pulseaudio le seul maître à bord et que les programmes qui veulent utiliser Alsa passent quand même par pulseaudio.
pour ça, tu vas créer le fichier /etc/asound.conf

sudo nano /etc/asound.conf

et copier ceci :

pcm.pulse {
    type pulse
}

ctl.pulse {
    type pulse
}

pcm.default pulse
ctl.default pulse

Suivi comme d’habitude d’un CTRL+O pour sauvegarder et CTRL+X pour quitter.

Et tu vas copier la même chose dans le fichier .asoundrc

cd
nano .asoundrc

La commande “cd” te ramène dans ton répertoire profil, et “nano” édite le fichier qui devrait déjà être rempli par d’autres commandes. Mais tu supprimes tout pour ne mettre que ce qui est plus haut. Évidemment, pas de sudo ici puisque le fichier t’appartient 🙂

Configuration de la sortie sur l’enceinte

une fois ça fait, il va falloir dire à pulseaudio que l’on souhaite utiliser cette enceinte en sortie. On va donc déjà voir si tout est bien vu

pacmd list-cards

En réponse tu devrais avoir tous les périphériques audios et surtout celui qui nous intéresse qui est l’enceinte (accessoirement en index 2 dans mon cas)

   index: 2
	name: <bluez_card.00_11_22_33_44_55>
	driver: <module-bluez5-device.c>
	owner module: 24
	properties:
		device.description = "JBL GO 2"
		device.string = "00:11:22:33:44:55"
		device.api = "bluez"
		device.class = "sound"
		device.bus = "bluetooth"
		device.form_factor = "speaker"
		bluez.path = "/org/bluez/hci0/dev_00_11_22_33_44_55"
		bluez.class = "0x200414"
		bluez.alias = "JBL GO 2"
		device.icon_name = "audio-speakers-bluetooth"
	profiles:
		headset_head_unit: Headset Head Unit (HSP/HFP) (priority 20, available: unknown)
		a2dp_sink: High Fidelity Playback (A2DP Sink) (priority 10, available: unknown)
		off: Éteint (priority 0, available: yes)
	active profile: <off>
	ports:
		speaker-output: Haut-parleur (priority 0, latency offset 0 usec, available: unknown)
			properties:
				
		speaker-input: Bluetooth Input (priority 0, latency offset 0 usec, available: unknown)
			properties:


Ce qui va nous intéresser, c’est la ligne active profile. Si on regarde les profils disponibles, on voit “headset_head_unit”, “a2dp” et “off”.
Le profil “headset_head_unit” correspond au kit main libre. Si ton enceinte est équipée d’un micro, alors tu pourras l’utiliser. Par contre, le son en sortie d’enceinte sera une catastrophe.
Pour avoir un vrai son de qualité, il faudra alors choisir le profil a2dp. Voici la commande qui va te permettre d’activer ce profil :

pactl set-card-profile bluez_card.xx_xx_xx_xx_xx_xx a2dp_sink

Tu auras compris qu’il faut changer les xx par les chiffres correspondant à l’adresse MAC de ton enceinte. Attention, cette fois les chiffres sont séparés par des “_” et non “:”.

Donc maintenant que nous avons défini le profil par défaut, il ne te reste plus qu’à dire à pulseaudio que l’enceinte est le périphérique de sortie par défaut. Dans le langage pulseaudio, on parle de “sink” pour tout ce qui est sortie et “source” pour tout ce qui est en entrée (comme le micro).
donc voici la commande pour définir l’enceinte en sortie :

pactl set-default-sink bluez_sink.xx_xx_xx_xx_xx_xx.a2dp_sink


Il ne nous reste plus qu’à tester tout ça avec la commande :

aplay /usr/share/sounds/alsa/Front_Right.wav

si tu entends du son, c’est gagné 🙂

8 Comments

  1. Bonjour
    Excellent tuto,mais j’ai un petit problème c’est que de temps en temps le son en bt grésille même à bas volume, j’ai déjà dés-associer et recommencer une installe complète de buster mais rien y fait, auriez-vous une idée ?

  2. Bjr,

    merci pour toutes ces informations !

    L’idée (la mienne…) était d’installer une enceinte BT sur un pi zero avec Snips …

    J’ai fait un mix entre les 2 séries (Snips & BT), tout va à peu près bien (encore merci). mais je bute toujours sur le non-lancement de ‘pulseaudio –start’ lors du démarrage.
    Et j’avoue ne pas être bon sur ce genre de sujet …

    • Précision : j’arrive à lancer ‘pulseaudio –start’ … mais le système me demande le mot de passe. Je cherche un moyen (avec les fameuses explications) pour contourner le problème.

    • Bonjour,

      Oui tout à fait. L’utilisation du socket est faite pour que des utilisateurs distincts utilisent le même serveur pulseaudio. Donc, après, qu’importe le périphérique de sortie 🙂

      Ced

  3. Salut,

    Merci pour ton blog et les articles. J ai suivi ceux de l installation de snips.
    En voyant celui-ci, je me posais la question de savoir si c était compatible avec snips.
    Merci d avance

    Zak

    • A partir du moment que c’est à travers de pulseaudio que fonctionne snips, oui sans soucis. I faut juste eviter de refaire un “sam setup audio” derrière viendrait écraser le asound.conf

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.