While pondering how an “nth time only” feature might work, I considered what it might take to generalize the way the Mark engraver handles updating the rehearsal mark number and make it expressible in ly code instead.
I have a working prototype that uses all the following features and I’m looking for feedback on these ideas (votes on what to submit first, naming suggestions, cold water, all is accepted). The code is not ready for review. I want to increment a context property: \increment Score.counterForX Further, I want to postpone the operation until the end of the time step: \post \increment Score.counterForX Further, I want to ensure that the operation occurs only once during the time step, even if the music is iterated more than once in the relevant context. \exclusive <unique_value> \post \increment Score.counterForX Further, I want some help picking unique values that will not collide, say by using the input location: \exclusive \here \post \increment Score.counterForX For more general use, the user should not need to know in which context a property is being tracked. For example, things that are usually engraved at Score level might sometimes be engraved at StaffGroup level. Therefore: ... \increment WhereDefined.counterForX For completeness, the \context command should have the same option, and I see no reason not to allow a list of property names in that case (all required to match). \context \wheredefined x,y,z { ... } \context = “ID” \wheredefined x,y,z { ... } \context Staff = “ID” \wheredefined x,y,z { ... } Thanks and regards, — Dan _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel