changeset 2500:32366178b6a8

Fix for #147 and #13
author Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk>
date Tue, 20 Sep 2016 17:55:56 +0100
parents 54782e20bc62
children 23c390902378
files js/core.js
diffstat 1 files changed, 10 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/js/core.js	Tue Sep 20 17:34:27 2016 +0100
+++ b/js/core.js	Tue Sep 20 17:55:56 2016 +0100
@@ -1700,7 +1700,9 @@
         // Extract the audio and zero-pad
         for (var ao of this.audioObjects) {
             var lengthDiff = length - ao.buffer.buffer.length;
-            ao.buffer = ao.buffer.copyBuffer(0, samplesToSeconds(lengthDiff, ao.buffer.buffer.sampleRate));
+            if (lengthDiff > 0) {
+                ao.buffer.buffer = ao.buffer.copyBuffer(0, samplesToSeconds(lengthDiff, ao.buffer.buffer.sampleRate));
+            }
         }
     };
 
@@ -1766,16 +1768,14 @@
         var startTime = this.specification.startTime;
         var stopTime = this.specification.stopTime;
         var copybuffer = new callee.constructor();
-        if (isFinite(startTime) || isFinite(stopTime)) {
-            copybuffer.buffer = callee.cropBuffer(startTime, stopTime);
+
+        copybuffer.buffer = callee.cropBuffer(startTime || 0, stopTime || callee.buffer.duration);
+        if (preSilenceTime != 0 || postSilenceTime != 0) {
+            copybuffer.buffer = copybuffer.copyBuffer(preSilenceTime, postSilenceTime);
         }
-        if (preSilenceTime != 0 || postSilenceTime != 0) {
-            if (copybuffer.buffer == undefined) {
-                copybuffer.buffer = callee.copyBuffer(preSilenceTime, postSilenceTime);
-            } else {
-                copybuffer.buffer = copybuffer.copyBuffer(preSilenceTime, postSilenceTime);
-            }
-        }
+
+        copybuffer.lufs = callee.buffer.lufs;
+        this.buffer = copybuffer;
 
         var targetLUFS = this.specification.parent.loudness || specification.loudness;
         if (typeof targetLUFS === "number" && isFinite(targetLUFS)) {