Re: Low level audio
Re: Low level audio
- Subject: Re: Low level audio
- From: Brian Willoughby <email@hidden>
- Date: Wed, 30 Jun 2010 13:40:18 -0700
On Jun 30, 2010, at 11:23, William Stewart wrote:
On Jun 30, 2010, at 3:24 AM, Flavio Antonioli wrote:
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.
In other words, what Bill is suggesting is one thin layer above the
absolute bottom that you have access to in CoreAudio. You could go
that one layer deeper, but then you'd have a massive amount of extra
work to do, and you'd really gain nothing in terms of performance. I
remember writing to that layer before AUHAL existed, and it's not
pretty.
Brian Willoughby
Sound Consulting
_______________________________________________
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