[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lilypond-bug
Subject:    Re: Completion_heads_engraver and Completion_rests_engraver ignore pickup (Auftakt)
From:       David Kastrup <dak () gnu ! org>
Date:       2017-01-24 14:56:28
Message-ID: 87r33spkv7.fsf () fencepost ! gnu ! org
[Download RAW message or body]

Johannes Feulner <johannes.feulner@funcommunications.de> writes:

> Completion_heads_engraver and Completion_rests_engraver automatically
> split notes and rests at bar lines. However, they ignore notes and rests
> in pickups (Auftakt, partial bars).
>
> Here's an example demonstrating the behaviour for notes and rests. The
> current and the desired behavior are attached as PDF files.
>
> \version "2.18.0"
> \score {
>    <<
>       { \time 4/4 \partial 4 g1 g }
>       { \time 4/4 \partial 4 r1 r }
>    >>
>    \layout {
>       \context {
>          \Voice
>          \remove "Note_heads_engraver"
>          \consists "Completion_heads_engraver"
>          \remove "Rest_engraver"
>          \consists "Completion_rest_engraver"
>       }
>    }
> }
>
> I made the following patches to produce the desired.pdf. The version can
> currently be tested on http://www.weblily.net
>
> However, I am not an expert on Lilypond to determine if this is a proper
> solution in general.
>
> index 34a985d..9f7a659 100644
> --- a/lily/completion-note-heads-engraver.cc
> +++ b/lily/completion-note-heads-engraver.cc
> @@ -116,7 +116,14 @@ Completion_heads_engraver::next_moment (Rational
> const &note_len)
>        return Moment (0, 0);
>      }
>  
> -  Moment result = *l - *e;
> +  Moment result;
> +  if (*e < 0) {

That looks ambiguous to me (if not to C++) since a Moment has both a
natural and a grace part.

-- 
David Kastrup

_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic