Jump to content

[VMware] Ensoniq AudioPCI driver for Leopard v1.0.1


65 posts in this topic

Recommended Posts

I have an idea. I'll make an experimental version with a dirty hack to force IOAudioEngine to run its erase head straight after every interrupt so as to maximize the time window for the user-client to refill the buffer. I'll test it so see that it doesn't crash or reduce playback quality compared to v1.0.1. If it's ok, I'll post it and people still getting choppy playback can try it and see if it helps.

Link to comment
Share on other sites

Here we go...

 

I've bumped the version number to 1.0.2.

 

If version 1.0.1 is working for you, no need to install this one. It's experimental.

 

  1. IOAudioEngine's erase head now gets run within about 0.1 millisecond of each interrupt. The interval between interrupts is around 340 milliseconds, so the user-client has almost the entire window to continue refilling the buffer.
  2. I've added a kernel boot parameter "es_oso". oso stands for "output sample offset". It's the number of samples that the user-client tries to stay ahead of the playback channel. The default is 64. If you're still having problems, try increasing this parameter by factors of two --- 128, 256, ...., 131072, and see if that does anything.

 

Increasing the number of interrupts per buffer still screws it up and I still don't get why.

 

Ciao.

 

Edit (11/8/2009): Attachments removed. See the link in Post #1 in this thread for the latest version.

Link to comment
Share on other sites

Here we go...

 

I've bumped the version number to 1.0.2.

 

If version 1.0.1 is working for you, no need to install this one. It's experimental.

 

  1. IOAudioEngine's erase head now gets run within about 0.1 millisecond of each interrupt. The interval between interrupts is around 340 milliseconds, so the user-client has almost the entire window to continue refilling the buffer.
  2. I've added a kernel boot parameter "es_oso". oso stands for "output sample offset". It's the number of samples that the user-client tries to stay ahead of the playback channel. The default is 64. If you're still having problems, try increasing this parameter by factors of two --- 128, 256, ...., 131072, and see if that does anything.

 

Increasing the number of interrupts per buffer still screws it up and I still don't get why.

 

Ciao.

 

How do you change the "es_oso" kernel boot parameter?

Link to comment
Share on other sites

@Zenith >> thanks for this excellent release bro.

I am using VMWare Workstation 6.5.3 in my Windows 7. I have set up Mac OS X Leopard as a virtual machine..initially no device was listed under sound output (naturally no audio)...then i found this thread and installed EnsoniqAudioPCI.mpkg.tar.gz in Mac & voila...sound got enabled :)

 

as u can see in the image below..its now displaying a device for sound output..

 

rt3kba.png

 

only prob is audio quality is not at all good..when i play songs via itunes..sound gets distorted...lot of disturbance ;)

any solution for this plz?

 

Thanks in advance mate.

Link to comment
Share on other sites

Here we go...

 

I've bumped the version number to 1.0.2.

 

If version 1.0.1 is working for you, no need to install this one. It's experimental.

 

  1. IOAudioEngine's erase head now gets run within about 0.1 millisecond of each interrupt. The interval between interrupts is around 340 milliseconds, so the user-client has almost the entire window to continue refilling the buffer.
  2. I've added a kernel boot parameter "es_oso". oso stands for "output sample offset". It's the number of samples that the user-client tries to stay ahead of the playback channel. The default is 64. If you're still having problems, try increasing this parameter by factors of two --- 128, 256, ...., 131072, and see if that does anything.

 

Increasing the number of interrupts per buffer still screws it up and I still don't get why.

 

Ciao.

 

just installed these on my i7 920 vmware 10.5.8 OSX system. I can hear some improvements, still an occasional hickup but not as bad as it was before. Hard to tell since it was already pretty good before. I think you are definitely going into the right direction... I have not fiddled with kernel boot parameters yet. I guess I use it like this at the darwin prompt?

es_oso=128 or add it into the com.apple.boot.plist under kernel flags?

thank you

Link to comment
Share on other sites

I have not fiddled with kernel boot parameters yet. I guess I use it like this at the darwin prompt?

es_oso=128 or add it into the com.apple.boot.plist under kernel flags?

Yes, exactly. At the bootloader, click on the keyboard during the time window and type a kernel boot param "es_oso=number". You can also add to com.apple.boot.plist under the boot options key, either with an editor or with a tool like "OSX86 Tools".

 

PS

There's one more dose of witch-medicine I can try on the driver which is to double the buffer size from 128KB to the maximum of 256KB. This seems like a cop-out but why not. Maybe it's the faster CPUs that are having the problems. It's possible that the glitches are not caused by user-apps falling behind when filling the buffer but instead by running ahead and mixing future samples into past samples in the mix buffer.

