# HG changeset patch # User Nicholas Jillings # Date 1490799382 -3600 # Node ID 0b1c48849b4fbffb6f438d5567168980af0ad76f # Parent f734e5fa2065e910f61e5aa0e2df051c36aaa7f5 #192. Actually must be at least 1 frame, even partial diff -r f734e5fa2065 -r 0b1c48849b4f js/loudness.js --- a/js/loudness.js Wed Mar 29 15:52:15 2017 +0100 +++ b/js/loudness.js Wed Mar 29 15:56:22 2017 +0100 @@ -80,7 +80,7 @@ frame_size = Math.floor(buffer.sampleRate * frame_dur); step_size = Math.floor(frame_size * (1.0 - frame_overlap)); num_frames = Math.floor((buffer.length - frame_size) / step_size); - num_frames = Math.max(num_frames, 0); + num_frames = Math.max(num_frames, 1); MS = Array(buffer.numberOfChannels); for (var c = 0; c < buffer.numberOfChannels; c++) { @@ -89,7 +89,11 @@ for (var no = 0; no < num_frames; no++) { MS[c][no] = 0.0; for (var ptr = 0; ptr < frame_size; ptr++) { - var sample = data[no * step_size + ptr]; + var i = no * step_size + ptr; + if (i >= buffer.length) { + break; + } + var sample = data[i]; MS[c][no] += sample * sample; } MS[c][no] /= frame_size;