at main
3 folders
7 files
docs(site): migrate every guide to typed references, accessible media components and prose-aligned figures (#224)
* docs(site): migrate signal-analysis and level guides to typed references
Levels, time weighting, frequency weighting, calibration, block
processing, spectral analysis, filter banks, multichannel, correlation
and GUM uncertainty (EN and ES) move their manual References and
Standards sections into the typed frontmatter bibliography with
verified catalogue links. Time weighting becomes MDX and embeds its
needle animation through the Video component. Media placement fixes
from the audit: the levels tonal-adjustment figure joins its
explanatory paragraph (and a residual duplicated code block goes
away), the time-weighting video and figure follow the Fast/Slow/
Impulse bullets, calibration's flow diagram follows its intro
paragraph and block-processing's diagram and figure each join their
own paragraph, applied in the GitHub docs and both site languages.
* feat(site): theme-aware figure component and first migration wave
ThemeImage.astro renders the light/dark figure pair from the light
variant URL and a single alt text, deriving the _dark twin and keeping
the exact markup the theme switch and the responsive width tiers key
on, with native lazy-loading (the page hero opts into eager). The
signal-analysis guides, the pilots, getting started and why-phonometry
(EN and ES, 130 figure pairs) migrate their hand-written pairs to it,
becoming MDX where needed.
* docs(site): migrate psychoacoustics and hearing guides to typed references
Sound quality, hearing threshold, noise-induced hearing loss,
occupational exposure, speech intelligibility, speech transmission,
tone audibility, tone prominence, impulse prominence and programme
loudness (EN and ES) move their manual References and Standards
sections into the typed frontmatter bibliography with verified
catalogue links, become MDX and migrate their figure pairs to
ThemeImage. Impulse prominence embeds the onset-detection animation
through the Video component. Media placement fixes from the audit,
applied in the GitHub docs and both site languages: the STIPA chain
diagram joins the direct-method snippet it draws (with a new intro
sentence), the onset-detection clip moves next to the 10 dB/s onset
criterion and the KI(P) figure joins the paragraph that reads it, the
NIPTS/HTLAN panel joins its worked example and the occupational Annex D
figure follows the welder snippet.
* docs(site): migrate building-acoustics insulation guides to typed references
Laboratory and field insulation, insulation prediction (EN 12354),
enclosed-space absorption, dynamic and transfer stiffness, mechanical
mobility and structure-borne power (EN and ES) move their manual
References and Standards sections into the typed frontmatter
bibliography with verified catalogue links, become MDX and migrate
their figure pairs to ThemeImage. Insulation prediction embeds the
flanking-paths animation through the Video component. Media placement
fixes from the audit, applied in the GitHub docs and both site
languages: the flanking video joins its junction paragraph and the
facade figure regains its code block, the delta-L and Kij figures join
their explanatory paragraphs, the airborne rig diagram and the
uncertainty rating figure join theirs, and the mobility test-bench
diagram follows its description.
* docs(site): migrate rooms and materials guides to typed references
Installed structure-borne sources, vibration sound power,
reverberation prediction, room acoustics, room noise, acoustic
materials, porous absorbers and FDTD simulation (EN and ES) move their
manual References and Standards sections into the typed frontmatter
bibliography with verified catalogue links, become MDX, migrate their
figure pairs to ThemeImage and embed their animations (sweep
deconvolution, comb filtering, Schroeder decay, standing-wave tube and
room modes) through the Video component. Media placement fixes from
the audit, applied in the GitHub docs and both site languages: the
comb-filter clip joins the correlated-positions bullet, the open-plan
decay figure joins its metrics snippet, the impedance-tube diagram
follows its transmission-loss equation, the ISO 12999-2 uncertainty
figure regains its code block and the FDTD barrier field moves to the
geometry section it illustrates.
* docs(site): migrate environment and transport guides to typed references
Outdoor propagation, sound power, intensity, wind-turbine noise,
rotorcraft noise, electroacoustics, human vibration and multiple-shock
vibration (EN and ES) move their manual References and Standards
sections into the typed frontmatter bibliography with verified
catalogue links; together with the aircraft-noise pilot they become
MDX, migrate their figure pairs to ThemeImage and embed their
animations (ground effect, barrier diffraction, two rooms with one
sound power, intensity scanning and instantaneous intensity) through
the Video component. Media placement fixes from the audit, applied in
the GitHub docs and both site languages: the two-rooms clip opens the
sound-power story and the p-p probe diagram joins the intensity
paragraph, the phasor clip gets its own introduction, the SAE
absorption, NPD and SEL-contour figures join their explaining
paragraphs, and the wind-turbine tonality and rotorcraft ground-effect
figures join theirs.
* docs(site): migrate underwater guides to typed references
Underwater acoustics metrics and underwater propagation (EN and ES)
move their manual References and Standards sections into the typed
frontmatter bibliography (the propagation page carries its sixteen
JASA-heavy citations with bare DOIs), become MDX, migrate their figure
pairs to ThemeImage and embed the SOFAR-ducting animation through the
Video component. Media placement fixes from the audit, applied in the
GitHub docs and both site languages: the metrics page reunites each
figure with its code block, and the propagation page unwinds its
inverted layout by moving all seven figures below the prose,
formulas or snippets that explain them.
* docs(site): migrate theory pages to typed references
The five theory chapters (signal analysis, perception, rooms and
buildings, environment and transport, vibration; EN and ES) move
their manual References sections into the typed frontmatter
bibliography, reusing the verified catalogue links of the guides for
the works they share.
* docs(site): finish the reference migration and widen the accessibility gate
Surface scattering joins the typed bibliography (its in-situ ISO 13472
parts and the ISO 9613-1 coefficient gain verified catalogue entries,
and the outdoor-propagation pointer moves to See also). The pa11y gate
gains six representative migrated pages across both languages, and the
changelog records the completed migration.
* docs: reunite the loudness specific-loudness media with their prose
Second review pass. The loudness guide's triple media stack unwinds in
the GitHub docs and both site languages: the specific-loudness
animation gains an introductory sentence and the pattern figure moves
after the usage snippet, next to its code block. The Spanish
electroacoustics entry adopts the UIT-R acronym the programme-loudness
guide already uses.
* docs(site): review fixes to Spanish reference notes
docs: restructure into docs/, slim PyPI-safe README, bilingual Starlight site with theme-aware figures (#61)
* docs: split README content into docs/ topic pages
11 topic pages under docs/ (guides + reference), including the new
levels/spectrogram documentation and a Why PyOctaveBand page distilled
from the issue #38 IEC 61672-1 compliance analysis.
Claude-Session: https://claude.ai/code/session_013kkVt3nxi9svp1an28uHxf
* docs: add auto-generated figures for levels/spectrogram/zero-phase docs
Four new generate_* functions (spectrogram example, LN levels over the
Fast envelope, zero-phase group-delay comparison, A-weighting HF accuracy),
a 'make graphs' target, and a CONTRIBUTING section formalizing that every
docs image must come from generate_graphs.py.
Claude-Session: https://claude.ai/code/session_013kkVt3nxi9svp1an28uHxf
* docs: slim README to hook + quick start with absolute links (PyPI-safe)
The README is the PyPI landing page and PyPI does not resolve relative
links, so every link (docs pages, website, CONTRIBUTING, LICENSE) is now
absolute. The Documentation section sits right after installation with a
per-page table. Full content lives in docs/ and on the website.
Claude-Session: https://claude.ai/code/session_013kkVt3nxi9svp1an28uHxf
* docs(site): scaffold Astro/Starlight with en/es i18n, KaTeX, and English content
Starlight site under site/ with base /PyOctaveBand for GitHub Pages,
locale-aware sidebar, KaTeX math rendering, and the 11 English pages
ported from docs/ (links rewritten to site routes, GitHub alerts
converted to Starlight asides).
Claude-Session: https://claude.ai/code/session_013kkVt3nxi9svp1an28uHxf
* docs: generate all figures in light and dark themes
generate_graphs.py now renders every figure twice (light + _dark suffix)
via a theme switch (dark_background style, foreground color swap).
- docs/ (GitHub): <picture> with prefers-color-scheme sources.
- site/ (Starlight): dual img.light-only/.dark-only following the theme
toggle via [data-theme] CSS.
- README keeps plain light images (PyPI sanitizes <picture>).
Claude-Session: https://claude.ai/code/session_013kkVt3nxi9svp1an28uHxf
* docs(site): add complete Spanish translation
Full natural translation of all 12 pages (landing, getting started,
7 guides, 3 reference pages) with theme-aware images and es/ routes.
Claude-Session: https://claude.ai/code/session_013kkVt3nxi9svp1an28uHxf
* ci: deploy Starlight docs site to GitHub Pages
Claude-Session: https://claude.ai/code/session_013kkVt3nxi9svp1an28uHxf
* ci: bump actions to latest, dependabot cooldown 0, refresh all dependencies
- Workflows: checkout v7; docs.yml to setup-node v6, pnpm/action-setup v6,
upload-pages-artifact v5, deploy-pages v5 (pnpm stays 11.x).
- Dependabot: cooldown 0 days on all ecosystems, stop ignoring pip
minor/patch updates (grouped), add npm ecosystem for site/.
- Python deps to latest: scipy 1.18, matplotlib 3.11, numba 0.66,
mypy 2.1, ruff 0.15.20, pytest 9.1. numpy capped <2.5 in the dev/CI
environment because numba 0.66 requires it (users without the [perf]
extra are unaffected).
- Site deps to latest: astro 7.0.6, starlight 0.41.3, katex 0.17, sharp 0.35.
- Repo configured via API: homepage -> docs site URL, GitHub Pages enabled
with build_type=workflow (no manual post-merge step needed anymore).
Claude-Session: https://claude.ai/code/session_013kkVt3nxi9svp1an28uHxf
* docs: address review feedback (dependabot schema, snippets, workflow hardening)
- dependabot: remove cooldown blocks (default-days minimum is 1; no
cooldown IS the zero-delay behavior).
- docs.yml: scope pages/id-token permissions to the deploy job only and
set persist-credentials: false on checkout (third-party install scripts
run in the build job).
- Snippets: add missing numpy import, define the bank in the zero-phase
example, linspace endpoint=False (docs + site EN/ES + README).
- tsconfig: exclude node_modules and .astro explicitly.
- A-weighting +2.00 constant kept: verified numerically that
20*log10(RA(1000)) = -1.99986, so +2.00 yields 0.0001 dB at 1 kHz;
the suggested +2.06 would introduce a +0.06 dB offset.
Claude-Session: https://claude.ai/code/session_013kkVt3nxi9svp1an28uHxf