Before I thought the clicking I heard was becuase of cheap headphones, but now I don’t think this is the case.
Hardware: Sound Blaster Audigy
Headphones: Sennheiser PC150
Code Sample: [url=http://www.wulfram.com/debug:1zn9dmpc]here[/url:1zn9dmpc]
Situation: There are 2 situations where I detect clicking:
When the listener stays put, and the sound source moves right through the source. I verified that there is a click even when the sound moves just very close by. This happens when a sound moves quickly from right to left and back again.
When the listener and the sound source are in the same place, but change their location lockstep. I detect clicking without using the velocity settings. This is especially true for quick changes in location. I detect this happening even if there is a constant small distance between the listener and the sound.
The sample code I have is pretty simple… Maybe something is hozed with my drivers or something. Does anyone else hear clicking?
The sample sound I’m using is a perfect sine wave — this precludes any arguments about the clicking being in the source sound. This is the kind of clicking I’m getting in the code I’ve written for the game, and I can reproduce it with this sample.
Note: When using the cheapo-USB device (no hardware 3D sound), there is no real clicking from what I can tell… Maybe I’ll fart around with the drivers some more.
Is there a utility that does a grand-sweep test of the 3D sound system that tries to do all these kinds of things that I can run? Some kind of reference test of sorts?
- Squishy asked 14 years ago
Maybe I can detect creative products, and put up a pop-up message saying “if you want to use 3D Hardware drivers on this hardware, email creative and tell them to improve their drivers so that their stuff doesn’t produce clicks”.
It’s just sad — I think they are the mainstream sound hardware vendors… maybe I’m wrong about that, but it just seems like it. From all the marketing and hype, I would have suspected that their stuff is in fact cutting edge. As far back as I can remember I’d buy a soundblaster card — that’s the case going back to EISA cards.
It’s not a far stretch to want to have localized continuous 3D sound effects on a moving listener in a world that has other moving sounds in it. It’s beyond comprehension that this just doesn’t work reliably.
This is pretty basic stuff in my book. I’m not doing anything that is out of the ordinary — or maybe I am. I guess — otherwise this would have been fixed and found.
If you do go to the game dev conference (I won’t be attending because I’m too much of a hozer), it would be great if you could give them a floppy with this test on it and tell them to fix their frigging drivers! Maybe rough them up a little. Maybe I should attend with a crowbar…
Another thought… to date Wulfram uses some Qsound software library that pretty much does a nice job in software. It’s pretty easy to tell from the sound if something is in front or behind you. I recall seing a thread that for fmod in software mode there is no difference — it just does left/right panning. I’ve not studied up on this, but are there plans to put in a higher quality 3D sound algorithm into software mode? I’m asking because the CPUs these days are pretty fast and maybe it would be nice to allow people to hear better 3D sounds for a slightly slower FPS.
Yep, I hear some strange “crackles”, too. Although for me it happens when simply rotating the listener in-place, with the sound places somewhere to the right of the listener. I also use a pure sine-waveform for testing.
This happens on an on-board VIA AC’97 sound-chip.
- Sascha answered 14 years ago
I’m not sure how much work this would be for you, but here is an idea (which might help with fmod marketing as well):
Magazines love to publish comparisons between hardware performance. You see this all the time with CPU/Graphics cards, and people have all sorts of test suites (from real game FPSs, to benchmarks).
Well — perhaps fmod could come up with an application that goes throgh a series of 3D tests that people can actually use to evaluate a set of the fundamental 3D functions. If fmod.org wrote something like that, I’m sure the name of the utility could reflect that (or have some logo on the tool or something).
Then we could write letter to the editors of various magazines, and tell them to frigging evaluate the hardware that they recommend to everybody. I do believe that a magazine like PC Gamer, or maximum PC can exert pressure for any hardware vendor to clean up it’s act.
It would be certainly more influential than me and a crow-bar at the CGDC.
Just a thought. We need a rudimentary 3D hardware benchmarker that everyone can use, and expose bastard companies whose hardware or drivers suck beyond belief.
Justice for all! 😉
[quote="brett":3rg12qbc]i agree with everything said there, i cant understand how they didnt even test a sinewave panning left and right, its what i always do when im writing a software mixing routine.
I’ll have an audigy setup at our FMOD booth at GDC, so i can show them in person!
So where you able to show them how bad thier drivers are?
That new .dll does definately help for case 1 (moving sounds left/right). There is still detectable clicking for case 2 (sound listener moving with sound in lockstep — especially when it gets quite fast in the end there).
I wonder why my system would be using software buffers (given the Audigy situation). I bought new headphones (Sennheiser PC150) — definately better than what I was using before, so I think what I’m hearing is not a fabrication of the speaker system.
In that sample, I was using: FSOUND_Sample_Load(FSOUND_FREE, sample_name, FSOUND_HW3D, 0, 0);
As you can see from the top post on this, I’ve got an Audigy — I’m curious why your new dll helped… I guess that means I’ve got something not configured correctly? I mean — why is it using software / default algorithms?
That’s cool. The thing I really wanted to do was use EAX reverb on the engine sound on the fly… so I was going to adjust the EAX reverb paramaters as the tank moves through the terrain. Kind of adjusting some parameters depending if you’re close to a wall, or inside a ravine or something like that.
So using software or 2D for that probably won’t work… though maybe it would. I could turn on EAX reverb on a 2D sound, right?
1 – Direct Sound
2 – Windows Multimedia Waveout
3 – ASIO
4 – NoSound
Press a corresponding number or ESC to quit
Direct Sound Driver list
1 – Primary Sound Driver
* Driver supports hardware 3D sound!
* Driver supports EAX 3 reverb!
2 – SB Audigy Audio [D400]
* Driver supports hardware 3D sound!
* Driver supports EAX 3 reverb!
3 – USB Audio Device
Press a corresponding number or ESC to quit
- Driver supports hardware 3D sound!
– Driver supports EAX 3 reverb!
FSOUND Mixer : FSOUND_MIXER_QUALITY_MMXP6
Hardware 3D channels : 62
FSOUND Driver : SB Audigy Audio [D400]
Sample Name : test.wav
There is still a very noticeable problem for when the sound source and the listener both move together. Bunch of clicks and stuff.
Please check it out — the source code is pretty easy at this point. I guess I could clean it up some more. If you try it out it’s when the mode is ‘moving’ in that code demo of the problem.
Thank you for your efforts on this… It’s very much appreciated.
Unfortunately, I’ve found that the noise artifacts still exist — even after the modifcications that you’ve made to the .dll. (by the way, the function FSOUND_GetNumHardwareChannels() seems to have gone away).
I have discovered, that the noise artifacts seem to be a function of frequency of which fmod is updated by. I suppose that is no big surprise, but the code found in the link below demonstrates this. The code sample below moves the sound and the listner together in a circle. While it doees this, it changes the sleep frequencies between the updates to fmod (I made it use the main thread as well…).
Code Sample: [url=http://www.wulfram.com/debug2:1hm2j45y]here[/url:1hm2j45y]
Essentially, the reason why this is an issue for Wulfram is that I’ve got a moving listener who is generating a hum of it’s own engine in the background. I plan on dynamically changing the pitch and the location of the hum with respect to the listener — howerver at the moment the sound in the game is fixed in location with respect to the listener, and I’m not chaning the pitch either. I have detected noise artifacts in the game in cases when the listener (and the relative sound source) move together. The sample here (although it uses the suggested fixes), still exhibit the same artifacts I’m getting from the game in this case.
I hope there will be a solution to this issue, because it’s stopping me from using fmod. Perhaps I need to look into using a work-around for now.
At this point I’m guessing something is either wrong with my hardware, or my drivers for the Audigy. I’m going to uninstall all the drivers, and start from scratch again.
Sorry for the wild goose chase. I’ll report back when I have that finished.
[quote="brett":35db0r0b]i’ve tested that code and there is not a single glitch. Although just to be sure get the dll above to make sure we’re using the same version.[/quote:35db0r0b]
Just curious, what kind of a sound card do you have in your system that you’re testing on, and did you test the hardware version instead of the software version? Wonder if this is DX version related… I believe I’m running DX 9 on that system.
I just did a test on another system as well, and it also has sound clicks and other artifacts going when using:
Output Type: Direct Sound
Direct Sound Driver: Primary Sound Driver
But if I choose Output Type: Windows Multimedia Waveout, then there are no clicks. I’m guessing that when I choose this option, it doesn’t use the hardware drivers or something.
[quote="brett":3vnm7l2x]the soundcard is supposed to be irrelevant because it is using dsound3d.dll. The card i tested it on was a laptop ac97 or something.
yes waveout is irrelevant, that is using fmod software mixing.
Dsound uses dsound buffers, as i’ve said many times now.[/quote:3vnm7l2x]
I’m not trying to be a pain about this — it’s just that on 2 seperate systems I’m getting noise artifacts. Both systems, are running DX9. I don’t konw if it’s an fmod issue, DX9 issue, or a avendor driver issue.
I can get other people to run the tests if you think you need more input on that. All I can tell you that using the fmod API, using DX9, and I’m getting these noise artifacts on two different types of machines containg sound blaster hardware (different types of hardware). Further, the noise artifacts change depending on the frequency of the update() function call in fmod.
I’m guessing that this is true for pretty much any sound blaster card (running in Dx9 — possibly it’s a DX9 related thing?). Therefore, regardless of why it’s happening, I can’t go replacing Wulfram sound code with this unless I can solve this issue.
I mean the soundblaster cards are kind of an industry standard — I really wouldn’t care if it was messing up on some small subset of cards here. There is an issue as far as I can tell, and just because you’re not hearing it on your one hardware version, running your drivers, and your DX version, doesn’t mean there isn’t a problem.
Okay — I guess I’ll look at that kind of work around… though I was hoping to move the engine sound a bit in relative 3d space… you know, for a bit of special effect.
It’s pretty amazing that sound blaster drivers are so screwed up. I mean, their stuff is pretty much the recommended hardware when you look at a lot of different magazines (PC Gamer, MAXIMUM PC, etc.).
I’m guessing there is little we can do to have them fix the problem. If we (or I) did try to contact them with the problem, I guess we’d have to write a sample using direct X directly… any ideas what the sample would look like to reproduce this problem?
What other hardware 3D sound cards are out there that you would recommend?
Please login first to submit.