From b8908b965e3a3d131e0ef57380745c9a1d8d6a0b Mon Sep 17 00:00:00 2001 From: arcattack Date: Thu, 16 Jul 2026 08:55:17 -0500 Subject: [PATCH] Audio: chirp ACTUALLY killed -- 9 configure-ticker triggers, typed -1 pad (task #50) The previous 'chirp killed' verification was WRONG: it checked the 1/s playing snapshot (which misses 0.12s pulses) instead of delivery counts -- the run had 186 ProgramButton deliveries. Corrected metric + trigcfg now prints its target component, revealing NINE thresh=-1 Start triggers on the configure-ticker sequence: ConfigureActivePress on Avionics + Myomers (backed real, -1) AND SEVEN more subsystems still on the inert pad (0 = "button 0 held" -> ticker on). Fix: a TYPED pad in the missing-attribute redirect -- ConfigureActivePress resolves to a shared static int = -1 (the authored none-held idle) instead of the zero pad; every other missing attr keeps the zero pad. Covers all configurable subsystems at once with no layout changes; self-clears per subsystem as each gets a real driven member. VERIFIED BY DELIVERY COUNT: ProgramButton01 deliveries = 0 (was 31-186/run); 7 attrs took the -1 pad; the rest of the soundscape intact (weapon cycles, loops, translocate). Co-Authored-By: Claude Opus 4.8 (1M context) --- engine/MUNGA/AUDWTHR.h | 2 +- engine/MUNGA/WATCHER.cpp | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/engine/MUNGA/AUDWTHR.h b/engine/MUNGA/AUDWTHR.h index abb6b49..bf7c63f 100644 --- a/engine/MUNGA/AUDWTHR.h +++ b/engine/MUNGA/AUDWTHR.h @@ -307,7 +307,7 @@ template triggerOn = False; if (getenv("BT_ATTRBIND_LOG")) { static int s_tc=0; if (s_tc++<80) - DEBUG_STREAM << "[trigcfg] attrPtr=" << (void*)attributePointer + DEBUG_STREAM << "[trigcfg] attrPtr=" << (void*)attributePointer << " comp=" << (void*)audioComponentSocket.GetCurrent() << " thresh=" << attributeValueThreshold << " inverse=" << (int)inverseTrigger << " onID=" << (int)controlIDOn << "/" << controlValueOn diff --git a/engine/MUNGA/WATCHER.cpp b/engine/MUNGA/WATCHER.cpp index 7acb2c0..fd0227d 100644 --- a/engine/MUNGA/WATCHER.cpp +++ b/engine/MUNGA/WATCHER.cpp @@ -118,10 +118,22 @@ AttributeWatcher::AttributeWatcher( if (attributePointer == NULL) { static char s_missingAttrPad[64] = {0}; + // TYPED pad: ConfigureActivePress is the held-configure-button INDEX whose + // authored idle is -1 (none) -- NINE audio triggers gate the configure-mode + // ticker on it with threshold -1 across the configurable subsystems. The + // zero pad read as "button 0 held" and started the ticker at load (the + // eternal 2.7/s chirp). Redirect this attribute to a -1 pad; others keep 0. + static int s_configureIdlePad = -1; + CString configure_name("ConfigureActivePress"); + if (attribute_name == configure_name) + attributePointer = &s_configureIdlePad; + else + attributePointer = s_missingAttrPad; if (getenv("BT_AUDIO_LOG")) DEBUG_STREAM << "[attrnull] " << subsystem_name << "." << attribute_name - << " not reconstructed -> inert pad\n" << std::flush; - attributePointer = s_missingAttrPad; + << " not reconstructed -> " + << (attributePointer == (void*)&s_configureIdlePad ? "-1 pad" : "inert pad") + << "\n" << std::flush; } Check_Pointer(attributePointer);