Skip to content

Commit cf80213

Browse files
alexarjeclaude
andcommitted
Release 1.4.6: space-time visualisations, combined SSM, orientation fix
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent ff3835a commit cf80213

3 files changed

Lines changed: 28 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
---
1111

12+
## [1.4.6] – 2026-06-27
13+
14+
### Added
15+
- Space-time person visualisations (`musicalgestures/_spacetime.py`): `stroboscope()`
16+
(chronophotography), `silhouette_waterfall()`, `motionhistory()` (Motion History Image),
17+
and `spacetime_volume()` (3D x,y,t silhouette point cloud). Silhouettes use MediaPipe
18+
selfie segmentation when available, falling back to background subtraction
19+
(`method='auto'|'mediapipe'|'bgsub'`).
20+
- `ssm(features='motiongrams', combine=True)` — a single self-similarity matrix from the
21+
concatenated horizontal + vertical motiongram features (both axes of motion in one display).
22+
- `pose()` `style` now also applies to the average-pose image (markers/skeleton/both).
23+
24+
### Changed
25+
- `pose()`: the no-CUDA fallback now uses the MediaPipe CPU (XNNPACK) delegate (fast, reliable)
26+
rather than the fragile OpenGL-ES GPU delegate. New `quiet=True` suppresses MediaPipe's native
27+
C++/GL console logs; explicit `device='gpu'` prints a one-line caveat.
28+
29+
### Fixed
30+
- **Orientation**: portrait/phone videos that store a rotation flag are now normalised at load
31+
(the rotation is baked into the pixels and the flag removed), so cv2-based processes no longer
32+
come out rotated 90°. All processes keep the original orientation.
33+
34+
---
35+
1236
## [1.4.5] – 2026-06-26
1337

1438
### Added
@@ -198,7 +222,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
198222

199223
---
200224

201-
[Unreleased]: https://github.com/fourMs/MGT-python/compare/v1.4.5...HEAD
225+
[Unreleased]: https://github.com/fourMs/MGT-python/compare/v1.4.6...HEAD
226+
[1.4.6]: https://github.com/fourMs/MGT-python/compare/v1.4.5...v1.4.6
202227
[1.4.5]: https://github.com/fourMs/MGT-python/compare/v1.4.4...v1.4.5
203228
[1.4.4]: https://github.com/fourMs/MGT-python/compare/v1.4.3...v1.4.4
204229
[1.4.3]: https://github.com/fourMs/MGT-python/compare/v1.4.2...v1.4.3

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ v.pose(model='mediapipe').show()
8282
- **Pose Estimation**: MediaPipe (GPU-capable) and OpenPose backends, with average-pose and trajectory summaries (per-marker quantity of motion + dominant frequency)
8383
- **Audio Processing**: Waveforms, spectrograms, MFCC, chromagrams, tempo/beat tracking, spectral descriptors
8484
- **Visualizations**: Motiongrams, videograms, motion history, heatmaps, sonomotiongrams (motion → sound)
85+
- **Space-time displays**: Stroboscope (chronophotography), silhouette waterfall, Motion History Image, 3D space-time volume, combined motion SSM
8586
- **Integration**: Works with NumPy, SciPy, librosa, and Matplotlib ecosystems
8687
- **Cross-platform**: Linux, macOS, Windows support
8788

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "musicalgestures"
7-
version = "1.4.5"
7+
version = "1.4.6"
88
description = "Musical Gestures Toolbox for Python"
99
readme = "README.md"
1010
license = {text = "GPL-3.0-or-later"}

0 commit comments

Comments
 (0)