File: ConvertIncorrectSlursToTies.scm

package info (click to toggle)
denemo 2.6.49-0.2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 66,916 kB
  • sloc: ansic: 94,587; lisp: 38,713; xml: 22,675; python: 1,930; sh: 1,239; makefile: 642; yacc: 288; sed: 93
file content (31 lines) | stat: -rw-r--r-- 873 bytes parent folder | download | duplicates (6)
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
27
28
29
30
31
;;;ConvertIncorrectSlursToTies
(d-PushPosition)
(let ((note #f))
  (define (do-staff)
      (d-MoveToBeginning)
      (let loop ()
        (set! note (d-GetNoteName))
        (if (and note (d-IsSlurStart))
            (let ((nextnote #f))
                (d-NextChord)
                (set! nextnote (d-GetNoteName))
                (if (and (d-IsSlurEnd) nextnote (equal? note nextnote))
                    (begin
                        (d-ToggleEndSlur)
                        (d-PrevChord)
                        (d-ToggleBeginSlur)
                        (d-ToggleTie)))))
        (if (d-NextChord)
            (loop))))
            
  (define (do-movement)
    (while (d-StaffUp))
    (do-staff)
    (while (d-StaffDown)
        (do-staff)))
        
  (while (d-PreviousMovement))
  (do-movement)
  (while (d-NextMovement)
        (do-movement)))
(d-PopPosition)