wavesurfer.js
Version:
Interactive navigable audio visualization using Web Audio and Canvas
60 lines (47 loc) • 1.57 kB
JavaScript
;
// Create an instance
var wavesurfer = Object.create(WaveSurfer);
// Init & load
document.addEventListener('DOMContentLoaded', function () {
var options = {
container : '#waveform',
waveColor : 'violet',
progressColor : 'purple',
loaderColor : 'purple',
cursorColor : 'navy'
};
if (location.search.match('scroll')) {
options.minPxPerSec = 100;
options.scrollParent = true;
}
if (location.search.match('normalize')) {
options.normalize = true;
}
/* Progress bar */
(function () {
var progressDiv = document.querySelector('#progress-bar');
var progressBar = progressDiv.querySelector('.progress-bar');
var showProgress = function (percent) {
progressDiv.style.display = 'block';
progressBar.style.width = percent + '%';
};
var hideProgress = function () {
progressDiv.style.display = 'none';
};
wavesurfer.on('loading', showProgress);
wavesurfer.on('ready', hideProgress);
wavesurfer.on('destroy', hideProgress);
wavesurfer.on('error', hideProgress);
}());
wavesurfer.on('ready', function () {
// Init spectrogram plugin
var spectrogram = Object.create(WaveSurfer.Spectrogram);
spectrogram.init({
wavesurfer: wavesurfer,
container: '#wave-spectrogram'
});
});
// Init wavesurfer
wavesurfer.init(options);
wavesurfer.load('../media/demo.wav');
});