If you stream audio in various formats from MPD to music clients, you may have run into a problem. Sometimes audio might simply go silent on a track change even though your MPD client says it’s playing the next song. This might actually have something to do with your player: some players don’t deal with audio frequency or resolution changes well. If you have audio in various resolutions and bitrates, this can trigger such a silence.
There’s one way to work around this, forcing your audio output to always have the same frequency and resolution via the format
option:
audio_output {
type "httpd"
name "Whatever"
encoder "lame"
port "8001"
bitrate "320"
max_clients "8"
mixer_type "software"
format "44100:16:2"
always_on "yes"
}
The always_on
option may help as well with especially picky audio players. It produces a constant stream of silence so that there is always a bitstream for clients to receive.
A problem with this approach is of course that if you have a lot of audio in e.g. 48 KHz and 24-bit, the resulting stream will be downsampled. But you can try using e.g. 48000:24:2
in this case. I’m not sure if upsampling 44.1 KHz content to 48 KHz might introduce audible artifacting; I certainly can’t hear it.
Thanks to Neo-Desktop on GitHub for digging up my old gist about this issue and testing the workaround.