Page 1 of 1

Details of audio engine

Posted: Tue Jan 08, 2008 1:49 pm
by immunogoblin
Hi. I'm working on a custom set of WAV files for my bzflag client, and was wondering if the fact that some of the stock files are mono vs. stereo is purely arbitrary, or due to the fact that some sounds are never rendered in stereo by the engine? I've tried to discover by testing, but if anyone with intimate knowledge of the subject would like to lay it out, I'd be grateful. :)

Oh, and if there's any need for someone to tweak/balance/rework/replace/etc the stock sounds based on user feedback or whatever, I'd be willing to work on that, too.

Posted: Tue Jan 08, 2008 2:13 pm
by dexter
Oh, and if there's any need for someone to tweak/balance/rework/replace/etc the stock sounds based on user feedback or whatever, I'd be willing to work on that, too.
If your were to do this and release it on the forums, be sure that the .waves you used have the right licenses. I made a custom sound-pack a while back and was never able to release it publicly, due to some licenses etc. So, just be sure on that.

Posted: Tue Jan 08, 2008 3:13 pm
by immunogoblin
whodaman? wrote:If your were to do this and release it on the forums, be sure that the .waves you used have the right licenses.
Good advice. I would be either reworking the current stock sounds or generating new ones from scratch, rather than appropriating from another source (as with the movie soundbite themes, etc.). Playing with sound is something I've pointlessly enjoyed since I was a kid. :)

Posted: Tue Jan 08, 2008 5:56 pm
by DTRemenak
BZFlag uses custom 3d positioning, doppler effect and mixing code. Almost all of our sounds are mono only; asymmetric stereo sounds frequently do not sound the way you intended once they're positioned and mixed. The best bet is to look at the existing sounds and see how they're done (though there are a few that aren't really right).

Also note that BZFlag's native audio reader is extremely picky about the WAV format. You must record in 8, 16, or 32-bit PCM format (16 is preferred). We do no resampling, so your sounds must be sampled at exactly 22,050 Hz in order to sound right. If you are using SDL you may not notice if they're wrong, since we will piggyback on SDL's audio reader, but the same sounds will be wrong on a system that is not using SDL (like Windows machines).

In summary: 16-bit, usually mono, PCM at 22050Hz; test thoroughly! :)

Posted: Tue Jan 08, 2008 6:58 pm
by dexter
I would be either reworking the current stock sounds or generating new ones from scratch
That way you can be sure of releasing it here.
While I was doing my own, I noticed that keeping almost all of the sounds at the same length, is essential. Having a laser, that's about 2 seconds longer, can get very annoying in game. If you test them properly though, you'll notice if the sound is a little too long or too short.

Posted: Tue Jan 08, 2008 8:48 pm
by immunogoblin
whodaman? wrote:Having a laser, that's about 2 seconds longer, can get very annoying in game.
Funny you should mention that - my primary reason for tweaking the sounds in the first place was because of the "wall of explosion-like noise" that makes a big muddy mess that only the too-harsh lazer sound can cut through. ;) My focus is on making sounds that are short and efficient in a semantic sense, but that mix well into the overall feel of a chaotic rumble. More transient, less sustained envelopes and more dynamic range (so firing the lazer doesn't deafen you, but when you get hit, you can feel it).
DTRemenak wrote:BZFlag uses custom 3d positioning, doppler effect and mixing code. Almost all of our sounds are mono only; asymmetric stereo sounds frequently do not sound the way you intended once they're positioned and mixed.
That's just about how much my testing told me. :P
The best bet is to look at the existing sounds and see how they're done (though there are a few that aren't really right).
Any more details on the "few that aren't really right"? I guess it mostly makes sense to use stereo only for the sounds that are primarily played without any positioning, like message, lock, and other "inside" sounds - is that a good rule of thumb? I know how to create stereo audio that sums cleanly to mono, but there's no point making the files any larger than they need to be...
If you are using SDL you may not notice if they're wrong, since we will piggyback on SDL's audio reader, but the same sounds will be wrong on a system that is not using SDL (like Windows machines).
I'm using the same format as the stock sounds, no problems here, but when I get a few more added I'll post a zip so somebody can (please?) test it on Windows. Thanks for the info!

