※ 本文轉寄自 ptt.cc, 文章原始頁面
看板Headphone
標題

Fw: [心得] 運用 Chrony 對時工具提升音訊品質

時間
最新2023-07-15 02:09:00
留言41則留言,12人參與討論
推噓11 ( 13226 )
※ [本文轉錄自 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
Fw: [心得] 運用 Chrony 對時工具提升音訊品質
後來再進一步將我的 Fitlet3 NAA 用光纖掛上 E810 的其中一個 SFP28 port, 用同個 PTP hardware clock,傳送 layer 2 的 802.1AS gPTP 的對時資料給 Fitlet3。 https://imgur.com/etMHOn7.jpg
Fw: [心得] 運用 Chrony 對時工具提升音訊品質
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
Fw: [心得] 運用 Chrony 對時工具提升音訊品質
由於預設的伺服器通常比較「遠」(延遲較高),以個人經驗來說,最近的 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
Fw: [心得] 運用 Chrony 對時工具提升音訊品質
按下右下角 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
Fw: [心得] 運用 Chrony 對時工具提升音訊品質
主要看橘色的線,是代表系統時間均值,以截圖來看,我的 MBP13" 經過對時可以 達到並穩定在 AES11 Grade 2 ±10ppm 的要求了。 由於我對 Windows 作業系統工具不是很熟,增加對時頻率的方法可能要請版上高人 補完了... Orz 希望這個 Linux or macOS 系統設定的變動能為「以電腦為主要播放器材」的版友 帶來助益 :-) 「對時,是為了要有:一致的一秒長度、一致的一秒起點以及一致的曆日」。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.96.60 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Audiophile/M.1688994586.A.585.html

41 則留言

※ 轉錄者: elguapo (118.163.96.60 臺灣), 07/10/2023 21:15:55

Zyar, 1F
喇叭版好文 持續幫高調 不花錢就能感受到提升 真的好棒 謝

Zyar, 2F
謝版主

theshape87, 3F
dac 不就有內建時鐘了嗎?電腦的時間訊號不影響吧
電腦發送音訊的資料,是按照自己的時鐘在發送。這點 Roon 有講的很清楚。 若是以電腦為主要播放器材,其資料的處理和傳送,仍是以電腦自己的鐘為準,因此 影響一定有。
※ 編輯: elguapo (118.163.96.60 臺灣), 07/10/2023 22:22:24

theshape87, 4F
那之後來研究一下影不影響,之前看某貓說不會干擾….

ddmist, 5F
不明覺厲

pcjustin, 6F
推個文,不然被人知道我看不懂

storym94374, 7F
有點不懂 NTP對時跟時鐘訊號穩定有關嗎

storym94374, 8F
如果電腦能像DAC一樣吃時鐘訊號 是不是就不用對時了

pcjustin, 9F
主板上就有硬體時鐘呀,NTP取得準確時間後,會回寫到時

pcjustin, 10F
鐘上

storym94374, 11F
我的問題就是電腦硬體時鐘準確 跟jitter有關連嗎?

storym94374, 12F
如果電腦時間差幾分鐘但每個1ms都超準 音質也會好吧

vwvwbg, 13F
那你猜猜 CPU吃的是內部的clock還是主板上面的RTC?

pcjustin, 14F
樓上問題好陰險

jay920314, 15F
確實,我也是這樣想

storym94374, 16F
回v大 我不懂CPU是怎麼決定1ms長度的 還請公布答案

storym94374, 17F
去音響版看原串 發現跟我有類似問題的人不少 為什麼

storym94374, 18F
這邊看起來大家好像都懂其中的原理

Bencrie, 19F
tsc 吧,其他的都要過 I/O 不可能比 tsc 快

Bencrie, 20F
但是 tsc 如果你 BIOS 把省電功能開得很激進,讓 CPU 睡

Bencrie, 21F
太深是會被 kernel 判定成不穩定的 clocksource

vwvwbg, 22F
簡單來說就是透過clock gen每震盪多少次是1ms

vwvwbg, 23F
你透過校正的方式讓OS改變顯示時間時1ms需要的次數

vwvwbg, 24F
對於USB要吃的24M 或是音樂44.1k 會有改變嗎?

vwvwbg, 25F
其實我是想說 假使真的做了這些工 真的變好聽了

vwvwbg, 26F
別隨便套個理論進去就想自圓其說 搞不好真的只是一直

vwvwbg, 27F
call電腦做事避免CPU待機 誰知道呢?

storym94374, 28F
聽起來就是除非NTP校時包含clock gen次數修正 否則理

storym94374, 29F
論上不會影響到1ms準度

storym94374, 30F
而且主機板上的clock gen品質能好到哪去 就算每10秒

storym94374, 31F
校正一次也不能保證中間都很穩吧

yys310, 32F
挖 做過頭板友寫的騷擾CPU程式已經是十年前的事了...

yys310, 33F

kwpttw, 34F
校時跟jitter是兩件事

Aheiyang782, 35F
抖動是傳輸過程中引入的雜訊

Aheiyang782, 36F
所以堆堆樂廠才要求把時鐘堆在最近的位置,就像你要

Aheiyang782, 37F
去樓下的超商很難被車撞

Aheiyang782, 38F
校時是時鐘對不對的問題,但網路線也有jitter啊...

Aheiyang782, 39F
不把器材搬到銫鐘旁邊要怎麼保證隨時沒有抖動? 而且

Aheiyang782, 40F
銫鐘本來就有誤差

deflife, 41F
應該沒用 ntp是拿來校時的 無法改變你處理器頻率