Skip to content

Commit c03fbab

Browse files
alexarjeclaude
andauthored
1.8.0 — group QoM returns a different number, and the old one was confounded (#364)
`group_qom`, `pose_qom` and `normalized_qom` are re-exported from `micromotion`, which released 1.0.0 today. They averaged over every marker at every frame while the underlying `band_limited_qom` interpolates gaps, so an occluded marker contributed a near-zero speed and still counted in the divisor. The result tracked how much the cameras saw rather than how much the body moved: 16 to 17 per cent low on a realistic dropout pattern, with the speed series correlating up to +0.70 with the per-frame count of visible markers. The new default, `normalize="visible"`, excludes each marker at the frames where that marker was absent. Pass `normalize="worn"` to reproduce a figure published with an earlier release, and say which you used. Clean pose data with no dropouts is unaffected; occluded mocap is affected most. The `micromotion` floor is now `>=1.0.0`. That is a correctness floor rather than a documentation one: below it the re-exported function returns the confounded number. All 545 tests pass against micromotion 1.0.0 unchanged, which also means none of them covered the behaviour that changed. Claude-Session: https://claude.ai/code/session_01Qx7SWwc4XGYgXNNKrcNAgP Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent 01ac394 commit c03fbab

3 files changed

Lines changed: 34 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.8.0] — 2026-08-05
11+
12+
### Changed
13+
- **`group_qom`, `pose_qom` and `normalized_qom` return different numbers.** They are re-exported
14+
from `micromotion`, which released 1.0.0 today, and the change is a correctness fix rather than a
15+
refinement. They averaged over every marker at every frame while the underlying
16+
`band_limited_qom` interpolates gaps, so an occluded marker contributed a near-zero speed and
17+
still counted in the divisor. The result tracked how much the cameras saw rather than how much
18+
the body moved: 16 to 17 per cent low on a realistic dropout pattern, with the speed series
19+
correlating up to +0.70 with the per-frame count of visible markers.
20+
21+
The new default, `normalize="visible"`, excludes each marker at the frames where that marker was
22+
absent, and lands within 0.8 per cent of the unoccluded value. Pass `normalize="worn"` to
23+
reproduce a figure published with an earlier release, and say which you used. Pose data from a
24+
clean, well-lit recording with no dropouts is unaffected; occluded mocap is affected most.
25+
26+
- The `micromotion` floor is `>=1.0.0`, which is a correctness floor rather than a documentation
27+
one: below it the re-exported function returns the confounded number.
28+
1029
## [1.7.1] — 2026-08-05
1130

1231
### Fixed

docs/releases.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Release Notes
22

3-
The current stable release is **MGT-python 1.7.1**.
3+
The current stable release is **MGT-python 1.8.0**.
44

55
Install or upgrade from PyPI:
66

@@ -16,6 +16,15 @@ which is the single source of truth for release notes.
1616

1717
## Recent highlights
1818

19+
### 1.8.0
20+
21+
- **Quantity of motion over a group of markers returns a different number, and the old one was
22+
confounded.** `group_qom`, `pose_qom` and `normalized_qom` come from `micromotion`, which
23+
released 1.0.0 today. They used to average over every marker at every frame while gaps were
24+
interpolated, so an occluded marker contributed almost no speed and still counted in the divisor,
25+
and the result tracked camera coverage rather than movement. The new default excludes a marker at
26+
the frames where it was absent. Pass `normalize="worn"` to reproduce an older figure.
27+
1928
### 1.7.1
2029

2130
- **The published API pages described a band the package no longer uses.** They showed

pyproject.toml

Lines changed: 5 additions & 4 deletions
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.7.1"
7+
version = "1.8.0"
88
description = "Musical Gestures Toolbox for Python"
99
readme = "README.md"
1010
license = {text = "GPL-3.0-or-later"}
@@ -25,9 +25,10 @@ classifiers = [
2525
]
2626
dependencies = [
2727
# >=0.3 was wrong twice over: no such release exists on PyPI below 0.6, and the functions
28-
# this package re-exports arrived much later. 0.15.2 is the floor that makes the
29-
# committed API pages true, since they are generated from that package's docstrings.
30-
"micromotion>=0.15.2",
28+
# this package re-exports arrived much later. The floor is now 1.0.0, where `group_qom`
29+
# stopped counting markers it could not see. Below that the re-exported function returns a
30+
# different, confounded number, so this is a correctness floor and not only a docs one.
31+
"micromotion>=1.0.0",
3132
"numpy",
3233
"pandas",
3334
"matplotlib",

0 commit comments

Comments
 (0)