Hold the reading and measurement chain to values other people published (#578)
* Version real measurement audio with published values as oracle data
Five licence-verified third-party sources under tests/data/audio/, each
redistributable and each carrying a value its authors published: the NTi
XL2 calibration take and five pass-by excerpts of the Antwerp campaign
(CC BY 4.0), a Sound Devices 702T BWF from the wavinfo project (MIT), a
genuine RF64 from EBU libbw64 (Apache-2.0), the omnidirectional channel
of a St. Nicholas Chapel impulse response (CC BY 4.0), and the 2015
five-minute LAeq series of two Dublin City Council monitors (CC BY 4.0).
The folder README states per file the source, the licence, the required
attribution and the published values, and marks what was changed (cuts,
repackaging) versus what is byte-identical.
* Hold the reading and measurement chain to values other people published
One oracle module per source: the XL2 calibration take must land on its
published 113.7 dB through the bext-declared full scale; the five
pass-by excerpts must reproduce the campaign's LA,eq, LA,max, L10
within 0.3 dB and its median loudness N50 within 5 percent; the Sound
Devices bext and the EBU RF64 are transcription oracles for the chunk
parser, asserted by exact equality; the chapel impulse response must
agree with the deposit's ISO 3382-1 parameter table within the
standard's own just noticeable differences; and the Dublin monitoring
year must average to the annual report's night-time values before
feeding lden, ldn and composite_rating_level. Each module states its
source, the transcribed published row and why each tolerance is what
it is; L90 and the pass-by level rise stay unasserted because they pin
a windowing convention rather than a measurement.
* Close the calibration chain in the io guide on a real meter's file
The guide derived the sensitivity from a synthesized calibrator take;
the new worked example reads the repository's committed NTi XL2
calibration recording, takes the full scale the instrument itself
declared in its bext chunk, and lands on the 113.7 dB the dataset
publishes, with no hand-typed sensitivity anywhere. Both language
mirrors carry the example and the llms dumps are regenerated.
* State the audio oracle folder's real size in the data index
* Record the committed audio oracles in the changelog
* Date the retrievals in the audio oracle README
* Let the calibration example stand alone when copied
The worked example opens with its own imports, which promises the block is
self-contained, and then leans on names two earlier blocks brought in. On
the page it runs; pasted alone it raises NameError on the first real line.
The two missing imports join the block's own, in all three mirrors, and the
llms copies follow. Verified by running the block exactly as a reader would
paste it: Leq = 113.7 dB.
How often a distant blast is how loud: the ISO 13474 distribution of its sound exposure level (#868)
* How often a distant blast is how loud: the ISO 13474 distribution of its sound exposure level
environment.sel_distribution turns the levels of a set of replica atmospheres and their probabilities into the statistical distribution of ISO 13474:2009 clause 5: the ordered classes with their boundaries and densities, the subclasses, the Gaussian spread for turbulence shifted by Equation (22) so that each subclass keeps its energy, the probability of exceeding a level and the level exceeded by any percentage of the events, and both long-term levels of Annex A. long_term_sel gives Equations (7) and (8), with the rating adjustment K; frequency_weighted_sel the weighted level of Equation (5); replica_probabilities the joint probability of Equation (14); turbulence_level_shift the shift in closed form. SelDistribution.plot draws the class density, the spread density or the exceedance curve.
Equal levels keep their own classes, as Annex A keeps its pairs at 30,8 dB and 31,8 dB; only a run that would leave a class of no width is combined. Table A.4 is reproduced digit for digit from Table A.3 in the tests.
* Annex A of ISO 13474 is checked against the page, and two of its numbers are errata
Eight conformance rows start from Table A.3: the 81 levels and boundaries, the 27 probabilities and the 27 densities of Table A.4 to the printed digit, LT1 and LT2 of Figure A.3, the median level, the shift of Equation (22) against the printed integral evaluated by quadrature, and all five exceedance levels of Figure A.3.
Two things in the annex do not follow from its own equations and are in the errata register, in English and Spanish. The running text gives the shift as 1,04 dB with a standard deviation of 5 dB, where Equation (22) gives 2,878 dB; 1,04 dB is its value at 3 dB, and LT2 and Figure A.2 were computed with 2,878 dB. And four of the five exceedance levels of Figure A.3 are not the roots of Equation (25): they are reproduced to the printed digit by a curve accumulated from the 15 dB its axis starts at, which is how the row that holds them reads the figure.
* A guide to how often a distant blast is how loud, in English and Spanish
The new page under Assessment and regulation runs the TOW launcher of ISO 13474 Annex A from its band levels to its exceedance curve: the weighted level of a replica atmosphere, the long-term and rating levels, the classes of Table A.4, the spread for turbulence and why it is shifted, and the five exceedance levels of Figure A.3, with the two figures the result's own .plot() draws. It is registered in the sidebar, the guides index (now 139 guides) and the section overview in both languages, with its GitHub mirror, and the CHANGELOG says what arrived.
* The long-term line in the ISO 13474 figures says it is LT2
Figure A.3 prints two long-term levels, LT1 from Equation (7) and LT2
from the spread distribution, and both read 37,0 dB. The dashed line of
the density and exceedance views is LT2, and its legend now names it:
"LT2 (long-term level) 37.0 dB", "LT2 (nivel a largo plazo) 37,0 dB".
* The environment overview lists the ISO 13474 guide
The overview of the environment topic named every guide of its sections
except the new one. It now lists "Impulsive Sound Exposure Statistics
(ISO 13474)" under assessment in English and Spanish, names ISO 13474 in
its description and in the paragraph on the assessment pages, and the
docs mirror and the environment llms file carry the same text.
* Figure A.3's printed percentiles of ISO 13474 are a hypothesis, not a conformance row
Four of the five exceedance levels printed on Figure A.3 are not the roots
of Equation (25). A curve accumulated from 15 dB, where the drawn curve
begins at exactly 1, reproduces all five only when it is fed the rounded
07:00 to 19:00 column of Table A.3; with the full-precision probabilities
that reproduce Table A.4 it gives 48,05 dB for L1, which prints 48,1. The
row that pinned the five levels on that reading is gone (1288 checks), the
50 % level stays a row, and the errata entry, the guides, the reference
data and the tests present the reading as a hypothesis with both numbers.
The LT2 row now integrates the library's spread density weighted by
10^(0,1 x) instead of reading the closed form off the result, so the sign
and size of the shift reach the number it checks.
A third Annex A entry goes to the errata register: the paragraph above
Table A.3 credits the level of each excess-attenuation class to Equations
(7) and (8), the long-term averages, where Equations (4) and (5) give it.
The register and the headers describe BS ISO 13474:2009 as the UK
implementation of the standard, which is what its national foreword says,
the equal-levels note no longer puts an "only" in the standard's mouth,
and the quoted shift is written with the Greek mu the page prints.
The tests hold the peak of Figure A.2 to what the printed curve resolves,
every published array of SelDistribution as read-only, and the probability
tolerance on both sides: a set 2 % from one is refused, a table rounded to
four decimals is accepted.
* Regenerate the derived pages on top of the ISO 11819-1 merge, and count the new guide as the 140th
* Refresh the llms files with the conformance count of the merged branch
Every verdict reads its pass and fail flags, grades and classes from the values it holds (#949)
A result no longer stores a verdict beside the readings it came from. Sixty-two result classes used to keep the flag, grade or class their function had worked out (`passes`, `complies`, `qualified`, the `*_met` and `*_ok` flags, the advisories, the per-band classes of the IEC 61260-1, IEC 61672-1 and IEC 61043 verdicts, the ISO 9614-2 grade, the ISO/PAS 1996-3 category, the IEC TS 61400-11-2 block status and the rest), so a result built by hand or rewritten with `dataclasses.replace` could hold readings that fail and a flag that says they pass. Each of them is now a read-only property, read from the values the result keeps and the limit the standard prints, and so is any figure that only fed it, such as the rounded level of an RD 1367/2007 period or the acceptance region of a trend test.
Make a refusal test pin the refusal it is named for (2 of 3) (#638)
* Make a refusal test pin the refusal it is named for (2 of 3)
* Give the three absolute-zero guards the tests they never had
Correcting a comma decimal in seven error messages dropped new-code coverage
to 57.1 percent, and the arithmetic says what the gate was pointing at: four
of the seven guards were already exercised and three were not, and four over
seven is that number exactly.
The three are refused now through their public entry points, and each was
shown to pin its guard by deleting the guard in a scratch tree and watching
the test fail. What the unguarded code returns for a temperature below
absolute zero is worth recording: an air density of minus thirteen kilograms
per cubic metre, a speed of sound of NaN out of a square root of a negative
number, and a sound power level of NaN out of a logarithm of a negative
ratio. None of the three refused anything on its own.
None of the tests pins the number. -273.15 and 0.5 are the library's, and
pinning the very value that was just corrected would be the defect this
branch exists to close, wearing the other face.
A fourth test is here that moves no coverage at all. The Poisson ratio guard
was already reached, but only ever from above: the existing test probes 0.5
and nothing had tried the other half of -1 < nu < 0.5. Both bounds turn out
to be closed, and below the lower one the unguarded frame modulus is exactly
zero, which divides.
Every verdict reads its pass and fail flags, grades and classes from the values it holds (#949)
A result no longer stores a verdict beside the readings it came from. Sixty-two result classes used to keep the flag, grade or class their function had worked out (`passes`, `complies`, `qualified`, the `*_met` and `*_ok` flags, the advisories, the per-band classes of the IEC 61260-1, IEC 61672-1 and IEC 61043 verdicts, the ISO 9614-2 grade, the ISO/PAS 1996-3 category, the IEC TS 61400-11-2 block status and the rest), so a result built by hand or rewritten with `dataclasses.replace` could hold readings that fail and a flag that says they pass. Each of them is now a read-only property, read from the values the result keeps and the limit the standard prints, and so is any figure that only fed it, such as the rounded level of an RD 1367/2007 period or the acceptance region of a trend test.
emission/workstation core (#716)
* Compute the emission sound pressure level, which only got declared
emission.declaration has been able to declare L_pA since the ISO 4871 work
and nothing produced it. Five standards do, and they differ only in how
they get rid of the room, so what they share is transcribed once:
L_p = L'_p - K_1 - K_3, printed as Equation (7) in ISO 11201, (10) in
ISO 11202 and (9) in ISO 11204; the background correction with this
group's own thresholds; the piecewise local environmental correction of
ISO 11202 Eq. (A.5) and ISO 11204 Eqs. (A.2)/(A.5); the two routes to the
ratio it is a function of; and the uncertainty pair.
The two routes are one quantity and the library says so rather than
carrying the expression twice: ISO 11204 A.1.2 states they rest on the
same assumptions, and under the ISO 3744 definition of K_2 they are
identically equal. A conformance row holds them to it.
Six rows against ISO 11200:2014 Annex B, which prints every intermediate.
An errata alongside: the two case studies of that annex compute sigma_omc
two different ways under the same label. Equation (C.1) prints the sample
standard deviation; Table B.3 agrees and Table B.1 divides by N. It is not
cosmetic, since Table B.1's own expanded uncertainty would be 2,5 dB
rather than the 2,4 it prints. The library follows the equation.
environment.expanded_uncertainty becomes environmental_expanded_uncertainty.
Three packages define this quantity over their own coverage factors and two
of them already said in the name what it is the uncertainty of; the one
holding the unqualified spelling was the reason the other two had to be
qualified. The building one was renamed the same way earlier, and the
removed-names test carries all three now.
* Teach the emission section what the operator is exposed to
A guide for the ISO 11200 group, in both editions, with the mirror GitHub
serves: the one law the three measuring parts print, the background
correction and where a determination stops being one, the piecewise room
correction and the single ratio it comes down to, the three gates that
decide the grade, and Annex B's second case study worked end to end
through the library.
The figure carries the two halves that matter. On the left the correction
against the ratio, with the 4 dB boundary drawn and the region beyond it
shaded, so the reader can see that the 7 dB cap is the curve's own value
and not a rule bolted on. On the right the worked example as the
subtraction it is: the reading, the 3,7 dB the room accounts for, and the
73,2 dB left.
The section index, the guide index and the sidebar carry it in both
languages; the guide count goes to 116.
Analyse a soundscape study by ISO/TS 12913: the questionnaire and its statistics, pleasantness and eventfulness, and the metrics at both ears (#875)
* Analyse a soundscape study by ISO/TS 12913-3: questionnaire, pleasantness and eventfulness, and the two ears
environment.pleasantness_eventfulness turns the eight perceived affective quality answers of ISO/TS 12913-2 Figure C.4 into the pleasantness and eventfulness of Formulas (A.1) and (A.2) of ISO/TS 12913-3:2019, per respondent and per site, raw in plus or minus (4 + sqrt(32)) and normalised to plus or minus 1, and its .plot() draws the two-dimensional model of Figure A.1 with every site on it. The site point is the formulas applied to the site medians, the central tendency A.2 prescribes; the mean is offered as well.
The questionnaire itself is published read-only: the four parts of Method A (Figures C.2 to C.6) and the four continuous scales of Method B (Figure C.7), every question, item and response category as printed, with the scale values of Tables A.1 and B.1. method_a_scale_values turns ticked boxes into those values, so parts 2 and 3 run 5 to 1; method_a_summary gives the median and range per site and item; method_b_scale_values, method_b_summary and method_b_source_ranking give the one-decimal scale value of a mark, the mean, standard deviation and 95 % confidence interval per site, and the median and range of each source's rank.
spearman_rank_correlation applies Formula (A.3) without ties and (A.4) with them, pearson_correlation Formulas (B.1) and (B.2), each with the probability value A.4 and B.3 ask for.
binaural_indicators computes every metric of Table D.1 at each ear of a calibrated two-channel recording with the library's own implementations (the levels, ISO 532-1 loudness, and the ECMA-418-2 tonality, roughness and fluctuation strength), with the higher ear as the representative value of D.2, their mean, and the N5/N95 variability ratio. The sharpness row is reported as not implemented, with the reason, because the library's DIN 45692 sharpness is stationary. Recordings shorter than the 3 min of ISO/TS 12913-2 D.3 or sampled below its 44,1 kHz raise a SoundscapeWarning.
SoundscapeReport is the minimum reporting record of ISO/TS 12913-2 Annex A, which refuses to be built with a required item missing and names its clause.
This implements the 2019 edition of ISO/TS 12913-3; a 2025 edition exists that revises Annex A. The tests anchor the formulas in closed form and check them against scipy and against a small derived subset of the International Soundscape Database (CC BY 4.0).
* ISO/TS 12913 is checked in closed form, four slips of its pages are errata, and two figures show a study
Fourteen conformance rows hold the soundscape analysis to what ISO/TS 12913-3:2019 and ISO/TS 12913-2:2018 print or imply, since neither prints a worked example: the 20 scale values of Table A.1 through method_a_scale_values; equal answers at the origin of Figure A.1; the extremes at the printed 9,66, and at plus or minus 1 once normalised; each attribute raised alone moving along its own arrow of the figure; Formula (A.3) against Pearson's coefficient of the ranks; Formula (A.4) and its probability value against scipy.stats.spearmanr on 93 real, heavily tied answers; Formulas (B.1) and (B.2) against scipy.stats.pearsonr; the Method B interval against scipy.stats.t.interval; the 24 cells of Table D.1; the higher ear as the representative level of D.2; the 33 printed strings of the Annex C questionnaire; and the root mean cubed loudness of A.3 f) on the library's own ISO 532-1 trace.
Four things on the pages are in the errata register, in English and Spanish. ISO/TS 12913-3 A.3 says Formulas (A.1) and (A.2) process "the results from part 3", where the perceived affective quality they read is part 2 everywhere else; Formula (A.3) prints a stray factor 1 before its fraction; ISO/TS 12913-2 C.3.2.3 speaks of three continuous scales where Figure C.7 prints four; and the questionnaire of Figures C.2 to C.4 reads "to what extend" and "reponse alternative".
Two figures are drawn by the results' own .plot(): eleven London sites of the International Soundscape Database (CC BY 4.0) on the model of Figure A.1 beside the rank correlation of their pleasantness with their level, and the levels and loudness of Table D.1 at both ears of a street recording. The model names each site in a legend below the axes, since the sites of one study sit too close together to be labelled beside their points; the binaural bars draw no vertical grid through their pairs and write the level symbols with an italic T.
* A respondent is drawn in the colour of their site, and the soundscape docstrings say what the code does
plot(respondents=True) promised each respondent in the colour of their site and drew every one of them in the same grey; each site's respondents are now a faint series of that site's hue, with a test that holds the dots to their site. The renderer no longer says its sites are labelled points (they are named in a legend), the Figure A.1 grid is drawn at the house alpha so it reads on the dark page, and the Spanish figure calls the vertical axis eventualidad, as the guide does.
The docstrings are tightened where they said more or less than the code: the Student probability value is exact for bivariate normal data, the p-value is described for one-sided alternatives too, a Method B scale runs to "very often" as well as "extremely", the binaural input check names its rank instead of silencing the linter, and English prose and messages write 44.1 kHz, 9.66 and 0.95 with a decimal point, keeping the comma only where the standard is quoted.
* Soundscape analysis gets its guide in both languages, and every index that lists guides lists it
The guide walks a study from the ISO/TS 12913-2 questionnaire to the Annex A report: the scale values and site medians, pleasantness and eventfulness on Figure A.1 for eleven London sites of the International Soundscape Database, the Spearman and Pearson correlations with their probability values, the Method B statistics, the binaural metrics of Table D.1 at both ears and what is not implemented. It is registered in the topic tree, the guides map (141 guides, in figures and in words), the documentation index, and the environment and assessment overviews in both languages, with their mirrors, llms.txt and the API reference regenerated. The CHANGELOG entry describes the whole addition.
* The soundscape model keeps its legend and labels on the page, its results keep their own data, and three more slips of ISO/TS 12913 are errata
PleasantnessEventfulness.plot() on a figure of its own now draws a square
figure laid out so the site legend and the title stay on the canvas, and the
attribute names past the arrow tips no longer run into the frame. The Method A
title breaks onto two lines, the Method B title puts the confidence level
where Spanish puts it, and the correlation plot names Spearman's coefficient
r_spearman, as Formulas (A.3) and (A.4) print it.
A correlation keeps a copy of x and y, and method_a_scale_values returns a new
array for parts 1 and 4, so a later change to the caller's arrays can no
longer rewrite a result. The N5 method string cites ISO 532-1:2017 term 3.21
and clause 6.4, the clause that asks for N5.
The where-list of Formula (A.4), which garbles the tie counts, the x_I of
(B.2), and the NOTE of ISO/TS 12913-2 A.3 f), whose text says "the exponent 3"
over a cube root, are registered in both errata files, and the page of
C.3.1.3 is corrected. The conformance domain title says that the 2019 edition
is checked and that the 2025 edition revises Annex A.
The docstrings and both guides say that the mean site point is the mean of
the respondents' points only when no attribute was left blank, give the
Pearson probability value as exact for bivariate normal data, quote Part 2
as printed, and show the code that draws the published figures. New tests
check what every soundscape plot draws, the 3 min and 44.1 kHz thresholds of
ISO/TS 12913-2 D.3 and D.6, the site description a recorded study owes, and
that results never share memory with their inputs.
* Eventfulness reads as actividad in Spanish, as the attributes around it already do
* The generated pages follow the layers below
* The guides index counts the soundscape guide, the Figure A.1 renderer reads as three steps, and the Table D.1 symbols are named once
Analyse a soundscape study by ISO/TS 12913: the questionnaire and its statistics, pleasantness and eventfulness, and the metrics at both ears (#875)
* Analyse a soundscape study by ISO/TS 12913-3: questionnaire, pleasantness and eventfulness, and the two ears
environment.pleasantness_eventfulness turns the eight perceived affective quality answers of ISO/TS 12913-2 Figure C.4 into the pleasantness and eventfulness of Formulas (A.1) and (A.2) of ISO/TS 12913-3:2019, per respondent and per site, raw in plus or minus (4 + sqrt(32)) and normalised to plus or minus 1, and its .plot() draws the two-dimensional model of Figure A.1 with every site on it. The site point is the formulas applied to the site medians, the central tendency A.2 prescribes; the mean is offered as well.
The questionnaire itself is published read-only: the four parts of Method A (Figures C.2 to C.6) and the four continuous scales of Method B (Figure C.7), every question, item and response category as printed, with the scale values of Tables A.1 and B.1. method_a_scale_values turns ticked boxes into those values, so parts 2 and 3 run 5 to 1; method_a_summary gives the median and range per site and item; method_b_scale_values, method_b_summary and method_b_source_ranking give the one-decimal scale value of a mark, the mean, standard deviation and 95 % confidence interval per site, and the median and range of each source's rank.
spearman_rank_correlation applies Formula (A.3) without ties and (A.4) with them, pearson_correlation Formulas (B.1) and (B.2), each with the probability value A.4 and B.3 ask for.
binaural_indicators computes every metric of Table D.1 at each ear of a calibrated two-channel recording with the library's own implementations (the levels, ISO 532-1 loudness, and the ECMA-418-2 tonality, roughness and fluctuation strength), with the higher ear as the representative value of D.2, their mean, and the N5/N95 variability ratio. The sharpness row is reported as not implemented, with the reason, because the library's DIN 45692 sharpness is stationary. Recordings shorter than the 3 min of ISO/TS 12913-2 D.3 or sampled below its 44,1 kHz raise a SoundscapeWarning.
SoundscapeReport is the minimum reporting record of ISO/TS 12913-2 Annex A, which refuses to be built with a required item missing and names its clause.
This implements the 2019 edition of ISO/TS 12913-3; a 2025 edition exists that revises Annex A. The tests anchor the formulas in closed form and check them against scipy and against a small derived subset of the International Soundscape Database (CC BY 4.0).
* ISO/TS 12913 is checked in closed form, four slips of its pages are errata, and two figures show a study
Fourteen conformance rows hold the soundscape analysis to what ISO/TS 12913-3:2019 and ISO/TS 12913-2:2018 print or imply, since neither prints a worked example: the 20 scale values of Table A.1 through method_a_scale_values; equal answers at the origin of Figure A.1; the extremes at the printed 9,66, and at plus or minus 1 once normalised; each attribute raised alone moving along its own arrow of the figure; Formula (A.3) against Pearson's coefficient of the ranks; Formula (A.4) and its probability value against scipy.stats.spearmanr on 93 real, heavily tied answers; Formulas (B.1) and (B.2) against scipy.stats.pearsonr; the Method B interval against scipy.stats.t.interval; the 24 cells of Table D.1; the higher ear as the representative level of D.2; the 33 printed strings of the Annex C questionnaire; and the root mean cubed loudness of A.3 f) on the library's own ISO 532-1 trace.
Four things on the pages are in the errata register, in English and Spanish. ISO/TS 12913-3 A.3 says Formulas (A.1) and (A.2) process "the results from part 3", where the perceived affective quality they read is part 2 everywhere else; Formula (A.3) prints a stray factor 1 before its fraction; ISO/TS 12913-2 C.3.2.3 speaks of three continuous scales where Figure C.7 prints four; and the questionnaire of Figures C.2 to C.4 reads "to what extend" and "reponse alternative".
Two figures are drawn by the results' own .plot(): eleven London sites of the International Soundscape Database (CC BY 4.0) on the model of Figure A.1 beside the rank correlation of their pleasantness with their level, and the levels and loudness of Table D.1 at both ears of a street recording. The model names each site in a legend below the axes, since the sites of one study sit too close together to be labelled beside their points; the binaural bars draw no vertical grid through their pairs and write the level symbols with an italic T.
* A respondent is drawn in the colour of their site, and the soundscape docstrings say what the code does
plot(respondents=True) promised each respondent in the colour of their site and drew every one of them in the same grey; each site's respondents are now a faint series of that site's hue, with a test that holds the dots to their site. The renderer no longer says its sites are labelled points (they are named in a legend), the Figure A.1 grid is drawn at the house alpha so it reads on the dark page, and the Spanish figure calls the vertical axis eventualidad, as the guide does.
The docstrings are tightened where they said more or less than the code: the Student probability value is exact for bivariate normal data, the p-value is described for one-sided alternatives too, a Method B scale runs to "very often" as well as "extremely", the binaural input check names its rank instead of silencing the linter, and English prose and messages write 44.1 kHz, 9.66 and 0.95 with a decimal point, keeping the comma only where the standard is quoted.
* Soundscape analysis gets its guide in both languages, and every index that lists guides lists it
The guide walks a study from the ISO/TS 12913-2 questionnaire to the Annex A report: the scale values and site medians, pleasantness and eventfulness on Figure A.1 for eleven London sites of the International Soundscape Database, the Spearman and Pearson correlations with their probability values, the Method B statistics, the binaural metrics of Table D.1 at both ears and what is not implemented. It is registered in the topic tree, the guides map (141 guides, in figures and in words), the documentation index, and the environment and assessment overviews in both languages, with their mirrors, llms.txt and the API reference regenerated. The CHANGELOG entry describes the whole addition.
* The soundscape model keeps its legend and labels on the page, its results keep their own data, and three more slips of ISO/TS 12913 are errata
PleasantnessEventfulness.plot() on a figure of its own now draws a square
figure laid out so the site legend and the title stay on the canvas, and the
attribute names past the arrow tips no longer run into the frame. The Method A
title breaks onto two lines, the Method B title puts the confidence level
where Spanish puts it, and the correlation plot names Spearman's coefficient
r_spearman, as Formulas (A.3) and (A.4) print it.
A correlation keeps a copy of x and y, and method_a_scale_values returns a new
array for parts 1 and 4, so a later change to the caller's arrays can no
longer rewrite a result. The N5 method string cites ISO 532-1:2017 term 3.21
and clause 6.4, the clause that asks for N5.
The where-list of Formula (A.4), which garbles the tie counts, the x_I of
(B.2), and the NOTE of ISO/TS 12913-2 A.3 f), whose text says "the exponent 3"
over a cube root, are registered in both errata files, and the page of
C.3.1.3 is corrected. The conformance domain title says that the 2019 edition
is checked and that the 2025 edition revises Annex A.
The docstrings and both guides say that the mean site point is the mean of
the respondents' points only when no attribute was left blank, give the
Pearson probability value as exact for bivariate normal data, quote Part 2
as printed, and show the code that draws the published figures. New tests
check what every soundscape plot draws, the 3 min and 44.1 kHz thresholds of
ISO/TS 12913-2 D.3 and D.6, the site description a recorded study owes, and
that results never share memory with their inputs.
* Eventfulness reads as actividad in Spanish, as the attributes around it already do
* The generated pages follow the layers below
* The guides index counts the soundscape guide, the Figure A.1 renderer reads as three steps, and the Table D.1 symbols are named once
Every verdict reads its pass and fail flags, grades and classes from the values it holds (#949)
A result no longer stores a verdict beside the readings it came from. Sixty-two result classes used to keep the flag, grade or class their function had worked out (`passes`, `complies`, `qualified`, the `*_met` and `*_ok` flags, the advisories, the per-band classes of the IEC 61260-1, IEC 61672-1 and IEC 61043 verdicts, the ISO 9614-2 grade, the ISO/PAS 1996-3 category, the IEC TS 61400-11-2 block status and the rest), so a result built by hand or rewritten with `dataclasses.replace` could hold readings that fail and a flag that says they pass. Each of them is now a read-only property, read from the values the result keeps and the limit the standard prints, and so is any figure that only fed it, such as the rounded level of an RD 1367/2007 period or the acceptance region of a trend test.
Every verdict reads its pass and fail flags, grades and classes from the values it holds (#949)
A result no longer stores a verdict beside the readings it came from. Sixty-two result classes used to keep the flag, grade or class their function had worked out (`passes`, `complies`, `qualified`, the `*_met` and `*_ok` flags, the advisories, the per-band classes of the IEC 61260-1, IEC 61672-1 and IEC 61043 verdicts, the ISO 9614-2 grade, the ISO/PAS 1996-3 category, the IEC TS 61400-11-2 block status and the rest), so a result built by hand or rewritten with `dataclasses.replace` could hold readings that fail and a flag that says they pass. Each of them is now a read-only property, read from the values the result keeps and the limit the standard prints, and so is any figure that only fed it, such as the rounded level of an RD 1367/2007 period or the acceptance region of a trend test.
Wind turbine sound at a dwelling by IEC TS 61400-11-2, with its amplitude modulation rating checked against the IOA reference code (#903)
IEC 61400-11 measures what a turbine emits; IEC TS 61400-11-2:2024 measures what arrives at a neighbour's house, where the wind that drives the turbine also stirs the background. Two new modules in phonometry.environment move wind speeds between heights, bin the intervals by wind speed and direction with their uncertainty, take off the background under the 3 dB rule, predict the low frequency level indoors, give the emergence, the upper tone search frequency and the rating level, and rate the amplitude modulation of clause 13, checked against the IOA working group's reference code. Every result has .plot(), a new guide in both languages walks through a dwelling, and nine printed defects of the TS are in the errata register.