0.3.1 • Published 5 years ago

sonify v0.3.1

Weekly downloads
1
License
ISC
Repository
-
Last release
5 years ago

Sonify

A module that allows you to sonify timeseries data. The Sonify class will scale your data to a given pitch range and song length, and then allow you play it in the browser using the Web Audio API.

The duration of a note is calculated by measuring the time between two data points. This is then scaled to the timeframe provided by songLength. You can optionally set staticRythm: true to disregard timestamps and give each data point an equal note length.

Usage

import Sonify from "sonify";

const data = [
  [1536969666906, 1],
  [1546969674206, 2],
  [1556966695555, 4.3],
  [1566959697655, 2.3],
  [1576669693906, 3]
];

// Instantiate a new Sonify instance with our data,
// with a song length of 10 seconds. Resulting pitches
// should span 3 octaves, starting from C06.
const Sonifier = new Sonify({
  data, 
  songLength: 10,
  octaves: 3,
  baseOctave: 6,
  glissando: true,
  staticRhythm: false,
  onEnded: () => console.log("that's all folks!")
});

Sonifier.play();

console.log(Sonifier.isPlaying); // true

Sonifier.stop();

API

Sonify constructor options

* = required

NameTypeSample ValueDescriptionDefault
data*Array<Array>[[1586969694206, 2.3], [1596969695555, 5.3]]Two dimensional array of data points
songLength*number60Length of the generated song in seconds
volumenumber0.05The volume of the song, from 0.0 to 1.0.0.05
pitchesArray["A", "C#", "E"]Array of pitch names to use. Default is all 12 chromatic notes["C", "C#", "D", "D#", "E", "F", "Gb", "G", "A", "Ab", "Bb", "B"]
octaveRangenumber2Number of octaves that the song should span.3
baseOctavenumber4Starting octave for the sonification. There are 9 octaves available, so baseOctave must be less than 9 - octaveRange.6
glissandobooleantrueWhether or not to glide from one pitch to another. With this option enabled you can clearly hear the shape of the data.false
staticRhythmbooleanfalseDisregard timestamps and give each data point an equal note length by dividing the provided songLength by the number of data points.false
onEndedfunction() => console.log("That's all folks")Callback that is invoked when the song is finished playing

Methods

Sonify.prototype.play()

Initiates playback of the provided data

Sonify.prototype.stop()

Stops playback and clears the web audio context

Developers

0.3.1

5 years ago

0.3.0

5 years ago

0.2.4

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago