stop(label){
		if ( !( this.source === 'mic' ) ) {
			if ( !(this.gain && this.gain.length) ){
				Object(_common__WEBPACK_IMPORTED_MODULE_2__["logMessage"])('You tried to stop a Wad that never played. ', 2);
				Object(_common__WEBPACK_IMPORTED_MODULE_2__["logMessage"])(this, 2);
				return; // if the wad has never been played, there's no need to stop it
			}
			else if ( label ) {
				for ( var i = 0; i < this.gain.length; i++ ) {
					if ( this.gain[i].label === label ) {
						this.gain[i].gain.cancelScheduledValues(_common__WEBPACK_IMPORTED_MODULE_2__["context"].currentTime);
						this.gain[i].gain.setValueAtTime(this.gain[i].gain.value, _common__WEBPACK_IMPORTED_MODULE_2__["context"].currentTime);
						this.gain[i].gain.linearRampToValueAtTime(.0001, _common__WEBPACK_IMPORTED_MODULE_2__["context"].currentTime + this.env.release);


					}
				}
			}
			else if ( !label ) {
				this.gain[0].gain.cancelScheduledValues(_common__WEBPACK_IMPORTED_MODULE_2__["context"].currentTime);
				this.gain[0].gain.setValueAtTime(this.gain[0].gain.value, _common__WEBPACK_IMPORTED_MODULE_2__["context"].currentTime);
				this.gain[0].gain.linearRampToValueAtTime(.0001, _common__WEBPACK_IMPORTED_MODULE_2__["context"].currentTime + this.env.release);
				try {
					this.soundSource.stop(_common__WEBPACK_IMPORTED_MODULE_2__["context"].currentTime + this.env.release);
				}
				catch(e){
					/*
						Safari for iOS (and maybe other browsers)
						can't seem to handle calling stop() on a soundSource that already had stop() scheduled.
						The spec says it should be fine, and cancel previous calls to stop, 
						but Safari is throwing an error -- InvalidStateError: The object is in an invalid state.
						I'm not really sure why this is happening, but at least we can manually run the ended event handler.
					*/
					Object(_common__WEBPACK_IMPORTED_MODULE_2__["logMessage"])(e,2);
					var that = this;
					setTimeout(function(){
						that.soundSource.dispatchEvent(new Event('ended'));
						that.soundSource.onended = null;
					}, this.env.release * 1000);
				}
			}
		}
		else if (_common__WEBPACK_IMPORTED_MODULE_2__["permissionsGranted"].micConsent ) {
			this.mediaStreamSource.disconnect(0);
		}
		else { Object(_common__WEBPACK_IMPORTED_MODULE_2__["logMessage"])('You have not given your browser permission to use your microphone.');}
		if ( this.tremolo ) {
			this.tremolo.wad.stop();
		}
	}
@param {string} [label] - If you want to stop a note playing from this wad that is not the most recently triggered note, you can pass in the label of the notes you want to stop.