- #1
- 29,021
- 4,361
I need to develop some kind of simplified formula that will allow me to estimate pitch and volume of a sound of two colliding objects in a simulation. It doesn't have to be exact, mostly it is enough that it follows the intuition - large object produce lower sounds, large and fast object produce louder sounds. To simplify things let's say objects are spherical cows ('moo' doesn't count). Physical engine returns impulse of the collision, I also know mass and volume of the object.
So far I had some success with the pitch - I assumed that the oscillations of a solid object will be in a way similar to the oscillations of air in the Helmholtz resonator (one of the modes of the oscillations of a solid can be contraction/swelling, doesn't it?), that suggested frequency being proportional to [itex]V^{\frac {-1} 2}[/itex] and after some tinkering with constants I am quite happy with the result - when I look at the collision and listen to the sounds it feels natural.
It is loudness that is a problem. I did some random checks making loudness linearly dependent on the impulse or impulse/mass ratio, but I don't like the effect. If nothing else works I will try to test exponential and logarithmic dependencies by brute force, but it will be time consuming. Do you have any idea about what the real thing is? Or some analogies that could be adapted?
So far I had some success with the pitch - I assumed that the oscillations of a solid object will be in a way similar to the oscillations of air in the Helmholtz resonator (one of the modes of the oscillations of a solid can be contraction/swelling, doesn't it?), that suggested frequency being proportional to [itex]V^{\frac {-1} 2}[/itex] and after some tinkering with constants I am quite happy with the result - when I look at the collision and listen to the sounds it feels natural.
It is loudness that is a problem. I did some random checks making loudness linearly dependent on the impulse or impulse/mass ratio, but I don't like the effect. If nothing else works I will try to test exponential and logarithmic dependencies by brute force, but it will be time consuming. Do you have any idea about what the real thing is? Or some analogies that could be adapted?