> > I'm still trying to figure out how to create a custom notehead > > (extended black rectangle) > > Something like this might be a good place to start: > > %%%% > \version "2.18.2" > { > \tweak Stem.transparent ##t > \tweak stencil #(lambda (grob) > (grob-interpret-markup grob #{ > \markup \filled-box #'(0 . 4) #'(-0.5 . 0.5) #0.1 #})) > b' > } > %%%%
Neat one :) I don't think slurs should be used in chants. To solve a similar problem quite a while ago Thomas Morley kindly wrote a function that does that. Including Aaron's code here is another take: %%%%%%%%%%%%%%%% \version "2.19.83" \include "gregorian.ly" \include "lilypond-book-preamble.ly" offsetChord = #(define-music-function (music)(ly:music?) "Return an event-chord with offsetted NoteHeads. Articulations are printed with respect to their corresponding NoteHeads " (let* ((ev-notes (event-chord-notes music))) (make-event-chord (map (lambda (ecn which val) (let ((arts (ly:music-property ecn 'articulations))) ;; set 'articulations of 'NoteEvent (ly:music-set-property! ecn 'articulations (if (not (null? arts)) (map (lambda (a) ;; set a new parent for 'ArticulationEvent (if (music-is-of-type? a 'articulation-event) #{ \tweak after-line-breaking #(lambda (grob) (let* ((note-head (ly:grob-parent grob X)) (nc (ly:grob-parent note-head X)) (nh (ly:grob-array->list (ly:grob-object nc 'note-heads)))) (set! (ly:grob-parent grob X) (list-ref nh which)))) $a #} a)) arts) '())) ;; apply 'X-offset-tweak to every NoteHead #{ \tweak X-offset $val $ecn #})) ev-notes (iota (length ev-notes)) (iota (length ev-notes) 0 1.48))))) chant = \relative c' { \set Score.timing = ##f c'4 a2 %\tweak Stem.transparent ##t \tweak stencil #(lambda (grob) (grob-interpret-markup grob #{ \markup \filled-box #'(0 . 4) #'(-0.5 . 0.5) #0.1 #})) b \divisioMinima g4 a c2 a2 \divisioMaior \offsetChord { a4 g } \offsetChord { g4 a } a2 \finalis } verba = \lyricmode { O God, \once \override LyricText.self-alignment-X = #-1 "help us in our time of need." God have mer -- cy, Grant us peace. } \score { \new Staff << \override Staff.StaffSymbol.line-count = #2 \new Voice = "melody" \chant \new Lyrics = "one" \lyricsto melody \verba >> \layout { \context { \Staff \remove "Time_signature_engraver" \remove "Bar_engraver" \hide Stem } \context { \Voice \override Stem.length = #0 } \context { \Score barAlways = ##t } } } %%%%%%%%%%%%%%%% I've also stopped using the gregorian.ly because too many (for my liking) things get switched off. I use a private version that only includes some of the attributes of gregorian.ly. But that is probably a matter of persona taste. and instead Kind regards, Michael -- Michael Gerdau email: m...@qata.de GPG-keys available on request or at public keyserver