Skip to Content

Latency的探討--Zero Latency?? 專欄作家:方寶明

 什麼是錄音卡的latency? 當你在問這問題的同時,你必須先徹底了解你所謂的Latency指的是哪一個部分。當數位聲音在傳輸時,事實上有四種可能的Latency會產生。

a.ASIO Latency

ASIO是Steinberg公司所發展的一套Audio Device驅動程式,它能盡量避免經過Windows或Mac OS的處理,,自行在Audio Device與軟體之間建立一套更有效率的溝通方式。當然,Steinberg自行發展的Program是使用ASIO,而其他公司出的Program(ex:軟體合成器)如果要在ASIO的環境下使用,自然也需要去適應ASIO這標準。而"What's the latency"在這裡只跟有支援ASIO驅動程式的音效卡或可以吃ASIO標準的Program有關係。 
而這問題的答案則需要由音效卡製造商來決定。不同的音效卡在不同的取樣頻率有不同的"延遲":一般說來,更高的取樣頻率有更低的延遲,在監聽聲音之前,有很多取樣會先被丟到暫存器(Buffer)去處理,所以延遲會因此發生,Why? 因為通常通過暫存器的取樣量都一定(不同家的音效卡有不同的定義),所以,更高的取樣頻率,由於每秒取樣的數量愈大,那些一定量的取樣通過暫存器的速度也就越快,因此會有更低的延遲。通常暫存器的大小可以由錄音卡的面板所控制,所以更小的暫存器size會有更少的取樣會通過暫存器。只要您的系統可以處理更低的暫存器size,越小越好! 
當我們透過錄音軟體以"tape type"型式來播放聲音的同時,也會有可能產生監聽延遲的現象(而同樣會對監聽延遲造成影響的Windows Latency我們將在稍後討論,不過由於在此我們只能透過ASIO來達到這種監聽型式,所以ASIO的效率才是決定延遲的關鍵)。 例如:我們利用錄音軟體錄音時,在錄音StandBy的時候,我們可以聽見輸入樂器的聲音,這有點像是傳統的錄音卡座,但是如果我們在播放帶子時,我們是聽不到輸入的訊號,當我們在彈樂器的同時,除非我們在播放中又按下錄音鍵,才能監聽到輸入的樂器聲音,此時,這延遲的現象是導因於錄音軟體在"按下錄音鍵"和"聽到樂器音"之間訊號處理的問題。 
Steinberg聲稱可容許的延遲時間約在11ms-12ms之間,不過]您可以自行去判斷,在高取樣頻率時,可能只有3ms的延遲而已。所以假如想要用適當的錄音方法來監聽,提高Sample Rate這對硬碟錄音來說是值得推薦的方法。

The EASI and MAS Standard

Emagic與MOTU已經建立他們自己的標準,這和ASIO的驅動程式是差不多的,不過現在只有最新最高版本的Logic Audio使用與MOTU的MAS同等級的EASI驅動程式。在這些驅動程式下的軟體也同時支援Tape Type監聽型式。

b.Input Latency

另一種與監聽延遲無關的延遲,是發生在錄音卡處理或是數位化輸入訊號時所產生,或許我們應該說是......一種時間處理的程序。這種延遲通常發生在"已經錄製好的訊號"比"要錄進來的訊號"延後處理時所產生,通常當你已經錄製好一軌(或數軌)作參考監聽用,而又要再錄製一軌時會發生這種處理順序上的延遲,換句話說,第一軌在監聽時可能會延遲'x'個取樣,同理,第二軌可能就會延遲個 x + x個取樣。 
你可能很少聽人問到:"什麼是輸入延遲?"這種東西,大部分的人是這樣問的:這張卡的Frame準嗎?,可能是當這種問題發生時,大部分的人都歸咎到Frame的問題上,事實上這問題已經不只是Audio Card,甚至是Video擷取卡也常常發生這種問題,當然,市面上的確有在這方面零輸入延遲的卡,這當然各家有所不同。 
換句話說,如果要減低這種延遲,可能當你在錄製Live音訊時,先將所有的Kala Rough Mix成兩軌,可以改善多軌同時放音產生的輸入延遲,不過新的錄音卡由於Sample運算速度增快許多,通常都沒有嚴重的輸入延遲問題。

c.Windows Latency

第三種就是使用Windows多媒體驅動程式(也稱為MME)所產生的延遲。Windows的延遲可以高達50-75ms以至於"tape type"型式不適合只使用MME驅動程式。等待50-75ms的延遲時間實在是太長了!這就好像是某種delay。
像Steinberg的Cubase就有ASIO MME模擬模式(emulation mode),如同ASIO Diret-X一樣。若你使用支援ASIO的軟體,而你的錄音卡沒有提供ASIO的驅動程式時,那這能是您的最好選擇。假如你的音效卡使用Directx Driver,那ASIO DirectX就是你的最好選擇。

d.Latency with DirectX

DirectX是windows作業系統的一部份,它的作用基本上是讓應用程式與硬體之間的溝通更快速。它跟使用ASIO的目的是一樣的,只是效果沒有ASIO那麼好。DirectX經常更新,版本當然比windows(95、98)的隨機版要新。不過,對錄音來說,DirectX的某些部份是針對video與Audio的,像"DirectX Sound"是Direct-X的一部份。很多For PC的軟體合成器也是使用Direct-X,所以你的audio device驅動程式就必須要支援DirectX。

在Mac/PC上解決latency問題

數位錄音可以避免延遲發生的方法是直接監聽音效卡上的輸入訊號,有的音效卡都會有控制面板來讓你選擇使用卡上的輸入端當做你的監聽來源,或者指定由哪個輸出來監聽輸入訊號,如Frontier Design的就是。其他的音效卡則使用windows mixer,在控制台中多媒體選單中,用滑數點選聲音的選項。在MAC作業系統的控制面板的聲音選項,都可以用來改變聲音的監聽輸出。 
在MAC系統,因為Sound Manager限制只能使用一組stereo(雖然每組輸入輸出都可以被單獨選擇),ASIO就幾乎是大部份AUDIO Program所必備的了。現今在Mac上使用的大部份Audio Program都使用ASIO或類似的格式(例如:Emagic's EASI或是Motu's MAS)。雖然在監聽時只有一組立體輸出看來很夠用,不過如果我們買的卡有多組輸入輸出端子時,應該是不必被系統這樣子的限制,Windows本身也限制一組Stereo,但Program使用MME的規格就可以改變windows的原始限制,允許你設定多組數位端子。 
我們可以有效率的支援Windows MME的軟體(例如: Cakewalk)在錄音監聽硬體輸入的聲音。Steinberg在也在ASIO2版本中的Audio Setup中提供了直接監聽(Direst Monitoring)的選項來避免ASIO延遲的產生,不過有某些卡限制使用此功能。