code: function Bformat_vmic(audioCtx)
  {
      this.initialized = false;
      
      this.ctx = audioCtx;
      this.azi = 0;
      this.elev = 0;
      this.vmicGainNodes = new Array(4);
      this.vmicCoeff = 0.5;
      this.vmicPattern = "cardioid";
      this.in = this.ctx.createChannelSplitter(4);
      this.out = this.ctx.createGain();
      // Initialize vmic to forward facing cardioid
      this.vmicGains = [0.5*Math.SQRT2, 0.5, 0, 0];
      for (var i=0; i<4; i++) {
          this.vmicGainNodes[i] = this.ctx.createGain();
          this.vmicGainNodes[i].gain.value = this.vmicGains[i];
      }
      // Initialize orientation
      this.xyz = [1, 0, 0];
      // Create connections
      for (i=0; i<4; i++) {
          this.in.connect(this.vmicGainNodes[i],i,0);
          this.vmicGainNodes[i].connect(this.out);
      }
      
      this.initialized = true;
  }
docs: /////////////////////////////// /* B_FORMAT VIRTUAL MICROPHONE ///////////////////////////////