Audio Cascade on Mac OSX – 處理所有的Mac聲音

Audio Cascade on Mac OSX – 處理所有的Mac聲音

Play and Record Audio

原先在播放或錄製聲音時會由APP透過Framework與Audio Driver溝通,Audio Driver收到訊息後再與硬體ADC溝通,需要設定的話就會進行設定,要接收或傳送資料到Buffer就會與硬體進行寫入或讀取的動作,這是一般會Mac OSX聲音系統中會做的流程,如果我們要進行聲音的Cascade就必需要透過Driver這方先進行修改,再由APP配合將聲音串起來。

Cascade

Mac上使用Cascade的效果必需要Driver + APP 的配合,利用Driver接收所有的聲音播放,再將它當做APP進行錄音時的來源,最後使用自制的APP將Input Passthrough Output的方式完成串接的動作,如此一來在選擇音效輸出時,選擇到自定的Driver時就能將聲音發送到硬體,也能對播放的聲音的資料進行處理。

Driver

自行試做組Audio Driver,這方面必需要了解到怎麼製做Driver,細節可以參考OS X and iOS Kernel Programming的第十二章來制作一個與硬體無關的Audio Driver,再使用這支軟體的Audrio Device將輸出資料流轉到輸入資料流將資料輸出。

APP

首先使用時必需要將系統預設的輸出裝置換成自置的Audio Driver:

之後播放聲音時會將聲音導入自置的Audio Driver名為My Audio Device,之後再開啟動自置的APP完成整個Cascade的動作。如果一開始不知道怎麼自置Input Passthrough Output時,可以參考Apple提供的Sample CodeCAPlayThrough,下載Sample Code後自行Build一下就能直接使用。

如上圖中顯示的,將Input Device指定成自置的Driver My Audio Device,Output Device指定成硬體輸出的狀置,這裡是Built-in Output,按下Start Play Through就能聽到聲音。所以利用播放軟體播放一首音樂例子來解釋,整個流程區塊如下:

整個示意圖從上排的播放軟體行為,再接上自置APP來串聯的行為能清楚的看到要將Audio Cascade的例子,如果我們要將有的聲音進行處理時,可以在自置的APP中加入聲音處理的程序就能將所有的聲音增加或是修正的效果。

相關APP

Boom Player

圖1 圖2

這款前面提到Cascade是相當標準的應用,主要它是可以將原本的聲音Bootser,加強原本聲音的輸出音量,也能針對每款應用程式的加強類型,也能處理單檔的音效檔案。

Soundflower

SoudflowerBed(官方圖片) Soundflower Driver

Soundflower本身是一支Driver需要再配合SoundflowerBed APP才能達成Cascade功能,這款程式主要是在做錄影擷取時需要與系統的聲音一起錄製時顯的相當的方便。