godfire111 寫:還是再次感謝如此詳細的回答!學到了好多
想請教一下
為何在Foobar中如果選擇ASIO方式則output data format是無法選擇的?
"我記得這個 plugin 有支援傳送 32bit 的 data 給 VST 處理"
--->
如何設定傳送32bit的 data 給 VST 處理,是上述那個問題嗎?
近來陸續實驗中....想不到這些軟體也是很好玩
在 foobar 中選擇 ASIO 輸出,輸出 bit 無法選擇,
是因為某些音效卡的 ASIO 驅動程式一定要以 32bit 傳送資料,
所以選 ASIO 輸出時 foobar 會自動切換成 32bit 輸出,
這個部分的設定就不讓你選了,反正你選錯了也會無法播放。
傳送 32bit data 給 VST 和上面那個問題無關,
傳給 VST 是指,當 foobar 要送資料給外掛的 VST 效果器處理時,
要傳送怎樣的格式,如果只傳 16bit,送進 VST 效果器,
現在 VST 效果器內部通常以 32bit 甚至以上的精度運算,
算好的結果是 32bit or 以上,再傳送算好的資料回 foobar 的時候,
會降轉成 16bit 傳回去,這樣資料的精度就下降了。
(這其中還有兩種情況,第一種 VST 效果器在降轉輸出 16bit 時會做 dithering,
以保留更多運算資訊,但是如果我們後續在用 foobar 本身的 dithering,
就會經過二次或二次以上的 dither,會損失大約 1bit or 以上的 SNR。
第二種情況就是 VST 效果器輸出時不會自動作 dithering,
這是大部分的情況,當然這種情況結果也是不好的,
只剩下 16bit 的運算資訊,而且經過 bit 切割過可能會產生更多的量化失真。)
所以比較理想的情況,是 foobar 傳 32bit or 24bit 的資料給 VST 效果器,
VST 效果器再將 32bit or 24bit 的運算結果傳回給 foobar,
總之位元越高越好,foobar 本身的 DSP queue 甚至支援 64bit 浮點數,
反而是 VST 的 data path 沒那麼高
所以重點就在 foobar 的 VST 橋接 plugin,他有支援傳送 24bit,
我記得甚至有 32bit 資料給 VST 的模式,只要這個模式可以正常運作沒有問題,
運算的效果就會好很多。
所以這裡都是在講 DSP queue 內部的資料傳送運算的情況,和最終出的位元數設定沒有關係。
godfire111 寫:今天起床後突然又想到HDCD的問題,想請教
"所以為了要讓 WMP 能夠認識這是一張 HDCD,
啟用 HDCD 解碼"
不太了解,
稱一台一般據有HDCD 解碼的player,指的應該是它的DAC晶片具有解HDCD功能
但為何使用WMP時,為何要讓它認識這是一張 HDCD?還是說透過這樣一般音效卡就可以享用到HDCD功能?
有點混淆了.,,,趕緊來去查查
呃,因為 WMP 有軟體解碼 HDCD 的能力,但是他的這個功能,必須要
1. 你播放的是一張 CD
2. 這張 CD 是一張 HDCD,每一軌開頭 500 個 sample 的最低位元會組成一個 HDCD 的起始控制指令,
當 WMP 的 decoder 讀到這控制指令,開頭 500 samples 的最低位元會組成這個特徵指令,
WMP 就知道這是一張 HDCD,就會按照接下來 sample 的最低位元所組成的後續音效指令來進行解碼。
必須要以上兩個條件成立。
所以當你播放 wav 的時候,WMP 會認為你是在播放一個單純的 wav 檔,
他不會去偵測 wav 檔的最低位元是否會組成 HDCD 指令,
只有當 WMP 在播放光碟的時候,有可能播放的會是一張 HDCD,
WMP 的 decoder 才會去做這個偵測的動作,才會辨識是不是 HDCD,
才能啟動 HDCD 的解碼功能。
所以這也是為什麼,我必須先將光碟映象 wav 檔掛上虛擬光碟,
再給 WMP 讀取的原因。
是我前面寫得太簡略了嗎?
我發覺我寫的東西似乎很難懂 ^^;;