The English Hymnal - Wiki Music Experiment/054

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>.

Plainsong note ligatures are bracketed together.

Plainsong = c4 d4 [e4 g4] [g4 f4] [e4 d4] f4 [e4 d4 c4] d4 | [c4 e4] g4 [g4 a4] a4
  [a4 g4] [g4 c4] [b4 a4 g4] a4 | [a4 c4] g4 [g4 f4] e4 [d4 c4] d4 [d4 e4] e4 |
  c4 d4 [e4 g4] [g4 f4] [e4 d4] f4 [e4 d4 c4] d2 ||

Soprano = d4 e4 fis4 a4 a4 g4 fis4 e4 g4 fis4 e4 d4 e4 | d4 fis4 a4 a4 b4 b4
  b4 a4 a4 d4 cis4 b4 a4 b4 | b4 d4 a4 a4 g4 fis4 e4 d4 e4 e4 fis4 fis4 |
  d4 e4 fis4 a4 a4 g4 fis4 e4 g4 fis4 e4 d4 e2 ||

Alto = b2 d4 e4 d2 d4 cis4 d4 d2. cis4 | d2 e4 d2 d4
  d4 e4 d4 fis4 fis2. fis4 | d2. d2. cis4 b4 b4 cis2 d4 |
  b2 d4 e4 d2 d4 cis4 b4 d4 cis4 b4 b2 ||

Tenor = g2 a2 b2 a2 b4 a4 g4 fis4 a4 | fis4 a4 a4 fis2 g4
  g4 e4 fis4 a4 a4 b4 cis4 d4 | b2 d4 a4 b4 a4 a4 fis4 b4 a2 a4 |
  g4 g4 a2 fis4 g4 a4 a4 g4 b2 fis4 g2 ||

Bass = g4 e4 d4 cis4 b2 d4 a4 g4 d2. g4 | d2 cis4 d4 b4 g4
  b4 cis4 d2 fis2. b4 | g2 fis4 fis4 g4 d4 a4 b4 g4 a4 fis4 d4 |
  g4 e4 d4 cis4 d2 d4 a4 g4 b2. e2 ||
"JESU, the Father's only Son,"
"Whose death for all redemption won;"
"Before the worlds, of God most high"
"Begotten all ineffably:"
""
"The Father's light and splendour thou,"
"Their endless hope to thee that bow;"
"Accept the prayers and praise to-day"
"That through the world thy servants pay."
""
"Salvation's author, call to mind"
"How, taking form of humankind,"
"Born of a Virgin undefiled."
"Thou in man's flesh becam'st a child."
""
"Thus testifies the present day,"
"Through every year in long array,"
"That thou, salvation's source alone."
"Proceededst from the Father's throne."
""
"Whence sky, and stars, and sea's abyss,"
"And earth, and all that therein is,"
"Shall still, with laud and carol meet,"
"The Author of thine advent greet."
""
"And we who, by thy precious blood"
"From sin redeemed, are marked for God,"
"On this the day that saw thy birth,"
"Sing the new song of ransomed earth:"
""
"For that thine advent glory be,"
"O Jesu, virgin-born, to thee;"
"With Father, and with Holy Ghost,"
"From men and from the heavenly host."
"Amen."

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

%%% 054.png
%%% Hymn 17 VOM HIMMEL HOCH "Criste Redemptor Omnium."
%%% Version 5


\version "2.10"

\include "gregorian-init.ly"

