[R] Computing fundamental harmonics from a periodogram

Uwe Ligges ligges at statistik.uni-dortmund.de
Wed Apr 11 16:19:32 CEST 2007

hadley wickham wrote:
> On 4/11/07, Uwe Ligges <ligges at statistik.uni-dortmund.de> wrote:
>> hadley wickham wrote:
>> > Dear all,
>> >
>> > I'm trying to finding the fundamental harmonics (ie. peaks in a
>> > periodogram) from a time series (extracted from an mp3).  For example,
>> > if I look at
>> >
>> > spectrum(fdeaths, spans = c(3,3))
>> A heuristical procedure for finding fundamentals of a monophonic sound
>> can be found in package tuneR. For a short example how to use it, type:
>> install.packages("tuneR")
>> library(tuneR)
>> ?tuneR
>> For polyphonic sound, I do not know any method that is both sufficiently
>> fast (i.e. calculates results for a 1 minute sound in less than a day)
>> and accurate.
> Thanks Uwe, I have been using tuneR already, but I have been unable to
> extract the peaks out of the periodogram.  I'm trying to follow along
> @book{wieczorkowska:2005,
>     Author = {Wieczorkowska, Alicja and Synak, Piotr and Lewis, Rory and
> Ra{\AA}, Zbigniew W.},
>     Publisher = {Springer},
>     Title = {Extracting Emotions from Music Data},
>     Year = {2005}}
> http://www.springerlink.com/index/LRC0995XXL5M12X4.pdf
> but need the harmonics to calculcate most of the variables they are using.

Interesting! Printer is already working to make a hardcopy.

To your problem:
Even voting which harmonics are for which fundamental is difficult, 
since for polyphony, the problem is not identifiable (i.e. there is no 
general unique solution; e.g. quints, octaves etc. do share some 
partials) ...

I know of some heuristics by a physician in our university who has 
invented an algorithm (still unpublished) that extracts the partials 
(and of course has the problems mentioned above for polyphony) on its 
way to another target. We (i.e. a phd student rather than me) are in the 
progress of trying to implement the algorithm - which appears to be 
rather complicated  ...


> Hadley

More information about the R-help mailing list