0
0

Hello,

we have found that on some systems utilization of CPU for EQ’s too high. I build two instances of two systems. For both systems I retrieve the master channel and I add 32 EQ bands. Well, this works good for onboard and pci addon cards. It doesn’t work good and does 100% CPU load for USB and other external sound card devices. I assume that fmod uses hardware support if it’s available for the EQ’s, am I right?

regards
slajar

  • You must to post comments
0
0

I thought you said it was USB. SBLive by itself is not USB.
I use Audigy usb all the time and there is no performance problem. The USB part i’m sure is irrelevant.

Are you using task manager to determine this or not? Are you using System::getCPUUsage?

You need to do more tests, you aren’t really giving much info here. What happens if you use 1 system object instead of 2?

  • You must to post comments
0
0

Erm… I think 32 bands is way too much. I think that for a normal use you should have at most 10 bands.

  • You must to post comments
0
0

Hi brett,

yes you are right. It seems to be a problem of too many EQ’s in combination of too many system object’s. I did some optimization in my own code. It looks now I have a CPU utilization of 80%. It looked like an USB issue since it occoured just in time when you plugged in the USB device. The reason was that at this time there were instantly more systems available what caused my application to instanciate many more EQ’s 😉
I am always using task manager to determine the CPU usage (with kernel CPU times).
Now, I use 1 system whenever I can. That enhances the performance significatly.

thanks
slajar

  • You must to post comments
0
0

Hi artscoop,

normally, I would agree if I wouldn’t have soundcards where it does work with 32 EQ’s that are calculated by software. I am quite sure current CPU’s can handle 64 or even 128 EQ’s at once without noticable CPU load.

regards
slajar

  • You must to post comments
0
0

Ah ok, so maybe it is due to communication between the system and the device. External devices have a much slower transfer rate than internal ones.
If I am right, it should be better with a FireWire sound card (if it exists)

If I am wrong, I’m still quite sure it’s an hardware limitation.

Cheers

  • You must to post comments
0
0

Hi artscoop,

thanx for the fast reply.
we don’t have a firewire device here but as far as I can see from logfiles it happens with firewire devices too.

regards
slajar

  • You must to post comments
0
0

Ok, hm maybe if you try using full software mixing it might be faster ?
I really don’t know what’s going on, so I just throw ideas.

Cheers

  • You must to post comments
0
0

FMOD doesnt support any kind of hardware effects. It is all done only if you specify FMOD_SOFTWARE.

We added 64 eq effects to our test and it only increased the cpu usage by 4-5%. What cpu are you talking about here?
The sound device should be irrelevant, the processing is done before it is sent to the sound device.

  • You must to post comments
0
0

I would say it is rather due to the kind of sound device.
As he says it works really fine with a PCI or AC97 sound devices, but is really slow with a USB or FireWire card.

  • You must to post comments
0
0

unless it was all the same machine i wouldnt believe it, unless he was using task manager and not System::getCPUUsage which is what should be used.
An EQ filter on cpu has nothing to do witth the sound device it is writing to write at the end, they have no contact with each other until the final memcpy, whic his the same on any device.

  • You must to post comments
0
0

I find it quite 😮 too to be honest
Maybe he will have some more clues a bit later ?

  • You must to post comments
0
0

Hi brett and artscoop,

I am talking about 100% CPU usage in this case.

What do I do? I use getMasterChannelGroup to get the master channel for every system I enumerated. After that I attach 32 EQ’s to every master channel. In normal cases I would have 64 EQ’s at once. I am quite sure it works like a charm on "normal" PC/Soundcard systems. Actually, I found SBLive and SBLive USB produces this kind of high CPU load.

regards
slajar

  • You must to post comments
Showing 12 results
Your Answer

Please first to submit.