Alternatives de répétition non imprimées

Bonjour tout le monde.

Je suis tombé sur un comportement surprenant de lilypond 2.26. Il oublie de m'imprimer les alternatives. Voici un exemple :

\version "2.26.0"

music = \relative c'' {
	\time 2/4
	\repeat volta 2 {
		\repeat tremolo 4 {c16( e}
		\repeat tremolo 4 {c e}
		\repeat tremolo 4 {c e}
		\repeat tremolo 4 {c e)}
		\alternative {
			\volta 1 {
				\tuplet 12/8 2 { \repeat tremolo 6 {f,16( c'}
				\repeat tremolo 6 {f, c')} }
			}
			\volta 2 {
				aes4( ees
			}
		}
	}
	c8) c c c
	c c c c
	c c c c
}


\score {
	\music
}

J'obtiens :
image

Cela semble lié à la présence des tremolos qui s'enchainent avec les alternatives. Si je rajoute une note ou même un <> juste avant le bloc alternative, elles apparaissent.

		\repeat tremolo 4 {c e)} <>
		\alternative {

image

J'ai parcouru la doc sur les reprises et je n'ai pas vu de signalement de bug à ce sujet.

Merci pour votre aide.

Sébastien

Je pense que c'est effectivement une histoire de précédence. Lilypond fait pas mal de choix "par défaut" pour alléger la syntaxe, mais cela peut mener à des ambiguïté (comme en maths quand on ne met pas de parenthèses parce qu'on connaît les règles d'application des opérateurs, ce qui mène à des interprétations différentes de 2 + 2 * 3 qui fait 8 ou 12 selon à qui on demande). Par conséquent, dès qu'on a un doute, mieux vaut encapsuler les expressions musicales, ici en l'occurrence les trémolos que j'écrirais sous la forme

\repeat volta 2 {
	{	\repeat tremolo 4 {c16( e}
		\repeat tremolo 4 {c e}
		\repeat tremolo 4 {c e}
		\repeat tremolo 4 {c e)}     }

dans leurs propres accolades ouvrante/fermante, pour qu'il soit clair que le \alternative s'applique sur le \repeat du début.

Bonjour,

c'est un problème qui revient régulièrement sur le tapis. Dans le cas présent il faut déplacer l'accolade qui ferme le bloc volta 2 avant le bloc \alternative ce qui nous donne :

\version "2.26.0"

music = \relative c'' {
	\time 2/4
	\repeat volta 2 {
		\repeat tremolo 4 {c16( e}
		\repeat tremolo 4 {c e}
		\repeat tremolo 4 {c e}
		\repeat tremolo 4 {c e)}
	}
	% sortir le bloc \alternative du bloc volta 2
		\alternative {
			\volta 1 {
				\tuplet 12/8 2 { \repeat tremolo 6 {f,16( c'}
				\repeat tremolo 6 {f, c')} }
			}
			\volta 2 {
				aes4( ees
			}
		}
	c8) c c c
	c c c c
	c c c c
}


\score {
	\music
}

A noter que dans d'autres cas la solution d'un problème semblable peut demander la procédure inverse. Je ne sais plus à partir de quelle version la syntaxe implique de sortir le bloc \alternative de volta 2 et j'en comprend mal le fonctionnement.

Avoir \alternative en dehors de \repeat est justement l'ancienne syntaxe (cf 4.1.3 Fins alternatives (GNU LilyPond – Manuel de notation) qui rappelle cela dans le paragraphe " Une autre syntaxe, plus ancienne et toujours prise en charge, consiste à instancier le bloc \alternative à la suite de l’expression musicale répétée"). Et le fait qu'elle soit encore fonctionnelle (pour des raisons de compatibilité ascendante, j'imagine) fait justement qu'il y a un bug avec le \repeat des trémolos. Je pense qu'il vaut mieux adopter les nouvelles conventions tout en se protégeant des imbrications en les balisant explicitement avec des accolades.

Merci pour vos réponse. Je n'avais pas pensé à mettre des accolades supplémentaires. C'est plus explicite que mon accord vide.
Bon week end.