# Giant Steps · alto model04

**Listening status: rejected.** The user reports that this band take does not sound like a saxophone. This is a failed listening comparison, not an improvement awaiting approval. Its audio and earlier versions remain preserved. The render report records technical checks at export time; it does not override this feedback.

A new, separate band take using the standalone [physical alto model04](../alto-sax-model-04/) in the preserved Giant Steps arrangement. This is still alto, not a tenor substitution. Model04 source and standalone audio remain unchanged; any song-specific score or player adaptation stays outside that instrument directory, in this take.

The [old physical-alto take](../giant-alto-01/), all earlier recordings and their URLs remain preserved. This experiment does not promote Giant Steps onto the demo front page.

## Preserved arrangement

- Tempo: **200 BPM**.
- Note and onset source: the original [`studies/giant-lead-01/score.json`](../../studies/giant-lead-01/score.json).
- Both solo choruses remain exactly one octave lower, as in the preserved old physical-alto take; their intervals and onsets are retained.
- Heads and ending retain their original pitches. Harmony, form and accompaniment remain unchanged, with no additional arrangement rewrite.
- Original rhythm source: [`studies/ride-trio-03/rhythm.wav`](../../studies/ride-trio-03/rhythm.wav), reused without editing the source.

## Listening artifacts

| File | Purpose |
| --- | --- |
| [`mix.mp3`](mix.mp3) | Full band: alto with the original accompaniment. |
| [`fast-pass.mp3`](fast-pass.mp3) | Fast band passage. |
| [`sax-solo.mp3`](sax-solo.mp3) | Whole horn with room. |
| [`sax-dry.mp3`](sax-dry.mp3) | Whole horn dry, without room. |

[`index.html`](index.html) keeps the prior take's visual style and uses native audio controls, `preload="none"`, no autoplay and no images. Starting one player pauses the others.

All six audio exports have same-named 24-bit WAVs. `fast-sax.mp3` and `fast-sax-dry.mp3` isolate the fast passage. These excerpts come directly from the full continuous render, not a separate cold-start simulation.

## Instrument and playing preset

`performance.py` imports model04's `horn.py` without editing it. Its reed, bore, finite key apertures, compliant tongue contact and actual-outlet radiation are reused; there are no recorded instrument samples, independent pitch oscillators or pitch shifting. No acoustic states reset between notes.

The fast sequence exposed competing register/mode locks that the standalone probes did not cover. This take uses a **1.25 mm register-vent radius**, versus **0.65 mm** in the untouched lab, and tongue-contact strength **0.25** rather than **1.0**. These are a new instrument/playing preset through the existing engine API, not identical settings to the standalone recordings. The vent dimensions and force scale are provisional, not measured human or instrument specifications.

All other physical coefficients remain unchanged. Written G5 retains model04's 0.50 mm resting gap; other notes retain its register-based controls. Scored velocity jointly scales pressure and gap by `(velocity / 0.65)**0.2`. Original slur groups connect through key changes. Tongued note ends use the previous take's 18 ms extension, clamped at the next onset; no output gate replaces tongue contact.

Four quiet early reflections reuse the previous take's room treatment. A single new-lead gain matches 80% of the original guitar's active-span RMS and is reduced only if needed for mix headroom. There is no compressor or limiter and the backing is never scaled. RMS matching is not perceptual loudness matching. The dry alternative omits the room.

## Local rendering

From `music4/experimental/giant-alto-02/`:

```sh
python3 render_score.py
```

[`render_score.py`](render_score.py) is this take's song renderer; `render.py` belongs to the preserved `giant-alto-01` take. [`performance.py`](performance.py) is the song-specific performance source. Keep the neighboring model04 and original score/rhythm sources available. Rendering is local; no paid generation API or browser is required.

## Verification and limits

[`report.json`](report.json) records all 232 scored pitch windows using unrestricted YIN, including any unvoiced/out-of-tolerance exceptions. It also records coupling residuals, stored energy, transient proxies, playing controls, PCM-identical backing checks, and SHA-256 provenance for the unchanged standalone model04 engine, C4 WAV and report. Pitch checks are not restricted to frequencies near the desired note.

An unvoiced note window or one more than 45 cents from its target is reported as a warning, not hidden or corrected with pitch shifting. Five of the 232 windows fail this check in this take, with octave-high estimates. Short, harmonically rich windows can be ambiguous; competing register locks are not resolved. The renderer still fails on unstable coupling, failed backing/model preservation, non-decaying tail energy or lost headroom. This is an early listening comparison, not a passed all-note intonation test.

`horn_fast.py` preserves an unused tongue-contact study. Its default output matched the standalone engine in a three-note test, but stronger contact did not consistently improve fast passages. It is not imported by this performance and is not used in the published audio.

Generic geometry, simplified losses/radiation, omitted vocal tract, and untracked key/tongue mechanical work remain limitations. The solo writing is unchanged, not a new improvisation or a transcription of the original tenor recording. Numerical diagnostics are not listening approval; this band take failed the listening requirement.
