[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: vertical shift of trill
From: |
Valentin Petzel |
Subject: |
Re: vertical shift of trill |
Date: |
Sat, 06 Aug 2022 17:04:56 +0200 |
Hi Jean,
that is beautiful. I’m always impressed by your vast understanding of each
single (not even documented) detail of Lilypond!
Best,
Valentin
Am Samstag, 6. August 2022, 15:55:41 CEST schrieb Jean Abou Samra:
> 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
signature.asc
Description: This is a digitally signed message part.
- Re: vertical shift of trill, (continued)
- Re: vertical shift of trill, Valentin Petzel, 2022/08/06
- Re: vertical shift of trill, Jean Abou Samra, 2022/08/06
- Re: vertical shift of trill, Werner LEMBERG, 2022/08/06
- Re: vertical shift of trill, Jean Abou Samra, 2022/08/06
- Re: vertical shift of trill, Valentin Petzel, 2022/08/06
- Re: vertical shift of trill, Jim Cline, 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 <=