{% extends "layout.html" %} {% set title = 'Overview' %} {% block body %}
Essentia is an open-source C++ library for audio analysis and audio-based music information retrieval. It provides a reusable collection of algorithms mainly used to extract features from audio files. The library provide Python bindings, which means that you can control Essentia and write scripts that use Essentia’s features from within Python (just as you would in Matlab). There is also a streaming mode in which you can connect algorithms and run them automatically instead of specifying explicitly the order of execution (such as PureData or Max/MSP). The advantage of the streaming mode is that it requires less boilerplate code and uses less memory.
Essentia is not a framework, but rather a collection of algorithms wrapped in a library. It doesn’t provide common high-level logic for descriptor computation (therefore, you are not locked into a certain way of doing things). It rather focuses on the robustness, performance and optimality of the provided algorithms, as well as ease of use. The flow of the analysis is decided and implemented by the user, while Essentia is taking care of the implementation details of the algorithms being used. A number of predefined executable extractors for the available music descriptors are provided with the library as examples, however they should not be considered as the only correct way of doing things.
Essentia currently features the following algorithms (among others):
Introduction Building and installing Essentia Algorithms overview Python tutorial for beginners Using extractors out-of-box |
Design Overview "Standard" mode how-to Streaming mode architecture "Streaming" mode how-to Algorithm reference |
Extending Essentia Extending Essentia "streaming" Composite API Execution network algorithm |
Doxygen C++ documentation Coding guidelines Contents |