\version "2.18.2" #(set-global-staff-size 10) incipit = #(define-music-function (parser location incipit-music) (ly:music?) #{ \once \override Staff.InstrumentName.self-alignment-X = #RIGHT \once \override Staff.InstrumentName.self-alignment-Y = ##f \once \override Staff.InstrumentName.padding = #0.3 \once \override Staff.InstrumentName.stencil = #(lambda (grob) (let* ((instrument-name (ly:grob-property grob 'long-text))) (set! (ly:grob-property grob 'long-text) #{ \markup \score { { \context MensuralStaff \with { instrumentName = #instrument-name } $incipit-music } \layout { $(ly:grob-layout grob) line-width = \indent indent = % primitive-eval is probably easiest for % escaping lexical closure and evaluating % everything respective to (current-module). #(primitive-eval '(or (false-if-exception (- indent incipit-width)) (* 0.5 indent))) ragged-right = ##f ragged-last = ##f system-count = #1 } } #}) (system-start-text::print grob))) #}) global = { \set Score.skipBars = ##t \key c \major \override Staff.Clef.full-size-change = ##t \once \override Staff.TimeSignature.stencil = ##f \time 4/2 } discantusNotes = \relative c' { \clef violin c'1 d \bar"||" } altusNotes = \relative c' { \clef "G_8" f1 f \bar "||" } tenorNotes = \relative c' { \clef "G_8" a1 f \bar "||" } bassusNotes = \relative c { \clef bass f,1 bes \bar"||" } discantusIncipit = << \new MensuralVoice = "discantusIncipit" \repeat unfold 2 { s1 \noBreak } { \override Staff.TimeSignature.stencil = ##f \key c \major \clef "petrucci-c1" } >> altusIncipit = << \new MensuralVoice = "altusIncipit" \repeat unfold 2 { s1 \noBreak } { \override Staff.TimeSignature.stencil = ##f \key c \major \clef "petrucci-c3" } >> tenorIncipit = << \new MensuralVoice = "tenorIncipit" \repeat unfold 2 { s1 \noBreak } { \override Staff.TimeSignature.stencil = ##f \key c \major \clef "petrucci-c3" } >> bassusIncipit = << \new MensuralVoice = "bassusIncipit" \repeat unfold 2 { s1 \noBreak } { \override Staff.TimeSignature.stencil = ##f \key c \major \clef "petrucci-c3" } >> myIncipit = \markup \score { \new StaffGroup = choirStaff << \new Voice = "discantusNotes" << \global \set Staff.instrumentName = #"" \incipit \discantusIncipit \discantusNotes >> \new Voice = "altusNotes" << \global \set Staff.instrumentName = #"" \incipit \altusIncipit \altusNotes >> \new Voice = "tenorNotes" << \global \set Staff.instrumentName = #"" \incipit \tenorIncipit \tenorNotes >> \new Voice = "bassusNotes" << \global \set Staff.instrumentName = #"" \incipit \bassusIncipit \bassusNotes >> >> \layout { \context { \Score %% no bar lines in staves or lyrics \remove "Bar_number_engraver" } indent = #0.5 incipit-width = #0.5 } } \score { \new StaffGroup = choirStaff << \set StaffGroup.instrumentName = \myIncipit \new Voice = "discantusNotes" << \global \set Staff.instrumentName = #"" \incipit \discantusIncipit \discantusNotes >> \new Voice = "altusNotes" << \global \set Staff.instrumentName = #"" \incipit \altusIncipit \altusNotes >> \new Voice = "tenorNotes" << \global \set Staff.instrumentName = #"" \incipit \tenorIncipit \tenorNotes >> \new Voice = "bassusNotes" << \global \set Staff.instrumentName = #"" \incipit \bassusIncipit \bassusNotes >> >> \layout { \context { \Score %% no bar lines in staves or lyrics \remove "Bar_number_engraver" } indent = 30 incipit-width = 0.5 } }