The English Hymnal - Wiki Music Experiment/077

From DPWiki
Jump to navigation Jump to search

Lily1 Code

Edit this section and paste your code between the tags <code><pre> and </pre></code>.

To upload a midi, go here: file-repository. You need a userid and password (see this project's main wiki page).

Then create a link in this section to that uploaded midi file.

Midi file here: midi file

Perl-formatted lyrics (with chorus done by hand)--QMacrocarpa 04:57, 13 May 2007 (PDT):

"    O come, all ye faithful,"
"    Joyful and triumphant,"
"O come ye, O come ye to Bethlehem;"
"    Come and behold him,"
"    Born the King of Angels:"
"        O come, let us adore him,"
"        O come, let us adore him,"
"O come, let us adore him, Christ the Lord."
"    God of God,"
"    Light of Light,"
"Lo! he abhors not the Virgin's womb;"
"    Very God,"
"    Begotten not created:"
"    Sing, choirs of Angels,"
"    Sing in exultation,"
"Sing, all ye citizens of heaven above,"
"    Glory to God"
"    In the highest:"
"    Yea, Lord, we greet thee,"
"    Born this happy morning,"
"Jesu, to thee be glory given;"
"    Word of the Father,"
"    Now in flesh appearing:"

Lily2 Code

Edit this section and paste your code between the tags <code><pre> and </pre></code>.

To upload the output PDF and midi files, go here: file-repository. You need a userid and password (see this project's main wiki page).

Then create a link in the Lily3 section to those files

%%%28 Adeste Fideles (Irreg.) "O come, all ye faithful"
%%%Version 5 

\version "2.10"

\header {
  dedication = \markup { \center-align { "THE CHRISTIAN YEAR - CHRISTMAS"
		\hspace #0.1 }}	
  title = \markup { \line { \center-align {"28"}}}
  poet = \markup { \column { \line { \sans \small {"ADESTE FIDELES."} \hspace #1 \roman \small {"(Irreg.)"}} }}
  meter = \markup { \small { \italic {"Very slow"} \fontsize #-5 \general-align #Y #DOWN \note #"4" #1 = 72. } }
  arranger = \markup { \italic \small {"Composer unknown.  Probably 18th cent."}  }
  tagline ="" 
}  %% close header

global = {
  \time 4/4 
  \key g \major 
  \set Staff.midiInstrument = "church organ" 
}  %% close global


%%generates a parenthesis large enough to enclose two noteheads. Use extra-offset to position it.
parens = \markup { \fontsize #2 \musicglyph #"accidentals.leftparen" \hspace #0.8 \fontsize #2 \musicglyph #"accidentals.rightparen"}

%%generates the breathmarks above barlines
breathmark = {	
	      \override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible 
	      \override Score.RehearsalMark #'Y-offset = #'4.0 
	      \override Score.RehearsalMark #'X-offset = #'-0.5
	      \mark \markup { \fontsize #4 ","}

PhrasingSlurDashed = {
  \override PhrasingSlur #'dash-period = #0.75
  \override PhrasingSlur #'dash-fraction = #0.4

nbbar = { \bar "|" \noBreak } %%macro to generate a nobreak bar

%%%%%%%%%%%%%%%%%%%%%%%%%end of Macro definitions

soprano = \relative c' {
  \once \override TextScript #'extra-offset = #'( -0.4 . -6.0 )	
  \partial 4 g'4^\parens \nbbar g2 \slurDashed d4( g) \nbbar a2( d,) \nbbar b'4( a) b( c) \nbbar b2( a4) 
      \once \override TextScript #'extra-offset = #'( -0.4 . -6.2 )
      g4^\parens \nbbar g2 fis4 e \bar "|" \break
  \slurSolid fis( g) a b \nbbar fis2( e4.) d8 \nbbar d2. g4\rest \nbbar d'2 \slurDashed c4( b) \nbbar c2( b) \bar "|" \break
  a4( b) g( a) \nbbar fis2 d4 \breathmark \bar "||" \noBreak 
      \once \override Score.SeparationItem #'padding = #2 %% a bit more space for the apeggiobracket
      \arpeggioBracket g4 \arpeggio \nbbar g fis g a \nbbar g2 d4 b' \nbbar b a b c \bar "|" \break
  b2 a4 b \nbbar c b a g \nbbar fis2 \slurSolid g4( c) \nbbar b2( a4.) g8 \nbbar g1 \bar "||" 

alto = \relative c' {
  \partial 4 d4 \nbbar d2 \tieDashed d4 ~ d \nbbar \slurDashed e2( d) \nbbar d4 ~ d d( e) \nbbar d2 ~ d4 b4 \nbbar \slurSolid b( cis) d cis \bar "|" \break
  d2 d4 d \nbbar d2( cis!4.) d8 \nbbar d2. s4 \nbbar d2 \slurDashed e8( fis g4) \nbbar \PhrasingSlurDashed \slurSolid g\(( fis) g2\) \bar "|" \break
  d4 ~ d e ~ e \nbbar d2 d4 \bar "||" \noBreak s4 \nbbar 
      <<  { \voiceTwo } 
    \new Voice = "optional" {\once \override NoteColumn #'force-hshift = #0.1 \voiceTwo \set fontSize = #-3   \tieSolid d1 ~ \nbbar d2.}  >>
  d4 \nbbar d d d d \bar "|" \break
  d2 d4 g \nbbar fis g d d8[ cis!8] \nbbar d2 d4( e) \nbbar \tieSolid d2 ~ d4. b8 \nbbar b1 \bar "||" 

tenor = \relative c { \clef bass
  \partial 4 b'4 \nbbar b2 \tieDashed b4 ~ b \nbbar \slurDashed c2( a) \nbbar g4( a) g ~ g \nbbar g2( fis4) g4 \nbbar g2 a4 a \bar "|" \break
  \slurSolid a( g) fis d \nbbar a'2( g4.) fis8 \nbbar fis2. d4\rest \nbbar b'2 \slurDashed c4( d) \nbbar c2( d) \bar "|" \break
  d4( g,) b( c) \nbbar a2 fis4 \bar "||" \noBreak 
      <<  { \voiceThree } 
    \new Voice = "optional" {\once \override NoteColumn #'force-hshift = #0.1 \voiceThree \set fontSize = #-3 \arpeggioBracket b \arpeggio \nbbar b a b c \nbbar b2. }  >>
  g4 \nbbar g fis g a \bar "|" \break
  g2 fis4 d' \nbbar d d a a \nbbar a2 g \nbbar \slurSolid g( fis4.) g8 \nbbar g1 \bar "||" 

bass = \relative c { \clef bass
  \once \override TextScript #'extra-offset = #'( -0.4 . 5.6 )	
  \partial 4 g'4_\parens \nbbar g2 \tieDashed g4 ~ g \nbbar \slurDashed g2( fis) \nbbar g4( fis) g( c,) \nbbar d2 ~ d4 
      \once \override TextScript #'extra-offset = #'( -0.4 . 5.6 )
      e4_\parens \nbbar e2 d4 a \bar "|" \break
  \slurSolid d( b) fis g \nbbar \tieSolid a2 ~ a4. d8 \nbbar d2. s4 \nbbar b'2 \slurDashed a4( g) \nbbar a2( g) \bar "|" \break
  fis4( g) e( c) \nbbar d2 d4 \bar "||" \noBreak 
      <<  { \voiceTwo } 
    \new Voice = "optional" {\once \override NoteColumn #'force-hshift = #0.1 \voiceTwo \set fontSize = #-3 g, \nbbar \tieUp g1 ~ _\markup {\hspace #-3.0 \normalsize \italic "Without pedals."}  \nbbar g1 \nbbar \set fontSize = #-1 s4. c2\rest s8 \bar "|" \break
    b2\rest b4\rest _\markup { \hspace #5.0 \normalsize \italic "Pedals."}}  >>
  g'4 \nbbar a g fis e \nbbar \slurSolid d( c) b( c) \nbbar \tieDown d2 ~ d4. g,8 \nbbar g1 \bar "||" 

#(ly:set-option 'point-and-click #f)

\paper {
  #(set-paper-size "a4")
  top-margin = 3\mm
  bottom-margin = 5\mm
  print-page-number = ##f
  between-system-space = #0.1
  ragged-last-bottom = ##t
  ragged-bottom = ##t

#(ly:set-option 'point-and-click #f)

\paper {
  #(set-paper-size "a4")
  print-page-number = ##f
  ragged-last-bottom = ##t
  ragged-bottom = ##t


\new ChoirStaff	
	\context Staff = upper << 
	\context Voice = sopranos { \voiceOne \global \soprano }
	\context Voice = altos    { \voiceTwo \global \alto }
	\context Staff = lower <<
	\context Voice = tenors { \voiceOne \global \tenor }
	\context Voice = basses { \voiceTwo \global \bass }

\layout {
		\context { \Score timing = ##f }
		\context { \Score \remove "Bar_number_engraver" }
		\context { \Staff \remove "Time_signature_engraver" }
		\context { \Score \remove "Mark_engraver"  }
		\context { \Staff \consists "Mark_engraver"  }
		\context { \Staff \override Rest #'style = #'classical }
		%%%these next 3 are needed to generate the long square bracket 3rd system 3rd measure
		\context { \ChoirStaff \consists "Span_arpeggio_engraver"}
		\context { \ChoirStaff connectArpeggios = ##t }
		\context { \ChoirStaff \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket }
\midi { 
   \context {
       tempoWholesPerMinute = #(ly:make-moment 72 4)
} %%score bracket

\markup { \hspace #4   %%add space as necc. to center the column
          \column { %% super column of everything
	    \hspace #0.2
	  \line { \small { \hspace #57 \italic {"18th cent.  Tr. F. Oakeley"} "‡," \italic {"1802-80."}} }
	  \line { \small { \hspace #55 "[" \italic {"For the Complete Version, see No. 614."}"]" }}
	    \line { %% a master line of 3 columns
              \column { %% column 1
		\hspace #0.2
          \column {
		\line { \hspace #10 \raise #1.5 \small {"Adeste, fideles."}  }
		  \line { \hspace #2.2 \column { \lower #2.4 \fontsize #8 "O" }   %%Drop Cap goes here
			 \hspace #-1.2    %% adjust this if other letters are too far from Drop Cap
			\column  { \raise #0.0 " COME, all ye faithful," "Joyful and triumphant,"  } }          
	          \line { \hspace #2.5  %%adjust hspace until this line left edge is flush with Drop Cap
			\lower  #1.56  %%adjust this until the line spacing looks right
			\column {   
		          \line {\hspace #-5.0 "O come ye, O come ye to Bethlehem;" }
				"Come and behold him," 
				"Born the King of Angels:"
	           } %% finish stanza 1
		   \hspace #0.2 % adds vertical spacing between verses
		   \line { 
		       \column {	 \line { \hspace #0.2 }
			  \line { \hspace #5.0 \italic     "O come, let us adore him," }
			  \line { \hspace #5.0 \italic     "O come, let us adore him," }
			  \line { \hspace #-1.8 \italic     "O come, let us adore him, Christ the Lord." }
		   }} %% finish refrain
		       }  %% finish Page column 1
	\hspace #4 %%adds horizontal space columns 1 and 2   
	\column { \filled-box #'(0.0 . 0.1) #'( -32 . -1) #0 }       %%Column 2. This is the line dividing the columns 1 and 3. 
	\hspace #4 %%adds horizontal space between columns 2 and 3
	\column { %%start page column 3	
		\hspace #0.2	
		\line { "2    "
		    \column {	     
				"God of God," 
				"Light of Light," 
			\line { \hspace #-5.0 "Lo! he abhors not the Virgin's womb;" }
				"Very God,"
				"Begotten not created:"
	   }} %% end stanza 2
	   	\hspace #0.2 % adds vertical spacing between verses
		\line { "3    "
		    \column {    
				"Sing, choirs of Angels," 
				"Sing in exultation," 
			\line { \hspace #-5.0 "Sing, all ye citizens of heaven above," }
				"Glory to God" 
				"In the highest:"
 	   }}  %% end stanza 3

	  } %% end column 3
	  } %% master line bracket
	  \hspace #0.2
	  \line { \hspace #20 \italic "Unison.  " "4.   "
             \column {    
		     "Yea, Lord, we greet thee," 
		     "Born this happy morning," 
		   \line { \hspace #-5.0  "Jesu, to thee be glory given;" }
		     "Word of the Father," 
		     "Now in flesh appearing:"
 	   }} %% end last stanza
          } %% page super column bracket
} %%markup bracket

%% Amen score block
  \new ChoirStaff
        \context Staff = upper \with { fontSize = #-3  \override StaffSymbol #'staff-space = #(magstep -2)} 
	\context Voice = "sopranos" { \relative c' { \global
	                                             \voiceOne g'1 g1 \bar "||" }}
	\context Voice = "altos"    { \relative c' { \global
	                                              \voiceTwo c1 b1 \bar "||" }}
	\context Lyrics \lyricsto "altos" { \override LyricText #'font-size = #-1  A -- men. }
	\context Staff = lower \with { fontSize = #-3  \override StaffSymbol #'staff-space = #(magstep -2)} 
	\context Voice = "tenors" { \relative c { \global \clef bass
	                                          \voiceThree e1 d1 \bar "||" }}
	\context Voice = "basses" { \relative c { \global \clef bass 
	                                          \voiceFour  c1 g1 \bar "||" }}
\header { breakbefore = ##f piece = ##f opus = ##f tagline = ##f }
\layout { 
	\context { \Score timing = ##f } 
	ragged-right = ##t
	indent = 15\cm
	\context { \Staff \remove Time_signature_engraver }


\midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 72 4) }}  %%Amen midi 

} %% book bracket


Download the files from these links, edit the code in Lily2 or else leave notes in the section below.


Known Problems stygiania 18:39, 18 May 2007 (PDT)

  • The \parenthesize command will only enclose one note. Is there a reasonable tweak? Can slurs be turned sideways to mimic this? Or is it better to leave each part with its own marking in case someone wants to %% out other parts?
  • Having no luck finding a way to enter the left bracket after the breath mark to cross both staves. Joining \arpeggioBracket apparently works only on a piano staff.
  • The spacing of the lyrics is rather strange on this one. I've tried to imitate the original.

Reply by ebykm 9:23, 19 May 2007


  • use postscript parentheses ? or have you tried it on chords ?. regarding left bracket, again use postscript.
  • please note the use of dotted Ties and Slurs, 5 on first staff, last 2 on second staff, first 2 on third staff.

Reply by Jkenny 02:38, 19 May 2007 (PDT)

  • found fixed for the long square left bracket - basically I found a way to make \arpeggio bracket on a ChoirStaff and then make it cross staff. The crucial 3 lines are in the layout block with comments. The last line was thanks to a related discussion on the Lilypond mailing list. Sometimes we don't understand what's going on, but it works...
  • On the parentheses, I have improvised one, using text markup, and extra-offset to position them. What do you think? There are still fake slurs, and finally postscript as fall-backs if we get desparate.
  • Lyric spacing works for me.
  • Amen block - how do you feel about using me new code e.g. as found in 72png Hymn 25 (In the Bleak midwinter). The reason I tried the new code is I thought I saw mention of a bug in the mailing list about set-staff-space not working. I measured the amen blocks and found that although the noteheads are smaller, the staffs are still the same height as in the main music! The new code is longer (and you must change lyric text separately, but does make the staff smaller.

Notes from stygiania 22:57, 19 May 2007 (PDT)

  • Thanks once again, Jack. The bracket and parentheses look really good to me!
  • Regarding the dotted ties/slurs: The last slur in the tenor part on the 4th system also appears dotted but there is no good reason why it would be when the slurs in the other three parts in that spot are not (and the lyrics suggest it wouldn't be dotted). I wonder if this appearance is just a scanning artifact.

Notes from Jkenny 06:18, 20 May 2007 (PDT)

  • My 1933 edition(which may not be 1933 after all) shows that last tenor slur as clearly solid.
  • Anyway there seems to be a reason for the other dotted slurs in that only verse 2 needs them slurred because there's only one syllable there while in other verses there's two. That last slur pertains to the refrain, and there's no reason for a dotted slur in the refrain. So I would suggest make it solid.

QMacrocarpa 13:33, 21 May 2007 (PDT)

  • I agree that the last dashed-looking slur in tenor only should be solid, and the earlier dashed-looking ones should be dashed. We can probably count on some dashed slurs any time the hymn meter says (Irreg.)
  • About the long bracket-- I don't see its bent-in ends in the scan, are those visible in later ed.? Or maybe someone recognizes what it's signifying, and it's usually represented with long square bracket? My ignorance of organ notation (if that's what it is) is extreme.
  • Font size stuff and similar:
  1. The amen block isn't sized in the new way.
  2. I think the 2 lines above lyrics at right should be \small.
  3. Headers above music: I think title, tempo, attribution should all be \small.
  4. Unison. -- some discussion whether should be \small or default. I favor default, as here.
  5. Size of font for text annotations of musical staff? "Without Pedals" and "Pedals" here-- default, or something else?

v3 code loaded stygiania 22:22, 21 May 2007 (PDT)

  • Dani explained the long square bracket in the project forum (telling organist to play notes on tenor line with right hand). The bent ends are on the scan but happen to hit on the staff lines so you really have to squint to see them.
  • I hadn't standardized fonts or Amen block on this one yet since I was waiting for the dashed tie/slur discussion so I could fix all at once.
  • Amen block recoded to new standard.
  • Font sizes standardized (went with small for the pedal markings too because \normalsize looked huge after resetting everything else to \small)
  • Used Dashed ties and slurs because Dotted was practically invisible. Please double-check style on all ties/slurs in hymn. Thanks!

QMacrocarpa 13:58, 22 May 2007 (PDT)

  • Slurs look good in GhostView, and everything dashed/not-dashed looks right to me. A question about slurs in the scan: in the 2nd system, last measure, why is there a slur in the soprano but no corresponding slurs in the other parts? Is that a typo?
  • Not sure about pedal marking size-- looks like same size as Unison. to me (i.e. default size)-- others please weigh in!
  • Uh-oh. What's our convention re: vertical spacing before the amen block? I prefer the way it's done here, but I just cleared another piece (057.png) with a much larger gap of whitespace before the amen block, so we probably need to get consistent (and I'll happily update the file repository if 057.png gets tweaked).

Reply from stygiania 16:39, 22 May 2007 (PDT)

  • The pedal markings are coming out as \small (measured letters and compared to same letters in lyrics attribution). They look larger just because there is no other text in the immediate vicinity for comparison.
  • If I'm reading the code correctly, we aren't specifying an absolute vertical placement (and corresponding white space) before the Amen block (except in very specific cases where we are preventing an "orphan" Amen block)--Lilypond is choosing where to put it. Trying to define this could cause problems with non-A4 sized paper.
  • Ugh, I think you are right about the slurs missing in the original. There should be dashed slurs in the tenor and bass parts and a dashed slur from the F# to the following G in the alto.

Later added stygiania 17:00, 22 May 2007 (PDT)

  • v4 code has the slurs that are missing in system 2 bar 5. Had to use a phrasing slur on the alto line since the one that does appear in the scan should not be dashed but it needs an overriding one to match the others.

Jkenny 17:59, 22 May 2007 (PDT)

  • Yes, indeed, we are not specifying an absolute vertical placement for the amen block unless we are trying that special tweak (see 041.png) where we are trying to stuff the amen block next to the lyrics to force everything in 1 page -- a tweak which I hope isn't needed too often.
  • In general we should have the amen come immediately after the last of the lyrics, with a line space or two in between.
  • In 057png, the absolute vertical placement code is in there so the amen block is all the way down the bottom right corner with a huge white space in between. I think the absolute placement code need not be there, so with your permission, I'll remove them so Q can recompile and reload.
  • And indeed when we do absolute placement, we should try printing out in both A4 and letter sized paper. Q mentioned in an earlier hymn (can't remember which), that in Ghostview the music came all the way to the edge, while it was okay in KPDF? Good thing we are all using different viewers to test for possible problems.

QMacrocarpa 20:40, 22 May 2007 (PDT)

  • Note that some PDF viewers (Acrobat reader on Windows, for instance) will let you fit the image to whatever paper-size you're using, so print-outs may not tell us as much as you'd think, but on the other hand, may not be as necessary either.
  • On the Without Pedals. and so forth staff annotations, I didn't state that clearly: I can tell they are \small in the PDF (ask me about my X-ray font-size-revealing proofing goggles!), but what I'm not sure of is that they are small in the scan. Ruler seems to indicate same height as Unison. (which is default size in PDF).

and more notes QMacrocarpa 14:15, 23 May 2007 (PDT)

  • I like the added slurs in system 2, last measure. Makes more sense that way to me.
  • I'm still for Without pedals. and Pedals. being default size, but want to hear from others, since this is probably another thing to standardize.

Jkenny 09:05, 24 May 2007 (PDT)

  • Okay, I measured "Pedals" with my dividers and they are slightly larger than the Adeste Fideles in the title of the Lyrics below. So they should be default size. Let's change it to default and clear this baby.
  • Shall we use that good ol' F1 trick: when two or more agree, let's just use our best judgement and leave a note for the PPer!

stygiania 22:52, 25 May 2007 (PDT)

  • I agree and thank you for jumping in--connectivity spotty this trip.

Jkenny 07:41, 1 June 2007 (PDT)

  • Fixed Pedals -- default size (previous fix didn;t seem to work). Uploaded version 5, and cleared it.

Project History

    • Lily1 - done by stygiania (Cakewalk midi, reed organ voice)
- Lyrics added by QMacrocarpa.
    • Lily2 - mostly done see notes. stygiania 18:40, 18 May 2007 (PDT)
- found some fixes, please take a look. Jkenny 02:40, 19 May 2007 (PDT)
- I am for making last tenor slur solid. Jkenny 21:36, 20 May 2007 (PDT)
    • Lily3 - comments by QMacrocarpa 13:35, 21 May 2007 (PDT)
- v3 code loaded stygiania 22:23, 21 May 2007 (PDT)
- comments added QMacrocarpa 14:02, 22 May 2007 (PDT)
- v4 code loaded stygiania 17:01, 22 May 2007 (PDT) (add slurs missing in original--see comments)
- added comment agreeing we should not do absolute vert. placement of amen block. Jkenny 18:01, 22 May 2007 (PDT)
- Looking good! Need more opinions on standard font size for staff annotations such as Without pedals. --QMacrocarpa 14:18, 23 May 2007 (PDT)
-Agree on default size for "Pedals". Styg left note saying she may not be around, so I corrected code for her. Jkenny 09:08, 24 May 2007 (PDT)
- minor fix on fonts done. Jkenny 07:45, 1 June 2007 (PDT) Cleared and uploaded!