diff --git a/public/audio-v1-constellation.js b/public/audio-v1-constellation.js
index 64c9ca3d..fab01cb9 100644
--- a/public/audio-v1-constellation.js
+++ b/public/audio-v1-constellation.js
@@ -52,8 +52,9 @@
const filterFreq = mapRange(Math.min(hopCount, 10), 1, 10, 8000, 800);
// Volume from observations
- const volume = Math.min(0.5, 0.15 + (obsCount - 1) * 0.03);
- const voiceCount = Math.min(obsCount, 4);
+ const volume = Math.min(0.6, 0.15 + (obsCount - 1) * 0.02);
+ // More observers = richer chord: 1→1, 3→2, 8→3, 15→4, 30→5, 60→6
+ const voiceCount = Math.min(Math.max(1, Math.ceil(Math.log2(obsCount + 1))), 8);
// Audio nodes
const filter = audioCtx.createBiquadFilter();
@@ -85,7 +86,7 @@
const noteEnd = noteStart + duration;
for (let v = 0; v < voiceCount; v++) {
- const detune = v === 0 ? 0 : (v % 2 === 0 ? 1 : -1) * (v * 7);
+ const detune = v === 0 ? 0 : (v % 2 === 0 ? 1 : -1) * (v * 5 + 3); // ±8, ±13, ±18, ±23...
const osc = audioCtx.createOscillator();
const envGain = audioCtx.createGain();
diff --git a/public/index.html b/public/index.html
index b4c1389e..cfb2589f 100644
--- a/public/index.html
+++ b/public/index.html
@@ -91,7 +91,7 @@
-
+