2016-11-13 10:36:51鼴鼠

來談談PC上的音樂撥放軟體:foobar

之前跟大學同學去買Hugo,聊天之間,才發現他居然沒用過foobar.....讓鼴鼠嚇到下巴都快脫臼了,嗯?不!仔細想想....也對!一般沒對音響有些接觸的人,只要會發出聲音,他們就很滿足了,恐怕也分不出音質高低吧?

因此跟大家聊聊foobar的一些簡單安裝與設定,和一些設定的原理吧!(foobar是PC上的一套音樂檔案撥放軟體,類似Winamp)



有某個歐洲人寫的音樂播放軟體號稱能夠提升音質(jRiver,AudioGate,或AudioHQ之類的付費軟體),不過鼴鼠基本上是小氣鬼,所以沒花錢買那種東西,foobar免錢的就很好用了....


首先,鼴鼠必須說:用電腦撥音樂,其音質的好壞,還是跟你的設備有關,正確的軟體設定只能讓設備發揮該有的性能,而不能超出設備的極限。

要鼴鼠說實話的話:你要選好一點的USB DDC(跟高階音效卡比,價錢也比較便宜),好的外接式DAC(或是DDC一體式的USB DAC),好一點的耳擴(用喇叭的話,就是好一點的擴大機),好一點的耳機(或是喇叭),線材的話,類比線很重要(訊號線,喇叭線),但電源方面鼴鼠說實話聽不出差異(電源線,壁插排插,鼴鼠個人都聽不出差異)。 



這基本上是很礙人財路的說法,請各位當作是鼴鼠個人的意見就好。



投資的重要性的話,個人則覺得是:耳機(喇叭)>DAC(含DDC)>擴大機(耳擴)>類比線材>>>>>>(不可跨越之壁)>>>>>>>>>稀奇古怪的調音器材 (要鼴鼠投資的話,第一一定考慮耳機或喇叭先,先買DAC之類的東西說實話真的很奇怪)



要玩foobar,隨便拿一台電腦就好,就算你用螃蟹的主機板內建音效晶片也無所謂,只是音質也不會更好就是了。要發出好聲音,基本上還是得花點錢啦,至少DDC/DAC/耳擴/耳機是少不了要換的,不過這不是本篇的重點,這邊假設你已經投資好上述的設備了。(再囉嗦一下,鼴鼠不是很推薦PCI/PCI-e的音效卡,先不考慮音質或電源干擾等問題,光是容易故障,跟幾年後主機板升級了也許就不能用了這點上,實在是不怎麼建議,再加上好的音效卡又超級貴的.....)


好吧,以下說明分幾個小段落:
1.foobar的安裝。
2.安裝WASAPI與ASIO,以及SSRC設定。
3.昇頻的設定,及"為什麼要昇頻"?
4.聽SACD跟DVD-Audio。
5.如何native 1:1輸出DSD訊號?
6.把PCM轉換成DSD輸出給DAC,及"為什麼要這麼做"?
7.loop-back的測試與RMAA。
8.用MathAudio room EQ配合音效卡麥克風做EQ校正。




1.foobar的安裝:
a.請在這裡下載foobar,執行安裝程式,安裝主程式。






2.安裝WASAPIASIO,以及SSRC(Sample Rate Conversion)設定。
何謂SSRC?簡單說就是:因為年輕所犯下的錯誤。

好吧,總之你就想成:原始的音樂是一塊好吃的蘋果派,錄音就是把蘋果派切成渣,裝在罐子裡(也許再加點調味),而撥放聲音就是把變成渣的蘋果派倒出來,拼裝成近似原始蘋果派的東西給你吃(也許,也會再加點調味料)。

而(Windows預設的)SSRC就是把原本44.1公克重的東西,重新組裝成48公克的東西給你吃(這只是個例子;其實就是Windows預設會將任何解析度的聲音訊號都混成48KHz輸出)。

那多出來的3.9公克是甚麼東西?ㄜ....就添加物啊,不然是什麼?

因為intel和Microsoft年輕的時候喝醉酒後胡搞瞎搞一通,所以Windows內建的混音器做了一件讓美食追求家喜好聽音樂的玩家火大的事情!!!他們居然再重組蘋果派的時候偷偷添加了人工添加物!!而且還是非天然的!!!(當時採用的演算法為了求快,所以補插品質很差,怎麼說呢?基本上你可以用RMAA之類的工具測出有很大的差異,聽不聽得出來就看你的耳朵和設備差異了。)


