%% Works with other sizes: %#(set-global-staff-size 25) %#(set-global-staff-size 16) %%%%% Defs to be saved as "modernGregorian.ily" %%%%%%%%% %%%% Defining new grobs: lst = \once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup\concat { \hspace #-.21 \lower #.1 \override #'(thickness . 1.3) \draw-line #'(0 . -3.5) \hspace #-.12 \musicglyph #"noteheads.s2" \hspace #-.21 } #})) tst = \once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup\concat { \hspace #-.2 \override #'(thickness . 1.3) \lower #.2 \draw-line #'(0 . 1) \hspace #-.1 \musicglyph #"noteheads.s2" \hspace #-.21 } #})) sst = \once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup\concat { \hspace #-.21 \override #'(thickness . 1.3) \lower #.2 \draw-line #'(0 . 1.5) \hspace #-.1 \musicglyph #"noteheads.s2" \hspace #-.21 } #})) mst = \once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup\concat { \hspace #-.21 \override #'(thickness . 1.3) \lower #.2 \draw-line #'(0 . 2) \hspace #-.1 \musicglyph #"noteheads.s2" \hspace #-.21 } #})) %{ % old: %% note head with ledger line led = { \once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup\concat { \hspace #-.26 \musicglyph #"noteheads.s2" \hspace #-1.62 \override #'(thickness . 2) \draw-line #'(1.46 . 0) } #})) } %} %% Ornament function orn = #(define-music-function (parser location ornSpacer) (number?) #{ \once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup\concat { \hspace #-.21 \musicglyph #"noteheads.s2" \hspace #(+ -.6 ornSpacer) \raise #.17 \fontsize #-6 \rotate #-50 \musicglyph #"brackettips.down" \hspace #-.21 } #})) #}) %% Left aligning lyric : lal = \once\override LyricText.self-alignment-X = #LEFT %% Defining grouped note and dedicated context: gregorianContext = { \cadenzaOn \omit Stem \omit Clef \omit TimeSignature \omit StaffSymbol \omit Dots \omit Rest \override SpacingSpanner.packed-spacing = ##t \override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup\concat { \hspace #-.21 \musicglyph #"noteheads.s2" \hspace #-.21 } #})) \override Accidental.extra-offset = #'(-.2 . 0) \override LedgerLineSpanner.length-fraction = #.6 \override LedgerLineSpanner.minimum-length-fraction = #.6 } group = #(define-music-function (parser location mus) (ly:music?) #{ \once\override NoteHead.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup\concat { \hspace #-2 \score { \transpose c c' { $mus } \layout { indent = 0 \context { \Score \gregorianContext } } } } #})) #}) melisma = #(define-music-function (parser location mus) (ly:music?) #{ { \group { $mus } b } #}) \layout { \context { \Score \omit TimeSignature } \context { \Staff \omit Stem } } %%%%%%%%%%%% end of "modernGregorian.ily" %%%%%%%%% %%%%%%%%%%% Example %%%%%%%%%%%%%% %\version "2.18.2" %\pointAndClickOff %\inculde "modernGregorian.ily" \paper { indent = 0 top-margin = 15 left-margin = 20 right-margin = 20 tagline = ##f } \header { title = \markup { \bold "4b." \normal-text "XV. zsoltár" } } \markup\vspace #2 % <= put some vertical space here myMelody = \transpose c c' { \clef G d d d \melisma { f g \lst a } \orn #1 g g \melisma { g a \lst c' } a \melisma { \lst a \tst g a \lst c' \mst g \lst a \tst g \tst f } \bar "'" a c' \melisma { \lst c' \tst b \tst a } \bar ""\break \melisma { b c' \lst d' \tst c' \sst a a b \lst c' \tst b \tst a } \melisma { g a \lst c' \sst a \tst g \lst a } \melisma { g a \lst c' \sst a } \bar "|" f \melisma { a \lst c' } \melisma { c' \lst d' \orn #0 c'} c' \melisma { c' \lst d' \sst b } \melisma { c' \lst d' } \melisma { \lst d' \sst b c' \lst d' } \melisma { a b \lst c' \tst b \tst a \tst g \lst a } \bar ""\break \melisma { \lst a \tst g } \bar "'" a \melisma { a \lst c' \tst b \sst g } \melisma { c' c' } \melisma { \lst d' \tst c' \tst b \lst c' \sst a \tst g } \melisma { \lst a \tst g \lst a \tst g \tst f \lst g } \melisma { \lst g \tst f } \bar "|" f g a \melisma { g \lst a } \orn #1 g g \bar "" \break \melisma { g \lst a } \melisma { \lst f \tst e } \melisma { d \lst g } \melisma { g \lst a \sst f \tst e \tst d } \melisma { %% ledger line causes offests, so here's some adjustment: \override NoteHead.extra-offset = #'(.8 . 0) d \lst f \sst d \revert NoteHead.extra-offset %% and here goes the ledger line: \tst c %% => see also lyric offsets !! %%%%%% ? ? %%%%% \override NoteHead.extra-offset = #'(-.7 . 0) d \lst f \sst d \revert NoteHead.extra-offset } \bar "'" g \melisma { g \lst a \tst g \tst f g \lst a } g \melisma { g a \lst c' \sst a a b \lst c' \tst b \tst a } \melisma { g a \lst c' \sst a \tst g \lst a } \melisma { \lst a \tst g } \bar "|." \break c' c' c' \melisma { c' \lst d' \tst c' \lst c' \sst a \tst g } \melisma { a \lst c' } c' \bar "'" c' c' \melisma { c' c' } \melisma { a \lst c' } \melisma { g a \lst c' \sst a } \melisma { \lst a \tst g } \bar "|" g \melisma { f \lst g } \bar "" \break g \melisma { g \lst a } \orn #2 g g \melisma { a \lst c' \sst a \tst g a \lst c' \sst a } \melisma { g \lst a \sst f } \melisma { g \lst a } \melisma { a b c' \lst d' c' \lst c' \tst b \tst a } \melisma { a \lst c' \sst a \tst g r \lst a \tst g } \bar "|." \melisma { f r r a \lst c' r r c' } \bar "|." } myLyrics = \lyricmode { \set stanza = \markup\box\pad-markup #.5 \bold "4b" Meg- is- mer- tet- ted % or: % Meg -- is -- mer -- tet -- ted vé- lem, U- \lal ram az é- let \lal út- \lal ja- \lal it, \set stanza = #"*" \lal be- töl- tesz vi- gas- sá- gal \lal en- gem a te szí- \lal ned \lal e- lőtt gyö- nyö- rű- ség- gel a te job- bod \lal fe- %% special lyric offset <= see ledger lines issue: \lal \once\override LyricText.X-offset = #1 lől ö- \lal rök- kön \lal ö- \lal rök- ké. \set stanza = #"V)" Tarts meg en- \lal gem, U- ram, mert te- ben- ned \lal bíz- tam, mon- dám az Úr- nak: én \lal Is- te- \lal nem \lal vagy \lal te. \set stanza = #"*" \lal Betöltesz. } \score { << \cadenzaOn \new Voice = MyMelody \myMelody \new Lyrics \lyricsto MyMelody \myLyrics >> \layout { \context { \Lyrics \override VerticalAxisGroup.staff-affinity = ##f } } }