1;;;CheckScore 2(define CheckScore::return #f) 3(define-once CheckScore::ignore 0) 4(define-once CheckScore::error-position #f) 5 6(let ((old-volume (d-MasterVolume))) 7 (d-MasterVolume 0) 8 (if CheckScore::params 9 (set! CheckScore::ignore CheckScore::params)) 10 (if (d-Directive-score? "CriticalCommentsAmended") 11 (d-CriticalCommentary)) 12 13 (while (d-PreviousMovement)) 14 15 (let movement () 16 (d-EvenOutStaffLengths) 17 (while (d-MoveToStaffUp)) 18 (let staff () 19 (d-FixSlursInStaff) 20 (d-CheckTiesInStaff 'noninteractive) 21 (if CheckTiesInStaff::return 22 (set! CheckScore::return CheckTiesInStaff::return)) 23 (if (not CheckScore::return) 24 (begin 25 (d-CheckDirectivePairs 'noninteractive) 26 (if CheckDirectivePairs::return 27 (set! CheckScore::return CheckDirectivePairs::return)))) 28 (if (not CheckScore::return) 29 (if (or (d-MoveToVoiceDown) (d-MoveToStaffDown)) 30 (staff)))) 31 (if (not CheckScore::return) 32 (begin 33 (while (d-MoveToStaffUp)) 34 (let staff () 35 (d-MoveToBeginning) 36 (let measure () 37 (d-CheckTupletsInMeasure 'noninteractive) 38 (set! CheckScore::return CheckTupletsInMeasure::return) 39 (if (not CheckScore::return) 40 (begin 41 (d-CheckBeamsInMeasure 'noninteractive) 42 (set! CheckScore::return CheckBeamsInMeasure::return))) 43 (if (not CheckScore::return) 44 (if (d-MoveToMeasureRight) 45 (measure) 46 (if (or (d-MoveToVoiceDown) (d-MoveToStaffDown)) 47 (staff)))))))) 48 49 (if (not CheckScore::return) 50 (begin 51 (d-CheckTimeSignatures #t) 52 (set! CheckScore::return CheckTimeSignatures::return))) 53 54 (if (not CheckScore::return) 55 (begin 56 (while (d-MoveToStaffUp)) 57 (let staff () 58 (d-MoveToBeginning) 59 (let measure () 60 (if (not (LastMeasure?)) 61 (if (or (FullDurationMeasure?)(ZeroDurationMeasure?)) 62 (begin 63 (d-MoveToMeasureRight) 64 (measure)) 65 (begin 66 (if (positive? CheckScore::ignore) 67 (begin 68 (set! CheckScore::ignore (1- CheckScore::ignore)) 69 (d-MoveToMeasureRight) 70 (measure)) 71 (begin 72 (set! CheckScore::return (_ "Incorrect measure duration")) 73 (set! CheckScore::error-position (GetPosition)))))))) 74 (if (not CheckScore::return) 75 (begin 76 (if (or (d-MoveToVoiceDown) (d-MoveToStaffDown)) 77 (staff))))))) 78 79 (if (not CheckScore::return) 80 (begin 81 (d-CheckBraces 'noninteractive) 82 (set! CheckScore::return CheckBraces::Return))) 83 84 (if (not CheckScore::return) 85 (d-InstallGraceNoteHints)) 86 87 (if (and (not CheckScore::return) (d-NextMovement)) 88 (movement))) 89 90 (if (not CheckScore::params);; interactive 91 (begin 92 (if (not CheckScore::return) 93 (begin 94 (set! CheckScore::error-position #f) 95 (d-InfoDialog (_ "No problem detected in this score"))) 96 (begin 97 (if CheckScore::error-position 98 (apply d-GoToPosition CheckScore::error-position)) 99 (d-InfoDialog CheckScore::return)))) 100 (disp "Error location " CheckScore::error-position "\n")) 101 (d-MasterVolume old-volume)) 102