gibberish-dsp
Version:
Gibberish is designed to be an optimized API for audio synthesis using per-sample techniques.
35 lines (27 loc) • 893 B
JavaScript
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
}