1; Splits the current chord/note to several others of the same pitch. Their sum equals the original duration. Will create tuplets if necessary 2; So far only (assuming quarter) 8th, 8th-triplet, 16th, 16-fifthlet, 16th-sextlet, 16th-Seventhlet, 32th and 32th-ninthlet 3; TODO: What about if someone tries to divide too small? The score will get broken. 4 5(define* (SplitChord #:optional (howmany #f)) 6(define (split-divide) 7 (duration::ChangeNoteDurationInTicks (/ (duration::GetBaseDurationInTicks) 2) (d-GetDots))) 8 9(if (Note?) ; DuplicateChord only works ON notes, not in the appending position. 10 11(begin 12(if (not howmany) 13 (begin 14 (set! howmany (d-GetUserInput "Split in how many notes?" "Enter the number of notes to split into:" "2" ) ) 15 (if howmany (set! howmany (string->number howmany)) #f))) ; If the user pressed "Abort" or Esc howmany will be #f which must be caught here 16 17(case howmany 18 ((1) #t) ; Already original duration in one note. 19 ((2) (begin ;8th 20 (split-divide) 21 (d-DuplicateChord) 22 (d-MoveCursorRight) 23 #t)) 24 ((3) (if (= 1 (d-GetDots)) 25 (begin 26 (d-RemoveDot) 27 (d-Diminish) 28 (d-DuplicateChord) 29 (d-DuplicateChord) 30 (d-MoveCursorRight) 31 #t) 32 (begin ;8th-triplet 33 (d-StartTriplet) 34 (split-divide) 35 (d-DuplicateChord) 36 (d-DuplicateChord) 37 (d-MoveCursorRight) 38 (d-EndTuplet) 39 #t))) 40 ((4) (begin ;16th 41 (split-divide) 42 (split-divide) 43 (d-DuplicateChord) 44 (d-DuplicateChord) 45 (d-DuplicateChord) 46 (d-MoveCursorRight) 47 #t)) 48 49 ((5) (begin ;16-fifthlet 50 (split-divide) 51 (split-divide) 52 (d-StartTriplet) 53 (d-MoveCursorLeft) 54 (d-SetTuplet "4/5") 55 (d-MoveCursorRight) 56 (d-DuplicateChord) 57 (d-DuplicateChord) 58 (d-DuplicateChord) 59 (d-DuplicateChord) 60 (d-MoveCursorRight) 61 (d-EndTuplet) 62 #t)) 63 64 ((6) (begin ;16th-sextlet, 65 (split-divide) 66 (split-divide) 67 (d-StartTriplet) 68 (d-DuplicateChord) 69 (d-DuplicateChord) 70 (d-DuplicateChord) 71 (d-DuplicateChord) 72 (d-DuplicateChord) 73 (d-MoveCursorRight) 74 (d-EndTuplet) 75 #t)) 76 77 ((7) (begin ;16-Seventhlet 78 (split-divide) 79 (split-divide) 80 (d-StartTriplet) 81 (d-MoveCursorLeft) 82 (d-SetTuplet "4/7") 83 (d-MoveCursorRight) 84 (d-DuplicateChord) 85 (d-DuplicateChord) 86 (d-DuplicateChord) 87 (d-DuplicateChord) 88 (d-DuplicateChord) 89 (d-DuplicateChord) 90 (d-MoveCursorRight) 91 (d-EndTuplet) 92 #t)) 93 94 ((8) (begin ;32th 95 (split-divide) 96 (split-divide) 97 (split-divide) 98 (d-DuplicateChord) 99 (d-DuplicateChord) 100 (d-DuplicateChord) 101 (d-DuplicateChord) 102 (d-DuplicateChord) 103 (d-DuplicateChord) 104 (d-DuplicateChord) 105 (d-MoveCursorRight) 106 #t)) 107 108 ((9) (begin ;32th-ninthlet 109 (split-divide) 110 (split-divide) 111 (split-divide) 112 (d-StartTriplet) 113 (d-MoveCursorLeft) 114 (d-SetTuplet "8/9") 115 (d-MoveCursorRight) 116 (d-DuplicateChord) 117 (d-DuplicateChord) 118 (d-DuplicateChord) 119 (d-DuplicateChord) 120 (d-DuplicateChord) 121 (d-DuplicateChord) 122 (d-DuplicateChord) 123 (d-DuplicateChord) 124 (d-MoveCursorRight) 125 (d-EndTuplet) 126 #t)) 127 128 (else #f); out of range 129)) 130 #f ; it was no note 131 )) 132