The reason for it breaking is that in the code you posted there are vertical lines ” || " instead of backslashes ” \\ ” separating the voices.
The bracket issue is that the override needs to go in a context where the tuples sees it. By default it goes into the Voice context here, and the << … \\ … \\ … >> creates new voices that are unaffected by the override. You need either write \override Staff.TupletBracket.bracket-visibility = ##t where it is now to override at staff level or to place the override in the voice it is supposed to affect. HTH /Leo > 2 sep. 2021 kl. 00:38 skrev Paul Hodges <p...@cassland.org>: > > In the following code, the first expression does more or less what I > want; but I also want tuplet brackets. However, specifying that they > are wanted, as in the second expression, seems to break stuff, and I > have no idea why. > > In fact, it is simply the presence of the override which causes the > problem, as the effect is the same whether the value is ##t, ##f, or > even the default #'if-no-beam. > > Is there a subtlety here I should learn about, or is there simply a bug? > > Paul > > > \version "2.23.3" > > \language english > > \relative fs { > \accidentalStyle dodecaphonic-no-repeat > \clef bass > \time 2/4 > << { r16 \voiceTwo fs8.--~\mf \tuplet 3/2 { fs8 f,-- g-- } | } || > { s4 \voiceOne fs'4 | } || > { s4 s4*1/3 f,4*2/3 | } >>> > } > > \relative fs { > \accidentalStyle dodecaphonic-no-repeat > \override TupletBracket.bracket-visibility = ##t > \clef bass > \time 2/4 > << { r16 \voiceTwo fs8.--~\mf \tuplet 3/2 { fs8 f,-- g-- } | } || > { s4 \voiceOne fs'4 | } || > { s4 s4*1/3 f,4*2/3 | } >>> > } > >