mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-08-27 23:34:14 +00:00
Audio: log2 voice scaling (up to 8), wider detune spread
1 obs = solo, 3 = duo, 8 = trio, 15 = quartet, 30 = quintet, 60 = sextet. Wider detune (±8, ±13, ±18...) so stacked voices shimmer instead of sounding like the same oscillator copied.
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
+1
-1
@@ -91,7 +91,7 @@
|
||||
<script src="traces.js?v=1774135052" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="analytics.js?v=1774126708" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="audio.js?v=1774200683" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="audio-v1-constellation.js?v=1774204296" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="audio-v1-constellation.js?v=1774205147" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="live.js?v=1774205085" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="observers.js?v=1774290000" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
<script src="observer-detail.js?v=1774028201" onerror="console.error('Failed to load:', this.src)"></script>
|
||||
|
||||
Reference in New Issue
Block a user