Harmonic product

This commit is contained in:
2023-02-19 21:33:48 -08:00
parent 030c2e39b4
commit 458585758a

View File

@@ -1,3 +1,5 @@
"use strict";
const NOTE_NAMES = [ const NOTE_NAMES = [
"A", "A",
"A#", "A#",
@@ -76,9 +78,18 @@ const tune = (analyser, data) => () => {
let max = 0; let max = 0;
let maxBucket = -1; let maxBucket = -1;
data.forEach((value, bucket) => { data.forEach((value, bucket) => {
if (value > max) { let j = 2;
max = value; let product = value;
while (bucket > 1 && j*bucket < data.length && j < 8) {
product *= data[j*bucket];
j += 1;
}
const geoMean = Math.pow(product, 1 / (j-1));
if (geoMean > max) {
max = geoMean;
maxBucket = bucket; maxBucket = bucket;
} }
}); });