MTG / essentia.js

JavaScript library for music/audio analysis and processing powered by Essentia WebAssembly
https://essentia.upf.edu/essentiajs
GNU Affero General Public License v3.0
645 stars 42 forks source link

JS bindings for SBic #124

Open not-matt opened 1 year ago

not-matt commented 1 year ago

What is the issue about?

What part(s) of Essentia.js is involved?

Description

Context

Issue #27

The current JS bindings for Essentia's WASM backend generated using Emscripten Embind lack a factory template to map STL data types such as std::complex and custom datatypes used in Essentia like TNT::Array*. As a result, several algorithms that expect these data types as input, parameter, or output variables are currently unavailable in the Essentia.js API.

Request

I kindly request the development of JS bindings for the SBic algorithm. This algorithm plays a crucial role in segmenting audio based on multiple musical features, allowing for enhanced analysis and understanding of audio content.

As a gesture of appreciation for the Essentia project and to support the development efforts, I'd like to offer a financial contribution to the project in return for the implementation of this feature.

Proposed Solution

Bindings and wrappers in the style of commits closing #28 and #30

Custom C++ extractor template will likely be of use: https://github.com/MTG/essentia.js/blob/dev/src/cpp/custom/README.md