4 ms·
Beat Detection on the Arduino
- GFK_of_xmaspast 12y agoThere's a lot of not-actually-correct content on this article.
- lsaferite 12y agoCould you possibly expand upon your comment for those of us who don't spot the wrongness right away? Otherwise, what was the point of posting your comment?
- GFK_of_xmaspast 12y agoThe biggest howler I found before I stopped reading was: "There exists another algorithm known as the Discrete Fourier Transform which essentially implements a single bin of the Fourier transform. I did experiments using the optimised Goertzel algorithm on the Arduino, " It reads like the guy did some googling, found some blogs and / or wiki pages, and just banged together enough of what he found until he got an effect he wanted. (Also I'm not familiar with the cpu inside the arduino, but his code is using floats, and I'm a little skeptical that anything with hardware floats is too slow to do a real time small-ish DFT, especially since he appears to only be sampling at 5k )
- acosmism 12y agothats kind of what he admits he did in the article "I did a bunch of research and the common consensus came down to one of three major approaches"
- tdicola 12y agoavr-gcc libc has an implementation of floating point math but it's not accelerated at all by the AVR hardware (i.e. there is no FPU). Most Arduino boards (the Uno) are 16mhz with only 2kb of memory, so running a full FFT is possible but quite tricky and limited. For folks that like embedded stuff and audio, check out a Cortex M4-based board like the Teensy 3.1. It has faster floating point, much more speed and memory, and some basic DSP functions like FFT, etc. built in.