QuartersToMeasureNumber

QuartersToMeasureNumber(
    boundaries,
    mns,
    source_unit=TimeUnit.quarters,
    uid=None,
    name=None,
)

Map quarters to measure number labels (no interpolation).

Given a quarter position, returns the MN label (e.g., “1”, “19a”, “0”) of the measure containing that position.

This is NOT a coordinate conversion map - it returns string labels, not numeric coordinates. Therefore target_unit is None.

MN labels are strings because they may contain suffixes (e.g., “19a”, “19b” for split bars, or “0” for anacrusis).

Examples

>>> cmap = QuartersToMeasureNumber(
...     boundaries=[0, 4, 8, 12],
...     mns=["1", "2", "3", "4"],
... )
>>> cmap(0.0)    # Start of M1
'1'
>>> cmap(3.5)    # Still in M1 (assuming 4 quarters/measure)
'1'
>>> cmap(4.0)    # Start of M2
'2'
>>> # From MetricMap
>>> cmap = QuartersToMeasureNumber.from_metric_map(meter)

Attributes

Name Description
mns The measure number labels.

Methods

Name Description
from_dict Deserialize from dictionary.
from_measure_data Create from MeasureData (loaded from TSV/JSON).
from_metric_map Create from a MetricMap.
to_dict Serialize to dictionary.
to_floating_measures Convert string MN labels to floating-point measure map.

from_dict

QuartersToMeasureNumber.from_dict(data)

Deserialize from dictionary.

from_measure_data

QuartersToMeasureNumber.from_measure_data(measures)

Create from MeasureData (loaded from TSV/JSON).

Parameters

Name Type Description Default
measures MeasureData MeasureData with measure events. required

Returns

Name Type Description
QuartersToMeasureNumber QuartersToMeasureNumber map.

from_metric_map

QuartersToMeasureNumber.from_metric_map(meter)

Create from a MetricMap.

Parameters

Name Type Description Default
meter MetricMap MetricMap with measure boundary information. required

Returns

Name Type Description
QuartersToMeasureNumber QuartersToMeasureNumber map.

to_dict

QuartersToMeasureNumber.to_dict()

Serialize to dictionary.

to_floating_measures

QuartersToMeasureNumber.to_floating_measures()

Convert string MN labels to floating-point measure map.

Non-numeric suffixes (e.g., “a” in “19a”) are stripped with a warning.

Returns

Name Type Description
QuartersToFloatingMeasures QuartersToFloatingMeasures map with interpolation.

Raises

Name Type Description
ValueError If any MN label cannot be parsed to a number.