From 5ff5202038fd3649136af3d81ed18cca62f89b94 Mon Sep 17 00:00:00 2001 From: dev Date: Tue, 4 Aug 2026 12:43:39 +0200 Subject: [PATCH] docs(sound-engine): el stamp de sema y la matriz del modo audio, medidos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cierra los dos pendientes del hilo que no exigían los ojos del usuario, y sanea el documento, que afirmaba cosas ya cumplidas. STAMP DE SEMA — cerrado por las dos mitades. Dónde aterriza: con un MutationObserver sobre el subárbol del player, un clic en play estampa contact-activate y commit-toggle-play (commit · neutral) sobre el PROPIO play-button, no sobre el provider, y los limpia al cerrarse el hold. Que la regla del pack casa: A/B del pico de la envolvente dentro del mismo componente — transporte (play, mute) 0.0001, o sea silenciado; commit-complete 0.05, audible. Los osciladores sí se construyen, la ganancia nunca sube: es la resta de gain de D-AP2.7 funcionando. Queda anotada la trampa en la que caí, comparar ese pico con el 0.25 de un Button de otra página y creer ver una contradicción: el A/B tiene que ser dentro del mismo componente. F6, MATRIZ DEL MODO AUDIO — las 16 combinaciones (4 variantes × claro/oscuro × LTR/RTL) recorridas buscando partes colapsadas, botones estrujados y desbordes. Un solo defecto: en `bar` el time-slider colapsa a ancho 0 y el mute a 20px, en las CUATRO combinaciones, así que no es del eje ni del tema. Visto: el scrubber queda reducido a un punto ámbar entre 0:00 y 6:12 — una barra de app sin barra de progreso — mientras el volumen conserva su ancho completo. `card` y `row` limpias; lo que oculta `inline` es lo que su receta declara. HIGIENE — el documento decía «sin commitear» del rediseño y del waveform, y pedía un re-plan del player que ya está hecho. Verificado contra git: rediseño 2f872ef86, waveform 0ab6cc822 + 905012507, rutas limpias. La sección «Por dónde sigue» se reescribe con lo que queda de verdad: dos miradas del usuario y dos decisiones (qué cede en `bar`, y el rojo de audio-player en lint.test.ts). docs:check 0 sobre 564 documentos. Co-Authored-By: Claude Opus 5 --- docs/process/CONTINUE-sound-engine.md | 85 ++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 9 deletions(-) diff --git a/docs/process/CONTINUE-sound-engine.md b/docs/process/CONTINUE-sound-engine.md index 53024f802..b39ab4479 100644 --- a/docs/process/CONTINUE-sound-engine.md +++ b/docs/process/CONTINUE-sound-engine.md @@ -160,22 +160,89 @@ sema, que se queda en nivel `'full'`. El framework sí lo soporta Medido sobre la envolvente del propio earcon; una ganancia de bus aguas abajo NO se midió, así que el veredicto de «se oye o no» es del oído. +## Stamp de sema en navegador — CERRADO por las dos mitades (2026-08-04) ✅ + +**Mitad 1 — dónde aterriza.** Medido con un `MutationObserver` sobre el subárbol +del player, filtrando `data-event*`. Un clic en play produce, **sobre el propio +`[data-media-player-play-button]`** y no sobre el provider: + +| evento | familia · intent | fase | +| -------------------- | -------------------- | -------- | +| `contact-activate` | `contact` | `active` | +| `commit-toggle-play` | `commit` · `neutral` | `active` | + +…y a continuación los atributos se limpian, que es la ventana del hold +cerrándose. El stamp aterriza en el **botón**, como el morfo promete. + +**Mitad 2 — la regla del pack CASA.** A/B dentro del propio player, midiendo el +pico de la envolvente programada (parche sobre `AudioParam.prototype`): + +| disparo | pico | veredicto | +| -------------------------------- | ---------- | ---------- | +| play-button (transporte) | **0.0001** | silenciado | +| mute-button (transporte) | **0.0001** | silenciado | +| `commit-complete` (fin de pista) | **0.05** | audible | + +Los osciladores **sí se construyen** (8 parámetros programados) pero la ganancia +nunca sube: es la resta de gain de D-AP2.7 / pack D.5, funcionando. Un `