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
- slajar asked 12 years ago
- You must login to post comments
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
- artscoop answered 12 years ago
- You must login to post comments
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
- slajar answered 12 years ago
- You must login to post comments
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
- artscoop answered 12 years ago
- You must login to post comments
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.
- Brett Paterson answered 12 years ago
- You must login to post comments
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.
- artscoop answered 12 years ago
- You must login to post comments
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.
- Brett Paterson answered 12 years ago
- You must login to post comments
I find it quite 😮 too to be honest
Maybe he will have some more clues a bit later ?
- artscoop answered 12 years ago
- You must login to post comments
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
- slajar answered 12 years ago
- You must login to post comments
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?
- Brett Paterson answered 12 years ago
- You must login to post comments
Erm… I think 32 bands is way too much. I think that for a normal use you should have at most 10 bands.
- artscoop answered 12 years ago
- You must login to post comments
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
- slajar answered 12 years ago
- You must login to post comments
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
- slajar answered 12 years ago
- You must login to post comments
Please login first to submit.