Image source sound propagation

Downloads

The code and Mac OS X binaries are available here. The sound/ directory has the image source files.

The original sound is quiet_clap.wav
The Matlab script used to render the audio is here.

All final Matlab impulse responses can be found inside matlab_all.zip.
All final audio files can be found inside audio.all.zip.

Implementation

The algorithm used is the basic image source method described in the referred papers. Reflected sound images are created depth-first, and valid results are saved to an impulse response buffer. All images are checked for visibility and possible obstructions. Each obstruction test is done by simply intersecting a single ray with the scene.

The use of full visibility and obstruction tests allows images to be reflected for non-convex geometry. Some examples of indirect contributions for interesting scenes can be found at the end of this document.

The audio file used was sampled at 44100 Hz. As such, all matlab graphs show impulse responses on a scale of 44100 cycles per second. An absorption coefficient of 0.3 was used for all scenes. All distances are in meters. The speed of sound is assumed to be 343 meters per second. Three orders of reflections are calculated.

Results: small room (8 x 5 x 3)

Test a:
Source pos: (4, 2.5, 1.5)
Listener pos: (4, 2.5, 1.5)
Matlab data
Image of impulse response
Full data
Scene file
Audio

Test b:
Source pos: (1, 2.5, 1.5)
Listener pos: (7, 2.5, 1.5)
Matlab data
Image of impulse response
Full data
Scene file
Audio

Test c:
Source pos: (3.7, 2.8, 1.2)
Listener pos: (7.8, 4.0, 2.7)
Matlab data
Image of impulse response
Full data
Scene file
Audio

Results: large room (32 x 20 x 12)

Test a:
Source pos: (4, 2.5, 1.5)
Listener pos: (4, 2.5, 1.5)
Matlab data
Image of impulse response
Full data
Scene file
Audio

Test b:
Source pos: (1, 2.5, 1.5)
Listener pos: (7, 2.5, 1.5)
Matlab data
Image of impulse response
Full data
Scene file
Audio

Test c:
Source pos: (3.7, 2.8, 1.2)
Listener pos: (7.8, 4.0, 2.7)
Matlab data
Image of impulse response
Full data
Scene file
Audio

Results: gallery (32 x 20 x 12)

Test a:
Source pos: (3, 5, 2)
Listener pos: (0, -8, 5)
Matlab data
Image of impulse response
Full data
Scene file
Audio

Test b:
Source pos: (0, 8, 5)
Listener pos: (0, -8, 5)
Matlab data
Image of impulse response
Full data
Scene file
Audio

Results: other

Gallery indirect:
Source pos: (10, 0, 10)
Listener pos: (18, 0, 18)
Matlab data
Image of impulse response
Full data
Scene file
Audio

contact info on the about me page
k