當然,當年玩音響器材的人基本上不會拿電腦來聽音樂,玩電腦的小p孩根本分不出音樂好壞,會叫就好,所以當年也沒人抗議啦,不過對錄音工作是這就是大問題了,那些專業人士怎麼能接受這種對美食的褻瀆重播音樂時造成的破壞呢?因此有家著名的錄音工作是就推出了ASIO這種東東(Advanced Audio Input Output,想成是專屬的音效卡驅動程式介面即可),它可以繞過Windows內建的混音器,直接與音效卡的驅動程式溝通,因此可以避免掉SSRC的問題。

多年之後,ASIO也老了,而且會造成作業系統的不穩(跟顯示卡驅動程式一樣),所以M$花了大錢和時間重新設計了Windows的音效卡驅動程式架構,也就是所謂的WASAPI。

理論上這可以取代Windows上老舊的ASIO或是更先進的ASIO2,可以避免SSRC的問題(這邊的SSRC問題是特指"強制把所有的音訊輸出都用很爛的演算法轉換成48Khz做輸出這件事"),而WASAPI中,又有兩種模式:event和push。

後面再來解釋,不過先說結論:理論上用event模式會比較好(想成是用interrupt來fill audio buffer即可),總之到這步為止,基本上你已經可以發揮你的音響設備的基本性能了。

至於SSRC,用foobar加上WASAPI的話,default就會避掉使用Windows內建的SSRC,如果你想自訂PCM昇頻的程度的話,可以用內建的PPHS轉換器(在foobar的DSP管理的page中)



對了,鼴鼠的友人跟鼴鼠抱怨說Hugo播音樂時會有"聲音中斷"的問題,這估計是電腦資源占用太兇,或是性能不足的問題(或是Driver寫得不太好),其實只要拉長Audio Buffer length就可以改善這個問題:


預設的1000ms確實一下子就會爆掉,很容易造成聲音中斷的問題,鼴鼠拉到6000ms後,基本上都不會中斷了,網路有人說要設小一點音質會比較好,鼴鼠覺得這是....很不科學的說法,基本上就是調整放撥放用的聲音資料的buffer大小的設定而已,當然,如果你的電腦性能夠好,buffer設的很小也不會有斷音問題,表示你的設備干擾少,有機會讓聲音不受環境影響,但說設的小聲音會比較好聽就有點扯了....個人意見啦。






3.昇頻的設定,和為什麼要昇頻。
簡單說,就是避免使用DAC內部的(硬體)昇頻機制,用CPU配合軟體來取代DAC上硬體的工作,至於會比較好嗎?嗯,說實話挺微妙的。

這邊有PCM全部轉成DSD的玩法,其理論也是因為Delta-sigma的DAC基本上類似1bit DAC的架構(鼴鼠的理解就是錄音ADC就是微分,放音DAC就是積分),理論上直接轉成DSD訊號,可以避免掉DAC內部的SDM轉換,跟PCM的昇頻概念類似,都是使用CPU純軟體做SDM,避免掉DAC內部的硬體SDM轉換。

想成你在看影片時,用MadVR去做Up-scaling,而不使用GPU內建的up-scaling algorithm那樣,理論上雖然不會像video一樣那麼明顯,不過理論上會有改善(鼴鼠個人聽不太出來就是了,啊!madVR很有效,硬體夠強又很閒的人推薦一試)。


4.聽SACD跟DVD-Audio。
a.安裝foobar的時候記得打勾選取SACD和DVD-A的支持。
b.弄到SACD/DSD檔案,以及DVD-A的ISO檔(不多,基本上後期都沒出了)。

5.如何native 1:1輸出DSD訊號?
a.首先你的DAC要支援DSD DoP輸出,或是DSD native。
b.設定

6.把PCM轉換成DSD輸出給DAC,及"為什麼要這麼做"?
a.請先安裝ASIO proxy,這個軟體的最新版開始支持SDM轉換(PCM to DSD)。
b.至於為什麼要這麼做?在 3 其實已經說了,就是想要避免掉DAC內部的SDM轉換。
c.這邊補充一下大陸網站沒說得很清楚的部分,根據這個網頁

當你在玩PCM轉DSD時,使用B或D是音質最好的轉換模式,這玩意應該就是PCM(多位元)轉DSD(一位元)的轉換過程中,補差的演算法(個人認為是一種查表法)。雖然實際上在玩的時候,鼴鼠只覺得用PCM2DSD的話音量會變大,但音質有沒有變好說實話還挺微妙的(就是鼴鼠分不出來的意思)。

