oscillators
Version:
the finest javascript oscillators
51 lines (30 loc) • 696 B
JavaScript
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))
}