jmod
Version:
audio / dsp enveloping with some added features
50 lines (37 loc) • 1.3 kB
JavaScript
var offset = require('set-it-off')
var h1 = document.createElement('h1');
h1.textContent = "WHERE AM I?";
//document.body.appendChild(h1);
var canvas = document.createElement('canvas')
canvas.width = window.innerWidth
canvas.height = window.innerHeight
document.body.appendChild(canvas);
draw = canvas.getContext('2d')
offset.setParent(null, [-(window.innerWidth / 2), -(window.innerHeight/2)])
h1.style.position = 'absolute';
h1.style.left = offset.offset([0,0])[0] + 'px';
h1.style.top = offset.offset([0,0])[1] + 'px';
//h1.moveTo(0,0)
console.log(offset.offset([0,0]))
c = require('./')
var attack = [[0,0], [0,1], [1,1]]
var release = [[0,1], [.5,1], [1, .5]]
var sustain = [[0, .5], [0, 0], [.5, 1], [1, .5]]
//sustain = [[0, 0.5], [.5, .5], [1, .5]]
var decay = [[0,.5], [.5, .25], [1,0]]
var durations = [.25, .25, .4, .1]
var amod = {}
amod.curves = [attack, release, sustain, decay]//, release, sustain, decay];
amod.durations = durations
var x = c(amod)
console.log(x.envelope)
draw.lineWidth = 3
draw.beginPath()
draw.moveTo(offset.offset(0,0));
draw.strokeStyle = "black";
for(var i = 0; i < 1; i+=.001){
// console.log(x.envelope(i))
var off = offset.offset([0 + (window.innerWidth * i), window.innerHeight * x.envelope(i)])
draw.lineTo(off[0], off[1])
draw.stroke()
}