# Fotografía sonora V5 — instrumentos acústicos

ACS-21 · Composición Musical y Diseño Sonoro · contrato 1.1.0. Investigación, adquisición, preparación y selección de muestras: `instruments.py` y `v5/samples/manifest.json`. Síntesis, montaje de eventos y visualización: integración de ACS-00 mediante NumPy/SciPy. Abraham conserva la decisión artística.

Las seis piezas emplean grabaciones de instrumentos reales en melodía, bajo y percusión. El campo de luz permanece sintético y tenue. Las paletas son decisiones autorales; no se presentan como reconocimiento automático de cultura o ubicación. Se conservan los cuatro acordes Dm/Bb/F/C, 102 BPM y 16 compases del método V4. Cada archivo renderizado dura 43 segundos.

## Paletas aplicadas

| Fotografía | Melodía | Sostén grave | Percusión acústica | Decisión |
|---|---|---|---|---|
| Luz en suspensión | Guzheng | Violonchelos pizzicato | Tambor de marco, shaker, madera | Resonancia larga y espacio |
| Naranja | Guzheng, más corto | Piano | Cajón, shaker, madera | Ataque cercano y respuesta corporal |
| Alas y metal | Flauta travesera | Oud | Tambor de marco, shaker, darbuka | Aire arriba, cuerda en su registro grave |
| Paso entre flores | Marimba | Piano | Cajón y shaker | Repetición de madera con huecos |
| Rosa y turquesa | Guitarra acústica de acero | Piano | Cajón, shaker, madera | Cuerda íntima y resonancia abierta |
| Silueta IA | Piano | Violonchelos pizzicato | Tambor de marco y madera | Peso, distancia y un ataque separado |

La foto de silueta es una imagen IA; las muestras instrumentales son grabaciones. El instrumento chino utilizado es **guzheng**, no pipa. La flauta es **travesera**, no ney. El oud sí procede de notas de oud publicadas como grabaciones reales. Su presencia no prueba que la fotografía se haya tomado en Estambul. Dos paletas comparten guzheng, con acompañamiento y decaimiento diferentes.

La melodía de guzheng se interpreta **una octava abajo** del MIDI escrito en V4. Se conserva su ritmo, contorno y clases de altura, evitando transponer una única toma de La3 hasta Mi5. Los manifiestos del render registran `written_midi` y el `midi` audible por separado. El oud ocupa el bajo porque las tomas disponibles son Sol2, La2 y Do3. La mayor transposición usada en las seis piezas es siete semitonos.

Para una foto cargada nueva, el módulo devuelve la paleta general **piano y marimba** con cajón, shaker y madera. El bajo de marimba pasa una octava arriba para permanecer cerca de las tomas disponibles. Esta asignación se declara como configuración general.

## Fuentes y licencias verificadas

Se adquirieron y prepararon **34 muestras**. Cada una conserva ficha o archivo primario de licencia, URL individual o miembro del archivo de distribución, autor disponible, fecha de verificación, SHA-256 original y preparado, sample rate, canales, raíz, corte y transformaciones. Las evidencias están en `v5/samples/evidence`; los originales permanecen en `v5/samples/originals`. La verificación se realizó el **31 de octubre de 2026 UTC**.

