@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