Subject: Re: Robust method of fundamental frequency estimation. From: Matthias Milczynski <Matthias.Milczynski@xxxxxxxx> Date: Wed, 31 Jan 2007 23:38:35 +0100 List-Archive:<http://lists.mcgill.ca/scripts/wa.exe?LIST=AUDITORY>--Apple-Mail-37-849871257 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed You should take into account that each F0-estimation method is "accompanied" by robustnes features, it's never the pure autocorrelation or cepstrum. Even when originally developed for speech pitch-tracking (?) you should check out the PRAAT software (www.fon.hum.uva.nl/praat/), where also the C-sources are provided. I remember to check its autocorrelation-based method for real instrument recordings and the results where quite ok. Maybe you'll find some inspiration for your particular problem. There is also some Matlab source-code for the YIN algorithm avaiable but I cannot find the link anymore :-(. Success!! Milo On Jan 31, 2007, at 6:11 PM, Roisin Loughran wrote: > Dear list, > > I was wondering if any of you know the most robust way to calculate > the fundamental frequency of a note across the range of a variety > of instruments? > > I'm currently working on a matlab program and have tried using the > auto-correlation method and the cepstrum method but have found that > these both have difficulty in calculating f0 of timbre-rich tones > such as those from a piano - particularly in the lower pitch > ranges. Does anyone know of a method that is more reliable in these > regions or is it necessary that I investigate such complex tones by > a different means? From examining a number of the FFTs from these > signals it is tempting to just pick the first strongest partial - > the complex overtones just seem to confuse the more complicated > algorithms, but I realise that this is hardly a reliable approach. > > Any suggestion would be greatly appreciated, > Thanks in advance, > > Roisin Loughran > > New Yahoo! Mail is the ultimate force in competitive emailing. Find > out more at the Yahoo! Mail Championships. Plus: play games and win > prizes. -------------------------------------------------------------- Matthias Milczynski PhD Student ExpORL, Dept. Neurosciences, K.U.Leuven Belgium E-mail: Matthias.Milczynski@xxxxxxxx http://gilbert.med.kuleuven.be/Milczynski -------------------------------------------------------------- --Apple-Mail-37-849871257 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 <HTML><BODY style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; = -khtml-line-break: after-white-space; ">You should take into account = that each F0-estimation method is "accompanied" by robustnes features, = it's never the pure autocorrelation or cepstrum. Even when originally = developed for speech pitch-tracking (?) you should check out the PRAAT = software (<FONT class=3D"Apple-style-span" color=3D"#277726" = face=3D"Arial" size=3D"3"><SPAN class=3D"Apple-style-span" = style=3D"font-size: 13px;">www.fon.hum.uva.nl/</SPAN></FONT><FONT = class=3D"Apple-style-span" color=3D"#277726" face=3D"Arial" = size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: = 13px;"><B>praat</B></SPAN></FONT><FONT class=3D"Apple-style-span" = color=3D"#277726" face=3D"Arial" size=3D"3"><SPAN = class=3D"Apple-style-span" style=3D"font-size: 13px;">/</SPAN></FONT>), = where also the C-sources are provided. I remember to check its = autocorrelation-based method for real instrument recordings and the = results where quite ok. Maybe you'll find some inspiration for your = particular problem. There is also some Matlab source-code for the YIN = algorithm avaiable but I cannot find the link anymore :-(.=A0<DIV><BR = class=3D"khtml-block-placeholder"></DIV><DIV>Success!!</DIV><DIV><BR = class=3D"khtml-block-placeholder"></DIV><DIV>Milo<DIV><BR><DIV><DIV>On = Jan 31, 2007, at 6:11 PM, Roisin Loughran wrote:</DIV><BR = class=3D"Apple-interchange-newline"><BLOCKQUOTE type=3D"cite"><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><DIV = style=3D"font-family:times new roman, new york, times, = serif;font-size:12pt; font-family: times new roman; font-size: 16px; = "><DIV style=3D"font-family: times new roman; font-size: 16px; "><SPAN = class=3D"Apple-style-span" style=3D"font-family: times new roman; = font-size: 16px; ">Dear list,</SPAN><BR style=3D"font-family: times new = roman; font-size: 16px; "><BR style=3D"font-family: times new roman; = font-size: 16px; "><SPAN class=3D"Apple-style-span" style=3D"font-family: = times new roman; font-size: 16px; ">I was wondering if any of you know = the most robust way to calculate the fundamental frequency of a note = across the range of a variety of instruments?</SPAN><BR = style=3D"font-family: times new roman; font-size: 16px; "><BR = style=3D"font-family: times new roman; font-size: 16px; "><SPAN = class=3D"Apple-style-span" style=3D"font-family: times new roman; = font-size: 16px; ">I'm currently working on a matlab program and have = tried using the auto-correlation method and the cepstrum method but have = found that these both have difficulty in calculating f0 of timbre-rich = tones such as those from a piano - particularly in the lower pitch = ranges. Does anyone know of a method that is more reliable in these = regions or is it necessary that I investigate such complex tones by a = different means? =46rom examining a number of the FFTs from these = signals it is tempting to just pick the first strongest partial - the = complex overtones just seem to confuse the more complicated algorithms, = but I realise that this is hardly a reliable approach.</SPAN><BR = style=3D"font-family: times new roman; font-size: 16px; "><BR = style=3D"font-family: times new roman; font-size: 16px; "><SPAN = class=3D"Apple-style-span" style=3D"font-family: times new roman; = font-size: 16px; ">Any suggestion would be greatly = appreciated,</SPAN><BR style=3D"font-family: times new roman; font-size: = 16px; "><SPAN class=3D"Apple-style-span" style=3D"font-family: times new = roman; font-size: 16px; ">Thanks in advance,</SPAN><BR = style=3D"font-family: times new roman; font-size: 16px; "><BR = style=3D"font-family: times new roman; font-size: 16px; "><SPAN = class=3D"Apple-style-span" style=3D"font-family: times new roman; = font-size: 16px; ">Roisin Loughran</SPAN><BR style=3D"font-family: times = new roman; font-size: 16px; "></DIV></DIV><BR><HR size=3D"1">New Yahoo! = Mail is the ultimate force in competitive emailing. Find out more at = the<SPAN class=3D"Apple-converted-space">=A0</SPAN><A = href=3D"http://uk.rd.yahoo.com/mail/uk/taglines/default/championships/game= s/*http://uk.rd.yahoo.com/evt=3D44106/*http://mail.yahoo.net/uk/"><SPAN = class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 238); = -khtml-text-decorations-in-effect: underline; ">Yahoo! Mail = Championships</SPAN></A>. Plus: play games and win = prizes.</SPAN></BLOCKQUOTE></DIV><BR><DIV> <SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><SPAN = class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; = "><DIV>--------------------------------------------------------------</DIV= ><DIV><B style=3D"font-weight: bold; "><I style=3D"font-style: italic; = font-weight: bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style:= italic; font-weight: bold; "><SPAN class=3D"Apple-style-span" = style=3D"font-style: italic; font-weight: bold; "><SPAN = class=3D"Apple-style-span" style=3D"font-style: italic; font-weight: = bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style: italic; = font-weight: bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style:= italic; font-weight: bold; "><SPAN class=3D"Apple-style-span" = style=3D"font-style: italic; font-weight: bold; "><SPAN = class=3D"Apple-style-span" style=3D"font-style: italic; font-weight: = bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style: italic; = font-weight: bold; ">Matthias = Milczynski</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></I></B>= </DIV><DIV><B style=3D"font-weight: bold; "><I style=3D"font-style: = italic; font-weight: bold; "><SPAN class=3D"Apple-style-span" = style=3D"font-style: italic; font-weight: bold; "><SPAN = class=3D"Apple-style-span" style=3D"font-style: italic; font-weight: = bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style: italic; = font-weight: bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style:= italic; font-weight: bold; "><SPAN class=3D"Apple-style-span" = style=3D"font-style: italic; font-weight: bold; "><SPAN = class=3D"Apple-style-span" style=3D"font-style: italic; font-weight: = bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style: italic; = font-weight: bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style:= italic; font-weight: bold; ">PhD = Student</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></I></B></D= IV><DIV><B style=3D"font-weight: bold; "><I style=3D"font-style: italic; = font-weight: bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style:= italic; font-weight: bold; "><SPAN class=3D"Apple-style-span" = style=3D"font-style: italic; font-weight: bold; "><SPAN = class=3D"Apple-style-span" style=3D"font-style: italic; font-weight: = bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style: italic; = font-weight: bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style:= italic; font-weight: bold; "><SPAN class=3D"Apple-style-span" = style=3D"font-style: italic; font-weight: bold; "><SPAN = class=3D"Apple-style-span" style=3D"font-style: italic; font-weight: = bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style: italic; = font-weight: bold; ">ExpORL, Dept. Neurosciences, = K.U.Leuven</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></I></B>= </DIV><DIV><B style=3D"font-weight: bold; "><I style=3D"font-style: = italic; font-weight: bold; "><SPAN class=3D"Apple-style-span" = style=3D"font-style: italic; font-weight: bold; "><SPAN = class=3D"Apple-style-span" style=3D"font-style: italic; font-weight: = bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style: italic; = font-weight: bold; "><SPAN class=3D"Apple-style-span" style=3D"font-style:= italic; font-weight: bold; = ">Belgium</SPAN></SPAN></SPAN></SPAN></I></B></DIV><DIV><BR = class=3D"khtml-block-placeholder"></DIV><DIV>E-mail:</DIV><DIV><A = href=3D"mailto:Matthias.Milczynski@xxxxxxxx">Matthias.Milczynski@xxxxxxxx= d.kuleuven.be</A></DIV><DIV><A = href=3D"https://gilbert.med.kuleuven.be/web/index.php/Public:Members/Matth= ias_Milczynski"><SPAN class=3D"Apple-style-span" style=3D"color: rgb(0, = 0, 238); -khtml-text-decorations-in-effect: underline; = ">http://gilbert.med.kuleuven.be/Milczynski</SPAN></A></DIV><DIV>---------= -----------------------------------------------------</DIV><BR = class=3D"Apple-interchange-newline"></SPAN></SPAN></SPAN></SPAN></SPAN></S= PAN></SPAN></SPAN></SPAN></SPAN></SPAN> = </DIV><BR></DIV></DIV></BODY></HTML>= --Apple-Mail-37-849871257--