X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fvocal-tkit.ly;h=5490005283277b99399025c2fa895cc411821d5e;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=cad4ea4b53819ac983d2f92d46b190137a0e3940;hpb=e8d5061834a5a658c5ffd078237e9cd660069a7d;p=lilypond.git diff --git a/ly/vocal-tkit.ly b/ly/vocal-tkit.ly index cad4ea4b53..5490005283 100644 --- a/ly/vocal-tkit.ly +++ b/ly/vocal-tkit.ly @@ -1,65 +1,62 @@ -%\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?) @@ -73,18 +70,16 @@ The number of stanzas is determined by the number of populated verse names. 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))))