Re: Low level audio
Re: Low level audio
- Subject: Re: Low level audio
- From: William Stewart <email@hidden>
- Date: Wed, 30 Jun 2010 11:23:07 -0700
On Jun 30, 2010, at 3:24 AM, Flavio Antonioli wrote:
> Hi to all,
>
> I'm planning to implement low level audio I/O on OSX. It's not entirely clear from reading the documentation which is the best mechanism to access audio devices for pro-audio type application, without the system inserting middle-man layers, such as a software mixer, and passing samples data that go directly to/from the audio DAC/ADCs (without bit depth conversions, floats etc.), or if this is even possible.
> Is AUHAL the recommended method?
AUHAL gives you a direct path to the IOAudio drivers. It sits on top of AudioDevice, and it calls you for I/O on the IOProc that an audio device generates.
The only mixing that is done is a "just in time" mix in the audio driver - there is no latency penalty for such an operation; this happens in and for the time-slice you are currently performing.
The advantage of using AUHAL is that it will present the disparate topology of audio devices in a consistent manner (as a single buffer of de-interleaved, per channel, data). If you manage the client/device sample rates, there is no rate conversions or other conversions performed. It also manages whether streams are enabled or not (so the I/O itself is efficient). It does alot of busy work for you, so that is what I would use.
Bill
> Or is still AudioHardware.h & AudioDeviceXX (i.e. AudioDeviceAddIOProc) a viable/supported solution for low level audio?
>
> Thanks for any info.
>
> Flavio.
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Coreaudio-api mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden