Read the meter out of a pair of options that accept either form.
Entry points take meters for a piece that changes meter and keep ts as
sugar for a piece that does not, so this is the one place that resolves the
pair — including the rule that naming both is an input error rather than one
of them silently winning.
The meter map to analyse against, freshly allocated down to every
signature and grouping array, so writing to it changes nothing another
caller reads; 4/4 throughout when neither ts nor meters is given.
Throws
If both ts and meters are given, or the map is malformed.
Read the meter out of a pair of options that accept either form.
Entry points take
metersfor a piece that changes meter and keeptsas sugar for a piece that does not, so this is the one place that resolves the pair — including the rule that naming both is an input error rather than one of them silently winning.