lilypond-user
[Top][All Lists]
Advanced

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

Stemming for hymnal


From: steveweb414
Subject: Stemming for hymnal
Date: Fri, 20 May 2005 09:40:15 -0700

Still having some unresolved trouble with stems for my public domain
hymnal project.

I've attached an excerpt to show you what I'm doing.

The problem is that, in hymnals, notes from different parts share the
same stem (and hence the same stem direction) in most cases, except
when the note durations are different or the notes are in unison or
only a second apart.

The sample below uses stem direction to seperate the parts.  This works
properly, and makes for a reasonably readable score, except that it
isn't what's expected for a hymnal.  Any suggestions?

I'm producing the lilypond input programmatically and could set the stem
direction for individual notes in my software, but my experimenting with
that (using \voiceOne and \voiceTwo to set stem direction) hasn't worked
because the stems aren't combined properly, so beams and flags are
misplaced.

Steve

-------


upperOne = {
  \voiceOne
  \time 4/4 \key g \major
r2.^\markup "Angel's Story 76.76D, Arthur Henry Mann, 1881 (O Jesus I
Have Promised)"  b'4 b'4. b'8 a'4 g' g'2 fis'4 d' c''4. c''8 b'4 a'
b'2. b'4 d''4. d''8 c''4 b' b'2 c''4 b' a'4. g'8 fis'4 g' a'2. ais'4
b'4. b'8 a'4 g' g'2 fis'4 d' c''4. c''8 b'4 a' b'2. b'4 e''4. d''8 c''4
b' d''2 c''4 e' g'4. fis'8 e'4 fis' g'2. 
s4  \bar "|."
  \time 4/4 \key d \major
