message: use local context when creating gain
diff: @@ -11,6 +11,11 @@ export abstract class OneShotSource<Options extends ToneAudioNodeOptions> extend
  */
  onended: () => void = noOp;
  + /**
  + * Sources do not have input nodes
  + */
  + input: undefined;
  +
  /**
  * The start time
  */
  @@ -29,14 +34,23 @@ export abstract class OneShotSource<Options extends ToneAudioNodeOptions> extend
  /**
  * The public output node
  */
  - output: Gain = new Gain(0);
  + output: Gain = new Gain({
  + context: this.context,
  + gain : 0,
  + });
  /**
  * The output gain node.
  */
  - private _gainNode = this.output;
  + protected _gainNode = this.output;
  - protected abstract _stopSource(time): void;
  + protected abstract _stopSource(time: Seconds): void;
  +
  + /**
  + * Start the source node at the given time
  + * @param time When to start the node
  + */
  + protected abstract start(time?: Time): this;
  /**
  * Start the source at the given time
  * @param time When to start the source
  @@ -49,6 +63,15 @@ export abstract class OneShotSource<Options extends ToneAudioNodeOptions> extend
  return this;
  }
  + /**
  + * Stop the source node at the given time.
  + * @param time When to stop the source
  + */
  + stop(time?: Time): this {
  + this._stopGain(time);
  + return this;
  + }
  +
  /**
  * Stop the source at the given time
  * @param time When to stop the source
  