My Own Memory Hole

MPD, PulseAudio et Bluetooth sous Raspbian Buster

Alors que je venais juste de mettre en place la cohabitation entre MPD et mon ampli connecté en Bluetooth sur mon Raspberry Pi 2 (voir ici), je basculais sur un modèle 4, modifiant quelque peu mes usages et utiisant cette fois-ci l'interface graphique (afin de profiter notamment de Spotify, une fois la gestion des DRM ajoutée). Et du coup, afin d'avoir une maîtrise plus fine de mes sorties audio, j'ai opté pour l'utilisation de PulseAudio.

On commence par purger bluealsa s'il est installé :

sudo apt purge bluealsa

puis on installe tout ce qui concerne le Bluetooth et PulseAudio :

 sudo apt install pi-bluetooth pulseaudio pulseaudio-module-bluetooth paprefs pavumeter pavucontrol pasystray

On vérifie la configuration de PulseAudio (/etc/pulse/default.pa) notamment pour ce qui est du Bluetooth :

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif

et on ajoute ces éléments :

# automatically switch to newly-connected devices
load-module module-switch-on-connect

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 # IP of localhost

On tue PulseAudio :

pulseaudio -k

S'il ne redémarre pas tout seul, il suffit de lancer la commande :

pulseaudio -D

On veille à bien connecter notre enceinte Bluetooth via l'utilitaire en ligne de commande bluetoothctl : on commence par rechercher les périphériques disponibles (scan on), puis on lui accorde notre confiance (pas d'authentification nécessaire, trust) avant de faire l'appairage avec le bon device (pair) et de nous y connecter (connect) ; on peut alors cesser la recherche (scan off) :

bluetoothctl 
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:1A:7D:DA:71:15 Discovering: yes
[CHG] Device FC:58:FA:14:27:BC RSSI: -71
[CHG] Device FC:58:FA:14:27:BC TxPower: 4
[...]
[bluetooth]# pair FC:58:FA:14:27:BC 
Attempting to pair with FC:58:FA:14:27:BC
[CHG] Device FC:58:FA:14:27:BC Connected: yes
[...]
[CHG] Device FC:58:FA:14:27:BC ServicesResolved: yes
[CHG] Device FC:58:FA:14:27:BC Paired: yes
Pairing successful
[CHG] Device FC:58:FA:14:27:BC ServicesResolved: no
[CHG] Device FC:58:FA:14:27:BC Connected: no
[bluetooth]# trust FC:58:FA:14:27:BC 
[CHG] Device FC:58:FA:14:27:BC Trusted: yes
Changing FC:58:FA:14:27:BC trust succeeded
[bluetooth]# connect FC:58:FA:14:27:BC 
Attempting to connect to FC:58:FA:14:27:BC
[CHG] Device FC:58:FA:14:27:BC Connected: yes
Connection successful
[CHG] Device FC:58:FA:14:27:BC ServicesResolved: yes
[Tangent Ampster BT]# scan off
Discovery stopped
[...]
[Tangent Ampster BT]# exit

On configure une sortie PulseAudio dans la configuration de mpd, /etc/mpd.conf :

sudo nano /etc/mpd.conf
audio_output {
        type            "pulse"
        name            "My Pulse Output"
        server          "localhost"
        mixer_type      "software"
}

On relance MPD et l'affaire est jouée :

sudo service mpd restart