作者:
drunkenlife
Foobar或iTunes或Media player這些都稱為application software
application是在OS之上跑,OS之下則是硬體,OS之中會插入硬體相應的driver
OS也會給application一個介面用來與硬體溝通,這稱為API
因此整個架構是
application -> API -> OS kernel -> driver -> hardware
另外會有個看起來像是application的介面--control panel,用來設定硬體,這當然也是透過driver
當driver與硬體的設定為44.1KHz,而application傳給API的是88.2KHz時,
OS裡便有個機制會做44.1->88.2的轉換
理想上,若是driver/硬體/application的設定與資料都是同樣的sampling rate,那麼音樂傳遞的過程中,應該不會有任何誤差
但,倘若用的是DirectShow這個由Windows XP就開始用的標準API,其中會做個挺荒謬的轉換,所有聲音資料都會被轉成48KHz後,再將各個appliation的資料混音,接著,再轉成driver/硬體的設定sampling rate
這二次的轉換,就會損失一堆細節
那轉換後混音的部份就稱為kmixer
因此後來才弄出WASAPI與kernel streaming這二個API,就沒上述的問題
但,這得要application能用這二個API,多半的application並沒有這能力
所以才會大家都在用Foobar
以上粗體字部分是Windows的麻煩,Mac OS X沒這問題