Developing a PCI Audio Driver
Developing a PCI Audio Driver
- Subject: Developing a PCI Audio Driver
- From: Nathan Aschbacher <email@hidden>
- Date: Wed, 31 Jul 2002 15:40:48 -0700
I also posted this in the Darwin Driver mail list, but I wanted to post here
as well to get the full exposure and expertise of the MacOS X development
community.
Hi,
I'm part of a small group of independent developers that's working on
building an audio driver for the SoundBlaser Live! by Creative Labs. We're
using the Linux drivers to get the register and configuration information
that we need and I'm to understand that basic functionality of the driver is
near finished. This means that the card will be used to input and output
the already processed audio after it's been converted from the OS's 32-bit
floating point format to the native format of the SB Live!'s EMU10k1 audio
processor.
The question that I have is one critical to the development of this driver
and it's future as well as the future of audio on MacOS X.
Is it possible to prevent the system's main CPU from pre-processing audio
data/signals so that this can be offloaded to a custom audio chip like the
EMU10k1 and subsequent generations? What I'm trying to do is determine the
possibility and the implementation of an accelerated audio driver for MacOS
X. The intention for this is to try and minimize the CPU load during the
playing of audio. Microsoft's DirectSound driver API offers the ability to
do this, where all audio output is offloaded to the sound processor instead
of running on the main CPU. Though previously impossible under OS 9, I was
hoping that a similar capability would be available in MacOS X's completely
rebuilt audio system. I suppose in simplest terms I'm trying to create a
driver for MacOS X that can accelerate CoreAudio just as a graphics card
vendor would build a driver to accelerate CoreGraphics. The problem is that
the hooks for graphics acceleration are evident and documented. No similar
system seems to be in place for Audio under MacOS X, or at least it's not
obvious.
After studying the IOAudioEngine documentation as well as the
IOAudioEngineUserClient docs and the Audio HAL I've found it difficult to
determine at what point the CPU actually starts to work with the audio data.
It seems like it's before the data ever reaches the Audio HAL which I guess
means that there's little hope of being able to remove that burden from the
CPU, but I was hoping someone would be able to direct me otherwise.
If it's still unclear what I'm trying to do and why I'd be happy to explain
further, because this would seem like a critical system to be in place if
MacOS X is ever going to be able to take non-trivial advantage of 3rd party
consumer audio cards.
Still Hopeful,
Nathan Aschbacher
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.