Fw: [心得] 运用 Chrony 对时工具提升音讯品质

楼主: elguapo (HPHT Synthesized)   2023-07-10 21:15:55
※ [本文转录自 Audiophile 看板 #1ah0CQM5 ]
作者: elguapo (HPHT Synthesized) 看板: Audiophile
标题: [心得] 运用 Chrony 对时工具提升音讯品质
时间: Mon Jul 10 21:09:44 2023
“紊乱的电脑系统时钟,经过对时调节(realtime clock)到接近 AES11 Grade 2
的精度,进而增进电脑音讯品质。”
自从开始使用 Ravenna/AES67 AoIP 之后,对于时间的准确度也越来越要求;不久
前收了一张具备 GPS 接收器的 Intel E810-XXVDA4TGG1 网络卡,作为我的 AES67
的主时钟,并将开箱文贴到 audiophilestyle 网站:
https://tinyurl.com/3p8ccjv2
本来想在 ptt 补充一下中文的部分,但后来发现有更值得讨论的内容,遂决定先来
写关于电脑作业系统时钟的校对问题。
以 48000KHz 取样率的音乐来说好了,相信很多烧友应该会认为是 48000Hz 的“
载波”在传递音讯。若有读过 AES3 以及 AES67 的规范,其实音讯的传递是“每秒
传送 48000 个取样值”,若切更细一点,以 AES67 来说,数位音讯是每 1ms 传送
48 个取样值到目的地。
“若系统时钟不稳定,充满 jitter 而且偏移严重,那么这个 1ms 还会是 1ms 吗?”
——这是我开始自己建构 AES67 主时钟的时候不断思考的问题。
成功的将 Intel E810 设定为我的 AES67 主时钟之后,也尝试将这张网卡当成我的
HQPlayer Embedded 服务器的主钟,机制是:
1. 依据 GPS 1PPS 信号 rising edge 撷取 GPS 模组解出的 NMEA 讯息 ->
2. 把 NMEA 更新至网卡上的 PTP hardware clock ->
3. 运用 PTP hardware clock 去同步系统时钟 CLOCK_REALTIME 以及 AES67 的器材。
经过这样的对时,HQPe 主机的时间精度可以达 ±10ns 范围!个人发现 HQPe PCM
的升频变好听很多,毛躁感降低不少,慢慢的也懒得升频 DSD 了。
https://imgur.com/E1aTEZm.jpg
后来再进一步将我的 Fitlet3 NAA 用光纤挂上 E810 的其中一个 SFP28 port,
用同个 PTP hardware clock,传送 layer 2 的 802.1AS gPTP 的对时资料给
Fitlet3。
https://imgur.com/etMHOn7.jpg
Fitlet3 的 CLOCK_REALTIME 虽然没有很好,但精度还是能摧到 ±30ns,与 HQPe
server 同步后的听感是,空间的残响尾韵更显著且又长了一点!
没想到电脑主机正时之后的音讯品质,其改善幅度大到可以复制给来访的朋友分辨,
所以干脆爱屋及乌,把没有办法做 PTP 对时的电脑用 NTP 服务器对时看看,结果
也是能得到很大的帮助!
我的 Atmos music 有 98% 是来自 Apple Music,将来源 Mac Mini M1 电脑用
本地端的 NTP server 做密集对时之后可达 <±10us,Apple Music Atmos
定位精确度提升,尤其听大编制的交响乐或大合唱,混乱感降低很多。
因此我想在这篇文章先介绍 Chrony 这个工具给诸君试看看。
Chrony 在 Linux 是家喻户晓的对时工具,可以手动选择离自己家最近的 NTP
服务器,也能手动改动对时的次数频率。
macOS 已经有 GUI 版,解压缩立刻能执行:
https://whatroute.net/chronycontrol.html
第一次执行 ChronyControl 会提醒您将系统的自动对时关闭,毕竟两个对时软件
同时执行会打架,造成时钟更紊乱。
Chrony 的接口很容易阅读,跟 Linux 的 chronyc 一模一样:
https://imgur.com/JXzcrkR.jpg
由于默认的服务器通常比较“远”(延迟较高),以个人经验来说,最近的 NTP
服务器理当是本地端的,其次是 ISP 提供的(但 ISP 提供的 NTP 服务器阶层可能
只到 Stratum 2);最好的 NTP 服务器当是国家提供的,是直接和原子钟对时的
Stratum 1 等级。
我国设立的 NTP 服务器是这几个:
tock.stdtime.gov.tw
watch.stdtime.gov.tw
time.stdtime.gov.tw
clock.stdtime.gov.tw
tick.stdtime.gov.tw
可以用编辑的方式将这些服务器键入 Chrony 的设定档(按下 ChronyControl 视窗
左上角齿轮就会出现文字编辑器):
https://imgur.com/uM9ZbaK.jpg
按下右下角 Check Syntax 按钮之后,只要文法没错误,就能继续按最右边的
Install Config。
这样 Chrony 就开始抓可用的 NTP 服务器,并且选择误差最小的那个为主要对时
对象。
由于系统时钟很快就会歪掉,所以若要长时间保持在 AES11 Grade 2 ±10ppm
(±10us),那么就必须要增加对时频率;为了避免被 NTP server 视为恶意行为
(过度的 polling 可能会被判断为 DDoS),个人建议对时频率别太紧密,大约
10~30s 范围都能接受。
若观察到有理想的 NTP server 在附近,那么就能在 Chrony 设定档指定该台伺服
器对时的频率,写上:
server watch.stdtime.gov.tw minpoll 4 maxpoll 4 prefer
这段设定的意思是将 watch.stdtime.gov.tw 这台 NTP 服务器当成我的最爱,然后
每 16 秒向她送出对时申请。
ChronyControl 有绘图功能,按下视窗上缘的 Live Tracking 按钮,可以观察开始
对时之后系统时钟的修正状态:
https://imgur.com/gRrAVjF.jpg
主要看橘色的线,是代表系统时间均值,以截图来看,我的 MBP13" 经过对时可以
达到并稳定在 AES11 Grade 2 ±10ppm 的要求了。
由于我对 Windows 作业系统工具不是很熟,增加对时频率的方法可能要请版上高人
补完了... Orz
希望这个 Linux or macOS 系统设定的变动能为“以电脑为主要播放器材”的版友
带来助益 :-)
“对时,是为了要有:一致的一秒长度、一致的一秒起点以及一致的历日”。
作者: Zyar (Zyar)   2023-07-10 21:48:00
喇叭版好文 持续帮高调 不花钱就能感受到提升 真的好棒 谢谢版主
作者: theshape87 (悔不当初)   2023-07-10 22:18:00
dac 不就有内建时钟了吗?电脑的时间讯号不影响吧那之后来研究一下影不影响,之前看某猫说不会干扰….
作者: ddmist (ddmist)   2023-07-11 05:44:00
不明觉厉
作者: pcjustin (骆驼)   2023-07-11 14:06:00
推个文,不然被人知道我看不懂
作者: storym94374 (玛利欧)   2023-07-11 15:08:00
有点不懂 NTP对时跟时钟讯号稳定有关吗如果电脑能像DAC一样吃时钟讯号 是不是就不用对时了
作者: pcjustin (骆驼)   2023-07-11 15:26:00
主板上就有硬件时钟呀,NTP取得准确时间后,会回写到时钟上
作者: storym94374 (玛利欧)   2023-07-11 16:52:00
我的问题就是电脑硬件时钟准确 跟jitter有关连吗?如果电脑时间差几分钟但每个1ms都超准 音质也会好吧
作者: vwvwbg (vwang)   2023-07-11 17:55:00
那你猜猜 CPU吃的是内部的clock还是主板上面的RTC?
作者: pcjustin (骆驼)   2023-07-11 18:57:00
楼上问题好阴险
作者: jay920314 (Jay_9696)   2023-07-11 19:58:00
确实,我也是这样想
作者: storym94374 (玛利欧)   2023-07-12 11:40:00
回v大 我不懂CPU是怎么决定1ms长度的 还请公布答案去音响版看原串 发现跟我有类似问题的人不少 为什么这边看起来大家好像都懂其中的原理
作者: Bencrie   2023-07-12 12:28:00
tsc 吧,其他的都要过 I/O 不可能比 tsc 快但是 tsc 如果你 BIOS 把省电功能开得很激进,让 CPU 睡太深是会被 kernel 判定成不稳定的 clocksource
作者: vwvwbg (vwang)   2023-07-12 13:55:00
简单来说就是透过clock gen每震荡多少次是1ms你透过校正的方式让OS改变显示时间时1ms需要的次数对于USB要吃的24M 或是音乐44.1k 会有改变吗?其实我是想说 假使真的做了这些工 真的变好听了别随便套个理论进去就想自圆其说 搞不好真的只是一直call电脑做事避免CPU待机 谁知道呢?
作者: storym94374 (玛利欧)   2023-07-12 14:22:00
听起来就是除非NTP校时包含clock gen次数修正 否则理论上不会影响到1ms准度而且主机板上的clock gen品质能好到哪去 就算每10秒校正一次也不能保证中间都很稳吧
作者: yys310 (有水当思无水之苦)   2023-07-12 15:38:00
挖 做过头板友写的骚扰CPU程式已经是十年前的事了...#1IlIfmvG (Headphone)
作者: kwpttw (宪)   2023-07-12 19:32:00
校时跟jitter是两件事
作者: Aheiyang782 (福音矮冬瓜)   2023-07-12 21:00:00
抖动是传输过程中引入的噪声所以堆堆乐厂才要求把时钟堆在最近的位置,就像你要去楼下的超商很难被车撞校时是时钟对不对的问题,但网络线也有jitter啊...不把器材搬到铯钟旁边要怎么保证随时没有抖动? 而且铯钟本来就有误差
作者: deflife (无极而生)   2023-07-15 02:09:00
应该没用 ntp是拿来校时的 无法改变你处理器频率

Links booklink

Contact Us: admin [ a t ] ucptt.com