QuartersToFloatingMeasures

QuartersToFloatingMeasures(
    x_values,
    y_values,
    source_unit=TimeUnit.quarters,
    target_unit=TimeUnit.floating_measures,
    uid=None,
    name=None,
)

Map quarters to measure coordinates (with linear interpolation).

Returns continuous measure coordinates where: - 1.0 = start of measure 1 - 1.5 = halfway through measure 1 - 2.0 = start of measure 2

This IS a coordinate conversion map: it converts from quarters to measures (TimeUnit.measures).

This is useful for visualization (e.g., piano roll x-axis in measures) and for interpolating positions within measures.

Examples

>>> cmap = QuartersToFloatingMeasures(
...     x_values=[0, 4, 8, 12],
...     y_values=[1.0, 2.0, 3.0, 4.0],
... )
>>> cmap(0.0)    # Start of M1
1.0
>>> cmap(2.0)    # Halfway through M1 (4 quarters/measure)
1.5
>>> cmap(4.0)    # Start of M2
2.0
>>> # From MetricMap
>>> cmap = QuartersToFloatingMeasures.from_metric_map(meter)

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.
inverse Return the inverse map (measures -> quarters).
to_dict Serialize to dictionary.
to_measure_number_map Convert to non-interpolating measure number map.

from_dict

QuartersToFloatingMeasures.from_dict(data)

Deserialize from dictionary.

from_measure_data

QuartersToFloatingMeasures.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
QuartersToFloatingMeasures QuartersToFloatingMeasures map.

from_metric_map

QuartersToFloatingMeasures.from_metric_map(meter)

Create from a MetricMap.

Uses MN integers (or MC if MN not available) as measure numbers. Adds a final extrapolation point for the end of the last measure.

Parameters

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

Returns

Name Type Description
QuartersToFloatingMeasures QuartersToFloatingMeasures map.

inverse

QuartersToFloatingMeasures.inverse()

Return the inverse map (measures -> quarters).

Returns

Name Type Description
TableMap A TableMap converting measures to quarters.

Raises

Name Type Description
NotImplementedError If not invertible (should not happen for this map).

to_dict

QuartersToFloatingMeasures.to_dict()

Serialize to dictionary.

to_measure_number_map

QuartersToFloatingMeasures.to_measure_number_map(mns=None)

Convert to non-interpolating measure number map.

Parameters

Name Type Description Default
mns Sequence[str] | None MN labels to use. If None, uses floor(y_value) as string. None

Returns

Name Type Description
QuartersToMeasureNumber QuartersToMeasureNumber with the same boundaries.