[簡介]foobar2000 --- 簡單且高品質的audio player

討論MP3、WAV、MIDI、WMA甚至其他數位音訊的播放、製作、轉換等。

版主: DearHoney

回覆文章
Tiberius
神人
文章: 931
註冊時間: 2001-01-03 08:00

文章 Tiberius »

把其他的檔案也加上 ReplayGain 才是正途啊 ... [XD]
bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

文章 bennetng »

在好奇心的驅使下, 原本只用 win98 的我灌了個 win2000 來試試 foobar...

這是我的設定:

SBLive value 2 (CT4830)
Win2000 + SP3 + DirectX 9 + 官方 WDM driver (5.12.0001.0244)
Win98SE + DirectX 8.1 + 官方 VXD driver (4.11.01.0711)

1. 把 foobar 裡的 foo_output_std.dll 移除或改名, 確保自己除了 ks 之外不會誤用 ds 和 waveout, 然後開啟 windows mixer 確保 wave 的音量是否能夠控制 (不能控制的話就表示 ks 已經啟動了)

2. 把 resampler 關掉或者把 foo_dsp_extra.dll 移除或改名, 確保沒有啟動 resampler

3. 把 foobar 的 output bit depth 設定成 16-bit

4. 到這裡下載一個 16-bit 44.1khz 的 IMD test tone
http://bennetng.uhome.net/foobar/Reference-IMD.rar
http://bennetng.uhome.net/foobar/Reference-IMD.png


5. 在 foobar2000 播放這個 test tone, 會聽到很多雜音, 可是在 win98 + vxd driver 之下播放同一個 file, 雜音卻明顯地少了, 這是因為 sblive 的硬體 src 比 kmixer 的好得多的原故。由此可見 ks 的功能只是 bypass 音量控制以達致降低 latency 的效果而已, 而沒有 bypass kmixer 的 src, 我亦完全不覺得用了 ks 之後聲音會比較開揚。

這是 win2000 + foobar + ks (無 resampler) 的結果
http://bennetng.uhome.net/foobar/foobar ... 44-IMD.rar
http://bennetng.uhome.net/foobar/foobar ... 44-IMD.png


這是在 win98 + winamp2.8 + ds (無 ssrc) 的結果
http://bennetng.uhome.net/foobar/None-IMD.rar
http://bennetng.uhome.net/foobar/None-IMD.png


另外, sblive driver 預設的高低音值並不一定是最佳化的 (見圖)
http://bennetng.uhome.net/foobar/EQ.png


請開啟 windows mixer 自行調整, 調到正中間就差不多了 (那個 digital output only 千萬別選, 否則會有雜音), 這個高低音控制即使是用了 ks 仍然會有反應的。如果想看到 output 的曲線的話你要有另一張具備數位輸入的 soundcard 才可以一邊看一邊調。不要試圖用 what u hear (您聽到的聲音) 的方法去調, 因為高低音控制是不會影響 what u hear 的。

這是 win98 和 win2000 的 sblive coaxial 輸出結果, 高低音控制已經盡量最佳化:
http://bennetng.uhome.net/foobar/Coaxial-out.htm

你會看到 win2000 的 noise 好像少一點, 其實並不是, 那是因為 sblive 在 win2000 的輸出最大只得 -1.7db 左右, 但在 win98 的輸出卻有 -0.2db。


這是 win98 和 win2000 的 sblive analog loopback 結果, 其實兩者相當接近
http://bennetng.uhome.net/foobar/Analog-Loopback.htm


我要比較 vxd 和 wdm, 是因為 vxd 沒有 kmixer 但 wdm 有 kmixer。結論就是 ks 只是 bypass 了 kmixer 的音量控制而沒有 bypass kmixer 的 src, bypass 音量控制之後音質亦不會有可以測量得到的改變。所以有些人在用 ks 後發現有明顯的改善, 應該是受其他因素影響 (例如不同的 soundcard, 不同的 driver, 不同的 directx...) , 而不是 kmixer 的問題。

備註:
Roland SC-D70 的 driver 我選用了 MME 而不是 WDM, 因此絕不會受 kmixer 影響, foobar 甚至沒有把 SC-D70 的裝置顯示出來。
teamJDK
大師
文章: 125
註冊時間: 2002-10-09 08:00

文章 teamJDK »

