giuliomoro@1304: // Decode and perform WAVE file byte level manipulation giuliomoro@1304: giuliomoro@1304: find_subarray = function(arr,subarr) { giuliomoro@1304: var arr_length = arr.length; giuliomoro@1304: var subarr_length = subarr.length; giuliomoro@1304: var last_check_index = arr_length - subarr_length; giuliomoro@1304: giuliomoro@1304: positionLoop: giuliomoro@1304: for (var i=0; i <= last_check_index; i++) giuliomoro@1304: { giuliomoro@1304: for (var j=0; j< subarr_length; j++) giuliomoro@1304: { giuliomoro@1304: if (arr[i + j] !== subarr[j]) { giuliomoro@1304: continue positionLoop; giuliomoro@1304: } giuliomoro@1304: } giuliomoro@1304: return i; giuliomoro@1304: } giuliomoro@1304: return -1; giuliomoro@1304: }; giuliomoro@1304: giuliomoro@1304: function convertToInteger(arr) { giuliomoro@1304: var value = 0; giuliomoro@1304: for (var i=0; i= channels) { giuliomoro@1304: channel_index = 0; giuliomoro@1304: dst_index++; giuliomoro@1304: } giuliomoro@1304: } giuliomoro@1304: } giuliomoro@1304: giuliomoro@1304: function integerConvert(srcView,dstView,srcBytes) giuliomoro@1304: { giuliomoro@1304: //Convert integers of a Uint8Array of certain byte length into a Float32Array giuliomoro@1304: var number = dstView.length; giuliomoro@1304: var outBits = srcBytes*8; giuliomoro@1304: var endShift = 32 - outBits; giuliomoro@1304: if (srcView.length != dstView.length*srcBytes) giuliomoro@1304: { giuliomoro@1304: return -1; giuliomoro@1304: } giuliomoro@1304: for (var n=0; n