# Changelog — the site What changed on https://atmos.nvexx.nl/, newest first. The version and date of the top entry are shown in the site's footer, and this file is published at /changelog.md. Scoring decisions live in `SCORING-v2.md`; this file is about what a visitor sees. Dates are dd-mm-yyyy; the time after the bar is the owner's local time the version went live, so two versions from one day can be told apart (entries before 2.6 carry none). ## 2.9 — 23-10-2026 | 16:35 - **Silent channels are no longer counted as playing.** Every lane on a PerceptualPro graph ends in a small upright cap, and the test for a dead channel saw that cap as sound. So wherever a mix leaves a speaker silent but the graph still draws its line, the speaker counted as used: 16 films were credited with 64 channels their graph never shows playing, among them Star Wars: The Force Awakens, Blade Runner 2049, Big Hero 6, Ready Player One and Ferrari. A channel is now dead when not one moment of it plays, by the same reading that measures how often it plays. (On three of them, both Fantastic Beasts films and Rebel Moon - Part Two, PerceptualPro's log graph shows sound in those channels too quiet for the graph the index reads, as it already did for channels counted dead before; whether to count such sound is an open question, not part of this release.) - **And the other way round.** The old test looked only above the line and only at the brightest pixels, so 41 films had 61 channels marked dead that do play, some of them briefly: The Sea Beast, The Power of the Dog, Braveheart, Marrowbone, Edward Scissorhands, Trolls Band Together. - **Gridlines and caps are not sound.** The newer graphs draw a time gridline through every lane every few minutes (5 to 11 per film), and the older ones a cap at each end; each was counted as a moment of sound in every lane. On The Beekeeper and The Ministry of Ungentlemanly Warfare a three-column band laid over the graph was too. All of them are now left out of how often and whether a channel plays. - **Quiet sound on the older graphs is seen.** The older renderer draws in two layers, a bright one and a faint one about a sixth as strong. The reader added up ink, so a faint band fifteen rows tall counted as two and the moment as silent. It now counts the rows drawn. The log graphs, which show even very quiet sound, have sound in all but 42 of the 1,065,738 moments this adds. - **The whole film is read.** Where a lane's line runs a row lower for a while, the reader could take the film to start late or end early: Deadpool & Wolverine lost its first 3% and Crime 101 its first 2%, War Machine its last 2.5%. 54 graphs were off against their log graph by more than ten columns; 3 still are, all three because the two published images differ in width. - **What moves.** Of 1,089 films with a BUBBLE score, 763 keep it, 220 go down and 106 up. Every film that moves by half a point or more does so because its count of live channels was corrected: Under Paris 7.7 to 3.8, Star Wars: The Force Awakens 9.2 to 6.7, Blade Runner 2049 10 to 9.0, Ferrari 4.1 to 0.3; Marrowbone 5.9 to 7.2, Braveheart 5.4 to 6.6, Men in Black II 8.8 to 9.4. The rest move by 0.3 at most. 94 of the top 100 stay in it and The Hurricane Heist stays number 1; Blade Runner 2049 goes from 5 to 20. BOOM is untouched, and so are the scale and its frozen limits. - **A note on the hour before this release.** From 14:51 the footer already read 2.9 and this page already listed these changes, while the scores shown were still those of 2.8.1: an automatic update published the site while 2.9 was being prepared. The upload of 2.9 began at 16:35 and its scores were live from 17:16. ## 2.8.1 — 19-09-2026 | 22:42 - **Faster downloads.** The host compressed the film dataset poorly: 7.5 MB went out as 3.1 MB. The site now ships its big files already compressed with Brotli, and a browser that accepts it (all current ones) gets the dataset as 0.69 MB and the page as 70 KB instead of 120 KB. Older clients get what they got before. - **No text jump when the font arrives.** Until IBM Plex Sans has loaded, the text is set in a fallback sized to occupy exactly the same lines (its figures are read from the two font files), so nothing moves when the real font swaps in. ## 2.8 — 19-09-2026 | 20:57 - **A channel chart on every film page.** Under the card: one lane per speaker, the whole film from left to right. Bar height is how loud that speaker gets, the amber line under a lane marks the moments counted as playing, and the figure on the right is their share of the film. 1,067 films have one. Drawn from the same exact reading as the scores, without any script. - **How loud each channel is, corrected on the older graphs.** Three faults, found while checking 2.7, all on PerceptualPro's older renderer (588 films); the 485 films of the newer renderer keep their numbers (7 of them move by 0.1). 1. The reader placed its 16 lanes on an even grid, but the real lanes are not evenly spaced: on 418 older graphs the grid sat 2 to 6 pixels off the line in some lanes. A lane placed above its line lost the first pixels of every sound; one placed under it counted the lower half of the drawing as well. Every lane now sits on its own line. 2. On the 267 graphs that draw the thicker silent line (see 2.7), that line was counted as loudness in every quiet lane. Half of It's height level was line. 3. On the blended older graphs, counting whole bright pixels read a left speaker and its right twin differently. Loudness on older graphs now comes from the exact ink, as activity does. Checked on left and right twins, which a real mix feeds about equally: the imbalance on the thick-line graphs falls from 0.25 to 0.07, the same as the newer renderer's 0.065. - **2.7 misread 43 films, corrected.** Its test for the thicker silent line looked at too wide a range of heights and also caught a common sound height, so 43 films without that line (Dune, Blade Runner 2049, Mad Max: Fury Road, The Batman, The Hurricane Heist and others) were read as having it, and their activity came out too low. The test now looks only at the line's real height: 320 films show it in 1% of the drawing or less, 267 in 3.5% or more, none in between. - **Mercy (2026) is read exactly too**: six of its lane lines have gaps, which the reader now follows. Every one of the 1,073 graphs is read by the exact reader. - **The small upright caps at both ends of every lane** are part of the axis, not sound, and are left out. - **What moves.** Of 1,071 films with a BUBBLE score, 526 keep it, 268 go down and 277 go up (75 and 72 by a full point or more). Older films are scored against each other, so a correction to some moves the others. Dune 8.0 to 10, Blade Runner 2049 8.7 to 10, Mad Max: Fury Road 6.6 to 8.1, Edge of Tomorrow 7.2 to 8.3; It 7.4 to 6.0, Kong: Skull Island 6.7 to 5.6, Alita: Battle Angel 7.6 to 6.9. 82 of the previous top 100 stay in it. BOOM is untouched, and so are the scale and its frozen limits. - **Google Analytics loads after the film page**, as it already did on the home page. ## 2.7.1 — 19-09-2026 | 18:24 - **A new version shows up at once.** The changelog, the stylesheet, the film pages, the feed and the sitemap carried no caching rule, so a browser that had them saved kept showing its own copy for hours: after 2.7 went live the owner still saw the 2.6.1 changelog. Every file that changes in place now tells the browser to check with the site first. Nothing else changed. ## 2.7 — 19-09-2026 | 17:51 - **How often a channel plays is now read exactly.** PerceptualPro's graphs are lossless images: every pixel says exactly how much ink it holds, so the height the graph draws at each moment can be summed to a fraction of a pixel. No colour test, no cut-off, no guessed line thickness. The owner found the problem by counting pixels by hand on It (2017). - **What was wrong.** On 310 older graphs the silent line is drawn a little thicker than on the rest. The previous reader took that thicker line for sound, but only in lanes where it lands on 4 pixel rows and not where it lands on 5. On It (2017) it said the front-left ceiling speaker plays during 89% of the film and the identical front-right one during 3%. Read exactly they are 2% and 3%. - **What moves.** Height activity is about a fifth of BUBBLE. 549 of the 1,073 films with a channel graph keep their BUBBLE, 235 go down (15 by a full point or more) and 289 go up (50 by half a point or more): older graphs are scored against each other, so when the over-read ones fall, the correctly read ones rise. Examples: It 9.3 to 7.4, Alita: Battle Angel 9.4 to 7.6, Kong: Skull Island 8.8 to 6.7, Jupiter Ascending 9.8 to 9.0, Edge of Tomorrow 6.5 to 7.2. The scale, how loud each channel is, completeness and every BOOM score are untouched. - **Checked three ways before it went live.** On all 484 films of the newer renderer, where the previous reader was right, the exact reading lands within 5 points of it, so "plays" means what it meant before. Against PerceptualPro's log graphs, which show even very quiet sound, a channel may never show more activity than the log graph shows at all: the previous reader failed that in 128 of 17,104 lanes, the exact one in 1. And the numbers the pipeline now produces match the analysis that preceded it within half a point on every film. - **The activity figures on every card** (all 16 channels, not only the ceiling) come from the same exact reading. Every film added from here on is read this way. - One film, Mercy (2026), keeps the previous reading: the new reader finds 10 of its 16 lanes. ## 2.6.1 — 18-09-2026 | 14:31 - **The 50 cards are out of the page again.** Version 2.6 wrote the first 50 cards into the HTML so the first paint would be the final look. Measured on PageSpeed mobile it was a loss: each card carries its hidden breakdown, the page doubled on the wire (122 to 243 KB) and the browser laid the whole set out twice, so blocking time went from 340 to 810 ms and the score from 79 to 60. The top 100 are a plain list again, as in 2.5. The other three changes of 2.6 stay. ## 2.6 — 18-09-2026 | 14:16 - **Loading order on phones.** The dataset (3 MB compressed) is no longer preloaded ahead of everything else: it is fetched after the first paint, at low priority. The two monospace fonts the first screen uses are preloaded with the others. Google Analytics loads after the page, not with it. The first 50 cards were written into the page itself — reverted in 2.6.1. ## 2.5 — 15-09-2026 - **A page for every film**: /film/, 7,696 of them, each with its own title and description, canonical link, share image, a Movie schema with breadcrumbs, the larger poster, and the card exactly as the index draws it. Film titles on the index now link to them; the static top 100, the structured data, llms.txt and the feed point at them too. - **The sitemap lists every page** (the index plus one per film), each film with its poster, so search engines and image search find every film by address instead of by anchor. - **Larger posters** for the 1,066 films that have artwork, fetched with the thumbnails. ## 2.4 — 15-09-2026 - **First film page, as a test**: /film/jupiter-ascending-2015 — its own title, description, canonical, share image, a Movie schema with breadcrumbs, a larger poster, and the card exactly as the index renders it (built by the index's own code). Served through a clean-URL rewrite. One film for now, to look at before the other 7,698. Second look: the card no longer repeats the poster as a thumbnail (the large one stands beside the title), and the BUBBLE and BOOM stars draw as stars: the index sets the star shape from its script at load, which a script-free page never ran, so the stars fell back to plain bars. The film page now carries the shape in its stylesheet, read from the same line of the template. - **RSS feed** at /feed.xml: the newest 100 films as they enter the index, each with DEMO, BUBBLE, BOOM (and with BEQ), the measured release, the sub-bass warning and genres, linked to the film and carrying its poster. Announced in the page head, so feed readers find it from the address. ## 2.3 — 13-09-2026 - **Genre filter and genre chips agree.** The filter matched a film's whole genre list while the card drew only its first two, so a Horror search returned films with no Horror chip (4,412 films have three genres). One list now, nowhere truncated: every genre is shown and every genre is filterable. The Audio filter likewise matches every format the catalogue holds for a film; the chip on the card names the format of the measured release, and the detail panel lists the rest. - **Version and date in the footer**, with a link to this changelog. ## 2.2 — 13-09-2026 - **Release chip on every measured film**: Disc or Streaming (with the service), the codec, and in the detail panel the cut, the dialnorm note and whose chart it was. It names the release the BOOM score was read from. A **Release** filter (Disc / Streaming) and `medium=` on the API. - **Sub-bass warning** (red pill with a ⚠) on films whose disc peaks at −25 dBFS or louder at 10 Hz (the top 6% of the field), with the level. A **Sub-bass** filter and `sub=1` on the API. ## 2.1 — 13-09-2026 - **Fonts served from the site** (Latin subsets, ~110 KB) and the dataset preloaded: the Google Fonts stylesheet was the one render-blocking request. PageSpeed mobile 75 → 85+. - **Sitemap carries the top 1,000 films' posters** (image extension) and renders as a table in a browser. - **Structured data**: one `ItemList` of the top 1,000 films as `Movie` items with image, director (Wikidata), release date, genres, IMDb link and the three scores; every card in microdata. Rich Results: 1,052 valid items, no errors. Titles with mangled accents repaired at the source (Emilia Pérez, Léon, WALL·E …), which also merged 5 duplicates. - **`llms.txt`** in the llmstxt.org form, `data.json` at a fixed address, AI crawlers named in `robots.txt`. - **The page split**: 10 MB single file → ~730 KB page (300 KB compressed) + a fingerprinted dataset + posters as lazily loaded images. Stats prerendered, so nothing jumps (CLS 0.2 → 0.01). - **Google Analytics** via `data/site.json`. **Nvexx brand line** in the footer. - **Live on atmos.nvexx.nl** (Bluehost, published by `publish.js` over FTPS after every ingest). ## 2.0 — 12-09-2026 - **Scoring v2 live**: BUBBLE spatial-only and rescaled, BOOM = the disc as released (Depth, Impact, Weight, Density) with BEQ BOOM beside it, DEMO = √(BUBBLE × BOOM), demo-worthy at 7/7. Demo clips labelled and listed after the films. Critics' scores show their year when older than 12 months. Hot releases, unverified charts and clipped charts labelled.