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功能,这款程式主要是在做录影撷取时需要与系统的声音一起录制时显的相当的方便。