C++ library of algorithms to extract features from audio files, including Python bindings.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Dmitry Bogdanov 6c60535c64 Merge pull request #369 from WolfgangD/updateiosbuild 6 years ago
debian Generate documentation when building package 6 years ago
doc Add links to iOS cross-compilation FAQ to doc 6 years ago
packaging Update LibAv to 11.2 for building static examples 6 years ago
src Added inputSize parameter to GFCC algorithm 6 years ago
test Updated essentia-audio submodule 6 years ago
utils Merge branch 'mingw_port'; build scripts for dependencies 7 years ago
.gitignore cleaning 7 years ago
.gitmodules Added essentia-audio submodule 6 years ago
ACKNOWLEDGEMENTS First commit :-) 9 years ago
AUTHORS Added Andreas to the list of authors 8 years ago
COPYING.txt First commit :-) 9 years ago
Changelog Essentia 2.0 release 8 years ago
Essentia Licensing.txt Merge branch 'refs/heads/2.0' 7 years ago
FAQ.md Update FAQ.md 6 years ago
README.md Update docs for music extractors 6 years ago
VERSION Change version back to 2.1-dev 7 years ago
build_android.sh Updated script 6 years ago
essentia.vcproj First commit :-) 9 years ago
essentiaBindingsVC80.vcproj First commit :-) 9 years ago
essentiaVC80.vcproj First commit :-) 9 years ago
waf First commit :-) 9 years ago
wscript Updates iOS build settings to include bitcode support and x86_64 architecture when building for iOS simulator. 6 years ago



Essentia is an open-source C++ library for audio analysis and audio-based music information retrieval released under the Affero GPL license. It contains an extensive collection of reusable algorithms which implement audio input/output functionality, standard digital signal processing blocks, statistical characterization of data, and a large set of spectral, temporal, tonal and high-level music descriptors. The library is also wrapped in Python and includes a number of predefined executable extractors for the available music descriptors, which facilitates its use for fast prototyping and allows setting up research experiments very rapidly. Furthermore, it includes a Vamp plugin to be used with Sonic Visualiser for visualization purposes. Essentia is designed with a focus on the robustness of the provided music descriptors and is optimized in terms of the computational cost of the algorithms. The provided functionality, specifically the music descriptors included in-the-box and signal processing algorithms, is easily expandable and allows for both research experiments and development of large-scale industrial applications.

Documentation online: http://essentia.upf.edu


The library is cross-platform and currently supports Linux, Mac OS X, Windows, iOS and Android systems. Read installation instructions:

You can download and use prebuilt static binaries for a number of Essentia's command-line music extractors instead of installing the complete library

Quick start

Quick start using python:

Command-line tools to compute common music descriptors:

Asking for help


Official releases:

Github branches:

  • master: the most updated version of Essentia (Ubuntu 14.10 or higher, OSX); if you got any problem - try it first.

If you use example extractors (located in src/examples), or your own code employing Essentia algorithms to compute descriptors, you should be aware of possible incompatibilities when using different versions of Essentia.

How to contribute

We are more than happy to collaborate and receive your contributions to Essentia. The best practice of submitting your code is by creating pull requests to our github repository following our contribution policy. By submitting your code you authorize that it complies with the Developer's Certificate of Origin. For more detailes see: http://essentia.upf.edu/contribute

You are also more than welcome to suggest any improvements, including proposals for new algorithms, etc.