[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Ambrosian Chant Notation
From: |
Michael Gerdau |
Subject: |
Re: Ambrosian Chant Notation |
Date: |
Sun, 12 Jan 2020 15:42:51 +0100 (CET) |
> > 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: address@hidden
GPG-keys available on request or at public keyserver