Multiple fundamental frequency estimation system described in the paper "Efficient methods for joint estimation of multiple fundamental frequencies in music signals"
C++ C Objective-C Makefile
Switch branches/tags
Nothing to show
Clone or download
Latest commit 5ad6c8f Sep 26, 2016
Permalink
Failed to load latest commit information.
bin
objs Initial commit (code from 2012) Sep 26, 2016
src Initial commit (code from 2012) Sep 26, 2016
.gitignore Initial commit (code from 2012) Sep 26, 2016
COPYING Initial commit (code from 2012) Sep 26, 2016
Makefile Initial commit (code from 2012) Sep 26, 2016
README.md Updated README Sep 26, 2016

README.md

Multiple fundamental frequency estimation system

This is the method described in:

A. Pertusa and J.M. Iñesta, "Efficient methods for joint estimation of
multiple fundamental frequencies in music signals", EURASIP
Journal on Advances in Signal Processing, vol. 2012, pp. 27 (2012)

It takes an input WAV file and outputs a MIDI file. The input file must be WAV, MONO, and with 22kHz or 44kHz sampling rate

Compilation

To compile the source code in Linux or MacOS, type from the command line:

make

The software requires libsndfile and fftw3 libraries. Both are standard in Linux distributions and they can be obtained from the corresponding package installer. In MacOS, they can be downloaded from:

http://www.mega-nerd.com/libsndfile/ http://www.fftw.org/

Boost library is also required. It is standard in Linux distributions, and in MacOSX it can be downloaded from:

http://www.boost.org/

Boost needs to be extracted, but it is not necessary to compile it. If it was downloaded from boost webpage, then change the path in the Makefile. If it was installed via a package installer, the Makefile does not need to be changed.

Usage

Once compiled, the basic syntax is:

./alg input.wav -o output.mid

Some parameters can be controlled from command line. To view the syntax, please type:

./alg --help

These are the calls that were used to evaluate the methods in the results section:

Extended method without tracking:

	alg input.wav -o output.mid -clean

Extended method with tracking:

	alg input.wav -o output.mid -fixsp

Extended method merging information within inter-onset frames.

In this case, onset times must be previously extracted and stored into onsetsfile.txt:

	alg input.wav -loadonsets onsetsfile.txt -mergeIOI -clean -o output.mid