-%\version "2.19.19"
+%\version "2.19.22"
\include "lyrics-tkit.ly"
\include "staff-tkit.ly"
make-one-voice-vocal-staff =
-#(define-music-function (parser location name clef)
+#(define-music-function (name clef)
(voice-prefix? string?)
- "Make a staff with one voice and lyrics beneath
- name: the default prefix for instrument name and music
- clef: the clef for this staff "
+ "Make a staff with one voice and lyrics beneath
+ name: the default prefix for instrument name and music
+ clef: the clef for this staff "
- (if (make-id name "Music")
- #{
- <<
- \make-one-voice-staff #name #clef "Up"
- #(make-simultaneous-music
- (reverse (map
- (lambda (lyrics-postfix)
- #{ \make-one-stanza "Below" #name #name #lyrics-postfix #} )
- lyrics-postfixes)))
- >>
- #}
- (make-music 'SequentialMusic 'void #t)))
+ (if (make-id name "Music")
+ (make-simultaneous-music
+ (list
+ (make-one-voice-staff name clef "Up")
+ (make-simultaneous-music
+ (reverse (map
+ (lambda (lyrics-postfix)
+ (make-one-stanza "Below" name name lyrics-postfix))
+ lyrics-postfixes)))))
+ (make-music 'SequentialMusic 'void #t)))
make-two-voice-vocal-staff =
-#(define-music-function (parser location name clef v1name v2name)
+#(define-music-function (name clef v1name v2name)
(voice-prefix? string? voice-prefix? voice-prefix?)
- "Make a vocal staff with two voices and lyrics above and below
- name: the prefix to the staff name
- clef: the clef to use
- v1name: the prefix to the name of voice one
- v2name: the prefix to the name of voice two "
+ "Make a vocal staff with two voices and lyrics above and below
+ name: the prefix to the staff name
+ clef: the clef to use
+ v1name: the prefix to the name of voice one
+ v2name: the prefix to the name of voice two "
- (define v1music (make-id v1name "Music"))
- (define v2music (make-id v2name "Music"))
+ (define v1music (make-id v1name "Music"))
+ (define v2music (make-id v2name "Music"))
- #{
- <<
- \make-two-voice-staff #name #clef #v1name #v2name
- #(if v1music
- (make-simultaneous-music
- (map
- (lambda (lyrics-postfix)
- #{ \make-one-stanza "Above" #name #v1name #lyrics-postfix #} )
- lyrics-postfixes)))
+ (make-simultaneous-music
+ (delq! #f
+ (list
+ (make-two-voice-staff name clef v1name v2name)
+ (and v1music
+ (make-simultaneous-music
+ (map
+ (lambda (lyrics-postfix)
+ (make-one-stanza "Above" name v1name lyrics-postfix))
+ lyrics-postfixes)))
- #(if v2music
- (make-simultaneous-music
- (reverse (map
- (lambda (lyrics-postfix)
- #{ \make-one-stanza "Below" #name #v2name #lyrics-postfix #} )
- lyrics-postfixes))))
- >>
- #} )
+ (and v2music
+ (make-simultaneous-music
+ (reverse
+ (map
+ (lambda (lyrics-postfix)
+ (make-one-stanza "Below" name v2name lyrics-postfix))
+ lyrics-postfixes))))))))
make-two-vocal-staves-with-stanzas =
#(define-music-function
- (parser location
- upperName upperClef lowerName lowerClef
+ (upperName upperClef lowerName lowerClef
v1name v2name v3name v4name verses)
(voice-prefix? string? voice-prefix? string?
voice-prefix? voice-prefix? voice-prefix? voice-prefix? list?)
vxname: the prefix to the name of voice x, x = 1..4
verses: the list of verse names containing the stanzas"
- #{
- <<
- \make-two-voice-vocal-staff
- #upperName #upperClef #v1name #v2name
- #(make-simultaneous-music
- (map
- (lambda (verse-name)
- #{ \make-one-stanza
- #upperName #v1name #v2name #verse-name #} )
- verses))
- \make-two-voice-vocal-staff
- #lowerName #lowerClef #v3name #v4name
- >>
- #} )
+ (make-simultaneous-music
+ (list
+ (make-two-voice-vocal-staff
+ upperName upperClef v1name v2name)
+ (make-simultaneous-music
+ (map
+ (lambda (verse-name)
+ (make-one-stanza
+ upperName v1name v2name verse-name))
+ verses))
+ (make-two-voice-vocal-staff
+ lowerName lowerClef v3name v4name))))