I got skipping sound when I FMOD with use WinMM support and I do something (like opening a program, minimizing it, etc…).
This doesn’t happen with DirectSound support. I know that DSound should be more stable than WinMM (as FMOD documents says), but WinMM seems to be a bit too unstable!
For example, I use modplug player with WinMM support, and I get no skips during playback.
Is there a workaround for this? I prefer WinMM to DirectSound for two reasons:
1) Less overhead;
2) It works even if there is another DSound device that took control.
Brett, came here! Help me!
I know, but:
1) The same buffersize works good w/ Dsound but doesn’t w/ WinMM
2) Even if I increase the buffersize, it always skips …
I’m doing a player in Visual Basic and, as I said, I prefer WinMM instead of DSound… There are no workarounds?
P.S.: There is a little bug in XM player: when there is a “stop note” and a sample number on the same row in the same channel the note isn’t stopped…
I tried also with a 1000 ms buffer and I got the same problem!
However my drivers are latest ones. (SBLive Basic has latest SBLive 5.1 drivers and my Geforce 2 MX has detonators 21.81…)
I got the problem only when I do something “heavy”, like minimizing or maximizing windows…
Do you have the problem in other programs too (cracking sound),
because this would be a problem with the combination SBLive and VIA chipset (for K6-II at least, my problems were solved with a Athlon on a newer VIA chipset)
If it’s really skipping, then I should think it’s some sort of priority issue.
I think the problem has something to do with the hard-disk not being able to follow…
Maybe you could add some statistics functions as Media Player has, that tell you how many frames were skipped/too late/…
Also, you should make a function to set the file buffer size, so you could specify a memory buffer of 1MB (for example) for streams.
Then you read small piecxes of this buffer and decode them, so you can get a sound latency as low as 25 ms for all dsp/sound operations, but still have a good buffer that solves harddisk problems.
- Adion answered 16 years ago
Nope! I have no problems with other software (I use modplug player/tracker, madtracker, rebirth, winamp,…)
As I said, the problem happens when I minimize, for example, a window: minimizing a window is a heavy task because that stupid animation (the window that fall down) has the highest priority: everything is stopped until the animation is finished…
I also think that it is a problem with priorities, but I tried anything I could try under this aspect, and I got no results…
It happens also with FMod sample program that comes with the the API.
Try to play an MP3 from a CD and make that CD busy, for example, with a huge file searching and you’ll get the same problem!
What u said is right, but I think that a little buffer for this kind of purposes can be used. If we have MP3, for example, 128 kb of buffer are around 8 seconds of sounddata. Users can manage this buffer as they like. I think it works better if I browse CDs while playing an MP3 from it. The buffer of an MP3 frame or a bunch of frames is too little.
I got the same problem (skipping sound) on all computers in my office. They are Win98 and Win2000 with different sort of sound cards (SBLive, integrated cards, C-media…) with latest drivers (even for Video cards) and latest service pack for all OS.
I use FMOD.EXE as a reference to do all my test, it skipping sound….espacially when using InternetExplorer and use PageUP/DOWN on a large HTML file or when accessing a large directory with Explorer.
After that I try to do a simple thing, modifying the FMOD (Delphi AND with VisualC++ versions) to load then entire MP3 file in memory and (never know) set the buffer size to 500, 1000, 2000…etc.
The ONLY constant on all the computers that I try FMOD on is…… VIA chipset.
A little precision, the overall computer speed is not in cause, I got a 1GHz Pentium 3 with 512Mo and a ATA-100 HardDrive.
I use :
– FSOUND_Stream_OpenFile(MyBuffer, FSOUND_NORMAL or FSOUND_LOADMEMORY, size);
– FSOUND_OUTPUT_WINMM and FSOUND_OUTPUT_DSOUND (with the same result)
Please login first to submit.