- **Guzheng:** nanliu_music, [GUZHENG — instrument — Single Note — Sound, 847157](https://freesound.org/people/nanliu_music/sounds/847157/). La ficha describe una toma de guzheng y declara CC0. Se descargó la **preview HQ MP3**, identificada como tal; el WAV preparado es una decodificación, no una recuperación del WAV original.
- **Oud:** hammondman, [g2.wav, 172682](https://freesound.org/people/hammondman/sounds/172682/), [a2.wav, 172683](https://freesound.org/people/hammondman/sounds/172683/) y [c3.wav, 172684](https://freesound.org/people/hammondman/sounds/172684/). Las tres fichas individuales declaran CC0. Se descargaron sus previews HQ MP3; se conserva esa limitación en cada registro.
- **Flauta y sección de violonchelos pizzicato:** [VSCO 2 Community Edition](https://versilian-studios.com/vsco-community/), grabaciones acreditadas a Sam Gossner y Simon Dalzell, edición de muestras por Elan Hickler/Soundemote. WAV originales del [repositorio oficial y su licencia CC0](https://github.com/sgossner/VSCO-2-CE/blob/440300901dfe9275fd84e0b7763af1f8443ae62e/LICENSE), commit `440300901dfe9275fd84e0b7763af1f8443ae62e`.
- **Piano Steinway B, marimba, tambor de marco, darbuka, cajón, shaker y bloque de madera:** [Versilian Community Sample Library](https://github.com/sgossner/VCSL), Versilian Studios y colaboradores, bajo [CC0](https://github.com/sgossner/VCSL/blob/c1ea7bcc3c7309650ab0da9d15c9cd1fbc4a4c7e/LICENSE), commit `c1ea7bcc3c7309650ab0da9d15c9cd1fbc4a4c7e`. Se conservaron WAV originales; cada descarga se contrastó además con el hash de objeto Git publicado por el repositorio.
- **Guitarra acústica de acero:** [Meta Open Sound, Meta Steel Guitar v1.0.0](https://github.com/facebookincubator/Meta-open-sound/releases/tag/meta-steel-guitar-v1.0.0), con [licencia CC0 oficial](https://github.com/facebookincubator/Meta-open-sound/blob/main/LICENSE). Se reutilizaron cuatro WAV del proyecto anterior; sus hashes coinciden con el manifiesto previo. El registro individual conserva el nombre dentro del ZIP oficial y la ruta local de origen.

Crédito de cortesía para acompañar la obra: **Muestras: nanliu_music y hammondman/Freesound; Versilian Studios, Sam Gossner, Simon Dalzell y Elan Hickler/Soundemote; Meta Open Sound. Fuentes CC0, adaptadas mediante muestreo por código.** No se usa música terminada de esas fuentes; los eventos y la armonía pertenecen al método de esta pieza.

Se descartó una pipa descrita por su autor como realizada en GarageBand: no probaba una grabación acústica propia. También se descartó el ney localizado con licencia no comercial y un oud ya procesado por un sampler cuyo origen era menos claro. No se compraron bibliotecas ni se instalaron plugins o DAW.

## Preparación y afinación

Los WAV preparados mantienen canales y sample rate originales. Sólo se decodificó, retiró silencio inicial cuando lo había, limitó cada toma a seis segundos y aplicó un fundido final de 20 ms. El corte usa bloques RMS mono de 5 ms, primer bloque superior al 3% del máximo y conservación de 8 ms previos al ataque. No se aplicó normalización, transposición ni afinación a esos archivos; el renderer efectúa los cambios por evento. Los originales nunca se sobrescribieron.

La raíz no se tomó sólo del nombre ni del pico más fuerte: se inspeccionaron fundamental, serie armónica y correlación temporal. Los nombres de marimba, flauta y cello de las tomas elegidas están una octava por debajo de la altura que suena; `root_midi` corrige esa convención. Las correlaciones normalizadas alrededor de la fundamental verificada van de 0.896 a casi 1. El manifiesto guarda también varias estimaciones espectrales por ventana, `root_pitch_hz` y `root_midi_measured`.

`root_midi` es la raíz **nominal** validada. La reproducción conserva pequeñas desviaciones y variaciones de afinación de la toma; no hay autotune escondido. Por eso el render distingue frecuencia nominal y frecuencia estimada a partir de la grabación. La percusión sin afinación definida tiene raíz `null`; no se le inventa una nota.

## Contrato de integración

```python
import instruments
bank = instruments.load_manifest()
choice = instruments.select_sample(photo_id, event, bank)
```

`select_sample` devuelve `sample` completo, `path`, `sample_id`, `written_midi`, `target_midi`, `root_midi`, `pitch_ratio`, `gain`, `release`, `gate_mode`, `max_duration_seconds`, `pan`, `preserve_stereo` y SR/canales de la fuente. `path` apunta al **WAV preparado: el trim ya está aplicado**. `gain` incluye una calibración recomendada a pico 0.32 multiplicada por la ganancia relativa de paleta; el evento mantiene su velocidad visual medida.

La selección es la toma de raíz más cercana; empate: raíz inferior y luego ID alfabético. No hay selección aleatoria. `pitch_ratio` representa sólo el cambio de altura. Para `resample_poly`, la relación de longitudes es `SR_destino / SR_fuente / pitch_ratio`. Se conserva estéreo mediante balance. `one_shot` conserva el golpe completo hasta el máximo declarado; `decay` y `sustain` permiten gate y cola sin sustituir el ataque grabado por una envolvente de oscilador.

`verify_files()` comprueba hashes originales y preparados y presencia de evidencia CC0 sin modificar ni descargar nada. `palette_for()` devuelve también el criterio autoral para la interfaz. El renderer registra los parámetros efectivos y la muestra empleada en cada evento, incluyendo hashes y procedencia.

## Resultado verificado y límites

Se verificaron los seis manifiestos V5 ya renderizados: selección de muestras, MIDI escrito/real, relación de transposición, hashes, origen de cada celda y timestamps. Los seis conservan cuatro acordes y duran 43 s. **20 de las 34 muestras preparadas se utilizaron realmente**; las restantes son tomas candidatas disponibles, no deben presentarse como sonidos usados en estas mezclas.

El error máximo de aproximar la razón de resampling mediante una fracción de denominador ≤10000 es **0.0000408 cents**. Los onsets coinciden con el score dentro del redondeo de media muestra a 48 kHz. Se reconstruyó el primer evento melódico de cada pieza y su envolvente visual RMS de 10 ms: coincide exactamente con los valores guardados. La visualización representa la energía del sonido procesado, normalizada por evento; no debe interpretarse como volumen absoluto comparable entre instrumentos.

La suma de stems reporta error 0 antes de exportar. Los manifiestos sitúan el pico verdadero entre −4.50 y −1.99 dBTP. Luz en suspensión queda a −19.71 LUFS por su restricción de pico; las restantes, aproximadamente a −18.5 LUFS. Esa diferencia no es evidencia de calidad perceptual ni debe confundirse con una preferencia musical.

**No se realizó escucha directa en esta revisión.** La procedencia, geometría, afinación nominal y reconstrucción numérica están comprobadas; la naturalidad del sampler y el balance requieren escucha. Conviene contrastar especialmente la respiración inicial de la flauta y el peso de los golpes de madera de Silueta, conservando la primera Luz como referencia de Abraham. No se encontró un error material de transposición, corte duplicado o sincronía que obligara a regenerar los renders auditados.

Trace nivel 2: intención autorizada → fuentes individuales verificadas → originales preservados → preparación con parámetros → paletas compartidas por contrato → render consumido y auditado → handoff a ACS-00. Skills aplicadas: `composicion-musical`, `muestreo-procedencia` y `teoria-forma-groove`. La revisión propia no se presenta como revisión independiente ni como aprobación auditiva.