另外請注意兩點:
1.要用ASIO proxy的話,鼴鼠建議把foobar全部移除重裝(包含前一版的ASIO proxy,如果你有裝的話),會省掉你很多的困擾。
2.根據鼴鼠的實驗,如果你開啟PCM2DSD會沒聲音輸出,可以勾選使用x64的ASIO,鼴鼠的環境中這樣是有效的(鼴鼠用x64的Win10)。


7.loop-back的測試與RMAA
這是一個很有趣的問題:你的耳朵聽不出音效卡或耳機好壞的差異,是你的問題嗎?

對,真的是你的問題,因為好壞差異是可以測得出來的,那當然聽不出差異是你的問題!當然,數據差異如果不大,那值不值得花這個錢,個人覺得比你耳朵好壞的問題更重要XD

這邊想聊聊:怎麼測試音效卡?怎麼測試喇叭?怎麼測試你的環境?如何校正?怎樣叫做好?loop-back基本上跟你用ping去ping自己很像,就是用一條line in的線(jack端子)的線連接你音效卡的輸入端與輸出端(一般是line-out接到line-in),然後自己輸出自己錄(用RMAA這個軟體),然後可以分析出你的音效卡的基本性能。

比較tricky的地方在自己測自己到底準不準?理論上,你需要一張超專業的錄音卡(當作輸入),其指標性能極其優異,然後用來分析比較低階的音效卡(輸出),這樣是比較可靠的,不過,對!就是那個不過,一般人不會買甚麼超高階(價)音效卡吧?所以實務上有點困難....


不過好在很多好心人(?)會在網路上公布他們用高階音效卡分析的數據,拿來對照之後,發現其實你用loop-back的方式分析音效卡數據好像也沒那麼差,數據(在設定正確下)差異還算不大。

嗯,我後悔了,這樣會寫出很大一篇.....我決定另外寫一篇好了,這裡先pass掉(笑)!不過還是囉嗦一下,有興趣玩RMAA的人記得一件事:就是初期的"調整輸出入音量"這件事很重要,要得到好的測試數據,這邊要花不少時間微調,因為輸出音量太大(電壓太高)很容易超過輸入的可接受範圍(錄音的硬體有接受電壓大小的極限),而輸出音壓過高(電壓高),理論上也會有比較多雜訊,這邊可能得花點時間玩玩看,還頗為有趣的。


8.用MathAudio room EQ配合音效卡麥克風做EQ校正。
foobar強悍的地方就在他的plug-in系統和開放的生態系,很多高手都可以為他撰寫插件和擴充功能,其中很好玩的一項就是Room EQ,簡單說就是:喇叭設計的時候是在實驗室的控制環境中,但是拿到你家用的時候,跟設計環境是完全不一樣的,因此你根本很難發揮喇叭原始設計的性能,對一些發燒友而言,就需要不斷地用吸音跟反射,調整喇叭擺位,甚至各種調音道具及對房間做校正來修正這些差異,不過對很多人而言,這實在是很....不經濟,也很麻煩的做法,不如直接在源頭對數位音源作揖些頻率上的修正,讓聲音配合你的房間就好了,這就是所謂的Room EQ。

Room EQ要怎麼調呢?當然你可以用你的黃金右耳加上腦補來調整,不過你有絕對音感嗎?ma....至少鼴鼠是沒有啦,早期的時候我們會配合Room EQ Wizard之類的軟體來做環境分析,但近期foobar的MathAudio Room EQ插件就可以輔助這件事情了,有興趣的人可以自己去試試,鼴鼠因為是用環繞擴大機當DAC+Amp,環擴基本上都內建類似的自動校正系統了,所以鼴鼠很懶惰的使用擴大機內建的環境校正功能,好處是不論是不是透過foobar都可以校正,如果你用MathAudio的插件,就只有再用foobar時可以校正,不過很多人都不是用環擴,而是用分體機的玩法,因此這個插件會對你很有幫助,就算不用其內建的EQ功能,也可以輔助你調音。

內容相當多,(如果之後有空,再)慢慢滿補充吧,現在就先這樣吧!....以上。
2016-11-15 00:50:30

雖然界面很簡單,但是真的很實用(已使用五年!)

版主回應
確實如此,不過我看我的同事都用類似kkbox之類的東西聽音樂呢,雖然很方便(指kkbox),但音質實在是相當差強人意啊.... 2016-11-15 21:01:05