diff options
Diffstat (limited to 'client/index.js')
| -rw-r--r-- | client/index.js | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/client/index.js b/client/index.js index 24026fc..a7bdd9e 100644 --- a/client/index.js +++ b/client/index.js @@ -156,6 +156,7 @@ function add(i, j) { Math.round(base_x), Math.round(base_y), ); + const isEqualTemperament = scale.name === "equal"; const div = document.createElement("div"); @@ -187,9 +188,20 @@ function add(i, j) { } let a_inv = a * denominator; let b_inv = b * numerator; - let ba_gcd = gcd(a_inv, b_inv); - let a_disp = a_inv / ba_gcd; - let b_disp = b_inv / ba_gcd; + let a_disp, b_disp; + if (scale.name === "hyperbolic") { + a_inv *= Math.round(base_y) + 1; + b_inv *= Math.round(base_y) + 1; + let ba_gcd = gcd(Math.round(a_inv), Math.round(b_inv)); + a_disp = Math.round(a_inv / ba_gcd); + b_disp = Math.round(b_inv / ba_gcd); + // a_disp = Math.round(a_inv); + // b_disp = Math.round(b_inv); + } else { + let ba_gcd = gcd(a_inv, b_inv); + a_disp = a_inv / ba_gcd; + b_disp = b_inv / ba_gcd; + } frac = Math.log2(isEqualTemperament ? interval : aa / bb) % 1; @@ -322,9 +334,13 @@ function bind() { .addEventListener("click", () => document.querySelector("#help").classList.toggle("visible"), ); - document.querySelector("#pythagorean").addEventListener("click", () => { - scaleMode = scales.findIndex((scale) => scale.name === "pythagorean"); - rebuild(); + Array.from(document.querySelectorAll(".mode")).forEach((el) => { + console.log(el.getAttribute("name")); + el.addEventListener("click", (event) => { + const name = el.getAttribute("name"); + scaleMode = scales.findIndex((scale) => scale.name === name); + rebuild(); + }); }); // Wheel to scroll |
