genish.js
Version:
35 lines (26 loc) • 1.01 kB
JavaScript
let gen = require( './gen' ),
windows = require( './windows' ),
data = require( './data' ),
peek = require( './peek' ),
phasor = require( './phasor' ),
defaults = {
type:'triangular', length:1024, alpha:.15, shift:0, reverse:false
}
module.exports = props => {
let properties = Object.assign( {}, defaults, props )
let buffer = new Float32Array( properties.length )
let name = properties.type + '_' + properties.length + '_' + properties.shift + '_' + properties.reverse + '_' + properties.alpha
if( typeof gen.globals.windows[ name ] === 'undefined' ) {
for( let i = 0; i < properties.length; i++ ) {
buffer[ i ] = windows[ properties.type ]( properties.length, i, properties.alpha, properties.shift )
}
if( properties.reverse === true ) {
buffer.reverse()
}
gen.globals.windows[ name ] = data( buffer )
}
let ugen = gen.globals.windows[ name ]
ugen.name = 'env' + gen.getUID()
return ugen
}