UNPKG

genish.js

Version:
49 lines (36 loc) 1.01 kB
'use strict' let gen = require('./gen.js') let proto = { gen() { gen.requestMemory( this.memory ) let out = ` var ${this.name} = memory[${this.memory.value.idx}] if( ${this.name} === 1 ) memory[${this.memory.value.idx}] = 0 ` gen.memo[ this.name ] = this.name return [ this.name, out ] } } module.exports = ( _props ) => { let ugen = Object.create( proto ), props = Object.assign({}, { min:0, max:1 }, _props ) ugen.name = 'bang' + gen.getUID() ugen.min = props.min ugen.max = props.max const usingWorklet = gen.mode === 'worklet' if( usingWorklet === true ) { ugen.node = null utilities.register( ugen ) } ugen.trigger = () => { if( usingWorklet === true && ugen.node !== null ) { ugen.node.port.postMessage({ key:'set', idx:ugen.memory.value.idx, value:ugen.max }) }else{ gen.memory.heap[ ugen.memory.value.idx ] = ugen.max } } ugen.memory = { value: { length:1, idx:null } } return ugen }