Use for loop instead of filter (20x faster)

This commit is contained in:
Eric Rosenbaum committed 2019-12-16 17:05:29 -05:00
1 parent b699e76972
commit e799708707
1 file changed
+5 -3
+5 -3
View File
@@ -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