It seems that you are trying to use a semi-"deprecated" version of FMOD

Note: Any version released before 4.30 is now deprecated and no longer supported. The older 4.30, 4.32 branches are still maintained and bug-fixed for users who want to stay on an older branch and not upgrade. Find old versions in the "previous versions" link below.http://www.fmod.org/index.php/download

Unfortunately I need to stick with CentOS 5.3, and if possible I'd like to keep the current version of OSS. FMOD is the only new variable in this equation, so I'm trying to change as little of everything else as possible.

I'll try updating to the latest OSS rpm and see if it works with my application.

I did go through the OSS change logs, but I didn't see anything that might be related to this issue.

1. To try OSS4 on a LiveCD, you do not need to install anything on your computer.2. If it works on a LiveCD, you may try to fix it on your CentOS.3. If it does not work on a LiveCD, somebody else might be able to reproduce your "experiment", provided that it is described in detail.

I've updated both OSS and FMOD Ex to the latest versions, but neither had any effect on the issue.

I compiled the FMOD playsound example application, and I've configured it to specifically use OSS.

I tested my application on a separate nForce4 motherboard, also configured to use OSSv4 but with a different oss_hdaudio.ko kernel module - the nForce2 board uses the oss_ich.ko module. Everything worked correctly on this machine.

Back on the nForce2 machine, I changed the "vmix0-channels" setting from "Stereo" to "Multich". With this the playsound application started giving me sound, but very garbled - like the speakers were behind an oscilitating fan. I tried a separate pair of headphones plugged directly into the motherboard to verify that it wasn't the speakers themselves.

I've gotten this issue fixed with some feedback from the FMOD support team.

They suggested changing FMOD's buffer size from the default of 1024 samples using System::setDSPBufferSize. Here's the comment from their help page on that function:

Sets the FMOD internal mixing buffer size. This function is used if you need to control mixer latency or granularity. Smaller buffersizes lead to smaller latency, but can lead to stuttering/skipping/instable sound on slower machines or soundcards with bad drivers.

I doubled it to 2048 samples, and the sound started working and the "Output timed out" OSS error message went away.