Tuesday, April 9, 2013

Using the Finite Difference Method to Simulate Acoustic Waves in a Leslie Rotary Speaker (Part 1, preliminary results)

I am currently enrolled in a numerical methods class where we have learned the Finite Difference and Finite Element methods for heat flow and seismic wave propagation. For my final project, I have decided to do something a little different and am modeling high frequency acoustic waves inside a Leslie rotary speaker. Leslie's are the famous speakers that give organs the swirly sound, and sound great with a guitar as well. Here is an example:

This has a few challenges when compared to seismic wave propagation, specifically that very high frequencies are needed. Current highest frequency wave propagation simulations done at my work are in the range of 1-10hz. For audio, we need frequencies as high as 5-10khz, an order of magnitude higher frequency. This means that the simulation meshes must be much finer which slows down calculations. The benefit is that we only need to simulate across a few meters. The most important part of the calculation are boundary conditions to prevent reflections from the boundary (the first waves hit the boundary after <0.005s), so I implemented an absorbing boundary condition from Clayton 1977.

Here are some preliminary results, all with my virtual leslie on "fast" at 8 revolutions per second.

880hz test tone

Here is an animated gif of a 0.15s high resolution simulation of a 880hz test tone. The rotating green "+" sign represents the speaker position (rotating counter clockwise), and the green triangles are my virtual microphones. All audio demos are from the furthest microphone.

Here is a 1.5s demo of an 880hz test tone (with a break in the middle to test the lack of reflections from the boundaries)"

I also did some tests with the intro to Pride And Joy to see how it handles the guitar spectrum, here is an audio sample:

Anyway this is all a work in progress, but it's a lot of fun!