I’ve been wanting to work on this stuff for a long time, and finally found some hours to play with it.
an initial examination of the question here:
http://philosophy.modern-carpentry.com/2009/12/a-bug-report-for-mozilla-or-the-importance-of-randomness-and-sound/
and we are called to its first answer:
http://vocamus.net/dave/?p=914
and Mr. F1LT3R. chimes in:
http://weblog.bocoup.com/javascript-fft-audio-sampling-in-firefox
The current patch for Firefox, developed by humphd, does much more than what this video demonstrates. F1LT3R has already used a browser to generate new sound, and humphd has honed the mechanics of it all quite responsibly. It all seems to be going somewhere.
It has been fun. It is unfinished.
I hope to help do the finishing.






One Comment
This is really cool, thanks for putting it up! One thing…performance will be really bad with a debug build like you’re running. You should try doing a release build, and you’ll see a huge difference.
One Trackback
[...] Previously I linked to a video of a demo made by Corban Brook, in which he uses JavaScript to calculate an FFT, and then visualizes the resulting spectrum data. After this test we wanted to see how expensive these calculations were in script, so I ported his code to C++ and stuck it into the audio element’s decode loop. A number of people have expressed concern over the idea of doing this in JavaScript and the cost in terms of speed and time you could spend on other work (e.g., complex real-time graphics). Therefore, I wanted to have a good way to compare speeds. I’ve already received feedback in the bug that native FFT calculations probably aren’t warranted, and we should optimize the JavaScript case. I anticipated this, and having been involved with as much 3D in the browser as we have, I know that JavaScript is up to the challenge of doing very fast calculations. As soon as I convert over to the faster WebGL arrays I’ll do some tests comparing JS-FFT and Native-FFT so we have better numbers. In the mean time, the C++ FFT is working really well, and a number of new visualizations have been done with it, including this one by Thomas Saunders. [...]