Jump to content
  • Advertisement
Sign in to follow this  
mrDIMAS

ProjectF Sound Engine

This topic is 1956 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello everybody! Sorry for my english. This is my recent project called ProjectF. This is sound engine based on OpenAL. Main emphasis is on sound effects, like a reverb and sound environment. The main idea - 'zone'. What is 'zone'? Zone is a AABB( axis-aligned bounding box ) or sphere, which uses one of 110 reverb presets. Also you can control air wetness in each zone to create realistic effect in propagation of sound. And second idea is obstacles.

Just listen this

 


 

And download the demo and the engine in attachment.

Edited by mrDIMAS

Share this post


Link to post
Share on other sites
Advertisement

Great work, i thought this effects won't work on my integrated sound card. biggrin.png

I have implemented basic sound system with OpenAL but didn't look into effects yet. From what i have experienced in your demo, i am glad this can work for integrated cards.

Share this post


Link to post
Share on other sites

I was also recently working some on a new mixer thing, though it is based on something a little "odd":

basically, a hacked version of a custom MIDI synth.

 

it adds ability to play arbitrary samples, adds 3D positional effects (position / distance attenuation, Doppler shifts, and propagation delays), adds things like filtering and reverb effects, ... a lot of this is handled per-channel (and I have currently expanded the max number of channels, from 16 to 1024, with each channel having its own spatial location, ...). (it also has support for multiple listeners as well...).

 

it is still in-development though (not really been put to use in-game yet).

 

 

it doesn't currently support anything to take world geometry into account.

 

bounding regions are possible, but preferable would be being able to infer it dynamically (at a preferably reasonable cost), just I have yet to come up with a good strategy to do so:

possible, but kind of lazy, would be querying the space around the player and then counting up the statistics for certain block-types.

 

possible, but a bit more expensive, would be doing something similar to "block-lighting", basically figuring out how much of an effect each block will have from the sound-source and listener, then running statistics over the reachable blocks (then using this to dynamically calculate the reverb filters and similar).

 

basically, we start out at a value of, say, 15, and each adjacent reachable cell is marked at 14, and from these at 13, ..., stopping at 0. from this we could calculate both the local reverb, and also possibly how obstacles would occlude sound (say, crossing through a wall reduces the value by 2 or 4).

 

the blocks in this case would basically be a regular grid indicating which types of "contents" exist in a given location (giving their sound-properties, ...).

 

probably this sort of information would be cached though, rather than recalculated each frame (probably recalculated a few times/second or so, say 1Hz or 4Hz).

 

ADD/Update: did something like the block-for-block sound propagation mentioned above. it seems to work ok, and is fast-enough for real-time use.

(dunno about others, but I am mostly doing the reverb via largish FIR filters...).

 

 

EDIT:

yeah, GSound is pretty cool as well...

Edited by cr88192

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!