fis'4^\markup "Bradbury 87.87D, William B. Bradbury, 1859 (Savior Like a
Shepherd Lead Us)"  fis' fis'8 e' fis' g' a'4 ( d'' ) a' ( fis' ) e'
fis' g'8 b' a' g' fis'1 fis'4 fis' fis'8 e' fis' g' a'4 ( d'' ) a' (
fis' ) e' fis' g'8 b' a' g' fis'1 a'8 a' b'4 d''2 cis''8 b' a'4 fis'2
fis'8 fis' e'4 b' a' g' fis'2. a'8 a' b'4 d''2 cis''8 b' a'4 d''2 d'8
e' fis'4 a' g' e' d'2. 
 \bar "|."
  \time 6/4 \key f \major
a'2^\markup "Martyn , Simeon B. Marsh, 1834 (??)"  a'4 a'2 f'4 g'2 g'4
g'2. a'2 a'4 c''2 bes'4 a'2. g' f'1. a'2 a'4 a'2 f'4 g'2 g'4 g'2. a'2
a'4 c''2 bes'4 a'2. g' f'1. c''2 c''4 c''2 c''4 d''2. d'' c''1. c''2
c''4 c''2 c''4 d''2. d'' c''1. a'2 a'4 a'2 f'4 g'2 g'4 g'2. a'2 a'4
c''2 bes'4 a'2. g' f'1. 
 \bar "|."
  \time 3/4 \key g \major
r2^\markup "New Britain CM, Virginia Harmony, 1831; Harmization: Edwin
Othello Excell, 1900 (Amazing Grace)"  d'4 g'2 b'8 g' b'2 a'4 g'2 e'4
d'2 d'4 g'2 b'8 g' b'2 a'4 d''2. b'4 d''4. b'8 d'' b' g'2 d'4 e'4. g'8
g' e' d'2 d'4 g'2 b'8 g' b'2 a'4 g'2 ( g' ) 
s4  \bar "|."
  \time 3/4 \key ees \major
ees'4^\markup "Slane 10.10.10.10, Ancient Irish melody (Be Thou My
Vision)"  ees' f'8 ees' c'4 bes4. c'8 ees'4 ees' f' g'2. f'4 f' f' f'
g' bes' c'' bes' g' bes'2. c''4. d''8 ees'' d'' c''4 bes' g' bes' ees'
d' c'2 bes4 ees' g' bes' c''8 bes' g'4 ees'8 g' f'4 ees' ees' ees'2. 
 \bar "|."
  \time 3/4 \key bes \major
r2^\markup "Toplady 7.7.7.7.7.7, Thomas Hastings, 1830 (Rock of Ages)" 
f'8. g'16 f'4 d' bes'8. g'16 f'2 bes'8 c'' d''4. c''8 bes' a' bes'2
a'8. bes'16 c''4. c''8 a' f' bes'2 a'8. bes'16 c''4. c''8 a' f' bes'2
f'8. g'16 f'4 d' bes'8. g'16 f'2 bes'8 c'' d''4. c''8 bes' a' bes'2 
s4  \bar "|."
  \time 4/4 \key des \major
r2.^\markup "Ville de Havre , Philip Paul Bliss, 1876 (...)"  aes'4
aes'2 ges'4 f' f'2 ees'4 f' ( ges' bes' ) aes' ges' f'2. aes'4 des''2
c''4 bes' bes'2 aes'4 g' aes'2. aes'4 des''2 des''4 c'' bes'2 bes'4
bes' ees''2 ees''4 des'' c''2 bes'4 aes' des''2 des''4 des'' des''2
c''4 des'' des''2. aes'4 aes' aes'1 ( aes'2 ) aes'4 aes' aes'1 ( aes'2
) f'4 aes' bes'2 bes'4 des'' des''2 c''4 des'' des''2 
s4  \bar "|."
} upperTwo = { \voiceTwo
  \key g \major
r2. d'4 d'4. d'8 c'4 b8 d' d'2 d'4 d' d' fis'8 fis' g'4 d' d'2. g'4
gis'4. gis'8 a'4 e' e'2 e'4 e' e'4. cis'8 cis'4 cis' d'2. c'4 b d'8 d'
c'4 b8 d' d'2 d'4 d' d' fis'8 fis' g'4 d' d'2. g'4 gis'4. gis'8 a'4 e'
e'2 e'4 c' d'4. c'8 c'4 c' b2. 
s4  \bar "|."
  \key d \major
d'4 d' d'8 cis' d' e' fis'2 fis'4 ( d' ) cis' d' e'8 g' fis' e' d'1 d'4
d' d'8 cis' d' e' fis'2 fis'4 ( d' ) cis' d' e'8 g' fis' e' d'1 fis'8
fis' g'4 b'2 a'8 g' fis'4 d'2 d'8 d' cis'4 g' fis' e' d'2. fis'8 fis'
g'4 b'2 a'8 g' fis'4 fis'2 d'8 d' d'4 fis' e' cis' d'2. 
 \bar "|."
  \key f \major
f'2 f'4 f'2 f'4 e'2 e'4 e'2. f'2 f'4 f'2 g'4 f'2. e' f'1. f'2 f'4 f'2
f'4 e'2 e'4 e'2. f'2 f'4 f'2 g'4 f'2. e' f'1. f'2 e'4 f'2 f'4 f'2. f'
f'1. f'2 e'4 f'2 f'4 f'2. f' e'1. f'2 f'4 f'2 f'4 e'2 e'4 e'2. f'2 f'4
f'2 f'4 f'2. f'2 e'4 f'1. 
 \bar "|."
  \key g \major
r2 b4 b2 d'4 d'2 c'4 b2 c'4 b2 b4 b2 b4 d'2 d'4 d'2. d'4 d'2 d''8 b' d'2
d'4 c'4. d'8 c'4 b2 d'4 b2 d'4 d'2 c'4 b2 ( b ) 
s4  \bar "|."
  \key ees \major
ees'4 ees' f'8 ees' c'4 bes4. c'8 c'2 ees'4 ees'2. bes4 <<ees' a >><<d'
bes >>c' d' g'8 f' g'4 f' ees' <<f'2 ees' >>ees'4 ees' aes' g' g'2 d'4
f' ees' d' c'2 bes4 c' <<ees' c' >>d' ees'2. c' bes 
 \bar "|."
  \key bes \major
r2 d'8. ees'16 d'4 bes f'8. ees'16 d'2 f'8 f' f'4. g'8 f' ees' d'2 c'8.
d'16 ees'4. ees'8 ees' ees' d'2 c'8. d'16 ees'4. ees'8 ees' ees' d'2
d'8. ees'16 d'4 bes f'8. ees'16 d'2 d'8 ees' f'4. g'8 f' ees' d'2 
s4  \bar "|."
  \key des \major
r2. f'4 f'2 ees'4 des' des'2 c'4 des' c'2 c'4 ees' des'2. f'4 f'2 ees'4
des' f'2 ees'4 ees' ees'2. ges'4 f'2 f'4 aes' ges'2 bes'4 aes' ges'2
ges'4 g' aes'2 aes'4 aes' aes'2 des'4 ees' f'2 ees'4 f' f'2. r1 f'4 f'
ees'2 r1 ees'4 ges' f'2 des'4 f' ges'2 ges'4 ges' f'2 ees'4 f' f'2 
s4  \bar "|."
} lowerOne = { \voiceOne
  \key g \major
r2. g4 d e fis g b2 a4 fis fis a8 a g4 c' b2. b4 b4. b8 e'4 d' d'2 c'4
d' cis'4. b8 a4 g g2 fis4 fis g d8 e fis4 fis b2 a4 fis fis a8 a g4 c'
b2. b4 b4. b8 e'4 d' b2 c'4 a b4. a8 g4 a g2. 
s4  \bar "|."
  \key d \major
a4 a a8 a a a a2 d'4 ( a ) a a a8 a a a a1 a4 a a8 a a a a2 d'4 ( a ) a
a a8 a a a a1 d'8 d' d'4 d'2 d'8 d' d'4 a2 a8 a a4 a a a a2. d'8 d' d'4
d'2 d'8 d' d'4 a2 fis8 g a4 a a g fis2. 
 \bar "|."
  \key f \major
c'2 c'4 c'2 a4 c'2 c'4 c'2. c'2 c'4 c'2 d'4 c'2. bes a1. c'2 c'4 c'2 a4
c'2 c'4 c'2. c'2 c'4 c'2 d'4 c'2. bes a1. a2 bes4 c'2 a4 bes2. bes a1.
a2 bes4 c'2 a4 a2. b c'1. c'2 c'4 c'2 b4 c'2 c'4 c'2. c'2 c'4 ees'2 d'4
c'2. bes a1. 
 \bar "|."
  \key g \major
r2 g4 d2 g4 g2 fis4 g2 g4 g2 g4 d2 g4 g2 fis4 g2. g4 b2 b4 g2 g4 g2 e8 g
g2 g4 g2 g8 b g2 fis4 g2 ( g ) 
s4  \bar "|."
  \key ees \major
bes4 c' bes aes8 g f4 g g2 c'4 bes2. f f4 bes bes ees' bes bes bes2.
aes4 c' c'8 f' ees'4 d' bes bes2 aes4 g aes8 g f4 <<ees2 g >>g4 g bes2
aes8 <<g4. aes >>f4 g2. 
 \bar "|."
  \key bes \major
r2 bes8. bes16 bes4 f bes8. bes16 bes2 bes8 a bes4. ees'8 d' c' bes2 f4
f4. a8 c' a bes2 f8. bes16 a4. a8 c' a bes2 bes8. bes16 bes4 f bes8.
bes16 bes2 bes8 a bes4. ees'8 d' c' bes2 
s4  \bar "|."
  \key des \major
r2. aes4 aes2 aes4 aes aes2 aes4 aes aes2 aes4 aes aes2. aes4 bes2 a4
bes des'2 c'4 bes c'2. c'4 des'2 des'4 des' des'2 des'4 d' ees'2 ees'4
ees' ees'2 des'4 c' des'2 aes4 bes aes2 aes4 aes aes2. r1 aes4 des' c'2
r1 c'4 ees' des'2 aes4 des' des'2 des'4 bes aes2 aes4 aes aes2 
s4  \bar "|."
} lowerTwo = { \voiceTwo
  \key g \major
r2. g,4 g, g, g, g,8 b, d2 d4 d d4. d8 e4 fis g2. g4 e4. e8 fis4 gis
gis2 a4 a a,4. a,8 a,4 a, d2. d4 g, g, g, g,8 b, d2 d4 d d4. d8 e4 fis
g2. g4 e4. e8 fis4 gis gis2 a4 a, d4. d8 d4 d g,2. 
s4  \bar "|."
  \key d \major
d4 d d8 g fis e d2 d a,4 a, a,8 a, a, a, fis1 d4 d d8 g fis e d2 d a,4
a, a,8 a, a, a, a1 d8 d g4 g2 g8 g d4 d2 d8 d a,4 a, a, a, d2. d8 d g4
g2 g8 g d4 d2 d8 d d4 d a, a, d2. 
 \bar "|."
  \key f \major
f2 f4 f2 f4 c2 c4 c2. f2 f4 a,2 bes,4 c2. c f1. f2 f4 f2 f4 c2 c4 c2. f2
f4 a,2 bes,4 c2. c f1. f2 g4 a2 f4 bes,2. bes,2 d4 f1. f2 g4 a2 f4 d2. g
c1. f2 f4 f2 d4 c2 c4 c2. f2 f4 a2 bes4 c'2. c f1. 
 \bar "|."
  \key g \major
r2 g,4 g,2 g,8 b, d2 d4 e2 c4 g,2 g,4 g,2 g,8 b, d2 c4 b,2. g,4 g2 g4
b,2 b,4 c4. b,8 c4 g,2 b,4 e2 d4 d2 d4 g,2 ( g, ) 
s4  \bar "|."
  \key ees \major
g4 aes g f8 ees d4 ees c bes, aes, ees, bes, ees d c bes, bes,8 a, g, f
ees d c4 d ees bes, bes ( g ) aes f c8 d ees f g a bes g d4 g f ees f8
ees d4 c2 bes,8 aes, g,4 ees, g, aes,8 bes, c4 aes, ees,2. 
 \bar "|."
  \key bes \major
r2 bes,8. bes,16 bes,4 bes, d8. ees16 bes,2 d8 f bes4. ees8 f f bes,2 f4
f4. f8 f f bes,2 f8. f16 f4. f8 f f bes,2 bes,8. bes,16 bes,4 bes, d8.
ees16 bes,2 g8 f bes4. ees8 f f bes,2 
s4  \bar "|."
  \key des \major
r2. des4 des2 des4 des8 f aes2 ges4 f ees2 aes,4 aes, des2. des4 bes,2
c4 des des2 ees4 ees aes,2. aes4 des2 des4 f ges2 ges4 f ees2 ees4 ees
aes2 aes4 aes8 ges f2 f4 ges aes2 aes,4 aes, des2. r1 des4 f aes2 r1
aes,4 aes, des2 des4 des ges2 ges4 ges aes2 aes,4 aes, des2 
s4  \bar "|."
}
  \score {
    \context PianoStaff
    \with {
            \override VerticalAlignment #'forced-distance = #11
            % default is 12, 11 gives us slightly tighter spacing between bass
and treble stafs
    } <<
      \context Staff = upper <<
        \override Score.BarNumber #'break-visibility = #all-invisible
\break
        \context Voice = one {  \upperOne }
        \context Voice = two  \upperTwo
      >>  
      \context Staff = lower <<
        \clef bass
        \context Voice = three  \lowerOne
        \context Voice = four  \lowerTwo
      >>  
    >>
  }
\layout {
  betweensystemspace = 0

  \context {
    \Score
    % defaults
    % (shortest-duration-space . 2.0)
    % (spacing-increment . 1.2)
    % (base-shortest-duration . ,(ly:make-moment 1 8))
    % tighter spacing
    \override SpacingSpanner #'shortest-duration-space = #2.4
    \override SpacingSpanner #'spacing-increment = #0.6
    \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment
1 8)
  }
}






reply via email to

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