Enable resetting time signature in staff construction
This commit is contained in:
@@ -64,7 +64,9 @@ class StaffEvaluator : Evaluator() {
|
|||||||
val evaluatedSignature = calculateTimeSignature(evaluatedMeasure)
|
val evaluatedSignature = calculateTimeSignature(evaluatedMeasure)
|
||||||
|
|
||||||
currentSignature?.let {
|
currentSignature?.let {
|
||||||
if (evaluatedSignature != it) {
|
when {
|
||||||
|
it.numerator == 0 -> return
|
||||||
|
evaluatedSignature != it -> {
|
||||||
val simplified = evaluatedSignature.simplified
|
val simplified = evaluatedSignature.simplified
|
||||||
throw contextEvaluationException(
|
throw contextEvaluationException(
|
||||||
"Invalid time signature: expected ${it.numerator}/${it.denominator}, got ${simplified.numerator}/${simplified.denominator}",
|
"Invalid time signature: expected ${it.numerator}/${it.denominator}, got ${simplified.numerator}/${simplified.denominator}",
|
||||||
@@ -73,6 +75,9 @@ class StaffEvaluator : Evaluator() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun calculateTimeSignature(values: List<Value>): Fraction {
|
private fun calculateTimeSignature(values: List<Value>): Fraction {
|
||||||
|
|||||||
Reference in New Issue
Block a user