UNPKG

gibberish-dsp

Version:

Gibberish is designed to be an optimized API for audio synthesis using per-sample techniques.

35 lines (27 loc) 893 B
const g = require( 'genish.js' ) module.exports = function( Gibberish ) { const Envelopes = { AD : require( './ad.js' )( Gibberish ), ADSR : require( './adsr.js' )( Gibberish ), Ramp : require( './ramp.js' )( Gibberish ), export : target => { for( let key in Envelopes ) { if( key !== 'export' && key !== 'factory' ) { target[ key ] = Envelopes[ key ] } } }, factory( useADSR, shape, attack, decay, sustain, sustainLevel, release, triggerRelease=false ) { let env // deliberate use of single = to accomodate both 1 and true if( useADSR != true ) { env = g.ad( attack, decay, { shape }) }else { env = g.adsr( attack, decay, sustain, sustainLevel, release, { shape, triggerRelease }) env.advance = env.release } return env } } return Envelopes }