Posted: Tue Jan 08, 2008 11:44 pm
by DTRemenak
immunogoblin wrote:
The best bet is to look at the existing sounds and see how they're done (though there are a few that aren't really right).
Any more details on the "few that aren't really right"? I guess it mostly makes sense to use stereo only for the sounds that are primarily played without any positioning, like message, lock, and other "inside" sounds - is that a good rule of thumb? I know how to create stereo audio that sums cleanly to mono, but there's no point making the files any larger than they need to be...
Sounds that can be triggered by your own tank (pop, laser, shockwave, etc) can be done in stereo if they blend cleanly when positioned (test to see). Not all of ours are (but some are; I believe the stock laser is an asymmetric stereo sound). IIRC we have at least one sound that's stereo but shouldn't be; I don't remember which it was...one of the more recent ones. Some should never be stereo (ricochet, for instance).
If you are using SDL you may not notice if they're wrong, since we will piggyback on SDL's audio reader, but the same sounds will be wrong on a system that is not using SDL (like Windows machines).
I'm using the same format as the stock sounds, no problems here, but when I get a few more added I'll post a zip so somebody can (please?) test it on Windows. Thanks for the info!
If you're running on a system other than OS X and have built from source, you can rebuild with the configure flag "--without-SDL" to disable SDL. Note that this will cripple certain functionality (windowed/fullscreen toggling, joystick support on systems other than recent linux, international X11 keymaps, etc). Otherwise, sure, feel free to post and ask someone with Windows to test.

BTW, work on sounds is welcome. As far as I know none of the developers are audio engineers, and most of our sounds are more than 10 years old.

Posted: Wed Jan 09, 2008 10:56 pm
by immunogoblin
DTRemenak wrote:BTW, work on sounds is welcome. As far as I know none of the developers are audio engineers, and most of our sounds are more than 10 years old.
I'm certainly willing to give it a shot, given enough feedback about what people do/don't like about the existing sound set to know what direction to pursue (more realistic? more cartoonish? more like an episode of Gumby? :D ).

I'll build a client without SDL when I get a chance. Meanwhile, here's a set of the basic tank and weapon sounds that I've been using lately, if someone would like to test them out. Note that I'm not proposing these as the new default sounds - the "clanky rattletrap with a spring reverb attached for jumping" concept probably doesn't have much mass appeal... I'm not even sure yet if I like it myself. Feel free to comment, though, particularly on whether the wider dynamic range (less solid wall-of-noise) makes things more or less fun. Oh, and you might have to raise volume slightly vs. old versions.

BTW, is there any plan to add any kind of constant looped sound capability to map objects or tanks (drive noise, etc) in the future? Just curious, as that would be another reason to carve out a little more sonic space in the overall mix.

Posted: Thu Jan 10, 2008 4:08 pm
by Tedius
Its a good idea, I'd love to help if you need it. It will be great to have some powerful sounds that sit well when mixed. I think thats where the effort should be concentrated.

As for trying to make the mix less chaotic by decreasing the sustain and decay, I think you run the risk of making the gameplay feel less exciting and perhaps less realistic. I found that to be true especially with the sound of the shots in your sample set above. Suddenly Mofo felt tame and more like just a video game. I personally like a bit more grit and wildness, and I think the shots are probably the most important sound in the game.

It would be good to know if music or loops are a possibility for the future. I agree that it makes a big difference in how you design the sounds.

Thanks for taking this on, I think it is an area that can be greatly improved.

