lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Automatic beaming in melismas


From: Janek Warchoł
Subject: Re: Automatic beaming in melismas
Date: Tue, 20 Mar 2012 22:04:48 +0100

Hi Ben

On Sun, Mar 18, 2012 at 9:48 PM, Ben Rudiak-Gould
<address@hidden> wrote:
>
> \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)?

I 100% support your wish.  In fact, i think that the default behavior
of \melisma should be to turn automatic beaming on, and that the
command itself should be shorter (as it is used very often in vocal
music).
However, i don't know this part of Lily internals and i cannot help
you with solving this problem :(

thanks,
Janek



reply via email to

[Prev in Thread] Current Thread [Next in Thread]