(if (and (car alist) (test item (cdar alist)))
(set! result (car alist)))))
-(define-public (note-name->lily-string ly-pitch parser)
+(define-public (note-name->lily-string ly-pitch)
;; here we define a custom pitch= function, since we do not want to
;; test whether octaves are also equal. (otherwise, we would be using equal?)
(define (pitch= pitch1 pitch2)
(and (= (ly:pitch-notename pitch1) (ly:pitch-notename pitch2))
(= (ly:pitch-alteration pitch1) (ly:pitch-alteration pitch2))))
- (let* ((pitches (if parser (ly:parser-lookup parser 'pitchnames)
+ (let* ((pitches (if parser (ly:parser-lookup 'pitchnames)
(assoc-get (string->symbol default-language)
language-pitch-names '())))
(result (rassoc ly-pitch pitches pitch=)))
(define-display-method GraceMusic (expr parser)
(format #f "\\grace ~a"
- (music->lily-string (ly:music-property expr 'element) parser)))
+ (music->lily-string (ly:music-property expr 'element))))
;; \acciaccatura \appoggiatura \grace
;; TODO: it would be better to compare ?start and ?stop
((music
'SlurEvent
span-direction STOP))))))
- (format #f "\\appoggiatura ~a" (music->lily-string ?music parser))))))
+ (format #f "\\appoggiatura ~a" (music->lily-string ?music))))))
(define-extra-display-method GraceMusic (expr parser)
((music
'SlurEvent
span-direction STOP))))))
- (format #f "\\acciaccatura ~a" (music->lily-string ?music parser))))))
+ (format #f "\\acciaccatura ~a" (music->lily-string ?music))))))
(define-extra-display-method GraceMusic (expr parser)
"Display method for grace."
;; startGraceMusic stopGraceMusic
(and (null? (ly:music-property ?start 'elements))
(null? (ly:music-property ?stop 'elements))
- (format #f "\\grace ~a" (music->lily-string ?music parser)))))
+ (format #f "\\grace ~a" (music->lily-string ?music)))))
;;;
;;; Music sequences
(if force-line-break (+ 2 (*indent*)) 1)
(parameterize ((*indent* (+ 2 (*indent*))))
(map-in-order (lambda (music)
- (music->lily-string music parser))
+ (music->lily-string music))
elements))
(if force-line-break 1 0)
(if force-line-break (*indent*) 1))))
(parameterize ((*indent* (+ 3 (*indent*))))
(format #f "<< ~{~a ~}>>"
(map-in-order (lambda (music)
- (music->lily-string music parser))
+ (music->lily-string music))
(ly:music-property sim 'elements)))))
(define-extra-display-method SimultaneousMusic (expr parser)
(music 'GraceMusic
element ?grace))))))
(format #f "\\afterGrace ~a ~a"
- (music->lily-string ?before-grace parser)
- (music->lily-string ?grace parser))))
+ (music->lily-string ?before-grace)
+ (music->lily-string ?grace))))
;;;
;;; Chords
(parameterize ((*omit-duration* #t))
(map-in-order
(lambda (music)
- (music->lily-string music parser))
+ (music->lily-string music))
chord-elements))
duration
(map-in-order (lambda (music)
(list
(post-event? music)
- (music->lily-string music parser)))
+ (music->lily-string music)))
other-elements))))
((ly:duration? chord-repeat)
(let ((duration (duration->lily-string chord-repeat)))
(map-in-order (lambda (music)
(list
(post-event? music)
- (music->lily-string music parser)))
+ (music->lily-string music)))
other-elements))))
((and (= 1 (length other-elements))
(not (post-event? (car other-elements))))
- (format #f (music->lily-string (car other-elements) parser)))
+ (format #f (music->lily-string (car other-elements))))
(else
(format #f "< >~:{~:[-~;~]~a~^ ~}"
(map-in-order (lambda (music)
(list
(post-event? music)
- (music->lily-string music parser)))
+ (music->lily-string music)))
other-elements))))))))
(define-display-method MultiMeasureRestMusic (mmrest parser)
(format #f "R~a~{~a~^ ~}"
(duration->lily-string (ly:music-property mmrest 'duration))
(map-in-order (lambda (music)
- (music->lily-string music parser))
+ (music->lily-string music))
(ly:music-property mmrest 'articulations))))
(define-display-method SkipMusic (skip parser)
(define (simple-note->lily-string event parser)
(format #f "~a~a~a~a~a~a~:{~:[-~;~]~a~}" ; pitchname octave !? octave-check duration optional_rest articulations
- (note-name->lily-string (ly:music-property event 'pitch) parser)
+ (note-name->lily-string (ly:music-property event 'pitch))
(octave->lily-string (ly:music-property event 'pitch))
(let ((forced (ly:music-property event 'force-accidental))
(cautionary (ly:music-property event 'cautionary)))
(map-in-order (lambda (event)
(list
(post-event? event)
- (music->lily-string event parser)))
+ (music->lily-string event)))
(ly:music-property event 'articulations))))
(define-display-method NoteEvent (note parser)
(format #f "~a~a~{~a~}" (ly:music-property note 'drum-type)
(duration->lily-string (ly:music-property note 'duration))
(map-in-order (lambda (event)
- (music->lily-string event parser))
+ (music->lily-string event))
(ly:music-property note 'articulations))))
(else
;; pure duration
(duration->lily-string (ly:music-property note 'duration)
#:force-duration #t)
(map-in-order (lambda (event)
- (music->lily-string event parser))
+ (music->lily-string event))
(ly:music-property note 'articulations))))))
(define-display-method ClusterNoteEvent (note parser)
(format #f "r~a~{~a~}"
(duration->lily-string (ly:music-property rest 'duration))
(map-in-order (lambda (event)
- (music->lily-string event parser))
+ (music->lily-string event))
(ly:music-property rest 'articulations)))))
(define-display-method MultiMeasureRestEvent (rest parser)
(format #f "s~a~{~a~}"
(duration->lily-string (ly:music-property rest 'duration))
(map-in-order (lambda (event)
- (music->lily-string event parser))
+ (music->lily-string event))
(ly:music-property rest 'articulations))))
(define-display-method RepeatedChord (chord parser)
- (music->lily-string (ly:music-property chord 'element) parser))
+ (music->lily-string (ly:music-property chord 'element)))
(define-display-method MarkEvent (mark parser)
(let ((label (ly:music-property mark 'label)))
(let ((c-pitch-alist (ly:transpose-key-alist pitch-alist
(ly:pitch-diff (ly:make-pitch 0 0 0) tonic))))
(format #f "\\key ~a \\~a~a"
- (note-name->lily-string (ly:music-property key 'tonic) parser)
+ (note-name->lily-string (ly:music-property key 'tonic))
(any (lambda (mode)
(if (and parser
- (equal? (ly:parser-lookup parser mode) c-pitch-alist))
+ (equal? (ly:parser-lookup mode) c-pitch-alist))
(symbol->string mode)
#f))
'(major minor ionian locrian aeolian mixolydian lydian phrygian dorian))
(define-display-method RelativeOctaveCheck (octave parser)
(let ((pitch (ly:music-property octave 'pitch)))
(format #f "\\octaveCheck ~a~a"
- (note-name->lily-string pitch parser)
+ (note-name->lily-string pitch)
(octave->lily-string pitch))))
(define-display-method VoiceSeparator (sep parser)
(format #f "~s" string)
string))
(markup->lily-string text)))
- (map-in-order (lambda (m) (music->lily-string m parser))
+ (map-in-order (lambda (m) (music->lily-string m))
(ly:music-property lyric 'articulations))))
(define-display-method BreathingEvent (event parser)
(define-display-method AutoChangeMusic (m parser)
(format #f "\\autochange ~a"
- (music->lily-string (ly:music-property m 'element) parser)))
+ (music->lily-string (ly:music-property m 'element))))
(define-display-method ContextChange (m parser)
(format #f "\\change ~a = \"~a\""
den
num
formatted-span
- (music->lily-string (ly:music-property times 'element) parser)))))
+ (music->lily-string (ly:music-property times 'element))))))
result)))
(define-display-method RelativeOctaveMusic (m parser)
- (music->lily-string (ly:music-property m 'element) parser))
+ (music->lily-string (ly:music-property m 'element)))
(define-display-method TransposedMusic (m parser)
- (music->lily-string (ly:music-property m 'element) parser))
+ (music->lily-string (ly:music-property m 'element)))
;;;
;;; Repeats
(define-display-method AlternativeEvent (alternative parser) "")
(define (repeat->lily-string expr repeat-type parser)
- (let* ((main (music->lily-string (ly:music-property expr 'element) parser)))
+ (let* ((main (music->lily-string (ly:music-property expr 'element))))
(format #f "\\repeat ~a ~a ~a ~a"
repeat-type
(ly:music-property expr 'repeat-count)
""
(format #f "\\alternative { ~{~a ~}}"
(map-in-order (lambda (music)
- (music->lily-string music parser))
+ (music->lily-string music))
alternatives)))))))
(define-display-method VoltaRepeatedMusic (expr parser)
operations))
(*indent*)))
(parameterize ((*current-context* ctype))
- (music->lily-string music parser)))))
+ (music->lily-string music)))))
;; special cases: \figures \lyrics \drums
(define-extra-display-method ContextSpeccedMusic (expr parser)
(parameterize ((*explicit-mode* #f))
(case ?context-type
((FiguredBass)
- (format #f "\\figures ~a" (music->lily-string ?sequence parser)))
+ (format #f "\\figures ~a" (music->lily-string ?sequence)))
((Lyrics)
- (format #f "\\lyrics ~a" (music->lily-string ?sequence parser)))
+ (format #f "\\lyrics ~a" (music->lily-string ?sequence)))
((DrumStaff)
- (format #f "\\drums ~a" (music->lily-string ?sequence parser)))
+ (format #f "\\drums ~a" (music->lily-string ?sequence)))
(else
#f)))
#f)))
(and (sequence? element)
(every property-tuning? (ly:music-property element 'elements)))))
(parameterize ((*current-context* (ly:music-property expr 'context-type)))
- (music->lily-string element parser))
+ (music->lily-string element))
#f)))
-(define-public (value->lily-string arg parser)
+(define-public (value->lily-string arg)
(cond ((ly:music? arg)
- (music->lily-string arg parser))
+ (music->lily-string arg))
((string? arg)
(format #f "#~s" arg))
((markup? arg)
(format #f "##{ ~a #}" (duration->lily-string arg #:force-duration #t)))
((ly:pitch? arg)
(format #f "~a~a"
- (note-name->lily-string arg parser)
+ (note-name->lily-string arg)
(octave->lily-string arg)))
(else
(format #f "#~a" (scheme-expr->lily-string arg)))))
""
(format #f "~a . " (*current-context*)))
property
- (value->lily-string value parser)
+ (value->lily-string value)
(new-line->lily-string))))
(define-display-method PropertyUnset (expr parser)
(if (eqv? (*current-context*) 'Bottom)
(cons symbol properties)
(cons* (*current-context*) symbol properties))
- (value->lily-string value parser)
+ (value->lily-string value)
(new-line->lily-string))))
(define-display-method RevertProperty (expr parser)
(define-display-method PartCombineMusic (expr parser)
(format #f "\\partcombine ~{~a ~}"
(map-in-order (lambda (music)
- (music->lily-string music parser))
+ (music->lily-string music))
(ly:music-property expr 'elements))))
(define-extra-display-method PartCombineMusic (expr parser)
(cond ((equal? ?dir UP) "Up")
((equal? ?dir DOWN) "Down")
(else ""))
- (music->lily-string ?sequence1 parser)
+ (music->lily-string ?sequence1)
(new-line->lily-string)
- (music->lily-string ?sequence2 parser))))
+ (music->lily-string ?sequence2))))
(define-extra-display-method ContextSpeccedMusic (expr parser)
"If `expr' is a \\partcombine expression, return \"\\partcombine ...\".
?pc-music))))
(with-music-match
(?pc-music (music 'PartCombineMusic))
- (format #f "~a" (music->lily-string ?pc-music parser)))))
+ (format #f "~a" (music->lily-string ?pc-music)))))
(define-display-method UnrelativableMusic (expr parser)
- (music->lily-string (ly:music-property expr 'element) parser))
+ (music->lily-string (ly:music-property expr 'element)))
;;; Cue notes
(define-display-method QuoteMusic (expr parser)
(format #f "\\cueDuring #~s #~a ~a"
?quoted-music-name
?quoted-voice-direction
- (music->lily-string ?music parser)))
+ (music->lily-string ?music)))
(format #f "\\quoteDuring #~s ~a"
(ly:music-property expr 'quoted-music-name)
- (music->lily-string (ly:music-property expr 'element) parser))))
+ (music->lily-string (ly:music-property expr 'element)))))
;;;
;;; Breaks
(ly:music-property expr 'associated-context)
(parameterize ((*explicit-mode* #f)
(*omit-duration* #t))
- (music->lily-string (ly:music-property expr 'element) parser))))
+ (music->lily-string (ly:music-property expr 'element)))))
;; \addlyrics
(define-extra-display-method SimultaneousMusic (expr parser)
element ?lyric-sequence)))))
(if (string=? ?id ?associated-id)
(format #f "~a~a \\addlyrics ~a"
- (music->lily-string ?note-sequence parser)
+ (music->lily-string ?note-sequence)
(new-line->lily-string)
(parameterize ((*explicit-mode* #f)
(*omit-duration* #t))
- (music->lily-string ?lyric-sequence parser)))
+ (music->lily-string ?lyric-sequence)))
#f)))
;; Silence internal event sent at end of each lyrics block