I'm connecting a raspberry pi 3b+ to a small bluetooth speaker (mostly thanks to http://youness.net/raspberry-pi/how-to-connect-bluetooth-headset-or-speaker-to-raspberry-pi-3 and some other resources)
raspberry pi info:
pi@rp0:~ $ uname -a
Linux rp0 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux
I'm at the point now where I'm able to reliably connect to the speaker as an audio sink, and keep the connection up... but the sound quality is HORRIBLE
as you might expect from this config:
pi@rp0:~ $ pacmd list-sinks ... * index: 1 name: <bluez_sink.C0_7A_A5_01_0C_B6.headset_head_unit> driver: <module-bluez5-device.c> flags: HARDWARE HW_VOLUME_CTRL LATENCY state: SUSPENDED suspend cause: IDLE priority: 9030 sample spec: s16le 1ch 8000Hz channel map: mono Mono ...
The pulseaudio daemon config is configured to set the sample rate, format, channels, and channel-map that I want (basically the defaults, and verified as what I want from my laptop's pulseaudio config when I connect the bluetooth speaker there). Here is the config on the pi:
pi@rp0:~ $ pulseaudio --dump-conf ... default-sample-format = s16le default-sample-rate = 44100 alternate-sample-rate = 48000 default-sample-channels = 2 default-channel-map = front-left,front-right ...
But I can't seem to get this config to take effect reliably. Earlier in the day I was able to connect with the settings I wanted (stereo/44100hz), but now, after disconnecting and reconnecting, it has returned to the sample rate printed above (mono/8000hz), and I can't seem to retrace the set of "magical" steps I had to get the config to take effect (some sequence of
bluetoothctl ... connect)
So, how do I create a reliable configuration profile for this device?