FEAPI : Feature Extraction plugin API


The context: audio feature extraction for MIR research and development

An increasingly important branch of music information retrieval (MIR) research deals with the extraction of musical content from audio data, in a way that it can be used e.g. for organizing or searching music databases. A first step towards that end is extracting low level features from the musical audio signal that can then serve as building blocks for constructing higher level, more semantically meaningful properties of the music.
Many applications in the MIR field require a large number of these features to be extracted from the audio signal. Different applications or research projects are using very similar or identical low level features, but they all use their own implementation of well-known and often not algorithmically complex features. A lot of redundant work is being done to "reinvent the wheel" each time. Furthermore, the integration of already implemented features in a new application is usually time-consuming even if the source code is available, and almost impossible if this is not the case.

Why a plugin API?

A plugin is considered to be a library that can be linked dynamically at runtime with a previously defined interface. For the host, using a plugin means to load the library and to use the exported functions during runtime.
Benefits of FEAPI at a quick glance are:

The presented API tries to provide all means for developers to enable these advantages.


FEAPI source code is available under a BSD license that allows both commercial and non-commercial use of the API (view license).


The following documentation is automatically extracted from the source code using Doxygen:


Everything is stored on SourceForge.net under the "feapi" project: http://sourceforge.net/projects/feapi/
Download the current release from here.

The SDK contains the source of plugins to extract the following features from audio:

Subversion access

The FEAPI subversion repository can be accessed in two ways:

  1. by browsing the code online
  2. by checking out the code using the following SVN repository URL (note: if you want to checkout the complete repository including branches and tags, just leave out the trailing trunk/ part): https://feapi.svn.sourceforge.net/svnroot/feapi/trunk/


Discussions or questions about the API, its practical use, or anything related should be held on the FEAPI mailing list or in the FEAPI forums. Both can be found on the SourceForge project page.


The following persons contributed to the project until now (listed alphabetically):


Alexander Lerch, Gunnar Eisenberg, Koen Tanghe: FEAPI: A LOW LEVEL FEATURE EXTRACTION PLUGIN API, Proc. of the 8th Int. Conference on Digital Audio Effects (DAFx'05), Madrid, Spain, September 20-22, 2005 (Download .PDF )

SourceForge.net Logo