KS 的作用就是跳過 KMixer,所以可以縮短 latency,這一點是無庸置疑的。
我看了一下 bennetng 兄作的測試,2000 + KS 的測試圖形中的 IMD 失真,看起來很像是 APS 失真的情形。
EMU10K1 有兩種 SRC 計算法可以選擇,其中一種用在 APS 上,其缺點就是 IMD 失真遠比另一種嚴重。我看那個圖形和 APS 的圖形很像,所以大膽假設 bennetng 兄在 2000 下裝的 Driver 版本,使用的是 APS 的 SRC 計算法,所以才會出現如此和 98SE 不同的結果。
我用過有幾版的 2000/XP 的 Live! Driver,的確是改為使用 APS Driver 的 SRC 計算法,不過後來又改回原本的 SRC。
所以 bennetng 兄可以做個一般的頻率響應的測試(用 RMAA 即可),看看 2000 下 Live! 的頻率響應圖形是否會出現和 APS 一樣的特性(1K~16K 之間會凹陷、17K 回復水平然後又急遽滑落)。如果出現一樣的頻率響應特性,則可以推斷 IMD 失真是因為不同的 SRC 算法所引起的,而非 KMixer 的作用。
或是換裝幾個不同版本的 Driver 試試,看看結果是否仍然一樣。

至於 KMixer 的影響,我的看法和 bennetng 兄一致,我認為 Kmixer 的對音質應該沒有太大的影響。KMixer 會做混音,那是在有混音需要的時候才會處理。KMixer 會做 SRC,那是在有 SRC 需要的時候才會處理(多個不同頻率的聲波需要混音時),而且如果音效卡有 SRC(Driver 或 硬體),Driver 通常可以接受許多種類的頻率輸入,此時 KMixer 便會交給音效卡處理。KMixer 還會做 BDC,位元大小的轉換,這也是在也需要的時候才會處理,例如播放 24bit,你的 Audio Driver 不接受 24bit 的輸入,KMixer 才會做 BDC,轉為 16bit 再送給你的音效卡處理。
除此之外,我沒有讀過有任何文件寫過,KMixer 會做 EQ, 音場.. 等其他的音效處理,所以一般使用的情況下,KMixer 對音質的影響應該是沒有。
跳過 KMixer 的好處,最主要就是縮短那 ~30ms 的 latency。

當然,以上只是一般的通論,每種音效卡、Driver、作業系統的情況都不一樣,也許有些音效卡就是會受到 KMixer 的影響也不一定。當然如果可能的話,我建議找旁人協助做 A/B test,確定自己是否能夠聽出差異,會是比較客觀的作法。
BLUEBLUE
初學者
文章: 26
註冊時間: 2002-12-21 00:53

文章 BLUEBLUE »

超越丁丁 寫:
adomu 寫:
BLUEBLUE 寫:對了!!請adomu大幫一個忙
試一下wave output有沒有你所說的"被罩住"的感覺
我是覺得waveOut 聽起來跟DirectSound out沒啥差別啦

我有點不同adomu大大的是
我很明顯的聽得出waveout 的吉它聲很突出的,也就是說高音
比Directsound out 高了,而 Directsound out 反而沒有這感覺
請問大大也有這感覺? ?_?
我聽起來覺得waveout比ds out遜色一些
可能是OS的差異吧 我的OS 是XP
BLUEBLUE
初學者
文章: 26
註冊時間: 2002-12-21 00:53

文章 BLUEBLUE »

nakeho 寫:http://www.hydrogenaudio.org/index.php? ... entry58328
Case 寫:
nihues 寫:Works perfect here, the sound is more bright, much better than directsound!
The sound is louder, not brighter. Put your wave volume in mixer to maximum and there won't be any difference, unless there's something broken in your sound card drivers.
hmm...

我也聽不出來 Directsound 和 KS 有音質上的差異,不過我同意 Case 所說的,用 KS 聲音的確變的更大聲。 :roll:
我也是覺得只有變大聲些.....
kmixer真的有對48k 16bits的音訊做音色處理嗎?
印象中似乎沒有....

p.s 24bits的會處理的樣子
BLUEBLUE
初學者
文章: 26
註冊時間: 2002-12-21 00:53

文章 BLUEBLUE »

Tiberius 寫:把其他的檔案也加上 ReplayGain 才是正途啊 ... [XD]
說一下foobar2k的ReplayGain 的使用心得

一首mp3的ReplayGain 資訊是儲存在mp3檔案內的
可以在撥放清單上面的檔案點右鍵->show file info觀看 右邊那個方格裡面有

