scamp_extensions.rhythm package

Subpackage containing rhythm-related extensions. These include abstractions for representing metric structures and a more flexible implementation of Clarence Barlow’s concept of indispensability.



Re-implementation and extension of Clarence Barlow’s concept of rhythmic indispensability such that it works for additive meters (even nested additive meters).


Contains the MetricStructure class, which provides a highly flexible representation of metric hierarchy.

Public-Facing API (result of import *):

barlow_style_indispensability_array(…[, …])

Alternate implementation of get_standard_indispensability_array(), leveraging the MetricStructure class to do the calculations.


Generates an array of indispensability values for a meter and subdivision, as expressed by a meter arithmetic expression.

indispensability_array_from_strata(…[, …])

Alternate implementation of get_indispensability_array(), leveraging the MetricStructure class to do the calculations.

MeterArithmeticGroup(elements, int]], operation)

This class exists as an aid to parsing arithmetic expressions into MetricStructures.

MetricStructure(*groups, Sequence, …)

A highly flexible representation of a metric hierarchy, capable of describing both additive, multiplicative, and hybrid additive/multiplicative meters.