logarithm - MATLAB semilog scaling -
i'm new matlab, , working on program deals frequency of human voice based on microphone input. biggest problem running musical notes (what dealing in project) increase in frequency exponentially, 1.059463^x each semitone in musical scale.
 in program dealing with, need both scale graph detected frequency close note number corresponds scale data can work note numbers in terms of notes , musical cents frequency graph can converted midi data. 
 other option have found has been create library of frequencies recorded frequencies compared to, unnecessarily complicated , time consuming. 
 so, in essence, trying scale data a2, frequency of 110hz, correspond note number 45. there way this? 
i think want:
f = 110; %// frequency in hz n = log10(f/440)/log10(2)*12+69; %// 440 hz (note a4) note 69 note = round(n); cents = round((n-note)*100);   examples: f = 110 gives
note =     45 cents =      0   f = 345 gives
note =     65 cents =    -21   in accordance this reference , this converter.
Comments
Post a Comment