Modularize and export essentia-wasm backend as EssentiaModule: an emsripten module object .
Unified behaviour for returning algorithms outputs in algorithms using JS objects as return type. #12
Add methods to efficiently convert from/to JS typed arrays and std::vector types. #13
EssentiaModule
JS API
As mentioned in #14, a high-level JS API has been added using Typescript to easily compile the wrapper to various JS targets.
For this, a python script and code template has been added to automatically generate typescript source including code comments from essentia python bindings documentation.
Core module
Essentia - essentia.js core JS API
Additional modules for utility
Also added the following sub-modules to extend essentia.js for easy-to-use use -cases for researchers and developers. This can be also considered as an example of how to extend the essentia.js core module for custom use-cases.
EssentiaExtractor - essentia.js easy-to-use feature extractor for mel spectrogram and HPCP chroma features as an example of extending essentia.js core.
EssentiaPlot - essentia.js HTML plotting tools for spectrogram and chroma features using Ploty.js layouts.
Builds and tools
Added rollup for bundling and compiling typescript sources to target JS files
essentia.js-code.*.jsessentia.js-plot.*.jsessentia.js-extractor.*.js
add dev dependencies to package.json and update build script cli.
API Documentation
Used JSDOC to automatically generate documentation and API reference from JS API comment blocks.
This PR address the following changes,
WASM modules
essentia-wasm
backend asEssentiaModule
: an emsripten module object .EssentiaModule
JS API
Typescript
to easily compile the wrapper to various JS targets.Core module
Essentia
- essentia.js core JS APIAdditional modules for utility
Also added the following sub-modules to extend essentia.js for easy-to-use use -cases for researchers and developers. This can be also considered as an example of how to extend the essentia.js core module for custom use-cases.
EssentiaExtractor
- essentia.js easy-to-use feature extractor for mel spectrogram and HPCP chroma features as an example of extending essentia.js core.EssentiaPlot
- essentia.js HTML plotting tools for spectrogram and chroma features using Ploty.js layouts.Builds and tools
Added rollup for bundling and compiling typescript sources to target JS files
essentia.js-code.*.js
essentia.js-plot.*.js
essentia.js-extractor.*.js
add dev dependencies to package.json and update build script cli.
API Documentation
JSDOC
to automatically generate documentation and API reference from JS API comment blocks.