\version "2.15.32"

I'd like to easily make choral scores with automatic beaming inside
melismas and none outside. Inspired by
https://code.google.com/p/lilypond/issues/detail?id=1308, I wrote a
Lilypond Guile function to do the same thing as the reporter's Perl
script. Unfortunately, I can't get it to work in all cases.

The first problem is that in situations like "c8[[ d]] e f", which I
convert to "\autoBeamOn c8 \melisma d \melismaEnd \autoBeamOff e f",
all four notes are beamed together. As far as I can tell, the
auto-beaming state is ignored except at the first beamed note: when
looking ahead to find how many notes to beam, the algorithm doesn't
consider whether auto-beaming was turned off in the mean time. (Is
this a bug?) I could fix this by attaching \noBeam to notes that
aren't part of a melisma, but this feels hacky and it's actually
somewhat tricky since it would mean keeping track of the current
melisma state, considering things like nested sequential and parallel
music, etc. Currently I don't have to worry about that. At any rate,
at least I see how I could solve this problem in principle.

The second problem is that c8[[ d]] e[[ f]] gets beamed as c8[ d e f].
I can't figure out how to solve this. If there were an object I could
insert in the note sequence that would not be crossed by automatic
beams, but otherwise had no effect, that would solve the problem. But
I can't find one.

  c d s8*0 e f  ==>  c[ d e f]

  c d s8*0\noBeam e f  ==>  c[ d] e f

  c d \skip8*0 e f  ==>  c[ d e f]

  c d \skip8*0\noBeam e f  ==>  error

  c d \bar "" e f  ==>  c d e[ f], and it wouldn't work at bar lines
anyway (which I have no way of detecting)

  c d r8*0 e f  ==>  c[ d] e[ f], but the rest is visible and the stem
of the e is aligned with the rest instead of the note

How much of the above is intentional behavior and how much is buggy?
Is there any way of doing what I want without requiring manual beaming
fixups from the user (which are a hassle, and would have to be
explained in the documentation of my helper function)?

Thanks,

-- Ben

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to