additional examples

This commit is contained in:
Yotam Mann 2020-04-16 23:32:31 -04:00
parent 15d5584f97
commit 8b62ceddac

View file

@ -37,17 +37,15 @@ export interface EnvelopeOptions extends ToneAudioNodeOptions {
* / \
* / \
* ```
*
* @offline 2 1
* @example
* // an amplitude envelope
* const gainNode = new Tone.Gain();
* const env = new Tone.Envelope({
* attack: 0.1,
* decay: 0.2,
* sustain: 1,
* release: 0.8,
* });
* env.connect(gainNode.gain);
* }).toDestination();
* env.triggerAttackRelease(0.5);
* @category Component
*/
export class Envelope extends ToneAudioNode<EnvelopeOptions> {
@ -277,13 +275,16 @@ export class Envelope extends ToneAudioNode<EnvelopeOptions> {
* Can also be an array which describes the curve. Values
* in the array are evenly subdivided and linearly
* interpolated over the duration of the attack.
* @offline 1 1
* @example
* const env = new Tone.Envelope();
* const env = new Tone.Envelope().toDestination();
* env.attackCurve = "linear";
* env.triggerAttack();
* @example
* const env = new Tone.Envelope();
* const env = new Tone.Envelope().toDestination();
* // can also be an array
* env.attackCurve = [0, 0.2, 0.3, 0.4, 1];
* env.triggerAttack();
*/
get attackCurve(): EnvelopeCurve {
return this._getCurve(this._attackCurve, "In");
@ -294,9 +295,14 @@ export class Envelope extends ToneAudioNode<EnvelopeOptions> {
/**
* The shape of the release. See the attack curve types.
* @offline 1 1
* @example
* const env = new Tone.Envelope();
* const env = new Tone.Envelope({
* release: 0.5
* });
* env.releaseCurve = "linear";
* env.triggerAttack();
* env.triggerRelease(0.5);
*/
get releaseCurve(): EnvelopeCurve {
return this._getCurve(this._releaseCurve, "Out");
@ -307,9 +313,14 @@ export class Envelope extends ToneAudioNode<EnvelopeOptions> {
/**
* The shape of the decay either "linear" or "exponential"
* @offline 1 1
* @example
* const env = new Tone.Envelope();
* const env = new Tone.Envelope({
* sustain: 0.1,
* decay: 0.5
* });
* env.decayCurve = "linear";
* env.triggerAttack();
*/
get decayCurve(): BasicEnvelopeCurve {
return this._decayCurve;
@ -388,7 +399,9 @@ export class Envelope extends ToneAudioNode<EnvelopeOptions> {
* @param time When the release portion of the envelope should start.
* @example
* const env = new Tone.AmplitudeEnvelope().toDestination();
* const osc = new Tone.Oscillator().connect(env).start();
* const osc = new Tone.Oscillator({
* type: "sawtooth"
* }).connect(env).start();
* env.triggerAttack();
* // trigger the release half a second after the attack
* env.triggerRelease("+0.5");
@ -459,7 +472,8 @@ export class Envelope extends ToneAudioNode<EnvelopeOptions> {
/**
* Render the envelope curve to an array of the given length.
* Good for visualizing the envelope curve
* Good for visualizing the envelope curve. Rescales the duration of the
* envelope to fit the length.
*/
async asArray(length = 1024): Promise<Float32Array> {
const duration = length / this.context.sampleRate;