node package manager

drone-e-o-synth

drone-e-o-synth

PLAY THREE OF THEM AT THE SAME TIME WITH A SMART PHONE


NPM

WEB AUDIO SYNTH MODULEZZZ https://www.npmjs.com/package/drone-e-o-synth

An experiment in using NPM for building modular noise instruments.

Each instrument is an object filled with already-connected and setup audioNodes. The instrument responds to:

  • keys() => returns list of keys to audioNodes
  • connect(destination) => connect the output nodes to a destination or other nodes
  • start() => calls start() on all the source nodes
  • export() => returns JSON respresentation of the instrument
  • import(data) => loads a JSON of the instrument state.

From there, writing a module that auto-magically builds UI for each of the nodes shouldn't be too hard.


INSTALL

npm install drone-e-o-synth

EXAMPLE

var makeSynth = require('drone-e-o-synth')
var context = new (window.AudioContext || window.webkitAudioContext)()
var synth = makeSynth(context)
 
// synth is an object filled with audio nodes that are already connected together!
 
synth.connect(context.destination)
// connect yr synth to the audio context destination, or to other nodes
 
synth.keys() => ['source', 'filter', lowFilter', 'distortion', 'volume']
// returns a list of keys to audio nodes, so you can do stuff like synth.source.type = "triangle"
 
var data = synth.export() => exports the current state of the audio nodes to a json object
synth.import(data) => resets state of audio nodes from JSON object

DEV

# install dependencies
npm install
 
# start watchify
npm run watch
 
# start local server
python -m SimpleHTTPServer