Notes on Core Audio Implementation of PortAudio by Phil Burk and Darren Gibbs Document last updated October 18, 2002 WHAT WORKS Output with very low latency, <10 msec. Half duplex input or output. Full duplex The paFLoat32, paInt16, paInt8, paUInt8 sample formats. Pa_GetCPULoad() Pa_StreamTime() KNOWN BUGS OR LIMITATIONS The iMic supports multiple sample rates. But there is a bug when changing sample rates: Run patest_record.c at rate A - it works. Then run patest_record.c at rate B - it FAIL! Then run patest_record.c again at rate B - it works! DEVICE MAPPING CoreAudio devices can support both input and output. But the sample rates supported may be different. So we have map one or two PortAudio device to each CoreAudio device depending on whether it supports input, output or both. When we query devices, we first get a list of CoreAudio devices. Then we scan the list and add a PortAudio device for each CoreAudio device that supports input. Then we make a scan for output devices.