bitrate = 128
channels = 2
samplerate = 44100
REPLAYGAIN_TRACK_GAIN = -5.5600 dB
REPLAYGAIN_TRACK_PEAK = 1.0385
REPLAYGAIN_ALBUM_GAIN = -4.5800 dB
REPLAYGAIN_ALBUM_PEAK = 1.0690

內容像上面那樣

從上面可明顯的發現
REPLAYGAIN有分兩種TRACK_GAIN ALBUM_GAIN

TRACK_GAIN 是以單首mp3圍單位去計算其REPLAYGAIN
也就是在MusePack and ReplayGain
這篇文章中所提到的Title Based模式


ALBUM_GAIN 是以整個專輯為單位去計算 如之前的REPLAYGAIN文件所寫的
也就是那篇文章所說到的Album Based模式


撥放時要用哪一種模式 FB2K裡面可以設定

但是REPLAYGAIN是一種需要事先去計算出來的結果
所以在使用的時候必須先作計算工作

方法:撥放清單點右鍵->REPLAYGAIN
選第一個是對單獨一個檔案計算其TRACK_GAIN

第二個是ALBUM_GAIN
但是記得要先把整個專輯選取 這樣才會列入計算

第三個是清除檔案中的REPLAYGAIN記錄

作完可以show file info看一下

p.s 如果沒有ALBUM_GAIN參數 卻在FB2K使用ALBUM模式的話
會以TRACK的參數來決定
最後由 BLUEBLUE 於 2003-01-19 21:35 編輯,總共編輯了 4 次。
bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

文章 bennetng »

To teamJDK 兄:

我亦有打算試其他 driver, 包括 APSLive, Kx, Compaq, 大陸 driver 等等, 不過反覆在不同 os 測試的過程實在是令我有點頭暈 [b13]

所以遲些慢慢再試好了...
SamLin
大師
文章: 91
註冊時間: 2001-01-05 08:00
來自: 楓之國度

文章 SamLin »

做了一個很簡單的比較:
音效卡為
98第一版:Live value2+APS1.83使用後置聲道
Vibra128+Vxd Driver 4.12.01.2016
XP:Live value2+XP預設驅動程式
Vibra128+WDM Driver 5.12.01.5017
在XP底下foobra2000使用KS:
output bit depth 16bit:
Live value2:有聲音
Vibra128 :有聲音
output bit depth 24bit:
Live value2:有聲音
Vibra128 :雜音一堆,類似電視沒訊號的噪音
在98第一版底下foobra2000使用DS:
output bit depth 24bit:
APS1.83 :無反應
Vibra128 :噪音一堆,類似電視沒訊號的噪音
在98第一版底下foobra2000使用Wave out:
output bit depth 24bit:
皆無反應
以上,有沒有使用resampler結果皆一樣
有網友提到使用KS仍然還是會經過Kmixer作SRC
那我有一個疑問就是...
foobra2000使用KS以24bit output在Vibra128
底下是噪音一堆,是因為Kmixer的關係?還是跟
本沒通過Kmixer?還是說Kmixer沒辦法24bit轉16bit?
撇開Kmixer有沒有影響...單純就用聽感來比較,KS在
我聽來感覺比DS跟Wave out的聲音還乾淨,
buffer length太低有時會產生爆音,而且音質似乎比較鬆散
最後由 SamLin 於 2003-01-20 10:53 編輯,總共編輯了 1 次。
頭像
BooBooBird
神人
文章: 1424
註冊時間: 2001-12-11 08:00
來自: 不知有漢 無論魏晉

文章 BooBooBird »

BooBooBird 寫:換成 winamp2 ,只要使用 waveout ssrc 就能達到最佳品質,可見 foobar2000 在 vxd 的 waveout 部分處理得不好,導致使用 vxd 可能無法達到最佳品質。
我自己研究出答案了。就是 wa2 那個 "create primary buffer" 的選項,顯然 foobar2000 裡面缺了這個功能。
bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

文章 bennetng »

BooBooBird 寫:
BooBooBird 寫:換成 winamp2 ,只要使用 waveout ssrc 就能達到最佳品質,可見 foobar2000 在 vxd 的 waveout 部分處理得不好,導致使用 vxd 可能無法達到最佳品質。
我自己研究出答案了。就是 wa2 那個 "create primary buffer" 的選項,顯然 foobar2000 裡面缺了這個功能。
我在 win98 + vxd + winamp2 時, ds 的設定是沒選 create primary buffer, 但選了 allow hardware acceleration, 音質和 waveout 沒有分別, 不過很明顯地, ds 的 latency 是少了, waveout 的反應比較遲鈍。
回覆文章