{"id":256150,"date":"2022-11-24T09:18:06","date_gmt":"2022-11-24T01:18:06","guid":{"rendered":"https:\/\/blog.zhenglei.net\/?p=256150"},"modified":"2022-11-24T09:18:06","modified_gmt":"2022-11-24T01:18:06","slug":"play-dsd-dff-file-within-mpd-daemon","status":"publish","type":"post","link":"https:\/\/blog.zhenglei.net\/?p=256150","title":{"rendered":"Play DSD dff file within MPD daemon"},"content":{"rendered":"\n<p>To support play DSD dff file inrealtime mode, we must add dsdiff plugin in mpd config file.<\/p>\n\n\n\n<p><mark style=\"color:#fa0202\" class=\"has-inline-color\">decoder {<br>\u00a0 plugin &#8220;ffmpeg&#8221;<br>\u00a0 enable &#8220;yes&#8221;<br>}<br><br>decoder {<br>\u00a0 plugin &#8220;dsdiff&#8221;<br>\u00a0 enable &#8220;yes&#8221;<br>}<\/mark><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong><em>cat mpd.conf<\/em><\/strong><br><br>music_directory\u00a0\u00a0\u00a0\u00a0  &#8220;\/music&#8221;<br>playlist_directory     &#8220;\/opt\/local\/run\/mpd\/playlists&#8221;<br>db_file\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0          &#8220;\/opt\/local\/run\/mpd\/database&#8221;<br>log_file\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0              &#8220;\/opt\/local\/run\/mpd\/log&#8221;<br>pid_file\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0              &#8220;\/opt\/local\/run\/mpd\/mpd.pid&#8221;<br>state_file\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0         &#8220;\/opt\/local\/run\/mpd\/state&#8221;<br>sticker_file\u00a0\u00a0\u00a0\u00a0\u00a0         &#8220;\/opt\/local\/run\/mpd\/sticker.sql&#8221;<br><\/p>\n\n\n\n<p>user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0                  &#8220;root&#8221;<br>group\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0                 &#8220;root&#8221;<br>bind_to_address \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;any&#8221;<br>#bind_to_address\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;localhost&#8221;<br>bind_to_address \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;\/opt\/local\/run\/mpd\/socket&#8221;<br>port\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0                    &#8220;6600&#8221;<br><br><\/p>\n\n\n\n<p><br># default=notice<br># secure=info<br><br>log_level\u00a0\u00a0\u00a0\u00a0\u00a0           &#8220;default&#8221;<br>#log_level\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;secure&#8221;<br>#log_level\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0&#8220;verbose&#8221;<br>#log_level\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;warning&#8221;<br>#log_level\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;error&#8221;<br><br><br><br>restore_paused \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;no&#8221;<br>save_absolute_paths_in_playlists\u00a0 &#8220;no&#8221;<br>metadata_to_use\u00a0 &#8220;artist,album,title,track,name,genre,date,composer,performer,disc&#8221;<br><br>auto_update\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0          &#8220;yes&#8221;<br>auto_update_depth \u00a0\u00a0\u00a0\u00a0 &#8220;8&#8221;<br><br><br>follow_outside_symlinks\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;yes&#8221;<br>follow_inside_symlinks\u00a0     \u00a0\u00a0\u00a0 &#8220;yes&#8221;<br><br><br><br>zeroconf_enabled\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;yes&#8221;<br>zeroconf_name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;Music Player @ %h&#8221;<br><br><br>#password\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;password@read,add,control,admin&#8221;<br>default_permissions\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8220;read,add,control,admin&#8221;<br><br><br><br>#database {<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 plugin &#8220;proxy&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 host &#8220;other.mpd.host&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 port &#8220;6600&#8221;<br>#}<br><br><br><mark style=\"color:#fa0202\" class=\"has-inline-color\">decoder {<br>\u00a0 plugin &#8220;ffmpeg&#8221;<br>\u00a0 enable &#8220;yes&#8221;<br>}<br><br>decoder {<br>\u00a0 plugin &#8220;dsdiff&#8221;<br>\u00a0 enable &#8220;yes&#8221;<br>}<\/mark><br><br>#input {<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 plugin &#8220;curl&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy &#8220;proxy.isp.com:8080&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_user &#8220;user&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proxy_password &#8220;password&#8221;<br>#}<br><br><br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;alsa&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;ALSA&#8221;<br>#\u00a0\u00a0 device\u00a0\u00a0\u00a0\u00a0 &#8220;hw:0,0&#8221;\u00a0\u00a0 # optional<br>#\u00a0\u00a0 mixer_type\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;hardware&#8221; # optional<br>#\u00a0\u00a0 mixer_device\u00a0\u00a0 &#8220;default&#8221;\u00a0 # optional<br>#\u00a0\u00a0 mixer_control\u00a0 &#8220;PCM&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>#\u00a0\u00a0 mixer_index &#8220;0&#8221;\u00a0\u00a0\u00a0\u00a0 # optional<br>#}<br><br>#audio_output {<br>#\u00a0\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;fifo&#8221;<br>#\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;my_fifo&#8221;<br>#\u00a0\u00a0\u00a0 path\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;\/tmp\/mpd.fifo&#8221;<br>#\u00a0\u00a0\u00a0 format\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;44100:16:2&#8221;<br>#}<br><br><br># creative usb card<br>#audio_output {<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;alsa&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;MP3&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 device\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;hw:CARD=MP3,DEV=0&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 mixer_type\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;software&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>#}<br><br><br>#audio_output {<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;alsa&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;TerraTec&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0device\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;iec958:CARD=Device,DEV=0&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 mixer_type\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;software&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>#}<br><br>#audio_output {<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;alsa&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;C-Media&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 device\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;iec958:CARD=Set,DEV=0&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 mixer_type\u00a0\u00a0\u00a0\u00a0 \u00a0&#8220;hardware&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>#}<br><br># Via Winner AD-86D amplifer<br>audio_output {<br>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;alsa&#8221;<br>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;Audio&#8221;<br>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 device\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;hw:CARD=AUDIO,DEV=0&#8221;<br>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 mixer_type\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;software&#8221;\u00a0\u00a0\u00a0\u00a0<br>}<br><br><br><br># via Jack Daemon<br>#audio_output {<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 type &#8220;jack&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 name &#8220;My Jack Output&#8221;<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 mixer_type\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;software&#8221;<br>#}<br><br><br><br>#<br># An example of an OSS output:<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;oss&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;My OSS Device&#8221;<br>##\u00a0 device\u00a0\u00a0\u00a0\u00a0 &#8220;\/dev\/dsp&#8221; # optional<br>##\u00a0 mixer_type\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;hardware&#8221; # optional<br>##\u00a0 mixer_device\u00a0\u00a0 &#8220;\/dev\/mixer&#8221;\u00a0\u00a0 # optional<br>##\u00a0 mixer_control\u00a0 &#8220;PCM&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>#}<br>#<br># An example of a shout output (for streaming to Icecast):<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;shout&#8221;<br>#\u00a0\u00a0 encoder\u00a0\u00a0\u00a0 &#8220;vorbis&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;My Shout Stream&#8221;<br>#\u00a0\u00a0 host\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;localhost&#8221;<br>#\u00a0\u00a0 port\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;8000&#8221;<br>#\u00a0\u00a0 mount\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;\/mpd.ogg&#8221;<br>#\u00a0\u00a0 password\u00a0\u00a0 &#8220;hackme&#8221;<br>#\u00a0\u00a0 quality\u00a0\u00a0\u00a0 &#8220;5.0&#8221;<br>#\u00a0\u00a0 bitrate\u00a0\u00a0\u00a0 &#8220;128&#8221;<br>#\u00a0\u00a0 format\u00a0\u00a0\u00a0\u00a0 &#8220;44100:16:1&#8221;<br>##\u00a0 protocol\u00a0\u00a0 &#8220;icecast2&#8221;\u00a0\u00a0\u00a0\u00a0 # optional<br>##\u00a0 user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;source&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>##\u00a0 description &#8220;My Stream Description&#8221;\u00a0\u00a0\u00a0 # optional<br>##\u00a0 url\u00a0\u00a0\u00a0\u00a0 &#8220;http:\/\/example.com&#8221;\u00a0\u00a0 # optional<br>##\u00a0 genre\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;jazz&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>##\u00a0 public\u00a0\u00a0\u00a0\u00a0 &#8220;no&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>##\u00a0 timeout\u00a0\u00a0\u00a0 &#8220;2&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>##\u00a0 mixer_type\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;software&#8221;\u00a0\u00a0\u00a0\u00a0 # optional<br>#}<br>#<br># An example of a recorder output:<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;recorder&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;My recorder&#8221;<br>#\u00a0\u00a0 encoder\u00a0\u00a0\u00a0 &#8220;vorbis&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # optional, vorbis or lame<br>#\u00a0\u00a0 path\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;\/opt\/local\/run\/mpd\/recorder\/mpd.ogg&#8221;<br>##\u00a0 quality\u00a0\u00a0\u00a0 &#8220;5.0&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # do not define if bitrate is defined<br>#\u00a0\u00a0 bitrate\u00a0\u00a0\u00a0 &#8220;128&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # do not define if quality is defined<br>#\u00a0\u00a0 format\u00a0\u00a0\u00a0\u00a0 &#8220;44100:16:1&#8221;<br>#}<br>#<br># An example of a httpd output (built-in HTTP streaming server):<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;httpd&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;My HTTP Stream&#8221;<br>#\u00a0\u00a0 encoder\u00a0\u00a0\u00a0 &#8220;vorbis&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # optional, vorbis or lame<br>#\u00a0\u00a0 port\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;8000&#8221;<br>#\u00a0\u00a0 bind_to_address &#8220;0.0.0.0&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0 # optional, IPv4 or IPv6<br>##\u00a0 quality\u00a0\u00a0\u00a0 &#8220;5.0&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # do not define if bitrate is defined<br>#\u00a0\u00a0 bitrate\u00a0\u00a0\u00a0 &#8220;128&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # do not define if quality is defined<br>#\u00a0\u00a0 format\u00a0\u00a0\u00a0\u00a0 &#8220;44100:16:1&#8221;<br>#\u00a0\u00a0 max_clients &#8220;0&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # optional 0=no limit<br>#}<br>#<br># An example of a pulseaudio output (streaming to a remote pulseaudio server)<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;pulse&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;My Pulse Output&#8221;<br>##\u00a0 server\u00a0\u00a0\u00a0\u00a0 &#8220;remote_server&#8221;\u00a0\u00a0\u00a0 # optional<br>##\u00a0 sink\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;remote_server_sink&#8221;\u00a0\u00a0 # optional<br>#}<br>#<br># An example of a winmm output (Windows multimedia API).<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;winmm&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;My WinMM output&#8221;<br>##\u00a0 device\u00a0\u00a0\u00a0\u00a0 &#8220;Digital Audio (S\/PDIF) (High Definition Audio Device)&#8221; # optional<br>#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 or<br>##\u00a0 device\u00a0\u00a0\u00a0\u00a0 &#8220;0&#8221;\u00a0\u00a0\u00a0\u00a0 # optional<br>##\u00a0 mixer_type &#8220;hardware&#8221; # optional<br>#}<br>#<br># An example of an openal output.<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;openal&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;My OpenAL output&#8221;<br>##\u00a0 device\u00a0\u00a0\u00a0\u00a0 &#8220;Digital Audio (S\/PDIF) (High Definition Audio Device)&#8221; # optional<br>#}<br>#<br># An example of an sndio output.<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;sndio&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;sndio output&#8221;<br>#\u00a0\u00a0 mixer_type &#8220;hardware&#8221;<br>#}<br>#<br># An example of an OS X output:<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;osx&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;My OS X Device&#8221;<br>##\u00a0 device\u00a0\u00a0\u00a0\u00a0 &#8220;Built-in Output&#8221;\u00a0 # optional<br>##\u00a0 channel_map\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;-1,-1,0,1&#8221;\u00a0\u00a0 # optional<br>#}<br>#<br>## Example &#8220;pipe&#8221; output:<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;pipe&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;my pipe&#8221;<br>#\u00a0\u00a0 command\u00a0\u00a0\u00a0 &#8220;aplay -f cd 2&gt;\/dev\/null&#8221;<br>## Or if you&#8217;re want to use AudioCompress<br>#\u00a0\u00a0 command\u00a0\u00a0\u00a0 &#8220;AudioCompress -m | aplay -f cd 2&gt;\/dev\/null&#8221;<br>## Or to send raw PCM stream through PCM:<br>#\u00a0\u00a0 command\u00a0\u00a0\u00a0 &#8220;nc example.org 8765&#8221;<br>#\u00a0\u00a0 format\u00a0\u00a0\u00a0\u00a0 &#8220;44100:16:2&#8221;<br>#}<br>#<br>## An example of a null output (for no audio output):<br>#<br>#audio_output {<br>#\u00a0\u00a0 type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;null&#8221;<br>#\u00a0\u00a0 name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;My Null Output&#8221;<br>#\u00a0\u00a0 mixer_type\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;none&#8221;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # optional<br>#}<br>#<br>###############################################################################<br><br><br># Normalization automatic volume adjustments ##################################<br>#<br># This setting specifies the type of ReplayGain to use. This setting can have<br># the argument &#8220;off&#8221;, &#8220;album&#8221;, &#8220;track&#8221; or &#8220;auto&#8221;. &#8220;auto&#8221; is a special mode that<br># chooses between &#8220;track&#8221; and &#8220;album&#8221; depending on the current state of<br># random playback. If random playback is enabled then &#8220;track&#8221; mode is used.<br># See &lt;http:\/\/www.replaygain.org&gt; for more details about ReplayGain.<br># This setting is off by default.<br>#<br>#replaygain\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;album&#8221;<br>#<br># This setting sets the pre-amp used for files that have ReplayGain tags. By<br># default this setting is disabled.<br>#<br>#replaygain_preamp\u00a0\u00a0\u00a0\u00a0 &#8220;0&#8221;<br>#<br># This setting sets the pre-amp used for files that do NOT have ReplayGain tags.<br># By default this setting is disabled.<br>#<br>#replaygain_missing_preamp &#8220;0&#8221;<br>#<br># This setting enables or disables ReplayGain limiting.<br># MPD calculates actual amplification based on the ReplayGain tags<br># and replaygain_preamp \/ replaygain_missing_preamp setting.<br># If replaygain_limit is enabled MPD will never amplify audio signal<br># above its original level. If replaygain_limit is disabled such amplification<br># might occur. By default this setting is enabled.<br>#<br>#replaygain_limit\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;yes&#8221;<br>#<br># This setting enables on-the-fly normalization volume adjustment. This will<br># result in the volume of all playing audio to be adjusted so the output has<br># equal &#8220;loudness&#8221;. This setting is disabled by default.<br>#<br>#volume_normalization\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;no&#8221;<br>#<br>###############################################################################<br><br># Character Encoding ##########################################################<br>#<br># If file or directory names do not display correctly for your locale then you<br># may need to modify this setting.<br>#<br>#filesystem_charset\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8220;UTF-8&#8221;<br>#<br>###############################################################################<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>To support play DSD dff file inrealtime  &hellip; <a href=\"https:\/\/blog.zhenglei.net\/?p=256150\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[405,404,73,403,108],"class_list":["post-256150","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-dff","tag-dsd","tag-linux-2","tag-mpd","tag-music"],"_links":{"self":[{"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=\/wp\/v2\/posts\/256150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=256150"}],"version-history":[{"count":1,"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=\/wp\/v2\/posts\/256150\/revisions"}],"predecessor-version":[{"id":256151,"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=\/wp\/v2\/posts\/256150\/revisions\/256151"}],"wp:attachment":[{"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=256150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=256150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhenglei.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=256150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}