The English Hymnal - Wiki Music Experiment/248
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.
Lily2 Code
Edit this section and paste your code between the tags <code><pre> and </pre></code>.
%%% 248.png
%%% Hymn 155 Veni, sancte Spiritus
%%% Version 3
\version "2.10"
\include "gregorian-init.ly"
\header {
title = "155"
subtitle = "Veni, sancte Spiritus."
meter = \markup { \small \italic {"The Golden Sequence."} }
arranger = \markup { \small \italic {"13th cent. Tr. J. M. Neale."}}
opus = \markup { \small "Mode i." }
tagline = ""
}
%%%%%%%%%%%%% Macros
%%% macro settings for stemless long note which is 2x duration of regular white note
ln = {\once \override NoteHead #'duration-log = #0
\once \override Stem #'stencil = ##f
\once \override NoteColumn #'force-hshift = #'0.4 }
%%% same as above but uses x-offset instead of force-hshift
lnb = {\once \override NoteHead #'duration-log = #0
\once \override Stem #'stencil = ##f
\once \override NoteHead #'X-offset = #0.8 }
%%% setting to hide accidental. As timing is turned off, accidentals have to be set manually
noacci = \once \override Staff.Accidental #'transparent = ##t
%%% prints four dots in a column, This will be used by other macros to create repeat signs.
fdots = \markup { \override #'(baseline-skip . 1.0)
\column { \with-color #black { \fontsize #0 . \fontsize #0 . \fontsize #0 . \fontsize #0 .} }}
%%% Prints a repeat sign glyph comprising 4 dots then two thin bars. This is used to end a repeat.
%%% This macro works by replacing the glyph used by the \bar "||" function.
fdendrepeat = {\once \override Staff.BarLine #'stencil = #ly:text-interface::print
\once \override Staff.BarLine #'text = \markup { \line { \raise #1.4 \override #'(baseline-skip . 1.0)
\column { \with-color #black {
\fontsize #2 .
\fontsize #2 .
\fontsize #2 .
\fontsize #2 .} }
\hspace #-1 \filled-box #'(0 . 0.15) #'(-2 . 2) #0
\hspace #-0.9 \filled-box #'(0 . 0.15) #'(-2 . 2) #0
} }
\bar "||"}
%%% Prints a repeat sign glyph comprising 4 dots then two thin bars then 4 dots. Used to end a repeat and then start another repeat.
%%% This macro works by replacing the glyph used by the \bar "||" function.
doublerepeat = {\once \override Staff.BarLine #'stencil = #ly:text-interface::print
\once \override Staff.BarLine #'text = \markup { \line { \raise #1.4 \override #'(baseline-skip . 1.0)
\column { \with-color #black { \fontsize #2 . \fontsize #2 . \fontsize #2 . \fontsize #2 . } }
\hspace #-1 \filled-box #'(0 . 0.15) #'(-2.0 . 2.0) #0
\hspace #-0.9 \filled-box #'(0 . 0.15) #'(-2.0 . 2.0) #0
\hspace #-1.0 \raise #1.4 \override #'(baseline-skip . 1.0)
\column { \with-color #black { \fontsize #2 . \fontsize #2 . \fontsize #2 . \fontsize #2 . } }
} }
\bar "||"}
%%%%%%
%%%%%% Equivalent macros for plainsong
%%%%%%
%%% prints three dots in a column, suitable for plainsong staffs
tdots = \markup { \override #'(baseline-skip . 1.6)
\column { \with-color #black { \fontsize #0 . \fontsize #0 . \fontsize #0 . } }
}
%%% Prints a repeat sign glyph comprising 3 dots and two thin bars. Used to end a repeat on a plainsong staff.
%%% This macro works by replacing the glyph used by the \bar "||" function.
ptdendrepeat = {\once \override Staff.BarLine #'stencil = #ly:text-interface::print
\once \override Staff.BarLine #'text = \markup { \line { \raise #1.4 \override #'(baseline-skip . 1.6) \column { \with-color #black { \fontsize #2 . \fontsize #2 . \fontsize #2 . } }
\hspace #-1 \filled-box #'(0 . 0.15) #'(-2.4 . 2.4) #0
\hspace #-0.9 \filled-box #'(0 . 0.15) #'(-2.4 . 2.4) #0
} }
\bar "||"}
%%% Prints a repeat sign glyph comprising 3 dots then two thin bars then 3 dots. Used to end a repeat and then start another repeat on a plainsong staff.
%%% This macro works by replacing the glyph used by the \bar "||" function.
pdoublerepeat = {\once \override Staff.BarLine #'stencil = #ly:text-interface::print
\once \override Staff.BarLine #'text = \markup { \line { \raise #1.4 \override #'(baseline-skip . 1.6)
\column { \with-color #black { \fontsize #2 . \fontsize #2 . \fontsize #2 . } }
\hspace #-1 \filled-box #'(0 . 0.15) #'(-2.4 . 2.4) #0
\hspace #-0.9 \filled-box #'(0 . 0.15) #'(-2.4 . 2.4) #0
\hspace #-1.0 \raise #1.4 \override #'(baseline-skip . 1.6)
\column { \with-color #black { \fontsize #2 . \fontsize #2 . \fontsize #2 . } }
} }
\bar "||"}
%%% push a tie slightly to the right. Sometimes needed when using \lnb above.
tiepush = \once \override Tie #'extra-offset = #'(0.4 . 0.0)
%%% more space: force more space between notes
morespace = \once \override Score.SeparationItem #'padding = #5
%%%%%%%%%%%%%%%%%%% End of Macro Definitions
%%% plainsong voice
plainsong = { \relative c {
\clef "vaticana-do3"
\set fontSize = #3
c8 d \morespace e \morespace f \morespace \[ e \flexa d \] \morespace c \morespace d \bar "|" \morespace f \morespace g \morespace a \morespace bes \morespace \[ \virga a \inclinatum g \inclinatum f \] \bar "" \break
g a \bar "|" c, d e f \[ \virga f \inclinatum e \inclinatum d \] c d \pdoublerepeat a' c d \bar "" \break
d \[c \flexa \noacci b \] c d \bar "|" c a \[ c \flexa b \] g \[ f \flexa e \] d c \bar "|" \break
%%pp2
g' f \[ g \pes a \] g \[ \virga f \inclinatum e \inclinatum d \] c d \pdoublerepeat d' d \[ c \flexa b \] \bar "" \break
c \[ d \flexa c \] b a \bar "|" \noBreak f d c d f g f \bar "|" \[ g \pes a \] bes \bar "" \break
a g \[ \virga f \inclinatum e \inclinatum d \] c d \pdoublerepeat a' c \[ b \flexa a \] b \[ c \flexa b \] \bar "" \break
%%pp3
a g \bar "|" a a \[ f \flexa e\] f \[ g \flexa f \] e d \bar "|" e g a \bar "" \break
g c b a \pdoublerepeat d d g, a c b a \bar "|" a bes \bar "" \break
\morespace \[ a \flexa g \] a f g f \bar "|" e g a d, f e d \ptdendrepeat
}
}
%%% SATB voices
global = {
\key d \major
\autoBeamOff
\set Staff.midiInstrument = "church organ"
}
soprano = \relative c' {
\tag #'vOneTwo { d8 e fis g fis[ e] d e \bar "|" g \stemUp a b c b[ a g]
a b \bar "|" d, e g a g[ fis e] d e \doublerepeat } \tag #'vThreeFour { b' d e
e d[ \noacci cis] d e \bar "|" d b d[ cis] a g[ fis] e d
%%pp2
a' g a[ b] a g[ fis e] d e \doublerepeat } \tag #'vFiveSix { e' e d[ cis]
\once \override Score.SeparationItem #'padding = #4 d e[ d] cis b \bar "|" g e d e g a g \bar "|" \noBreak a[ b] c!
\once \override Score.SeparationItem #'padding = #4 b a g[ fis e] d e \doublerepeat } \tag #'vSevenEight { b' d \noacci cis[ b] cis d[ cis]
%%pp3
b a \bar "|" b b g[ fis] g a[ g] fis e \bar "|" fis a b
a d cis b \doublerepeat } \tag #'vNineTen { e e a, b d cis b \bar "|" b c
b[ a] b g a g \bar "|" fis a b e, g fis e \fdendrepeat }
}
alto = \relative c' {
\tag #'vOneTwo { b8 ~ b \ln d4 d8[ b] b b \bar "|" \ln d4 ~ d8 e \ln e4.
fis8 g \bar "|" d b d c \ln d4{ c!8 } b b \doublerepeat } \tag #'vThreeFour { e fis e
g \ln a4 fis8 g \bar "|" fis g \ln a4 fis8 \ln d4 \noacci cis8 d
%%pp2
\ln d4 ~ \ln d4 ~ d8 \ln d4{c!8} b b \doublerepeat } \tag #'vFiveSix { g' g \ln fis4 ~
fis8 g[ a] ~ a d, \bar "|" d c! b c! b d b \bar "|" \ln d4 c!8
d ~ d ~ \ln d4{ c!8} b b \doublerepeat } \tag #'vSevenEight { e fis e[ d] e \ln d4
%%pp3
d8 d \bar "|" d d \ln d4 b8 c![ d] ~ d b \bar "|" d fis fis
fis a a fis \doublerepeat } \tag #'vNineTen { e e e fis a a fis \bar "|" g g
\ln fis4 fis8 e fis d \bar "|" \ln d4 ~ d8 c! \ln d4 b8 \fdendrepeat }
}
tenor = \relative c { \clef bass
\tag #'vOneTwo { g'8 ~ g a b ~ b[ g] fis g \bar "|" g fis g g g[ a b]
d d \bar "|" a g g e \ln g4 ~ { g8 } g g \doublerepeat } \tag #'vThreeFour { g a cis
b \ln a4 b8 b \bar "|" b d d[ a] cis b[ a] a fis
%%pp2
fis g \ln fis4 ~ fis8 \ln g4 ~ { g8} g g \doublerepeat } \tag #'vFiveSix { b b \ln d4 ~
d8 b[ a] ~ a g \bar "|" b g ~ g g ~ g fis g \bar "|" fis[ g] g ~
g fis \ln g4 ~ { g8} g g \doublerepeat } \tag #'vSevenEight { g a a[ fis] g \ln a4
%%pp3
g8 fis \bar "|" g fis \ln g4 ~ g8 e[ d] fis g \bar "|" a d d
d d e d \doublerepeat } \tag #'vNineTen { cis cis e d d e d \bar "|" d e
\ln d4 d8 b d b \bar "|" a fis g g b b g \fdendrepeat }
}
bass = \relative c { \clef bass
\tag #'vOneTwo { g'8 e d g, \ln b4 ~ b8 e \bar "|" b d g c, \ln e4.
d8 g \bar "|" fis e b a \ln b4{ c!8 } g e \doublerepeat } \tag #'vThreeFour { e' d a'
e \lnb fis4 b,8 e \bar "|" b' g \ln a4 fis8 g[ d] a d
%%pp2
d b d[ b] d \lnb b4 { c!8} g' e \doublerepeat } \tag #'vFiveSix { e e \tiepush \lnb b'4 ~
b8 e,[ fis] ~ fis g \bar "|" g c,! g c! e d g, \bar "|" d'[ g] e
g d \lnb b4 { c!8} g e \doublerepeat } \tag #'vSevenEight { e' d a[ b] e \lnb fis4
%%pp3
g8 d \bar "|" g, \tiepush b ~ \lnb b4 e8 a,[ b] ~ b e \bar "|" d d b
d fis a b \doublerepeat } \tag #'vNineTen { a a cis b fis a b \bar "|" g c,!
\lnb d4 b8 e d g \bar "|" d d g, c! g b e \fdendrepeat }
}
wordsA = \lyricmode {
\override LyricText #'font-size = #-1.
\override LyricHyphen #'length =#0.48
\override LyricHyphen #'thickness =#1.8
"1 Come," thou ho -- ly Par -- a -- clete, And from thy ce -- "les -"
\once \override LyricText #'self-alignment-X = #0.8 "- tial" seat Send thy light and bril -- lian -- cy: "3 Come," of com --
\once \override LyricText #'self-alignment-X = #0.8 "- for" -- ters the best, Of the soul the sweet -- est guest,
Come in toil re -- "fresh " -- ing -- ly; \once \override LyricText #'self-alignment-X = #0.8 "5 O" thou Light,
most pure and blest, Shine with -- in the in -- most breast Of thy
faith -- ful "com " -- pa -- ny. "7 What" is soil -- ed, make
thou pure; What is wound -- ed work its cure; What is parch --
\once \override LyricText #'self-alignment-X = #0.8 "- ed," fruc -- ti -- fy; "9 Fill" thy faith -- ful, who con -- fide In thy
\once \override LyricText #'self-alignment-X = #0.8 power to guard and guide, With thy seven -- fold Mys -- te -- ry.
}
wordsB = \lyricmode {
\override LyricText #'font-size = #-1.
\override LyricHyphen #'length =#0.48
\override LyricHyphen #'thickness =#1.8
\once \override LyricText #'self-alignment-X = #0.6
"2 Fa" -- ther of the poor, draw near; Gi -- ver of all gifts,
be here; Come, the soul's true ra -- dian -- cy: \once \override LyricText #'self-alignment-X = #0.2 "4 Thou" in la --
\once \override LyricText #'self-alignment-X = #0.4 "- bour" rest most sweet, Thou art sha -- dow from the heat,
Com -- fort in ad -- "ver " -- si -- ty. \once \override LyricText #'self-alignment-X = #0.1 "6 Where" thou art
not, man hath nought; Ev -- ery ho -- ly deed and thought Comes
from thy " Di " -- " vi " -- ni -- ty. "8 What" is ri -- gid, gent --
\once \override LyricText #'self-alignment-X = #0.8 "- ly" bend; What is fro -- zen, warm -- ly tend; Strength -- en what
goes err -- ing -- ly. "10. Here" thy grace and vir -- tue send; Grant \set associatedVoice = "altos" sal --
\once \override LyricText #'self-alignment-X = #0.0 "- va " -- \set associatedVoice = "sopranos" " tion" in the end, And in heaven fe -- li -- ci -- ty.
}
#(ly:set-option 'point-and-click #f)
\book {
\paper {
#(set-paper-size "a4")
%% annotate-spacing = ##t
print-page-number = ##f
ragged-last-bottom = ##t
ragged-bottom = ##t
}
%%% Score block
\score {
<<
\context VaticanaStaff
<<
\new VaticanaVoice = "cantus" { \plainsong }
>> % end vaticana staff
\context ChoirStaff <<
\context Staff = upper <<
\context Voice = sopranos { \voiceOne \global \soprano }
\context Voice = altos {\voiceTwo \global \alto }
>>
\new Lyrics \lyricsto sopranos {\set alignAboveContext = #"upper" \override LyricSpace #'minimum-distance = #1.8 \wordsA }
\new Lyrics \lyricsto sopranos {\set alignAboveContext = #"upper" \wordsB }
\context Staff = "lower" << \clef bass
\context Voice = tenors { \voiceOne \global \tenor }
\context Voice = bass { \voiceTwo \global \bass }
>>
>>
>>
\layout {
ragged-right = ##f
ragged-last = ##f
\context { \Score timing = ##f }
\context { \Score \override TimeSignature #'transparent = ##t }
\context { \Score \remove "Mark_engraver" }
\context { \Staff \consists "Mark_engraver" }
% \context { \VaticanaStaff Clef #'break-visibility = #begin-of-line-visible }
% *** Needed to produce beamed minims - which are quavers in disguise
\context { \Staff \override NoteHead #'duration-log = #1 }
\context { \Staff \override Stem #'flag-style = #'no-flag }
\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
\remove Custos_engraver
% *** needed for certain tweaks
\consists "Mark_engraver"
\remove Key_engraver
\override Accidental #'transparent = ##f }
} % end layout
} % end score
%%% A separate score block to generate the midi minus the plainsong voice
%%% Since minims are quavers in disguise, tempo has to be set accordingly, tempo set to 2=80
\score {
\new ChoirStaff <<
\new Staff = "upper" <<
\context Voice = sopranos {\voiceOne \global \keepWithTag #'vOneTwo \soprano \keepWithTag #'vOneTwo \soprano
\keepWithTag #'vThreeFour \soprano \keepWithTag #'vThreeFour \soprano
\keepWithTag #'vFiveSix \soprano \keepWithTag #'vFiveSix \soprano
\keepWithTag #'vSevenEight \soprano \keepWithTag #'vSevenEight \soprano
\keepWithTag #'vNineTen \soprano \keepWithTag #'vNineTen \soprano
}
\context Voice = altos {\voiceTwo \global \keepWithTag #'vOneTwo \alto \keepWithTag #'vOneTwo \alto
\keepWithTag #'vThreeFour \alto \keepWithTag #'vThreeFour \alto
\keepWithTag #'vFiveSix \alto \keepWithTag #'vFiveSix \alto
\keepWithTag #'vSevenEight \alto \keepWithTag #'vSevenEight \alto
\keepWithTag #'vNineTen \alto \keepWithTag #'vNineTen \alto
}
>>
\new Staff = "lower" <<
\context Voice = tenors {\voiceOne \global \keepWithTag #'vOneTwo \tenor \keepWithTag #'vOneTwo \tenor
\keepWithTag #'vThreeFour \tenor \keepWithTag #'vThreeFour \tenor
\keepWithTag #'vFiveSix \tenor \keepWithTag #'vFiveSix \tenor
\keepWithTag #'vSevenEight \tenor \keepWithTag #'vSevenEight \tenor
\keepWithTag #'vNineTen \tenor \keepWithTag #'vNineTen \tenor
}
\context Voice = bass {\voiceTwo \global \keepWithTag #'vOneTwo \bass \keepWithTag #'vOneTwo \bass
\keepWithTag #'vThreeFour \bass \keepWithTag #'vThreeFour \bass
\keepWithTag #'vFiveSix \bass \keepWithTag #'vFiveSix \bass
\keepWithTag #'vSevenEight \bass \keepWithTag #'vSevenEight \bass
\keepWithTag #'vNineTen \bass \keepWithTag #'vNineTen \bass
}
>>
>>
\midi {
\context { \Score tempoWholesPerMinute = #(ly:make-moment 80 8) }
}
}
} % end book
Lily3 Notes
Copy the Lilypond source to your computer and compile it to create MIDIs and a PDF to check. Leave notes here, or edit the code in Lily2 and leave notes describing the changes. After errors are corrected, the piece is declared "Cleared" and uploaded to the repository.
If you can't compile Lilypond, use the links here:
Original scan: 248.png
Links to L2 output version 1:
Links to L2 output version 2:
Links to L2 output version 3:
Notes by L2 Jkenny 23:31, 7 August 2007 (PDT)
- Yes indeed, this was the first plainsong ever done, during the proof-of-concept, before the project was started.
- Fortunately I managed to find the old code and revised it.
- Note the complex pattern of repeats.
- The midi sounded strange but then I am not familiar with how plainsong should sound like.
Notes by L3 KenJ 20:04, 19 September 2007 (PDT)
- Title: put period after "Spiritus".
- Lyrics, end of first system: syllables should line up with notes. Probably best to move plainsong group further right, and move first hyphen between "ce-les..." further right to center it more, like in "Par-a..." earlier.
- System 2, lyrics, verse 1: in the image, I see no semicolon after seat.
- end of verse 2: probably should be colon after ra-dian-cy, as in verse 1 above it.
- System 3, plainsong, note two of group two (note three overall) looks like it has a tail or down-stem, which I do not see in the image (even at different magnifications).
- lyrics lines: insert hyphen before start of each continuation of verses.
- System beginning "most pure...": extend continuing-ties (the one on the bass note doesn't even look like a tie). The continuing-tie of the next system might be OK. What do you think? Feel free to extend it a little if you wish.
- Just a note about grave accents in inline lyrics. They are probably not necessary inline as the hyphenation indicates whether syllable is pronounced. Thus, two of the following notes (re: grave accents) may (should?) be ignored.
- System beginning "faith-ful": I believe there should be a grave accent over the "e" in "soil-ed" to pronounce it. It can be seen better on 251png(not much better, perhaps, but it's there.
- third plainsong group: line-up problem same as (second L3 note) above.
- System beginning "-ed, fructify": grave accent over "e" of "-ed" (same as L3 note above).
- System beggning "power to guard": insert hyphen before bottom lyric verse ("-va..." of continued hyphenation).
Notes by L2 Jkenny 08:01, 20 September 2007 (PDT)
- Added period after title.
- Lyrics end of first line - realigned syllables of lyrics as best as I could -- take a look
- Yes, no semi-colon after seat - removed.
- end of verse 2 - changed to colon
- System 3, plainsong, note two of group two - strange tail. Turned out to be an explicit natural - suppressed.
- Lyric lines - inserted the hyphens before continuation of verses - this was not a Lilypond default behaviour and had to be manually tweak.
- System beginning "most pure..." - forced longer ties, also for the one below in the next system.
- On grave accents - I agree, may be they need not be present in the case of inline lyrics. In any case I don't see them in the image, and they are also not there in the inline lyrics of this piece in the 1933 ed. So I vote we leave out the grave accents.
- fixed lyrics alignment *re-fresh-ing-ly" and "ad-ver-si-ty"
- About the "-ed" grave accent - similarly this is not present in 1933 edition, so we leave it out?
- System begining "power to guard" - inserted hyphen before "va" in "sal-va-tion".
- V2 up.
Notes by L3 KenJ 18:47, 22 September 2007 (PDT)
- Lyrics, end of first system: good job, but I think the last hyphen sticks too far out.
- end of verse 2: probably should be colon after ra-dian-cy, as in verse 1 above it. The semicolon is still there.
- lyrics lines: the hyphen before start of each continuation of verses seems shorter than the others inline. It looks like you used a different character.
- I also vote to leave grave accents out of inline verses as the hyphens clearly take their place inline. Out-of-line lyrics use grave accents because they look better than hyphens in plaintext.
Notes by L2 Jkenny 05:59, 23 September 2007 (PDT)
- Hyphens: inline hyphens are inserted by Lilypond itself, using its own special glyph. For the start of each continuation, Lilypond does not insert hyphens by default, so these are mimicked using the regular hyphen character. (You can see that the shapes are slightly different at 1000X magnification. Lilypond's hyphen has rounded tips) I tried using using various Unicode characters, but the en-dash and em-dash were both longer than Lilypond's hyphen glyph, and the keyboard hyphen is a little shorter. I have now forcibly set dimensions to Lilypond's hyphens (length 0.48 and thickness 1.8) so that they look close to the size of a keyboard hyphen. Been fiddling with the numbers a lot but there's only so much that can be done. Hope it looks ok.
- End of first system - "ce - les -" etc. The last hyphen sticking out too much is Lilypond's default behaviour which I can't change. But I removed it, and forced a text hyphen that sticks out less.
- end of Verse 2 - added colon after "radiancy"
- V3 up.
KenJ cleared, so uploaded to repository. Jkenny 02:09, 25 September 2007 (PDT)
Project History
- - fixed. Jkenny 08:04, 20 September 2007 (PDT)