Alert icon
We're changing our privacy policy. This stuff matters.  Learn more  Dismiss

Arduino digital chromatic tuner

Loading...

Sign in or sign up now!
Alert icon
Upgrade to the latest Flash Player for improved playback performance. Upgrade now or more info.
3,618
Loading...
Alert icon
Sign in or sign up now!
Alert icon
  • likes, 0 dislikes

Link to this comment:

Share to:

Uploader Comments (raptorofaxys)

  • Can you check the link on the Yin paper or put up a cite? Thanks.

  • Hm, the link seems to work for me..? Youtube does appear to split it and insert a space on a line break, however, so it doesn't work if you just copy/paste it into your browser's URL bar. (I had to remove a space after the "c" in "cheveign" for it to work over here.)

    At worst, just google "YIN, a fundamental frequency estimator for speech and music" or "2002_JASA_YIN.pdf", it's in the first page in both cases.

    Let me know if that still doesn't work for you!

  • would there be any way to reduce the latency between picking a note and the midi output?

  • The pitch detection algorithm works by successive refinement; MIDI is the same as the regular tuner, but with fewer iterations. I tried to tweak the code to achieve the best compromise between latency and precision, but there wasn't much more I could do on the software front (without significant effort) to make the thing run faster. Hotspots are written in assembler and the rest of the compiler-generated code is pretty good. The next easiest gain would probably be on the hardware front.

  • Wonderful, this has inspired me to add this functionality into (hopefully) a custom homemade guitar body. But I do have a question: could you use a Fast Fourier Transform (which I do not fully understand yet) or something of the sort to make it polyphonic?

  • The Yin paper touches on polyphony - a challenge in its own right..! An FFT would be a great starting point, but the Arduino's atmega168 doesn't really have the horsepower required to crunch the numbers (though I'd be happy to be proven wrong ;-) ).

    One reason I chose Yin is because, unlike FFT, it is a time-domain approach; at the required precision, the implementation only requires about 350 bytes of RAM.  On the other hand, it's not amenable to polyphonic pitch detection.

see all

All Comments (10)

Sign In or Sign Up now to post a comment!
  • You said 'what's up' and didn't give me time to answer, which is very rude. I wasn't too offended, but others might be. Love the project, plan on attempting a simpler one myself. Cheers

  • congrats on getting the job.

  • Ducky, a FFT would work. People have done it on the Arduino (there's assembly libraries out there), but you want a fast one - or perhaps two, maybe use one like a dedicated DSP and have it spit a list of significant frequencies over serial.

    I have an ATmega 328, which has twice the RAM (2kb).

    I'm actually working on a similar project, but for a two-tone radio dispatch system. The average of peak approach seems like it may be more suited for my purposes.

  • Another one who wants a tutorial of how to make YIN pitch detection using Arduino!

Loading...

Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more