code: function initScriptMode () {
  		//buffer source node
  		let bufferNode = context.createBufferSource()
  		bufferNode.loop = true
  		bufferNode.buffer = new AudioBuffer(context, {length: samplesPerFrame, numberOfChannels: channels})
  
  		node = context.createScriptProcessor(samplesPerFrame)
  		node.addEventListener('audioprocess', function tick (e) {
  			if (isStopped) return
  
  			let buf = fetch(e.inputBuffer.length)
  
  			util.copy(buf, e.outputBuffer)
  
  			//measure the moment when we have fed all the data for the last cb
  			//and trigger according callbacks
  			consume(buf.length)
  		})
  
  		//start should be done after the connection, or there is a chance it won’t
  		bufferNode.connect(node)
  		bufferNode.start()
  
  		return node;
  	}
docs: Init scriptProcessor-based rendering.
  Each audioprocess event triggers tick, which releases pipe