I had 2 goals in reconstructing the driver
- Fix the choppy sound I was getting with Maxxuss' driver and an old build of AppleAC97Audio.
- Make sources available for this driver so it can be rebuilt for future OS X updates.
Three packages are attached below
- AppleAC97Audio.kext.tar.gz contains a full current rebuild of AppleAC97Audio. The new ES137x driver is called EnsoniqAudioPCI.kext and can be found under Plugins. If you want to try this driver with your existing build of AppleAC97Audio, you can pluck it from there and install it as a plugin.
- AppleAC97Audio-5.tar.gz contains updated sources for building AppleAC97Audio including an xCode 3.1 project file.
- EnsoniqAudioPCI_Src.tar.gz contains the sources for the ES137x driver.
As for the choppy sound issue - The newly rebuilt driver (including AppleAC97Audio) is giving me much smoother sound than the driver I had installed. I can't quite figure out why, since in theory the driver is functionally the same. Apple's audio architecture is designed on having the low-level driver implement a DMA ring buffer and deliver interrupt notifications whenever the ring buffer wraps around. The high-level audio layers use a complex timing scheme to estimate the drain rate of the buffer and keep it filled in order to provide continuous audio. In a virtual machine, this timing scheme can get derailed due to inaccuracies in the guest's emulated timing and interrupt delivery mechanisms.
If you play audio in the guest, you should keep the VM window as the foreground window in order to give the VM threads highest priority.
The sound is still not quite as good as playing directly on the host, but this may be due in part to HD audio sound effects available in the host driver.
Edit [8/20/2009]: Uploaded version 1.0.1 - see post #8.
Edit [8/20/2009]: I added an installer (EnsoniqAudioPCI.mpkg.tar.gz). There are two installation options - either install the full AppleAC97Audio.kext, or EnsoniqAudioPCI.kext as a plugin to an existing AppleAC97Audio.kext.
- Primarily a reconstruction of MaxxussAC97AudioES137x.kext.
- Maxxuss' driver is a hybrid of existing Apple AC97 drivers for other chipsets and the es137x driver in the FreeBSD source tree. I took much of the source code from these sources directly instead of decompiling.
- The FreeBSD driver is based on an older Linux driver.
Edit: (11/8/2009) Attachments removed. See this page for the most recent version.
Previous Download Counts:
- AppleAC97Audio.kext.tar.gz 194
- AppleAC97Audio-5.tar.gz 126
- EnsoniqAudioPCI_Src.tar.gz 80
- EnsoniqAudioPCI.mkpg.tar.gz 306