How to access the built-in soundcard on Mac OS X 10.4+

Since Mac OS X 10.4 (Tiger), the built-in soundcard of the Mac is formally represented as separate

input and output devices. On the MacBook for example, there are two input devices (named Built-in

Microphone and Built-in Input) and a mutable output device (Built-in Output which appears unter the

names Line-Out or Internal Speakers in the sound preferences).

In SuperCollider, you specify your sound card in the device field of the ServerOptions (see the

help file for ServerOptions). However, you cannot distinguish between an input and an output

device. Therefore, to use your built-in microphone for input and your built-in headphones for output,

you need to create a virtual "aggregate" device (a virtual device that wraps two or more other

devices). If you create an aggregate of your microphone and headphones, you can use this single

aggregate device as a soundcard for SuperCollider. You need to set up this aggregate device only

once.

To do so, you have to open the Audio MIDI Setup application (in /Applications/Utilities)

"open -a 'Audio MIDI Setup'".unixCmd; // execute this to launch it

– you should do this from an user account with administrator privileges. From the Audio menu

choose Open Aggregate Device Editor and click on the Plus button to add a new aggregate

device. Double click on its name in the list (by default "Aggregate Device") and use a more specific

name, for example "Built-in Audio". Then check the Use column for the devices you want to combine,

that is your microphone or line input and the built-in output. Here is would it should look like:

Close the editor and quit the Audio MIDI Setup. Now you need to tell SuperCollider to use your new

aggregate device. A good place to do this is your default startup file so that SuperCollider will

automatically use the new device every time. The startup file is called startup.rtf and is placed in

the folder ~/Application Support/SuperCollider/, where "~" stands for your home folder.

If you haven't created such a file yet, create a new folder named SuperCollider in your

~/Application Support/ folder, open a new empty document in SuperCollider and save it as

startup.rtf in this new folder (~/Application Support/SuperCollider/startup.rtf).

Add these lines to the startup file:

Server.local.options.device = "Built-in Audio";

Server.internal.options.device = "Built-in Audio";

to cover both the localhost server and the internal server. Recompile the SuperCollider library

(Cmd+K). Now when booting either server, if all goes well, you should find these lines in

SuperCollider's post window:

[...]

"Built-in Audio" Input Device

[...]

"Built-in Audio" Output Device

voilà!

known issues: QuickTime (as of v7.1) has problems using the aggregate sound device (it will take a

few seconds before each sound playback starts). Therefore you probably do not want to use your new

aggregate device as your system's default device. Note that when you specify a sound device in

SuperCollider's ServerOption, there is no need to use the aggregate device as the system

preference's default device.