2014-09-20 19:18:08 +00:00
|
|
|
define(["Tone/core/Tone", "Tone/component/Envelope"], function(Tone){
|
|
|
|
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @class An Envelope connected to a gain node which can be used as an amplitude envelope.
|
|
|
|
*
|
|
|
|
* @constructor
|
|
|
|
* @extends {Tone.Envelope}
|
|
|
|
* @param {Tone.Time|Object=} attack the attack time or an options object will all of the parameters
|
|
|
|
* @param {Tone.Time=} decay the decay time
|
|
|
|
* @param {number=} sustain the sustain amount
|
|
|
|
* @param {Tone.Time=} release the release time
|
|
|
|
*/
|
|
|
|
Tone.AmplitudeEnvelope = function(){
|
|
|
|
|
|
|
|
Tone.Envelope.apply(this, arguments);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* the input node
|
|
|
|
* @type {GainNode}
|
|
|
|
*/
|
2014-11-02 01:55:19 +00:00
|
|
|
this.input = this.output = this.context.createGain();
|
|
|
|
|
|
|
|
this._scaleExp.connect(this.output.gain);
|
2014-09-20 19:18:08 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
Tone.extend(Tone.AmplitudeEnvelope, Tone.Envelope);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* clean up
|
|
|
|
*/
|
|
|
|
Tone.AmplitudeEnvelope.prototype.dispose = function(){
|
|
|
|
Tone.Envelope.prototype.dispose.call(this);
|
|
|
|
};
|
|
|
|
|
|
|
|
return Tone.AmplitudeEnvelope;
|
|
|
|
});
|