lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Barbershop Template attempt with questions.


From: Carol Kankelborg
Subject: Barbershop Template attempt with questions.
Date: Thu, 20 Nov 2003 14:05:34 -0700

I am jumping into LilyPond with both feet, trying to learn the syntax and put together a template for women's barbershop music. Our chorus has some old, hard-to-read hand-written
music that I would like to engrave.  I cobbled this together from satb.ly,
a barbershop template posted by Jeffery Rancier earlier this month, bits and pieces of other examples on the lilypond.org site, and my own touches. I don't yet have the whole paradigm for the lilypond syntax down, so I'm doing a lot of blind copying and pasting, trying to understand
it as I go.

I have a few questions and also would welcome any critique of my approach in general. If there are any fellow barbershoppers out there, I'd welcome any samples of templates you
have developped. I am using version 2.0.1, downloaded via fink a few days ago.

My questions are as follows:

1) There was a post in October about dot collisions but no response. I get the same problem in the second measure where the lead note, a4. is placed on the staff just before the tenor note (g4). The tenor note obscures the lead's dot. Is this a bug I should report? Is there a work around? For instance, can I force LilyPond to put the tenor note first, followed by the lead dotted note?

2) The melisma on "time" in the lead part does not stop at the rest. I tried several variations from a post which referenced a bug from version 1.5.x but wasn't able to make it work. Any
recommendations?

3) Is it possible to use the "(" and ")" characters in lyics? The documentation does not list them as valid lyric characters, but they are used quite a bit in barbershop scores for echo parts.

4) I followed one suggestion for implementing "most lyrics shared by all 4 parts, with occasional differences." I chose a snippet of music that illustrated a lot of the features I wanted to be able to represent so it has a lot more part differences than ususal. I also tried to use the \markup tag to put notes on the bass pick up ("Come on and"), adding one word per note. The problem with this approach was that the level of the words changed with the pitch of the note. Is there a way to override the vertical placement of a \markup tag text so that it is at a constant level?

5) A convention in barbershop music is to place an "x" above a tenor note when it drops below the lead note. (See the first note of second measure.) Would it be possible to generate this "x" automatically -- that is, let LilyPond figure out where the tenor goes below the lead and put the "x" in without my having to indicate it manually? These situations are rare, so doing it manually like I have in this case is not much of a problem, but it would be neat to have a function to do it automatically.

And here is the file:

\include "english.ly"
\version "2.0.1"

\header {
    title      = "Jingle Bell Rock"
    composer   = "Joe Beal and Jim Boothe"
    arranger   = "Arr. by Renee Craig, Nov. 1969"
    copyright  = "Rosarita Music - 1957"
    subtitle   = "Example of Women's Barbershop vocal score using LilyPond"

    texidoc = "
 Example template for a Women's Barbershop vocal score.
"
}


% Define two functions, one to add an ambitus, the other to get rid of it

#(define (kill-ambitus grob grob-context apply-context)
  (if (memq 'ambitus-interface (ly:get-grob-property grob 'interfaces))
   (ly:grob-suicide grob)
  ))

#(define ((shift-ambitus x) grob grob-context apply-context)
  (if (memq 'ambitus-interface (ly:get-grob-property grob 'interfaces))
   (ly:grob-translate-axis! grob x X)
  ))



global=\notes {
 %      \property Staff.midiInstrument = #"acoustic grand"
 % Keep Time Signature as numbers
    \property Staff.TimeSignature \set #'style = #'numbered

 % Number every measure
\property Score.BarNumber \override #'break-visibility = #end-of-line-invisible

 % Turn off AutoBeaming.  (Not sure of significance.)
        \property Voice.AutoBeaming = ##f

 % Key Signature
        \key g \major

 % Time Signature
        \time 4/4
}


%%% Define Tenor Notes and Lyrics %%%

