Thank you Jean for the information. That works!
Martín. > > On Oct 31, 2022 at 12:00 AM, <Jean Abou Samra (mailto:j...@abou-samra.fr)> > wrote: > > > > Le 30/10/2022 à 20:55, Martín Rincón Botero a écrit : > Hi all, > > > > I hope this can be answered with pseudo- C++ code. I've been working on > something but I'm stuck with this. Say I have a list of scripts produced by > extract_grob_set. They all make part of a spanner. How can I generally check > if a certain script is attached to the first note of the spanner? I tried > getting the x parent of the script (which I imagine is a note), Depends on > what kind of script we are talking about. It could also be a FingeringColumn, > for example. \version "2.23.80" { \override Fingering.after-line-breaking = > #(lambda (grob) (ly:message "~s" (ly:grob-parent grob X))) \set > fingeringOrientations = #'(left left) <c'-1 c''-5> } > getting the column > of this x parent (with get_column ()), There is no need to get the X parent > for that. Just do script->get_column (), not script->get_x_parent > ()->get_column (). get_column () works on any Item (vs. Spanner). > and > then comparing that column with the first note-column of the spanner without > success. Can someone point me in the right direction? My guess from your > message is that you did not realize there are two kinds of "columns" > involved, paper columns and note columns, which are entirely different > things. Note columns are created per-voice, a note column is either a group > of notes that should share a stem, or a container for a rest (in LilyPond, > rests also have stems, so most note columns have a stem, although those in > GregorianTranscriptionVoice don't as you have found out in !1677). Then you > have musical paper columns, which are the parents of note columns and more > generally of all musical items happening at one given moment, while > non-musical paper columns group non-musical items happening at a moment. Cf. > https://lilypond.org/doc/v2.23/Documentation/notation/overview-of-object_002dspecific-horizontal-spacing-tweaks.html > get_column () finds the *paper* column that an item is a child of. So if > you want to check that a script happens at the same moment as a given note > column, you can do script->get_column () == note_column->get_column () But be > aware that the script could come from another voice than the one where your > NoteColumn was created, so even if that condition is true, it might not > belong to your NoteColumn. Depending on the context, maybe that case is not > possible, or maybe the condition above is what you actually want, or maybe > you want to find something more specific that utilizes your knowledge of what > the script is more precisely in order to retain only scripts that actually > belong to the note column. -Jean > >