Re: Does anyone get an AudioDevice that has both input and output channels? (question is related to software play through)
Re: Does anyone get an AudioDevice that has both input and output channels? (question is related to software play through)
- Subject: Re: Does anyone get an AudioDevice that has both input and output channels? (question is related to software play through)
- From: Jeff Moore <email@hidden>
- Date: Wed, 18 Jul 2001 18:06:20 -0700
on 7/18/01 3:29 PM, B.J. Buchalter <email@hidden> wrote:
>
If individual devices don't support this, so be it -- they
>
are not suitable for professional audio work.
Tell that to the folks working with USB devices. They might take exception
to this. As Bill said, the way the USB audio spec works makes this situation
come up immediately. I daresay that there will be lots of folks doing pro
audio type things using USB devices.
on 7/18/01 3:53 PM, Karl MacMillan <email@hidden> wrote:
>
It is not a matter of 'extra work' but rather of efficiency. The
>
buffering will have a very negative effect on latency. Of course a
>
general solution is required, but for the common case (a single sound
>
card) it would be nice if one callback could be provided.
The architecture totally supports it. That's why IOProcs have both input
data and time stamps and output data and time stamps. I quote from the
documentation in <CoreAudio/AudioHardware.h>:
"The basis of this API is the Audio Device. It provides a unit of
encapsulation for IO, timing services and properties that describe and
control the device. Specifically, an Audio Device represents a single IO
cycle, a clock source based on it, and all the buffers synchronized to it."
And finally, let me add one final note about buffering. If you have an audio
system capable of deliering the level of performance being delivered on X,
buffering up to provide extra features at the cost of latency becomes a very
reasonable approach. Right now, you can run the audio HAL with buffers at 64
frames of 44100 sample rate audio. This is a duty cycle of a little less
than 1.5 milliseconds. If you add a buffer of latency to provide some cool
features, like play through from any input device, you are still only
talking about 3 milliseconds of latency here on our built-in hardware over
the input latency. This is still tons better performance than the ASIO
driver for the built-in hardware on 9 (which last I checked had a minimum of
12 milliseconds of latency).
--
Jeff Moore
Core Audio
Apple