Jump To:
Reference Library: Audio
Core Audio's Hardware Abstraction Layer (HAL) acts as the interface between an audio device driver and an audio application. The HAL supports native multichannel audio in a manner that is scalable to future high-resolution formats. Developers can create audio devices compatible with Apple products and use HAL and I/O Kit APIs to create software to access audio devices.

View all Hardware & Drivers Reference Library.
Document Descriptions
On Off
Display

Sort by
Title
Sort by
Resource Type
Sorted by
Date
FireWire Audio User Library Framework Reference (HTML)
Describes the API that supports user-space access to FireWire audio devices and enables the creation of virtual FireWire audio devices.
Reference 2008-04-08
I/O Kit Framework Reference (HTML)
Describes the I/O Kit classes that support non-kernel access to I/O Kit objects through the device-interface mechanism.
Reference 2008-04-08
Kernel Framework Reference (HTML)
Describes the APIs and classes (including I/O Kit families) that support kernel-resident device drivers.
Reference 2008-04-08
Core Audio Glossary (HTML) (PDF)
Defines general digital audio terms as well as terms specific to Apple's Core Audio technology.
Reference 2008-02-08
SimpleUserClient (HTML) (DMG) (ZIP)
Shows how to create a user client for an I/O Kit kernel driver.
Sample Code 2007-05-31
Unable to select input device in AU Lab (HTML)
QA1526: AU Lab only supports physical device singletons.
Technical Q&As 2007-05-17
Using AudioDeviceRead in Mac OS 10.4 (HTML)
TN2113: How to use AudioBufferLists with AudioDeviceRead in Tiger and beyond.
Technical Notes 2006-11-29
SimplePlayThru (HTML) (DMG) (ZIP)
Use the HAL's Audio Output Unit (AUHAL) for device input and output on a single device (play-thru)
Sample Code 2006-10-25
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Technical Q&As 2006-02-22
Audio Device Driver Programming Guide (HTML) (PDF)
Explains how to develop kernel-resident drivers for audio devices.
Guides 2006-01-10
AudioCDSample (HTML) (DMG) (ZIP)
Demonstrates how to discover audio CDs and access the TOC information presented by the CD-DA filesystem.
Sample Code 2005-10-04
SampleUSBAudioPlugin (HTML) (DMG) (ZIP)
USB audio plugin that performs a lowpass filtering operation on audio streamed through an audio USB Device.
Sample Code 2005-03-07
Obtaining the name of an external MIDI Device from a MIDI Endpoint (HTML)
QA1374: Get the names of external MIDI Devices from MIDI Endpoints.
Technical Q&As 2004-12-01
Available FireWire Isochronous Bandwidth (HTML)
QA1356: Discusses attempting to "pre-flight" an isochronous bandwidth allocation request by reading the currently available bandwidth.
Technical Q&As 2004-07-07
Generating an NMI Without a Programmer's Switch (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
Technical Q&As 2004-04-26
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
Technical Q&As 2003-10-28
VelEng FFT (HTML) (DMG) (ZIP)
G4 Velocity Engine implementation of Fast Fourier Transform (FFT) and associated convolution/correlation routines.
Sample Code 2003-01-14
Retain Counts of io_object_t Objects in IOKit.framework (HTML) (日本語 HTML)
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
Technical Q&As 2002-09-04
IODeviceTree & the IORegistry (HTML) (日本語 HTML)
QA1120: Describes the IODeviceTree plane in the Mac OS X IORegistry.
Technical Q&As 2002-02-13
IOKit Framework Headers (HTML) (日本語 HTML)
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Technical Q&As 2002-01-15
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
Technical Q&As 1999-11-15
When to use PCMCIA, PC Card, and CardBus (HTML)
HW77: Explains the differences between PCMCIA, PC Card, and CardBus.
Technical Q&As 1999-11-15
Are the Name Registry device tree nodes unique? (HTML)
Deprecated - HW64: Discusses whether Name Registry nodes copied from the Open Firmware device tree are unique.
Technical Q&As 1999-10-11
Sample code for allocating an amount of dictionary space (HTML)
HW71: Discusses the allocation and the setting of memory for Dictionary space in Open Firmware.
Technical Q&As 1999-10-11
What is the "dump" word and how do I use it? (HTML)
HW68: Describes the function of the Open Firmware word "dump" and how it can be used.
Technical Q&As 1999-10-11
What numeric base is the default for the Open Firmware user interface? (HTML)
HW65: Describes how the default numeric base used by the Open Firmware user interface is hexadecimal.
Technical Q&As 1999-10-11
Determining Open Firmware configuration variables (HTML) (日本語 HTML)
HW56: Discusses how to determine the Open Firmware variables on a system.
Technical Q&As 1999-03-29
Expansion ROM device properties (HTML) (日本語 HTML)
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
Technical Q&As 1999-03-29
Why did the name of the PCI bridge change? (HTML) (日本語 HTML)
HW59: Explains the name change of the PCI bridge to the generic name "pci" in Open Firmware.
Technical Q&As 1999-03-29
Difference between using Restart or Shut Down in the Finder's Special menu in Open Firmware (HTML) (日本語 HTML)
HW47: Explains the differences between using Restart or Shut Down on Open Firmware
Technical Q&As 1999-02-15
PCI Type 1 Cycles (HTML)
HW26: Describes the circumstances when the PowerMac generates a Configuration Type 1 command.
Technical Q&As 1995-07-15