Skip to content

Read the glossary on a phone, and file the code the way the pages are filed - #505

Merged
jmrplens merged 17 commits into
mainfrom
site-details
Aug 5, 2026
Merged

Read the glossary on a phone, and file the code the way the pages are filed#505
jmrplens merged 17 commits into
mainfrom
site-details

Conversation

@jmrplens

@jmrplens jmrplens commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Two threads that ended up depending on each other: finishing the site details I
had left open, and then giving the code the same treatment the pages got.

The site

The glossary was 120 terms spread across markdown tables that read badly on a
phone. It now comes from one source, site/src/data/glossary.mjs, rendered as
cards by a Glossary.astro component that also emits a DefinedTermSet for
machines. Each term carries its symbol, unit, standard, clause and the guide
that teaches it, and the guide link text is read from the content collection at
build time, so a slug that stops existing fails the build instead of rotting.

Three example fiches the guides described but never showed are generated now
(iso12354_detailed_airborne, iso12354_detailed_impact,
iso3745_precision_power), and scripts/check_reports.py gained a per-language
check that every committed fiche is actually shown on a page, which is what
found them.

On a phone, a topic's landing page listed nothing it holds; TopicSections.astro
now shows the sections with their page counts. The "By ... Published ..., updated ..."
line moved off the top of every page into the footer, where a date belongs.

The code

scripts/generate_graphs.py had reached 21020 lines. Three rounds of splitting
brought the largest file in the repository down to 2862, which is the flat API
surface and cannot be shorter. Files over a thousand lines went from 41 to 40,
and that is the point: splitting a 21000-line file yields several of a thousand,
and what changed is that none of the remaining ones has an honest seam left.
The ten that stay long are the API surface, two translation tables and seven
modules that each hold one standard.

CONTRIBUTING.md now states the rule the splits followed: there is no line
limit, the test is cohesion, and a split is a move proven by byte-identical
generated output. Every round is verified that way. The 1692 committed figures
regenerate within tolerance, the 70 fiches byte for byte, and docs/CONFORMANCE.md
identically, with its 533 checks passing.

Splitting a module moves names between modules of the same package, and a
deprecated 3.x import path names only one of them, so 47 names would have
stopped resolving through a path that still promises a warning until 5.0.
_compat.py now knows which modules a split fed, and a test holds every name
to that promise.

What the reorganisation broke, and this fixes

Auditing the layout afterwards turned up four things the splits had damaged and
nothing had noticed:

  • hooks/pre-commit watched tests/reference_data.py and
    scripts/conformance_report.py. The first is a package now and the domain
    modules moved to scripts/conformance/, so the hook had quietly stopped
    regenerating the conformance report.
  • CONTRIBUTING told contributors to add figure builders to
    scripts/generate_graphs.py, which holds no functions any more. A figure
    added where it pointed would never have been drawn.
  • One figure could not be generated at all: its builder locates tests/ by
    counting parents from its own file, and moving it into the package left the
    count one short. os.path.dirname(__file__) plus ".." climbs one level
    less than Path(__file__).parent, so the two forms read alike and are not.
  • _plot holds one renderer per domain; _plot/junction.py was the only one
    named after a single result.

Filing

Six test files move to directories that already carried their subject, two
guides move into the directory their sidebar group is named after, and six
section indexes stop listing pages from other sections under a heading that
reads as an inventory. Old links to the two moved guides break rather than
carry a redirect.

Checks

8011 tests, ruff, mypy over 419 files, 3630 documentation snippets across
505 pages, 533/533 conformance checks, i18n parity over 156 pages, the site
build and html-validate.

Known gap

phonometry.aircraft.anp_fleet exports five public names and no guide mentions
it; only the generated reference covers it. That predates this branch and I have
left it alone here rather than widen the subject.

Review in cubic

jmrplens added 14 commits August 5, 2026 00:39
Starlight served the 146 API pages on /es/ under its own notice, "Esta página
aún no está disponible en tu idioma", which promised a translation that is not
coming. The reference is generated from the docstrings, so its text is the
code's own; keeping a Spanish copy of it in step with every signature change
would cost more than it teaches, and the guides carry the teaching in both
languages already.

So the notice now says what is true: the API reference is published in English
in both languages because it is generated from the code. The Spanish reference
index says the same where it sends the reader there, and the parity check,
which exempts exactly this subtree and nothing else, records the reason rather
than the mechanism.
Every guide opened with "By José Manuel Requena Plens · Published ..., updated
...", between the title and the first sentence, on 278 pages. Of the three
things it said, two were already on the page: the name in the footer credit,
which carries rel="author" and is the form a crawler reads, and the update
date in the last-updated line at the foot of the article. Only the first
publication date was unique to it.

So the line is gone and that date moved to where its sibling already was. The
last-updated line now reads "Published <date>, updated <date>", one date when
the two are the same day, in both languages. Nothing machine-readable changes:
Head.astro computes author, datePublished and dateModified from the same git
history and the same route data whatever the body shows, so the JSON-LD, the
sitemap, the markdown copies and the llms artifacts are untouched.
On a wide screen the sidebar answers "what is in this topic?" before the
reader asks: /signals/ opens with its seven rows down the left. On a phone the
same page opens with a title and prose, the sidebar folded behind the menu
button, and nothing on the first screen names a single section. The list is
further down every landing page, authored as headings, but measured against
the built site it starts between one and nearly three screens below the fold.

So the landing page now opens with it. TopicSections renders the topic's own
sidebar tree as a short navigation block: one row per section, with the number
of pages inside, the whole row a target. It renders on a topic's landing page
and nowhere else, and `md:sl-hidden` retires it the moment the real sidebar
appears, so a desktop reader is not shown the same seven labels twice.

The tree it reads is the one the sidebar renders, not a second list to keep in
step: the topics plugin has already narrowed `starlightRoute.sidebar` to the
current topic by the time components render, which is the same data
Pagination.astro walks.
The Spanish-regulation guide printed the snippet that renders an acoustic
inspection fiche and then showed no fiche, unlike every other guide that ends
in a report. It was not alone: sixty-seven fiches are generated, committed and
shipped in the built site, and seven of them were embedded on no page in
either language. One was the worked example of the very snippet its guide
prints.

The seven are in their guides now, in both languages: the RD 1367/2007
inspection fiche, the ISO 1999 NIPTS and HTLAN predictions, the machine
enclosure and HVAC duct fiches, the reactive silencer, and the IEC 61400-11
tonality assessment. Three of those guides never mentioned `.report()` at all,
so they gained the paragraph and the snippet as well as the preview; every
number quoted in a description was read off the committed page.

The gap was invisible to every gate, which is the part worth fixing. The fiche
check closed the loop from the generator to the committed file and stopped
there, and the EN/ES parity check compares the two trees with each other, so a
fiche missing from both languages passed both. It now asks the remaining
question, per language: is this fiche on a page a reader can reach, and does
every embedded name exist?
The glossary was twelve five-column tables. A table is the right shape for
numbers and the wrong one for a sentence: measured on a phone, the definition
column rendered 135 px wide while the one-word guide link took 256, and the
row needed 775 px of horizontal scroll inside a 358 px screen. The definition
is the content of that page, so each term is a block now: the notation and its
unit above, the sentence at the full width of the column, the standard and the
guide underneath as metadata. The definition gets 324 px on the same phone and
there is nothing to scroll sideways; on a wide screen the spare width goes to
a second column instead of stretching the prose.

The deeper problem was that the same 120 entries existed four times: a table
in each language, and a hand-written JSON-LD block of 120 DefinedTerm nodes in
the frontmatter of each. Nothing kept the four in step and they had drifted.
They come from one array now, src/data/glossary.mjs, which the component
renders and emits the structured data from. Each page went from 2030 lines to
39.

What cannot differ between the two languages is stored once, which is what
stops it drifting: the notation, the designation where it is only a catalogue
number, the route of the guide. What genuinely translates is a pair: the
definition, the unit where the unit is a word, the clause, the twenty-one
designations carrying translated prose, and the two entries named rather than
symbolised.

The link to a guide now takes its text from that guide's own title, read at
build time, so the nine Spanish rows still advertising a title their page had
stopped using are gone by construction, and a term pointing at a page that
does not exist fails the build instead of shipping a dangling link.
The page stopped being twelve markdown tables and became a component, so it is
now the kind of page pa11y exists for. It was not on the list; the other two
generated reference pages, conformance and errata, were.
Three result classes had a `.report()` section written in their guide and no
example to show for it: the two detailed ISO 12354 predictions and the ISO
3745 precision sound power determination. The guide told the reader what the
fiche contains and could not show one.

The two prediction fiches are the Annex L / Annex G building, read from the
fixture the tests and the conformance report already share rather than
transcribed a third time: the same 220 mm separating floor, floating floor,
AAC external walls and calcium-silicate internal walls, through the same
eight Annex E junctions. They rate to the annexes' own R'w = 57 dB over
thirteen paths and L'n,w = 41 dB over five. The two corrections the registry
records against the printed inputs travel with the fixture, so the fiche
cannot quietly disagree with the conformance rows.

The precision fiche is the guide's own worked example, the forty-position
hemisphere array whose spectrum the page already plots, so the fiche and the
prose print the same LWA = 89.3 dB(A) and the same U = 4.1 dB.

All three are embedded in their guides in both languages, which is what the
per-language check added with the previous batch now requires of every
committed fiche.
The new precision snippet wrote emission.ReportMetadata; the class is exported
from the package root, as its sibling snippet on the same page already showed.
The static pass does not import anything, so only CI, which runs every English
block, could see it.
Six findings, four of them mine and two already fixed by the snippet commit.

Three entries had their designation cut mid-parenthesis. The migration split a
standard at the first comma when what followed looked like a clause, and in
"ISO 717-2:2020 (measurement in ISO 16251-1:2014, Formulae (3) and (4))" what
followed was the middle of a note: the opening bracket stayed in `standard`
and the closing one moved to `clause`. The page read correctly because the
component joins the two with a comma, and the structured data did not. Those
three notes are one field again.

Two entries kept their clause inside the designation, which every other entry
separates and which the JSON-LD needs separated. The migration's rule required
a word boundary after the first digit, so it matched "5" and missed "14.12.7".

The underwater sound pressure level stored its notation twice, `$L_p$` in
English and `Lp` in Spanish, so one card typeset it and the other printed the
source. The notation is one value with a translated qualifier, which is what
the module's own header says.

In the component, the site and base strings come from src/data/site.mjs, where
astro.config.mjs and the audit scripts read them, instead of a literal; the
guide URL is built from the slug rather than by stripping the base back off a
href, which a string replace would have removed wherever it first appeared;
and the JSON-LD description, unit and clause go through the same maths
stripping as the term code, so a consumer reads "THDF" and not the TeX.
Five files held 44 663 lines between them, and none of them held one subject.
scripts/generate_graphs.py was 21 020 lines with 301 figure builders, a 2 100
line translation table, an animation encoder and a schematic drawing
vocabulary sharing one namespace; scripts/conformance_report.py was 529 checks
over 57 domains; scripts/generate_diagrams.py, 84 drawings. tests/reference_
data.py was 641 constants under 137 banners, and _plot/geometry.py was the one
module in that layer cut against its grain: every other _plot module is one
domain, that one was every domain's setup drawings.

They are packages now. The three scripts keep their entry point, so
`make graphs`, `make conformance` and the two test modules that import them by
name are untouched; generate_graphs.py goes from 21 020 lines to 689,
conformance_report.py from 9 479 to 175, generate_diagrams.py from 7 645 to
28. reference_data and geometry became packages of the same name, so no
importer changed at all: their `__init__` re-exports every name explicitly.

Each figure went to the module named after the guide that embeds it, resolved
mechanically by matching every save_figure stem against the images the site
pages reference; each check went to the module named by the banner it already
sat under, and that import list is now the report's section order, stated as
such. The nine diagram builders called `_d1` to `_d9` are named after what
they draw, which the registry key already knew.

A split is a move, and the proof is that nothing it generates moved: the
conformance report regenerates identical, 336 diagram SVGs and every figure
variant checked come out byte for byte the same, an AST comparison of all 543
top-level definitions of the figure generator finds 541 untouched, and the
suite passes 8 010 tests. The two functions that did change are set_lang and
set_theme, which now push their rebindings into the package so that not one
figure body had to learn where its palette lives.

