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