tenorMusic    = \notes  \relative c'' {
% override note shape to allow text written above it. % Used to place the "X" that indicates tenor drops below lead. \property Voice . TextScript \override #'font-shape = #'upright b4 b8 b8 ~ b2 | g4^\markup {"x"} g8 a8 ~ a2 | r8 fs8 fs4 fs8 fs8 fs8 fs8 | c'8 a4 fs8 ~ fs4 r4}
tenorWords    = \lyrics { Jin -- gle Bells, Jin -- gle Bells
                          _ _ _ _ _ _ _ _ _ }

%%% Define Lead Notes and Lyrics %%%

%% This dot collides with tenor note (g4) leadMusic = \notes \relative c'' { g8( a4 ) g8 ~ g4 e8 g8 | a4. g8 ~ g2 |
                                         %% Melisma doesn't stop at rest.
r8 d8 d4 e8 e8 e8 e8 | fs8 e4 d8 ~ d4 r4}
leadWords     = \lyrics { Bell -- time is a swell time __
                          To go rid- in' in a one horse sleigh }

%%% Define Baritone Notes and Lyrics %%%

baritoneMusic = \notes \relative c' {d4 d8 d8 ~ d2 | cs4 cs8 cs8 ~ cs2 r8 c8 c4 cs8 cs8 cs8 cs8 | a8 c4 c8 ~ c4 r4}
baritoneWords = \lyrics { Jin -- gle Bells, Jin -- gle Bells
                          _ _ _ _ _ _ _ _ _ }

%%% Define Bass Notes and Lyrics %%%

bassMusic     = \notes  \relative c    { e4 e8 e8 ~ e2        | e4 e8 e8 ~ e2
r8 a8 a4 a8 a8 a8 a8 | d,8 f4 a8 ~ a8 d,8 e8 f8 }
bassWords     = \lyrics { Jin -- gle Bells, Jin -- gle Bells
                          _ _ _ _ _ _ _ _ _ Come on and }

% Now put it all together in a score

\score { \notes
          \context ChoirStaff <<

              \property Score.automaticMelismata = ##t

          \context Lyrics = tenorLyrs { s1 }
          \context Staff  = upper {\clef treble s1 }
          \context Lyrics = leadLyrs { s1 }
          \context Lyrics = baritoneLyrs { s1 }
          \context Staff  = lower {\clef "bass^8" s1 }
          \context Lyrics = bassLyrs { s1 }

          \addlyrics
                \context Staff  = upper
\context Voice = VA { \applyoutput #(shift-ambitus 1.0)
                                              \voiceOne \global \tenorMusic }
                \context Lyrics = tenorLyrs { \tenorWords}

          \addlyrics
\context Staff = upper \context Voice = VB { \voiceTwo \global \leadMusic }
                \context Lyrics = leadLyrs { \leadWords}


          \addlyrics
\context Staff = lower \context Voice = VA { \applyoutput #(shift-ambitus 1.0) \voiceOne \global \baritoneMusic }
                \context Lyrics = baritoneLyrs { \baritoneWords}

          \addlyrics
\context Staff = lower \context Voice = VB { \voiceTwo \global \bassMusic }
                \context Lyrics = bassLyrs { \bassWords}

          >>

  \paper {
    indent = 0.0\mm
    papersize = "letter"

    \translator {
          \StaffContext
          % a little smaller so lyrics can be closer to the staff.
            minimumVerticalExtent = #'(-2 . 2)
      % Only print 1 rest if multiple parts have it.
        RestCollision \override #'maximum-rest-count = #1
    }
    \translator {
      \VoiceContext
        % Turn on Ambitus engraver
        \consists Ambitus_engraver
% Turn off "solo" and "a2" markings in the event of two parts singing same notes.
                soloADue = ##f
    }
  }
}

--
======================================================================
Carol Kankelborg
Tenor, Bridger Mountain Harmony address@hidden Music washes away from the soul the dust of everyday life. (Red Auerbach)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]