Link to comment
Share on other sites

Yes, exactly. At the bootloader, click on the keyboard during the time window and type a kernel boot param "es_oso=number". You can also add to com.apple.boot.plist under the boot options key, either with an editor or with a tool like "OSX86 Tools".

 

PS

There's one more dose of witch-medicine I can try on the driver which is to double the buffer size from 128KB to the maximum of 256KB. This seems like a cop-out but why not. Maybe it's the faster CPUs that are having the problems. It's possible that the glitches are not caused by user-apps falling behind when filling the buffer but instead by running ahead and mixing future samples into past samples in the mix buffer.

interesting experiment. run a sound file with on click in it that spans 2minutes with the click for a msec. run the file in a sound editor and listen when the click occurs and see whether it falls right onto the peak in the sound editor :)

 

edit: finally put my headphones on to listen carefully. the scratch sound (it does exactly sound like a scratch on an old vinyl) is very regular. when there is silence there is not scratch sound, once sound comes on, it comes every 1-2 seconds or so. It also has an amplitude relative to the music that plays at the moment. nothing else on mine, just that scratch sound. when played on host system, the songs play fine (sanity check - somebody scratched my mp3 :) ).

Link to comment
Share on other sites

  • 2 months later...
Yes, exactly. At the bootloader, click on the keyboard during the time window and type a kernel boot param "es_oso=number". You can also add to com.apple.boot.plist under the boot options key, either with an editor or with a tool like "OSX86 Tools".

 

PS

There's one more dose of witch-medicine I can try on the driver which is to double the buffer size from 128KB to the maximum of 256KB. This seems like a cop-out but why not. Maybe it's the faster CPUs that are having the problems. It's possible that the glitches are not caused by user-apps falling behind when filling the buffer but instead by running ahead and mixing future samples into past samples in the mix buffer.

 

Please do try this :thanks_speechbubble:

I'm running a 2.4GHz Core 2 Quad Q6600 (the VM detects a 4.3GHz Core 2 Solo), and I can't get the stuttering to go away. Tried the MIDI app, tried lots of different values for es_oso, etc. -- nothing seems even to change the amount of stuttering.

 

In fact, I'll try underclocking my CPU...

 

Thanks very, very much for all you've done! :thumbsup_anim:

Link to comment
Share on other sites

  • 4 weeks later...
  • 3 weeks later...
Yes, exactly. At the bootloader, click on the keyboard during the time window and type a kernel boot param "es_oso=number". You can also add to com.apple.boot.plist under the boot options key, either with an editor or with a tool like "OSX86 Tools".

 

PS

There's one more dose of witch-medicine I can try on the driver which is to double the buffer size from 128KB to the maximum of 256KB. This seems like a cop-out but why not. Maybe it's the faster CPUs that are having the problems. It's possible that the glitches are not caused by user-apps falling behind when filling the buffer but instead by running ahead and mixing future samples into past samples in the mix buffer.

 

Zenith,

 

Great job, just one thing thats on my mind. Before I continue I already configured OS X on VMware Workstation following Donk's guide and installing your drivers.

 

I realized that the choppy sound problem could be because OS X doesn't recognize correcty processor and FSB. Possible solution is to install latest Chameleon bootloader since they solved A LOT problems (including CPU and FSB recognition).

 

I would try it by myself but I have deleted my OS X virtual machine since I'm desperate for hard disk space : )

 

Please try it!

 

Cheers and keep up with excellent work!

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...
Thanks for the AC97 driver rebuild. I'm using it on the P4 hackintosh in my sig and it works great.

 

The old driver I was using was filling up the logs with debug info and slowing down my boot time. This one doesn't.

 

 

I am trying to get this driver to work with Tiger 10.4.8 in VMWARE 7. Is this driver leopord dependant or will it work in Tiger? I have tried the old maxxus and this driver. I just do not have a clue of how I can get sound to work. I do not want to switch to leopard, I want to find a way to get sound to work in Tiger. Any clue of how I can get this to work or your driver to work with Tiger.

 

Any help would be greatly appreciated.

 

Thanks already!

Link to comment
Share on other sites

I am trying to get this driver to work with Tiger 10.4.8 in VMWARE 7. Is this driver leopord dependant or will it work in Tiger? I have tried the old maxxus and this driver. I just do not have a clue of how I can get sound to work. I do not want to switch to leopard, I want to find a way to get sound to work in Tiger. Any clue of how I can get this to work or your driver to work with Tiger.

 

Any help would be greatly appreciated.

 

Thanks already!

 

It was written for Leopard. You could try getting the code and re-compiling for Tiger, but not sure how much you would need to change if anything.

Link to comment
Share on other sites

