@Jan-Peter

>
> *this is a feature I long to implement for quite some time. This means it
> is not possible with the EE right now. The following ideas came up to
> provide a solution: 1. add IDs to certain elements and allow addressing
> elements b ID. 2. Add tweaks with a predicate, e.g. at moment x, if
> NoteEvent has pitch cis'' add tweak.*
>

That is going to be a huge improvement!


@David

> *I have seen no comment whatsoever about what you find wrong with using*
> * \single \omit Accidental in the way I showed in the code example I gave.*
>

I'm sorry, Caagr98 proposed that solution in his/her first message, to
which I already replied. But I should have addressed that part of your
reply instead of leaving it uncommented. I apologize.

The short explanation is that I need a solution that works with
Openlilylib's Edition Engraver and \single \omit Accidental doesn't. This
is because the Edition Engraver can't yet insert a tweak inside a chord.


@Thomas
I was not aware that it was possible to write a function inside of a
parameter of a grob, and that before-line-breaking and after-line-breaking
served this purpose. The documentation describes them as booleans and
"dummy properties" so I never payed them mind. I'm truly surprised. When I
said that I didn't believe an override would do it I wasn't considering an
"intelligent" override. Something like this could actually work!

After looking a bit through the documentation, I found here
<http://lilypond.org/doc/v2.19/Documentation/internals/note_002dcolumn_002dinterface>
that the the note-column-interface has a note-heads property, which
provides an array of all the note-head grobs of the NoteColumn. I wanted to
go through that list and modify the grobs according to their position on
the list, but I am unable to get the list in the first place:

> \version "2.19.80"\language "english"
> command = {
>   \once \override NoteColumn.before-line-breaking =
>     #(lambda (this-column)
>         (display (ly:grob-property this-column 'note-heads "couldn't find 
> it")))}
> \score {
>   \new Staff {
>     \new Voice \relative c'' {
>       \key b \minor \accidentalStyle modern
>       \partial 4 <as c,> |
>       <b b,> \command <a cs,> <g d~> <fs d>
>     }
>   }
> }
>
> Do you think this is possible?


2018-02-01 18:49 GMT-03:00 Thomas Morley <thomasmorle...@gmail.com>:

> 2018-02-01 16:59 GMT+01:00 Stefano Troncaro <stefanotronc...@gmail.com>:
>
> > Ideally, I wanted a function
> > that I could use with the edition-engraver to tweak target elements
> inside
> > chords. I framed the question around accidentals in the post above, but
> > ultimately I hoped to be able to use the same function (or a very similar
> > one) to tweak ties of specific notes instead of being forced to use one
> > override for the whole chord, or to tweak other properties of specific
> notes
> > should the need arise.
>
> Well, we have
> (1) override.
> Aplied to a chord it will work on all relevant grobs found.
> One could define some selection, ofcourse.
> Like:
> command =
> \override NoteHead.before-line-breaking =
>   #(lambda (grob)
>     (let* ((cause (ly:grob-property grob 'cause))
>            (pitch (ly:prob-property cause 'pitch))
>            (alteration (ly:pitch-alteration pitch))
>            (accidental (ly:grob-object grob 'accidental-grob)))
>     (if (and (ly:grob? accidental) (eqv? alteration 1/2))
>         (ly:grob-set-property! accidental 'stencil #f))))
>
> But you wrote you would prefer to address specific notes, not the whole
> chord.
> Therefore we have:
>
> (2) tweak
> But you didn't like the already proposed
> \single \omit Accidental
> which _is_ a tweak
>
> (3) context-properties
> basically accidentalStayle sets context-properties.
> But ofcourse can't change other note-head-properties as you seem to like.
>
>
> So I'm at a loss guessing what you desire.
>
>
> Cheers,
>   Harm
>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to