# Fotografía sonora · Estudio 04 / Color y pulso

Se conserva **Luz en suspensión** como imagen de referencia y se añaden cinco fotografías: Naranja, Alas y metal, Paso entre flores, Rojo/azul/amarillo y Rosa/turquesa. Son títulos de trabajo para este ejercicio. Las fotografías proceden de las galerías [Streetphoto](https://www.abrahamesli.com/street) y [Retratos](https://www.abrahamesli.com/portrait) de Abraham Esli; URL, hashes y originales están en `sources/selected.json`. Las otras dos imágenes de V3 no forman parte de esta selección. La versión anterior de Luz permanece en `../Escuchar-v3.html` y la composición narrativa de V2 en `../Escuchar-v2.html`.

## Qué se escucha

Seis piezas de **43 segundos**, 102 BPM, 16 compases de 4/4 y cuatro acordes: Dm, Bb, F, C. La forma tiene cuatro secciones: aparece el pulso, toma cuerpo, respira y vuelve. El compositor escribió esa estructura compartida, las células de llamada/respuesta, el registro y el criterio de continuidad. Las mediciones activan y modifican sus eventos. No se atribuye a los píxeles la autoría del compás o del sistema tonal.

- **Grave:** la celda más oscura de la mitad inferior de cada columna alimenta el bajo y el bombo. El croma puede anticipar la respuesta del bajo y elegir raíz o quinta. El segundo bombo requiere suficiente borde en esa misma celda. No hay bombo a negras constante.
- **Percusión:** la celda de mayor gradiente controla contratiempos y densidad de grano agudo. Una segunda selección, `0.65 × croma + 0.35 × borde normalizado`, puede aportar chasquidos en semicorcheas. Los umbrales se comparten entre todas las imágenes; no se rellenan huecos a mano.
- **Melodía:** las celdas de mayor gradiente aportan el contorno. Altura objetivo = `64 + 12 × (1 − y)` MIDI. Se mezcla 65% de esa altura con 35% de la nota previa para limitar saltos, y se afina al acorde dentro de MIDI 64–76. Una misma columna repite su nota dentro del compás. Croma y luminancia modifican acento, anticipaciones y timbre.
- **Campo de luz:** doce voces continuas, como en el estudio anterior, leen el brillo de 32 columnas con interpolación entre sus centros exactos. Ahora tienen menos protagonismo en la mezcla.

El patrón rítmico es una traducción diseñada. Cada par de columnas ocupa un compás, pero los eventos pueden anticipar o retrasar una entrada dentro de ese marco. La línea de lectura muestra el avance general; los símbolos muestran siempre las celdas realmente utilizadas, incluso cuando una nota anticipa la columna siguiente. Un punto de la imagen no equivale a una frecuencia natural universal.

`production/RITMO.md` documenta todas las fórmulas, umbrales, patrones, reglas de desempate y resultados de la revisión del compositor. `production/rhythm.py` es el módulo puro de partitura: mismas mediciones y parámetros producen los mismos eventos; no utiliza azar musical.

## Medición visual

Se mantiene la preparación del estudio anterior: EXIF, conversión ICC a sRGB cuando existe, supuesto sRGB para entradas sin perfil, transparencia sobre blanco, tamaño de análisis de 768 px en el lado largo (mínimo 32 × 24 para extremos). Luminancia relativa sRGB lineal: `Y = 0.2126 R + 0.7152 G + 0.0722 B`. Suavizado gaussiano sigma 1.2 píxeles; Sobel en x e y dividido entre 8; magnitud euclídea del gradiente. Retícula 24 filas × 32 columnas con límites enteros exactos.

Cada celda guarda luminancia media, desviación estándar, gradiente medio, media RGB, matiz HSV de esa media y promedio de `(máximo RGB − mínimo RGB)` por píxel como croma. Se analiza y muestra el mismo PNG. El algoritmo no reconoce personajes, cultura, emociones ni biografías. Un retoque, perfil o recorte puede cambiar la música. Los valores describen la fotografía procesada, no una medición fotométrica de la escena original.

## Síntesis y mezcla

Python, NumPy y SciPy. Bajo sinusoidal con armónicos; bombo con caída de frecuencia; grano agudo y chasquido filtrados; melodía con cuatro recetas tímbricas según matiz y croma: seno suave, mallet cálido, cuerda breve y vidrio suave. Los nombres describen timbres sintetizados, no grabaciones de instrumentos. Se usa ruido de síntesis con semilla fija 4102026; no cambia las decisiones de partitura y permite repetir el audio.

La luz y el croma también afectan amplitud, ataque/release y color de la nota. El manifiesto conserva todos los valores efectivamente renderizados. La reverberación usa convolución SciPy; no representa la acústica real del lugar fotografiado. Se calibran faders por pieza y una ganancia constante final alrededor de −18.5 LUFS, con margen de pico; no hay compresión global. Por esa calibración el volumen total no es un fotómetro entre fotos.

WAV estéreo 24 bit / 48 kHz, MP3 256 kbps, MIDI y stems desde el mismo cero: campo, ritmo, melodía y espacio. Los solos de la interfaz son secos y conservan su contribución de nivel a la mezcla; la reverberación compartida sólo aparece en Todo. La duración musical es 37.647 s, más 1.2 s de entrada y cola hasta 43 s.

## Visualización simple

La foto conserva protagonismo. Círculos: grave; cruces: percusión; rombos: melodía. Cada símbolo se coloca en el centro de su celda real y su rectángulo indica el área medida. Tamaño/opacidad siguen una función de la envolvente sintética seca y la velocidad del evento; no son un ecualizador inventado ni una onda física en la escena. El matiz del trazo viene de la celda; se aumenta su luminosidad para verlo. Las curvas de igual luminancia se iluminan sólo alrededor del barrido. La línea de tiempo contiene los eventos reales, divididos en tres familias.

La animación usa `audio.currentTime`, también al pausar, adelantar o aislar una capa. Oculta los eventos de las capas silenciadas. La reverberación puede continuar después del símbolo. No se ha calibrado la latencia física de altavoces o Bluetooth. Las cuatro luces del panel representan el compás escrito, no cuatro fuentes detectadas.

## Pruebas y límites

Los manifiestos conservan las fuentes de todos los eventos, reglas y firmas del análisis y la partitura. Revisión del compositor: MIDI, velocidades, beats y celdas coinciden con su módulo; inicio redondeado a 48 kHz, error máximo 9.804 microsegundos; mediciones float32 del renderer frente a float64 del análisis, diferencias inferiores a 1.7e−7 en luminancia. Hay 48 notas melódicas por foto; la percusión cambia con la imagen. Una superficie uniforme no inventa bordes: pueden permanecer graves por oscuridad y/o el campo de luminancia según su valor.

`analysis/method-qa.json` registra repetibilidad y validación de fuentes; `browser-qa.json` verifica los seis audios, fuente vectorial, controles, sincronización y móvil; `upload-qa.json`, la carga local. Las pruebas técnicas no sustituyen escucha estética: no se ha realizado escucha directa por los agentes y Abraham conserva la aceptación artística.

## Abrir y reconstruir

Abrir `../Escuchar-v4.html` para escuchar las seis piezas sin servidor. Para otras fotografías, ejecutar `../Abrir-color-y-pulso.command` y usar **Probar otra foto** en `http://127.0.0.1:8768/Escuchar-v4.html`. El procesamiento permanece local. El laboratorio anterior puede seguir abierto en 8767.

Para reconstruir: `production/build.py` (seis fotos); con una ruta, una imagen nueva. `production/publish.py` publica interfaz y código. Runtime y hashes en `analysis/runtime.json`. Las rutas del SSD y el Python 3.12 existente están explícitas; adaptarlas al trasladar a otra máquina. El resultado bit a bit está probado en este entorno; los cambios de versiones o decodificador pueden introducir pequeñas diferencias.

## Fuentes primarias del método

[Hermann, ICAD 2008](https://www.icad.org/Proceedings/2008/Hermann2008.pdf): sonificación sistemática y reproducible. [W3C](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum): luminancia relativa sRGB. [SciPy Sobel](https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.sobel.html): filtro de gradiente. Las correspondencias musicales y los umbrales son decisiones del estudio, no leyes derivadas de estas fuentes.

RUN ACS-RUN-20261030-FOTOGRAFIA-SONORA-004. Trace 2. Régimen autoral. Abraham conserva Luz en suspensión y pide cinco nuevas fotografías, más ritmo, color y complejidad con una vista simple. Agente compositor ACS-21: módulo rhythm.py, revisión de partitura y procedencia. Agente principal: selección de fotos, mediciones, síntesis, interacción y QA. Handoff consumido: build_rhythm(analysis). Cuatro acordes y Python NumPy/SciPy conservados. Versiones anteriores intactas. Resultado: ejercicio para escucha humana; no master artísticamente aprobado.
