Enable resetting time signature in staff construction

This commit is contained in:
2020-03-29 21:09:18 +02:00
parent d9f29a95ad
commit 0dd0505cf0

View File

@@ -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 {