|  | var audioFileChooser = document.getElementById('audioFileChooser');
audioFileChooser.addEventListener('change', readFile);
function readFile() {
  // TODO: deal with multiple files
  var fileReader = new FileReader();
  fileReader.readAsArrayBuffer(audioFileChooser.files[0]);
  fileReader.addEventListener('load', function(ev) {
    processFile(ev.target.result);
  });
}
function processFile(file) {
  var context = new window.AudioContext();
	context.decodeAudioData(file, function(buffer) {
  	var source = context.createBufferSource();
  	source.buffer = buffer;
  	source.loop = false;
  	source.connect(context.destination);
  	source.start(0); 
	});
}
function generateOutputFile(fileContents) {
  var textFileURL = null;
  var blob = new Blob([fileContents], {type: 'text/plain'});
  textFileURL = window.URL.createObjectURL(blob);
  return textFileURL;
}
var outputFileHolder = document.getElementById('outputFileHolder');
var downloadLink = document.createElement('a');
downloadLink.setAttribute('download', 'test.txt');
downloadLink.href = generateOutputFile("this is a test");
downloadLink.innerHTML = 'download link';
outputFileHolder.appendChild(downloadLink);
 |