daphile roon dietpi+mpd几种玩法的心得
daphile吧
全部回复
仅看楼主
level 7
goltrain 楼主
同样的usb DAC,直接说结论,结论不客观,是我长期把玩的主观结论:
1、dietpi+mpd+samba(sever),使用M.A.L.P做遥控器,samba纯粹是为了拷贝删除歌曲。音质95,优化设置麻烦程度相当麻烦,设置完毕使用起来极其方便,开机速度一般不超过20秒。
2、daphile单机,音质93,设置超级简单,使用极其方便,和第一种一样方便,开机速度不如第一种,和第一种同样的X86小主机一般要30秒开机。
3、daphile单机+斐讯N1刷dietpi加squeezelite加NAA加Gmedearender(仅仅使用其中squeezelite功能),就是所谓双达菲,音质99,设置麻烦主要是在dietpi阶段,如果刷本人其他帖子提供镜像麻烦程度少了90%,开机速度和第二种一样,dietpi squeezelite开机速度就是不到20秒,但是你要等daphile开机好(30秒左右)双剑合璧才能玩起来。
4、roon rock+hqplayer embedded+斐讯N1刷dietpi加squeezelite加NAA加Gmedearender(仅仅使用其中NAA功能),音质99,和第3种一样,设置麻烦主要是在dietpi阶段,如果刷本人其他帖子提供镜像麻烦程度少了90%,开机速度和第二种一样,naa开机速度就是不到20秒,但是你要等roon rock+hqplayer embedded一起启动好了,三种设备共同运作才能玩。这里的最大的瓶颈是hqplayer embedded,这个东西启动耗时大约要45秒以上(都是X86机器刷的,可能你机子cpu好一些启动时间短一些),因为这个hqplayer embedded无法固定IP,它要等路由器给它定位,问题是hqplayer embedded相当倔强,它开机就在IP地址上主动的胡乱挣扎,你可以在路由器上看到0.0.0.0很长时间,直到挣扎不动了才同意向路由器投降,每次都不情不愿很久。
5、dietpi+GmediaRender,这个东西只能提供upnp/dlna投流render服务,但是它厉害之处就是采样率不降规,设置得好做到bitperfect没有问题,设置麻烦是稍微麻烦一点,远没有第一种麻烦,可以刷本人其他帖子提供镜像麻烦程度少了90%。音质95以上。这大概是最好的开源免费投流神器了,各种格式通吃,各种采样率通吃,DSD64源码dop通吃,这些都是我试验过了的,使用bubbleupnp是它最好的搭档。
以上五种作为家用音源,设置好了之后,使用都非常方便,操作界面都很友好。可以看到,最终连接DAC的,只要是arm设备分数都比X86高,这是先天性硬件因素决定的,X86设备功耗大,电磁干扰因素大。同样的X86设备下,核心越简单,音质越好,当然,都必须bit perfect。家用音响柜主音箱,推荐第三种或者第四种,音质基本上就和高端CD机器没有区别。第一种第二种其实都可以玩玩,有闲工夫可以试试第一种。第一种优化措施:1、安装RT核心;2、改时钟到TSC;3;将mpd\usb irq分别单独绑定相邻的cpu核心;4;wifi samba 硬盘读写可以单独绑定一个核心;5:设定低延迟;6:编写mpd.conf请gemini指导,尽可能将播放过程中的读写都设置到内存里面,做到播放过程没有硬盘动作。我的mpd.conf如下:
dietpi@wyse5060-MPD:~$ sudo cat /etc/mpd.conf
# ========== 基础全局配置 (核心曲库地基) ==========
music_directory "/mnt/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/database"
log_file "/tmp/mpd.log"
pid_file "/tmp/mpd.pid"
# state_file 确保每次重启播放列表和进度清零,保持纯净
state_file "/tmp/mpdstate"
zeroconf_enabled "no"
bind_to_address "0.0.0.0"
port "6600"
auto_update "yes"
# 设置 32MB 的最大内存缓冲区(默认只有 2MB,32M扩到顶头)
audio_buffer_size "32768"
auto_update_depth "3"
connection_timeout "60"
max_connections "3"
max_output_buffer_size "16384"
# ========== SoX 重采样器 ==========
resampler {
plugin "soxr"
quality "custom"
threads "1"
precision "28" # 28-bit 内部精度
phase_response "25" # 中间值
passband_end "95.0" # 保留接近全带宽,避掉副作用
stopband_begin "100.0" # 严格抗混叠
}
# ========== 单输出:定死采样率 (E-MU 0204 专属) ==========
audio_output {
type "alsa"
name "E-MU 0204"
# 使用 CARD 名称绑定,即便插拔 USB 也能精准找回声卡
device "hw:CARD=USB,DEV=0"
# 核心音频策略:88.2k 原生,其余由 SoX 自动处理成88.2K
allowed_formats "88200:24:2"
# --- USB 不断电策略 ---
always_on "yes"
auto_resample "no"
auto_format "no"
auto_channels "no"
mixer_type "none"
buffer_time "400000"
period_time "100000"
stop_dsd_silence "yes"
}
可以看到,我还在使用E-MU 0204的古董声卡,我这个老古董的最好的状态实际对比发现是在24/88.2khz。设置好了,老古董声音也不错。
2026年03月10日 06点03分 1
level 7
记号[滑稽]
2026年03月10日 07点03分 2
level 4
mark
2026年03月10日 12点03分 3
level 8
唯一的问题是你有玩过x86机器单机达菲的极致优化吗?在我的实验里双达菲的音质远远远远远远不如单达菲的极致优化的。不过你的思路可以参考,因为你的办法去掉了达菲维持网页系统的开销,这个能降低cpu中断是加分项,不过增加了cpu收发网络数据的开销是减分项。关键在于哪一种方式的cpu不规律中断少一些。我看了你的贴很想试一试。但是x86或者arm的机器基本上都是单cpu的,除非你指定一个核心去专门处理给usb dac喂数据的指令,否则很难超过单机的优化。加上我购置了网桥,里面有三处理器分别是网口和usb和ddc界面就不折腾,原生支持Squeezelite,可以组成双达菲。
2026年03月10日 14点03分 4
单机达菲的优化其实没有什么操作性,达菲的作者就没有留下多少东西给你优化。大部分其实就是按网上那些到处传的帖子操作两下,比如lame选项都是似是而非的东西。硬件的改造,说来说去就是电源的改线性电源,不去动电路板里面滤波整流电路,光简单去换个线性电源,实在是好笑死了。
2026年03月10日 15点03分
@goltrain 数字链路就两个关键一个是jitter一个是噪声。怎么没有什么可优化的呢?你做网桥系统实际上是做减法,即把网桥的网页系统给减去,此外网桥系统功耗低,也相当于给cpu降了频率甚至固定在很低的频率以此来减少桥端的jitter和噪声。
2026年03月10日 16点03分
level 2
我直接roon+dietpi,懒得折腾,听听歌也足够了,但是不知道为何,播放的时候经常出现文件缓冲过长导致卡顿
2026年03月11日 02点03分 5
是什么设备刷的dietpi?确认你安装的roon bridge的版本和roon对应。让deepseek指导你,确保bridge和usb irq绑定并且独占相邻的不同核心。比如,bridge(绑核心2,fifo,优先级99),usb irq核心3,eth0绑定核心1。
2026年03月11日 05点03分
N1盒子刷dietpi,飞牛docker安装roon,手机roon负责播放控制,我感觉是不是网络问题
2026年03月11日 07点03分
level 7
goltrain 楼主
第一种方式dietpi+mpd+samba(sever)肯定是X86机器,不少arm机器。只有X86才有选择时钟TSC hept的问题,arm机子没有这个问题,arm就只有一种时钟,没有选择反而就是最好的选择。
2026年03月12日 00点03分 6
level 8
请允许我问一句:你说的几分几分是不是通过升频成dsd传到网桥播放达到或者超过了你听到过的cd机的声音?或者是纯粹是用网桥转一次隔绝pc的的usb噪声?可以回答我吗?我看你
打分
但是从来不具体描述能带来哪些方面的提升。譬如频率响应,背景噪声或者结像定位甚至是某种韵味的具体表述
2026年03月12日 18点03分 7
纯主观,听感好一点分数就高一点,频率响应背景噪声或者结像定位我没法测试。我讲的几个东西,都是我有的东西长期把玩的东西。实际上我玩达菲单机5年,前年下半年玩核桥分离,发现使用arm设备做网桥比单机听感好不少。最近一段时间折腾X86的dietpi+mpd,发现比daphile单机听感好,但是不及核桥分离。
2026年03月13日 01点03分
主要是开心就好!
2026年03月13日 14点03分
level 7
goltrain 楼主
dietpi+mpd的玩法,很大的学问就在/etc/mpd.conf当中,而这里面最敏感的是resampler和audio_output两个模块。我的写法如下:# ========== SoX 重采样器 ==========
resampler {
plugin "soxr"
quality "custom"
threads "1"
precision "28" # 28-bit 内部精度
phase_response "25" # 中间值
passband_end "95.0" # 保留接近全带宽,避掉副作用
stopband_begin "100.0" # 严格抗混叠
}
# ========== 单输出:定死采样率 (E-MU 0204 专属) ==========
audio_output {
type "alsa"
name "E-MU 0204"
# 使用 CARD 名称绑定,即便插拔 USB 也能精准找回声卡
device "hw:CARD=USB,DEV=0"
# 核心音频策略:88.2k 原生,其余由 SoX 自动处理成88.2K
allowed_formats "88200:24:2"
# --- USB 不断电策略 ---
always_on "yes"
auto_resample "no"
auto_format "no"
auto_channels "no"
mixer_type "none"
buffer_time "400000"
period_time "100000"
stop_dsd_silence "yes"
}
实际上,resampler模块没有也不要紧,这取决于DAC性能。我的E-MU 0204因为属于半古董声卡,也就是44.1K 48K 88.2K可以正常发挥,所以才不得不使用了这个模块。一般的最近几年的DAC都不会有这个问题。使用这个resampler模块,最重要还是听感,precision "28" # 28-bit 精度这里的28并非越高越好,一般人使用的最多的是quality "very high",very high其实精度参数也只有20,我后来改了24反而听起来比28舒服。这不关CPU资源压力的事情,即使是precision "28"对于小主机也毫无压力。
另外,output里面的buffer_time "400000"和period_time "100000"我后来发现如果不写或者#注释掉,效果一点都不差。如果不写或者注释掉,MPD会自己进行优化计算,自动给出一个合适的数值。我后来注释掉了这两句,然后使用tail -f /tmp/mpd.log检查,发现MPD自动给我的参数相当于:buffer_time "500000" period_time "125000"。
2026年03月13日 06点03分 8
1