2020年6月3日 星期三

更上一層樓的DIY音樂串流方案

現在,聽音響已經進入無實體光碟的時代了,去音響展看看就知道,除非廠商是在展示 CD 唱盤、唱片,不然大多數廠商都是以數位串流方式在播放、展示他家的音響了。

為了不讓自己成為落後的音響迷,很早以前就開始嘗試各種串流架構的 CAT (Computer as Transport),雖然現在已有不少成品串流機,但是看上眼的買不起,買得起的看不上眼,最終 DIY 魂讓我堅持自己架構音樂串流。

1. 最早試過:桌機 + Windows + foobar2000,心得:難搞,想要好聲真不容易,從硬體主機到OS都要優化處理,光是一台桌機從外殼到 CPU,晶片組,電源供應器就不知有多少顆大大小小的風扇,加上當時沒有 SSD,多了硬碟馬達的噪音,要搞好聲真的真的不容易。另外 Windows 功能太複雜,必須精簡,甚至有人精簡到整個 Windows 塞到 RAM 內,稱為 RAMOS。這精簡手續不是一般人能做的,所以從麻煩搞變成懶得搞到最後還是距離 CD 轉盤一大段距離,放棄!

2. 筆電 + Windows + foobar2000,心得:聲音好多了,至少電腦這部分可以不必像桌機那樣難搞,這 ACER 老筆電全機只有一顆小小且轉速不快的風扇,和一個小容量的 SSD,這種架構確實很安靜,對聲音加分很多。可惜老機 RAM 只有 2GB,無法升級,不能使用 RAM OS。

3. Raspberry PI + Volumio / Runeaudio:Raspberry PI 完全沒有風扇這種機械動做的東西,OS 裝在SD 卡內不必硬碟。一試聽下巴掉下來一點,更朝 CD 轉盤一步了,但是還是有些距離。改大顆 5V 電源供應器,好一點但不多。

4.  筆電 + Daphile:一聽下巴掉下來更多一點,弦樂質感出現了,更像 CD 轉盤了,這樣組合聽了很久,這台老筆電真的聲音很好呢,後來換了 Intel NUC 迷你小電腦也沒有比較好,但是新電腦效能高,可以在 Daphile 內玩玩 PCM 轉 DSD,聲音也不錯。

5. Raspberry PI + PiCorePlayer:PiCorePlayer 和 Daphile 系出同源,都是 LMS(Logitech Media Server )系統,聲音也很接近,在以 Raspberry PI 做為音樂串流器中,個人認為 PiCorePlayer 勝過 Volumio。但它的缺點是設定麻煩許多,不過也因為這樣才有後續可調校的空間。
至於 PiCorePlayer 如何安裝到 Raspberry PI,請參考這篇:

6.  最後再更進一步的做法是把 Raspberry PI 跟筆電或 NUC兩者合體成為一套 音樂串流器,聲音不只會讓下巴掉下來,還會滴幾滴口水!非常接近 CD 轉盤了!這才是目前為止的終極方案, Raspberry PI 內安裝 PiCorePlayer(請使用 Experimental RealTime 版本),筆電或 NUC 安裝 Daphile (這裡只當 Server 用,不需要 RT 版本因較不穩,建議用 64 bit 版本),因為 PiCorePlayer 和 Daphile 都是屬於 LMS(Logitech Media Server )系統,所以二者只要一同連上同一區域網路時, Daphile 就直接可以在 Player Device 看到  PiCorePlayer,如下圖,按三角形符號並選 PiCorePlayer。



在這方案中,PiCorePlayer 只用它接 DAC 的播放功能及連網路的部分,而 Daphile 則當做音樂檔案的 Server,將音樂資料透過網路傳給 PiCorePlayer,如果有要將 PCM 轉成 DSD,也是在 Daphile Server 端處理,使的 PiCorePlayer 的工作非常單純只是將收到的資料傳給 DAC 而已。這樣的方式確實會讓聲音再進一大步。

不過並不是安裝好軟體就有好聲,當中有許多參數需要調整,這篇文章:
非常棒,一定要看清楚,以下是我根據此篇做的一些設定,這裡假設PiCorePlayer 和 Daphile 的基本安裝設定都已做好可以單獨當 Player,這裡只說明改雙機串流時要做的修正和調整值:

一、串流音樂 client 端(PiCorePlayer)
首先,上面連結的作者認為硬體應該使用最新的 Raspberry PI 4B,用好一點的電源,而且盡量關掉一些周邊,如藍芽、Wi Fi等,使用有線網路。Headless player 不要外接螢幕,不要外接鍵盤(好像也沒必要),不要啟用紅外線遙控。以下是我的設定:

DAC Amanero USB 介面設定:


其中, 紅圈是按該文要改的 Buffer 設定值(記得 Save)。

網路設定:
因為使用有線網路,Wi Fi 就關掉吧,藍芽順便關了(Save)。



Tweaks:
該關的都關了吧。(記得 Save)


CPU Governor 改為 Performance(Save)。
CPU Isolation 和 Squeezelite Output CPU 值。


接下來,上面畫面按Advenced Overclock,出現以下畫面:


照上面這樣的設定其實是強制降頻,因為這裡只是原汁原味地將接收到的資料往 DAC 送,CPU 不必太快但頻率要穩定,所以設 Underclock,force turbo 避免 clock 自動做動態調整。

因為是當 Player 端,所以把 LMS 也關了吧。Autostart 設 NO,下次開機就不會開啟 LMS。


Client 端設定完了,接下來設定 Server 端。


二、 Streaming Server (Daphile):
Server 端一樣使用有線網路並遠離音響系統,我放在靠近 AP 的地方,以短的網路線連接。
前面說了, Daphile 已經可以看到 PiCorePlayer,那麼進去設定頁,確認其它 Audio Device 是不是都關了。


接下來按 Advenced Setting


在 Player --> PiCorePlayer --> Audio 中,把跟 Crossfade 有關的都關掉。


如果要 PCM to DSD 可以在這裡勾選(電腦太老效能太低的不要做,聲音會斷續):


最後在 Plugins 內能關的都關的吧,我只留這幾項


其中 Material Skin 能讓手機介面像樣一點。



在手機的瀏覽器內打入 Daphile 的 IP 位址:9000/Material/,如:http://192.168.*.**:9000/material/ 就會出現如上圖的UI,
如果只打http://192.168.*.**:9000 則出現標準 LMS 的 UI。



如果只打  IP 位址,http://192.168.*.** 則出現 Daphile 的 UI


看個人高興使用囉!Daphile 可以設靜態 IP,這樣就可以把網址存到書籤中了,方便下次用。

好了,調整好後現在可以好好享受升級後的音樂吧。祝好運!