Browse Source

update

main
duff2013 9 years ago
parent
commit
56f7c7ab8e
1 changed files with 12 additions and 3 deletions
  1. +12
    -3
      README.md

+ 12
- 3
README.md View File

<b>Teensy 3.1 v2.0</b><br> <b>Teensy 3.1 v2.0</b><br>
</p> </p>


<img src="http://www.sciweavers.org/tex2img.php?eq=%20%5Ctau%20&bc=White&fc=Black&im=png&fs=12&ff=arev&edit=0" align="center" border="0" alt=" \tau " width="15" height="11" />

>Software algorithm ([YIN]) for guitar and bass tuning using a Teensy Audio Library. This audio object's algorithm can be some what memory and processor hungry but will allow you to detect with fairly good accuracy the fundamental frequencies f<sub>o</sub> from electric guitars and basses. >Software algorithm ([YIN]) for guitar and bass tuning using a Teensy Audio Library. This audio object's algorithm can be some what memory and processor hungry but will allow you to detect with fairly good accuracy the fundamental frequencies f<sub>o</sub> from electric guitars and basses.
>>You can install this as a normal Arduino Library and will work with the Audio Library, no need to edit the Audio libraries source now. >>You can install this as a normal Arduino Library and will work with the Audio Library, no need to edit the Audio libraries source now.


\_/ \_/


>Many optimizations have been done to the [YIN] algorithm for frequencies between 29-360Hz. >Many optimizations have been done to the [YIN] algorithm for frequencies between 29-360Hz.
>>While its still using a brute force method ( n<sup>2</sup> ) for finding the fundamental frequency f<sub>o</sub>, it is tuned to skip certain <b>tau</b> values and focus mostly on frequencies found in the bass and guitar.
>>While its still using a brute force method ( n<sup>2</sup> ) for finding the fundamental frequency f<sub>o</sub>, it is tuned to skip certain <b>tau</b> (<img src="http://rogercortesi.com/eqn/tempimagedir/eqn2874.jpg"/>) values and focus mostly on frequencies found in the bass and guitar.
>>>The input is double buffered so while you are processing one buffer it is filling the other to double throughput. >>>The input is double buffered so while you are processing one buffer it is filling the other to double throughput.
>>>>There are a few parameters that can be adjusted to "dial in" the algorithm for better estimations. The defaults are what I found that have the best trade off for speed and accuracy. >>>>There are a few parameters that can be adjusted to "dial in" the algorithm for better estimations. The defaults are what I found that have the best trade off for speed and accuracy.


(AUDIO_SAMPLE_RATE_EXACT / SAMPLE_SKIP). (AUDIO_SAMPLE_RATE_EXACT / SAMPLE_SKIP).
``` ```


<div>
<b>YIN Algorithm</b>
<ol>
<li><b>Difference Function -</b> Squared difference of the (signal - signal lag(<img src="http://rogercortesi.com/eqn/tempimagedir/eqn2874.jpg"/>))</li>
<img src="http://rogercortesi.com/eqn/tempimagedir/eqn1752.png" />
<li><b>Cumulative Mean Normalized Difference Function -</b> Calculate the cumulative mean on the normalised difference signal</li>
<img src="http://rogercortesi.com/eqn/tempimagedir/eqn3269.png" />
<li><b>Absolute Threshold -</b> Fix for subharmonic error with Autocorrelation, choose (<img src="http://rogercortesi.com/eqn/tempimagedir/eqn2874.jpg"/>) that gives a mininum <img src="http://rogercortesi.com/eqn/tempimagedir/eqn3518.png"/></li>
</ol>
</div>

[YIN]:http://recherche.ircam.fr/equipes/pcm/cheveign/pss/2002_JASA_YIN.pdf [YIN]:http://recherche.ircam.fr/equipes/pcm/cheveign/pss/2002_JASA_YIN.pdf

Loading…
Cancel
Save