# Sound plan: spotify-concept-ad (The street plays along), stage 08a

Built by `ice/audio/score.py` (one script, `--lang en|ar`) with the project copy of mgaudio (MIT), every time read from `ice/plan/cue-sheet.json` (locked, not retimed). Clock: music-led, 120 BPM, bar 0 = the press at 12.0 s, 4/4, a 16th = 0.125 s; 0 to 12.0 s free time. Outputs: `ice/audio/soundtrack_en.wav`, `ice/audio/soundtrack_ar.wav` (48 kHz, 24-bit, stereo, 2,352,000 samples = 49.000 s), stems in `ice/audio/stems_en/` and `ice/audio/stems_ar/` (pre-master, written at -6 dB), `score_spec_en.png`, `score_spec_ar.png`, `beatgrid.png`, measured reports `qc_en.json`, `qc_ar.json`, `beatgrid.json`.

Version 2 (section 7, the director's follow-up for the social-profile LRA): `soundtrack_en_v2.wav`, `soundtrack_ar_v2.wav`, `stems_en_v2/`, `stems_ar_v2/`, `score_spec_en_v2.png`, `score_spec_ar_v2.png`, `beatgrid_v2.png`, `qc_en_v2.json`, `qc_ar_v2.json`, `beatgrid_v2.json`, rendered with `python ice/audio/score.py --lang en --v2` (and `--lang ar --v2`, `--v2 --beatgrid`). Version 1 files are unchanged (checksums verified after the v2 renders). Sections 1 to 6 describe version 1; section 7 lists what version 2 changes and its measured numbers.

This is the 08a score and SFX pass. The final mix on the picture, the exported MP4 measurement and the human listening check belong to 08b and 10. Nothing below is a claim about how it sounds: every number is measured, and no one has listened yet.

## 1. The four machines are the kit

| Machine | Before 12.0 (free time, noise) | After its lock (on the grid) | EN pattern (16ths) | AR pattern (16ths, maqsum) |
|---|---|---|---|---|
| Horn | two buzzy reeds a mistuned third apart (392 to 440 Hz, ratio 1.21 to 1.31), throat resonance near 1.9 kHz, a little sharp at the attack | the low hit: a driven kick (G1 for EN, A1 for the AR doum) plus a short honk from the same horn model, now tuned to the chord (root and third in octave 4), accent on the bar's first hit | 0, 4, 8, 12 (four on the floor; plain and softer on 4 and 12 under the backbeat) | 0, 8 (dum) |
| Demolition hammer | a train of chisel strikes at about 25 Hz (noise crack, 140 Hz thud, inharmonic ring at 1.7, 2.9, 4.2, 5.6 kHz) | the backbeat (EN snare) or tak (AR, higher and drier): a snare body plus a 2 or 3 strike chisel rattle, driven like the machine (crest about 9 dB) | 4, 12 | 2, 6, 12 |
| Power drill | trigger click, motor spin-up whine (235 to 300 Hz), gear whine at 9x, brush chatter | the hats: a bright noise tick with a short motor whine chirp near 3.1 kHz; open accents in the climax | eighths 0, 2 ... 14 | off 16ths 1, 3 ... 15 |
| Engine | starter cough, then firing pulses revving 30 to 95 Hz and falling back | the bass: driven saw and pulse with a sub, a rev scoop (-2.5 semitones over 20 ms) on every onset; roots, octaves and fifths of the chord | 0, 3, 6, 8, 11, 14 (R R O R F R) | 0, 3, 8, 11 (R O R F) |

Lock hits: where a pattern has no step on its lock beat (EN hammer at 14.0, AR hammer at 14.0, AR drill at 16.0), the machine fires one hit on the lock, so every lane lock has its own sound. No samples of anything: every sound is synthesized in `score.py` or by mgaudio generators. No horn, ringtone, voice, music, call to prayer or bell recording is used or imitated beyond the generic two-tone car horn.

Other parts: a filtered pulse (9.0 to 12.0), a warm pad (harmony), the lead (motif), strings (the held-back colour, only in the climax 28.0 to 34.0), burst cells (tuned honks climbing the chord), playhead ticks in the breath, room tone (whole film), and eleven effects.

## 2. Mode, harmony and motif

### English version: G mixolydian
Reason: the film turns a nuisance into a choice; mixolydian is the sunny mode (major third, flat seventh), proud without the triumphal V to I of plain major. The colour note (F natural, the b7) is stated early: the F chord at 14.0 (the hammer's lock) and inside the motif's first statement at 24.75. The bVI (Eb) lands on the hero frame (31.0) as the one borrowed colour, the bVI to bVII (Eb, F) lift of the climax.

Harmony (chord per bar unless noted): pulse 9.0 G | 12.0 G | 14.0 F | 16.0 C | 18.0 Dm7 | 20.0 G (cadence v to I) | 22.0 breath, no chords (the riser on D carries the lean) | 24.0 G | 26.0 F/A | 28.0 C | 30.0 Dm7 | 31.0 Eb (hero frame, harmonic rhythm doubles into the climax) | 32.0 F | 34.0 Em7 (deceptive: home expected, the tonic substitute arrives as the lanes fold) | 36.0 C | 38.0 Am7 | 40.0 F | 41.0 G (home, held to the end, top note D5).

Motif EN (4 notes, the melody lane's own rhythm: steps 0, 3, 6, 10 = dotted 8th, dotted 8th, quarter, then a long note): D5 E5 F5 D5, up, up, down; it carries the b7. Heard 8 times, never the same way twice:

| # | Time | Notes | Over | How it differs |
|---|---|---|---|---|
| 1 | 24.0 | D5 E5 F5 D5 | G | the statement, full groove |
| 2 | 26.0 | C5 A4 G4 C5 | F/A | answered upside down (down, down, up) |
| 3 | 28.0, 28.5, 29.0, 29.5 | E5 F5 G5 A5 | C | re-rhythmed to quarters, one note per painted road-line word, rising |
| 4 | 30.0 | A5 G5 A5, Bb5 at 31.25 | Dm7, Eb | climax: the line refuses to fall; Bb5 is the highest note of the score, over the bVI |
| 5 | 32.0 | A5 G5 F5 D5 | F | the release, falling back to the motif's D |
| 6 | 34.5, 35.0, 35.5, 36.0 | B4 D5 E5, C5 | Em7, C | in the tiles (marimba effects), the motif contour on the beats |
| 7 | 38.0 | C5 A4 B4 G4 | Am7 | soft, low, under the search field |
| 8 | 40.0 | C5 D5 E5, D5 held from 41.0 | F, G | the cadence: lands on D5, the motif's last note, held by the home chord to the end |

### Arabic version: D Bayati (D, E half-flat, F, G, A, Bb, C)
Reason: Bayati is the everyday mode of Egyptian popular and street music (sha'bi, mahraganat), the colour Egyptian ears hear as their own; its quarter-tone second (E half-flat, MIDI 75.5) is the colour note, stated in the first note of the first statement at 24.0. The motif is invented: no traditional melody is quoted. Harmony stays out of the quarter tone's way: no chord contains any E (open voicings, Csus2 instead of C), so the half-flat lives only in the melody, as it does in the tradition.

Harmony: pulse 9.0 D5 (open fifth) | 12.0 Dm | 14.0 Csus2 (the b7 stated early) | 16.0 Bb | 18.0 Csus2 | 20.0 Dm (cadence) | 22.0 breath (riser on D) | 24.0 Dm | 26.0 Csus2 | 28.0 Bb | 30.0 Gm | 31.0 F (hero frame: the relative major lifts the climax) | 32.0 Bb | 33.0 Csus2 | 34.0 Gm (a lean, not home, as the lanes fold) | 36.0 Bb | 38.0 Gm | 40.0 Csus2 | 41.0 D (D A D F A D, top note D5, held to the end).

Motif AR (3 notes, the melody lane's own rhythm: steps 0, 4, 8 = three quarters and a rest): E half-flat 5, F5, D5: a turn around the tonic through the Bayati second. Heard 8 times:

| # | Time | Notes | Over | How it differs |
|---|---|---|---|---|
| 1 | 24.0 | Ed5 F5 D5 | Dm | the statement, full groove, slides between notes |
| 2 | 26.0 | C5 D5 Bb4 | Csus2 | sequence a third lower |
| 3 | 28.0, 28.5, 29.0, 29.5 | D5 Ed5 F5 G5 | Bb | four notes for the four painted words, climbing through the colour |
| 4 | 30.0 | Bb5 A5, C6 at 31.0 | Gm, F | inverted; C6, the highest note, lands on the hero frame |
| 5 | 32.0 | Bb5 A5 G5 | Bb, Csus2 | the release |
| 6 | 34.5, 35.0, 35.5, 36.0 | D5 Ed5 F5 D5 | Gm, Bb | in the tiles (marimba effects), the motif with a pickup |
| 7 | 38.0 | Bb4 C5 D5 | Gm, Csus2 | soft and low, climbing back to the tonic |
| 8 | 40.0 | Ed5 F5, D5 held from 41.0 | Csus2, D | the motif whole, with a slide into D5, held by the home chord: its last note |

Lead timbres: EN a clean pulse lead with a soft vibes attack (bright, phone-audible, not a synthwave saw); AR a nasal street reed (narrow pulse, vowel formant, wider vibrato 5.9 Hz, short slides) for an Egyptian street colour without imitating a recording. Strings appear only in the climax (28.0 to 34.0): EN a held counter line a third to a tenth under the lead (C5, D5, Eb5, A4: it holds while the lead moves); AR the strings double the lead an octave below, the way an Egyptian string section doubles a singer.

## 3. One row per sound event

Level intent is the planned pre-master stem level (LUFS while it plays) or the effect's gain over mgaudio's -18 loudness-normalised SFX level; the master lifts everything by the same 4.9 dB.

### 0.0 to 5.5: the machines, out of time
All 26 cue-sheet noise events fire at their exact times, panned as the cue sheet says (horn -0.1, engine +0.3, drill +0.4, hammer -0.4). Intensity rises with time (velocity = 0.5 + 0.5 x (t / 5.0)^1.2, from 0.5 at 0.0 to 1.0 at 5.0); each event has its own seed, so no two horns, drills, hammers or engines are the same take; the four machines are normalised together to -23.5 LUFS, so the way in sits 7.2 LU under the body. Reason: the street is a nuisance that escalates to the loudest horn, then stops dead.

| Time | Visible cause | Sound | Level intent | Reason |
|---|---|---|---|---|
| 0.00 | horn fires (HONK, the frame-0 word) | car horn, 0.18 to 0.36 s | vel 0.50 | the first frame has one sound with a reason |
| 0.15 | engine fires | engine rev | vel 0.51 | |
| 0.30 | drill fires | power drill | vel 0.52 | |
| 0.55 | hammer fires | chisel burst | vel 0.54 | |
| 0.75 | hammer fires | chisel burst | vel 0.55 | |
| 0.90 | horn fires | car horn | vel 0.56 | |
| 1.20 | drill fires | power drill | vel 0.59 | |
| 1.45 | hammer fires | chisel burst | vel 0.61 | |
| 1.60 | engine fires | engine rev | vel 0.63 | |
| 1.90 | horn fires | car horn | vel 0.66 | |
| 2.00 | drill fires | power drill | vel 0.67 | |
| 2.25 | horn fires | car horn | vel 0.69 | |
| 2.40 | engine fires | engine rev | vel 0.71 | |
| 2.60 | hammer fires | chisel burst | vel 0.73 | |
| 2.75 | hammer fires | chisel burst | vel 0.74 | |
| 2.90 | hammer fires | chisel burst | vel 0.76 | |
| 3.00 | drill fires | power drill | vel 0.77 | |
| 3.20 | engine fires | engine rev | vel 0.79 | |
| 3.40 | horn fires | car horn | vel 0.81 | |
| 3.70 | drill fires | power drill | vel 0.85 | |
| 3.90 | hammer fires | chisel burst | vel 0.87 | |
| 4.10 | horn fires | car horn | vel 0.89 | |
| 4.40 | drill fires | power drill | vel 0.93 | |
| 4.60 | hammer fires | chisel burst | vel 0.95 | |
| 4.70 | engine fires | engine rev | vel 0.96 | |
| 5.00 | the loudest horn, the largest word | two horns at once (405/512 Hz and 338/431 Hz), 0.47 s | vel 1.0 plus 2 dB; measured 4.0 dB louder than any other machine event | the peak of the nuisance; nothing rings past 5.47 |

### 5.5 to 49.0

| Time | Visible cause | Sound | Level intent | Reason |
|---|---|---|---|---|
| 0.0 to 49.0 | the night street (always there) | room tone: low rumble plus a little air, slowly breathing | -44 LUFS pre-master (about -39 LUFS momentary in the silence) | no digital silence anywhere; the declared silences keep the street's air |
| 5.50 | noise stops, the street dims | declared musical silence: room tone only | machines end at 5.47 | silence after the loudest hit; the first sound after it must matter |
| 5.60 | search field rises | soft ui open: two sine blips rising D5 to G5 (EN) or A4 to D5 (AR), the key foreshadowed | -6 dB | one soft interface sound for the field |
| 5.95 | question readable | caret tick (high tick) | -10 dB | the quietest effect: the caret's first blink |
| 8.60 | answer lands whole | soft pop tuned to B4 (EN) or D5 (AR) | -5 dB | the answer arrives; a pop, not a chime |
| 9.00 | declared silence ends under the held answer | low filtered pulse: the coming key's chord on the 120 BPM grid extended back (9.0, 9.5 ... 11.5), low-pass opening 260 to 1100 Hz, fading in 9 dB | -29 LUFS | the script's "low filtered pulse under the answer"; the grid announces itself before the press |
| 10.40 | Top result card rises with the play circle | soft air whoosh, pass-by peak on 10.4 (lead-in 0.15 s), centred (the card rises vertically) | -8 dB | one move, one soft whoosh |
| 10.90 | pointer travels | none | | silent travel (cue sheet) |
| 12.00 | play circle pressed | soft click | -5 dB | the press itself |
| 12.00 | horn lane locks (bar 0) | the horn's first in-time low hit with its tuned honk on G (EN) or D/F (AR) | horn -17.5 LUFS, build starts the kit at -5 dB | the press causes the first lock: noise becomes the kick |
| 14.00 | hammer lane locks | hammer lock hit, then the backbeat (EN 4, 12) or tak (AR 2, 6, 12) | hammer -21 LUFS, kit -4 dB | each lock is the previous hit's consequence |
| 16.00 | drill lane locks | drill hats (EN eighths; AR off 16ths with an open lock hit on 16.0) | drill -28.5 LUFS, kit -3 dB | |
| 17.00 | engine lane locks (bar 2 beat 3) | engine bass enters on its step 8 | engine -20 LUFS | the bass arrives mid-bar, as the lane does |
| 18.00, 18.375, 18.75, 19.125 | burst: extra cells lock on dotted 8ths | four tuned honks climbing the chord (EN D4/F4 to C5/E5 over Dm7; AR C/G to C5/D5 over Csus2), each with a single chisel strike | fill -24 LUFS, rising 0.75 to 0.99 | the chain accelerates; tonal, in key |
| 20.00 | bar 4 (groove complete) | cadence to the home chord (v to I, or VII to i) | kit -1.5 dB | the build's arrival |
| 21.75 | drum fill into the breath | chisel roll in 32nds (21.75, 21.8125, 21.875, 21.9375), crescendo 0.5 to 0.9 | hammer | one fill, ending on the breath |
| 22.00 | breath: only the playhead moves | kit, bass and pad out (kit stems at digital zero 22.35 to 23.99); riser starts | | declared pre-drop gap |
| 22.0, 22.5, 23.0, 23.5 | playhead sweeps | playhead tick on each beat | -33 LUFS | the cue sheet's "playhead tick only" |
| 22.00 to 24.00 | the held breath | riser (hybrid noise and tonal sweep on D), sync at its end = 24.0 | -2 dB | the one signature riser |
| 24.00 | the drop: every lane lights, melody lane enters, camera kick | impact (punch, size 1.3) plus the full groove and the lead's first statement; music dips 2.5 dB for 0.3 s under the impact | +1 dB (loudest effect) | the one signature impact; the first sound after the gap |
| 28.00 | road-line word 1 (The / الشارع) | lead note (statement 3, note 1); strings enter (held-back colour) | lead -19.5 LUFS, strings -27 LUFS, music +1 dB for the climax | one note per painted word |
| 28.50 | word 2 (street / ماشي) | lead note | | |
| 29.00 | word 3 (plays / على) | lead note | | |
| 29.50 | word 4 (along. / مزيكتك.) | lead note | | |
| 31.00 | crane reaches top-down (hero frame) | no effect; harmony turns (EN Eb, AR F); AR highest note C6 lands here, EN Bb5 at 31.25 | climax, music +1 dB | "music carries" (cue sheet) |
| 33.50 | road line clears | none | | the climax holds to 34.0 |
| 34.00 | climax ends | strings out, music back to 0 dB, deceptive or leaning chord | | inner section ends on a lean, not home |
| 34.50 | horn lane lands as a tile | tile land 1: marimba note plus soft pop, in key (B4 EN, D5 AR), panned left to right (EN) or right to left (AR, the Arabic tile layout) | +1 dB, music dips 2.5 dB | the motif plays in the tiles |
| 35.00 | hammer tile lands | tile land 2 (D5 EN, E half-flat 5 AR) | +1 dB | |
| 35.50 | drill tile lands | tile land 3 (E5 EN, F5 AR) | +1 dB | |
| 36.00 | engine tile lands, pattern tiles land | tile land 4 plus a soft-pop chord in key (C5 with C E G pops EN; D5 with Bb D F pops AR): one layered cue for the two events | +1 dB | two events on one frame, one sound |
| 37.00 | search field above the tiles, caret blinking | groove drops low: kit -8.5 dB, pad -3 dB (measured -7.3 LU EN, -8.2 LU AR on the kit) | | the open invitation; the groove keeps playing under the field |
| 41.00 | logo arrives on black | cadence: the horn's last honk, in tune on the home chord, the engine's last root, the lead's final note (D5) and the home chord with D5 on top | kit at -3 dB (under the climax) | the music resolves on its own cadence; no separate sting |
| 43.00 (EN), 43.0 and 43.25 (AR) | unofficial line(s) appear | none | | reading hold |
| 41.0 to 49.0 | end hold | the home chord's tail (pad fades 4.5 dB to the end), room tone; the master's 0.25 s fade-out only at 49.0 | end short-term -27.7 LUFS EN, -27.0 AR | no dead cut, no digital silence |

Effect count: 11 effects in 49 s (13.5 per minute), five kinds (interface blips and pops, whoosh, click, riser and impact, tiles); one riser and one impact in the film.

## 4. Guard results (measured on the rendered soundtracks)

Path: mgaudio fallback mode (numba and scipy installed: JIT kernels and scipy filters ran; soundfile and pyloudnorm missing: standard library wave writer and mgaudio's numpy BS.1770-4 meter). True peak is mgaudio's ideal 8x reading (stricter than a 4x meter). librosa is not installed, so mgaudio's onset check was skipped; `score.py` measures onsets with its own numpy detector (2 ms windows at 1 ms hop, steepest-rise refinement), calibrated on known clicks and drum hits placed at exact times: bias 0 ms.

### Loudness and balance (social profile)

| Measure | EN | AR | Target |
|---|---|---|---|
| Integrated loudness | -14.04 LUFS | -14.08 LUFS | -14 |
| True peak (ideal 8x) | -1.21 dBTP | -1.21 dBTP | at or under -1 |
| LRA, whole film | 15.19 LU | 14.67 LU | 5 to 8: FAIL (see Arc) |
| LRA, music body 12.0 to 41.0 | 4.78 LU | 5.43 LU | information |
| Band shares (sub / bass / low-mid / presence / brilliance / air, %) | 19.9 / 46.2 / 29.9 / 1.9 / 1.4 / 0.7 | 22.0 / 40.3 / 30.6 / 3.6 / 2.5 / 1.1 | sub 5 to 35, bass 30 to 65, presence 1 to 5, brilliance 0.5 to 6 |
| Stereo correlation | 0.949 | 0.939 | above 0.3 |
| Longest gap (mgaudio analyze, momentary under -45) | 0.0 s | 0.0 s | 0.6 s |
| Master gain / limiter reduction on the single highest peak | +4.93 dB / 4.70 dB | +4.93 dB / 4.49 dB | (see notes) |
| Peak to short-term ratio (true peak minus loudest 3 s) | 9.1 dB | 8.8 dB | |
| mgaudio export warnings | none | none | |

### Music-by-code guards

| Guard | EN | AR | Result |
|---|---|---|---|
| Ghost | 18 four-bar windows from 12.0; lowest onset rate 0 per beat only in the end hold (42.0 to 49.0) where the reverb stays 14.6 to 16.1 dB under the dry chord; cadences at 20.0 and 41.0 | same shape, end-hold reverb 14.6 to 16.2 dB under dry | PASS both |
| Reverb | wet under dry in every bar; worst bar 22.0 (the breath) -12.5 dB; tails fall 10 dB in 0.07 s (room) and 0.27 s (plate), before the next strong beat (1.0 s) | worst bar 22.0 -11.2 dB; same tails | PASS both |
| Masking | lead (500 Hz to 4 kHz) over every other part by 3 dB or more in 7 of 7 lead bars; smallest margin 9.8 dB (strings, bar 9) | 7 of 7 bars; smallest margin 9.8 dB (strings, bar 9) | PASS both (100 percent, needs 80) |
| Plan | 28 lead notes in G mixolydian; one note outside (Bb5 at 31.25 over Eb, the declared bVI borrowing); no pad note outside the mode; no low-interval violation; steps 70 percent; chord tones on beats 1 and 3: 100 percent; range 15 semitones | 22 notes in D Bayati, none outside; no chord contains E or E half-flat; no low-interval violation; steps 67 percent; chord tones on strong beats 79 percent; range 14 semitones | PASS both |
| Stems | worst part 2.2 dB off plan (pulse, it fades in by design); kit, pad and lead within 0.85 dB in the drop window | worst 1.73 dB (pulse); others within 0.61 dB | PASS both (limit 3 dB) |
| Novelty | against the six bundled mgaudio melody recipes: no 6-note interval fragment repeat, no 8-note shape repeat (interval or contour); highest weighted similarity 0.163 (lofi: the melody-lane rhythm 0, 3, 6, 10 from the cue sheet equals the lofi hook rhythm 3-3-4-6; contour, intervals and chords differ) | highest 0.175 (chiptune); no fragment or shape repeat | PASS both (limit 0.5). A first EN draft repeated an 8-note contour of the synthwave and pop recipes; statement 2 was rewritten (answer upside down) to clear it |
| Arc | way in -18.59 vs body -11.35: 7.2 LU under (5 to 12, pass); loudest short-term -10.28 at 32.3 s (66 percent), 2.6 LU over the usual -12.92 (pass); ending 17.4 dB under the peak (pass); no loud moment in the last fifth (pass); LRA 15.19 (FAIL) | way in 7.3 LU under; loudest -10.02 at 29.5 s (60 percent), 2.8 LU over usual; ending 17.0 under the peak; LRA 14.67 (FAIL) | FAIL on LRA only, both |
| Spectrum | per-Hz slope 100 Hz to 4 kHz -5.52 dB/oct (octave-band slope -2.51) | -4.69 dB/oct (octave band -1.67) | PASS both (target about -5, accepted within 1.5) |
| Dead air | exactly 49.000 s; nothing under -45 dBFS for any length; lowest momentary -39.3 LUFS (room tone in the declared silence) | same | PASS both |

Why the LRA fails, and why it was not forced: the locked cue sheet declares a musical silence (5.5 to 9.0, room tone only), a breath (22 to 24) and an 8 s end hold (41 to 49). Together those are about a fifth of the film and sit 15 to 25 LU under the body, so the 10th percentile of short-term loudness falls in them. Filling them to reach 8 LU would break the declared silences. The music body alone (12.0 to 41.0) measures 4.78 LU (EN, 0.2 under the band) and 5.43 LU (AR). Three composition rounds were used (machines down, engine sub up, pad darker, end tail and room tone up, softer horn under the backbeat, gritty hammer and drill with about 9 dB crest, rounder kick), then the round limit was reached.

### Hit alignment against the cue times
Every transient cue was checked on the stem of its own cause (machine stems for the noise events, effects group, kit tracks, lead), then on the full master.

| | EN | AR |
|---|---|---|
| Cues checked | 50 (26 noise, 3 interface, press, 4 locks, 4 burst, fill, drop, 4 words, 5 lands, brand) | 50 |
| Found on their own stem | 50 of 50 | 50 of 50 |
| Error on own stem | median 0 ms, max 2 ms, none late beyond 5 ms | median 0 ms, max 2 ms, none late beyond 5 ms |
| Whoosh pass-by (10.4) | 10.410 s (+9.9 ms) | 10.410 s (+9.9 ms) |
| On the full master | 49 of 50 found; non-noise cues within 12 ms, never late beyond 1 ms; in the deliberately dense noise cluster one hammer (1.45) is masked, 0.3, 0.9 and 2.0 read 8 to 14 ms late and the 4.6 hammer 78 ms late, because the nearest master onset belongs to the overlapping machine around it (each is 0 to 2 ms on its own stem) | 49 of 50; non-noise within 20 ms (19.125 burst reads 20 ms early), one tile (34.5) reads 6 ms late on the master, 0 ms on its stem; same noise-cluster readings |
| Kick-band phase (low band under 120 Hz against the 16th grid, 12.0 to 41.0) | median +1.0 ms | median +0.5 ms |

Sync points are placed by construction (`track.add(sound, at=t)` puts each transient on the cue time); the detector confirms it. Frame accuracy at 30 fps is 33 ms, so a 2 ms error is far inside the 2-frame / 40 ms rule.

### Effect audibility (each effect in its own window against the ducked score, its own band)
EN in-band margins: ui open +25.6, caret tick +31.7, soft pop +27.8, whoosh +34.7, click -1.6, riser +29.7, impact 0.0, tiles +2.9, +1.1, +4.0, -1.5 dB. AR: +25.8, +31.7, +38.1, +32.3, +3.5, +29.7, +0.4, +5.1, +2.3, +7.4, +0.1 dB. All above the -6 dB failure line. Full-band K-weighted, the click at 12.0 sits 14.6 dB (EN) and 11.4 dB (AR) under the horn hit it is layered with by design ("click plus first kick"); in its own band (0.7 to 5.7 kHz) it holds -1.6 and +3.5 dB.

## 5. For the human listening check (08b and 10)
Listen on phone speakers and on headphones, at these points:
- 3.0 to 6.0: the machines are harsh by design; check they read as a city nuisance, not as painful, and that the 5.0 horn is the peak, then the cut to room tone at 5.5 feels like a silence, not a dropout.
- 5.6 to 12.0: are the ui blip, caret tick and pop audible but small; does the filtered pulse from 9.0 read as anticipation.
- 12.0: the click must be heard with the first horn hit (its full-band level is low under the kick).
- 21.0 to 29.0 (the suggested 8 s excerpt, the main mood change): fill, breath with riser and ticks, the drop at 24.0, the first motif statements, the first painted words.
- 28.0 to 34.0: the climax; the master limiter reduces the single highest peak by 4.5 to 4.7 dB on summed kick, hammer and lead hits; listen for crunch or pumping on the backbeats.
- AR: the E half-flat (Bayati second) must sound intended, not out of tune; the reed lead must read as street colour, not as a parody of a mizmar; the maqsum (dum 0 and 8, tak 2, 6, 12) must feel right to an Egyptian listener.
- 34.5 to 36.0: four tile landings in key, readable over the groove.
- 41.0 to 49.0: the cadence must feel like an ending under the logo, and the tail must still be alive at 49.0 (no audible fade-to-nothing before the last frame).
- What a yes to a licensed human-made library track would add (D-20): a human performance; this score is the code-made stand-in.

## 6. Notes for the picture (nothing retimed)
- Bar 8 (28.0 to 30.0): the lead follows the four road-line word events (28.0, 28.5, 29.0, 29.5, all "melody note" in the cue sheet), not the melody lane's steps (EN 0, 3, 6, 10; AR 0, 4, 8). If the melody lane's cells light in that bar, they should light on the word beats; every other bar of the lead sits on the lane steps.
- Lock hits: the hammer (EN and AR, 14.0) and the AR drill (16.0) have no pattern step on their lock beat, so the score adds one hit on the lock; a cell lit on the lock beat has a sound.
- The storyboard mentions a fill at 21.5; the cue sheet says 21.75, and the score follows the cue sheet.

## 7. Version 2: inside the social and web profile (LRA at most 9 to 11 LU, aim 10)

Target set by the director (mix-and-master.md section 5): LRA at or under 10 LU (hard limit 11), -14 LUFS +/-0.5, at or under -1 dBTP, every cue on its time. The declared quiet stretches stay; they are less deep. Every cue time, pattern, motif statement and effect is the same as version 1; only levels and the content of the three quiet stretches change.

What changed (all in `score.py`, switched by `--v2`):

| Time | Visible cause | Version 2 sound | Level intent | Reason |
|---|---|---|---|---|
| 5.3 to 12.6 | the street dims behind the search field | a distant city bed: far traffic rumble and air, slowly swelling (no tones, no horns, no music), fading in under the last machines and out after the press; the room tone and the three interface sounds are unchanged | -32 LUFS pre-master (silence 5.5 to 9.0 now -23.4 LUFS EN, -23.6 AR integrated, 12.4 and 12.6 LU under the body; v1 about -30) | the question silence stays a silence but is no longer a deep outlier for the 3 s windows |
| 9.0 to 12.0 | the answer is held, the card rises | the filtered pulse, louder and with a shorter fade-in (-3 dB to 0 dB instead of -9 to 0) | pulse -21.5 LUFS pre-master (v1 -29) | the windows centred 9 to 10.5 were the avoidable low outliers |
| 0.0 to 5.5 | the machines | unchanged events, group 1 dB louder | -22.5 LUFS (way in 6.1 LU EN, 6.2 AR under the body) | lifts the quietest opening windows; still inside the 5 to 12 LU soft way in |
| 22.0 to 24.0 | breath: only the playhead moves | kit still out, playhead ticks and riser unchanged, plus a held pad on the lean chord (EN D7sus4, AR Csus2) 4 dB under its groove level | pad | the breath keeps a held pad (lowest momentary -29.2 EN, -28.8 AR at 22.25 s; v1 -32.8) |
| 41.0 | logo arrives (cadence) | unchanged cadence hit; the lead's final D5 now lasts 2.0 s, then the pad's top D5 carries the motif's last note | | keeps the end hold flat |
| 41.45 to 47.5 | end hold, logo and line | the resolved home chord sustained, plus a soft pulse of the groove on the cue sheet patterns: horn low hit (plain, no honk), drill hats, engine on the home root only; no hammer, no melody | kit -12.5 dB, pad at its groove level; hold 43.0 to 47.5 = -19.32 LUFS EN (8.3 LU under the body), -20.03 AR (9.0 LU under) | the resolution sits 8 to 10 LU under the body instead of about 17 dB |
| 47.5 to 49.0 | the last 1.5 s | the only fade: kit to -40 dB, pad to -14 dB, plus the master's 0.25 s fade-out | end short-term -20.7 EN, -21.2 AR | fade only in the last 1.5 s; no dead cut |

### Version 2 measured numbers

| Measure | EN v2 | AR v2 | Target |
|---|---|---|---|
| Integrated loudness | -14.06 LUFS | -14.02 LUFS | -14 +/-0.5 |
| True peak (ideal 8x) | -1.17 dBTP | -1.19 dBTP | at or under -1 |
| LRA, whole film | 8.63 LU | 9.54 LU | at or under 10 (hard 11): PASS |
| LRA, music body 12.0 to 41.0 | 4.58 LU | 5.24 LU | information |
| End hold 43.0 to 47.5 under the body (24 to 34 = -10.98 EN, -11.01 AR) | 8.3 LU (44.5 to 47.5: 8.5) | 9.0 LU (44.5 to 47.5: 9.1) | 8 to 10 |
| Master gain / limiter reduction on the single highest peak | +5.54 dB / 5.32 dB | +5.39 dB / 5.07 dB | about 6 dB cap for dense styles |
| Band shares (sub / bass / low-mid / presence / brilliance / air, %) | 19.8 / 45.8 / 30.5 / 2.0 / 1.3 / 0.7 | 21.4 / 41.3 / 30.4 / 3.6 / 2.4 / 1.0 | |
| Stereo correlation | 0.940 | 0.932 | above 0.3 |
| Longest gap / lowest momentary | 0.0 s / -30.7 LUFS | 0.0 s / -30.6 LUFS | |
| Format | 48 kHz, 24-bit, stereo, 2,352,000 samples (49.000 s) | same | |

| Guard | EN v2 | AR v2 |
|---|---|---|
| Ghost | PASS (the end hold now has 4.5 onsets per beat; cadences 20.0, 24.0, 41.0) | PASS (3.5 onsets per beat in the hold) |
| Reverb | PASS (worst bar 22.0, -14.4 dB wet under dry) | PASS (worst bar 22.0, -13.5 dB) |
| Masking | PASS (7 of 7 lead bars, smallest margin 9.8 dB) | PASS (7 of 7, smallest 9.8 dB) |
| Plan | PASS (unchanged notes; D7sus4 inside G mixolydian, no low-interval violation) | PASS (unchanged; Csus2 holds no E) |
| Stems | PASS (worst 1.51 dB off plan: pulse; city bed +1.46) | PASS (worst 1.46 dB: city bed) |
| Novelty | PASS (0.163, unchanged melody) | PASS (0.175) |
| Arc | soft way in 6.1 LU under the body, loudest -9.92 at 32.3 s (66 percent) 2.7 LU over usual, ending 10.7 dB under the peak, no loud last fifth: PASS; the music-by-code band of LRA 5 to 8 is not met (8.63), the director's profile target (at or under 10) is | way in 6.2 LU under, loudest -9.68 at 29.5 s (60 percent) 2.7 LU over usual, ending 11.5 dB under the peak: PASS; LRA 9.54 (above the 5 to 8 band, inside the profile target) |
| Spectrum | PASS (per-Hz slope -5.55 dB/oct) | PASS (-4.80 dB/oct) |
| Dead air | PASS (exact length; nothing under -45 dBFS) | PASS |
| Effect audibility (own band) | PASS (caret tick +14.4 dB in band over the new city bed; click at 12.0 -1.7; tiles -1.5 to +4.0) | PASS (tick +14.4; click +3.1; tiles -0.1 to +7.4) |

Hit alignment, version 2: EN and AR each 50 of 50 cues found on their own stem, median 0 ms, max 2 ms, none late beyond 5 ms; whoosh pass-by 10.410 s (+9.9 ms). On the full master: 49 of 50 found in each (the 1.45 hammer stays masked inside the machine cluster); non-noise cues within 12 ms (EN) and 20 ms (AR), the AR tile at 34.5 reads 6 ms late on the master and 0 ms on its stem. Kick-band phase against the 16th grid: +1.0 ms (EN), 0.0 ms (AR).

For the listening check, version 2 adds: does the city bed (5.5 to 9.0) still read as a silence after the noise; does the groove pulse under the logo (41.5 to 47.5) feel like the track resting, not a loop that forgot to stop; the fade in the last 1.5 s.

## 8. Version 3 (English only, stage 09 critic round 1)

Delivery is now one film, English 16:9. `python ice/audio/score.py --lang en --v3` writes `soundtrack_en_v3.wav`, `stems_en_v3/` (26 stems), `qc_en_v3.json`, `score_spec_en_v3.png`. Version 3 is version 2 with two changes; every other cue, level and note is the same, and the v1 and v2 files are byte-identical. The cue sheet gained one event without changing any other: `{"t": 46, "frame": 1380, "kind": "end_hit", "anchor": "bar 17 beat 1"}`.

| Time | Visible cause | Version 3 sound | Level intent | Reason |
|---|---|---|---|---|
| 0.0 | HONK at frame 0 | the first horn at the machines' full level (velocity 1.0, the escalation still runs for the other 25 events); no master fade-in (the horn's own 3 ms attack starts at sample 0) | first 0.5 s: -16.2 LUFS; RMS -19.9 dBFS in the first 10 ms, -18.7 dBFS at 0.03 s; peak -5.8 dBFS | critics measured the frame-0 hit inaudible on the draft |
| 41.0 | logo arrives | the cadence as before (horn honk in tune, engine root, lead D5 for 2.0 s, the home chord) | | unchanged |
| 42.0 to 46.0 | logo and line hold | the soft groove pulse plays two whole bars (horn low hit without honk, drill, engine on the home root; no hammer, no melody) | kit -12.5 dB; pulse alone -18.4 LUFS momentary (44.3 to 45.9) | the resting groove, now ending on a downbeat |
| 46.0 | end_hit: the playhead stops | one final hit: horn low hit plus the low horn (the honk an octave down, G3 and B3), hammer, open drill, engine root; the home chord struck once on a soft e-piano | kit -10 dB; hit -14.4 LUFS momentary (46.0 to 46.4), peak -3.6 dBFS: 4.0 LU over the pulse, 4.2 LU under the body's momentary median (-10.2) | a button ending instead of "a loop that fades" |
| 46.0 to 49.0 | the logo and line held | the home chord rings out by its own decay: the pad's release (2.9 s) and the e-piano's decay and key release (ends 48.95); room tone continues; no fade automation, only a 30 ms declick on the last samples | momentary -19.9 (46.5), -26.8 (47.0), -30.2 (47.5), -32.9 (48.0), -34.3 (48.5), -36.7 LUFS (48.9); RMS at 48.5 -35.4 dBFS; last 30 ms -40.8 dBFS | close, then air; nothing cut |

### Version 3 measured numbers

| Measure | EN v3 | Target |
|---|---|---|
| Integrated loudness | -14.05 LUFS | -14 +/-0.5 |
| True peak (ideal 8x, on the WAV) | -1.17 dBTP | at or under -1 (the master step re-checks the encoded file) |
| LRA, whole film | 8.80 LU | at or under 10 |
| LRA, music body 12.0 to 41.0 | 4.61 LU | information |
| Master gain / limiter reduction on the single highest peak | +5.40 dB / 5.17 dB | about 6 dB cap |
| Band shares (sub / bass / low-mid / presence / brilliance / air, %) | 19.7 / 45.7 / 30.6 / 2.0 / 1.3 / 0.7 | |
| Format | 48 kHz, 24-bit, stereo, 2,352,000 samples (49.000 s) | |

Guards: ghost PASS (the 46 to 49 window: 0.83 onsets per beat but only 5 percent sustained share and reverb 19.5 dB under dry), reverb PASS (worst bar -14.4 dB), masking PASS (7 of 7, smallest margin 9.8 dB), plan PASS, stems PASS (worst 2.56 dB: the ring chord, measured in its first second), novelty PASS (0.163), spectrum PASS (-5.54 dB/oct per Hz), dead air PASS (nothing under -45 dBFS; lowest momentary -35.1 LUFS in the last second), effect audibility PASS. Arc: way in 6.1 LU under the body, loudest -10.0 at 32.3 s (66 percent) 2.7 LU over usual, ending 11.9 dB under the peak, no loud last fifth: PASS; the music-by-code LRA band (5 to 8) is not met (8.80), the profile target (at or under 10) is.

Hit alignment, version 3: 51 of 51 cues found on their own stems (the 50 of version 2 plus end_hit), median 0 ms, max 2 ms, none late beyond 5 ms; the frame-0 horn reads +2 ms, the end hit at 46.0 reads 0 ms on its stem and on the master. On the full master 50 of 51 (the 1.45 hammer stays masked); non-noise cues within 12 ms; the 0.15 engine now reads 59 ms on the master because the louder frame-0 horn overlaps it (0 ms on its own stem).

Note on the opening: in every version of the WAV the frame-0 horn sounds from the first samples (v2: -26 dBFS RMS in the first 10 ms, -19 LUFS momentary at 0.2 to 0.5 s). The critics' reading of -39 dBFS at 0.03 s and -32 LUFS at 0.5 s therefore comes from a later step (an audio fade-in in the render or mux, loudnorm in dynamic mode, or encoder priming); 08b should check that the encoded file keeps the first frame.

## 9. Version 4 (the drawn street)

`python ice/audio/score.py --v4` (English only) reads the rebuilt, locked `ice/plan/cue-sheet.json` (36.0 s, 46 events; D-30 to D-37) and writes `soundtrack_en_v4.wav` (48 kHz, 24-bit, stereo, 36.000 s), `stems_en_v4/` (31 stems), `score_spec_en_v4.png`, `qc_en_v4.json` and `master_input_en_v4.json` (the WAV as one SFX at 0.0 s, gain 0, for master_audio.py, whose `--music` input forces a 1.5 s fade-in). Versions 1 to 3 now read the kept lane-grid sheet `cue-sheet-v1.json`; their files are unchanged (checksums) and a v3 re-render outside ice/audio is byte-identical. Clock: free time 0 to 7.5, then 120 BPM from the press (bar k = 7.5 + 2.0 k, a 16th = 0.125 s). Every sound is code-made (score.py plus the project copy of mgaudio); nothing is sampled, downloaded or AI-generated.

### Who plays what (D-32, D-36)

| Source on screen | Free time (0 to 2.9) | On the grid | Steps (16ths) | Enters |
|---|---|---|---|---|
| Hero car | dual horn a little sharp of G4 and B4 (405/512 plus 338/431 Hz); frame 0 mid-honk; the loudest blast at 2.6 | the kick (G1) under a low tuned blast of its horn on two chord tones in octave 3 (accent -4 dB under the kick, step 8 -9 dB, backbeat steps -11 dB and softer) | 0, 4, 8, 12 | 7.5 (the press) |
| Road breaker | chisel blows at 16 a second over hydraulic hiss | the hats: one chisel blow (crack and ring), open on step 14 from the drop to the field | 0, 2, 4, 6, 8, 10, 12, 14 | 9.5 |
| Pile rig | the ram onto a steel pile: falling thump, steel clang, crack, rebound | the backbeat: a snare body under the ram's crack and clang | 4, 12 | lock 11.5, first ram contact 12.0 (as the picture) |
| Motorbike | single-cylinder bark revving to 118 to 142 Hz | the bass (roots, octaves, fifths: R R O R F R) | 0, 3, 6, 8, 11, 14 | 13.5 |
| Jam (van 1, car 2, van 3, car 4) | each its own horn pitch: 332/418, 468/589, 301/356, 541/676 Hz | off-beat stabs, a second, higher horn voice on two chord tones in octave 4: the vans on 6, the cars on 14, one vehicle per stab, alternating by bar | 6, 14 | lock 19.5, first stab 20.25 |

Harmony (G mixolydian): 7.5 G, 9.5 F, 11.5 C, 13.5 Dm7, 15.5 G, 17.5 D7sus4 (breath), 19.5 G, 21.5 F/A, 23.5 C, 25.5 Dm7, 26.5 Eb (bVI), 27.5 F, 28.5 Dm7, 29.5 G (home). Lead from the drop on steps 0, 3, 6, 10: D E F D (19.5), C A G C (21.5), E F G A (23.5, under the line), A G A Bb5 (25.5, the climax note over Eb), A C D F (27.5, soft), D5 (29.5, the motif's last note on the logo). The lead rests on step 14 so the car answers in the gap; its step-6 note is lighter so the van answers under it. Strings (the held-back colour) only under the line: C5, D5, Eb5.

### One row per sound event (version 4)

| Time | Visible cause | Sound | Level intent (measured) | Reason |
|---|---|---|---|---|
| 0.0 | the hero car honks, the film opens mid-honk | the hero's dual horn at full level from sample 0 (0.8 ms declick, no attack scoop), no master fade-in | first 10 ms -19.6 dBFS RMS, first 0.5 s -15.9 LUFS | frame 0 is mid-honk |
| 0.15, 1.6, 2.4 | the motorbike revs | bike bark | escalating to the loudest blast | each source its own sound |
| 0.3, 1.1, 2.0 | the road breaker drills | chisel blows and hiss | escalating | |
| 0.35, 1.7, 2.45 / 0.9, 2.15 / 0.55, 1.95 / 1.2 | van 1 / car 2 / van 3 / car 4 honk | each vehicle's own pitch pair (vans darker) | escalating, panned left as the cue sheet | a jam, not one car |
| 0.5, 1.25, 2.2 | the pile rig's ram drops | thump, steel clang, crack, rebound | escalating | |
| 0.7, 1.4, 1.9 | the hero car honks | its dual horn | escalating | |
| 2.6 | the loudest blast | the hero's horn driven harder, +2 dB, decayed by 2.85 | the loudest firing, 2.5 dB over the next | the field enters as it decays |
| 2.9 | the search field rises | soft UI open | -6 dB (14.3 dB over the bed in its band) | |
| 2.75 to 8.1 | the street dims (3.0) | a distant street bed (rumble and air), no music | -30 LUFS stem; rest -23.3 to -18.2 LUFS momentary with the keys | declared rest 3.0 to 7.5 |
| 3.37 to 5.395 | 26 typed keys | one key tick per key, each its own take; the three spaces larger, lower, softer | letters -12 dB (up to 1.5 dB variation), spaces -17 dB; each -2.0 dB or better in its band | typed letter by letter (D-30) |
| 5.75 | Top result card rises | soft whoosh | -8 dB, pass-by 5.76 | |
| 7.5 | play pressed, the hero car plays the kick | click plus the first kick | click -5 dB | the press is bar 0 |
| 8.0 | the circle lands on the car | the kick on beat 2 (no extra sound) | | |
| 9.5 / 12.0 / 13.5 | breaker, pile rig, motorbike join | hats / backbeat / bass enter | kit -8.5, -6.5, -4.5, -2.5 dB by bar, -1 at 15.5 | one machine per bar |
| 15.5 | all four | full groove | kit -1 dB | |
| 17.0 | drum fill | breaker on 32nds rising, the ram on the last three 16ths | fill stem -24 LUFS | into the breath |
| 17.5 to 19.5 | the breath | kit out, the riser (its end is the drop), the pad holds D7sus4 at -6 dB | kit silent from 17.85 | declared hold |
| 19.5 | the drop | impact, full groove, the lead enters with the motif | impact -1.5 dB; music +0.75 dB to 23.5; loudest short-term -9.8 LUFS at 21.7 | the film's one signature riser and impact |
| 20.25 to 33.25 | the jam answers the kick | 14 horn stabs on steps 6 and 14 | jam stem -24 LUFS; every hero kick 3.8 dB or more over every stab | D-36 |
| 23.5 to 27.5 | the line on screen | groove at full, lead E F G A then the Bb climax, strings counter line | music +0.4 dB | the message bar |
| 27.5 | the empty field returns | the groove drops | kit -8.5 dB (measured -8.66 LU), lead soft | |
| 29.5 | the logo | cadence: the hero's honk on G (0.22 s), engine root, lead D5 (0.5 s), home chord; then the soft groove (every machine and the jam) | kit -12.5 dB | the picture keeps the street playing |
| 33.5 | the last hit | kick plus the low horn (0.4 s), ram, open breaker blow, engine root, the four jam horns once on the home chord, the home chord on a soft e-piano | kit -10 dB | a button |
| 33.5 to 36.0 | the logo and the line held | the home chord rings out by its own decay (pad release 2.3 s, e-piano decay); no fade automation, a 30 ms declick | -20.2 (34.0), -27.0 (34.5), -30.9 (35.0), -34.9 (35.5), -37.8 LUFS (35.8) | close, then air |

### Version 4 measured numbers and guards

| Measure | EN v4 | Target |
|---|---|---|
| Integrated loudness (raw score, pre-master for 08b) | -14.08 LUFS (ffmpeg: -14.1) | -14 +/-0.5 |
| True peak (ideal 8x on the WAV) | -1.21 dBTP (ffmpeg: -1.2) | at or under -1 (08b re-checks the encoded file) |
| LRA, whole film | 9.44 LU (ffmpeg: 9.5) | at or under 10 (D-29) |
| LRA, music body 7.5 to 29.5 | 5.50 LU | 5 to 8 |
| Master gain / limiter on the single highest peak | +6.01 dB / 5.77 dB | about 6 dB cap |
| Band shares (sub / bass / low-mid / presence / brilliance / air, %) | 20.2 / 44.8 / 31.1 / 2.0 / 1.2 / 0.7 | |

| Guard | Result |
|---|---|
| Onsets against cue times (own stems) | PASS: 63 of 63, max 0 ms, none late; frame-0 mid-honk at full level in its first 2 ms (+0.6 dB against its loudest 10 ms); whoosh pass-by +10 ms |
| Parts on their locks | PASS: horn 7.5, breaker 9.5, pile rig 12.0 (lock 11.5), motorbike 13.5, jam 20.25 (lock 19.5), each 0 ms off its first step, silent before its lock |
| Jam stabs within one frame of steps 6 and 14 | PASS: 14 of 14 at 0 ms, no stray onset |
| Hero kick louder than the stabs | PASS: full band 3.8 dB or more in every bar; horn band (300 Hz to 4 kHz) accent kick +0.3 to +1.4 dB; stabs 32.7 dB or more under the bass below 250 Hz; stabs at most 5.7 dB under the rest of the music in 500 Hz to 4 kHz |
| Quiet spans | PASS: no music 3.0 to 7.5, machines silent from 2.85; kit silent in the breath; nothing new after 33.5, the tail decays, last sound at 35.98 |
| Novelty | PASS: worst 0.293 (lofi), no 6-note fragment or 8-note shape repeated |
| Loudness and LRA (D-29) | PASS; music-by-code band 5 to 8 met on the body (5.50), not on the whole film (9.44), as in v1 to v3 |
| Arc | PASS: way in 5.49 LU under the body, loudest at 21.7 s (60 percent), 2.92 LU over usual, ending 10.51 dB under the peak |
| Masking, plan, stems, ghost, reverb, spectrum, dead air, SFX audibility, the noise | PASS: lead 8.5 dB or more over every role; G mixolydian; worst stem 2.27 dB off plan; lowest 1.2 onsets per beat; worst bar reverb -14.5 dB; -5.62 dB/oct; nothing under -45 dBFS; 31 cues audible (quietest -4.0 dB in band, the click under the first kick); 2.6 the loudest firing |

Open for 08b and the critics (nobody has listened): the limiter works 5.77 dB on the highest peak (accent kicks with the engine root, the drop); the hero's horn leads the stabs only thinly in the horn band; the picture lights both vans on step 6 and both cars on step 14 while the score sounds one vehicle per stab; the pile rig's lock at 11.5 has no hit (its first ram contact is 12.0 in the picture and in the score).

## 10. Version 5 (the owner's draft-9 round, D-38 to D-42)

`python ice/audio/score.py --lang en --v5` reads the re-timed `ice/plan/cue-sheet.json` (33.5 s; everything before 27.5 unchanged) and writes `soundtrack_en_v5.wav` (33.500 s), `stems_en_v5/` (34 stems), `score_spec_en_v5.png`, `qc_en_v5.json`, `master_input_en_v5.json`; after 08b `--measure-master` writes `peak_reduction_en_v5.json`. Version 4 now reads `cue-sheet-draft9.json` and re-renders byte-identical; v1 to v3 likewise.

### Who plays what (changes only)

| Source | Version 5 |
|---|---|
| Jam, seven cars in two rows (cue sheet music.jam) | free time: each car its own horn (J1 332/418, J2 468/589, J3 301/356, J4 541/676, F1 437/552, F2 356/425, F3 588/741 Hz; vans darker, cars brighter, the far lane 1.5 dB back); from the drop one car per stab in the order J1, F1, F2, J2, F3, J3, J4 on steps 6 and 14 (12 stabs, 20.25 to 31.25); a van on the chord's lower pair, a car on its upper pair (octave 4), 6 ms attack |
| Hero car (kick) | softer click and a 1.5 ms attack on the kick body, its accent blast 2.5 dB under the kick (v4 4), the soft kick under the backbeat at 0.45; the stem 0.5 dB lower |
| Pile rig (backbeat) | 0.8 on both steps, 6 ms ahead of the grid, 1 dB lower, tape saturation |
| Road breaker (hats) | 3 ms ahead of the grid, tape saturation |
| Motorbike (bass) | dips 3 dB under each kick; 0.72 on the stabs' steps 6 and 14; tape saturation; under the logo it keeps its line on G |
| Lead | bar 10 is C A F (27.5 to 28.25) into the cadence D5 at 28.5 (0.5 s); the note on step 6 at 0.55 so the car answers under it; the vibes layer 3 dB lower; the stem 1 dB lower |

Harmony from 27.5: F, Dm7 at 28.0, G (home) at 28.5. The rest of the form, keys and motif as version 4.

### One row per sound event (from 27.5; earlier rows as section 9)

| Time | Visible cause | Sound | Level intent (measured) | Reason |
|---|---|---|---|---|
| 27.5 | the empty field returns | the groove drops for one beat pair; the lead soft (C A F) | kit -8.5 dB (measured -8.7 LU) | D-39 |
| 28.25 | car F1 stabs | its horn on Dm7's upper pair | in the field level | one car per stab |
| 28.5 | the logo (cadence, bar 10 beat 3) | the hero's honk on G (0.22 s), the lead's D5, the pad's home chord | kit -2 dB | the motif's last note on the logo |
| 28.5 to 31.5 | the street plays on under the logo, the unofficial line from 29.0 | every machine, the bass line on G, the jam stabs (F2 29.25, J2 30.25, F3 31.25) | kit -4.5 dB (v4: -12.5) | the owner: the ending was too quiet |
| 31.5 | the last hit (bar 12 beat 1), every car lit | kick plus the low horn (0.4 s), ram, open breaker blow, engine root, all seven jam horns once on the home chord, the home chord on a soft e-piano | kit -2.5 dB | a button |
| 31.5 to 33.5 | the logo and the line held | the home chord rings out by its own decay (pad release 1.8 s); a 30 ms declick | -15.5 (32.0), -26.9 (32.5), -31.5 (33.0), -36.1 LUFS (33.3) | close, then air |

### Version 5 measured numbers and guards

| Measure | EN v5 score | draft-10 master (encoded) | Target |
|---|---|---|---|
| Integrated loudness | -14.03 LUFS | -14.1 LUFS | -14 +/-0.5 |
| True peak | -2.68 dBTP | -2.2 dBTP | at or under -1 |
| LRA | 7.46 LU | 7.3 LU | at or under 10 |
| Limiting on the single highest peak | 5.59 dB (mgaudio, after its 2.5 dB glue) | 0.0 dB (one render, ceiling -2.0 against a -2.76 dBFS peak) | total at or under 6 (D-42): 5.59 |
| Peak reduction, bus to master, loudest moment 26.9 s | 4.18 dB | -0.04 dB | total 4.14 dB (worst window 4.15) |

| Guard | Result |
|---|---|
| Onsets against cue times | PASS: 70 of 70, none late (pile rig -7 ms and breaker -4 ms early on purpose) |
| Parts on their locks | PASS: 7.5, 9.5, 12.0 (lock 11.5), 13.5, 20.25 (lock 19.5) |
| Jam stabs | PASS: 12 of 12 at 0 ms on steps 6 and 14, cars in the sheet's order |
| Hero kick louder than the stabs | PASS: 3.3 dB or more full band, accent 0.6 dB or more in the horn band; stabs at most 6.0 dB under the rest in band |
| Quiet spans | PASS |
| Novelty | PASS: 0.253 |
| Loudness and LRA (D-29) | PASS; the whole film now inside the 5 to 8 band (7.46), the body 3.97 |
| Arc | PASS except the ending (4.6 dB under the peak) and a loud last fifth: flagged by design (D-39, an alive ending) |
| Masking, plan, stems, ghost, reverb, spectrum, dead air, SFX audibility, the noise | PASS |

Open (nobody has listened): thin margins (hero accent +0.6 dB in band, the 24.25 stab at -6.0 dB, the impact at -5.6 dB in its band); the saturation and glue give the kit more grit and less snap; the pile rig and breaker lead their picture contacts by 6 and 3 ms.

## 11. Version 6 (35.0 s: the 07 approver's return on draft-10)

`python ice/audio/score.py --lang en --v6`: the version 5 sound on the locked 35.0 s `ice/plan/cue-sheet.json`; version 5 now reads `cue-sheet-draft10.json` and re-renders byte-identical. Writes `soundtrack_en_v6.wav` (35.000 s), `stems_en_v6/`, `score_spec_en_v6.png`, `qc_en_v6.json`, `master_input_en_v6.json`, `peak_reduction_en_v6.json`. Every row of section 10 up to 28.5 stands; the jam cars are level-matched in v6 (trims from -1.62 dB for J3 to +1.68 dB for F3).

| Time | Visible cause | Sound | Level intent (measured) | Reason |
|---|---|---|---|---|
| 28.5 to 32.5 | the street plays on under the logo (four seconds), the unofficial line from 29.0 | every machine, the bass line on G, the jam stabs (F2 29.25, J2 30.25, F3 31.25, J3 32.25) | kit -4.5 dB | the owner: an alive ending; the approver: inside 35 to 60 s |
| 32.5 | the last hit (bar 12 beat 3), every car lit | kick plus the low horn, ram, open breaker blow, engine root, all seven jam horns once on the home chord, the e-piano chord | kit -2.5 dB | a button |
| 32.5 to 35.0 | the logo and the line held | the home chord rings out by its own decay (pad release 2.3 s); a 30 ms declick | -15.7 (33.0), -26.6 (33.5), -30.4 (34.0), -33.8 (34.5), -37.4 LUFS (34.8) | close, then air |

| Measure | EN v6 score | draft-11 master (encoded) | Target |
|---|---|---|---|
| Integrated loudness | -14.07 LUFS | -14.0 LUFS | -14 +/-0.5 |
| True peak | -2.68 dBTP | -2.2 dBTP | at or under -1 |
| LRA, whole film | 7.45 LU | 7.4 LU | at or under 10 (music band 5 to 8: inside) |
| LRA, music body 7.5 to 28.5 | 3.97 LU | | music band 5 to 8: under (D-42 price) |
| Limiting on the single highest peak | 5.65 dB | 0.0 dB (gain +0.1, ceiling -2.0) | total at or under 6: 5.65 |
| Peak reduction, bus to master | 4.19 dB at 26.9 s | -0.54 dB | total 3.65 dB (worst window 4.02 at 20.2 s) |

Guards: every guard PASS (onsets 70 of 70; locks; jam 13 of 13 in order; hero over stabs 3.8 dB full band and 1.3 dB in the horn band; quiet spans; novelty 0.253; masking, plan, stems, ghost, reverb, spectrum, dead air, SFX audibility, the noise) except the arc's two ending clauses, kept for the decision record: the ending reads 6.09 dB under the peak (rule 8 to 20; the last hit sits 2.5 s before the end by the locked sheet) and the last fifth peaks 1.34 LU under the peak at 28.2 s (rule more than 2; the line and the cadence fall in the last fifth of a 35 s film). Reasons in ice/audio/NOTES.md, version 6.

## 12. Version 7 (the black end card, D-44 to D-46)

`python ice/audio/score.py --lang en --v7`: the version 6 sound with the owner's ending; it reads the locked `ice/plan/cue-sheet.json` (35.0 s, no unofficial line in the film, D-46); version 6 now reads `cue-sheet-draft11.json` and re-renders byte-identical. Writes `soundtrack_en_v7.wav`, `stems_en_v7/`, `score_spec_en_v7.png`, `qc_en_v7.json`, `master_input_en_v7.json`, `peak_reduction_en_v7.json`. Every row of sections 9 to 11 up to 27.5 stands.

| Time | Visible cause | Sound | Level intent (measured) | Reason |
|---|---|---|---|---|
| 27.5 to 30.5 | the empty search field over the playing street (the call to action, read in full) | the groove plays on (every machine, the bass line, stabs F2 29.25 and J2 30.25); the lead soft A C D F; F, Dm7 (28.5), Eb (29.5) | kit -4.5 dB | the street still plays under the question |
| 30.5 to 31.0 | the street and the field fade to black | the street's sound follows the fade (its last hits at 30.5 and 30.75); the pad moves to the lean (D7sus4) | kit -4.5 to -36 dB over the fade | the street drops out with the picture |
| 31.0 to 31.6 | black | the lean held low: a breath | -24 LUFS momentary, never silent | a breath before the landing |
| 31.6 to 32.5 | the logo fades up and scales 0.92 to 1.0 | a reverse cymbal swells into the hit; the pad lifts | swell -10 dB, rising 27 dB | the swell is the logo's entrance |
| 32.5 | the logo lands at full size | the final hit: kick and the low horn, ram, open breaker blow, engine root, the home chord (pad and e-piano), the lead's D5 | kit -3.5 dB | home on the logo |
| 32.5 to 35.0 | the logo held on black | the home chord rings out by its own decay; a 30 ms declick | -12.4 (33.0), -24.3 (33.5), -30.0 (34.0), -33.4 (34.5), -37.2 LUFS (34.8) | close, then air |

| Measure | EN v7 score | draft-12 master (encoded) | Target |
|---|---|---|---|
| Integrated loudness | -14.04 LUFS | -14.1 LUFS | -14 +/-0.5 |
| True peak | -2.48 dBTP | -1.3 dBTP | at or under -1 |
| LRA, whole film | 7.43 LU | 7.3 LU | at or under 10 (music band 5 to 8: inside) |
| LRA, music body 7.5 to 30.5 | 3.91 LU | | music band 5 to 8: under (D-43) |
| Limiting on the single highest peak | 5.80 dB | 0.0 dB (gain 0.0, ceiling -2.0) | total at or under 6: 5.80 |
| Peak reduction, bus to master | 3.97 dB at 26.9 s | -1.27 dB | total 2.70 dB (worst window 3.90 at 19.9 s) |

Guards: every guard PASS (onsets 69 of 69; locks; jam 11 of 11 in order; hero over stabs 3.1 dB full band, 1.0 dB in the horn band; quiet spans including the new black span; novelty 0.253; masking, plan, stems, ghost, reverb, spectrum, dead air, SFX audibility, the noise; the arc's way in, peak and whole LRA) except the arc's two ending clauses: the last 3 s 6.36 dB under the peak (rule 8 to 20) and the last fifth 1.29 LU under the peak at 28.2 s (rule more than 2). Reasons in ice/audio/NOTES.md, version 7.

## 13. Version 8 (the ending re-timed for look.py G2 and G3)

`python ice/audio/score.py --lang en --v8`: version 7's sound on the re-timed `ice/plan/cue-sheet.json`; version 7 now reads `cue-sheet-draft12.json` and re-renders byte-identical. Writes `soundtrack_en_v8.wav`, `stems_en_v8/`, `score_spec_en_v8.png`, `qc_en_v8.json`, `master_input_en_v8.json`, `peak_reduction_en_v8.json`. Every row before 27.5 stands.

| Time | Visible cause | Sound | Level intent (measured) | Reason |
|---|---|---|---|---|
| 27.5 to 31.5 | the empty search field over the playing street (4.0 s) | the groove plays on (stabs F2 29.25, J2 30.25, F3 31.25); the lead soft A C D F; F, Dm7, Eb, F | kit -4.5 dB | the street under the question |
| 31.5 to 32.0 | the street and the field fade to black (bar 12 beat 1) | the street's last bar follows the fade (the accent kick on its first frame); the pad moves to the lean (D7sus4) | kit -4.5 to -36 dB | the street drops out with the picture |
| 31.9 to 33.5 | the logo fades up and scales 0.92 to 1.0 (starting before the fade ends) | a reverse cymbal swells into the hit; the pad lifts | swell -10 dB | the swell is the logo's entrance |
| 33.5 | the logo lands at full size (bar 13 beat 1, a downbeat) | the final hit: kick and the low horn, ram, open breaker blow, engine root, the home chord, the lead's D5 | kit -3.5 dB | home on the logo |
| 33.5 to 35.0 | the logo held 1.5 s on black | the home chord rings out by its own decay (pad release 1.2 s); a 30 ms declick | -13.0 (34.0), -28.5 (34.5), -36.9 LUFS (34.8) | close, then air |

| Measure | EN v8 score | draft-13 master (encoded) | Target |
|---|---|---|---|
| Integrated loudness | -14.03 LUFS | -14.1 LUFS | -14 +/-0.5 |
| True peak | -2.48 dBTP | -1.6 dBTP | at or under -1 |
| LRA, whole film | 7.42 LU | 7.3 LU | at or under 10 (music band 5 to 8: inside) |
| LRA, music body 7.5 to 31.5 | 3.90 LU | | music band 5 to 8: under (D-43) |
| Limiting on the single highest peak | 5.20 dB | 0.0 dB (gain 0.0, ceiling -2.0) | total at or under 6: 5.20 |
| Peak reduction, bus to master | 4.07 dB at 26.9 s | -0.90 dB | total 3.17 dB (worst window 3.92 at 19.9 s) |

Guards: every guard PASS (onsets 69 of 69; locks; jam 12 of 12 in order; hero over stabs 3.0 dB full band, 0.9 dB in the horn band; quiet spans with the black span; novelty 0.253; masking, plan, stems, ghost, reverb, spectrum, dead air, SFX audibility, the noise; the arc's way in, peak and whole LRA) except the arc's two ending clauses: the last 3 s 6.31 dB under the peak (rule 8 to 20) and the last fifth 1.29 LU under the peak at 28.2 s (rule more than 2). Reasons in ice/audio/NOTES.md, version 8.

## 14. Version 9 (the end card re-timed for look.py G3)

`python ice/audio/score.py --lang en --v9`: version 8's sound on the re-timed `ice/plan/cue-sheet.json`; version 8 now reads `cue-sheet-draft13.json` and re-renders byte-identical. Every row before 31.5 stands.

| Time | Visible cause | Sound | Level intent (measured) | Reason |
|---|---|---|---|---|
| 31.5 to 33.0 | the street and the field fade to black (bar 12 beat 1) | the street's last bar follows the fade (the accent kick on its first frame, the stab J3 at 32.25 on the lean); the pad on the lean (D7sus4) | kit -4.5 to -36 dB over the fade | the street leaves with the picture |
| 32.5 to 33.5 | the logo enters with an accelerating fade and scale | the reverse cymbal swells into the hit (1.0 s); the pad lifts from -7 to -2 dB | swell -10 dB, rising 31 dB | the swell is the logo's entrance |
| 33.5 | the logo stops at full size (bar 13 beat 1) | the final hit and the home chord, the lead's D5 | kit -3.5 dB | home on the logo |
| 33.5 to 35.0 | the logo held 1.5 s | the chord rings out by its own decay; a 30 ms declick | -13.1 (34.0), -28.7 (34.5), -37.1 LUFS (34.8) | close, then air |

| Measure | EN v9 score | draft-14 master (encoded) | Target |
|---|---|---|---|
| Integrated loudness | -14.08 LUFS | -14.0 LUFS | -14 +/-0.5 |
| True peak | -2.48 dBTP | -1.4 dBTP | at or under -1 |
| LRA, whole film / music body 7.5 to 31.5 | 7.51 / 3.95 LU | 7.4 LU | at or under 10; band 5 to 8 (body under, D-43) |
| Limiting on the single highest peak | 5.04 dB | 0.0 dB (gain +0.1, ceiling -2.0) | total at or under 6: 5.04 |
| Peak reduction, bus to master | 4.02 dB at 26.9 s | -0.59 dB | total 3.43 dB (worst window 3.76 at 19.9 s) |

Guards: every guard PASS except the arc's two ending clauses (the last 3 s 6.42 dB under the peak, rule 8 to 20; the last fifth 1.31 LU under the peak at 28.2 s, rule more than 2). Reasons in ice/audio/NOTES.md, version 9.
