docs: function( connection, options ) {
  
      options = options || {};
  
      this.connection = connection;
      this.channels = options.channels || 1;
      this.whisperId = options.whisperId;
      this.sampleRate = options.sampleRate || 48000;
      this.gain = options.gain || 1;
      this.bitDepth = options.bitDepth || 16;
      this.signed = options.signed !== undefined ? options.signed : true;
      this.endianness = options.endianness || 'LE';
  
      if( options && options.decodeStrings === false ) {
          throw new TypeError( 'MumbleInputStream does not support decoded string writes' );
      }
  
      this.processInterval = setInterval(
          this._processBuffer.bind( this ),
          this.connection.FRAME_LENGTH );
  
      this.processObserver = new EventEmitter();
      this.frameQueue = [];
  
      this.lastFrame = this._createFrameBuffer();
  
      this.lastFrameWritten = 0;
      this.queuedForPlay = 0;
      this.lastWrite = null;
      this.sent = 0;
  
      // Call the Writable constructor
      WritableStream.call( this, options );
  }