Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

New Mixer, Dynamic Reverb

Sign in to follow this  


basically, went and threw together basically a new sound system for my 3D engine.
it is based on a hacked version of my MIDI synth (extended to do 3D positional audio stuff and support arbitrary sound effects, as well as more channels, ...). (the MIDI synth then basically took over for all the other sound-mixing).

while I was at it, I also threw on a dynamic environmental reverb effect (it tries to figure out what the location the player is in should sound like), ...

it isn't necessarily strictly realistic (I just sort of guessed things like how much various materials would reflect sound), but it sort of works I guess...

it does something similar to Minecraft-style block-lighting (with the listener taking the role of the torch), then takes into account which voxels were reached by approximately how-much sound and how much sound they should reflect (per block type), then adds this value to the appropriate place in the reverb filter.
this is partly to try to make it so? that sound mostly only bounces off the "surface" of the nearby walls/..., rather than every voxel inside a solid mass.

it takes into account the amount of sound-reaching the block, the type of material, and? the distance from the listener (mostly used to calculate the delay). the reverb is basically a FIR filter, and the distance is used to calculate where in the filter to add the sound-value (basically, a delay in terms of samples).
for actual mixing though, the spatial location of the sound has no real effect though (the reverb is basically just a post-filter).

basically, the "shape" exists, but only as 1-dimensional spikes a sample-time axis. to calculate the a sample's reverb, we do a dot-product? of the filter with the recently-played samples (this "pulls forwards" things like echoes and similar), and again for each sample.
as far as the algorithm is concerned though, each voxel is treated as a point in space which may reflect sound back to the listener.
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!