聲音輸出裝置
程式輸出聲音的一般路徑:程式→音效卡→喇叭。這裡的音效卡對於程式就是聲音輸出裝置。以下簡稱「輸出」。
聲音輸入裝置
程式輸入聲音的一般路徑:麥克風→音效卡→程式。這裡的音效卡對於程式就是聲音輸入裝置。以下簡稱「輸入」。
實體與虛擬聲音裝置
音效卡就是實體聲音裝置。以下介紹的軟體可以創造對於程式來說如同音效卡的虛擬聲音裝置。以下簡稱「實體」或「虛擬」。[1]
在這裡,實體輸入可以視為麥克風;實體輸出可以視為喇叭。
ASIO
音效卡在Windows上驅動程式的一種運作方式。它使程式與音效卡可能達成有效率與高品質的互動。並非所有音效卡的驅動程式都有ASIO。即使音效卡的驅動程式沒有ASIO,你也可以使用ASIO4ALL。它可以將多個沒有ASIO的聲音裝置合併成一個ASIO裝置。大部份的程式不以ASIO輸出聲音,但ASIO有特殊的用途。[2]
DAW
數位音訊工作站。專門用來提供用電腦處理音訊所需的各種工具與便利介面的軟體。VST Host用來運行VST效果器插件的程式。提供DAW的部分功能,專注在效果器與聲音傳遞的配置上。
原本聲音裝置與程式間的關係如下:
但有的時候你希望音訊可以在程式之間傳遞。例如:
1. 處理麥克風聲音:(實體輸入)→[聲音處理程式]→[目標程式]
2. 處理程式聲音:[來源程式]→[聲音處理程式]→(實體輸出)
3. 對程式錄音:[來源程式]→[錄音程式]
或是
4. 將程式聲音分流:
[一部分程式]→[目標程式][一部分程式]→(實體輸出)
這個時候虛擬裝置就有很大的用處。以下介紹的軟體除了可以創造虛擬聲音裝置,也可以將虛擬輸出轉成虛擬輸入。這時聲音裝置與程式間的關係變成:
也就是說,你沒有辦法直接決定某個程式的音訊要傳遞到哪些程式去,你必須透過虛擬裝置。你只能決定哪些程式要輸出到某個虛擬裝置,以及哪些程式要輸入某個虛擬裝置。(某些程式可能無法輸出至虛擬裝置。)
以下介紹的四種軟體:Virtual Audio Cable(VAC)、Synchronous Audio Router(SAR)、ASIO Link與VoiceMeeter,他們的概念都跟上圖相同,但有一些細節的差異。1. VAC
VAC其實有兩個版本:一個是最早的Eugene Muzychenko做的Virtual Audio Cable;另一個是VB Audio的VB-Cable,其又經常自稱為Virtual Audio Cable。這兩個的運作方式是相同的,每一個虛擬輸出的音訊都必須送至對應的一個虛擬輸入。VAC(而不是VB-Cable)另外提供一個工具程式Audio Repeater,將輸入裝置的音訊複製至輸出裝置。因此關係圖是:
每一組的虛擬輸出只能、也一定要接到同一組的虛擬輸入。設定上非常簡單,但線路失去彈性或是必須變得複雜且多餘。[3]
你在VAC最有可能碰到的問題是無法整個保存多個Audio Repeater的設定與聲音延遲。VAC(而不是VB-Cable)宣稱在正確的設定下,可以達成低延遲。
2. SAR
SAR必須搭配DAW或VST Host使用。你需要知道如何使用其一。SAR將虛擬裝置與只有一個ASIO實體裝置導入DAW / VST Host中,線路安排則由DAW / VST Host負責。他們的關係圖是:
你可以嘗試利用ASIO4ALL將多個實體裝置合併成一個,但可能會在某些裝置組合上發生奇怪的事情。
3. ASIO Link
ASIO Link與SAR類似,但多了內層的虛擬聲道。與SAR不同在於:外層虛擬裝置與只有一個ASIO實體裝置的線路安排由ASIO Link負責,而不是DAW / VST Host。內層虛擬聲道的線路安排才是由DAW / VST Host負責。ASIO Link可以搭配也可以不搭配DAW / VST Host使用,取決於要不要使用到他們的功能。它的關係圖是:
ASIO Link外層虛擬裝置數量是固定的(安裝時選擇16個2聲道或4個8聲道)、內層虛擬聲道數量是有限的(啟動時選擇1~64個聲道)。ASIO Link與SAR同樣只能使用一個ASIO實體裝置,上述的ASIO4ALL方法同樣可以嘗試。
4. VoiceMeeter
VoiceMeeter不使用DAW / VST Host,而是用自己的控制面板來管理線路。根據不同的版本,它最多可以使用5個不一定要有ASIO的實體裝置與3個虛擬裝置。它的關係圖如下:
它可以對每一個輸入與輸出分別加上內建的效果器。(DAW / VST Host也附帶很多效果器)
(虛擬輸出1)→(虛擬輸入1)→[Audio Repeater]→(虛擬輸出3)
(虛擬輸出2)→(虛擬輸入2)→[Audio Repeater]→(虛擬輸出3)
(實體輸入)→[Audio Repeater]→(虛擬輸出1)→(虛擬輸入1)(實體輸入)→[Audio Repeater]→(虛擬輸出2)→(虛擬輸入2)