Dear Aaron,
this is really great!
I defenitely have to learn scheme!
%%%%
\version "2.20.0"
addArticulation =
#(define-scheme-function
(direction articulation)
((number? #f) string?)
(lambda (m)
(if (music-is-of-type? m 'note-event)
(ly:music-set-property! m 'articulations
(cons
(let ((a (make-music 'ArticulationEvent
'articulation-type articulation)))
(if (number? direction)
(ly:music-set-property! a 'direction direction))
a)
(ly:music-property m 'articulations))))
m))
whenPitchAbove =
#(define-scheme-function
(pitch proc)
(ly:pitch? procedure?)
(lambda (m)
(let ((p (ly:music-property m 'pitch)))
(if (and (ly:pitch? p) (ly:pitch<? pitch p))
(proc m)
m))))
whenPitchBelow =
#(define-scheme-function
(pitch proc)
(ly:pitch? procedure?)
(lambda (m)
(let ((p (ly:music-property m 'pitch)))
(if (and (ly:pitch? p) (ly:pitch<? p pitch))
(proc m)
m))))
whenPitchWithin =
#(define-scheme-function
(lower upper proc)
(ly:pitch? ly:pitch? procedure?)
(lambda (m)
(let ((p (ly:music-property m 'pitch)))
(if (and (ly:pitch? p)
(not (ly:pitch<? p lower))
(not (ly:pitch<? upper p)))
(proc m)
m))))
\musicMap \whenPitchBelow b' \addArticulation #DOWN "tenuto"
\musicMap \whenPitchWithin b' d'' \addArticulation "staccato"
\musicMap \whenPitchAbove c'' \addArticulation "accent"
\fixed c'' { \time 6/8 b,4 a, g,8 c d f e <a, c e>4. }
%%%%
On 2020-09-24 5:23 am, Stefan Thomas wrote:
Dear community,
I would like to achieve , in a certain example, that all pitches will
get
automatically an accent sign.
Like this:
Music = { \time 6/8 g 8 r a g c'-> r g d'-> r g e'-> r }
MusikwithAccents = { \time 6/8 g 8 r a g c->' r g d'-> r d e'-> r }
Can this be done with lilypond?
Has someone an idea, how this can be implemented?
Here is one approach of conditionally attaching articulations to notes
based on their pitch: