From 458585758a8b5f096165ced98fefd922a78cf99c Mon Sep 17 00:00:00 2001 From: Aaron Gutierrez Date: Sun, 19 Feb 2023 21:33:48 -0800 Subject: [PATCH] Harmonic product --- tuner.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tuner.js b/tuner.js index ce3e322..e79199d 100644 --- a/tuner.js +++ b/tuner.js @@ -1,3 +1,5 @@ +"use strict"; + const NOTE_NAMES = [ "A", "A#", @@ -76,9 +78,18 @@ const tune = (analyser, data) => () => { let max = 0; let maxBucket = -1; + data.forEach((value, bucket) => { - if (value > max) { - max = value; + let j = 2; + 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; } });