|
|
|
|
|
|
|
|
/* |
|
|
/* |
|
|
TODO |
|
|
|
|
|
browser feature check (offlineaudiocontext might still be a bit niche) |
|
|
|
|
|
|
|
|
WAV2SKETCH utility - converts audio files to Teensy code |
|
|
|
|
|
Javascript version by Matt Bradshaw, converted from original by Paul Stoffregen |
|
|
|
|
|
|
|
|
|
|
|
HOW IT WORKS: |
|
|
|
|
|
File loader listens for a user choosing a file |
|
|
|
|
|
Check desired sample rate and encoding |
|
|
|
|
|
If no desired sample rate chosen, file's header is read to see if the sample rate can be determined |
|
|
|
|
|
Create an OfflineAudioContext with appropriate sample rate |
|
|
|
|
|
Read data from audio file as a series of floating point numbers |
|
|
|
|
|
Convert these floating point numbers to unsigned integers |
|
|
|
|
|
Add padding required by Teensy audio library |
|
|
|
|
|
Pack unsigned integers into 32-bit words, with u-law encoding if desired |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
var audioFileChooser = document.getElementById('audioFileChooser'); |
|
|
var audioFileChooser = document.getElementById('audioFileChooser'); |
|
|
|
|
|
|
|
|
audioFileChooser.addEventListener('change', readFile); |
|
|
audioFileChooser.addEventListener('change', readFile); |
|
|
|
|
|
|
|
|
|
|
|
if(!window.OfflineAudioContext) alert("Browser does not support OfflineAudioContext"); |
|
|
|
|
|
|
|
|
function readFile() { |
|
|
function readFile() { |
|
|
for(var i = 0; i < audioFileChooser.files.length; i++) { |
|
|
for(var i = 0; i < audioFileChooser.files.length; i++) { |
|
|
var fileReader = new FileReader(); |
|
|
var fileReader = new FileReader(); |