Accelerated Audio On OS X
Accelerated Audio On OS X
- Subject: Accelerated Audio On OS X
- From: Brian Souder <email@hidden>
- Date: Tue, 30 Jul 2002 06:43:20 -0400
>
Message: 2
>
Date: Mon, 29 Jul 2002 11:44:40 -0700
>
Subject: Re: DMA Address Plug-In for HAL
>
From: Jeff Moore <email@hidden>
>
To: email@hidden
>
>
On Friday, July 26, 2002, at 03:56 AM, Brian Souder wrote:
>
>
> I have been looking at way to setup a sound card to do accelerated
>
> audio. At the moment it seems like there are two possibilities.
>
>
>
> 1) Make a HAL Plug-In which utlizes DMA Addresses to redirect the
>
> audio streams to the card directly. We weren't sure if the data would
>
> still pass through the G3/G4 processor before being passed to the card
>
> though. The goal would be to remove all or almost all of the CPU load
>
> from the the system.
>
>
HAL plug-ins allow for the implementation of custom device/stream
>
properties via the HAL's API. They have no access to the IO paths in
>
the HAL.
>
>
> 2) Change the Apple Audio Engine code to be for the Sound Card only,
>
> thus redirecting the output directly to the card. Again hopefully
>
> removing the audio load from the system.
>
>
>
> If you have a better idea how this might be implemented, please feel
>
> free to contact me. The documentation on the audio system in a lot of
>
> these areas is very light to say the least. If there is not already a
>
> system in place, now might be the time to work this out.
>
>
I don't see how redirecting the output to a card _after_ all the CPU
>
consuming DSP has already happened - well before the driver even gets a
>
chance to see the data - will lower the overall CPU load of processing
>
audio.
>
>
Perhaps you ought to take a step back and describe in detail the
>
hardware you have and _exactly_ what you want to do with it. Then we
>
will be in a better position to advise you on how to proceed.
>
>
--
>
>
Jeff Moore
>
Core Audio
>
Apple
>
>
--__--__--
>
Jeff:
I was afraid you were going to say that on both accounts.
Basically I have a project put together to create drivers for the Sound
Blaster Live for OS X. We should be completing the basic AC97 support
this week and begin testing on this portion of the drivers over the next
couple of weeks. The project is independent of Creative, and while they
do not discourage me writing the drivers, my engineering friends at
Creative can only help me to a point before they can not give me
additional information. I have found several papers on the the card
detailing some of the cards properties.
Basically the card has a high speed Tank RAM system which is coordinated
by the DSP, but ultimately receives control from the main host CPU - in
this case a G3 or G4 CPU. While the code has been written modularly, it
would be in our best interest to lay the foundation for a way to remove
as much audio load from the system as possible. This would obviously
benefit everything from games to iTunes by freeing up additional CPU
cycles. It has been difficult at best to find a good location to either
integrate with or insert code that would help us redirect load from the
system to the card. Our plan is to integrate with core audio as much as
possible. We also realize nothing like this has ever been done on the
Macintosh platform, so we might need to alter some code to get it to
work right until a better solution could be worked out with Apple. We
currently have 5 programmers working on the analog and digital I/O, a
single engineering working out the DSP, and I have a single programmer
trying to work the details of the accelerated audio out with me. Rather
than filling the core audio mailing list with details about how the card
works, I have deposited most of the documents on my mac.com account in
the folder EMU10K1.
http://homepage.mac.com/creativemail/index.html
The document "as10k1-manual.pdf" has details about the registers and the
TRAM engine.
The document "emu10k1-overview.pdf" - gives a good over view of the card
as well.
I don't think you will need much information from the documents. We
basically need to know the best place to redirect the flow of data at so
that the main CPU will do either less processing or minimal processing
on the data stream. We would also like to do this with the minimal
amount of changes to core audio. I would like to come up with a uniform
way of achieving this since I would eventually like to make drivers for
the Audigy and Extigy sound cards as well.
Brian Souder
email@hidden
_______________________________________________
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.