C++ library for audio and music analysis, description and synthesis, including Python bindings
Clone or download
dbogdanov Get rid of Xlib dependency in ffmpeg static builds
Get rid of Xlib (libX11) in static builds of ffmpeg to ensure the
builds run on bare a headless linux.

Also disable a few more options in the builds and do not build
Latest commit c5ea273 Dec 11, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
debian Generate documentation when building package Sep 14, 2015
doc Add a new research paper to applications Nov 22, 2018
packaging Get rid of Xlib dependency in ffmpeg static builds Dec 11, 2018
src Add flag for C++ standard (force C++11 by default) Nov 23, 2018
test fixed `testNyquist` for python 3 Jun 22, 2018
travis Deploy Travis builds to Owncloud Dec 4, 2018
utils Fix issues with UTF8 in build scripts Jan 17, 2018
.gitignore Update .gitignore Nov 2, 2016
.gitmodules Added essentia-audio submodule Feb 10, 2016
.travis.yml Fix Travis keys for deployment to Owncloud (cont.) Dec 10, 2018
ACKNOWLEDGEMENTS First commit :-) Jun 3, 2013
AUTHORS Update AUTHORS Dec 22, 2016
COPYING.txt First commit :-) Jun 3, 2013
Changelog Essentia 2.0 release Oct 28, 2013
Essentia Licensing.txt Add the libchromaprint license Jan 25, 2018
FAQ.md Add link to example waf template to docs Jan 10, 2018
MANIFEST.in Add script for python packaging May 9, 2018
README.md Fix broken links in README.md Jun 5, 2018
VERSION Update VERSION to 2.1-beta5-dev May 17, 2018
build_android.sh Updated script Sep 17, 2015
essentia.pc.in Build essentia.pc target in waf properly May 31, 2018
essentia.vcproj First commit :-) Jun 3, 2013
essentiaBindingsVC80.vcproj First commit :-) Jun 3, 2013
essentiaVC80.vcproj First commit :-) Jun 3, 2013
setup.py Fix PyPi classifiers formatting Jul 2, 2018
waf Update waf to 2.0.10 Aug 29, 2018
wscript Add flag for C++ standard (force C++11 by default) Nov 23, 2018



Build Status

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 details see: http://essentia.upf.edu/documentation/contribute.html

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