E. coreaudio, About coreaudio™ technology, How the coreaudio driver works – Metric Halo Mobile I/O User Manual
Page 329: Coreaudio transport and sample rates, 329 how the coreaudio driver works, 329 coreaudio transport and sample rates
329
E. CoreAudio
About CoreAudio™ Technology
CoreAudio is Apple® Computer’s technology standard for interfacing applications to multichannel audio hard-
ware with professional quality. Apple defined the standard and made it the primary interface for audio in OS
X. It provides the mechanism for making high-resolution, multi-channel, low-latency connections between
audio hardware and audio applications on Mac OS X.
All Mac OS X computer applications provide support for communicating with audio hardware via CoreAudio.
As such, it was the natural standard for Metric Halo to support for interfacing with Mobile I/O. Applications
(programs) that communicate with hardware via CoreAudio drivers are called CoreAudio Hosts.
The CoreAudio standard is quite rich and provides a number of places where host applications may or may not
properly support the specification. There are some hosts that were implemented early that did not get support
for multichannel/multistream devices implemented correctly. Most of these hosts have been fixed or are in the
process of being fixed now. If you encounter any problems with specific hosts, please let us know about it –
but also please let the host vendor know about it. CoreAudio puts many more requirements on hosts than it
does on drivers, so it is very likely that any such problems are in the host.
Metric Halo has done extensive testing with the major CoreAudio hosts, and some of the minor ones, and has
worked to ensure maximum compatibility with all hosts. Even if you are using a host that is not specifically
discussed here, you are unlikely to encounter problems. If you do, please file a bug report with both Metric
Halo and the developer of the CoreAudio host. Please send bug reports to support at mhsecure.com with the
subject MIOBUG Report.
How The CoreAudio Driver Works
The Mobile I/O CoreAudio driver is provided by Mac OS X KEXT. The KEXT is a Mac OS X kernel extension.
This extension enhances the Mac OS operating system to provide support for communicating with the Mobile
I/O hardware. The Mobile I/O driver is implemented as a KEXT due to the requirements of CoreAudio.
The KEXT is provided in a Mac OS X bundle called “MobileIODriver.kext”. This bundle is installed in the /
System/Library/Extensions folder. Since this folder is managed by the system, you will have to have adminis-
trator access on the computer to install the driver.
The CoreAudio driver provides the required information for CoreAudio to discover and control Mobile I/O.
Once the driver has been installed, CoreAudio will automatically find Mobile I/O units as they are attached to
the computer and will publish the availability of the hardware to all interested CoreAudio hosts.
CoreAudio is inherently a multiclient interface — more than one CoreAudio host can communicate with the
hardware at the same time. Multiple hosts can receive the audio from a Mobile I/O at the same time, and
multiple hosts can send audio to the Mobile I/O at the same time. When multiple hosts send audio to the
hardware at the same time, CoreAudio will automatically mix the audio before it is sent to the Mobile I/O.
While this multiclient operation is a very cool feature of CoreAudio, and can be very helpful for many oper-
ations, you must be careful about unintended interactions. In particular, it is very easy to set up the system
such that sounds from programs like email clients and other productivity tools will be mixed into your main
audio stream (this happens when you set up the default audio output path so that you can use iTunes with the
Mobile I/O). If you are not careful, you can check your mail and have the “Mail received” sound printed into
the bounce that you are doing in the background.
CoreAudio Transport And Sample Rates
CoreAudio supports a wide variety of audio transport standards. As a practical matter, CoreAudio supports
multichannel transport of 24 bit audio via floating point streams at virtually any sample rate. Many hosts only