... ES137x audio driver. It can be used for sound support when running OS X Leopard as a VMware guest...

 

May be a stupid question, but is it possible to use the driver in regular boot, i.e. without VM Ware? I loaded kexsts, but no sound card shows up in my SL. No errors on console either.

Link to comment
Share on other sites

  • 1 month later...
After much trial & error, I've figured out the reason for the choppy audio, and came up with a solution which appears to work. I've uploaded the new version and attached to the original post.

 

1. Bumped version number for EnsoniqAudioPCI.kext from 1.0.0 to 1.0.1.

2. Remove the old kext and install this one in its place.

3. Remove any setting of "pciSound.DAC2InterruptsPerSec" from your vmx file.

 

 

 

I've also modified AppleAC97Audio.kext so that it can drive the chip at a 44.1KHz sample rate. Previously it was limited to driving the chip at 48KHz. This isn't critical, since both sample rates appear to work just fine. You can still use EnsoniqAudioPCI.kext with an existing AppleAC97Audio.kext.

 

How do I uninstall EnsoniqAudioPCI.kext 1.0?

Link to comment
Share on other sites

  • 1 month later...
Hi to everybody, I have installed Ensoniq AudioPCI driver ver. 1.02 and in vmware 7.0 the audio goes jerky and is disturbed, it suits me to install the version 1.01? Thanks

 

Same problem here. The system sounds (real short dings and what not) work fine with it, but when I try to play the Garageband guitar tutorial, it's horrible. Someone in the office asked if I had a cappuccino machine running over here.

 

I'm running OSX SL 10.6.2 in VMware 7 on a Dell XPS M1530 laptop with a Core2Duo T9300 processor.

Link to comment
Share on other sites

Same problem here. The system sounds (real short dings and what not) work fine with it, but when I try to play the Garageband guitar tutorial, it's horrible. Someone in the office asked if I had a cappuccino machine running over here.

 

I'm running OSX SL 10.6.2 in VMware 7 on a Dell XPS M1530 laptop with a Core2Duo T9300 processor.

The only thing I have found makes any difference is to change the Format between 44100.0 Hz and 48000.0 Hz under Audio Devices (VMAUDIO).

Link to comment
Share on other sites

  • 4 weeks later...

hey im kinda new to this. i just installed it and i have sound now :D but its really skippy :lol: where can i find the vmx file that everyone is talking about so i can change those settings to see if they help? or perhaps something else i can try

Link to comment
Share on other sites

hey im kinda new to this. i just installed it and i have sound now :D but its really skippy ;) where can i find the vmx file that everyone is talking about so i can change those settings to see if they help? or perhaps something else i can try

 

There isn't anything in the VMX to help. You can try the previous post idea of changing the settings inside Mac OS X, but don't expect miracles.

Link to comment
Share on other sites

  • 3 months later...

I'm using VMWare Workstation 7 and I've installed the Ensoniq Driver 1.02, but the audio output sound isn't very loud even at the highest volume. I've heard other people having this issue. I'm very happy that the audio works extremely well, except for this one issue. Anyone know of a fix for this? Does one even exist?

Link to comment
Share on other sites

  • 4 weeks later...
I'm using VMWare Workstation 7 and I've installed the Ensoniq Driver 1.02, but the audio output sound isn't very loud even at the highest volume. I've heard other people having this issue. I'm very happy that the audio works extremely well, except for this one issue. Anyone know of a fix for this? Does one even exist?
I've noticed this too on Windows 7 host. Couldn't find any way to fix it. The only thing to do is increase the volume on the host and/or speakers.

On the guest side, the ES137x chipset has two different volume controls - a legacy one and an AC97 one. OS X uses the AC97 control to change the volume. I tried tweaking the legacy volume control to see if makes any difference, but it doesn't. Looks like both volume controls are actually just one control with two access paths.

 

Just to recap, I was never able to find the reason for the choppy audio that happens on some systems, so that issue isn't solved either. I added lots of parameters to tune every possible setting in Apple's IOAudioFamily & CoreAudio, but none of that solved the problem. So I never released a version of EnsoniqAudioPCI with these additional parameters.

 

On a positive note, back in September 2010, VMware signed up for getting a few new PCI device IDs, some for emulating a SoundMAX HDA chipset. If they ever get around to releasing an HDA chipset emulation, it may perform better than the ES137x emulation. So there's hope yet.

Link to comment
Share on other sites

  • 2 weeks later...

I have noticed that audio performance seems to be correlated with hd use. I was playing an mp3 in itunes on driver 1.0.2 and the sound was completely fine until I performed a copy of a large image file, wherein it became horribly choppy and rough. The audio returned back to normal after I canceled the copy.

Link to comment
Share on other sites

 Share

×
×
  • Create New...