Acoustic rays
-
Hello!
I wonder if it's possible to make a ruby script that shots rays from a point and just reflects on all surfaces it encounter?
The reason why I ask is that I work with acoustic problems and we need to visualize the sound reflecting in a room.
One more thing would be neat. If it would be possible to set certain surfaces/materials that the sound/ray would'nt reflect on - like meeting an absorber.Is there any chance making this or should I try other ways?
Thanks!
-
This is interesting. Can you post of mockup model of what you envision?
Todd
-
I've implemented this before. I think it has lots of potential to provide properly occluded audio sources. You can go pretty far by attenuating/filtering audio sources based on how much 'stuff' there is between the listener and the source in a straight line way. eg you can highpass filter sound that is separated from the listener by a thick concrete wall etc etc. ( I simply raycasted from listener to source and from source to listener, got what material I hit at both ends, made the presumption it was solid 'stuff' between the two faces and did some filtering.)
But yer problems start when you look at transport of sound from reflections. Raytracing something with a wavelength that is tiny compared to the room features (eg lightwaves) is easy because you can largely ignore diffraction around corners.
Audio wavelengths is a different matter entirely because the wavelength of sound is much larger than light so that diffraction (around furniture etc) is integral to simulating audio transport. It all gets a bit scary on the computation side at the point...
Adam
-
Adam, could you not just do it with a small number of rays? If you only want a quick visual representation of what sound is going to be doing in the room i dont think youd need to many waves to get a pretty good idea of whats going on.
You could perhaps use a slider to control the density of waves being emitted from a surface and then set the wavelength.
-
Well- we know this is possible in other applications: <http://squ1.com/products/ecotect/features/acoustics>
Tim
-
Doing it in ruby would probably be a bit trickier, though. As adam mentioned in a previous thread ruby isnt very good for heavy computational tasks, so oyud have to be pretty careful with the code.
-
@rdesign said:
Well- we know this is possible in other applications: <http://squ1.com/products/ecotect/features/acoustics>
Tim
I just had a look at that link and didn't read it all through but at first blush that product isn't useful for audio in my book. I mean, if I stand around the corner from you and say "hello" you hear it because of the waves 'going round corners' due largely to diffraction.
So yes, if you just want to treat sound as.. light, then yep shoot some rays. Its just you'll get an answer that doesn't match up to reality much!
Adam
-
@remus said:
Adam, could you not just do it with a small number of rays? If you only want a quick visual representation of what sound is going to be doing in the room i dont think youd need to many waves to get a pretty good idea of whats going on.
You could perhaps use a slider to control the density of waves being emitted from a surface and then set the wavelength.
Its not the number of rays. Its because a sound wave is diffracted by the furniture etc. I just googled and found this link http://www.acoustics.salford.ac.uk/feschools/waves/diffract.htm which might help explain.
Adam
-
I know about diffraction, but if you only have to model the diffraction for a few waves then surely tat wouldnt be too computationaly intensive?
P.s. 2000th post
-
It would be interesting to see the plugin in action in my models of roman theatres. If someone does it one day, of course.
(Me not, I have learned Vitrubio, don't expect I can learn ruby o what else... )
-
I would love to see this tool... it seems like a very useful (complex and advanced) idea.
-
This would be great but as Adam says different materials, masses and densities absorb/deflect sound differently. To model the conditions with any accuracy there has to be a way to express the sound attenuation effects of actual materials. This would be very useful for testing acoustic insulation but it sounds very complicated to achieve.
Also sketchup deals with surfaces not solids, I'm presuming its easier in a solid modelling application to model acoustics.
edit: You could group some geometry that represents, say, a concrete wall and then calculate the acoustic properties by its volume.
Advertisement