UD-503 mpd alsa config bit perfect

First of all, kill pulseaudio, burn it, it is useless for pure audio playback.
Everything else, like kodi, with a hdmi audio output for example, will still work.

In debian:

# apt-get remove --purge pulseaudio
# apt-get install mpd alsa-utils alsa-tools

Now you have a clean straight mpd -> alsa.
You should have recompile the snd-usb-audio before.

Check your devices:

# aplay -l
**** List of PLAYBACK Hardware Devices ****
...
card 2: UD503 [UD-503], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
...

Alsa config: /etc/asound.conf

pcm.!default { type hw card UD503 }
ctl.!default { type hw card UD503 }

MPD config: /etc/mpd.conf

pid_file            "/var/run/mpd/pid"
state_file          "/var/lib/mpd/state"

# My nas target / NFS mount
# DB is also remote because it is generated one time for multiple players
# You can keep it local as default
music_directory     "/nas/music"
playlist_directory  "/nas/music/playlists"
db_file             "/nas/music/tag_cache"
log_file            "/nas/music/mpd.log"
sticker_file        "/nas/music/sticker.sql"

# ... root, i don't care. it's a dedicated player but it's bad.
# if you care, keep 'mpd' or any system user in 'audio' group
user                "root"
group               "root"

bind_to_address     "any"
log_level           "default"

save_absolute_paths_in_playlists  "yes"
metadata_to_use           "artist,album,title,track,name,genre,date,disc"
follow_inside_symlinks    "yes"

zeroconf_enabled          "yes"
zeroconf_name             "player"

# Gigabit network, go for it
buffer_before_play      "100%"
connection_timeout      "60"
max_connections         "200"
max_playlist_length     "16384"
max_command_list_size   "2048"
max_output_buffer_size  "8192"
filesystem_charset      "UTF-8"
id3v1_encoding          "UTF-8"

audio_output {
  type      "alsa"
  # default is our single asound device
  device    "default"
  name      "UD503"
  use_mmap  "yes"
  # bit perfect
  auto_resample   "no"
  auto_channels   "no"
  auto_format     "no"
  # Since UD-503 have an integrated preamp, disable mixer completely, Yes!
  mixer_type      "disabled"
  # Good bandwidth
  period_time "50000"
  buffer_time "2500000"
  # And DSD!
  dsd_usb         "yes"
}

input {
  plugin "curl"
}

decoder {
  plugin "dsdiff"
  enabled "yes"
}

You can go further with a RT kernel to achieve ultra low latency like i did:
RT Kernel
– Linux kernel 4.1.15
– patch usb-snd-audio
– patch RT

– a batch of ‘chrt’ to focus RT latency on USB irq and MPD.
pmqos_static cpu_dma_latency=0

More links:
Linux audio System Configuration
Linux Audio all realtime info

Bye

Posted in dac, debian Tagged with: , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*