Skip to content

Releases: MitchellAcoustics/Soundscapy

v0.8.5

Choose a tag to compare

@github-actions github-actions released this 12 May 22:49

What's Changed

Full Changelog: v0.8.4...v0.8.5

v0.8.4

Choose a tag to compare

@github-actions github-actions released this 11 May 00:07

What's Changed

Full Changelog: v0.8.3...v0.8.4

v0.8.3

Choose a tag to compare

@github-actions github-actions released this 10 May 16:19

Full Changelog: v0.8.2...v0.8.3

v0.8.2

Choose a tag to compare

@github-actions github-actions released this 10 May 16:10

The long-overdue stable release

The last user-facing stable release of Soundscapy on PyPI was v0.7.8.
Since then the project has been on an extended pre-release cycle —
v0.8.0rc1 through v0.8.0rc10 and on into v0.8.2.dev1 — without ever
publishing a non-prerelease tag. v0.8.2 consolidates eighteen months of
that work into a single shipping release.

If you are upgrading from 0.7.x, please read the
migration guide before installing. Most users will
need to make small code changes.

Breaking changes you should know about first

  • Plotting: CircumplexPlotISOPlot. The CircumplexPlot class has
    been replaced by the new ISOPlot API, which uses a layered architecture
    for combining plot types and integrates SPI visualisation. The function-style
    helpers scatter_plot() and density_plot() still work and have been
    re-implemented on the new backend, so most casual users won't need to change
    anything. If you were customising CircumplexPlot directly, the migration
    guide has before/after snippets.
  • Plotly backend removed. Only the seaborn backend is supported now.
    Removing plotly makes installation lighter and removes a dependency that
    was rarely used. If you need static graphics, matplotlib export from the
    seaborn backend is the recommended path.
  • R-backed features install path changed. Use
    pip install "soundscapy[r]" for SPI / SATP features. Only the sn R
    package is required externally — CircE is now bundled with Soundscapy.
  • fit_circe() now raises by default when input data fails schema
    validation. Pass errors="warn" if you want the older permissive behaviour.
  • Pydantic ParamModels removed in favour of plain dataclasses for
    plotting parameters.

The new ISOPlot API

The biggest change for everyday users is the ISOPlot rewrite. ISOPlot is built
around a layered plotting model — start from a base, then add scatter, density,
SPI, or jointplot layers. It also has first-class subplot support for
comparing soundscapes across conditions, and integrates the new SPI score
display directly into the visualisation.

The function-style entry points (scatter_plot, density_plot) remain the
quickest way to make a single plot, while ISOPlot itself is the way to build
multi-layer or multi-panel figures. The migration guide and the "Advanced
Visualization Techniques" tutorial in the docs walk through both.

New: SATP and SPI modules

v0.8.2 introduces two new R-backed analysis modules:

  • SATP (Soundscape Attributes Translation Project): structural equation
    modelling for circumplex validation. The primary entry point is
    fit_circe(data, language, datasource), which validates, ipsatizes, and
    fits all four circumplex model types in one call, returning a typed
    CircEResults container.
  • SPI (Soundscape Perception Indices): tools for calculating Soundscape
    Perception Indices using the Multi-dimensional Skewed Normal distribution,
    with score calculation and ISOPlot visualisation integration.

Both modules use an embedded CircE R runtime, so you no longer need to
install the CircE package from GitHub yourself. The only external R
dependency is sn.

Slim install + better IDE support

import soundscapy no longer pulls in audio, R, or any other optional
dependencies. The package now follows
Scientific Python SPEC 1 (lazy loading),
which means submodules are deferred until first access. PEP 561 type stubs
(__init__.pyi) ship with the package so from soundscapy.audio import Binaural resolves correctly in mypy, pyright, and IDE autocomplete.

If you forget an extras install, you'll get a clear, actionable error message
pointing you at exactly what to install.

Note for contributors

Project tooling has shifted: environment management is now driven by
pixi, with uv retained for build, version, and PyPI
publish. See pixi.toml for the new task layout (pixi run lint,
pixi run tests, pixi run docs-serve, etc.). Documentation has migrated
from mkdocs to zensical. If you contribute, the
CONTRIBUTING guide has the updated workflow.

Full migration guide

For copy-pasteable before/after snippets and a complete list of removed APIs,
see Upgrading from 0.7.

What's Changed

Full Changelog: v0.7.8...v0.8.2

v0.8.0rc10

v0.8.0rc10 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Mar 14:23

Full Changelog: v0.8.0rc9...v0.8.0rc10

v0.8.0rc9

Choose a tag to compare

@github-actions github-actions released this 07 Mar 15:53
782edff

What's Changed

Full Changelog: v0.8.0rc8...v0.8.0rc9

v0.8.0rc8

Choose a tag to compare

@github-actions github-actions released this 01 Mar 17:28
6fa45e6

What's Changed

Full Changelog: v0.8.0rc6...v0.8.0rc8

v0.8.0rc6

Choose a tag to compare

@github-actions github-actions released this 01 Mar 00:13
d6f5e34

What's Changed

Full Changelog: v0.8.0rc5...v0.8.0rc6

v0.8.0rc5

Choose a tag to compare

@github-actions github-actions released this 15 May 15:11

Full Changelog: v0.8.0rc4...v0.8.0rc5

v0.8.0rc4

Choose a tag to compare

@github-actions github-actions released this 15 May 14:54

Full Changelog: v0.8.0rc3...v0.8.0rc4