• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Low level audio
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


References: 
 >Low level audio (From: Flavio Antonioli <email@hidden>)
 >Re: Low level audio (From: William Stewart <email@hidden>)

  • Prev by Date: Re: Audio Queue metronome
  • Next by Date: Re: How can I get the MixerHost sample app?
  • Previous by thread: Re: Low level audio
  • Next by thread: AudioFileReadPackets cache policy
  • Index(es):
    • Date
    • Thread