Skip to content

dy/gl-spectrogram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jun 25, 2017
4a9ece7 · Jun 25, 2017

History

46 Commits
Jun 27, 2016
Jun 22, 2016
Jun 27, 2016
Jun 27, 2016
Jun 27, 2016
Jun 14, 2016
Jun 25, 2017
Jun 27, 2016

Repository files navigation

gl-spectrogram experimental

Render spectrogram in webgl or 2d.

Spectrogram

Usage

npm install gl-spectrogram

var createSpectrogram = require('gl-spectrogram');

//lightweight 2d-canvas version
//var createSpectrogram = require('gl-spectrogram/2d');

var spectrogram = createSpectrogram({
	//placement settings
	container: document.body,
	canvas: canvas,
	context: 'webgl',

	//audio settings
	maxDecibels: -30,
	minDecibels: -100,
	maxFrequency: 20000,
	minFrequency: 20,
	sampleRate: 44100,
	weighting: 'itu',

	//grid settings
	grid: true,
	axes: false,
	logarithmic: true,

	//rendering settings
	smoothing: 0.5,
	fill: 'inferno',
	background: null,

	//useful only for webgl renderer, defines the size of data texture
	size: [1024, 1024]
});

//push frequencies data, view is shifted for 1 slice
spectrogram.push(data);

//for even timeflow push data in setTimeout, stream data event, scriptProcessorCallback etc.
setTimeout(() => {
	spectrogram.push(getData(data));
}, 100);

//set data colormap or background
spectrogram.setFill(colormap|color|pixels);
spectrogram.setBackground(color|array);

//update colors, grid view
spectrogram.update(opts);

//called when freqs being pushed
spectrogram.on('push', magnitudes => {});
spectrogram.on('update', magnitudes => {});

//latest frequencies data in db
spectrogram.magnitudes;
spectrogram.peak;

Related

Inspiration

About

🌌 Render spectrogram of any audio source in webgl or canvas2d

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published