alt text

Build Status npm version License: AGPL v3

Essentia.js enables extensive collection of music/audio analysis algorithms on your web-client and/or Node.js applications.

You can find the latest releases on Github or on npm.

Builds Reference

Core JS API

Imports core JS API interface as Essentia namespace.

  • essentia.js-core*.js - IIFE import for web browsers.
  • essentia.js-core.umd*.js - UMD import.
  • essentia.js-core.es*.js - ES6 style import.

WebAssembly (WASM) modules

Imports a custom Emscripten WASM Module object EssentiaWASM to the global namespace which has JS bindings to Essentia WASM back-end.

  • essentia-wasm.web.wasm - Essentia WASM back-end for asynchronous imports.
  • essentia-wasm.web.js - JS glue code for loading essentia-wasm-web.wasm (can be used with HTML <script> tag).
  • essentia-wasm.umd.js - Essentia WASM back-end for synchronous imports (UMD import and AudioWorklet support).
  • essentia-wasm.es.js - Essentia WASM back-end for synchronous imports (ES6 style import and AudioWorklet support).

Essentia WASM back-end

The Essentia WASM back-end allows us to use all the essentia standard mode C++ algorithms except the ones mentioned here in JavaScript. The WASM back-end provides JS bindings to the generated custom C++ wrapper using emscripten embind through EssentiaJS class.

The detailed documentation for Essentia C++ algorithms can be found here.

Add-on JS modules

EssentiaModel

Run pre-trained Essentia-Tensorflow audio ML models for music analysis.

  • essentia.js-model*.js - IIFE import for web browsers.
  • essentia.js-model.umd*.js - UMD import.
  • essentia.js-model.es*.js - ES6 import.

EssentiaPlot

  • essentia.js-plot*.js - IIFE import for web browsers.
  • essentia.js-plot.umd*.js - UMD import.
  • essentia.js-plot.es*.js - ES6 import.

EssentiaExtractor

  • essentia.js-extractor*.js - IIFE import for web browsers.
  • essentia.js-extractor.umd*.js - UMD import.
  • essentia.js-extractor.es*.js - ES6 import.

Note: '*' corresponds to whether it's a minified build or not.

TypeScript Interface

Essentia.js also provides TypeScript programming interface which can be found along with the builds. The build files (*.d.ts) can be found within the dist directory bundled on NPM. The source code can be found here.