UNPKG

@sebastbake/music-tempo

Version:

Finding out tempo of the music

48 lines (41 loc) 1.43 kB
<!DOCTYPE HTML> <html> <head> <script src="../dist/browser/music-tempo.min.js"></script> </head> <body> <input type="file" name="" id="fileInput"> <p>Sample rate <input type="number" name="" id="sampleRateInput" value="44100" /></p> <script> var context = new AudioContext({ sampleRate: document.getElementById("sampleRateInput").value, }); var fileInput = document.getElementById("fileInput"); fileInput.onchange = function () { var files = fileInput.files; if (files.length == 0) return; var reader = new FileReader(); reader.onload = function(fileEvent) { context.decodeAudioData(fileEvent.target.result, calcTempo); } reader.readAsArrayBuffer(files[0]); } var calcTempo = function (buffer) { var audioData = []; // Take the average of the two channels if (buffer.numberOfChannels == 2) { var channel1Data = buffer.getChannelData(0); var channel2Data = buffer.getChannelData(1); var length = channel1Data.length; for (var i = 0; i < length; i++) { audioData[i] = (channel1Data[i] + channel2Data[i]) / 2; } } else { audioData = buffer.getChannelData(0); } var mt = new MusicTempo(audioData); console.log(mt); } </script> </body> </html>