From e7997087074cad8fb77ab30b1324761147d45985 Mon Sep 17 00:00:00 2001
From: Eric Rosenbaum <eric.rosenbaum@gmail.com>
Date: Mon, 16 Dec 2019 17:05:29 -0500
Subject: [PATCH] Use for loop instead of filter (20x faster)

---
 src/containers/sound-editor.jsx | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/containers/sound-editor.jsx b/src/containers/sound-editor.jsx
index c68c30d05..5c5a57b54 100644
--- a/src/containers/sound-editor.jsx
+++ b/src/containers/sound-editor.jsx
@@ -362,9 +362,11 @@ class SoundEditor extends React.Component {
     }
     backupDownSampler (buffer, newRate) {
         log.warn(`Using backup down sampler for conversion from ${buffer.sampleRate} to ${newRate}`);
-        const newSamples = buffer.samples.filter((element, index) =>
-            index % 2 === 0
-        );
+        const newLength = Math.floor(buffer.samples.length / 2);
+        const newSamples = new Float32Array(newLength);
+        for (let i = 0; i < newLength; i++) {
+            newSamples[i] = buffer.samples[i * 2];
+        }
         return {
             samples: newSamples,
             sampleRate: newRate
-- 
GitLab