Skip to content

Commit fc55c34

Browse files
alexarjeclaude
andcommitted
Release 1.4.7: CUDA detection fix, GPU flow, pose caching & C3D export
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent e2ec0c7 commit fc55c34

2 files changed

Lines changed: 34 additions & 2 deletions

File tree

CHANGELOG.md

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

1010
---
1111

12+
## [1.4.7] – 2026-06-27
13+
14+
### Fixed
15+
- **GPU detection**: `_utils.py` never imported `cv2`, so `get_cuda_device_count()` and
16+
`cuda_build_available()` always reported no CUDA — GPU was never used even with a
17+
CUDA-enabled OpenCV. Now fixed: `pose(device='gpu')` (OpenPose), `flow.dense(use_gpu=True)`,
18+
and `flow.sparse(use_gpu=True)` use the GPU on a CUDA build.
19+
- GPU sparse optical flow: corrected point shapes (1×N CV_32FC2) and `calc()` return
20+
handling so the CUDA path works (it was never exercised before the detection fix).
21+
- `MgList.show(key='mgx'/'vgx'/…)` on motiongrams/videograms results no longer crashes —
22+
it selects the matching panel.
23+
- CI on macOS/Windows: skip `.ogg` conversion tests when the FFmpeg build lacks libtheora;
24+
force the Matplotlib Agg backend in tests (no more Windows `_tkinter` crash).
25+
- Audio cache: methods inherited by `MgVideo` (e.g. `video.spectrogram()`) no longer fail
26+
on a missing `_y_cache` attribute.
27+
28+
### Added
29+
- `pose(use_cache=True)`: reuse cached keypoints to re-render a different
30+
`style`/`overlay`/`background` without re-running inference.
31+
- `pose(data_format='c3d')`: export markers to a C3D motion-capture file (optional `c3d` dep).
32+
- `tempogram(onset_strength=False)`: single-panel tempogram matching the chromagram size.
33+
- `beat_statistics(source='motion')` on `MgVideo`: rhythmic-timing statistics from movement onsets.
34+
35+
### Changed
36+
- Average-pose image: labels show numbers only (normalised QoM 0–1 | dominant frequency Hz),
37+
with stronger de-overlap; QoM reported normalised instead of px/frame.
38+
- `motiontempo()`: QoM normalised to 0–1, panel renamed to "Motion spectrum", with average
39+
quantity-of-motion and average beat-frequency lines + numbers.
40+
41+
---
42+
1243
## [1.4.6] – 2026-06-27
1344

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

223254
---
224255

225-
[Unreleased]: https://github.com/fourMs/MGT-python/compare/v1.4.6...HEAD
256+
[Unreleased]: https://github.com/fourMs/MGT-python/compare/v1.4.7...HEAD
257+
[1.4.7]: https://github.com/fourMs/MGT-python/compare/v1.4.6...v1.4.7
226258
[1.4.6]: https://github.com/fourMs/MGT-python/compare/v1.4.5...v1.4.6
227259
[1.4.5]: https://github.com/fourMs/MGT-python/compare/v1.4.4...v1.4.5
228260
[1.4.4]: https://github.com/fourMs/MGT-python/compare/v1.4.3...v1.4.4

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.6"
7+
version = "1.4.7"
88
description = "Musical Gestures Toolbox for Python"
99
readme = "README.md"
1010
license = {text = "GPL-3.0-or-later"}

0 commit comments

Comments
 (0)