[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: vertical shift of trill
From: |
Jean Abou Samra |
Subject: |
Re: vertical shift of trill |
Date: |
Sat, 6 Aug 2022 15:55:41 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 |
Hi Valentin,
Le 06/08/2022 à 15:05, Valentin Petzel a écrit :
But we can in fact implement a simple function that tries to fit the
TrillSpanner (or in fact any spanner) to the notes. Consult the appended file
for details.
FYI, the bulk of this function can be simplified using
ly:relative-group-extent. That said, there's a much simpler
way. Your function is essentially reimplementing part of
the side-position-interface. TrillSpanner has its Y offset
computed by side-position-interface::y-aligned-side, so apart
from outside-staff-priority handling, it will avoid objects
in its side-support-elements array. The problem here is that
by default, LilyPond doesn't fill in this array. On the other
hand, Trill_spanner_engraver fills a note-columns array
which contains exactly what you want, so you can just use that:
\override TrillSpanner.meta.object-callbacks.side-support-elements =
#(lambda (grob)
(ly:grob-object grob 'note-columns))
Add \override TrillSpanner.staff-padding = ##f and
side-position-interface::y-aligned-side will no longer
push the object out of the staff.
Also, instead of defining functions tweaking the direction,
I'd suggest allowing the syntax with _ and ^ by looking
at the event's direction property.
Giving:
\version "2.22.0"
\layout {
\context {
\Score
\override TrillSpanner.outside-staff-priority = ##f
\override TrillSpanner.staff-padding = ##f
\override TrillSpanner.meta.object-callbacks.side-support-elements =
#(lambda (grob)
(ly:grob-object grob 'note-columns))
\override TrillSpanner.direction =
#(lambda (grob)
(let ((ev (event-cause grob)))
(ly:event-property ev 'direction UP)))
}
}
mus = \relative c'' {
<<{ \pitchedTrill
c'1~^\f
\startTrillSpan
des c1*7/8 s8 \stopTrillSpan }\\{\pitchedTrill
a1~\f
\startTrillSpan bes a1*7/8 s8 \stopTrillSpan}>>
}
{
\clef treble
\mus
\transpose c a, \mus
\transpose c fis, \mus
\transpose c c, \mus
\transpose c a,, \mus
\transpose c fis,, \mus
\transpose c c,, \mus
}
% Using TrillSpanner.padding to correct distance
{
f''1_\startTrillSpan ~ 1 \stopTrillSpan
1\tweak padding 0 _\startTrillSpan ~ 1 \stopTrillSpan
1\tweak padding 2 _\startTrillSpan ~ 1 \stopTrillSpan
1\tweak padding -1 _\startTrillSpan ~ 1 \stopTrillSpan
}
Best,
Jean
- vertical shift of trill, Jim Cline, 2022/08/05
- Re: vertical shift of trill, Kieren MacMillan, 2022/08/05
- Re: vertical shift of trill, Valentin Petzel, 2022/08/06
- Re: vertical shift of trill, Thomas Morley, 2022/08/06
- Re: vertical shift of trill, Carl Sorensen, 2022/08/06
- Re: vertical shift of trill, Jean Abou Samra, 2022/08/06
- Re: vertical shift of trill, Valentin Petzel, 2022/08/06