genish.js
Version:
34 lines (24 loc) • 821 B
JavaScript
let gen = require( './gen.js' ),
accum= require( './phasor.js' ),
data = require( './data.js' ),
peek = require( './peek.js' ),
mul = require( './mul.js' ),
phasor=require( './phasor.js')
let proto = {
basename:'cycle',
initTable() {
let buffer = new Float32Array( 1024 )
for( let i = 0, l = buffer.length; i < l; i++ ) {
buffer[ i ] = Math.sin( ( i / l ) * ( Math.PI * 2 ) )
}
gen.globals.cycle = data( buffer, 1, { immutable:true } )
}
}
module.exports = ( frequency=1, reset=0, _props ) => {
if( typeof gen.globals.cycle === 'undefined' ) proto.initTable()
const props = Object.assign({}, { min:0 }, _props )
const ugen = peek( gen.globals.cycle, phasor( frequency, reset, props ))
ugen.name = 'cycle' + gen.getUID()
return ugen
}