查看完整版本: Foobar2000 音質調教教學

王國 2007-11-18 01:28

Foobar2000 音質調教教學

[color=green]音質調教: 2U0d mt"^SI%iG
我目前是裝Foobar2000 Special 0.8版(「與0.77版設定相同)
#U;qjI0le6Y'vo 安裝後在程式左上方 Foobar2000=>Preferences設定以下項目 ,k(dJ!mc
1k9v@L9n@Es8I
1.Playback中的Buffer files up to設為10000KB
}'m5H6bQW2? n-zjm9F&p
2.Playback->DSP Manager裡的Volume Control移到右邊,把原本右邊的Resampler(SSRC)移到左邊;這樣有時在播放歌曲時會造成CPU使用率升高,但音質聽起來會比一般播放軟體好,其原理我不太懂的說明,觀看那篇討論區應該可以了解些.
+@ o1F-b6`K
"Cd`o3Pa x 3.Playback->DSP Manager->Resampler裡的Target sample rate設為48000Hz(一般音效卡及主機板內建音效是用此設定)-->>上述有建議你, 各種音效卡 設定質是多少 4Js9fz g g:SY

V;z+\ N3x/y DUr'V1] 4.Playback->Output選取Kernel Streaming
&^\MhI7^Y:bW`.e/E3~
?)A2ewX$} 5.Playback->Output->Kernel Streaming中的Buffer Length橫桿拉到最右邊
b9ao*o [ mv[u.Fa
6.按下Preference視窗中的Save all按鈕,接著按close回到主視窗
nR*V3V.ps
:cD:X qd6_ 7.主視窗上面Playlist->Add directory,瀏覽到你音樂檔所在的位置,稍待幾秒鐘那些媒體檔就會呈現在下方的播放清單中
-t`(f_&mh&K M ibV&k@

j1o] y B 8.在以上步驟4選取KS輸出後,第一次播放歌曲會跳出警告視窗,沒關係,就按ok即可 Bv L/x#f1O;s
aRKF4T2? }
9.按下要聆聽的歌曲名稱,就開始享用平民也負擔的起的高級音響,我覺得這聽起來比Windows Media Player 9和Winamp(沒用SSRC時)音質要好
6qs:I Al0a+Iw
5B-n(x3RT1K 以上是我Foobar2000的設定法,不見的要照我說的設定,可以依你的偏好設定. N*@&?p&k+{!XS:{
:\u(GO+c
在DSP manager 可以試著將SSRC搭配其他選項, EX]
xb*Y_n!r { x
8P&[hVE4P j%p Directsound 與 Waveout
5s/Y3NjAwa Q: Directsound 與 Waveout 有何不同? Y?1}!R.^9H6f
A: Waveout 是在 32 位元的 Windows 上的一種老舊且過時,用來播放數位音訊的應用程式介面(Application Programming Interface,簡稱API)。舊的 Windows 作業系統(如 Win9x WinNT4)對於 Waveout 擁有很高的完成度(因為 waveout 是針對這些作業系統設計的),如果你想獲得最好的效能,你應該在這些作業系統上使用 Waveout 輸出。然而 Waveout 的功能有所侷限,它無法支援「混和多重音訊流」的功能。這顯示在 Win2k/XP 下的 Waveout,只是為了舊的軟體的相容性所提供的,也因此 Win2k/XP 下 Waveout 的完成度很糟,它沒有使用任何的硬體加速功能,所有的混音動作都是用軟體來執行(因此當 CPU 的使用率很高時,常常會發生類似 CD 跳針的斷音現象)。
!R| az2H$Lo m*PBR L%I R2r4I l%x7b'j(W6T {
Directsound 是種較新、較現代化的聲音播放 API,都已經內建在最近的 32 位元 Windows 作業系統中。Directsound 支援混和多重音訊流、獨立的音量控制、硬體加速層及硬體模擬層(如果某些功能硬體無法支援,可以用軟體來模擬,因此程式設計師無須擔心他們的新 l33t 碼無法在舊的 Sound Blaster 16 上運作)。一般來說,只要你的作業系統安裝了適當的音效卡驅動程式及最新的 DirectX,Directsound 都應該可以運作的很好(除了 WinNT4 以外)。在 Win2k/XP 下,Directsound 是比 waveout 來的更好的選擇,因為在這些作業系統裡,Directsound 的完成度相對的比 waveout 來的更高(比 waveout 佔用較少的 CPU 資源,自由度較高,且不會有 Waveout 常見的小毛病)。Directsound 原本是被設計來讓遊戲利用系統的硬體加速功能,而無須直接接觸低階的硬體函數(就如同 DirectX 其他的組件)。
'eVM9v S!Y k
'} J)?;G"KD^oi Q]定,然而 Directsound 的音量是獨立控制的。換句話說,你用 waveout 來播放音樂,你將音量設為50%,你就會得到50%的音量,然後你用 Directsound 來播放,你將音量設為50%,你只會得到最大音量的25%。解決之道:別使用 waveout,並在 Windows 的音量控制中將音量設為最大。
S)?GFT;tnc
5f!r v F A6OA Q: Directsound 及 waveout 之間的聲音輸出品質有所不同嗎?
*a d;k[&EG/i A1: 在Win2k/XP下(或者使用WDM驅動程式),waveout 及 Directsound 分別以不同的方式傳輸 PCM 資料給 Windows kernel mixer。waveout 只使用軟體混音,因此較少造成系統中的特殊問題,而 Dircetsound 可以使用硬體混音,因此會造成某些已知的,聲音品質的問題。
+UhZ~q y!UK G6f} W A2: 在 Win9x 下,Directsound 驅動系統完全的與 waveout 分離,並使用低階的方式來控制硬體,因此這就像拿兩種不同的驅動程式來配合 waveout 及 Directsound。在使用某些老舊的 ISA 介面的音效卡時,Directsound 為了節省 ISA 匯流排的頻寬,有著會將音訊資料降低取樣至 22khz 8bit (或者其他相近的取樣率)的問題。 v6j3d4Ti
m WV `z+k
Q: 對於 Directsound 而言,軟體混音及硬體混音有何不同?
1| f;B~&g.SN A: 在 WinXP sp1、DirectX 8.1 中,無論是使用微軟的 Directsound 核心或者是驅動程式來進行硬體混音,都很容易碰到問題。目前已經證實,在 Winxp 下使用硬體混音來傳輸音訊資料時,即使是使用不同的音效卡,皆會碰上「取樣頻率」的問題。特別是某些驅動程式存在已久的問題(著名的創新未來 Audigy 音效卡 Skipping 問題,在某些設定中會出現不間斷、靜態的雜音,甚至在某些例子中,會發生聲音品質驟降的情形,天曉得為何會如此!)。如果你想穩定的運作電腦,那建議你最好把硬體加速給關掉。硬體混音可以 foobar2000 的偏好設定中的 Driectsound 這個欄位裡找到 "allow hardware acceleration"。開啟它不代表你就真的啟動了這個功能(Directsound 會在沒有可用資源時自動使用軟體混音)。 $l+e8Qag `'v

QH9isf7f9a 5P n#P6T1sz(aO.~k
關於重新取樣(resampling)
1Xl7[vq u?5k Q]也就是避免音訊品質降低)。我知道某些人在他們的 Sound Blaster 16 上將取樣率提升為 96khz 24bit,並且聲稱這樣能聽到較「明亮」的聲音(事實上 Windows kernel mixer 會將取樣降回 44khz 16bit),別聽他們所說的屁話。 }UCLj&B

f Lta8V%X? Q: 我應該將重新取樣的參數設為多少比較好? el v7p+fe y7}i)m
A: 首先,你應該查詢你音效卡的硬體資料。某些音效卡(例:在 SB Awesome 系列以前發售的 Sound Blaster 系列)不需要進行重新取樣,這表示你不需要額外的重新取樣程序就已經得到最好的品質了(不會有重新取樣時造成的品質降低)。所有的 SB Live!系列/Audigy系列/AC97相容的音效卡,都已經將輸出的取樣頻率固定為 48khz,重新取樣的品質會因為驅動程式/硬體裝置/Windows混音設定而改變。在許多例子中,SSRC 重新取樣軟體會優先於你的硬體/驅動程式,因此你需要將重新取樣的參數設為 48khz/16bits,以避免你的硬體/驅動程式來進行它們較差的重新取樣。
$Q(n5@$V6i D~QxM&I4\
Q: 但是我在我的 Sound Blaster 上可以重新取樣為 96khz/24bits ...
1?*B(e*f!o7r B@1~ A: 當然可以,因為 Windows 混音器會將取樣率降回你硬體能夠接受的格式(例如: 48khz/16bits),這會造成額外的品質降低。不要提升取樣,除非你的硬體真的能夠接受這些格式。 !j/yQYH4{@!_Nw r@]
!JHs1sB5e%Ti9|
Q: Resampler 中的 Internal precision 是什麼意思?
0v6zd,|f tqps8O 這裡設定的是 SSRC 的運算精度,理論上使用 64bit 會比使用 32bit 得到更清晰的音質,不過相對的,CPU 佔用率也越高。
4w0j{&O1n`oO 4Z!F"v:G4S)V!Li
Q: 16/24bit fixed-point padded to 32bit 是什麼意思? /z0oqg$g
A: 某些音效卡上的 DSP (數位訊號處理器)內部有著 24 或 32 條資料管線,如果輸入的音訊資料是 16/24bit,那麼 DSP 必須先做一些處理才能去運算這些資料,這會造成效能的低落,因此先把資料填補(padded)成 24bit 或 32bit,對於降低 CPU 的佔用率,應該很有幫助。
9@?!hs4g4L
,z uhA(_U[9a Nrz
g\J ^(Vx)a5i X,x Dithering
H.g G?L-LI#^#ZC hotball 寫到: L pyh E!b/o R*^
Dithering 通常會增加量化誤差(也就是雜訊會變多),但是會減少失真(指人的感覺上)。這是因為,在沒有 dithering 的情形下,量化誤差會比較集中在低頻部份。而加上 dithering 後,低頻部份的量化誤差會減少,而轉移到高頻。由於對大部份情形來說,高頻是比較不重要的,所以這樣是可以減少失真的。 t$e$W|.i
-KM8[*~ Z
所以,在使用 dithering 的情形下,取樣率要高到某個程度以上才行(即讓其高頻部份超出人所能偵知的範圍)。對於影像訊號來說,當解析度高到某個程度時,人眼就無法分辨各別的 pixels(所以 dithering 的圖遠看會比較好看)。聲音的情形也類似,因為人耳無法聽到某個頻率以上的聲音。但是若取樣率不夠高的話,則 dithering 所造成的高頻量化誤差的增加,就不一定會有好的效果。 W;Ye b:|S2a?

&y3T Yci;[ 以上說明節錄自Dearhoney音樂工作室討論區的「Dither的影響」這篇文章,詳細的說明請參考以下連結。 dPx4Vl h
ezr F'HX1c0GD
http]也就是淡入/出的效果不平順)。
5x"JW6Qo9W L
`@K0| M#c6Ar Dithering 只有在你將高位元(例如:32bit)的音訊以低位元(例如:16bit)來播放時才真正有用。 (g,B%m @8?V jF

wY ^$?Xvu*Y
rhz#z`&I8@ Y 輸出位元深度設定(Output bit depth) ^&WF1W`A/N z]
這裡有個下拉式選單,可以讓你選擇輸出的位元率。如果你有張 24bit 的音效卡,你當然會想讓那些沒有用到的位元使用 dither to 24bit 來輸出。即使是 16bit 的音效卡,在播放 32bit 的音訊時使用 dither to 16bit 也能增進音質。 /m Y}CW^LwH
)o_)y._ \t2IU
foobar2000 處理音訊資料的管道如下 o7v5V|V9tqD%R {i
u"^5|C;t\E
decoder(64 bit fp)=>[replaygain]=>[DSP]=>downsample to 16/24 bit with optional dithering 5m g*@NOX Y%Z
"T/S-a?T:e~ `$].m
解碼器(64位元浮點數)→[replaygain]→[DSP]→降低取樣至 16/24/32位元並使用 Dithering
"Pt/^!] U_ i)^7E"f J h.F0}.c
因此當你選擇 dither to 16/24/32bit 時,建議你啟動dithering。 R] ~k$Q J-hrR
f4Ek5U(S*`f!S
`I LqI*L.I
關於 Kernel Streaming :aS/m@:r ] [e+c
Q]許可以被視為 ASIO output 之外的另一種選擇。
LJ!I6Jz\o'y
0q q I1]/u(^7F nJHl@v Q: 我應該用 Kernel Streaming 嗎?
|Kg~Zp I{ A: 如果你的音效卡及驅動程式能支援,且你使用 Kernel Streaming 沒有什麼問題的情況下,我會建議你使用 Kernel Streaming 。 7O d4H,o.y
YW T%v&uG1K j9n(G&b
Q: 為何使用 Kernel Streaming 來輸出,比使用 Directsound 輸出,感覺聲音變的更大聲或者明亮? "y5ax#G4Yz/H&yv
A: 聲音並沒有變的明亮,只有變大聲。因為輸出資料給音效卡的方式不同,因為繞過了 Windows 的混音器,音量控制(wave)對於 Kernel Streaming 是無效的,而且都以最大音量來輸出。如果你將音量控制中的 wave 音量設為最大,並使用 Directsound 輸出,你會發現音質和 Kernel Streaming 輸出沒什麼不同。
\'z%n_#l+D
1|0Wn1kz Q: 哪些作業系統可以使用 Kernel Streaming ?
zziC\f A: Kernel Streaming 只能在 Windows 2000 及 Windows XP 上運作,有人說應該可以在Windows ME 上運作,但仍未被確定。
'Ns+Yh} {-J@0Z 1NQe1s!B
+k2vWFE[M9[wO,O
關於 ASIO
n!\o.{&?5d8Z Q: 何謂 ASIO ?
dI,nQg+N%m A: ASIO 是 Audio Stream Input Output 的縮寫。由 Steinberg 發展出的一種多重聲道音訊傳輸協定。
3yx{_v5r#r)rd
#~ bh)MP!GI.@1e9] Q: 為何在 WinXP 下,使用 ASIO 會比 Directsound 輸出來的好?
-vk,e7Uv f'q*@3Q A: ASIO 會跳過 Windows Kernel Mixer ,如同 Kernel Streaming ,但是在某些音效卡上使用 Kernel Streaming 會發生當機的情況,因此 ASIO 被視為另一種替代的選擇。 tS$h4_ }
怪怪...我用ASIO反而不能播. 大概我的音效卡驅動程式不支援吧
~8~{1GX!i'~\z D^8x8r.P ?~"w
數位輸出
Uz8|F%AOr Q: 如果我要使用音效卡的數位輸出(SPDIF/光纖),那我要選用哪種 API 呢?
~2{/[d7e7r5Tw A: 你必須使用 DirectSound 來輸出數位訊號,使用 waveout 或 KS 皆會輸出錯誤的數位訊號。 2sakUrD S:Y]
l#xC C%_"m*J
以上整理 -g)k/Y4e{Ka~
由竹貓星球 蒼浩整理

王國 2007-11-18 01:29

現時大部分的平民 PCI soundcard 或 onboard soundcard 基本上只有一個 sample rate, 就是 48khz (包括 Audigy 1), 雖然這些 soundcard 仍然能夠播放其他格式的音樂, 例如 CD 和大部分 MP3 的 44.1khz, 甚至 96khz, 但實際上這些格式的音樂在輸出時會被自動轉換成 48khz 才播放, 而這個轉換的過程會造成數位失真, 播放出來的音質會比播原本是 48khz 的檔案差 (所以在我網站上的 MP3 都是 48khz 的)。這就是所謂的 src, 即 sample rate conversion 或 sample rate converter。src 的情形無論在錄和播時都會出現, 問題只是轉換的質素, 因此在使用這些 soundcard 錄音時, 我們應該使用 48khz 錄音, 如果真的有需要轉換成其他 sample rate 的話, 應該用高質素的軟體來轉, 在此我推薦 Cool Edit Pro。但在播放音樂時, 我們為了方便起見, 會用一些實時 (realtime) 的 src 軟體去做這個工作。 -iR6gQAi\
KMixer j,npOlIq
KMixer 是 Windows 內置的 src, 只要你的 soundcard 是用 WDM driver 的話, 就有機會(但不一定)會用上 KMixer 來做 src, 如果你用的不是 WDM driver 的話, 就可以不用理會它。判斷自己是否在用 WDM driver, 可在 Windows 的開始 > 執行, 輸入 "dxdiag", 到「音效」一欄觀看 driver 的「類型」是否 WDM。如果是的話, 再到控制台>聲音及多媒體>音訊>音效播放>進階>效能>取樣率轉換品質, 試一下用不同的品質來播放這個 44.1khz 的 IMD 測試信號 (不要開得太大聲, 否則破音了會影響測試的準確性) 聽聽是否有分別, 另外,「硬體加速」一項也有可能會影響音質。 G4dI/gU1mN3C0aI

3{L3cf8u%^8Q [1] 如果聽得出有分別的話 (其分別是十分明顯, 不用細心去聽), 就表示你的 soundcard 一定是用 KMixer 做 src
@ VhR"yE)t5L
;i0mZf*G$hy 如果無分別的話, 則有下列的可能性] 你的 soundcard 是用本身內置的硬體 src 或者是 soundcard driver 內附的 src 程式去做 src, 而不是用 KMixer 做 src MB1JP!a)kz

FPj-L gl-c8i [3] soundcard 是用 KMixer 做 src, 但 soundcard driver 強制了 KMixer 的轉換品質, 所以用家無法變更。
M K+tbX%uh$N$}R (i5Rv[QX} ?n:i"h
[4] 你的 soundcard 本身真正支援 44.1khz (例如 SB16/AWE 和其他較舊的 soundcard), 這些 soundcard 反而是在播 48khz 的音樂時才會有 src Kk4vvc.B S]%@
/].|q0P7M0pS
在 [1] [2] [3] 的情況下] 如果你只是聽到一個很純很尖的超高頻聲音, 而聽不到其他雜音的話, 那代表 src 的質素是好的。 6s0MJuE{ Y
x X4@|$RL
[6] 如果除此之外你還聽到其他雜音的話, 則代表 src 的質素是差的。 *a$U6KD[*ii ~ Ht

X"Z!jkQ$F3u [7] 如果你聽不到任何聲音的話, 則代表你的 soundcard 高頻表現欠佳, 或者你用的音響器材高頻表現欠佳, 或者你的聽力欠佳。那麼 src 的質素則無法單憑聽覺去判斷, 需要用分析軟體輔助, 但 src 的質素仍很大可能是高的。 (v`5v1vKEP

AHcdT~ 現附上一個相同的信號, 但格式是 48khz, 由於本身已經是 48khz, 所以在正常情況下只會聽到一個很純很尖的超高頻聲音, 而不會聽到其他雜音, 如果有雜音的話, 請變更「硬體加速」一項, 如果仍然有雜音的話, 你的 soundcard driver 可能有點問題。(此測試不適用於 SB16/AWE 和其他較舊的 soundcard)
8D4i*o'W4U ?*UK GN s1NQ(UXh&w1T,X
總而言之, 不論你的 soundcard 是新是舊, 目標都是達到播 44.1khz 和 48khz 的測試信號時, 都只是聽到一個很純很尖的超高頻聲音, 而聽不到其他雜音。而所謂「其他雜音」, 並不包括 soundcard 在沒有播放聲音時的基本雜音(如果你聽到的話)。 w^L n#w&JC

Z"v^|%`8K foobar2000 QWWbp&J
做完上述的測試後, 如果你對 src 的品質不滿意的話, 仍然有解決的辦法。foobar2000 是一個實而不華的高質素音樂播放軟件, 它擁有高質素的... 9` U-r$Y6K

:zQ&O4OR @ },~ 1. Resampler Plugin (ssrc)
]H7x)WFz9u+C-| %{"E Rm%kX
適用於任何類型的 soundcard driver, 可用來取代 soundcard 的硬體 src 和 KMixer 的 src, 而且還可以令 soundcard 播放原本不支援的檔案格式, 如 192khz 8Om(k Ff*^

0r[Di![5O6f 2. Kernel Streaming Plugin (ks)
(\#aD zK` Ti ByYwqJ
只適用於 WDM driver, 它在某些 soundcard 上可以避開 KMixer, 但沒有 src 功能, ks 的啟動與否, 在正常情況下應該不會影響音質, 但據聞有些人在啟用 ks 之後, 音質有劇烈的改善 '~`4t:U7GzO

!ku+[%}'S c4? 3. Bit Depth Convertor
:W!@3n%yD$M
!n&b a1A*gh 可以令一些本身只支援 16-bit 的 soundcard 播放 24-bit 和 32-bit 的檔案, 並且有 dither 和 noise shaping 功能令 16-bit soundcard 也可以重現 24-bit 和 32-bit 檔案的細節 c1iF-}*{^B

*x(Ot'I0{|M|s? foobar2000 應用實例 (W[WQ,wQ&s
到 這裡下載 foobar2000 A R_`)k(CCtE
-Monkey's Audio 是一種無失真壓縮音樂格式, 它的壓縮率比 zip 和 rar 強得多 V-eV.[ ?0u;[G,E/l
/q2p\ |W.B0h;k
-Module/SPC 和 MIDI 類似, 但除了記錄音符、節奏等等之外還包含了對應的 sample, 於是在所有電腦播起來的效果都是大致一樣
V9rhRn%D2s ?`
?"gJ;AX -DSPs 包含了上述的 ssrc 和其他效果器如 EQ 等等。
)u3QW"I r ]d:g]
le!Dt-S 有需要的話只要把上述插件解壓後放在 foobar2000 的資料夾裡即可。
;g&q6MM`g)I7j F7`p6P6aM
一打開 foobar2000, 你會發現它連 play, stop 這些基本的按鈕都沒有, 你可以到 Foobar2000>Preferences>Display 裡, 選 Show buttons, 接著到 DSP Manager, 把右邊的 Resampler 移到左邊, 然後在 DSP Manager 下的 Resampler 裡, 把 Target sample rate 設定成你 soundcard 本身的 sample rate 以下是一些建議數值 (參考自 DearHoney 的 RMAA 資料庫)]定再試試看, 如果仍然失敗的話, 試試在 Windows 音量控制裡按選項>進階控制, 看看是否有高低音控制, 如果有的話, 把高低音都移到正中間再試試看 (如果本身已經在中間就不用移了), 如果還是不行的話, 我也無話可說。注意使用 Kernel Streaming 時 Windows 音量控制裡的 wave 輸出可能會無法控制, 那是正常的現象。 f/l,|-\ Z!a*eA

7V(Dr^,V3wV9\g 接著到 Playback 一欄, 會有一個 Output bit depth 的選項, 只有 soundcard 真正支援 24-bit 時才選擇 24-bit (Audigy1 是 16-bit, Audigy2 才是 24-bit), 因為在不支援 24-bit 的 soundcard 上選 24-bit 只會令音質比 16-bit 更差, 即使你可能聽不出。
頁: [1]
查看完整版本: Foobar2000 音質調教教學