Mercurial > hg > webaudioevaluationtool
changeset 2672:0b1c48849b4f
#192. Actually must be at least 1 frame, even partial
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Wed, 29 Mar 2017 15:56:22 +0100 |
parents | f734e5fa2065 |
children | 1f529b6e2d88 b9efbbe0d829 549e2f97a401 |
files | js/loudness.js |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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;