\header {
   dedication = \markup { \center-align {  "THE CHRISTIAN YEAR - CHRISTMAS DAY" \hspace #0.1 }}	
   title = "17"
   arranger = \markup { \small "Mode i." } 
   % *** suppresses "Engraved by Lilypond..." at the bottom of the page 
   tagline =""
}

global =  {
   \set Score.timing = ##f
   \key d \major
   \autoBeamOff
   \set Staff.midiInstrument = "church organ"
}


longnote = {
   % *** this macro contains the settings for the stemless note which is 2x duration of the stemmed white note    
   \once \override NoteHead #'duration-log = #0 
   \once \override Stem #'stencil = ##f
   \once \override NoteColumn #'force-hshift = #'0.4 
}

plainsong = { 
   \clef "vaticana-do3"
   \set fontSize = #3
 
c8 d \[ e \pes g \] \[ g \flexa f \] \[ e \flexa d \] f \[ \virga e \inclinatum d \inclinatum c \] d \bar "|" \[ c \pes e \] g \[ g \pes a \] a \bar " " \break
\[ a \flexa g \] \[ g \pes c' \] \[ b \inclinatum a \inclinatum g \] a \bar "|" \[ a \pes c' \] g \[ g \flexa f \] e \[ d \flexa c \] d \[ d \pes e \] e \bar "" \break
c8 d \[ e \pes g \] \[ g \flexa f \] \[ e \flexa d \] f \[ \virga e \inclinatum d \inclinatum c \] d s8 \bar "||" \break
}

globalAmen = {
   \set Score.timing = ##f
   \key d \major
   \time 2/1
   \set Staff.midiInstrument = "church organ"
   \set Staff.fontSize = #-3
   \override NoteHead #'duration-log = 1 
}

plainsongamen = {  
   \set Score.timing = ##f
   \clef "vaticana-do3"
   \set fontSize = #3
   \override Staff.StaffSymbol #'staff-space = #1.6
   \set Staff.midiInstrument = "church organ"
   \relative c' {
   \[ d,8\melisma \pes e8\melismaEnd \] \[ \override NoteHead #'extra-offset = #'(0.0 . -0.2) d8\melisma 
   \override NoteHead #'extra-offset = #'(-0.38 . 0) \flexa  c8 \pes 
   \override NoteHead #'extra-offset = #'(0.02 . 0.0) d8\melismaEnd \]  \bar "||" }
}  

soprano = \relative c' {
   d8 e8 fis8[ a8] a8[ g8] fis8[ e8] g8 fis8[ e d] e8 \bar "|" d8[ fis8] a8 a8[ b8] b8 \bar "" \break
   b8[ a8] a8[ d8] cis8[ b8 a8] b8 \bar "|" b8[ d8] a8 a8[ g8] fis8 e8[ d8] e8 e8[ fis8] fis8 \bar "|" \break
   d8 e8 fis8[ a8] a8[ g8] fis8[ e8] g8 fis8[ e d] \longnote e4 \bar "||" \break
}

alto = \relative c' { 
   \longnote b4 d8[ e8] \longnote d4 d8[ cis8] d8 \longnote d4. cis8 \bar "|" \longnote d4 e8 \longnote d4 d8 \bar "" \break 
   d8[ e8] d8[ fis8] \longnote fis4. fis8 \bar "|" \once \override Tie #'extra-offset = #'( 0 . -1.0 ) \longnote d4.~ \longnote d4. cis8[ b8] b8 \longnote cis4 d8 \bar "|" \break
   \longnote b4 d8[ e8] \longnote d4 d8[ cis8] b8 d8[ cis8 b8] \longnote b4 \bar "||" \break
}

tenor = \relative c { \clef bass
   \longnote g'4 \longnote a4 \longnote b4 \longnote a4 b8 a8[ g8 fis8] a8 \bar "|" fis8[ a8] a8 \longnote fis4 g8 \bar "" \break
   g8[ e8] fis8[ a8] a8[ b8 cis8] d8 \bar "|" \longnote b4 d8 a8[ b8] a8 a8[ fis8] b8 \longnote a4 a8 \bar "|" \break
   g8~ g8 \longnote a4 fis8[ g8] \longnote a4 g8 \longnote b4( fis8) \longnote g4 \bar "||" \break
}

bass = \relative c { \clef bass
   \once \override NoteColumn #'force-hshift = #'-0.5 g'8 e8 d8[ cis8] \longnote b4 d8[ a8] g8 \longnote d'4. a8 \bar "|" \longnote d4 cis8 d8[ b8] g8 \bar "" \break
   b8[ cis8] \longnote d4 \longnote fis4. b,8 \bar "|" \longnote g'4 fis8 fis8[ g8] d8 a8[ b8] g8 a8[ fis8] d'8 \bar "|" \break
   g8 e8 d8[ cis8] \longnote d4 d8[ a'8] e8 \longnote b4. \longnote e,4 \bar "||" \break
}

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

\book {

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


\score { <<

\new VaticanaStaff { \plainsong }

\new ChoirStaff <<

   \new Staff = "women" <<
      \context Voice = sopranos { \voiceOne \global \soprano }
      \context Voice = altos { \voiceTwo \global \alto } 
                        >> 
   \new Staff = "men"   << 
      \context Voice = tenors { \voiceOne \global \tenor }
      \context Voice = basses { \voiceTwo \global \bass  } 
                        >> 
                >>
>>

\layout { 

   ragged-right = ##f
   % *** makes sure last system spreads right across the page
   ragged-last = ##f

\context { \Score
   \remove "Bar_number_engraver"
   % *** uncomment this to remove system start bar 
   % \override SystemStartBar #'stencil = ##f 
}

\context { \VaticanaStaff
   % *** Increases distance between lines of staff  
   \override StaffSymbol #'staff-space = #1.6            
   % *** Changes staff to black instead of default red
   \revert StaffSymbol #'color
   % *** Makes clef bigger       
   \override Clef #'font-size = #3
   % *** Would make ledger lines black, if there were any
   \revert LedgerLineSpanner #'color
   % *** Makes terminal barline visible 
   \override BarLine #'transparent = ##f
   \remove Custos_engraver 
   \remove Key_engraver
   \override Accidental  #'transparent = ##t
   % **** Moves lines closer together
   %\override VerticalAxisGroup #'minimum-Y-extent = #'(-2 . 0)
}

\context { \Staff
           \override TimeSignature #'transparent = ##t
           \override NoteHead #'duration-log = #1
           \override Stem #'flag-style = #'no-flag 
} 

} % end layout

} % end score



%%% This next score block generates the midi %%%

\score {	
\new ChoirStaff <<
\new Staff = "upper" <<
\context Voice = sopranos { \voiceOne \global \soprano }
\context Voice = altos { \voiceTwo \global \alto }
                      >> 
\new Staff = "lower" <<
\context Voice = tenors { \voiceOne \global \tenor }
\context Voice = bass { \voiceTwo \global \bass }
                    >>
	        >>	  
\midi { 
   \context {
       \Score 
       tempoWholesPerMinute = #(ly:make-moment 80 8) } } 
}

%%% End of midi generation block %%% 



\markup {
   % change number as necessary to centre lyrics block
   \hspace #30   

\column { 

% whole lyrics block is formatted into a single column

% heading section
   \line { \small { \hspace #4 \italic "See also: " "613 Of the Father's heart begotten." } }
   % adds vertical spacing between lines
   \hspace #1  
   \line { \small { \hspace #-18 \smallCaps "Office Hymn. M." \hspace #10 "Christe Redemptor omnium." \hspace #10 \italic "6th cent.  Tr. J. M. Neale." } } 
   % adds vertical spacing between heading and lyrics.
   \hspace #3  
   
% lyrics section 1: double column of verses
% Create a line made up of two columns of verse separated by a vertical line
   \line {
         % first column of verse  
            % return to LH margin
            \hspace #-30
         \column {  
                 \line { \hspace #2.2 
                         \column { \lower #2.4 \fontsize #8 "J" }   %%Drop Cap goes here
                         \hspace #-1    %% adjust this if other letters are too far from Drop Cap
		         \column { \raise #0.0 "ESU, the Father's only Son,"  
                                   "  Whose death for all redemption won;"  } 
                       }          

                 \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 { "Before the worlds, of God most high"
			           "Begotten all ineffably:" } 
                       }

                 
                 } % end first column of verse

         % create some space between first column of verse and the vertical line
         \hspace #7

         % vertical line	
         \column { \filled-box #'(0.0 . 0.1) #'(-10 . 2) #0 }

         % second column of verse
         \column { \line { \hspace #5 "2  " \column { "The Father's light and splendour thou,"
                                                      "Their endless hope to thee that bow;" 
                                                      "Accept the prayers and praise to-day"
                                                      "That through the world thy servants pay." } 
                         }
 
                 } % end second column of verse

   } % end master line

% lyrics section 2: single column of verses

                 	\hspace #3 
                        \line { "3  "
                          \column { 
                                   "Salvation's author, call to mind"
                	           "How, taking form of humankind,"
			           "Born of a Virgin undefiled,"
	         		   "Thou in man's flesh becam'st a child." } }
                 	\hspace #1 
           		\line { "4  "
			  \column {	     
				  "Thus testifies the present day,"
				  "Through every year in long array,"
				  "That thou, salvation's source alone,"
				  "Proceededst from the Father's throne." } }
			\hspace #1 
           		\line { "5  "
			  \column {	     
				  "Whence sky, and stars, and sea's abyss,"
				  "And earth, and all that therein is,"
				  "Shall still, with laud and carol meet,"
				  "The Author of thine advent greet." } }
			\hspace #1 
           		\line { "6  "
			  \column {	     
				  "And we who, by thy precious blood"
				  "From sin redeemed, are marked for God,"
				  "On this the day that saw thy birth,"
				  "Sing the new song of ransomed earth:" } }
	   	       \hspace #1 
           		\line { "7. "
			  \column {	     
				  "For that thine advent glory be,"
				  "O Jesu, virgin-born, to thee;"
				  "With Father, and with Holy Ghost,"
				  "From men and from the heavenly host.     Amen." } }

} % end column that is entire lyrics block

} % end markup

%%% Amen block %%%

\score { << 

<<

\new VaticanaStaff << 
   \new VaticanaVoice = "plainsongAmen" { \plainsongamen }
   \new Lyrics \lyricsto "plainsongAmen" { \override LyricText #'font-size = #-1 { A -- men. } } 
>> % end vaticana staff

\new ChoirStaff << 
   \new Staff = upper << 
       \new Voice = "sopranos" { \relative c' { \globalAmen \voiceOne e8[ fis8] e8[ d8 e8] \bar "||" } }
       \new Voice = "altos"    { \relative c' { \globalAmen \voiceTwo cis8[ d8] cis8[ b8 b8] \bar "||" } } 
                      >>
   \new Staff = lower << 
       \new Voice = "tenors"   { \relative c { \globalAmen \voiceOne \clef bass \longnote a'4 a8[ fis8 g8] \bar "||" } }
       \new Voice = "basses"   { \relative c { \globalAmen \voiceTwo \clef bass a8[ d8] a8[ b8 e,8] \bar "||" } }
                                                                >> 
                     >>
>> % end choir staff 

>>


\layout { 
   % #(layout-set-staff-size 5)
   indent = 13\cm
   %raggedright = ##t
   packed = ##f

\context { \Score 
   timing = ##f 
   \override TimeSignature #'transparent = ##t
   \override SeparationItem #'padding = #2 
   \remove "Bar_number_engraver" }

\context { \VaticanaStaff
   % *** Increases distance between lines of staff  
   \override StaffSymbol #'staff-space = #1.6            
   % *** Changes staff to black instead of default red
   \revert StaffSymbol #'color
   % *** Makes clef bigger       
   \override Clef #'font-size = #3
   % *** Would make ledger lines black, if there were any
   \revert LedgerLineSpanner #'color
   % *** Makes terminal barline visible 
   \override BarLine #'transparent = ##f }

\context { \Staff
           \override StaffSymbol #'staff-space = #(magstep -1) }

} % end Amen layout

} % end Amen score

%%% This next score block generates the amen midi %%%

\score {	
\new ChoirStaff << 
   \new Staff = upper << 
       \new Voice = "sopranos" { \relative c' { \globalAmen \voiceOne e8[ fis8] e8[ d8 e8] \bar "||" } }
       \new Voice = "altos"    { \relative c' { \globalAmen \voiceTwo cis8[ d8] cis8[ b8 b8] \bar "||" } } 
                      >>
   \new Staff = lower << 
       \new Voice = "tenors"   { \relative c { \globalAmen \voiceOne \clef bass \longnote a'4 a8[ fis8 g8] \bar "||" } }
       \new Voice = "basses"   { \relative c { \globalAmen \voiceTwo \clef bass a8[ d8] a8[ b8 e,8] \bar "||" } }
                     >>
>> % end choir staff 	 
 
\midi { 
   \context {
       \Score 
       tempoWholesPerMinute = #(ly:make-moment 80 8) } } 
}

%%% End of amen midi generation block %%% 

} % book bracket

Lily3

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


Notes

Notes by --camilla 06:51, 9 June 2007 (PDT) Can't get text to stop breaking onto a new page, or get rid of the reverse spring warnings when it runs. :-((( Have installed Ghostscript to check the .ps but it falls over: not sure if this is just the way I have installed it or not. Midis sound correct to my cloth ears. :-)

Notes by Jkenny 18:57, 9 June 2007 (PDT)

  • Hi Camilla, I like your heavily commented code. I'm going to follow your style with more comments.
  • The reverse spring warnings happen even when you compile the demo code in the manual or the Snippets repository, so I think it cannot be helped. It doesn't cause any trouble to the output. But may be we should add some sort of reassuring comment in the code itself. I'll see what others on the internet say about this issue.
  • Just a few other comments about code. Is it necessary to wrap all the ligatures in a \melisma ? I found that \[ e \pes g \] works just the same as \[ e \melisma \pes \g \melismaEnd \], and it makes the code less cluttered. And since we are not aligning lyrics to the plainsong, the absence of the \melisma does not matter, and makes the code less cluttered.
  • I also found that there is no need for a separate midi score block. If you just chuck a \midi command expression into the main score block, you will get midi with just the SATB parts. The plainsong notes are not used in the midi -- remember that glitch we found in the preface pieces where the midi ignores all Vaticana staffs and voices.
  • Similarly, the Amen midi - right now, the separate Amen midi score block generates the Amen for the plainsong notes alone. Should we not generate the Amen for the white notes instead (to match the main tune?) So if you chuck a midi command into the Amen main score block, you will get a white note only midi, ignoring the plainsong notes.
  • The pagebreak looks ok to me, and would probably look even better on letter size. I don't think it is possible to even squeeze one verse of lyrics into the first page, so it is better for all the lyrics to go to page 2. The only other thing is that I would pare down the \paper block to a barebones one. We are trying to avoid tweaking paper layout, and leaving as much as possible to defaults as users may want to readjust for other paper sizes). The only things we need are paper size A4 (which is default anyway), ragged bottoms and suppress page number, others are left to default. A barebones \paper block would have these lines commented out (or not present):
 \paper {
    #(set-paper-size "a4")
    %%% between-system-padding = 5\mm
    %%% before-title-space = 0\mm
    %%% after-title-space = 1.5\mm
    %%% top-margin = 3\mm
    %%% bottom-margin = 5\mm
    %%% between-system-space = #0
    % *** suppresses page numbering
    print-page-number = ##f
    ragged-last-bottom = ##t
    ragged-bottom = ##t
  }

Notes by camilla 13:59, 10 June 2007 (PDT)

  • Hello! Oh boy, and the time I spent trying to get rid of those reverse spring warnings. :-((( The comments take up a lot of room, but I stick with them because I get confused a lot. :-) Also, they might help another learner.
  • I typed in all the \melisma and \melismaEnds so the lyrics would be a painless fit... ah, the lyrics which are in a separate block. <ROFL> OK, they're gone. :-)
  • Now the midi. I will get the hang of this, but just now I only have to think about trying to do anything involving midi and my head fills with purple mist. :-) I think I have done it...
  • Hurray, we can get rid of all the horrible paper thingies I don't know what to do with... Gone. :-) Thanks Jack!

QMacrocarpa 14:01, 12 June 2007 (PDT)

  • Very nice whole-note/half-note alignments! :)
  • At top right above music: "Mode i." should be \small
  • 3rd system, next-to-last note in bass should be B instead of D.
  • Lyrics: I wouldn't split verse 2 between two columns, since we don't have the same space constraints as in the original. I would put two complete verses in each of the columns instead.
  • I don't have a strong feeling about it, but similarly, we might consider putting the "Amen." in the lyrics on the same line with the final verse's last line, instead of on the following line, since I think it is on a new line in the original because of horizontal space constraints.
  • About the MIDIs, is it prudent to count on future versions of Lilypond treating the vaticana voice the same way the current version does (that is, ignoring it when generating the MIDI)? Seems a bit chancey...?

camilla 16:28, 12 June 2007 (PDT)

  • Hiya! I too have been admiring the way the notes sit on the page. I notice Jack's code for the whole notes has got offsets in it, and I think that's what's making them look so nice. Nice job Jack!
  • I think I've addressed all your other comments, for which my thanks, in Version 3. I'll have to be guided by you others about the MIDI - I don't know how quickly these formats change or anything. Happy to change the code if wanted. Regards Camilla.

Jkenny 18:29, 12 June 2007 (PDT)

  • Yes Q has a good point about the midi -- so may be we should be conservative about it at the cost of more lines of code -- let's revert to your original stlye of generating midi. At least that way you can be sure the plainsong doesn't ever become midi. Sorry!

stygiania 20:15, 12 June 2007 (PDT)

  • I agree. Revert the midi code and I think this one will be done. :-)

camilla 00:08, 13 June 2007 (PDT)

  • Well, I need the practice . :-) I have put back in a midi generation block based on version 1 - seems to me to be working correctly but bear in mind I don't have a clue what I'm doing. :-)

stygiania 05:49, 14 June 2007 (PDT)

  • Using that logic, should the amen midi also be generated in the same way?

Jkenny 07:58, 14 June 2007 (PDT)

  • Yikes! Styg is right, of course. Right, I am going back to my plainsong pieces to fix them.

camilla 22:58, 14 June 2007 (PDT)

  • Agree - will check the couple I've done too. This one is fixed, I think. Thanks for pointing that out stygiana!

Lily3 cleared, files uploaded styg 19:11, 18 June 2007 (PDT)

Project History

    • Lily1 - done stygiania 20:40, 20 May 2007 (PDT) (plain text + lyrics)
    • Lily2 - done by camilla 06:15, 9 June 2007 (PDT)
    • Lily3 - comments added Jkenny 08:49, 10 June 2007 (PDT)
- thanks! Version 2 up -- camilla 14:06, 10 June 2007 (PDT).
- comments added QMacrocarpa 14:02, 12 June 2007 (PDT)
- all done: Version 3 up. Thanks camilla 16:31, 12 June 2007 (PDT)
- responded about midi - may be need to revert to your old style. Sorry! Jkenny 18:31, 12 June 2007 (PDT)
- it's good to make me face my fear. :-) Arggh!!! - midi! - done. :-) camilla 00:15, 13 June 2007 (PDT)
- comment added stygiania 05:49, 14 June 2007 (PDT)
- agreed with Styg. Jkenny 07:59, 14 June 2007 (PDT)
- fixed; ready? camilla 23:00, 14 June 2007 (PDT)
- Lily3 cleared, files uploaded styg 19:11, 18 June 2007 (PDT)