1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
;; CheckForIncompleteMeasures
(d-PushPosition)
(d-MoveToBeginning)
(while (d-MoveToStaffUp))
(let loop ()
(while (and (d-Directive-voice? "SubstituteMusic") (d-MoveToStaffDown)))
(if (not (d-Directive-voice? "SubstituteMusic"))
(begin
(while (and (AcceptableDurationMeasure?) (d-MoveToMeasureRight))
(if (and (AcceptableDurationMeasure?) (d-MoveToStaffDown))
(begin
(while (and (d-Directive-voice? "SubstituteMusic") (d-MoveToStaffDown)))
(d-MoveToBeginning)
(if (not (d-Directive-voice? "SubstituteMusic"))
(loop))))))))
(if (or (d-Directive-voice? "SubstituteMusic") (AcceptableDurationMeasure?))
(begin
(d-PopPosition)
(d-WarningDialog (_ "All measures appear complete.")))
(begin
(d-PopPushPosition)
(d-PopPosition)
(d-WarningDialog (_ "This measure has the wrong duration."))))
|