UNPKG

oscillators

Version:

the finest javascript oscillators

51 lines (30 loc) 696 B
var OZ = module.exports var tau = Math.PI * 2 OZ.sine = sine; OZ.saw = saw; OZ.saw_i = saw_i; OZ.triangle = triangle; OZ.square = square; OZ.sig = sig OZ.sq = square OZ.tri = triangle function sine(t, f) { return Math.sin(t * tau * f); }; function saw(t, f) { var n = ((t % (1 / f)) * f) % 1; // n = [0 -> 1] return -1 + (2 * n) }; function saw_i(t, f) { var n = ((t % (1 / f)) * f) % 1; // n = [0 -> 1] return 1 - (2 * n) }; function triangle(t, f) { return Math.abs(1 - t % (1/f) * f * 2) * 2 - 1 }; function square(t, f) { return t * f % 1 < .5 ? 1 : -1 }; function sig(t, f){ return 1 / (1 + Math.pow(Math.E, (t * Math.PI * 2 * f) % 12)) }