File: AddMovement.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 (60 lines) | stat: -rw-r--r-- 1,906 bytes parent folder | download
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
;;;;AddMovement
(let ()
     (define (do-movement field)
     	(define ret #f)
     	(d-PreviousMovement)
        (set! ret (d-Directive-movementcontrol?  field))
        (d-NextMovement)
        ret)
    (define (get-data)
        (define ret #f)
     	(d-PreviousMovement)
        (set! ret (d-DirectiveGet-header-data "MovementTitles"))
        (d-NextMovement)
        ret)
    (define (do-simple-titles tag data)
        (define (do-one field)
            (if (assq-ref data field)
                    (DenemoSetTitles tag field #t)))
        (if data 
            (begin
                (set! data (eval-string data))
                
                (do-one 'dedication)
                (do-one 'title)
                (do-one 'subtitle)
                (do-one 'subsubtitle)
                (do-one 'instrument)
                (do-one 'poet)
                (do-one 'composer)
                (do-one 'meter)
                (do-one 'arranger)
                (do-one 'tagline)
                (do-one 'copyright)
                (do-one 'piece)
                (do-one 'opus))))
    (d-NewMovement)
    (d-GoToBeginning)
    (while (d-StaffUp))
    (while
		(begin
			(if (d-Directive-voice? "DynamicsStaff")
				(d-StartUpStems))
	        (d-StaffDown)))
    (let ()
        (let ((time (d-GetPrevailingTimesig)))
            (set! time (d-GetUserInput (_ "Add Movement") (_ "Give time signature") time))
            (if time
                (begin
                    (d-InitialTimeSig time)
                    (while (d-StaffDown)
                        (d-InitialTimeSig time))
                    (while (d-StaffUp)))))
                    
        (if (do-movement "TitledPiece")
            (d-TitledPiece))
        (if (do-movement "Section")
            (d-Section))
        (if (do-movement "Chapter")
            (d-Chapter))
        (do-simple-titles "MovementTitles" (get-data))))