node-aubio
Bindings for aubio
Node.js bindings for aubio, a library for audio and music analysis, synthesis, and effects. aubio features include pitch tracking, onset detectin, beat tracking (tempo), phase vocoder, biquad and IIR filters.
Installation
In order to use this module, you will first need to have aubio installed on your system. See aubio's download page to find out how to get aubio for your system.
Install with npm
:
$ npm install @yjbeetle/aubio
Or add it to the "dependencies"
section of your package.json file.
node-aubio uses ffi to load aubio's dynamic library and use directly the aubio functions as well as ref to access C pointers efficiently. To find out more about ffi and ref, read the Node FFI Tutorial.
Examples
Start using node-aubio
simply adding a require statement:
var aubio = require('aubio');
The folder examples
contains different examples.
source_reader.js
will open and read a sound file, counting the number of
frames.
$ node node-aubio/examples/source_reader.js mediafile.wav
mfcc.js
will open a sound file and extract the MFCC coefficients from a file.
$ node node-aubio/examples/mfcc.js mediafile.wav
filter_source.js
will process a sound and filter it using an A-weighting
filter. The program takes two arguments: an input media file, and an output
file to write to:
$ node node-aubio/examples/filter_source.js input.wav output.wav
License
node-aubio is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.