Triple Oscillator Triangle Synthesizer AKA tri-tri AKA TOTS
(an experiment in publishing web audio synths to npm, much like https://www.npmjs.com/package/drone-e-o-synth)
DEMO: a lil game in which you must show different colors to the camera in order to get it to perform a more pleasing drone.
var context = new (window.AudioContext || window.webkitAudioContext)()var makeTriTri = require('tri-tri')var triTri = makeTriTri(context)
makeTriTri returns an object that posses the following methods:
triTri.connect(context.destination)// connect yr triTri to the audio context destination, or to other nodestriTri.keys()// => ['root', 'third', 'fifth', 'delay', 'pregain', 'filter', lowFilter', 'distortion', 'volume']// returns a list of keys to audio nodes, so you can do stuff like triTri.source.type = "square" or whatever.// Mostly there for debugging. I guess hopefully they will always be named such that you can guess which type of node they will be....triTri.start() // begin making noisetriTri.updateNote("C4", "pentMin") // update the root note/scalevar data = triTri.export() => exports the current state of the audio nodes to a json objecttriTri.import(data) => resets state of audio nodes from JSON object
Can theoretically use this with https://www.npmjs.com/package/web-audio-ui