ASIO4ALL 2.15 (Beta2) 版本為這個重要的實用程序帶來了備受期待的更新,并更新了對 Windows 10 Intel SST 音頻驅動的支持。
ASIO4ALL 是啥?
ASIO4ALL 是對 Windows 平臺音樂制作者最有用的音樂技術工具之一。它將筆記本和臺式機的內置媒體音頻引起變成了低延遲音樂制作系統,能在專業音頻軟件中作為 ASIO 驅動程序運行。Michael 在 2003 年寫了這個驅動程序,以便讓他的 AC97 音頻(聲卡)能在基于 ASIO 的軟件中運行。
Windows 計算機上的內置音頻現實的情況是,它們是為電影播放、游戲和而音樂而設計的,為了確保在成千上萬的 PC 變化中順利地播放,它會在一個大緩沖區內工作。當試圖運行實時音頻軟件時,這個緩沖區導致了一個令人啼笑皆非的延遲量。雖然大多數音樂軟件都支持 Windows 的音頻驅動,但是延遲時的監聽無法進行,虛擬樂器也難以演奏。ASIO4ALL 通過將 Windows 包裹在 ASIO4ALL 驅動中,巧妙地繞過了這個緩沖區,解決了所有問題。
ASIO4ALL 并不完美。在某些方面來說,它算是一個破解,可以繞過其它驅動程序的限制。它并非總是穩定,界面可能有點令人費解,而你也只能在延遲方面做調節。然而,它可以電腦成為窮困的音樂人臥室中的工作室。
ASIO4ALL 更新
新版最重要的是對 Intel SST (Smart Sound Technology) 驅動的支持。這是大多數新的筆記本電腦和像 Microsoft Surface Pro 等混合型電腦中的音頻系統。我花了很多時間通過 Surface Pro 與音樂制作打交道,至少可以說,在 ASIO4ALL 前一個版本中,你對設置的思考是具有挑戰性的。在試圖獲得正確的設置組合來獲得低延遲音頻輸入和輸出時,需要大量試錯以及藍屏問題需要解決。
相比之下,新版本是夢幻般的存在。與其要面對各種采樣率、不同的選項和同一個東西的多個條目,不如只有一個選項,并且它還能工作。
Windows 音頻
自 2003 年以來,Windows 的音頻堆棧通過 WASAPI 協議得到了極大改善,現在能夠通過正確的軟件和硬件組合實現實時音頻延遲。不過,反復嘗試發現,ASIO4ALL 在幾乎所有用途中都能擊敗 Windows 的音頻延遲和性能。Microsoft 在繼續努力,一個名為 AudioGraph 的新 API 可能會在 Windows 原生音頻系統方面取得進展。因此,也許 ASIO4ALL 的時日已經不多了。
ASIO4ALL 可從官網免費下載。ASIO4ALL 一直都是免費提供的,而在過去十多年中幫助了很多人,在此也感謝作者 Michael 所做的工作,感謝你多年來對這么多音樂人的幫助。
[中關村在線音頻頻道原創]PC-HiFi用戶應該對ASIO都不陌生,當大家安裝foobar2000這樣的播放器時,總是會把ASIO插件也順帶裝上。筆者當然也不例外,每次安裝都是不假思索,但是沒仔細想過為什么要安裝這個插件,這或許跟發燒初期老燒們告訴我裝了ASIO后使用這個輸出聲音效果會更好有關。
關于ASIO以及其他數字輸出方式那些事
然而,前段時間重裝foobar2000后,到其官網下載ASIO插件時,多看了一眼插件作者對該插件的說明,這一看不要緊,他講的讓我大跌眼鏡,以至于對自己一直以來的習慣產生了懷疑。我們來看看他是怎么說的。
foobar2000官網對于ASIO插件的說明
大家仔細看截圖紅線劃出的部分,作者Peter說“與發燒友們宣稱的正好相反,安裝ASIO對播放音質的提升沒有益處,而且ASIO的bug還可能嚴重降低播放的質量”。是“NO benefits”!我是看花眼了嗎?相信大部分人也對此產生了疑問,這確實與發燒友們宣稱的完全不一樣啊!并且Peter極力推薦用戶使用系統默認的輸出。
到底是誰說的對呢?筆者繼續在foobar2000官網尋找相關答案,在FAQ版塊,筆者又找到了如下官方軟件說明,見截圖紅線劃出的部分。
foobar2000官網對于ASIO插件的說明
與上面提到的插件說明基本一致,說“安裝ASIO對播放音質的提升沒有益處”,也是“NO benefits”!并且在下面提到,在大部分系統中,WASAPI輸出要比ASIO穩定。
難道我們都被騙了嗎?筆者對此感到十分困惑,于是又查閱了一些其他相關資料,對此漸漸有了一些新的認識。
幾種數字音頻輸出方式
在說ASIO之前,我們先說一下幾種常見的數字音頻輸出方式。常見的數字音頻輸出主要有Waveout、DirectSound、Kernel Streaming和ASIO。
Waveout是微軟最早提出的音頻流輸出方式,所以它的兼容性也就好,幾乎所有的聲卡都支持。DirectSound是微軟Direct X的一個組合部分,它的兼容性也很不錯,并且在有多個程序需要播放音頻的時候能提供高可靠的保障。
Kernel Streaming是微軟底層使用的音頻流方式,實際上它是以設法繞過Windows操作系統對硬件設備的控制,直接與硬件端口取得通訊的思路來實現提高響應速度的目的,能夠起到輸出效率高、輸出延時低的效果。
ASIO是“Audio Stream Input Output”的縮寫,由Steinberg提出這個標準規范,其主要目的是降低音頻數據延遲,同時作為系統中獨立的音頻通道可以避開DirectSound或其他通道,使得ASIO下的程序可以不受系統中正在運行的其它程序的干擾,本質上是為擺脫OS對硬件的集中控制,以實現在音頻處理軟件與硬件之間進行多通道傳輸的同時將系統對音頻流的響應時間降至最短。這與Kernel Streaming頗為相似。
為了對這幾種輸出方式有個直觀的了解,我們可以看看下面這張圖。
Waveout、DirectSound、Kernel Streaming和ASIO工作原理(圖片來源:foobar2000中國)
從Windows Vista起,又出現了WASAPI這種輸出方式。WASAPI的全稱是Windows Audio Session API,這是從Windows Vista之后引入的UAA(Universal Audio Architecture)音頻架構所屬的API(Application Programming Interface,應用程序接口)。WASAPI允許傳輸未經修改的比特流到音頻設備,從而避開SRC(Sample Rate Conversion,取樣率轉換器)的干擾。 也就是說,上圖里的KMixer已經被微軟淘汰了,微軟想讓WASAPI做的其實就是想讓它像ASIO那樣,運行在它下面的程序可以不受系統中正在運行的其它程序的干擾。
我們可以看到,Kernel Streaming、ASIO與WASAPI都是屬于直奔底層的輸出,不過ASIO與Kernel Streaming不同的是它還具有輸入功能。而ASIO與WASAPI的區別在于,WASAPI的工作方式就像在多車道上專門給它劃了一條車道,只供它一輛車通行;而ASIO則是干脆不走公共車道,自己專門修了另一條路,這條路上就走它自己一輛車。
ASIO到底影響的是什么?
細心的朋友可能會注意到,上面說到ASIO時,介紹了其主要目的是降低音頻數據延遲。這是什么意思呢?這是說ASIO對于錄音作業和音樂制作的實時處理更有意義。比如你用話筒說話,就需要最好是在你發出聲音的同時人們能同步聽到你說話,而不是你已經講完一句了人們才聽到半句。再比如用電子琴錄音,你一個鍵按下去了,等了0.6秒才聽見了聲音,那就根本沒法錄了。因此ASIO最大的意義就是盡可能接近“零延遲”,以保證音頻的實時處理。
低延遲對于錄音來說非常重要
接下來我們還要講的一個概念就是緩存欠載。緩存欠載指的是由于某種原因導致系統傳輸停頓使緩存不能及時補充有效數據,同時緩存中的數據又已被播放(錄制)完,造成緩存中數據為空的現象。低延遲恰恰有可能造成緩存欠載的情況。這是為什么呢?
我們知道使用ASIO時都會有一個緩沖大小設置,緩沖大小決定了當前寫入位置與播放位置的距離。音樂播放速度是固定的,如果緩沖大小為0,那么就必需時刻保持寫入速度等于播放速度,這勢必會造成系統頻繁調用的高負載。當我們加入了緩沖機制,系統對于寫入速度的要求就從瞬時速度降低為平均速度的水平。緩沖越大,對于突發高負載造成的寫入速度降低的緩沖能力就越強。
由此我們可以看到,對錄音作業和音樂制作最有用的“零延遲”,在播放音樂時反而有可能給播放造成障礙,而一旦出現緩存欠載后,要么就會出現禁音,短時間的禁音在人耳聽來就是爆音的效果;再要么就是重復播放緩沖區,直到有新數據為止,這在人耳聽來就是一段很短的聲音不停重播。
看到這兒,我們對文章開頭的那兩個不推薦使用ASIO播放的建議總算是有了一個了解。ASIO對于音樂播放有意義的地方在于其通道的獨占性而并非低延遲,這一點WASAPI同樣可以做到,因此Peter更推薦用戶使用WASAPI。
總結:
對于一些看似已經成為習慣而不需要討論的東西,往往其中未必真的就不值得討論。對于一些看似有道理的結論,如果我們能抱著一顆窮根究底的心態,或許就會發現其中的不嚴謹之處。即使在討論和探究的過程中并不能推翻成論,但至少能讓自己掌握更多的知識,這不也是一件好事情嗎?