JS-Xtract: A Javascript Library for Audio Feature Extraction

Due to the increasing capability of web platforms and the introduction of the Web Audio API, high resolution audio processing can now be implemented in the web browser, with processing loads managed client-side. This allows for the development of tools such as listening test environments and online audio processing tools, which can be developed natively using JavaScript and HTML 5. These tools often require audio feature extraction in order to perform analysis on time-series data, however incorporating libraries that are developed for compiled languages such as C, or Java can be difficult to implement due to… In this paper we present JS-Xtract, a light-weight JavaScript library for feature extraction, which is agnostic of the data’s type or origin. This allows users to apply feature extraction in realtime by incorporating it into a callback function, or to apply it to offline data.

Realtime example

To demonstrate this, the following demonstration uses your microphone and processes the data in real time on your device. No data is transmitted or captured in any way as all the processing is completely done in your browser. We give you an option of several functions to calculate with already and the results are shown in the graph.


Full documentation on the library is available here. This covers the features available, using the object-oriented or procedural functions and guides on using it with a Web Audio environment.


Source code for the library can be found on Github: https://github.com/nickjillings/js-xtract


N. Jillings, J. Bullock, R. Stables “JS-Xtract: A Realtime Audio Feature Extraction Library for the Web”, International Society for Music Information Retrieval Conference (ISMIR 2016), August 2016. [PDF] [bibtex]