lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Attempt at divisi automating engraver


From: Saul Tobin
Subject: Attempt at divisi automating engraver
Date: Sat, 29 Dec 2018 17:21:12 -0500

Hi all,

Attached is my latest attempt to make progress toward an automatic mechanism for n-parts that may share a staff or not.

The idea is that if the context property combineNext = ##t, then that part can share a staff with the next part down. The engraver is supposed to set keepAliveInterfaces = '() for all the staves except the ones corresponding to the current part grouping. Then depending on line-breaking, staves will be hidden according to remove-layers.

I have two issues currently:
1) How to initialize the engraver with a list of child staff contexts? Grabbing them by acknowledging hara-kiri-group-spanner grobs means this engraver can't affect which staves display on the first system, which isn't ideal. Is there a better way?

2) ly:context-set-property! seems to work in the sense that the changed value gets read back correctly, but it doesn't seem like it's affecting the music output as I'd expect. Should I be having the engraver broadcast a property change event or something? How would one even do that? Or is this something to do with the timing of property changes happening over line breaks?

Apologies for the less than elegant Scheme code. I would love some feedback/assistance on how to improve this or approach it better.

Happy new year!

Attachment: divisi_engraver.ly
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]