Joli !
Mais je pense que, si ça convient pour l'exemple, ça ne conviendra pas partout. Il suffit qu'il y ait des blanches avant le premier xcircle, pour que cela ne fonctionne plus.
Je pense que ce qu'il faudrait, c'est modifier double-stem-for-half-notes de façon à pouvoir le nommer double-stem-for-xcircle-noteheads .
Mais avec mes maigres connaissances de scheme, j'ai essayé longuement, sans succès de comprendre comment filtrer les xcircle, en modifiant la ligne (if (= 1 (ly:grob-property grob 'duration-log))
Apparemment, le changement de notehead se cache un peu plus profondément, et ça m'intéresse de savoir comment s'y prendre.
A+