Posted: Thu Jan 10, 2008 7:58 pm
by immunogoblin
Tedius wrote:As for trying to make the mix less chaotic by decreasing the sustain and decay, I think you run the risk of making the gameplay feel less exciting and perhaps less realistic.
No argument there. I was trying to make a mellower set of sounds for myself because, well... if bzflag feels just like being at work for me, then it wouldn't be a good form of relaxation, right? ;) As I said, I'm not proposing that the default sounds should sound like that - I'm sure the hyperreal maximum-impact route is probably the way to go for the broadest appeal. That said, there's still something of a trade-off between "impact" of each sound vs. the ambient noise floor generated by large numbers of them, but it shouldn't be too hard to find a satisfying balance (again with the enveloping for more "punch" - how did you feel about the exploding tank sound? That's the only one in the set that was tuned for wake-you-up impact...) and the 3D audio engine helps with this somewhat, provides cues about proximity and immediacy ( is that shockwave getting closer?!!).
I found that to be true especially with the sound of the shots in your sample set above. Suddenly Mofo felt tame and more like just a video game. I personally like a bit more grit and wildness, and I think the shots are probably the most important sound in the game.
I'll assume that to be the consensus opinion unless proven otherwise. I know my own tastes probably aren't a good guideline for things like that - I personally like just enough firing noise for some feedback about the timing of the shots, and find more than that kind of distracting. And I'm still going to make that analog claymation-sounding theme, even if nobody but me ever uses it! :P
Thanks for taking this on, I think it is an area that can be greatly improved.
I'm happy to spend whatever time I get on stuff like this, since my coding skills don't extend much beyond pure bash scripting. Collaboration would probably be productive, too, if it could be kept from becoming too chaotic. I suspect the "work" will be finding good criteria for evaluation beyond a couple of subjective impressions. It might help to firmly establish a consensus that, say, such-and-such sounds should be tuned for impact, while such-and-such should be minimally disruptive, whereas these should be clearly indicative of a certain meaning, and these should just make people laugh or cringe in shame, etc... that way, opinions could be more along the lines of how well one sound vs. another fills that role, as opposed to lots of "I like it" and "I don't"... just thoughts for getting the ball rolling. I'm personally in favor of keeping at least a degree of slapstick vibe, since the game itself is so inherently surreal and unpretentiously fun (ctf in flying tanks? wha?) and I think *maybe* that might relate somehow to the generally good attitudes of the people playing it - but that's just a theory. :roll: In fact, this whole rambling post has been mostly theory, but hopefully some dialogue will ensue and some goals defined.

Oh, btw Tedius, did you happen to be testing the sounds on a non-SDL client?

first proposed replacement sounds:

Posted: Sat Jan 12, 2008 7:29 pm
by immunogoblin
Ok, since the fun of blasting teh powerful weapons seems to have a high priority, I started with those. Since the desired effect seems to be "realistic" explosions, I dug up some cc-licensed (sampling plus 1.0) stuff over at freesound (if anyone thinks this license won't be compatible with a bzflag release, please speak up). Since I have a sneaking suspicion that no matter how good the new sounds are, long-time players won't like them if they're *too* different from the old ones, what I've done is to throw the old sounds and the new raw material into a blender and shape to taste, a sneaky trick that will hopefully keep a little bit of a familiar feel. For the curious (and for attribution purposes), the sounds from freesound are:

http://freesound.iua.upf.edu/samplesVie ... p?id=23779
http://freesound.iua.upf.edu/samplesVie ... p?id=35643
http://freesound.iua.upf.edu/samplesVie ... p?id=18390
http://freesound.iua.upf.edu/samplesVie ... p?id=18403

Please try these out (there's no directory in the zip, btw) and let me know if it seems like a good approach - they aren't lacking in mayhem, I promise. :P

Posted: Sat Jan 12, 2008 9:11 pm
by dexter
at freesound (if anyone thinks this license won't be compatible with a bzflag release, please speak up)
When I was working on my sound-pack, JeffM linked me to that site, saying the licenses are good and suitable for a release on BZBB. You should be good. :)

Posted: Sat Jan 12, 2008 9:37 pm
by immunogoblin
whodaman? wrote:JeffM linked me to that site, saying the licenses are good and suitable for a release on BZBB.
Good to know, thanks. Some of the free software licenses are a little stricter than the BB policy, but hopefully it's all good. :)

I just finished getting killed every five seconds over on the strider map using these sounds, and they seem to be adrenalizing enough for *me*, anyway... next up is to add some rumble to that shockwave...

Posted: Sun Jan 13, 2008 12:46 am
by JeffM
as long as it allows redistribution it'll be fine for posting here.

it only needs to follow the bzflag license if it is to be released with the product.

Posted: Sun Jan 13, 2008 12:47 am
by F687/s
Here's my thoughts.

boom.wav: Pretty good, not really overpowering (since it's not that high-priority), and blends in well.
explosion.wav: Quite a big explosion. Meh.
fire.wav: I like this one. Sounds bigger, while still not being long and overdrawn.
missile.wav: Not really too thrilled; it sounds just like a regular GM with boosted bass.

As a whole, I do like where this is headed. Keep it up!

Posted: Sun Jan 13, 2008 10:56 pm
by Spazzy McGee
While we're on the subject of sound design, were/are there ever going to be the custom "Rampage" and "Killing Spree" sounds for the playhistory tracker that actually say the words? I see there are currently the "spree*.wav" files which are simple sound effects.

I seem to remember a topic asking for voice recordings for these. If anybody is still interested in this, I can make some up in a similar style to the unreal tournament sounds. I assume after the 'protocol break' it would be safe to un-comment the lines in the playhistory tracker plugin to actually play the sounds.