The rule this followed is written down in CONTRIBUTING.md, because the number
everyone reaches for is not the criterion: PEP 8 sets no file limit, pylint
and Sonar both set 1000 and then hedge it (pylint's own config raises it to
2000 and disables the checker; S104 is not in Sonar's default profile), and
ruff has rejected the rule twice. What matters is whether the file is one
subject. Seventeen modules over 1000 lines were judged and left alone for that
reason, most of them half docstring about one clause.
Each of these files had reached the point where its docstring opened by
announcing two standards. The split follows the seam the prose already
described, so every new module is one subject:

- emission/sound_power.py keeps ISO 3744/3746 and hands ISO 3745 to
  sound_power_anechoic; the ISO 9614-3 block joins Part 2 in
  sound_power_intensity, which is the same method at precision grade. The
  floor the three standards share is in emission/_shared.py.
- aircraft/rotorcraft_noise.py keeps the source model; the ground, terrain
  and atmosphere adjustments go to rotorcraft_propagation.
- materials/absorbers/porous.py keeps the equivalent-fluid and resonant-sheet
  building blocks; the transfer-matrix stack goes to layered.
- materials/absorbers/impedance_tube.py keeps ISO 10534-2; the ASTM E2611
  four-microphone method and the ISO 10534-1 standing-wave method get their
  own modules.
- materials/diffusers/scattering_diffusion.py keeps ISO 17497-2; Part 1 goes
  to reverberation_room_scattering.
- signals/spectra.py hands the multitaper estimator and the window metrics to
  modules of their own.
- electroacoustics/distortion.py keeps harmonic distortion; intermodulation
  and the noise measurements separate.
- filters/compliance.py keeps the band filters; the weighting-curve
  verification goes to weighting_compliance.
- building/measurement/insulation.py hands the single-number ratings to
  ratings; building/prediction/resilient_layers.py hands the wall linings to
  linings.

The test files split the same way, and the flat top-level API is unchanged:
the same 1270 names resolve, from new modules. docs/CONFORMANCE.md
regenerates byte for byte identical, which is what makes this a move rather
than a rewrite.

A deprecated 3.x module path serves whatever its target module exports, so a
name that changes module inside its package would have stopped resolving
through it, in a release where the alias still promises a warning instead of
an ImportError. _compat.py now knows which modules a split fed, and a test
holds every name to that promise.
The figure and fiche generators were the last files where one module answered
for a dozen unrelated drawings. Each split follows a seam that was already
there, and no builder body changed:

- scripts/generate_reports.py drops from 3573 lines to the registry and the
  command line, over a new scripts/reports/ package of one module per subject.
  The 70 fiches keep their order, and `python3 scripts/generate_reports.py`
  is invoked exactly as before.
- scripts/figures/fields.py becomes a package: one module per simulated
  subject over the shared capture and display-gain core. The field builder and
  the clip that renders it stay together, because the field is memoised and
  the four language and theme variants fork off one computation of it.
- scripts/figures/building.py gives the room acoustics figures a module of
  their own and separates what a built element measures from what a design
  predicts.
- scripts/figures/signals.py separates filtering and weighting from spectral
  estimation, from correlation and envelope analysis, and from the
  measurement-quality tests.

This also fixes a figure that could not be generated at all. The Annex L path
builder reaches into tests/ for its worked example, and it locates that
directory by counting parents from its own file. Moving it down into the
package left the count one level short, pointing at a scripts/tests that does
not exist. It now counts from the same anchor scripts/conformance/registry.py
uses, and the comment says why the shorter form is wrong here.

Every figure regenerates within tolerance and every fiche byte for byte, which
is what makes these moves rather than rewrites.
An audit of the layout after the module splits turned up eleven things filed
where they do not belong. Four of them are damage the splits themselves did:

- hooks/pre-commit watched tests/reference_data.py and scripts/conformance_report.py,
  but the first is a package now and the 25 domain modules moved to
  scripts/conformance/, so the hook had quietly stopped regenerating the
  conformance report for most changes that need it.
- CONTRIBUTING told contributors to add a generate_* function to
  scripts/generate_graphs.py. That file holds no functions any more, and the
  catalogue make graphs walks is in scripts/figures/registry.py, so a figure
  added where the guide points is never drawn. It now names the builder module
  and the registry for each of plots, diagrams and fiches.
- _plot holds one renderer module per domain; _plot/junction.py was the only
  one named after a single result, while the geometry drawing for that same
  result already sat in _plot/geometry/vibration.py under the rule. Folded into
  _plot/vibration.py.
- Two byte-identical PNGs sat at the repository root, referenced by nothing.

Six tests move to directories that already existed and already carried their
subject: the filter-bank suites into tests/filters/ and the impact insulation
one into tests/building/measurement/. The cross-cutting suites stay at the top
level, which is what they are.

On the site, the two assessment guides move into environment/assessment/, the
directory the sidebar group is named after; the section index had been linking
two of its three pages from outside itself. Old links to them break rather than
carry a redirect. Six section indexes listed pages belonging to other sections
under the literal "Pages in this section" heading: those move to a "See also"
list, which is what they were. The aircraft and environment overviews claimed
pages from other topics, counted them in their prose, and in the environment
case published a section from another topic while hiding its own; both now
match their sidebar groups in either language.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, we are unable to review this pull request

The GitHub API does not allow us to fetch diffs exceeding 300 files, and this pull request has 404

@bito-code-review

Copy link
Copy Markdown

You've reached the fair usage limit for the Bito Code Review Agent trial. Upgrade to a paid plan or contact support@bito.in for assistance. Learn more

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 372 files, which is 272 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: ae2e8e6e-aafe-416d-8870-6d812c435215

📥 Commits

Reviewing files that changed from the base of the PR and between c5e0745 and 150065e.

⛔ Files ignored due to path filters (11)
  • .github/images/anp_npd.svg is excluded by !**/*.svg
  • .github/images/anp_npd_dark.svg is excluded by !**/*.svg
  • .github/images/anp_npd_es.svg is excluded by !**/*.svg
  • .github/images/anp_npd_es_dark.svg is excluded by !**/*.svg
  • .github/images/anp_profile.svg is excluded by !**/*.svg
  • .github/images/anp_profile_dark.svg is excluded by !**/*.svg
  • .github/images/anp_profile_es.svg is excluded by !**/*.svg
  • .github/images/anp_profile_es_dark.svg is excluded by !**/*.svg
  • site/src/generated/api-sidebar.mjs is excluded by !**/generated/**
  • slm-light.png is excluded by !**/*.png
  • slm_light_desktop.png is excluded by !**/*.png
📒 Files selected for processing (372)
  • .github/labeler.yml
  • CONTRIBUTING.md
  • docs/CONFORMANCE.md
  • docs/README.md
  • docs/aircraft/airport-noise.md
  • docs/aircraft/anp-fleet.md
  • docs/aircraft/index.md
  • docs/buildings/design/index.md
  • docs/buildings/insulation/spanish-building-code.md
  • docs/environment/assessment/environmental-levels.md
  • docs/environment/assessment/index.md
  • docs/environment/assessment/spanish-noise-regulation.md
  • docs/environment/index.md
  • docs/environment/propagation/index.md
  • docs/environment/sources/cnossos-rail-emission.md
  • docs/environment/sources/cnossos-road-emission.md
  • docs/materials/diffusers/index.md
  • docs/perception/psychoacoustics/tone-audibility.md
  • docs/perception/psychoacoustics/tone-prominence.md
  • docs/reference/theory/environment-transport.md
  • docs/signals/index.md
  • docs/signals/levels/index.md
  • docs/signals/levels/levels.md
  • docs/signals/metrology/gum-uncertainty.md
  • docs/signals/sound-level-meter.md
  • docs/signals/spectra/index.md
  • docs/vibration/structural/index.md
  • hooks/pre-commit
  • llms-full.txt
  • llms.txt
  • scripts/api_taxonomy.py
  • scripts/check_figure_contrast.py
  • scripts/conformance/__init__.py
  • scripts/conformance/domains/__init__.py
  • scripts/conformance/domains/absorbers.py
  • scripts/conformance/domains/aircraft.py
  • scripts/conformance/domains/assessment.py
  • scripts/conformance/domains/atmospheric_refraction.py
  • scripts/conformance/domains/building.py
  • scripts/conformance/domains/building_prediction.py
  • scripts/conformance/domains/cnossos_rail.py
  • scripts/conformance/domains/distortion.py
  • scripts/conformance/domains/electroacoustics.py
  • scripts/conformance/domains/environmental_sources.py
  • scripts/conformance/domains/fdtd.py
  • scripts/conformance/domains/filters.py
  • scripts/conformance/domains/ground_barriers.py
  • scripts/conformance/domains/human_vibration.py
  • scripts/conformance/domains/intelligibility.py
  • scripts/conformance/domains/intensity.py
  • scripts/conformance/domains/levels.py
  • scripts/conformance/domains/noise_control.py
  • scripts/conformance/domains/outdoor.py
  • scripts/conformance/domains/panels.py
  • scripts/conformance/domains/plate_junctions.py
  • scripts/conformance/domains/program_loudness.py
  • scripts/conformance/domains/psychoacoustics.py
  • scripts/conformance/domains/signal_analysis.py
  • scripts/conformance/domains/sound_quality.py
  • scripts/conformance/domains/speech.py
  • scripts/conformance/domains/swept_sine.py
  • scripts/conformance/domains/underwater.py
  • scripts/conformance/registry.py
  • scripts/conformance/render.py
  • scripts/conformance/shared.py
  • scripts/conformance_report.py
  • scripts/diagrams/__init__.py
  • scripts/diagrams/aircraft.py
  • scripts/diagrams/buildings.py
  • scripts/diagrams/canvas.py
  • scripts/diagrams/devices.py
  • scripts/diagrams/environment.py
  • scripts/diagrams/i18n.py
  • scripts/diagrams/materials.py
  • scripts/diagrams/parts.py
  • scripts/diagrams/perception.py
  • scripts/diagrams/registry.py
  • scripts/diagrams/signals.py
  • scripts/diagrams/simulation.py
  • scripts/diagrams/underwater.py
  • scripts/diagrams/vibration.py
  • scripts/figures/__init__.py
  • scripts/figures/aircraft.py
  • scripts/figures/building.py
  • scripts/figures/building_design.py
  • scripts/figures/correlation_analysis.py
  • scripts/figures/devices.py
  • scripts/figures/environment.py
  • scripts/figures/fields/__init__.py
  • scripts/figures/fields/_core.py
  • scripts/figures/fields/aperture.py
  • scripts/figures/fields/barrier.py
  • scripts/figures/fields/diffusion.py
  • scripts/figures/fields/ducting.py
  • scripts/figures/fields/elastic.py
  • scripts/figures/fields/expansion_chamber.py
  • scripts/figures/fields/ground_effect.py
  • scripts/figures/fields/metadiffuser.py
  • scripts/figures/fields/pillar_hall.py
  • scripts/figures/fields/refraction.py
  • scripts/figures/fields/room_modes.py
  • scripts/figures/fields/slit_absorber.py
  • scripts/figures/fields/tubes.py
  • scripts/figures/i18n.py
  • scripts/figures/materials.py
  • scripts/figures/media.py
  • scripts/figures/metrology.py
  • scripts/figures/perception.py
  • scripts/figures/registry.py
  • scripts/figures/room.py
  • scripts/figures/schematics.py
  • scripts/figures/signals.py
  • scripts/figures/simulation.py
  • scripts/figures/spectral_estimation.py
  • scripts/figures/system_measurement.py
  • scripts/figures/theme.py
  • scripts/figures/underwater.py
  • scripts/figures/vibration.py
  • scripts/generate_diagrams.py
  • scripts/generate_graphs.py
  • scripts/generate_reports.py
  • scripts/generate_site_reports.py
  • scripts/reports/__init__.py
  • scripts/reports/building.py
  • scripts/reports/building_design.py
  • scripts/reports/devices.py
  • scripts/reports/emission.py
  • scripts/reports/environment.py
  • scripts/reports/materials.py
  • scripts/reports/noise_control.py
  • scripts/reports/perception.py
  • scripts/reports/room.py
  • scripts/reports/vibration.py
  • site/public/llms/llms-aircraft.txt
  • site/public/llms/llms-buildings-design.txt
  • site/public/llms/llms-buildings-insulation.txt
  • site/public/llms/llms-environment-assessment.txt
  • site/public/llms/llms-environment-propagation.txt
  • site/public/llms/llms-environment-sources.txt
  • site/public/llms/llms-environment.txt
  • site/public/llms/llms-materials-diffusers.txt
  • site/public/llms/llms-perception-psychoacoustics.txt
  • site/public/llms/llms-signals-levels.txt
  • site/public/llms/llms-signals-metrology.txt
  • site/public/llms/llms-signals-spectra.txt
  • site/public/llms/llms-signals.txt
  • site/public/llms/llms-start.txt
  • site/public/llms/llms-vibration-structural.txt
  • site/src/content/docs/aircraft/airport-noise.mdx
  • site/src/content/docs/aircraft/anp-fleet.mdx
  • site/src/content/docs/aircraft/index.md
  • site/src/content/docs/buildings/design/index.md
  • site/src/content/docs/buildings/insulation/spanish-building-code.mdx
  • site/src/content/docs/environment/assessment/environmental-levels.mdx
  • site/src/content/docs/environment/assessment/impulsive-sound.mdx
  • site/src/content/docs/environment/assessment/index.md
  • site/src/content/docs/environment/assessment/spanish-noise-regulation.mdx
  • site/src/content/docs/environment/index.md
  • site/src/content/docs/environment/propagation/index.md
  • site/src/content/docs/environment/sources/cnossos-rail-emission.mdx
  • site/src/content/docs/environment/sources/cnossos-road-emission.mdx
  • site/src/content/docs/es/aircraft/airport-noise.mdx
  • site/src/content/docs/es/aircraft/anp-fleet.mdx
  • site/src/content/docs/es/aircraft/index.md
  • site/src/content/docs/es/buildings/design/index.md
  • site/src/content/docs/es/buildings/insulation/spanish-building-code.mdx
  • site/src/content/docs/es/environment/assessment/environmental-levels.mdx
  • site/src/content/docs/es/environment/assessment/impulsive-sound.mdx
  • site/src/content/docs/es/environment/assessment/index.md
  • site/src/content/docs/es/environment/assessment/spanish-noise-regulation.mdx
  • site/src/content/docs/es/environment/index.md
  • site/src/content/docs/es/environment/propagation/index.md
  • site/src/content/docs/es/environment/sources/cnossos-rail-emission.mdx
  • site/src/content/docs/es/environment/sources/cnossos-road-emission.mdx
  • site/src/content/docs/es/materials/diffusers/index.md
  • site/src/content/docs/es/perception/psychoacoustics/tone-audibility.mdx
  • site/src/content/docs/es/perception/psychoacoustics/tone-prominence.mdx
  • site/src/content/docs/es/reference/theory/environment-transport.mdx
  • site/src/content/docs/es/signals/index.md
  • site/src/content/docs/es/signals/levels/index.md
  • site/src/content/docs/es/signals/levels/levels.mdx
  • site/src/content/docs/es/signals/metrology/gum-uncertainty.mdx
  • site/src/content/docs/es/signals/sound-level-meter.mdx
  • site/src/content/docs/es/signals/spectra/index.md
  • site/src/content/docs/es/start/guides.md
  • site/src/content/docs/es/vibration/structural/index.md
  • site/src/content/docs/materials/diffusers/index.md
  • site/src/content/docs/perception/psychoacoustics/tone-audibility.mdx
  • site/src/content/docs/perception/psychoacoustics/tone-prominence.mdx
  • site/src/content/docs/reference/api/aeroacoustics/rotorcraft-noise.md
  • site/src/content/docs/reference/api/aeroacoustics/rotorcraft-propagation.md
  • site/src/content/docs/reference/api/building/ceiling-plenum.md
  • site/src/content/docs/reference/api/building/facade.md
  • site/src/content/docs/reference/api/building/flanking-transmission.md
  • site/src/content/docs/reference/api/building/floor-covering-improvement.md
  • site/src/content/docs/reference/api/building/insulation.md
  • site/src/content/docs/reference/api/building/intensity-insulation.md
  • site/src/content/docs/reference/api/building/lab-insulation.md
  • site/src/content/docs/reference/api/building/linings.md
  • site/src/content/docs/reference/api/building/panel-transmission.md
  • site/src/content/docs/reference/api/building/ratings.md
  • site/src/content/docs/reference/api/building/resilient-layers.md
  • site/src/content/docs/reference/api/building/spain.md
  • site/src/content/docs/reference/api/building/survey-insulation.md
  • site/src/content/docs/reference/api/electroacoustics/distortion.md
  • site/src/content/docs/reference/api/electroacoustics/intermodulation.md
  • site/src/content/docs/reference/api/electroacoustics/noise-measurements.md
  • site/src/content/docs/reference/api/filters/compliance.md
  • site/src/content/docs/reference/api/filters/weighting-compliance.md
  • site/src/content/docs/reference/api/index.md
  • site/src/content/docs/reference/api/materials/biot.md
  • site/src/content/docs/reference/api/materials/four-microphone.md
  • site/src/content/docs/reference/api/materials/impedance-tube.md
  • site/src/content/docs/reference/api/materials/layered.md
  • site/src/content/docs/reference/api/materials/porous.md
  • site/src/content/docs/reference/api/materials/reverberation-room-scattering.md
  • site/src/content/docs/reference/api/materials/scattering-diffusion.md
  • site/src/content/docs/reference/api/materials/standing-wave.md
  • site/src/content/docs/reference/api/power/sound-power-anechoic.md
  • site/src/content/docs/reference/api/power/sound-power-intensity.md
  • site/src/content/docs/reference/api/power/sound-power.md
  • site/src/content/docs/reference/api/signals/multitaper.md
  • site/src/content/docs/reference/api/signals/spectra.md
  • site/src/content/docs/reference/api/signals/windows.md
  • site/src/content/docs/reference/theory/environment-transport.mdx
  • site/src/content/docs/signals/index.md
  • site/src/content/docs/signals/levels/index.md
  • site/src/content/docs/signals/levels/levels.mdx
  • site/src/content/docs/signals/metrology/gum-uncertainty.mdx
  • site/src/content/docs/signals/sound-level-meter.mdx
  • site/src/content/docs/signals/spectra/index.md
  • site/src/content/docs/start/guides.md
  • site/src/content/docs/vibration/structural/index.md
  • site/src/data/glossary.mjs
  • site/src/data/topics.mjs
  • src/phonometry/__init__.py
  • src/phonometry/_compat.py
  • src/phonometry/_plot/aircraft.py
  • src/phonometry/_plot/electroacoustics.py
  • src/phonometry/_plot/emission.py
  • src/phonometry/_plot/geometry.py
  • src/phonometry/_plot/geometry/__init__.py
  • src/phonometry/_plot/geometry/_draft.py
  • src/phonometry/_plot/geometry/building.py
  • src/phonometry/_plot/geometry/electroacoustics.py
  • src/phonometry/_plot/geometry/emission.py
  • src/phonometry/_plot/geometry/environment.py
  • src/phonometry/_plot/geometry/materials.py
  • src/phonometry/_plot/geometry/noise_control.py
  • src/phonometry/_plot/geometry/room.py
  • src/phonometry/_plot/geometry/simulation.py
  • src/phonometry/_plot/geometry/vibration.py
  • src/phonometry/_plot/junction.py
  • src/phonometry/_plot/materials.py
  • src/phonometry/_plot/signals.py
  • src/phonometry/_plot/vibration.py
  • src/phonometry/_report/hvac.py
  • src/phonometry/_report/iso17497.py
  • src/phonometry/_report/iso3744.py
  • src/phonometry/_report/iso9613.py
  • src/phonometry/aircraft/__init__.py
  • src/phonometry/aircraft/anp_fleet.py
  • src/phonometry/aircraft/rotorcraft_noise.py
  • src/phonometry/aircraft/rotorcraft_propagation.py
  • src/phonometry/building/measurement/__init__.py
  • src/phonometry/building/measurement/insulation.py
  • src/phonometry/building/measurement/ratings.py
  • src/phonometry/building/prediction/__init__.py
  • src/phonometry/building/prediction/linings.py
  • src/phonometry/building/prediction/resilient_layers.py
  • src/phonometry/electroacoustics/__init__.py
  • src/phonometry/electroacoustics/distortion.py
  • src/phonometry/electroacoustics/intermodulation.py
  • src/phonometry/electroacoustics/noise_measurements.py
  • src/phonometry/emission/__init__.py
  • src/phonometry/emission/_shared.py
  • src/phonometry/emission/sound_power.py
  • src/phonometry/emission/sound_power_anechoic.py
  • src/phonometry/emission/sound_power_intensity.py
  • src/phonometry/emission/sound_power_reverberation.py
  • src/phonometry/emission/vibration_sound_power.py
  • src/phonometry/filters/__init__.py
  • src/phonometry/filters/compliance.py
  • src/phonometry/filters/weighting_compliance.py
  • src/phonometry/materials/absorbers/__init__.py
  • src/phonometry/materials/absorbers/biot.py
  • src/phonometry/materials/absorbers/four_microphone.py
  • src/phonometry/materials/absorbers/impedance_tube.py
  • src/phonometry/materials/absorbers/layered.py
  • src/phonometry/materials/absorbers/porous.py
  • src/phonometry/materials/absorbers/standing_wave.py
  • src/phonometry/materials/diffusers/__init__.py
  • src/phonometry/materials/diffusers/reverberation_room_scattering.py
  • src/phonometry/materials/diffusers/scattering_diffusion.py
  • src/phonometry/signals/__init__.py
  • src/phonometry/signals/multitaper.py
  • src/phonometry/signals/spectra.py
  • src/phonometry/signals/windows.py
  • src/phonometry/vibration/structural/junction_transmission.py
  • tests/aircraft/test_rotorcraft_noise.py
  • tests/aircraft/test_rotorcraft_terrain.py
  • tests/building/measurement/test_floor_covering_improvement.py
  • tests/building/measurement/test_impact_insulation.py
  • tests/building/prediction/test_resilient_layers.py
  • tests/building/prediction/test_wall_linings.py
  • tests/building/test_building_result_plots.py
  • tests/cnossos_road_oracle.py
  • tests/conftest.py
  • tests/data/cnossos/README.md
  • tests/electroacoustics/test_distortion.py
  • tests/emission/test_emission_result_plots.py
  • tests/emission/test_intensity_compliance.py
  • tests/emission/test_sound_power_precision.py
  • tests/environment/sources/test_cnossos_rail.py
  • tests/environment/sources/test_cnossos_road.py
  • tests/environment/test_environment_result_plots.py
  • tests/filters/test_b_au_d_weightings.py
  • tests/filters/test_multichannel.py
  • tests/filters/test_parametric_filters.py
  • tests/filters/test_performance.py
  • tests/filters/test_spectrogram.py
  • tests/filters/test_weighting_class_verifier.py
  • tests/filters/test_zero_phase.py
  • tests/hearing/test_exposure_result_plots.py
  • tests/hearing/test_noise_induced_hearing_loss.py
  • tests/materials/absorbers/test_absorption_rating.py
  • tests/materials/absorbers/test_airflow_resistance.py
  • tests/materials/absorbers/test_biot.py
  • tests/materials/absorbers/test_impedance_tube.py
  • tests/materials/absorbers/test_porous.py
  • tests/materials/diffusers/test_scattering_diffusion.py
  • tests/materials/test_geometry_plots.py
  • tests/materials/test_materials_plot_i18n.py
  • tests/materials/test_materials_result_plots.py
  • tests/metrology/test_metrology_result_plots.py
  • tests/psychoacoustics/loudness/test_contours.py
  • tests/psychoacoustics/loudness/test_ecma.py
  • tests/psychoacoustics/loudness/test_moore_glasberg.py
  • tests/psychoacoustics/quality/test_fluctuation_strength.py
  • tests/psychoacoustics/quality/test_fluctuation_strength_ecma.py
  • tests/psychoacoustics/quality/test_roughness_ecma.py
  • tests/psychoacoustics/quality/test_tonality.py
  • tests/psychoacoustics/quality/test_tonality_ecma.py
  • tests/psychoacoustics/test_loudness_result_plots.py
  • tests/reference_data.py
  • tests/reference_data/__init__.py
  • tests/reference_data/broadcast.py
  • tests/reference_data/building.py
  • tests/reference_data/electroacoustics.py
  • tests/reference_data/emission.py
  • tests/reference_data/environment.py
  • tests/reference_data/filters.py
  • tests/reference_data/hearing.py
  • tests/reference_data/materials.py
  • tests/reference_data/metrology.py
  • tests/reference_data/psychoacoustics.py
  • tests/reference_data/room.py
  • tests/reference_data/speech.py
  • tests/reference_data/underwater.py
  • tests/reference_data/vibration.py
  • tests/result_factories.py
  • tests/room/test_enclosed_space_absorption.py
  • tests/room/test_room_result_plots.py
  • tests/signals/test_multitaper.py
  • tests/signals/test_spectra.py
  • tests/simulation/test_fdtd_virtual_tube.py
  • tests/speech/test_sii.py
  • tests/speech/test_sti_result_plots.py
  • tests/test_deprecated_aliases.py
  • tests/test_device_geometry_plots.py
  • tests/test_result_plots.py
  • tests/test_secondary_geometry_plots.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added documentation Improvements or additions to documentation conformance Standard clause coverage, reference values or errata validation Reference data and oracles used to check results against normative values api Public API surface, naming and deprecations figures Generated plots, diagrams and animations reports Accredited-format .report() fiches and their rendering site Documentation website i18n English and Spanish translations ci Workflows, linting and developer tooling area: aircraft Aircraft and rotorcraft noise area: building Sound insulation and building acoustics area: electroacoustics Transducers, arrays and electroacoustic devices area: emission Sound power and source emission labels Aug 5, 2026
@github-actions github-actions Bot added area: environment Outdoor propagation, environmental sources and noise assessment area: hearing Audiometric thresholds, hearing loss and noise exposure area: materials Absorption, impedance and material properties area: metrology Calibration, uncertainty and measurement quality area: psychoacoustics Loudness, sharpness, roughness and annoyance area: room Room acoustics and reverberation area: simulation FDTD and other numerical solvers area: vibration Human vibration and structure-borne sound area: core Shared internals and cross-cutting code every domain depends on area: filters Octave filter banks, weightings and instrument class verification area: signals Levels, spectra, generators and general signal analysis area: speech Speech intelligibility: STI, SII and STOI labels Aug 5, 2026
The airport-noise guide computes an event level from a noise-power-distance
table and a flight path that it writes out by hand, which is what you want
while learning ECAC Doc 29 and never afterwards. The EASA ANP database of real
aircraft types has shipped with the package all along, and `anp_fleet` bridges
it into the Doc 29 chain, but no guide said so: it appeared only in the
generated reference, where you have to already know the name to find it.

It now has a page in both languages and in the plain-markdown edition: opening
the shipped database or another CSV export, what one aircraft record holds
(metadata, the power parameter its NPD table is indexed by, the curves per
operation and metric, the default trajectories), reading and interpolating the
NPD surface, and running the single-event level and the ground-grid contour
straight from an aircraft identifier. It states the limit the module documents
but nothing user-facing did: only fixed-point profiles are read as
ready-to-use trajectories, which is 13 of the 155 aircraft, because the rest
describe their departures as procedural steps that need a flight-mechanics
model to fly. NPD curves are tabulated for all of them.

Two figures come with it, drawn off the real 747-100 record rather than a
schematic table.

The renderers behind those two `.plot()` methods lived in `anp_fleet` itself,
with a translation table of their own, while every other aircraft result draws
from `_plot/aircraft.py`. That is the same rule the junction renderer was moved
under, so they move there too, keeping their Spanish output through the `_t`
table the destination already uses. Two of their seven labels were already in
it, translated identically. They also arrive named `plot_anp_npd` and
`plot_anp_profile`, in step with the eleven `plot_*` renderers beside them and
distinct from the existing `plot_npd_level`.
@bito-code-review

Copy link
Copy Markdown

You've reached the fair usage limit for the Bito Code Review Agent trial. Upgrade to a paid plan or contact support@bito.in for assistance. Learn more

Say which field the chain reads. The guide introduced the aircraft record as
carrying "the metadata the Doc 29 chain needs downstream" and then listed the
engine type, the engine count and the weight class. The chain reads none of
those. The one field it does read is the engine mounting, which the page never
mentioned: it selects the engine-installation correction, it is one of wing,
fuselage or propeller, and the shipped fleet splits 70 / 55 / 30 across the
three, so the choice moves the answer. All three editions now say so, and the
record print shows it where the record is first opened.

Fix the guides map, which a gate was already failing on. start/guides.md counts
its own entries in figures and in words, and check:guides compares both against
the pages that exist. Adding a page without updating it left six failures in
the two languages.

The rest is the new code drifting from what its neighbours do:

- The Spanish profile figure published its axis labels and its legend in
  English. The library's own string table had the translations, but a figure
  is translated at savefig time from the table in scripts/figures/i18n.py, and
  only the title and the annotation had been added there. Its two NPD labels
  were already present for the Doc 29 figure.
- Neither renderer called localize_axes, so a Spanish axis kept a decimal
  point where all eleven of its neighbours give a comma.
- Neither took the family signature: every other renderer in the module
  defaults ax to None and language to "en", so these two could not be called
  the way the rest can.
- They drew with raw literals, a grey "0.4" for the NPD nodes and "tab:red"
  for the runway points, instead of the shared palette the module imports.
- A section banner left behind in anp_fleet.py still announced plotting "local
  to this module so the shared _plot string tables stay untouched", which is
  the opposite of what moving the renderers did.
- The two figure builders were registered at the head of _FIGURE_FUNCS. That
  tuple is grouped by subject under banner comments, so they now sit with the
  Doc 29 figures they extend.
- See also had no API-reference bullet, the only aircraft guide without one;
  "What this guide covers" was a bullet list instead of the site's covered and
  not-covered pair, so the page never stated that procedural-step profiles are
  out of scope; the plain-markdown edition carried neither figure; the section
  index counted four pages while its narration still walked three; and the
  Spanish called NPD "ruido-potencia-distancia" where the rest of the Spanish
  site says "nivel-potencia-distancia".
main carries the squash of #504, which is this branch's own glossary work under
a different SHA, so most of it merged cleanly. Four files needed a decision,
and in each one this branch is the later state:

- `site/src/data/glossary.mjs` differed in three lines, the guide slug of the
  two assessment pages this branch moved into `environment/assessment/`.
- The two `spanish-noise-regulation.mdx` pages differed in the depth of their
  component imports, which is what that same move corrected.
- `scripts/generate_reports.py` is the fiche registry and command line here,
  and the builders it used to hold live in `scripts/reports/`. The three fiches
  #504 added are in that package and still registered.
@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.00%. Comparing base (c5e0745) to head (150065e).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #505      +/-   ##
==========================================
+ Coverage   96.99%   97.00%   +0.01%     
==========================================
  Files         272      295      +23     
  Lines       38575    38787     +212     
==========================================
+ Hits        37416    37626     +210     
- Misses       1159     1161       +2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Numerical conformance report

533/533 conformance checks pass across 57 domains and 362 standards - filters class 1 - weightings within IEC 61672-1 class 1.

Each row pins a standard clause to its expected normative value and the value the library computes. Every section below is collapsible and stays collapsed while all of its rows pass; a section with any failing row opens automatically.

Numerical validation - filters & weightings: class showcase (IEC 61260-1 · IEC 61672-1 · ISO 7196)

IEC 61260-1:2014 class per filter architecture (order 6, one-third-octave, 100 Hz-10 kHz, fs = 48 kHz). For each architecture the table shows, at its binding band, the measured relative attenuation and the class-1 limit it must clear, so the number and the range it must sit in are both visible. A positive margin means the acceptance limits are met with that much room.

Architecture Class verdict Binding band Measured rel. atten. Class-1 limit Margin cl.1 Margin cl.2
butter Class 1 (default) 100 Hz +0.00 dB ≥ -0.40 dB +0.400 dB +0.600 dB
cheby1 By design (passband ripple) 6310 Hz +0.19 dB ≥ +1.44 dB -1.246 dB -0.837 dB
cheby2 Class 1 100 Hz +0.00 dB ≥ -0.40 dB +0.400 dB +0.600 dB
ellip By design (passband ripple) 10000 Hz +0.10 dB ≥ +1.32 dB -1.218 dB -0.813 dB
bessel By design (soft rolloff) 100 Hz +12.46 dB ≥ +16.60 dB -4.133 dB -3.133 dB

Only Butterworth (the library default) and Chebyshev-II are class-compliant architectures. Chebyshev-I and elliptic trade the mask for passband ripple, and Bessel for a maximally-flat group delay (soft rolloff); they cannot satisfy the IEC 61260-1 Class 1/2 attenuation mask by construction, so they are labelled By design - this is expected, not a failure or regression.

Frequency-weighting conformance (A/C: IEC 61672-1 Table 3; G: ISO 7196 A.3). The max deviation from nominal is informational (it falls at a frequency extreme where the tolerance is widest and asymmetric); compliance is judged at the binding frequency - the one with the least headroom - where the deviation, the applicable tolerance band and the headroom are shown together.

Curve fs Max dev. from nominal (info) Binding freq Deviation there Tolerance band Headroom
A 48 kHz -0.867 dB @ 19953 Hz 1000 Hz +0.000 dB [-0.70, +0.70] dB +0.700 dB
A 96 kHz -0.482 dB @ 19953 Hz 1000 Hz +0.000 dB [-0.70, +0.70] dB +0.700 dB
C 48 kHz -0.900 dB @ 19953 Hz 1000 Hz +0.000 dB [-0.70, +0.70] dB +0.700 dB
G 48 kHz +0.047 dB @ 1 Hz 1 Hz +0.047 dB [-1.00, +1.00] dB +0.953 dB
Filters & weightings: 100% (10/10)
Standard Quantity Expected (norm) Computed Δ Status
IEC 61260-1:2014 Table 1 Octave-band filter class (butterworth, fs=48 kHz) class 1 class 1 (margin +0.400 dB) +0.400 dB
IEC 61260-1:2014 Table 1 One-third-octave filter class (butterworth, fs=48 kHz) class 1 class 1 (margin +0.400 dB) +0.400 dB
IEC 61260:1995 / ANSI S1.11-2004 Table 1 Class 0 (strictest) octave-band filter (butterworth, fs=48 kHz) class 0 class 0 (margin +0.150 dB) +0.150 dB
IEC 61260-1:2014 Table F.1 Formula (9) breakpoint mapping, b=3, Omega at G**(1/2) 1.12202 (+/-0.00001) 1.12202 0
IEC 61672-1:2013 Table 3 A-weighting deviation vs class-1 limits (fs=48 kHz) deviation within limits @ 1000 Hz +0.000 dB in [-0.70, +0.70] dB headroom +0.700 dB
IEC 61672-1:2013 Table 3 C-weighting deviation vs class-1 limits (fs=48 kHz) deviation within limits @ 1000 Hz +0.000 dB in [-0.70, +0.70] dB headroom +0.700 dB
ISO 7196:1995 Table 2 / A.3 G-weighting deviation vs +/-1 dB tolerance (fs=48 kHz) deviation within limits @ 1 Hz +0.047 dB in [-1.00, +1.00] dB headroom +0.953 dB
ANSI S1.4-1983 Tables IV/V B-weighting (historical) deviation vs Type 0 limits (fs=48 kHz) deviation within limits @ 200 Hz -0.049 dB in [-0.70, +0.70] dB headroom +0.651 dB
IEC 61012:1990 Table 1 / 2.2 AU-weighting deviation vs separate-unit tolerances (fs=96 kHz) deviation within limits @ 10000 Hz -0.072 dB in [-1.00, +1.00] dB headroom +0.928 dB
IEC 537:1976 (withdrawn) via NASA CR-3406 Table SLD-I D-weighting response vs the published tabulated curve (fs=48 kHz) abs(response - table) <= 0.2 dB (0.45 dB at 1600/2500 Hz) -0.131 dB @ 8000 Hz (bound 0.20 dB) headroom +0.069 dB
Levels & dosimetry: 100% (9/9)
Standard Quantity Expected (norm) Computed Δ Status
IEC 61672-1:2013 (Leq) Leq of a 1 Pa 1 kHz sine 90.97 dB (+/-0.05 dB) 90.969 dB -0.001 dB
IEC 61252:1995 (LEX,8h) 8 h exposure to 90 dB(A) noise 90 dB (+/-0.05 dB) 90.008 dB 0.008 dB
ISO 1996-1:2016 3.6.4 Lden, constant 60 dB in day/evening/night 66.3952 dB (+/-0 dB) 66.3952 dB 0 dB
ISO 1996-2:2007 Annex C.5 Example 1 Tonal audibility ΔLta (Formula C.3), 4 kHz tone 13.7 dB (+/-0.05 dB) 13.66 dB -0.044 dB
ISO 1996-2:2007 Annex C.5 Example 1 Tonal adjustment Kt (Formulae C.4-C.6) 6 dB (+/-0 dB) 6 dB 0 dB
ISO 1996-2:2017 Annex G.2 Combined measurement uncertainty u = √(Σ(cj·uj)²) 2.18 dB (+/-0.01 dB) 2.18 dB -0.002 dB
RD 1367/2007 Annex IV A.3.4.2 b Corrected period level LKeq,d (Manual Ejemplo 3.1: 3 noise phases, 12 h) 57 dB (+/-0 dB) 57 dB 0 dB
RD 1367/2007 Annex I A.2 d Long-term level LK,d (Manual Ejemplo 3.2: 303 operating days of 365) 56 dB (+/-0 dB) 56 dB 0 dB
RD 1367/2007 Annex III Table B1, Article 25 Activity verdict (Manual Ejemplo 3.3: area type a, LK,d 56 dB over 55 dB) phase and daily pass, annual fails, activity not compliant phase and daily pass, annual fails, activity not compliant -
Room & building acoustics: 100% (72/72)
Standard Quantity Expected (norm) Computed Δ Status
CTE DB-HR Annex A, Formula (A.5) Global index R'A for pink noise (Manual Ejemplo 7.2) 51.4 dBA (+/-0.05 dBA) 51.4 dBA 0 dBA
CTE DB-HR Annex A, Formula (A.6) Global index D2m,nT,Atr for road traffic (Manual Ejercicio 7.1) 32.8 dBA (+/-0.05 dBA) 32.8 dBA 0 dBA
Manual de acustica ambiental y arquitectonica, Ejemplo 7.1 Reported R'A of the field-test wall (printed 51 dBA = R'w 52 + C -1) 51 dBA (+/-0 dBA) 51 dBA 0 dBA
Manual de acustica ambiental y arquitectonica, Ejemplo 7.1 Reported R'A,tr of the same wall (printed 47 dBA = R'w 52 + Ctr -5) 47 dBA (+/-0 dBA) 47 dBA 0 dBA
CTE Catalogo de Elementos Constructivos Window size correction of RA (Manual Ejemplo 7.4: 4 m2 window, -2 dB) 24 dBA (+/-0 dBA) 24 dBA 0 dBA
ISO 3382-2:2008 5.3.3 T30 from a synthetic exponential decay (T=1.0 s) 1 s (+/-1%) 1 s 0 s
ISO 18233:2006 (swept-sine method) Sweep deconvolution recovers a known IIR response 0 dB in-band error (+/-0.1 dB) 0.0006 dB 0.001 dB
ISO 717-1 Annex C, Table C.1 Weighted sound reduction index Rw (C;Ctr) Rw 30 (C -2; Ctr -3) Rw 30 (C -2; Ctr -3) sum 31.8 dB
ISO 717-1:2020 Annex C, Table C.2 Enlarged range 50-5000 Hz: Rw (C; Ctr; C50-5000; Ctr,50-5000) Rw 30 (C -2; Ctr -3; C50-5000 -2; Ctr,50-5000 -4) Rw 30 (C -2; Ctr -3; C50-5000 -2; Ctr,50-5000 -4) exact
ISO 717-2 Annex C, Table C.1 Weighted impact sound pressure level Ln,w (CI) Ln,w 79 (CI -11; sum 28.0 dB) Ln,w 79 (CI -11; sum 28.0 dB) +0 dB
ISO 717-2 Annex C, Table C.1 (covered) Weighted impact level of the floor WITH covering Ln,w (CI) Ln,w 64 (CI -3; sum 30.0 dB) Ln,w 64 (CI -3; sum 30.0 dB) +0 dB
ISO 717-2 Annex C, Table C.2 Floor-covering improvement ΔLw and CI,Δ (Formulae (2)/(A.4); CI,Δ from the normative Table 4 floor, not the 2020 print's misprinted C.2 chain) ΔLw 15 dB; CI,Δ -9 dB (Table 4 reference floor) ΔLw 15 dB; CI,Δ -9 dB +0 dB
ISO 354:2003 Eq. 5/8 Sabine inversion recovers absorption area 9.212828 m^2 (+/-0 m^2) 9.212828 m^2 0 m^2
ISO 3382-3:2012 Clause 6.2 Open-plan spatial decay rate D2,S (-6 dB/doubling) 6 dB (+/-0 dB) 6 dB 0 dB
ISO 16283-3:2016 Clause 3.12 Facade R'45 isolates the -1.5 dB incidence correction (S=A) 38.5 dB (+/-0 dB) 38.5 dB 0 dB
ISO 10140-2:2010 Formula (2) Lab airborne R on the ISO 717-1 reference shape -> Rw = 54 Rw 54 dB Rw 54 dB +0 dB
ISO 10140-5:2010+A1 Annex B, Table B.1 Reference elements end-to-end: printed Rw (C; Ctr) of all three Rw(C;Ctr) = 53(-1;-5) / 52(-1;-5) / 33(-1;-2) 53(-1;-5) / 52(-1;-5) / 33(-1;-2) exact
ISO 10140-5:2010+A1 Annex C, Table C.1 Reference floors end-to-end: printed Ln,t,r,0,w (CI) of both Ln,t,r,0,w(CI) = 72(0) / 75(-3) 72(0) / 75(-3) exact
ISO 15186-1:2000 Formula (7) Intensity RI on the ISO 717-1 reference shape -> RI,w = 30 RI,w 30 dB (scalar anchor RI = 34 dB) RI,w 30 dB (RI = 34 dB) +0 dB
ISO 15186-1:2000 Annex B, Table B.1 Adaptation term Kc: all 21 printed rows; (B.1) reduces to (B.2) max abs(Kc - Table B.1) <= 0,05 dB (1 dp print) 0.047 dB (B.1 vs B.2: 4.33e-04 dB) 0.047 dB
ISO 10052:2021 Clause 3.6 Survey R' applies the V/7,5 minimum-area rule 26.197888 dB (+/-0 dB) 26.197888 dB 0 dB
ISO 10052:2021 Clause 3.16 Service-equipment LXY is the 3-position energy average 32.823329 dB (+/-0 dB) 32.823329 dB 0 dB
ISO 10052:2021 Table 4 Reverberation-index estimate (35 <= V < 60, type g) k = [4.5, 5.0, 5.5, 5.5, 5.5] dB k = [4.5, 5.0, 5.5, 5.5, 5.5] dB exact
ISO 717-2:2020 Table 4 / Clause 5.2 Reference-floor weighted level Ln,r,0,w and CI (ISO 16251-1 ΔLw anchor) Ln,r,0,w = 78 dB, CI = -11 dB Ln,r,0,w = 78 dB, CI = -11 dB exact
ISO 16251-1:2014 / ISO 717-2 Formula (2) Floor-covering ΔLw: zero improvement gives ΔLw = 0 ΔLw = 0 dB (ΔL = 0 -> Ln,r = Ln,r,0) ΔLw = 0 dB exact
ISO 16251-1 / ISO 717-2 (Foret et al. 2011, carpet) Measured textile-carpet improvement rates to ΔLw = 29 dB ΔLw = 29 dB (paper, ISO 16251-1) ΔLw = 29 dB +0 dB
ISO 10848-1:2006 Formula (14) Flanking Kij (simplified) matches closed form Kij = 1.9897 dB Kij = 1.9897 dB exact
ISO 10848-1:2006 Formula (12) Flanking equivalent absorption length aj at f_ref aj = 1.2661 m aj = 1.2661 m exact
ISO 10848-1:2006 Clause 7.3.1 Flanking total loss factor η = 2,2/(f·Ts) η = 0.0044 η = 0.0044 exact
ISO 12354-1:2017 Formula (20) vs Hopkins Eq. 2.201 (6 mm glass) Flanking critical frequency (c0²/1,8·cL·h) vs plate coincidence (c0²/2π · sqrt(m''/B')) 2107.4 Hz (+/-1%) 2123.5 Hz 16.156 Hz
EN 29052-1:1992 Formula 4 Apparent dynamic stiffness s't = 4π²·m't·fr² (m't=200 kg/m², fr=25 Hz) 4.934802 MN/m³ (+/-0.000001 MN/m³) 4.934802 MN/m³ 0 MN/m³
EN 29052-1:1992 clause 8.2 NOTE Enclosed-gas stiffness s'a·d = 111 MN·mm/m³ (p₀=0,1 MPa, ε=0,9) 5.55556 MN/m³ (+/-0.0001 MN/m³) 5.55556 MN/m³ 0 MN/m³
EN 29052-1:1992 Formula 2 Floating-floor natural frequency f0 = (1/2π)√(s'/m') (s'=10 MN/m³, m'=100 kg/m²) 50.32921 Hz (+/-0 Hz) 50.32921 Hz 0 Hz
ISO 7626-1:2011 Table 1 / 3.1.2 Closed-form SDOF driving-point mobility peak mag(Y(f0)) = 1/c (c=5 N·s/m) 0.2 m/(N·s) (+/-0.000001 m/(N·s)) 0.2 m/(N·s) 0 m/(N·s)
ISO 7626-1:2011 Table 1 / 3.1.2 Closed-form SDOF static receptance H(0) = 1/k (k=8000 N/m) 0.000125 m/N (+/-0.0001%) 0.000125 m/N 0 m/N
ISO 7626-1:2011 Table 1 FRF reciprocity: impedance × mobility = 1 (at 37 Hz) 1 (= Z·Y) 1 0
ISO 717-2:2020 Table D.4 A-weighted maximum impact level LiA,Fmax of the Annex D worked example 55,350 66... dB (rated 55 dB) 55.350668 dB 0 dB
ISO 16283-2:2020 Table A.1 / JIS A 1418-2:2019 Table A.2 Rubber-ball impact force exposure level LFE, five octave bands 39,0 / 31,0 / 23,0 / 17,0 / 12,5 dB re 1 N at 31,5 to 500 Hz 39 / 31 / 23 / 17 / 12,5 dB re 1 N max |dev| 0.000 dB
ISO 16283-2:2020 Formulae (4), (5), (6) Standardized maximum impact level reduces to 10 lg(V/V0) at T = T0 73,0103 dB (= 70 + 10 lg(100/50)) 73.0103 dB 0 dB
ASTM E413-22 clause 5 (ASTM E1414 CAC) Ceiling attenuation class of two accredited E1414 test reports CAC 34 (ALA 16-091-4); CAC 25, sum 24 dB (Intertek J7488.04) CAC 34; CAC 25, sum 24.0 dB exact
ISO 140-9:1985 clause 3.3 Normalized ceiling attenuation Dn,c = D - 10 lg(A/A0), A0 = 10 m2 43.0103 dB (+/-0 dB) 43.0103 dB 0 dB
Vigran (2008) Eqs. (9.18)-(9.20) Plenum model: Eq. (9.18) converges to Eq. (9.20) as the damping vanishes Eq. (9.20) value, reproduced by Eq. (9.18) 139.5682 dB 0 dB
Hopkins (2007) Eq. 4.89 / Fig. 4.35 Mass-spring-mass resonance of a masonry cavity wall without and with ties 26 Hz (no ties) / 50 Hz (2,5 ties/m2, k = 2 MN/m) 26.15 Hz / 49.93 Hz +0.15 / -0.07 Hz
Hopkins (2007) Table A4 Dynamic stiffness of four wall ties (butterfly, double-triangle, twist) 1,7 / 16,1 / 94,0 MN/m at 50 mm; 43,4 MN/m at 100 mm 1.7 / 16.1 / 94 / 43.4 MN/m exact
ISO 10846-2:2008 3.17 Transfer-stiffness level Lk = 20 lg(|k|/k0), k0 = 1 N/m (|k| = 1 MN/m) 120 dB (+/-0 dB) 120 dB 0 dB
ISO 10846-3:2002 Formula (1) Indirect method k2,1 = -(2πf)²·m2·T (f=500 Hz, m2=10 kg, T=0,01) -986960.4 N/m (+/-0.1%) -986960.4 N/m 0 N/m
ISO 10846-1:2008 Table A.2 FRF relation k = jω·Z at 250 Hz (|k| recovered from impedance) 1001249.2 N/m (+/-0.0001%) 1001249.2 N/m 0 N/m
ISO 7626-2:2015 7.5.2 Rigid-mass calibration: accelerance mag(A) = 1/m (m=10 kg) 0.1 1/kg (+/-0 1/kg) 0.1 1/kg 0 1/kg
ISO 7626-2:2015 7.5.2 Rigid-mass calibration: mobility mag(Y) = 1/(2πf·m) at 100 Hz (m=10 kg) 0.0001592 m/(N·s) (+/-0.001%) 0.0001592 m/(N·s) 0 m/(N·s)
ISO 7626-2:2015 Annex A Normalized random error ε = √((1−γ²)/(2nγ²)): γ²=0,8, n=75 → 4,08 % (< 5 %) 4.08 % (+/-0.01 %) 4.08 % 0.002 %
ISO 7626-1:2011 Table 1 Rigid 1 kg mass at ω = 1000 rad/s: mobility 1e-3, compliance 1e-6 (decades) 0.001 m/(N·s) (+/-1e-07%) 0.001 m/(N·s) 0 m/(N·s)
ISO 10846-3:2002 6.1 Inequality (2) Indirect-method validity limit mag(T) = 0,1 ↔ ΔL1,2 = 20 dB 20 dB (+/-0 dB) 20 dB 0 dB
ISO 10846-3:2002 6.1 Model bias at the validity limit: k_ind/k = 1,1 (0,83 dB ≤ 1 dB, 10 % ≤ 12 %) 1.1 (+/-1e-07%) 1.1 0
ISO 10846-1:2008 Equation (6) Delivered/blocking force F2/F2,b = 1/1,1 at mag(k2,2/kt) = 0,1 (within 10 %) 0.9091 (+/-0) 0.9091 0
ISO 10846-2:2008 / -3:2002 7.6 Linearity: ΔLk ≤ 1,5 dB for input spectra 10 dB apart (linear element: 0) ΔLk ≤ 1,5 dB (7.6 c) 0 dB 0 dB
ISO/TS 7849-1:2009 Formula (8) Calibration L_v from â = 9,81 m/s² at 100 Hz (standard's EXAMPLE) 106.9 dB (+/-0.1 dB) 106.9 dB -0.02 dB
ISO/TS 7849-2:2009 Formula (15) L_W from L_v via measured radiation factor = 10 lg(P/P0) (round-trip) 84.771 dB (+/-0 dB) 84.771 dB 0 dB
ISO/TS 7849-1:2009 Formula (12) Impedance term: L_W − L_v = 10 lg(411/400) at ε = 1, S = S0 0.1178 dB (+/-0 dB) 0.1178 dB 0 dB
EN 15657:2018 Formula (14) Reception-plate L_Ws = resonant-plate power P = ωη(mS)⟨v²⟩ (round-trip) 55.545 dB (+/-0 dB) 55.545 dB 0 dB
EN 15657:2018 Formula (13) Plate loss factor η = 2,2/(f·Ts) at 1 kHz, Ts = 0,3 s 0.0073 (+/-0) 0.0073 0
EN 15657:2018 Formulae (15)/(17) + EN 12354-5 Annex I.3 Source conversion chain reproduces Table I.8 (wall, installed) max abs(L_Ws,inst - Table I.8) <= 0,15 dB 0.055 dB 0.055 dB
ISO 9611:1996 eq. (9) Mean free velocity level (energy mean, v0 = 5e-8 m/s) 72.3017 dB (+/-0 dB) 72.3017 dB 0 dB
ISO 12354-1:2017 Annex L, Tables L.2 to L.4 In-situ element chain: 10 lg sigma, 10 lg sigma_f, eta_tot, Rsitu, a_situ (21 bands x 5 elements) 0 dB (+/-0.1 dB) 0.057 dB 0.057 dB
ISO 12354-1:2017 Annex L, Table L.1 Detailed airborne model: 13 paths + R' per band, R'w = 57 dB max path/total dev <= 0,1 dB; R'w = 57 dB 0.055 dB; 57 dB 0.055 dB
ISO 12354-2:2017 Annex G, Tables G.3, G.4 and G.1 Detailed impact model: Ln,situ, Ln,Dd, Ln,Df, L'n per band, L'n,w = 41 dB max path/total dev <= 0,1 dB; L'n,w (CI) = 41 (2) dB 0.077 dB; 41 (2) dB 0.077 dB
Hopkins (2007) 3.6.3.1 / 4.4.3.1, printed pp. 276-282 and 513-514 Tapping machine: vo, cut-off frequencies fco of a bare slab and two soft coverings (7 000 / 2 300 / 100 Hz) 0 (+/-0.02) 0.0077 0.008
Hopkins (2007) Figs. 3.30/3.31 and 4.73, printed pp. 281 and 524 Over/under-critical case of four walking surfaces; double floating-floor resonances 74 Hz and 195 Hz 4/4 critical cases; fmsms = 74 / 195 Hz (+/-2%) 4/4; 74.1 / 194.0 Hz 0.53%
ISO 12354-2:2017 Annex C / Annex G Table G.4 Floating floor: fo = 160 sqrt(s'/m') = 52,8 Hz, DeltaL = 30 lg(f/fo) over 21 bands, DeltaLw = 32,2 dB 0 dB (+/-0.05 dB) 0.048 dB 0.048 dB
ISO 12354-1:2017 Annex D / Hopkins (2007) Fig. 4.48, printed p. 486 Lining resonance (Formula D.1) 542 Hz and the Table D.1 improvement branches fo = 542 Hz (+/-1%); 8/8 Table D.1 rows 541.9 Hz; 8/8 0.02%
EN 12354-5:2009 Formula (19b/19c) Coupling term → force-source limit 10 lg(mag(Ys)/Re{Yi}) as mag(Ys) ≫ mag(Yi) 40 dB (+/-0.01 dB) 40.001 dB 0.001 dB
EN 12354-5:2009 Annex I.3, Table I.9 Flushing cistern: four paths + Formula (17) total -> 29 dB(A) max path/total dev <= 0.15 dB; total 29 dB(A) 0.055 dB; 29.3 dB(A) 0.055 dB
EN 12354-5:2009 Annex I.2, Table I.6a Whirlpool floor component: mobility correction + path 11 max abs(dev vs Table I.6a) <= 0,15 dB 0.1 dB 0.1 dB
Room acoustics: 100% (16/16)
Standard Quantity Expected (norm) Computed Δ Status
Sabine (W. C. Sabine, 1922) Reverberation time T = k·V/A (V=120 m³, S=158 m², α=0.2) 0.611825 s (+/-0.000001 s) 0.611825 s 0 s
Long, Architectural Acoustics 2e, Table 8.1 Room modes of a 7 x 5 x 3 m room: the six printed frequencies, Hz 42.4 Hz (+/-0.13 Hz) 42.27 Hz -0.126 Hz
Long, Architectural Acoustics 2e, Eq. (8.46) Modal density of a 7 x 5 x 3 m room at 1 kHz = 34 modes/Hz 34 modes/Hz (+/-0.5 modes/Hz) 34.32 modes/Hz 0.32 modes/Hz
Long, Architectural Acoustics 2e, Eq. (17.51) Restaurant self-noise, 20 talkers over 20 metric sabins = 76 dB 76 dB (+/-0.05 dB) 76.021 dB 0.021 dB
Long, Architectural Acoustics 2e, Eq. (17.54) Privacy bound A_tab < 3.16 rt^2 (Q = 2, L_SN = -9 dB) 3.16 m^2 (+/-0.005 m^2) 3.164 m^2 0.004 m^2
Everest, Master Handbook of Acoustics 4th ed, Fig. 7-22 Sabine RT, worked Example 1 @ 1 kHz (untreated 23.3×16×10 ft room, SI) 3.39 s (+/-0.02 s) 3.402 s 0.012 s
Eyring (Norris-Eyring, 1930) Reverberation time T = k·V/(-S·ln(1-ᾱ)) (α=0.2) 0.548369 s (+/-0.000001 s) 0.548369 s 0 s
Arau-Puchades (Acustica 65, 1988, Formula 18) T (α=0.5/0.1/0.1 per wall pair, dims 8×5×3 m) 0.812147 s (+/-0.000001 s) 0.812147 s 0 s
Model identity (uniform absorption) Arau-Puchades ≡ Eyring when ᾱ is uniform 0.548369 s (= Eyring) 0.548369 s 0 s
Vorlander Auralization 2e, Eq. (11.38)-(11.39) Image-source direct-sound amplitude 1/(4πr) and delay r/c (r = 4 m) 0.0198944 (+/-0) 0.0198944 0
Kuttruff Room Acoustics 6e, Eq. (9.23) Audible shoebox image count up to order 10 (= 1560) 156 (+/-0) 156 0
Kuttruff Room Acoustics 6e, Eq. (4.6) Temporal reflection density dN/dt = 4πc³t²/V (t = 0.1 s, V = 120 m³) 42258.2 1/s (+/-0 1/s) 42258.2 1/s 0 1/s
Bies Engineering Noise Control 5e, Eq. (6.44) Room constant R = Sᾱ/(1-ᾱ) (S = 100 m², ᾱ = 0.2 → 25 m²) 25 m² (+/-0 m²) 25 m² 0 m²
Bies Engineering Noise Control 5e, Eq. (6.43) Critical distance rc: direct field = reverberant field (R = 25, Q = 1) 0.160000 (= reverberant term) 0.16 0
Kuttruff Room Acoustics 6e, Eq. (3.44) Schroeder frequency f_s = 2000√(T/V) (V = 200 m³, T = 1 s) 141.421 Hz (+/-0 Hz) 141.421 Hz 0 Hz
Bies Engineering Noise Control 5e, Eq. (6.43) Steady-state SPL Lp = Lw + 10lg(Q/4πr² + 4/R) (Lw=90, r=1, R=25, Q=1) 83.7945 dB (+/-0 dB) 83.7945 dB 0 dB
Psychoacoustics: 100% (14/14)
Standard Quantity Expected (norm) Computed Δ Status
Moore, Psychology of Hearing 6e, p. 77 (Glasberg & Moore 1990) ERB_N number of 1000 Hz = 15.59 Cam 15.59 Cam (+/-0.005 Cam) 15.5932 Cam 0.003 Cam
Moore, Psychology of Hearing 6e, p. 76 (Glasberg & Moore 1990) ERB_N at 1 kHz vs the printed 24.7(4.37F + 1), Hz 132.639 Hz (+/-0.3%) 132.445 Hz -0.194 Hz
ISO 532-1:2017 Annex B.2 Zwicker loudness N, stationary test signal 1 83.2957 sone (+/-0.1%) 83.2957 sone 0 sone
ISO 532-1:2017 Annex B.5 Time-varying loudness Nmax, technical signal 14 (aircraft, free field) 22.6399 sone (+/-0.1%) 22.6399 sone 0 sone
ISO 532-1:2017 Annex B.5 Time-varying loudness Nmax, technical signal 15 (vehicle interior, diffuse field) 9.6059 sone (+/-0.1%) 9.6059 sone 0 sone
DIN 45692:2009 Clause 6 Sharpness of the standard 1 kHz reference signal 1 acum (+/-0 acum) 1 acum 0 acum
DIN 45692:2009 Table A.2 Sharpness of critical-band noise at 2.5 kHz (2320-2700 Hz, 4 sone) 1.78 acum (+/-0.089 acum) 1.747 acum -0.033 acum
ISO 226:2023 Table B.1 Equal-loudness contour, 60 phon @ 100 Hz 78.5 dB SPL (+/-0.05 dB SPL) 78.504 dB SPL 0.004 dB SPL
ECMA-418-2:2025 Clause 5.1.8 HMS loudness of a 1 kHz / 40 dB tone (c_N=0.0211964) 1 sone_HMS (+/-0.03 sone_HMS) 0.9843 sone_HMS -0.016 sone_HMS
ECMA-418-2:2025 Clause 6.2.8 HMS tonality of a 1 kHz / 40 dB tone (c_T=2.8758615) 1 tu_HMS (+/-0.03 tu_HMS) 0.9998 tu_HMS 0 tu_HMS
ECMA-418-2:2025 Clause 7 HMS roughness of a 1 kHz / 70 Hz / m=1 / overall 60 dB tone (c_R=0.0180685) 1 asper (+/-0.01 asper) 0.9999 asper 0 asper
ISO 532-2:2017 Clause 3.17 / Annex B.1 Moore-Glasberg loudness of a 1 kHz / 40 dB tone (C=0.0617) 1 sone (+/-0.01 sone) 1.0001 sone 0 sone
ISO 532-3:2023 Annex C.1 Moore-Glasberg-Schlittenlacher peak LTL, steady 1 kHz / 40 dB 1 sone (+/-0.02 sone) 0.9996 sone 0 sone
ECMA-418-2:2025 Clause 9 HMS fluctuation strength of a 1 kHz / 4 Hz / m=1 / overall 60 dB tone (c_F=0.003840572) 1 vacil_HMS (+/-0.01 vacil_HMS) 0.9931 vacil_HMS -0.007 vacil_HMS
Speech transmission (IEC 60268-16): 100% (10/10)
Standard Quantity Expected (norm) Computed Δ Status
IEC 60268-16:2020 A.2.2 STI weighting-factor pair (500 Hz + 1 kHz bands) 0.398 (+/-0.001) 0.398 0
IEC 60268-16:2020 A.3.1.2 Uniform MTF m=0.5 maps to STI=0.5 0.5 (+/-0.01) 0.5 0
IEC 60268-16 Annex M Full-STI worked example: printed MTF + speech/noise spectra -> STI STI 0.76 (MTI row of step 4c) STI 0.758 (max MTI dev 0.00) -0.002
IEC 60268-16:2020 C.3.2 STIPA direct method, Formula (C.1) signal at m=0.2 0.3 (+/-0.01) 0.2992 -0.001
IEC 60268-16:2020 C.3.2 STIPA direct method, Formula (C.1) signal at m=0.5 0.5 (+/-0.01) 0.4998 0
IEC 60268-16:2020 C.3.2 STIPA direct method, Formula (C.1) signal at m=0.8 0.7 (+/-0.01) 0.7002 0
IEC 60268-16:2020 C.3.3 Indirect method: exponential decay RT60=1 s vs Schroeder MTF 0.5885 (+/-0.005) 0.5885 0
IEC 60268-16:2020 C.4.2 Filter-bank slope: +41 dB unmodulated tone one octave below 125 Hz m >= 0.5 (C.4.2 pass criterion) 0.9812 0.481
IEC 60268-16:2020 A.2.2 (audio path) Weighting factors: modulated 500 Hz + 1 kHz pair through stipa() 0.398 (+/-0.005) 0.398 0
IEC 60268-16:2020 A.3.1.2 (audio path) Filter-bank phase: half-octave edge carriers at TI=0.9 0.9 (+/-0.01) 0.8975 -0.003
System measurement (Golay / Kirkeby / Mueller-Massarani): 100% (5/5)
Standard Quantity Expected (norm) Computed Δ Status
Havelock 2008 Part I Ch. 6 (Xiang), Eq. (2) Golay pair: sum of periodic autocorrelations = 2L*delta (L = 4096) 0 (algebraic identity, +/-1e-10) 0 0
Havelock 2008 Part I Ch. 6 (Xiang), Eq. (4) Golay chain recovers a delay+gain system IR (noiseless, exact) 0 (machine precision, +/-1e-13) 0 0
Kirkeby & Nelson 1999 Eq. (17) / Mueller-Massarani 2001 Sec. 3.1 In-band equalization residue equals eps/(|H|^2 + eps) bin by bin 0 (closed form, +/-1e-12) 0 0
Kirkeby & Nelson 1999 (max of x/(x^2+eps) = 1/(2*sqrt(eps))) Out-of-band inverse-filter gain within the regularization cap <= -6.021 dB (analytic cap) -6.034 dB headroom +0.013 dB
Mueller-Massarani 2001 Secs. 4.2-4.3 (group-delay synthesis) Shaped sweep's Welch spectrum follows the pink target, in-band 0 dB in-band deviation (+/-0.5 dB) 0.0652 dB 0.065 dB
Intensity & sound power: 100% (10/10)
Standard Quantity Expected (norm) Computed Δ Status
IEC 61043:1993 Clause 5 Plane-wave intensity I = p^2 / (rho c) 0.00238 W/m^2 (+/-1.5%) 0.00239 W/m^2 0 W/m^2
ISO 3744:2010 Eq. 18 Monopole hemisphere recovers LW (r=4 m) 95 dB (+/-0 dB) 95 dB 0 dB
ISO 9614-2:1996 Eq. 12 Intensity scan recovers LW of an enclosed source 90 dB (+/-0.000001 dB) 90 dB 0 dB
IEC 61043:1993 Table 2 Minimum delta_pI0 per band, probe/processor/instrument, class 1/2 132 tabulated minima reproduced max absolute deviation 0.000 dB 0 dB
IEC 61043:1993 Table 2 Note 1 Separation rule +10 lg(x/25) on all six columns of 25 mm minima (x = 50 mm) 3.0103 dB (+/-0 dB) 3.0103 dB 0 dB
Fahy, Sound Intensity 2e, 6.8 delta_pI0 = 20 dB is a phase mismatch of 0.26 deg (1 kHz, 25 mm) 0.26 deg (+/-0.005 deg) 0.2624 deg 0.002 deg
ISO 9614-1:1993 Eqs (A.1)/(A.2) Temporal variability F1 is the coefficient of variation of M samples 0.185164 (+/-0) 0.185164 0
ISO 4871:1996 clause 3.15 / Annex B Declared L_WAd = L_WA + K_WA (Annex B, L_WA=88, K_WA=2) 90 dB (+/-0 dB) 90 dB 0 dB
ISO 4871:1996 clause 6.2 Single-machine verification boundary L_1 <= L_WAd L_1=90 verified, L_1=91 rejected (L_WAd=90) 90->True, 91->False boundary L_1 = L_WAd
ISO 3741:2010 Eq. 20 Reverberation-room method inverts to a known LW 0 dB error 0 dB 0 dB
Building prediction & uncertainty: 100% (15/15)
Standard Quantity Expected (norm) Computed Δ Status
EN 12354-1:2000 Annex H.3 Airborne prediction R'w (direct + 12 flanking paths) R'w 52 dB (13 paths) R'w 52 dB (13 paths, 52.17) +0.17 dB
EN 12354-1:2000 Annex H.3 (paths) All 12 printed flanking-path values Rij,w max abs(Rij,w - printed) <= 0,05 dB 0.042 dB 0.042 dB
EN 12354-1:2000 Formula (5b) / Annex H.3 DnT,w closure from R'w (both H.3 examples -> 54 dB) DnT,w 54 dB (printed 53,8/54,3) DnT,w 53.63 / 54.13 dB -0.17 dB vs printed
EN 12354-2:2000 Annex E.3 Impact prediction L'n,w = Ln,w,eq - dLw + K 45 dB (+/-0 dB) 45 dB 0 dB
EN 12354-2:2000 Formula (3) / Annex E.3 Standardized impact level L'nT,w (exact 0,032 V form -> 43 dB) L'nT,w 43 dB (exact 42,96; E.3 prints 42,8) L'nT,w 42.96 dB -0.001 dB
EN 12354-3:2000 Annex F Facade airborne prediction (R'tr,s,w / D2m,nT,w single numbers) R'tr,s,w 31 (Ctr -3); D2m,nT,w 33 dB R'tr,s,w 31 (Ctr -3); D2m,nT,w 33 dB 0
EN 12354-4:2000 Annex G / Formula (2) Radiated LW of a wall+door segment (side 1, low bands) LW 63/125 Hz [59.8, 61.2] dB (+/-0.1) LW [59.8, 61.2] dB 0.038 dB
EN 12354-4:2000 Annex E / Table G.9 Exterior level of all four Table G.9 reception cells Lp 36,6 / 28,5 / 44,6 / 37,3 dB (+/-0,05) Lp 36.6 / 28.5 / 44.6 / 37.3 dB 0.046 dB
ISO 12999-1:2020 Table 2 Airborne band uncertainty, situation A @ 1 kHz 1.8 dB (+/-0 dB) 1.8 dB 0 dB
ISO 12999-1:2020 Annex B, Table B.2 One-decimal single numbers Rw / Rw+C50-5000 / Rw+Ctr,50-5000 57.4 / 56.4 / 51.1 dB 57.4 / 56.4 / 51.1 dB +0.00 dB
ISO 12999-1:2020 Annex B, Formulae (B.2)/(B.6) Single-number uncertainties (uncorrelated 0,6/0,8; correlated u(Rw) 1,9) u_uncorr 0.6 / 0.8 dB; u_corr(Rw) 1.9 dB 0.60 / 0.79 dB; 1.90 dB -0.00 dB
ISO 12999-1:2020 Clause 8 / Table 8 Expanded uncertainty U = 1.96 u (95 % two-sided, Rw sit. A) 2.352 dB (+/-0 dB) 2.352 dB 0 dB
ISO 12999-2:2020 Table 4 / Formula (1) Absorption coefficient +/-U (k=2), reproducibility, 20 x 1/3-oct bands U(k=2) = [0.33, 0.26, 0.22, 0.17, 0.13, 0.11, 0.09, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.09, 0.09, 0.09, 0.1, 0.11, 0.13, 0.16] U(k=2) = [0.33, 0.26, 0.22, 0.17, 0.13, 0.11, 0.09, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.09, 0.09, 0.09, 0.1, 0.11, 0.13, 0.16] exact
ISO 12999-2:2020 Table 5 / Formula (4) Practical coefficient +/-U (k=2), reproducibility, 5 octave bands U(k=2) = [0.09, 0.08, 0.08, 0.08, 0.1] U(k=2) = [0.09, 0.08, 0.08, 0.08, 0.1] exact
ISO 12999-2:2020 Clause 7, Examples 1/2 Single-number U (k=2): alpha_w and DLalpha,NRD alpha_w +/-0.07, DLalpha +/-1.6 dB alpha_w +/-0.07, DLalpha +/-1.6 dB exact
Outdoor propagation & occupational exposure: 100% (10/10)
Standard Quantity Expected (norm) Computed Δ Status
ISO 9613-1:1993 Table 1 Air attenuation @ 10 degC, 70 %, 1 kHz 3.66 dB/km (+/-0.01 dB/km) 3.658 dB/km -0.002 dB/km
ISO 9613-1:1993 Table 1 Air attenuation @ 0 degC, 20 %, 2 kHz 34.6 dB/km (+/-0.1 dB/km) 34.64 dB/km 0.04 dB/km
ISO 9613-2:1996 Table 2 Atmospheric attenuation grid, 6 conditions x 8 octave bands, dB/km all 48 cells within half a printed digit worst residual 0.939 x tolerance 0.939 x
ISO 9613-2:1996 Eq. (7) Geometrical divergence Adiv = 20 lg(d/d0) + 11 at 100 m 51 dB (+/-0 dB) 51 dB 0 dB
ISO 9613-2:1996 Table 3 Ground b'(0) porous limit -> Agr(250 Hz) = 2(-1.5 + 10.1) 17.2 dB (+/-0 dB) 17.2 dB 0 dB
ISO 9613-2:1996 clause 7.4 Single-edge diffraction saturates at the 20 dB cap 20 dB (+/-0 dB) 20 dB 0 dB
ISO 9613-2:1996 clause 7.4 Double-edge diffraction saturates at the 25 dB cap 25 dB (+/-0 dB) 25 dB 0 dB
ISO 9612:2009 Annex D Task-based LEX,8h + U (welder day, case a) LEX,8h 84.3; U 2.7 dB LEX,8h 84.3; U 2.7 dB -0.01; +0.02 dB
ISO 9612:2009 Annex E Job-based LEX,8h + U (production line, 18 workers) LEX,8h 88.1; U 3.8 dB LEX,8h 88.2; U 3.8 dB +0.06; -0.03 dB
ISO 9612:2009 Annex F Full-day LEX,8h + U (forklift drivers) LEX,8h 90.1; U 3.4 dB LEX,8h 90.1; U 3.4 dB +0.02; +0.03 dB
Materials: absorption, airflow & impedance: 100% (6/6)
Standard Quantity Expected (norm) Computed Δ Status
ISO 11654:1997 Annex A.1 Weighted absorption alpha_w (no indicator) 0.60 (class C, no indic.) 0.60 (class C, '') 0
ISO 11654:1997 Annex A.2 Weighted absorption alpha_w with M indicator 0.60(M) 0.60(M) 0
ISO 9053-2:2020 Annex A.3 Thermal boundary-layer thickness b 0.00183 m (+/-0.00001 m) 0.00183 m 0 m
ISO 9053-2:2020 Annex A.3 Effective ratio of specific heats kappa' 1.37 (+/-0.001) 1.37 0
ISO 10534-1:1996 Eqs (9)/(13)/(14) Absorption from standing-wave ratio s=3 alpha 0.75 (+/-0), |r| 0.5 alpha 0.75, |r| 0.5000 0
ISO 10534-2 Eq. (17) / Annex D Two-microphone round trip recovers a known reflection factor abs(r - (0.3-0.4j)) = 0 (identity, +/-1e-9) 0 0
Scattering & diffusion (ISO 17497): 100% (14/14)
Standard Quantity Expected (norm) Computed Δ Status
ISO 17497-1:2004 Eq (2) Reference speed of sound at 20 C 343.2 m/s (+/-0 m/s) 343.2 m/s 0 m/s
ISO 17497-1:2004 Eqs (1)/(4)/(5) Scattering coefficient (synthetic chain) 0.0931 (+/-0) 0.0931 0
ISO 17497-1:2004 Annex A.5 Expanded uncertainty of scattering coefficient 0.02971 (+/-0) 0.02971 0
ISO 17497-2:2012 Formula (5) Directional diffusion coefficient (QRD, model arc) 0.1099 (+/-0) 0.1099 0
ISO 17497-2:2012 Formula (5) Directional diffusion coefficient (flat reference) 0.0049 (+/-0) 0.0049 0
ISO 17497-2:2012 Formula (7) Normalised diffusion coefficient (QRD, model arc) 0.1055 (+/-0) 0.1055 0
Cox & D'Antonio 3e App. B (2D BEM) Normalised diffusion d_n, N=7 QRD x 6 periods, 200 Hz band (low-band anchor) 0 (+/-0.015) 0 0
Cox & D'Antonio 3e App. B (2D BEM) Normalised diffusion d_n, N=7 QRD x 6 periods, 250 Hz band (low-band anchor) 0.01 (+/-0.015) 0.001 -0.009
Cox & D'Antonio 3e App. B (2D BEM) Normalised diffusion d_n, N=7 QRD x 6 periods, 315 Hz band (low-band anchor) 0.01 (+/-0.015) 0.002 -0.008
Cox & D'Antonio 3e App. B (2D BEM) Normalised diffusion d_n, N=7 QRD x 6 periods, 400 Hz band (low-band anchor) 0.01 (+/-0.015) 0.008 -0.002
ISO 17497-2:2012 Formula (8) Zenith area factor (radians convention) 1.57105 (+/-0) 1.57105 0
Cox & D'Antonio Eq (10.3) QRD deepest well depth (N=7, f0=500 Hz) 0.196 m (+/-0 m) 0.196 m 0 m
Cox & D'Antonio Eq (5.8) + ISO 17497-2 Formula (7) Flat-panel predicted normalised diffusion (self-reference zero) 0 (+/-0) 0 0
Cox & D'Antonio Eq (5.8) + ISO 17497-2 Formula (7) QRD predicted normalised diffusion at 2 kHz (above flat panel) 0.208 (+/-0) 0.208 0
In-situ road absorption (ISO 13472): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
ISO 13472-1:2002 Clause 4.2 Geometrical-spreading factor Kr 0.6667 (+/-0) 0.6667 0
ISO 13472-1:2002 Annex A Maximum-sampled-area radius 1.3425 m (+/-0 m) 1.3425 m 0 m
ISO 13472-2:2010 Clause 5.4.1 Spot-tube upper usable frequency f_u 1989.4 Hz (+/-0.1 Hz) 1989.4 Hz 0 Hz
Precision sound power (ISO 3745 / 9614-3): 100% (4/4)
Standard Quantity Expected (norm) Computed Δ Status
ISO 3745:2012 Clause 10.5 EXAMPLE Expanded uncertainty U (k=2) 4.123 dB (+/-0.001 dB) 4.123 dB 0 dB
ISO 3745:2012 Eq (11) K1 background floor (6 dB edge band) 1.2563 dB (+/-0.0001 dB) 1.2563 dB 0 dB
ISO 3745:2012 Eq (16) Meteorological C1 at 23 C reference -0.1282 dB (+/-0.0001 dB) -0.1282 dB 0 dB
ISO 9614-3:2002 Eqs (5)/(8)/(9) Uniform-intensity LW recovery 80 dB (+/-0 dB) 80 dB 0 dB
Human vibration (ISO 8041 / 2631 / 5349): 100% (15/15)
Standard Quantity Expected (norm) Computed Δ Status
ISO 8041-1:2017 Table B.8 Wk design-goal factor at 6,31 Hz 1.054 (+/-0.1%) 1.0544 0
ISO 8041-1:2017 Table B.9 Wm design-goal factor at 1,585 Hz 0.9342 (+/-0.1%) 0.9342 0
ISO 8041-1:2017 Table 1 Wh factor at the 500 rad/s reference 0.202 (+/-0.15%) 0.202 0
ISO 8041-1:2017 Table B.1 Wb design-goal factor at 6,31 Hz 1.054 (+/-0.1%) 1.0545 0
ISO 8041-1:2017 Table B.1 Wb design-goal factors at 1 / 100 Hz max rel dev ≤ 0,1 % 0.000267 0
ISO 8041-1:2017 Table 1 Wc factor at the 100 rad/s reference 0.5145 (+/-0.1%) 0.5145 0
ISO 8041-1:2017 Table 1 + Table B.3 Wd factors at the 100 rad/s reference and 1 Hz max rel dev ≤ 0,1 % 0.000162 0
ISO 8041-1:2017 Table B.4 We design-goal factor at 8 Hz 0.1263 (+/-0.1%) 0.1263 0
ISO 8041-1:2017 Table B.5 Wf design-goal factors at 0,1585 / 0,1 Hz max rel dev ≤ 0,1 % 0.000098 0
ISO 8041-1:2017 Table B.7 Wj design-goal factors at 6,31 / 8 Hz max rel dev ≤ 0,1 % 0.00001 0
ISO 8041-1:2017 Table 5 + Annex B All nine weightings inside the tolerance envelope (318 printed bands) 0 bands outside the Table 5 tolerances 0 0
ISO 5349-2:2001 Example E.2.1 Single-tool daily exposure A(8) 4.1 m/s^2 (+/-0.05 m/s^2) 4.14 m/s^2 0.037 m/s^2
ISO 5349-2:2001 Example E.3 Forestry three-task A(8) 3.6 m/s^2 (+/-0.05 m/s^2) 3.61 m/s^2 0.01 m/s^2
ISO 5349-1:2001 Eq. (C.1) VWF 10 % lifetime Dy at A(8)=7 4 yr (+/-0.1 yr) 4.04 yr 0.042 yr
Directive 2002/44/EC Art. 3 HAV/WBV action & limit values HAV 2.5/5.0, WBV 0.5/1.15 m/s^2 HAV 2.5/5.0, WBV 0.5/1.15 m/s^2 0
Speech intelligibility (ANSI S3.5-1997): 100% (24/24)
Standard Quantity Expected (norm) Computed Δ Status
ANSI S3.5-1997 Table 3 Band-importance function normalisation 1 (+/-0) 1 0
ASA WG S3-79 SII.C (clause 5.4) Equivalent masking spectrum level at 200 Hz -1.665 (+/-0.001) -1.665 0
ANSI S3.5-1997 clause 5.6 Equivalent disturbance in quiet at 5000 Hz -23.6 dB (+/-0.01 dB) -23.6 dB 0 dB
ASA WG S3-79 SII.C (clause 6) SII, noise 30 dB plus hearing loss 40 dB 0.218454 (+/-0.000001) 0.218454 0
ANSI S3.5-1997 Annex C.2 Worked example (SII.C / R CRAN, errata applied) 0.851375 (+/-0.000001) 0.851375 0
ANSI S3.5-1997 Table C.2 (errata) Masking Zi at 200 Hz, corrected worksheet 34.66 dB (+/-0.01 dB) 34.66 dB -0.002 dB
ASA WG S3-79 SII.C (clause 6) SII, standard speech in quiet, normal hearing 0.99582517 (+/-0.000001) 0.99582517 0
ASA WG S3-79 TO.TST Official one-third-octave test case 0.445 (+/-0.001) 0.445 0
ASA WG S3-79 TO_1.TST Official test case, alternative importance 0.438 (+/-0.001) 0.438 0
ASA WG S3-79 CB.TST Official critical-band test case 0.273 (+/-0.001) 0.273 0
ASA WG S3-79 CB_1.TST Critical band, alternative importance 0.41 (+/-0.001) 0.41 0
ASA WG S3-79 ECB.TST Official equally-contributing test case 0.278 (+/-0.001) 0.278 0
ASA WG S3-79 ECB_1.TST Equally contributing, alternative importance 0.41 (+/-0.001) 0.41 0
ASA WG S3-79 OCTAVE.TST Official octave-band test case 0.491 (+/-0.001) 0.491 0
ASA WG S3-79 OCTAVE_1.TST Octave band, alternative importance 0.323 (+/-0.001) 0.323 0
ANSI S3.5-1997 Annex C.1 Octave-band worked example (SII.C) 0.504 (+/-0.001) 0.504 0
ANSI S3.5-1997 Table C.1 (errata) Level distortion Li, row i = 5 1 (+/-0.01) 1 -0.004
ANSI S3.5-1997 Table 1 Critical-band importance normalisation 1 (+/-0) 1 0
ANSI S3.5-1997 Table 2 Equally-contributing importance, 17 x 0.0588 0.9996 (+/-0) 0.9996 0
ANSI S3.5-1997 Table 4 Octave-band importance normalisation 1 (+/-0) 1 0
ANSI S3.5-1997 Table 4 Octave-band Ui and Xi equal Table 3's 0 dB (+/-0 dB) 0 dB 0 dB
ANSI S3.5-1997 Table 1 Critical-band table, all 21 rows 0 (+/-0) 0 0
ASA WG S3-79 SII.C (clause 6) Flat-input cases, all four procedures 0 (+/-0.000000001) 0.0000000001 0
ANSI S3.5-1997 Table 3 Loud-effort speech spectrum level at 1 kHz 42.16 dB (+/-0 dB) 42.16 dB 0 dB
Objective intelligibility (STOI / ESTOI): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
Taal et al. 2011 (Eq. 6, degenerate) STOI of a signal against itself = 1 (perfect correlation) 1 (+/-0.000001) 1 0
Jensen & Taal 2016 (Eq. 8, degenerate) ESTOI of a signal against itself = 1 (perfect spectral correlation) 1 (+/-0.000001) 1 0
Taal et al. 2011 (monotonicity with SNR) STOI rises from -15 dB to +25 dB SNR speech-shaped noise STOI(+25 dB) - STOI(-15 dB) > 0.2 0.462 (0.389 -> 0.851) 0
Impulsive-sound prominence (NT ACOU 112): 100% (2/2)
Standard Quantity Expected (norm) Computed Δ Status
NT ACOU 112:2002 Formula 1 Predicted prominence, OR=1000 dB/s, LD=30 dB 11.9542 (+/-0.0001) 11.9542 0
NT ACOU 112:2002 Formula 2 Adjustment KI to LAeq at prominence P=10 9 dB (+/-0 dB) 9 dB 0 dB
Impulsive-sound prominence (ISO/PAS 1996-3): 100% (2/2)
Standard Quantity Expected (norm) Computed Δ Status
ISO/PAS 1996-3:2022 3.5 Onset rate of a 30 dB ramp over 0.30 s 100 dB/s (+/-0 dB/s) 100 dB/s 0 dB/s
ISO/PAS 1996-3:2022 Formula 3 Adjustment KI of the ramp onset 7.1176 dB (+/-0 dB) 7.1176 dB 0 dB
Room noise (ANSI S12.2-2019): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
ANSI S12.2-2019 Table 1 NC-40 curve, tangency self-consistency 40 (+/-0) 40 0
ANSI S12.2-2019 Table D.1 RC-31 Mark II curve, 63 Hz level 51 (+/-0) 51 0
ANSI S12.2-2019 clause D.4 RC-35 curve, mid-frequency average LMF 35 (+/-0) 35 0
Hearing threshold (ISO 7029 / ISO 389-7): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
ISO 7029:2017 Table 1 Median threshold, male age 60 at 4 kHz 20.209 dB (+/-0.001 dB) 20.208 dB 0 dB
ISO 7029:2017 Table 2 Upper spread su, male age 60 at 1 kHz 10.153 dB (+/-0.001 dB) 10.153 dB 0 dB
ISO 389-7:2005 Table 1 Free-field reference threshold at 1 kHz 2.4 dB (+/-0 dB) 2.4 dB 0 dB
Measurement uncertainty (GUM / Supplement 1): 100% (7/7)
Standard Quantity Expected (norm) Computed Δ Status
ISO/IEC Guide 98-3-1 clause 9.2 Combined uncertainty, additive model 2 (+/-0) 2 0
ISO/IEC Guide 98-3 Table G.2 Coverage factor, p=0.99, v=16 2.92 (+/-0.005) 2.921 0.001
ISO/IEC Guide 98-3 Annex G.4 Welch-Satterthwaite effective dof 40 (+/-0) 40 0
ISO/IEC Guide 98-3 Annex H.1 End-gauge combined uncertainty uc, nm 31.71 nm (+/-0.01 nm) 31.71 nm 0.001 nm
ISO/IEC Guide 98-3 Annex H.1 End-gauge expanded uncertainty U99, nm 92.1 nm (+/-0.1 nm) 92.1 nm 0.04 nm
ISO/IEC Guide 98-3 Annex H.2 (Table H.3) Correlated V/I/phi budget: uc(R), ohm 0.071 ohm (+/-0.001 ohm) 0.071 ohm 0 ohm
ISO/IEC Guide 98-3-1 Table 3 (clause 9.2.3) Seeded Monte Carlo, rectangular sum: 95 % interval endpoint +/-3.88 (u = 2.0) +/-3.886 (u = 2.002) 0.006
Noise-induced hearing loss (ISO 1999): 100% (6/6)
Standard Quantity Expected (norm) Computed Δ Status
ISO 1999:2013 Table D.2 Median NIPTS, 4 kHz, 90 dB, 20 yr 13 dB (+/-0.5 dB) 12.9 dB -0.057 dB
ISO 1999:2013 Table D.2 Worst-10 % NIPTS, 4 kHz, 90 dB, 20 yr 18 dB (+/-0.5 dB) 17.8 dB -0.239 dB
ISO 1999:2013 Table D.4 Worst-10 % NIPTS, 3 kHz, 100 dB, 40 yr 60 dB (+/-0.5 dB) 59.8 dB -0.172 dB
ISO 1999:2013 Annex C, Formulae (C.6) to (C.8) NIPTS at 1/2/4 kHz, 90 dB, 30 yr, Q = 10 % (annex inputs) 0, 9, 19 dB 0, 9, 19 dB 0 dB
ISO 1999:2013 Annex C, Formula (C.5) Compressed 4 kHz shift, Formula (1) with the annex's H = 36 dB 13.3 dB (+/-0.1 dB) 13.3 dB 0 dB
ISO 1999:2013 Annex C, Formula (C.11) Hearing threshold level with age and noise, 1/2/4 kHz mean, Q = 10 % 31.1 dB (+/-0.1 dB) 31.1 dB 0 dB
Multiple-shock whole-body vibration (ISO 2631-5): 100% (6/6)
Standard Quantity Expected (norm) Computed Δ Status
ISO 2631-5:2018 Formula 3 Daily acceleration dose, 5 x 40 m/s2 peaks 55.97 m/s2 (+/-0.01 m/s2) 55.97 m/s2 -0.002 m/s2
ISO 2631-5:2018 Formula C.3 Stress variable R, Annex C male example 1.22 (+/-0.01) 1.22 0
ISO 2631-5:2018 Formula C.5 Injury probability, Annex C male example 0.37 (+/-0.01) 0.37 -0.003
ISO 2631-5:2018 Annex C NOTE 5 Compressive stress Sd, female example 1.4 MPa (+/-0.01 MPa) 1.4 MPa -0.001 MPa
ISO 2631-5:2018 Annex C NOTE 5 Stress variable R, female example 0.97 (+/-0.01) 0.96 -0.008
ISO 2631-5:2018 Formula 1 vs Annex D Table D.1 Seat-to-spine transfer vs the 256 Hz digital filter (0,5-80 Hz) max abs(Formula 1 - filter) ≤ 0,04 0.001 0.001
Sound absorption in enclosed spaces (EN 12354-6): 100% (2/2)
Standard Quantity Expected (norm) Computed Δ Status
EN 12354-6:2003 Formula 1 Equivalent absorption area, Annex E bare room 2.26 m2 (+/-0.01 m2) 2.26 m2 0.003 m2
EN 12354-6:2003 Formula 5 Reverberation time, Annex E bare room 2.1 s (+/-0.1 s) 2.1 s 0.003 s
Prominent discrete tones (ECMA-418-1): 100% (2/2)
Standard Quantity Expected (norm) Computed Δ Status
ECMA-418-1:2024 Clause 10 Formula (2) Critical band at 1 kHz (f1,c / f2,c / dfc) dfc 162.2 Hz (+/-0.05 Hz); edges 922.2-1084.4 Hz dfc 162.22 Hz; edges 922.2-1084.4 Hz 0.017 Hz
ECMA-418-1:2024 Clause 11.6 Formula (14) Proximity spacing dfprox at 150 / 850 Hz 23 Hz @ 150 Hz; 63.8 Hz @ 850 Hz (+/-0.5 Hz) 23.0 Hz; 63.8 Hz +0.004; +0.044 Hz
Tonal audibility (ISO/PAS 20065): 100% (11/11)
Standard Quantity Expected (norm) Computed Δ Status
ISO/PAS 20065:2016 Formulae (12)-(14) Audibility at 137.3 Hz, Annex E spectrum 1 4.99 dB (+/-0.05 dB) 5.01 dB 0.022 dB
ISO/PAS 20065:2016 Formula (13) Masking index av at 137.3 / 592.2 Hz -2.02 dB @ 137.3 Hz; -2.4 dB @ 592.2 Hz (+/-0.005 dB) -2.017 dB; -2.400 dB +0.003; +0.000 dB
ISO/PAS 20065:2016 Formula (20) Mean audibility of the five spectra, Annex E 6.96 dB (+/-0.05 dB) 6.98 dB 0.018 dB
ISO/PAS 20065:2016 Formula (6) Mean narrow-band level LS from spectrum, Table E.1 49.22 dB (+/-0.02 dB) 49.22 dB -0.001 dB
ISO/PAS 20065:2016 Clause 6 Extended uncertainty U of the 137.3 Hz tone, Table E.2 2.79 dB (+/-0.02 dB) 2.8 dB 0.006 dB
ISO/PAS 20065:2016 Formulae (28)-(29) Extended uncertainty of the mean audibility, Annex E Step 4 1.38 dB (+/-0.01 dB) 1.38 dB -0.003 dB
ISO/PAS 20065:2016 Formula (8) Tone level LT from spectrum, Table E.1 67.96 dB (+/-0.02 dB) 67.96 dB -0.005 dB
ISO/PAS 20065:2016 Clause 5.3.8 Tone detection over the spectrum, Table E.1 tones at [118.4, 137.3, 158.8] Hz tones at [118.4, 137.3, 158.8] Hz exact
ISO/PAS 20065:2016 Clause 5.3.8 Step 3 Same-band FG combination inside analyze_spectrum, Table E.2 row 2 FG 72.15 dB (+/-0.02 dB) 72.15 dB -0.002 dB
ISO/PAS 20065:2016 Formula (17) Multi-tone FG combination, Table E.1 72.15 dB (+/-0.02 dB) 72.15 dB -0.002 dB
ISO/PAS 20065:2016 Formulae (18)/(19) Two-tone separation fD (DIN 45681 Annex J), 137.3 / 212 Hz fD(137.3)=24.09, fD(212)=21.0 Hz; Annex E pair combined fD(137.3)=24.09, fD(212)=21.00 Hz; Annex E pair combined exact
Psychoacoustic annoyance & fluctuation strength (Fastl & Zwicker): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
Fastl & Zwicker Eqs (16.2)-(16.4) Psychoacoustic annoyance, worked (N5,S,F,R) tuple 37.0478 (+/-0.001) 37.0477 0
Fastl & Zwicker Eq (10.2) Fluctuation strength of AM broadband noise (60 dB, m=1, 4 Hz) 3.6943 vacil (+/-0.001 vacil) 3.6943 vacil 0 vacil
Fastl & Zwicker Ch. 10 / Osses et al. 2016 Fluctuation-strength calibration: 1 kHz / 60 dB / m=1 / 4 Hz AM tone 1 vacil (+/-0.05 vacil) 1 vacil 0 vacil
Electroacoustics: distortion & frequency response: 100% (20/20)
Standard Quantity Expected (norm) Computed Δ Status
IEC 60268-3:2013 (14.12.3.2) THD (rel. total RMS, the R convention the clause defines) 0.112853 (+/-0.0001) 0.112853 0
Closed-form harmonic synthesis (THD_F convention) THD (rel. fundamental, the widespread datasheet convention) 0.113578 (+/-0.0001) 0.113578 0
IEC 60268-5:2003 (20.3/20.4) Characteristic sensitivity level, 1 W into 8 ohm at 1 m (flat 90 dB) 90 dB (+/-0.000001 dB) 90 dB 0 dB
IEC 60268-5:2003 (21.2) Effective frequency range = -10 dB crossings (50 Hz / 18 kHz) 50 Hz / 18000 Hz (ref -10 dB crossings) 50.000 Hz / 18000.0 Hz -0.000 / -0.000 Hz
IEC 60268-3:2013 (14.12.5) 2nd-order harmonic distortion d2 (rel. total) 0.099361 (+/-0.0001) 0.099361 0
IEC 60268-4:2014 (11.1/11.3) Microphone sensitivity level, 12.5 mV/Pa -> 20 lg 0.0125 dB re 1 V/Pa -38.0618 dB (+/-0.00001 dB) -38.0618 dB 0 dB
IEC 60268-4:2014 (12.2) Effective frequency range = +/-3 dB tolerance crossings (40 Hz / 18 kHz) 40 Hz / 18000 Hz (+/-3 dB tolerance crossings) 40.000 Hz / 18000.0 Hz 0.000 / -0.000 Hz
IEC 60268-4:2014 (13.2.2) Directivity index of the ideal cardioid, 10 lg 3 dB (11.2.2 a integral) 4.771213 dB (+/-0.005 dB) 4.771214 dB 0 dB
IEC 60268-4:2014 (17.2) Equivalent noise level, 2.5 uV over 12.5 mV/Pa -> 200 uPa = 20 dB SPL 20 dB SPL (+/-0 dB SPL) 20 dB SPL 0 dB SPL
IEC 60268-3:2013 (14.12.7.2 g) Modulation distortion d_m,2 (arithmetic sideband sum over U_2,f2) 0.16 (+/-0.0001) 0.16 0
IEC 60268-3:2013 (14.12.7.2 h) Modulation distortion d_m,3 (arithmetic sideband sum over U_2,f2) 0.08 (+/-0.0001) 0.08 0
IEC 60268-3:2013 (14.12.8.1 a) Difference-frequency distortion d_d,2 (over U_2,ref = 2 U_2,f2) 0.03 (+/-0.0001) 0.03 0
IEC 60268-3:2013 (14.12.8.1 b) Difference-frequency distortion d_d,3 (arithmetic product sum) 0.04 (+/-0.0001) 0.04 0
IEC 60268-3:2013 (14.12.10) Total difference-frequency distortion (8 kHz / 11.95 kHz tones) 0.03605551 (+/-0.0001) 0.03605551 0
ITU-R BS.468-4 Table 1 Weighting network response at the 6.3 kHz peak (14.12.11 network) 12.2 dB (+/-0 dB) 12.2 dB 0 dB
IEC 60268-3:2013 (14.12.9) DIM of the 15 kHz / 3.15 kHz signal (Table 2, 9 products) 0.168819 (+/-0.0001) 0.168819 0
Bendat & Piersol, Random Data 4e H1 recovers a known first-order IIR gain at 1 kHz 0.8954 (+/-2%) 0.8954 0
Bendat & Piersol, Random Data 4e Ordinary coherence = 1 for a noiseless LTI path 1 (+/-0.001) 1 0
AES17-2015 (6.4.2 / 5.2.7) Idle channel noise, 1 kHz -20 dBFS tone (CCIR-RMS -5.63 dB offset) -25.63 dB (+/-0.01 dB) -25.63 dB 0 dB
AES17-2015 (6.4.1) Dynamic range, full-scale reference over a -40 dBFS residual at 2 kHz 40 dB (+/-0.6 dB) 40.41 dB 0.414 dB
Calibrated spectral analysis (Bendat & Piersol): 100% (12/12)
Standard Quantity Expected (norm) Computed Δ Status
Bendat & Piersol, Random Data 4e Eq. (5.67) White-noise autospectral density = sigma^2/(fs/2) 0.000977 (+/-3%) 0.000982 0
Bendat & Piersol, Random Data 4e Eq. (8.158) PSD random error = 1/sqrt(nd) (Monte Carlo, 100 seeded records) 0.1768 (+/-6%) 0.1764 0
Bendat & Piersol, Random Data 4e Eq. (8.163) 95% chi-square confidence interval coverage (Monte Carlo) 0.95 (+/-0.025) 0.94 -0.01
Bendat & Piersol, Random Data 4e Eqs. (9.55)/(6.39) Coherent output spectrum of a known-SNR path: gamma^2 = SNR/(1+SNR) 0.7191 (+/-0.03) 0.7255 0.006
Closed-form power-law slope (10*lg(2) dB/octave per unit exponent) Pink-noise PSD slope over 20 Hz - 20 kHz, dB/octave -3.0103 dB/oct (+/-0.05 dB/oct) -3.0116 dB/oct -0.001 dB/oct
IEC 60268-1:1985 Clause A2.1 / Table AII 5 ms burst of 5 kHz tone at 48 kHz: gate RMS = A/sqrt(2) (integral periods) 0.707107 (+/-0) 0.707107 0
Harris 1978 closed form (DFT-even Hann) Hann window ENBW = n*sum(w^2)/sum(w)^2 = 3/2 exactly 1.5 (+/-0) 1.5 0
Constant-power 1/n-octave kernel (closed form) 1/3-octave smoothed line level = Pdf/(f0(2^(1/6)-2^(-1/6))) 0.021592 (+/-1e-07%) 0.021592 0
Percival & Walden 1993, Table 382 Slepian taper concentration lambda_14(31, 8/31), quadruple-precision table 0.92943822082 (+/-0.000000000001) 0.92943822082 0
Percival & Walden 1993, Section 7.2 / Eq. (333) Multitaper white-noise density = sigma^2/(fs/2), NW=4, K=7 tapers 0.000977 (+/-3%) 0.000963 0
Percival & Walden 1993, Eq. (369a) tone calibration Multitaper 'spectrum' scaling reads a sinusoid peak at A^2/2 4.5 (+/-0.01%) 4.500003 0
Percival & Walden 1993, Eq. (370b) Adaptive multitaper dof -> 2K on white noise (weights -> uniform) 14 (+/-2%) 13.9847 -0.015
Multiple-input coherence (Bendat & Piersol): 100% (5/5)
Standard Quantity Expected (norm) Computed Δ Status
Bendat & Piersol, Random Data 4e Problem 7.2 / Eqs. (7.86)/(7.94) Conditioned coherent output of the 2nd input abs(G2y.1)^2/G22.1 = 4/3 exactly 1.333333333 (+/-0) 1.333333333 0
Bendat & Piersol, Random Data 4e Problem 7.2 / Eqs. (7.87)/(7.116) Partial coherence gamma^2_2y.1 = 2/15 and multiple coherence = 0.7 0.7 (+/-0) 0.7 0
Bendat & Piersol, Random Data 4e Eq. (7.35) with Eqs. (6.40)/(6.41) Multiple coherence of a known-SNR system: gamma^2_{y:x} = SNR/(1+SNR) 0.8889 (+/-0.03) 0.8913 0.002
Bendat & Piersol, Random Data 4e Eq. (7.117) Uncorrelated inputs: multiple coherence = sum of ordinary coherences 0 (+/-0.02) -0.0098 -0.01
Bendat & Piersol, Random Data 4e Eqs. (7.88)/(7.121) Output-power decomposition Gyy = sum of Gvi + Gnn (exact) 0 (+/-0.000000000001) 0 0
Time-frequency analysis (Bendat & Piersol): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
Bendat & Piersol, Random Data 4e Eq. (12.173) Spectrogram of an on-bin tone reads its mean square A^2/2 in every column 2 (+/-1e-07%) 2 0
Parseval + COLA identity (Hann taper, 75% overlap) Time-integrated STFT power = time-domain energy of an interior burst 0.236151 (+/-1e-10%) 0.236151 0
Bendat & Piersol, Random Data 4e Eqs. (11.128)-(11.130) Zoom FFT tone amplitude = demodulate-decimate-DFT chain, machine precision 0.7 (+/-1e-10%) 0.7 0
Correlation, time delay and envelope (B&P / Knapp & Carter): 100% (7/7)
Standard Quantity Expected (norm) Computed Δ Status
Bendat & Piersol, Random Data 4e Eq. (5.21) Cross-correlation peak of a 16-sample pure delay, samples 16 (+/-0.001) 16 0
Knapp & Carter 1976, Table I (PHAT) + sub-sample interpolation GCC-PHAT estimate of an exact 12.25-sample fractional delay, samples 12.25 (+/-0.005) 12.2483 -0.002
Bendat & Piersol, Random Data 4e Eq. (5.101) Cross-spectrum phase-slope estimate of the same fractional delay 12.25 (+/-0.001) 12.2498 0
Bendat & Piersol, Random Data 4e Eq. (8.120) BLWN autocorrelation coefficient at 3 samples vs sin(2piBt)/(2piBt) -0.1559 (+/-0.02) -0.1666 -0.011
Bendat & Piersol, Random Data 4e Example 8.5 Random error of the correlation peak: B=100 Hz, T=5 s, M/S=N/S=10 0.35 (+/-0.001) 0.3493 -0.001
Bendat & Piersol, Random Data 4e Table 13.1 Hilbert transform of cos recovers sin: max interior error 0 (+/-0) 0 0
Bendat & Piersol, Random Data 4e Eq. (13.27) Envelope of an AM waveform recovers 1 + mcos(2pifm*t) exactly 0 (+/-0) 0 0
Cepstrum, liftering and envelope spectrum (Havelock / B&P): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
Havelock 2008 Ch. 27 Fig. 21 + Mercator series of ln(1+ae^{-jtheta}) Power-cepstrum height at the echo delay = reflection coefficient a 0.4 (+/-0) 0.4 0
Havelock 2008 Ch. 87 Eq. (14): complex cepstrum, series term n = 2 Second rahmonic of a reflection a = 0.4 equals -a^2/2 -0.08 (+/-0) -0.08 0
Bendat & Piersol, Random Data 4e Sec. 13.3 (Fig. 13.11) Envelope-spectrum line of an AM tone (A0 = 2, m = 0.35) at fm 0.7 (+/-0.002) 0.7 0
Time synchronous averaging (McFadden 1987): 100% (5/5)
Standard Quantity Expected (norm) Computed Δ Status
McFadden 1987 Eq. 8 / Eq. 9: comb filter |C(f)| at a harmonic k/T Comb-filter tooth height at a harmonic equals unity (any N) 1 (+/-0) 1 0
McFadden 1987 Eq. 8: comb filter one quarter-order from a tooth, N = 2 Comb-filter magnitude = 1/sqrt(2) at order 0.25 0.70710678 (+/-0) 0.70710678 0
McFadden 1987 Sec. 4 (Fig. 5): node selection, tone at 32.05 orders N = 20 places a comb node on 32.05 orders (|C| = 0), not the power-of-2 N = 32 0 (+/-0.0000000001) 0 0
McFadden 1987 Eq. 5: exact recovery, integer samples per period Noiseless periodic waveform (M = 256) recovered to machine precision 0 (+/-0.0000000001) 0 0
McFadden 1987 Sec. 1: asynchronous-noise variance reduced by 1/N Residual noise std of the average falls as sigma/sqrt(N), N = 64 0.125 (+/-15%) 0.12414 -0.001
Data qualification and Rice statistics (Bendat & Piersol): 100% (8/8)
Standard Quantity Expected (norm) Computed Δ Status
Bendat & Piersol, Random Data 4e Example 4.4 Reverse arrangements of the 20-observation sequence 86 (+/-0) 86 0
Bendat & Piersol, Random Data 4e Table A.6 Lower percentage point A(20; 0.975) at alpha = 0.05 64 (+/-0) 64 0
Bendat & Piersol, Random Data 4e Table A.6 Upper percentage point A(20; 0.025) at alpha = 0.05 125 (+/-0) 125 0
Wald & Wolfowitz 1940 exact run distribution Runs acceptance region for n1 = n2 = 10, alpha = 0.05: lower point 6 (+/-0) 6 0
Wald & Wolfowitz 1940 exact run distribution Runs acceptance region for n1 = n2 = 10, alpha = 0.05: upper point 15 (+/-0) 15 0
Bendat & Piersol, Random Data 4e Example 5.13 / Eq. (5.195) Zero-crossing rate of bandlimited noise (fc = 1 kHz, B = 400 Hz) 2013 (+/-1%) 2013 -0.551
Bendat & Piersol, Random Data 4e Example 5.12 Apparent frequency of low-pass noise (B = 2 kHz) = 0.577 B 1155 (+/-1%) 1159 3.911
Bendat & Piersol, Random Data 4e Example 5.14 / Eq. (5.206) Prob[positive peak > 4 sigma] of a narrow bandwidth record 0.000335 (+/-0.00001) 0.000334 0
Underwater acoustics (ISO 18405/17208/18406): 100% (6/6)
Standard Quantity Expected (norm) Computed Δ Status
ISO 18405:2017 / ISO 18406 Formula 7 Sound pressure level of a synthetic tone, dB re 1 µPa 123.0103 (+/-0.0001) 123.0103 0
ISO 18405:2017 / ISO 18406 Formulae 3-4 Sound exposure level of a 2 s tone, dB re 1 µPa²·s 120 (+/-0.001) 120 0
ISO 18406:2017 (6.4.2.1.3) Peak sound pressure level of a known waveform, dB re 1 µPa 129.5424 (+/-0.0001) 129.5424 0
ISO 17208-1:2016 Radiated noise level from RMS pressure and distance, dB re 1 µPa·m 46.0206 (+/-0.0001) 46.0206 0
ISO 17208-2:2019 (Formula 3) Lloyd's-mirror surface correction ΔL at a known k·d_s -3.5211 (+/-0.0001) -3.5211 0
ISO 18406:2017 (Formulae 8-9) Cumulative SEL of N identical strikes = SEL_ss + 10·lg(N) 196.9897 (+/-0) 196.9897 0
Underwater sound propagation (transmission loss): 100% (16/16)
Standard Quantity Expected (norm) Computed Δ Status
Mackenzie (1981) nine-term equation Speed of sound at 25 °C, 35 ‰, 1000 m (canonical check value), m/s 1550.744 m/s (+/-0.01 m/s) 1550.744 m/s 0 m/s
UNESCO/Chen-Millero vs Mackenzie Sound-speed agreement at 10 °C, 35 ‰, 1000 m (cross-model), m/s 1506.264 m/s (+/-1 m/s) 1506.524 m/s 0.261 m/s
Del Grosso (1974) vs Mackenzie Sound-speed agreement at 10 °C, 35 ‰, 1000 m (cross-model), m/s 1506.264 m/s (+/-1 m/s) 1506.313 m/s 0.049 m/s
Spherical spreading 20·lg(R) Geometrical spreading loss at R = 1000 m, dB 60 dB (+/-0 dB) 60 dB 0 dB
Thorp (1967) absorption Volume absorption α at 10 kHz (cold deep water), dB/km 1.1498 dB/km (+/-0 dB/km) 1.1498 dB/km 0 dB/km
Ainslie-McColm (1998) vs Francois-Garrison (1982) Absorption agreement at 10 kHz, 10 °C, 35 ‰, 0 m, pH 8, dB/km 0.9626 dB/km (+/-0.0963 dB/km) 0.9866 dB/km 0.024 dB/km
Francois-Garrison (1982) Part II Table IV Absorption α at 100 kHz, 10 °C, 35 ‰, 0 m, pH 8 (printed value), dB/km 33.6 dB/km (+/-0.05 dB/km) 33.63 dB/km 0.03 dB/km
Del Grosso refit (Wong-Zhu 1995 Table IV) c(t90 = 20 °C, S = 35, P = 500 bar) vs the printed check table, m/s 1603.679 m/s (+/-0.001 m/s) 1603.679 m/s 0 m/s
Wales-Heitmeyer (2002) ensemble spectrum Merchant-ship source PSD at 100 Hz (printed equation), dB re 1 µPa²/Hz 158.45 dB (+/-0.001 dB) 158.45 dB 0 dB
Passive sonar equation (Urick/Etter) Figure of merit SL − (NL − DI) − DT, dB 85 dB (+/-0 dB) 85 dB 0 dB
Seabed reflection (Rayleigh, normal incidence) Bottom loss at 90° grazing, sand ρ=1900 c=1650 over water, dB 9.0506 dB (+/-0 dB) 9.0506 dB 0 dB
Wenz wind noise (rule of fives) Wind spectrum level at 1 kHz, 5 kn (canonical anchor), dB re 1 µPa²/Hz 51.0206 dB (+/-0.0001 dB) 51.0206 dB 0 dB
Mellen thermal noise Thermal spectrum level at 50 kHz, 16.85 °C (physical), dB re 1 µPa²/Hz 19.3426 dB (+/-0 dB) 19.3426 dB 0 dB
JOMOPANS-ECHO ship source level Bulker V=13.5 kn L=211 m band level at 1 kHz (File S1 oracle), dB re 1 µPa m 161.394 dB (+/-0.01 dB) 161.394 dB 0 dB
UNESCO sound speed (EOS-80 canonical value) SVEL(S = 40, T68 = 40 °C, P = 1000 bar) vs Fofonoff & Millard 1983, m/s 1731.995 m/s (+/-0.02 m/s) 1732.004 m/s 0.009 m/s
Medwin (1975) sound speed (Ainslie Eqs. 1.2-1.4) ∂c/∂T at 10 °C, neglecting the bracketed terms, m/s per °C 3.5 m/s per °C (+/-0.001 m/s per °C) 3.5 m/s per °C 0 m/s per °C
Underwater propagation regimes (Weston flux theory): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
Ainslie (2010) Table 9.1, medium sand Reflection loss gradient η from Equation (9.51), Np/rad 0.28 Np/rad (+/-0.005 Np/rad) 0.278 Np/rad -0.002 Np/rad
Ainslie (2010) Table 9.1, mud Reflection loss gradient η from Equation (9.53) at 1 Hz, Np/rad 0.021 Np/rad (+/-0.0005 Np/rad) 0.02073 Np/rad 0 Np/rad
Weston cylindrical spreading vs normal modes Range-averaged TL in an ideal 100 m waveguide at 100 Hz, 20-30 km, dB 58.949 dB (+/-1 dB) 58.399 dB -0.55 dB
Marine-mammal auditory weighting (NMFS / Southall): 100% (4/4)
Standard Quantity Expected (norm) Computed Δ Status
NMFS (2018) Appendix D worked example Weighting factor adjustment W(1 kHz) for high-frequency cetaceans, dB -37.55 dB (+/-0.01 dB) -37.545 dB 0.005 dB
NMFS (2024) v3.0 Table 5, otariid C C recomputed as the peak of W(f) for the OW row (printed 1.37, corrected 1.36), dB 1.3643 dB (+/-0.0005 dB) 1.3643 dB 0 dB
Ainslie (2010) Equation (11.159), orca audiogram Hearing threshold at 50 kHz (third branch), dB re 1 µPa 51.2 dB (+/-0.05 dB) 51.199 dB -0.001 dB
Ainslie (2010) §11.4.6, orca versus salmon Noise-limited figure of merit (SL + TS − NL + AG − DT)/2, dB re m² 51 dB (+/-0 dB) 51 dB 0 dB
Underwater numerical propagation (modes / rays / PE): 100% (4/4)
Standard Quantity Expected (norm) Computed Δ Status
Normal modes vs ideal waveguide Fundamental horizontal wavenumber kr1 at 20 Hz, 100 m (analytic), rad/m 0.077662 rad/m (+/-0.0001 rad/m) 0.077662 rad/m 0 rad/m
Normal modes vs image-source oracle Absolute TL at 1 km in the ideal waveguide (converged image sum), dB 48.238 dB (+/-0.02 dB) 48.239 dB 0.001 dB
Ray tracing vs linear gradient Turning depth of a 10° ray, c = 1500 + 0.05z (circular arc), m 462.8 m (+/-1 m) 462.8 m 0 m
Parabolic equation vs free field PE transmission loss at 2 km, homogeneous medium (spherical spreading), dB 66.021 dB (+/-0.1 dB) 66.021 dB 0 dB
Aircraft noise (ICAO Annex 16 / IEC 61265): 100% (15/15)
Standard Quantity Expected (norm) Computed Δ Status
ECAC Doc 29 noise fraction (half path) Finite-segment correction ΔF for a perpendicular foot at the segment start, dB -3.0103 dB (+/-0.001 dB) -3.0103 dB 0 dB
ECAC Doc 29 single-event chain SEL of a long level flyover vs the infinite-path limit LE∞ + ΔI − Λ, dB 83.444 dB (+/-0.01 dB) 83.444 dB 0 dB
ECAC Doc 29 impedance adjustment (standard atmosphere) Acoustic-impedance adjustment of NPD data at 15 °C / 101.325 kPa (Eq. 4-6/4-7), dB 0.074 dB (+/-0.0005 dB) 0.0741 dB 0 dB
ECAC Doc 29 reference workbook (segment Λ) Lateral attenuation of a climbing segment vs the ECAC Vol 3 Part 1 workbook, dB 6.3769 dB (+/-0.01 dB) 6.3769 dB 0 dB
ECAC Doc 29 start-of-roll directivity (jet) ΔSOR behind a takeoff ground-roll segment vs the Vol 3 Part 1 workbook, dB 0.3196 dB (+/-0.01 dB) 0.3196 dB 0 dB
ECAC Doc 29 start-of-roll directivity (turboprop) ΔSOR behind a takeoff ground-roll segment (turboprop, Eq. 4-24b), dB 1.0943 dB (+/-0.01 dB) 1.0944 dB 0 dB
ECAC Doc 29 workbook event assembly (JETFDS/R03, behind SOR) Energy sum of the reference per-segment SELs vs the B-1 event total, dB 74.73 dB (+/-0.01 dB) 74.733 dB 0.003 dB
SAE ARP 5534 band-attenuation continuity SAE-Method δ_B at the 150 dB branch split (Eq. 7 vs Eq. 8), dB 123.95 dB (+/-0.01 dB) 123.953 dB 0.003 dB
EASA ANP database round-trip Interpolated NPD level at a tabulated node vs the published ANP value, dB 98.8 dB (+/-0 dB) 98.8 dB 0 dB
ECAC Doc 29 NPD interpolation Log-linear NPD level at the log-midpoint distance (Eq. 4-4), dB 97 dB (+/-0 dB) 97 dB 0 dB
SAE ARP 5534 pure-tone coefficient (ISO 9613-1) Mid-band α at 1 kHz, 25 °C, 70 % RH, 101.325 kPa, dB/m 0.006186 dB/m (+/-0 dB/m) 0.006186 dB/m 0 dB/m
ICAO Annex 16 Vol. I App. 2 Table A2-3 Perceived noisiness at SPL(b), 1 kHz band, in noys 1 (+/-0) 1 0
ICAO Doc 9501 ETM Vol. I Table 3-7 Tone correction of the turbofan example, dB 2 (+/-0) 2 0
ICAO Doc 9501 ETM Vol. I Table 4-4 Integrated-method reference EPNL, EPNdB 92.619 EPNdB (+/-0.01 EPNdB) 92.619 EPNdB 0 EPNdB
IEC 61265:1995 Table 1 Directional-response tolerance at 4 kHz / 90°, dB 2 dB (+/-0 dB) 2 dB 0 dB
Rotorcraft noise (ECAC Doc 32 / NORAH2): 100% (12/12)
Standard Quantity Expected (norm) Computed Δ Status
ECAC Doc 32 atmospheric attenuation (Table 4) ΔLa over a 1 km excess path at 1 kHz vs the NORAH2 guidance Table 4, dB 6.3 dB (+/-0.2 dB) 6.186 dB -0.114 dB
ECAC Doc 32 spherical spreading ΔLs at ten times the 60 m hemisphere reference distance (Eq. 24), dB -20 dB (+/-0 dB) -20 dB 0 dB
ECAC Doc 32 ground effect (rigid limit) ΔLg over a rigid surface at grazing incidence tends to +6 dB (Eq. 29), dB 6 dB (+/-1 dB) 6 dB 0.002 dB
ECAC Doc 32 propagation chain (NORAH2 prototype) LA of a single-hemisphere emission vs the NORAH2 prototype single-event history (R22 approach, 223.66 m slant), dB(A) 55.87 dB(A) (+/-0.1 dB(A)) 55.886 dB(A) 0.016 dB(A)
ECAC Doc 32 flight-condition interpolation (NORAH2 Eq. 8) Distance-scaled triangle blend of three uniform hemispheres, hand-checked, dB 97.0367 dB (+/-0.001 dB) 97.0364 dB 0 dB
ECAC Doc 32 flight-path kinematics (Eq. 17) Airspeed of a straight climbing track, 40 m/s ground speed at a 5° path angle, m/s 40.15279 m/s (+/-0.0001 m/s) 40.15279 m/s 0 m/s
ECAC Doc 32 retarded time (Eq. 22) Recorded-time delay at 100 m slant distance, r/c with c = 346.1 m/s, s 0.288934 s (+/-0.00001 s) 0.288934 s 0 s
ECAC Doc 32 single event (Eq. 27) SEL − LASmax of a constant-speed level flyover, 10·lg(π·d/V) closed form, dB 7.982 dB (+/-0.1 dB) 7.942 dB -0.04 dB
NORAH2 guidance mean ground plane (Eq. 36-40) Intercept of the plane fitted to a symmetric 20 m roofline, hand-checked, m 10 m (+/-0 m) 10 m 0 m
NORAH2 guidance mean flow resistivity (Eq. 41) Log-average of equal 1e4 and 1e6 Pa·s/m2 halves, hand-checked, Pa·s/m2 100000 Pa·s/m² (+/-0 Pa·s/m²) 100000 Pa·s/m² 0 Pa·s/m²
NORAH2 guidance diffraction at grazing (Eq. 42) Pure diffraction with the edge on the line of sight, 10·lg 3, dB 4.7712 dB (+/-0.0001 dB) 4.7712 dB 0 dB
NORAH2 guidance screening path difference (§A.4.5) Rubber-band delta over a 40 m hill, hand-checked geometry, m 4.2848 m (+/-0 m) 4.2848 m 0 m
CNOSSOS-EU road source (Directive 2002/49/EC Annex II): 100% (6/6)
Standard Quantity Expected (norm) Computed Δ Status
CIRCABC CNOSSOS-EU road emission test set Line power of the 60 committed cases of the 4 875-case published test set, 8 octave bands each, dB re 1 pW/m <= 0.01 dB on 480 published band levels (60 cases) 0.005 dB 0.005 dB
Directive (EU) 2021/1226 Annex pt (19)(a), Table F-1 Rolling and propulsion coefficients, 5 categories x 4 rows x 8 bands 160 coefficients identical 0 mismatches 0 mismatches
Directive (EU) 2021/1226 Annex pt (19)(b), Table F-4 Road-surface coefficients, 15 surfaces x 5 categories x (8 alpha + beta) 675 stored coefficients identical 0 mismatches 0 mismatches
Directive (EU) 2015/996 Appendix F, Tables F-2 and F-3 Studded-tyre and junction coefficients, unchanged since 2015 36 coefficients identical 0 mismatches 0 mismatches
Directive (EU) 2015/996 Annex II 2.2.4 / 2.2.11 Sound power at v_ref = 70 km/h under reference conditions, dB re 1 pW exactly A_R,i,m and A_P,i,m 0 dB 0 dB
Directive (EU) 2021/1226 Annex pt (8)(b) Octave-band A-weighting AWC_f,i prescribed by 2.5.5, dB 8 values identical 0 mismatches 0 mismatches
Wind-turbine noise (IEC 61400-11): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
IEC 61400-11:2012 Formula 30 Critical bandwidth about a 500 Hz tone, Hz 117.255 Hz (+/-0 Hz) 117.255 Hz 0 Hz
IEC 61400-11:2012 Formula 26 Apparent sound power level of a single band, dB re 1 pW 148.5139 dB (+/-0.0001 dB) 148.5139 dB 0 dB
IEC 61400-11:2012 Formulae 31-34 Tonal audibility of a synthetic clean tone, dB 16.38 dB (+/-0.06 dB) 16.38 dB -0.001 dB
Porous & multilayer absorbers (Mechel / Bies / Cox & D'Antonio): 100% (20/20)
Standard Quantity Expected (norm) Computed Δ Status
Bies 5e App. D Table D.1 / Mechel 2e G.11 (2) Delany-Bazley normalised Zc at X = 0.1, real part 1.3241 (+/-0) 1.3241 0
Bies 5e App. D Table D.1 / Mechel 2e G.11 (2) Delany-Bazley normalised Zc at X = 0.1, imaginary part -0.4694 (+/-0) -0.4694 0
Miki 1990 Eqs. (30)-(34) Miki normalised wavenumber at f/sigma = 0.1, real part 1.4523 (+/-0) 1.4523 0
Johnson et al. 1987 / Cox & D'Antonio 3e Eq. (6.19) JCA static viscous limit j w rho_e -> sigma, Pa s/m2 20000 Pa s/m2 (+/-0.01%) 20000 Pa s/m2 0 Pa s/m2
Mechel 2e Sect. D.3 Eq. (1) Hard-backed layer: TMM vs -j Zc cot(kd), max rel deviation 0 (+/-0) 0 0
Lossless-layer limit (Mechel 2e Sect. D.3-D.4) Air cavity over a rigid wall at lambda/4: alpha 0 (+/-0) 0 0
Mechel 2e Sect. D.5 Maximum statistical absorption of a locally reacting plane 0.951 (+/-0.001) 0.951 0
Cox & D'Antonio 3e Eq. (7.9) Membrane resonance 60/sqrt(m d), m = 5 kg/m2, d = 5 cm, Hz 120 Hz (+/-2%) 119.85 Hz -0.15 Hz
Maa 1998 Fig. 5 / Cox & D'Antonio 3e Fig. 7.28 Microperforated panel (d=t=0.2 mm, b=2.5 mm, D=6 cm): peak alpha 0.95 (+/-0.05) 0.956 0.006
Maa 1998 Eqs. (5a)/(10) MPP peak absorption vs 4r/(1+r)^2 with Maa's printed resistance 4r/(1+r)^2 = 0.949 0.956 0.007
Allard & Atalla 2e Sect. 11.3.4 (Eq. 6.90), Table 6.1 glass wool Zwikker-Kosten decoupling frequency Fd, Hz 43.27 Hz (+/-0.005 Hz) 43.271 Hz 0.001 Hz
Allard & Atalla 2e Eq. (11.55), printed p. 253 (prose limit) Limp effective density at DC = apparent total density rho_t, kg/m3 31.1809 kg/m3 (+/-0.01%) 31.1809 kg/m3 0 kg/m3
Allard & Atalla 2e Eq. (11.55), printed p. 253 (prose limit) Heavy frame recovers the rigid-frame Zc (relative deviation) 0 (+/-0.00001) 0 0
Allard & Atalla 2e printed p. 254 (Doutres et al. 2007) Limp-frame bulk-modulus limit for air, kPa 20 kPa (+/-0.3 kPa) 20.27 kPa 0.265 kPa
Allard & Atalla 2e Eq. (6.110), Table 6.1 glass wool Frame lambda/4 resonance of a 10 cm layer, Hz 459.9 Hz (+/-0.05 Hz) 459.93 Hz 0.033 Hz
Allard & Atalla 2e Sect. 6.5.4 (Biot model output), pp. 124-125 Airborne compressional branch changes root at 495 Hz 495 Hz (+/-1%) 495.9 Hz 0.9 Hz
Allard & Atalla 2e Sect. 6.5.4 (Biot model output), pp. 124-125 Frame-borne velocity ratio Re(mu_b) at 1500 Hz (see ERRATA) 0.82 (+/-2%) 0.811 -0.009
Allard & Atalla 2e Sect. 6.6.3 (Biot model output), p. 129 Surface-impedance peak of a 5,6 cm layer, Hz 860 Hz (+/-2%) 863.5 Hz 3.5 Hz
Allard & Atalla 2e Sect. 11.3.4 (rigid-frame limit) Stiff, heavy frame recovers the JCA layer (max rel deviation) 0 (+/-0.0000001) 0.0000000034 0
Allard & Atalla 2e Eq. (6.107) vs Sect. 11.5 assembly Two independent derivations of Zs (max rel deviation) 0 (+/-0.0000000001) 0 0
Slow-sound perfect absorbers (Jimenez et al. Appl. Sci. 2017): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
Jimenez et al. Appl. Sci. 2017 Eq. (9) Critical coupling: alpha at the design frequency (300 Hz, normal) 1 (+/-0.001) 1 0
Poiseuille limit (Stinson 1991) Slit: j w rho_s -> 12 eta / h^2 as w -> 0 (h = 1.2 mm) 153.3 Pa s/m2 (+/-0.1%) 153.3 Pa s/m2 0 Pa s/m2
Poiseuille limit (Stinson 1991) Square duct: j w rho -> 28.454 eta / w^2 as w -> 0 (w = 3 mm) 58.2 Pa s/m2 (+/-0.2%) 58.2 Pa s/m2 0 Pa s/m2
Program loudness (ITU-R BS.1770 / EBU R 128): 100% (8/8)
Standard Quantity Expected (norm) Computed Δ Status
ITU-R BS.1770-5 Annex 1 997 Hz sine at 0 dB FS on the left channel, LKFS -3.01 LKFS (+/-0.01 LKFS) -3.01 LKFS 0 LKFS
EBU Tech 3341:2023 Table 1 case 1 Integrated loudness of the -23 dBFS stereo sine, LUFS -23 LUFS (+/-0.1 LUFS) -22.99 LUFS 0.007 LUFS
EBU Tech 3341:2023 Table 1 case 5 Gated integrated loudness of the -26/-20/-26 dBFS steps, LUFS -23 LUFS (+/-0.1 LUFS) -22.98 LUFS 0.021 LUFS
EBU Tech 3341:2023 Table 1 case 6 Integrated loudness of the 5.0-channel sine (Table 3 weights), LUFS -23 LUFS (+/-0.1 LUFS) -23.02 LUFS -0.016 LUFS
EBU Tech 3341:2023 Table 1 case 15 True-peak level of the fs/4 sine at 0.5 FFS, dBTP -6 dBTP (+0.2/-0.4 dB) -6.02 dBTP -0.015 dBTP
EBU Tech 3341:2023 Table 1 case 19 True-peak level of the fs/4 sine at 1.41 FFS, dBTP 3 dBTP (+0.2/-0.4 dB) 3 dBTP 0.001 dBTP
EBU Tech 3342:2023 Table 1 case 1 Loudness range of the -20/-30 dBFS tone steps, LU 10 LU (+/-1 LU) 10 LU 0 LU
EBU Tech 3342:2023 Table 1 case 3 Loudness range of the -40/-20 dBFS tone steps, LU 20 LU (+/-1 LU) 20 LU 0 LU
2D FDTD wave simulation (Attenborough & Van Renterghem 2021, Ch. 4): 100% (4/4)
Standard Quantity Expected (norm) Computed Δ Status
Rigid rectangular box eigenfrequency Mode (1,1) of a 1.0 x 0.7 m rigid box, f = (c/2)*sqrt(1/lx^2 + 1/ly^2), Hz 299.06 Hz (+/-1.5 Hz) 298.91 Hz -0.153 Hz
Free-field pulse arrival delay Probe-to-probe delay of a pulse over 0.6 m of air, (r2 - r1)/c, ms 1.749 ms (+/-0.05 ms) 1.756 ms 0.007 ms
2D Kirchhoff-Helmholtz NTFF: monopole directivity Far-field pattern ripple of an enclosed line source, dB 0 dB (+/-0.2 dB) 0.044 dB 0.044 dB
2D Kirchhoff-Helmholtz NTFF: monopole level NTFF far-field level vs the 2D Green function A sqrt(2/(pi k)), dB 0 dB (+/-0.3 dB) 0.106 dB 0.106 dB
Swept-sine distortion & phase utilities (Farina / Novak): 100% (7/7)
Standard Quantity Expected (norm) Computed Δ Status
Farina 2000 / Novak et al. 2015 (Chebyshev identity) 3rd-harmonic response H3 magnitude of a cubic polynomial, re a3/4 0.05 (+/-0.0005) 0.05001 0
Novak et al. 2015, JAES 63(10), Eqs. 18/49 Synchronized-sweep phase of H3 (Chebyshev: -sin(3wt)), rad 3.1416 rad (+/-0.005 rad) 3.1411 rad 0 rad
Farina 2000, AES 108th Conv. (THD from one sweep) THD(1 kHz) of the polynomial vs sqrt((a2/2)^2+(a3/4)^2)/(1+3a3/4) 0.06149 (+/-0.001) 0.06159 0
Farina 2000 (distortion rejected from the linear IR) THD floor of a purely linear path (gain 0.5), max over 100-2000 Hz 0 (+/-0.001) 0.00033 0
Bendat & Piersol, Random Data 4e Sec. 13.1.4 (Hilbert relation) Min-phase reconstruction of a strictly min-phase biquad, max err, rad 0 rad (+/-0 rad) 0 rad 0 rad
First-order allpass closed form (1-a^2)/(1+2a cos w+a^2) Group delay of the a = 0.5 allpass at w = pi/2, samples 0.6 (+/-0.00001) 0.6 0
All-pass decomposition of a pure latency (B&P Sec. 13.1.4) Excess group delay of a biquad delayed 7.25 samples, samples 7.25 (+/-0) 7.25 0
Spherical ground & barriers (Attenborough / Salomons / Bies): 100% (7/7)
Standard Quantity Expected (norm) Computed Δ Status
Attenborough 2e Eq. (2.40c) (spherical Q, hard-ground limit) abs(Q) as Z grows large (Rp -> 1 so (1 - Rp) -> 0 and Q -> 1) 1 (+/-0.000001) 1 0
Salomons 2001 Sec. 3.4 (two-ray field over a rigid ground) dL enhancement at small path difference (constructive, +6 dB) 6.0206 dB (+/-0.1 dB) 6.0205 dB 0 dB
Salomons 2001 Eq. (D.59) (plane-wave Rp, grazing incidence) Re(Rp) at grazing (hs, hr -> 0, cos(theta) -> 0 so Rp -> -1) -1 (+/-0.001) -1 0
Salomons 2001 Fig. D.3 (grassland ground dip, sigma = 200 kPa s/m2) Minimum dL for hs = hr = 2 m, r = 100 m (dip near 395 Hz), dB -12.7 dB (+/-0.3 dB) -12.72 dB -0.022 dB
Bies 5e Eq. (5.138) (Kurze-Anderson, N -> 0) Barrier attenuation at the shadow boundary N = 0 5 dB (+/-0 dB) 5 dB 0 dB
Bies 5e Eq. (5.138) (Kurze-Anderson, large-N slope) Delta(N=10) - Delta(N=1) vs the 10 lg(10) = 10 dB decade growth 10 dB (+/-0.5 dB) 9.8845 dB -0.116 dB
Attenborough 2e Eqs. (9.19)-(9.20) (rigid half-plane, shadow boundary) Exact thin-screen insertion loss at grazing (field halved, 6 dB) 6.0206 dB (+/-0.6 dB) 5.7932 dB -0.227 dB
Panel & aperture sound insulation (Bies / Hopkins / Cremer): 100% (17/17)
Standard Quantity Expected (norm) Computed Δ Status
Bies 5e Eq. 7.40 (mass law) 6 dB per octave (500 -> 1000 Hz) 6.0206 dB (+/-0.01 dB) 6.02 dB -0.001 dB
Bies 5e Eq. 7.40 (mass law) 6 dB per doubling of mass 6.0206 dB (+/-0.01 dB) 6.02 dB -0.001 dB
Bies 5e Eq. 7.42 (field incidence) One-third-octave correction 5.5 dB 5.5 dB (+/-0.001 dB) 5.5 dB 0 dB
Hopkins Eq. 2.201 / Bies Eq. 7.3 Coincidence frequency, 6 mm glass 2079 Hz (+/-3%) 2107.3639 Hz 28.364 Hz
Cremer Table 5.1 Thin-plate point impedance Z = 8 sqrt(B' m'') 2529.8221 N.s/m (+/-0 N.s/m) 2529.8221 N.s/m 0 N.s/m
Cremer Table 5.1 Infinite-beam mobility phase -45 deg -45 deg (+/-0 deg) -45 deg 0 deg
Hopkins Eq. 2.229 (Leppington/Maidanik) Radiation efficiency at f = 2 fc 1.4142 (+/-0) 1.4142 0
Bies Eq. 7.62 / Hopkins Eq. 4.73 Mass-air-mass resonance f0, empty cavity 76.9484 Hz (+/-0.5%) 76.8521 Hz -0.096 Hz
Bies Eq. 7.64 (double wall) Below f0 = mass law of the combined mass 11.6144 dB (+/-0 dB) 11.6144 dB 0 dB
Hopkins Eq. 4.92 (composite) 1 % open area caps R at 10 lg(S/Sa) 20 dB (+/-0.05 dB) 19.9996 dB 0 dB
Vigran Building Acoustics Eq. (3.109), printed p. 96 Flat 1 mm steel plate 1 m x 1 m, f(1,1) 4.9 Hz (+/-0.05 Hz) 4.93 Hz 0.033 Hz
Vigran Eqs. (3.113)/(3.115), printed p. 96 Corrugated 1 mm steel plate (H = 10 mm, L = 100 mm), f(2,2) 102 Hz (+/-0.1 Hz) 102.09 Hz 0.092 Hz
Bies 5e Eq. (7.59) / Vigran Eq. (6.112) Heckl coincidence-branch constant, dB (rho c = 414) -13.2 dB (+/-0.02 dB) -13.217 dB -0.017 dB
Bies 5e Eq. (7.60) / Vigran Eq. (6.112) Heckl recovery-branch constant, dB (rho c = 414) -23 dB (+/-0.2 dB) -23.16 dB -0.16 dB
Vigran Eq. (6.111) / Bies Eq. (7.38) Orthotropic diffuse integral below fc1 vs its exact mass-law form 6.287723 dB (+/-0.000001 dB) 6.287723 dB 0 dB
Hopkins Table A2, printed p. 608 h.fc products of 25 building-material rows, worst deviation 0 m.Hz (+/-0.06 m.Hz) 0.0476 m.Hz 0.048 m.Hz
Hopkins Eq. 4.99/4.101 (Gomperts slit) Transmission maximum at first resonance 1544.9615 Hz (+/-15 Hz) 1542.9615 Hz -2 Hz
Bending-wave plate-junction transmission (Cremer / Craik / Hopkins): 100% (6/6)
Standard Quantity Expected (norm) Computed Δ Status
Hopkins Eq. 5.12 (identical plates) X-junction corner tau12(0 deg) = 1/8 0.125 (+/-0) 0.125 0
Hopkins Eqs 5.12 + 5.6 (identical plates) X-junction corner angular average = 1/12 0.0833 (+/-0) 0.0833 0
Hopkins Eqs 5.12 + 5.6 (identical plates) L-junction corner angular average = 1/3 0.3333 (+/-0) 0.3333 0
Hopkins Eq. 5.14 (identical plates) In-line junction tau12(0 deg) = 1 1 (+/-0) 1 0
Hopkins Eq. 5.7 (SEA consistency) X-junction reciprocity tau_bar_12 / tau_bar_21 = chi 1.5 (+/-0) 1.5 0
Hopkins Eq. 5.116 (identical plates, fc_j = f_ref) X-junction vibration reduction index = 10 lg(12) 10.7918 dB (+/-0 dB) 10.7918 dB 0 dB
Atmospheric refraction (Salomons rays / GFPE): 100% (3/3)
Standard Quantity Expected (norm) Computed Δ Status
Salomons Sec. 4.4 (ray turning height, linear profile) Turning height of a 10 deg ray vs Rc(1 - cos theta0) (circular arc), m 26.457 m (+/-0.1 m) 26.457 m 0 m
Salomons Eq. (3.4) (GFPE vs spherical-wave ground effect, homogeneous) PE relative level at 500 m over grassland vs Weyl-Van der Pol, dB -16.368 dB (+/-0.5 dB) -16.402 dB -0.035 dB
Salomons Eq. (3.4) (GFPE hard ground vs two-ray, homogeneous) PE relative level at 500 m over a rigid ground vs the coherent two-ray, dB 5.997 dB (+/-0.6 dB) 5.593 dB -0.405 dB
Electroacoustics: 100% (9/9)
Standard Quantity Expected (norm) Computed Δ Status
Beranek & Mellow 2e Eq. (13.117) Piston resistance R1(x) = 1 - 2 J1(x)/x at x = 2ka = 2 0.423275 (+/-0.00001) 0.423275 0
Beranek & Mellow 2e Eq. (13.118) Piston reactance X1(x) = 2 H1(x)/x at x = 2ka = 2 0.646764 (+/-0.00001) 0.646764 0
Beranek & Mellow 2e Eq. (13.117) (low-frequency limit) R1 -> (ka)^2/2 as ka -> 0 (x = 0.02, ka = 0.01) 0.00005 (+/-0.01%) 0.00005 0
Beranek & Mellow 2e Eq. (4.151) Radiation mass M = 8 rho a^3 / 3 (a = 0.1 m, rho = 1.206) 0.003216 kg (+/-0 kg) 0.003216 kg 0 kg
Beranek & Mellow 2e Eq. (13.102), Table 14.1 First directivity null at ka sin(theta) = 3.8317 (first zero of J1) 0 (+/-0.000001) 0 0
Beranek & Mellow 2e §4.19 (half-space baffle) Directivity index DI -> 10 lg 2 = 3.01 dB as ka -> 0 3.0103 dB (+/-0.001 dB) 3.0103 dB 0 dB
Long, Architectural Acoustics 2e, Eq. (18.21) Omnidirectional mic at Zs = -6 dB: L(H-M) <= L(H-L) - 4 dB 76 dB (+/-0 dB) 76 dB 0 dB
Long, Architectural Acoustics 2e, Eq. (18.22) Cardioid mic (DM = -2 dB) at Zs = -6 dB: L(H-M) <= L(H-L) - 2 dB 78 dB (+/-0 dB) 78 dB 0 dB
Long, Architectural Acoustics 2e, Eq. (18.23) Number-of-open-microphones correction 10 lg Nm at Nm = 4 6.0206 dB (+/-0 dB) 6.0206 dB 0 dB
Industrial noise control: 100% (22/22)
Standard Quantity Expected (norm) Computed Δ Status
Bies 5e Eq. (8.111) Expansion-chamber peak TL = 10 lg[1 + (1/4)(m - 1/m)^2], m = 4 at kL = pi/2 6.5472 dB (+/-0 dB) 6.5472 dB 0 dB
Bies 5e Eq. (8.111) Expansion-chamber trough TL = 0 at kL = pi (chamber transparent) 0 dB (+/-0 dB) 0 dB 0 dB
Bies 5e Eq. (8.44) / Example 8.1 Quarter-wave tube tuning f = c/(4 l_e), l_e = 1.516 m -> 56.6 Hz 56.6 Hz (+/-0.1 Hz) 56.6 Hz 0.003 Hz
Bies 5e Eq. (8.46) Helmholtz resonance f0 = (c/2pi) sqrt(S/(l_e V)) (S=1e-4, l_e=0.02, V=1e-3) 122.067 Hz (+/-0 Hz) 122.067 Hz 0 Hz
Bies 5e Eq. (8.73) Side-branch TL = 20 lg abs(1 + rho c/(2 Sd Zb)) (QWT branch, closed form) 0.1638 dB (+/-0 dB) 0.1638 dB 0 dB
Bies 5e Eqs. (8.141)/(8.148) (four-pole insertion loss) Insertion loss = transmission loss for the anechoic reference Zs=Zr=rho c/S 6.2498 dB (= TL) 6.2498 dB 0 dB
Bies 5e Eq. (8.275) (Wells' plenum method) Plenum TL = -10 lg[S_out(cos0/pi r^2 + (1-a)/(Sw a))] (S_out=.1,r=1,Sw=20,a=.2) 12.8541 dB (+/-0 dB) 12.8541 dB 0 dB
Bies 5e Table 8.14 (ASHRAE end reflection, flush) Duct end reflection D = 200 mm at 125 Hz = 10 dB (table node) 10 dB (+/-0 dB) 10 dB 0 dB
Long 2e Eq. 13.1 with Table 13.5 (ASHRAE 1987 fan model) Forward-curved fan at Q_REF, P_REF, peak efficiency -> K_F + C_BFI at 500 Hz 38 dB (+/-0 dB) 38 dB 0 dB
Long 2e Eq. 14.12 with Table 14.2 (Reynolds lined rectangular duct) 18 x 12 in duct, 6 ft, 1 in lining at 1 kHz -> 1.77 (10/3)^0.695 6 dB 24.5203 dB (+/-0 dB) 24.5203 dB 0 dB
Long 2e Table 14.4 (ASHRAE 1995 lined flexible duct) 8 in diameter, 9 ft long -> 6/8/16/25/28/28/18 dB (table node) 0 dB (max |diff| over the 7 bands) 0 dB 0 dB
Long 2e Eq. 14.17 (branch power division) 25 per cent split with area-matched branches -> -10 lg 0.25 = 6.02 dB 6.0206 dB (+/-0 dB) 6.0206 dB 0 dB
Long 2e Table 14.9 (worked duct-borne sheet, supply path) Fan to room, 8 octave bands -> 52/42/30/18/9/-2/-2/-1 dB at the receiver 0 dB +/-1 (max |diff| over the 8 bands) 1 dB 1 dB
Long 2e Eqs. 13.27-13.33 (Reynolds diffuser self-noise) 24 x 24 in rectangular diffuser, 312 cfm, 0.05 in pd -> the 33/32/29/23/15 dB row of Table 14.9 0 dB +/-1 (max |diff| over the five bands) 0.8853 dB 0.885 dB
ASHRAE 2019 Applications Ch. 49 Table 9 Max neck velocity of a supply outlet for design RC(30) -> 2.2 m/s 2.2 m/s (+/-0 m/s) 2.2 m/s 0 m/s
Norton & Karczub 2e Eqs. 7.6/7.8/7.9 (problem 7.1 answer) 254 mm duct, steam, 200 m/s: (1,0) cut-on 812 Hz and k_x = -8.23 1/m 0 +/-1 (Hz, and 1/m x100) 0.591 0.591
Norton & Karczub 2e Eq. 7.10 (problem 7.2 answer) 0.65 x 0.4 m duct, 15 m/s: first three cut-on 264 / 428 / 503 Hz 0 Hz (max |diff| over the 3 modes) 0 Hz 0 Hz
Bies 5e Eqs. (7.103), (7.111) (enclosure, fully absorbing limit) Enclosure correction C -> 10 lg 0.3 = -5.23 dB as alpha_i -> 1 -5.2288 dB (+/-0.001 dB) -5.2288 dB 0 dB
Norton & Karczub 2e Eq. (4.101) (problem 4.21 answer) Double brick wall into an 8 x 9 x 3 m room -> NR 37.5/40.8/49.0/62.8/65.3/65.9 dB 0 dB +/-0.05 (max |diff| over the 6 bands) 0.0308 dB 0.031 dB
Norton & Karczub 2e 4.6/4.9 (problem 4.18 answer) Blower in a plant room to the operator room -> 72.3/60.4/41.4/41.0/33.8/30.7 dB 0 dB +/-0.1 (max |diff| over the 6 bands) 0.0682 dB 0.068 dB
Norton & Karczub 2e Eq. (4.115) (problem 4.16 answer) Lined compressor enclosure against NC-45 -> required TL 14.4/25.2/28.9/34.4/35.2/34.7/34.7/31.6 dB 0 dB +/-0.15 (max |diff| over the 8 bands) 0.1099 dB 0.11 dB
Norton & Karczub 2e Table 4.5 (constant-volume source power) Source in the intersection of two flat surfaces (Q = 4) -> +10 lg 4 = 6.02 dB 6.0206 dB (+/-0 dB) 6.0206 dB 0 dB
CNOSSOS-EU railway source (Directive 2002/49/EC Annex II): 100% (8/8)
Standard Quantity Expected (norm) Computed Δ Status
CIRCABC CNOSSOS-EU railway emission test set Line power of the 123 committed cases of the published test set, both source heights, 8 octave bands each, dB re 1 pW/m <= 0.01 dB on 984 published band levels (123 cases) 0.0055 dB 0.005 dB
Appendix G Tables G-1a and G-1b (roughness) Wheel roughness by brake type (3 x 32) and rail roughness by class (2 x 35), dB 166 coefficients identical 0 mismatches 0 mismatches
Directive (EU) 2021/1226 Annex pt (20)(b), Table G-2 Contact filter A3 for 5 wheel load and diameter combinations x 35 wavelengths, dB 175 coefficients identical 0 mismatches 0 mismatches
Appendix G Table G-3 (transfer functions) Track transfer (8 x 24), wheel transfer (4 x 24) and superstructure transfer (24), dB per axle 312 coefficients identical 0 mismatches 0 mismatches
Appendix G Tables G-4 to G-7 Impact roughness (35), traction (5 x 2 x 24), aerodynamic (2 x 24) and bridge (2 x 24), dB 371 coefficients identical 0 mismatches 0 mismatches
Annex II 2.3.2, formula (2.3.15) Horizontal dipole directivity along the track: 10 lg(0,01) at phi = 0 -20 dB (+/-0 dB) -20 dB 0 dB
Annex II 2.3.2, formulae (2.3.13) and (2.3.14) Aerodynamic speed law at v0 = 300 km/h reduces to Table G-6 verbatim 50 lg 2 = 15.051 dB on every band 0 dB 0 dB
Annex II 2.3.2, formula (2.3.12) Impact roughness at the tabulated joint density n_l = 0,01 per m Table G-4 verbatim 0 dB 0 dB

Tests & coverage — 48204 tests, 0 failures (✅ all green)
Python Version Tests Failures Coverage Status
macos-latest-3.13 8034 0 97.0% ✅ Passed
macos-latest-3.14 8034 0 97.0% ✅ Passed
ubuntu-latest-3.13 8034 0 97.0% ✅ Passed
ubuntu-latest-3.14 8034 0 97.0% ✅ Passed
windows-latest-3.13 8034 0 97.0% ✅ Passed
windows-latest-3.14 8034 0 97.0% ✅ Passed

Conformance harness: scripts/conformance_report.py · full CI artifacts

@sonarqubecloud

sonarqubecloud Bot commented Aug 5, 2026

Copy link
Copy Markdown

@bito-code-review

Copy link
Copy Markdown

You've reached the fair usage limit for the Bito Code Review Agent trial. Upgrade to a paid plan or contact support@bito.in for assistance. Learn more

@jmrplens
jmrplens merged commit 9897563 into main Aug 5, 2026
35 checks passed
@jmrplens
jmrplens deleted the site-details branch August 5, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api Public API surface, naming and deprecations area: aircraft Aircraft and rotorcraft noise area: building Sound insulation and building acoustics area: core Shared internals and cross-cutting code every domain depends on area: electroacoustics Transducers, arrays and electroacoustic devices area: emission Sound power and source emission area: environment Outdoor propagation, environmental sources and noise assessment area: filters Octave filter banks, weightings and instrument class verification area: hearing Audiometric thresholds, hearing loss and noise exposure area: materials Absorption, impedance and material properties area: metrology Calibration, uncertainty and measurement quality area: psychoacoustics Loudness, sharpness, roughness and annoyance area: room Room acoustics and reverberation area: signals Levels, spectra, generators and general signal analysis area: simulation FDTD and other numerical solvers area: speech Speech intelligibility: STI, SII and STOI area: vibration Human vibration and structure-borne sound ci Workflows, linting and developer tooling conformance Standard clause coverage, reference values or errata documentation Improvements or additions to documentation figures Generated plots, diagrams and animations i18n English and Spanish translations reports Accredited-format .report() fiches and their rendering site Documentation website validation Reference data and oracles used to check results against normative values

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant