by dahnielson » Wed Mar 19, 2008 6:10 pm
What I'm trying to do is to ray trace sound being emitted from one point starting with a level of 1.0f. When the ray intersect a polygon ("walls") the level is attenuated according by the associated materials absorption coefficient and the ray is reflected, attenuated and reflected until it either has decayed 60 dB or reached some other set limit (like order of reflections). The rays are "recorded" when intersecting a receptor, each ray keep track of the distance (= time) it's traveled and get recorded in the impulse response.
What I've learned is that an ideal pulse is a single sample of maximum amplitude because it contain all frequencies (simulated by clapping hands or a starting pistol when recording real world IRs). So I guess the ray only need to keep track of one level (initially 1.0f). But how will materials with uneven absorption over the frequencies attenuate that level?
Will that attenuation be dependent on the distance the ray has traveled? Since velocity, wavelength and frequency are interrelated:
f = V/d
With f being the frequency that is attenuated, V is the velocity (344 m/s) and d the distance. Making a ray that has traveled 0.80 m being attenuated by the absorption coefficient for 430 Hz (being interpolated between the 250 and 500 Hz value). Is this a correct model?
(Hmm... or should that be f = V/2d ?)
Last edited by
dahnielson on Sat Mar 22, 2008 1:00 pm, edited 10 times in total.
Anders Dahnielson
Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux