remove noises in frequencies (#508)

This commit is contained in:
an-lee
2024-04-10 21:01:54 +08:00
committed by GitHub
parent b2c8c99507
commit a3ceba97ea

View File

@@ -19,7 +19,27 @@ export const extractFrequencies = (props: {
quantization: bpm,
});
return frequencies;
const cleanedFrequencies = removeNoise(frequencies)
return cleanedFrequencies;
};
export const removeNoise = (numbers: number[], threshold: number = 0.2): number[] => {
numbers.forEach((num, i) => {
if (i === 0) return;
if (typeof num !== 'number') return;
const prevNum = numbers[i - 1] || num;
const nextNum = numbers[i + 1] || num;
const avgNeighbor = (prevNum + nextNum) / 2.0;
const deviation = Math.abs(num - avgNeighbor);
if (deviation > threshold * avgNeighbor) {
numbers[i] = null;
}
})
return numbers;
};
export function milisecondsToTimestamp(ms: number) {