From a28ebb8a71967ef005d5a0c582de087bafcb193d Mon Sep 17 00:00:00 2001 From: Michael Winter Date: Mon, 20 Apr 2026 18:18:30 +0200 Subject: [PATCH] Fix label clicks to always use auto; reorder click handler: Shift=SC, Ramp=ramp, click=siren --- webapp/path_navigator.html | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/webapp/path_navigator.html b/webapp/path_navigator.html index bf7eb8f..bfcf8db 100644 --- a/webapp/path_navigator.html +++ b/webapp/path_navigator.html @@ -473,16 +473,12 @@ // Play each node using chordIndex + localId (let server calculate frequency) nodes.forEach((node) => { const localId = node.data('localId'); - // Label always uses auto (node's voice) + // Label always uses auto (node's voice) - never send sirenNumber const body = { chordIndex: chordIdx, nodeIndex: localId, ip: sirenIp, }; - // Only add sirenNumber if a specific siren is selected - if (selectedSiren > 0) { - body.sirenNumber = selectedSiren; - } fetch('/api/play-siren', { method: 'POST', @@ -741,7 +737,7 @@ // Handle label node clicks if (node.data('isLabel')) { const chordIdx = node.data('chordIndex'); - if (rampMode || isShift) { + if (rampMode) { rampToChord(chordIdx); } else { playChordOnSiren(chordIdx); @@ -753,18 +749,9 @@ const localId = node.data('localId'); const sirenIp = document.getElementById('sirenIp').value || "192.168.4.200"; - // Determine action: ramp or play - if (rampMode || isShift) { - // Ramp to siren - rampToChord(chordIndex, localId); - return; - } - - // Check if Shift key is held - send to SuperCollider + // 1. Shift+click → SuperCollider (FIRST) if (isShift) { - // Send to SuperCollider const endpoint = '/api/play-freq'; - const sirenIp = document.getElementById('sirenIp').value || "192.168.4.200"; const requestBody = { chordIndex: chordIndex, @@ -782,7 +769,13 @@ return; } - // Plain click: play to siren + // 2. Ramp mode ON → ramp to siren + if (rampMode) { + rampToChord(chordIndex, localId); + return; + } + + // 3. Plain click: play to siren const endpoint = '/api/play-siren'; const destination = 'siren';