lilypond-devel
[Top][All Lists]
Advanced

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

Re: Various clean-ups in stems and beams. (issue 6584045)


From: address@hidden
Subject: Re: Various clean-ups in stems and beams. (issue 6584045)
Date: Tue, 2 Oct 2012 10:07:02 +0200

On 2 oct. 2012, at 05:02, address@hidden wrote:

> On 2012/10/01 23:34:39, MikeSol wrote:
>> I think a user should be able to use Kievan notation and normal
>> stems/flags/beams if she so chooses. I'll define something like
> 
>> [snip]
> 
>> and then use it in the documentation.
> 
> I still see some issues with this. As written now in stem.cc, when the
> style property of NoteHead is set to kievan, the stems are not "normal".
> In this case, it is not clear what Kievan notation with "normal
> stems/flags/beams" would look like. At best, there would be no stems and
> beams flat across the center of the staff. Or, something like
> 
> \relative c' {
>   \override NoteHead #'style = #'kievan
>   a'8[ bes]
> }
> 
> gives the warning "weird stem size, check for narrow beams".
> 
> Also, because the calculation of the duration log moves to
> note-head::calc-kievan-duration-log, something like
> 
> \relative c' {
>   \override NoteHead #'style = #'kievan
>   a'8
> }
> 
> produces the wrong NoteHead stencil (a quarter note instead of an eighth
> note).
> 
> If we implement the patch as written, Kievan note heads outside of the
> KievanVoice context wouldn't make sense. I'm not altogether opposed to
> that (I see no real reason to not use KievanVoice), but it seems like a
> "policy" issue, as it would make Kievan notation different from how
> other ancient notations are handled.

Hey Aleksandr,

All good points.  The convention in LilyPond is that grob properties of grob X 
are used downstream to calculate other properties of grob X (and not of grob 
Y).  This is why, for example, both the stem and rhythmic-head interface have 
duration-log.  There are, of course, exceptions, but these could have almost 
always been written another way.  For example, Stem::offset_callback should 
likely be rewritten such that the early music stuff is a different function 
implemented in Scheme.

The goal should be to get all references to non-common-practice-era notation 
out of the main interface files and into either separate C++ files or 
output-lib.scm.

The issue here is that the set_property calls for stem-begin-position and 
length, which I've always run up against, pose new challenges for Kievan beams. 
 I'll try to work on eliminating these calls, as they are opaque and make 
modular add-ons difficult.

Cheers,
MS


reply via email to

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