Hi,

thanks for your thoughts!

Example: If for some reason, the manuscript I'm copying has exceptional
beams of 4+2+2 instead of the usual 4+4 as in the second bar of
from Scarlatti's Partimenti (and I want to reproduce that beaming
faithfully), I have do to:

c8 c' b a e[ e'] cis'[ d']
If this beaming is a consistent pattern you can do

%%%
{
   \set beatStructure = 2,1,1
   \set beamExceptions = #'()
   8 8 8 8 8 8 8 8
}
%%%
Yes, I know - what I meant is a situation (which I encounter quite frequently) where such a bar is an exception in a piece.
So basically I have to enter redundant information: I have to tell
LilyPond to

1) start a beam on e,
2) end a beam on e',
3) start another beam on cis',
4) end that beam on d'.
You are not entering redundant information. Just some of that infomation
happens to align with the automatic behaviour. Should the automatic beaming
behaviour change at any point that information may be missing.

Well, one the one hand you're obviously right. But this is a very pessimistic point of view, because your argument essentially means that if I want to copy the beaming of a source manuscript faithfully, I must not use automatic beaming at all, since the automatic beaming behaviour might change at any point in the future.

But since auto-beaming rules are quite well defined (and can be given using beatStructure etc.), I think we can be a little more optimistic and assume that automatic beaming is not that much of a black box with behaviour liable to change significantly any time soon; I'd rather propose that automatic beaming means: LilyPond uses per-measure beaming rules supplied by the user (or, most often, supplied by LilyPond in a well-documented manner).

I think there is a niche application where this a reasonable thing, which is
when you want to specify beaming deviations that are independent of the
surrounding beaming. E.g. if you use beaming to designate a new phrase that
will require a certain beaming in 4/4:

     { c'8 e' g' a' g'\noBeam e' d' f' e' d' c' d' }

but a different one in 6/8:

     { \time 6/8 c'8 e' g' a'[ g'] e' d' f' e' d' c' d' }

(But note that this usecase already works out using `\breathe`)

It's true that the \| operator I proposed should essentially amount to something like \tweak stencil ##f \breathe. I hadn't thought of that in spite of spotting the \breathe handler in the Auto_beam_engraver - thanks!

(But I think, _if_ I want to implement a beam-separation command, an implementation from scratch is cleaner than abusing the \breathe functionality.)

Or say you do vocal music where beams are used to give melisma, but you still
want to break up long beams. Then it might be useful to specify melima breaks,
rather than the full beaming.
Well, vocal music is a different, yet related matter: It's been a long-standing wish (there's an issue about this I think) to support true melisma-beaming in vocal music, namely automatic grouping of beams (as in auto-beaming) for melismata inside \autoBeamOff, ideally automatically complemented by slurs.
But I suppose essentially your commands take the role of a `\forceBeamBreak`
and `\forbidBeamBreak`. Which I think is fine to have, but I think when you
want to be explicit with your beaming you should be explicit in beaming.

I like the names you invented for those commands! They might be superior to what I proposed, even though they are significantly longer ...

Anyway: I still think your arguments basically imply (contrary to what you stated) that if it's fine to use automatic beaming at all in, e.g., a scientific edition, then it should/could be useful to have \| / \forceBeamBreak and the like - don't they?

Lukas

Reply via email to