JSFiddle - React, Tailwind, and code Playground

JavaScript

function ab2str(buf) {
		  return String.fromCharCode.apply(null, new Uint16Array(buf));
		}

		function str2ab(str) {
		  var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
		  var bufView = new Uint16Array(buf);
		  for (var i=0, strLen=str.length; i<strLen; i++) {
		    bufView[i] = str.charCodeAt(i);
		  }
		  return buf;
		}

		//var obj = {}
		
		var audioContext = new AudioContext()
		    
		var ajax = new XMLHttpRequest();
		ajax.open('GET', 
		          'http://localhost:3000/models/audio.mp3',
		          true)
		ajax.responseType = 'arraybuffer';

		ajax.addEventListener('load', function() {

		    var tostr = ab2str(this.response)
		    var toab = str2ab(tostr)

		    audioContext.decodeAudioData(toab, function(buffer) {

		    	var source = audioContext.createBufferSource();
					
				source.buffer = buffer;
				source.loop = true;
				source.loopStart = 10;
				source.loopEnd = 15;
				source.connect(audioContext.destination);
				source.start(0)
            })

	    })