Menu

#3208 Wrong MultiMeasureRest glyph

Fixed
Enhancement
2018-01-22
2013-02-27
Anonymous
No

Issue 3208: compressed MMRs choose correct glyphs

usable-duration-logs now affects only the choice of glyph for the
representation of a single measure. For multiple measures, glyphs for
longer rests up to maxima are used.

This is a second attempt to make it work and has little to do with my
first attempt at https://codereview.appspot.com/333340043 Therefore I
created a new Rietveld issue.

Also the vertical positioning of half and shorter rest glyphs in MMRs
now is handled correctly. BUT: this breaks make check because of a
different positioning of breve rests in TabStaffs. For details see
discussion below.

http://codereview.appspot.com/335410043

Originally created by: colingh...@gmail.com

Thomas Morley reported here:

http://lists.gnu.org/archive/html/bug-lilypond/2013-02/msg00180.html

as follows:

With measures longer than two whole notes LilyPond chooses different
glyphs for MultiMeasureRest.

\version "2.17.12"

\new Staff {
  \compressFullBarRests

  \time 7/4
  R1*7/4
  R1*7/4*2

  \break

  \time 9/4
  R1*9/4
  R1*9/4*2
  \break

  \time 18/4
  R1*18/4
  R1*18/4*2
}

Discussion on the user-list:
http://lilypond.1069038.n5.nabble.com/Glyph-for-longer-MultiMeasureRest-td141438.html

According to Gould LilyPond's default seems to be correct.
Werner objects.

At least there's need for discussion, I think.

Attached an image showing "LilyPond's default" vs "Correct?"

Regards,
  Harm

1 Attachments

Related

Issues: #3208
Issues: #5258

Discussion

<< < 1 2 3 > >> (Page 2 of 3)
  • Anonymous

    Anonymous - 2017-12-31

    Passes make, make check and a full make doc.

     
  • Anonymous

    Anonymous - 2018-01-01
    • Patch: review --> push
     
  • Anonymous

    Anonymous - 2018-01-01

    Patch on countdown for January 4th.

     
  • Anonymous

    Anonymous - 2018-01-01
    • Patch: push --> countdown
     
  • Anonymous

    Anonymous - 2018-01-04

    I am going to leave this on countdown as it looks like there is still some discussion. However if I have misinterpreted this, then it can be pushed.

     
  • Anonymous

    Anonymous - 2018-01-07
    • Patch: countdown --> review
     
  • Anonymous

    Anonymous - 2018-01-07

    I can see from Rietveld that this is not yet quite ready for 'prime time', I will set this back to Review - while Malte gets his clarification. If nothing has changed by the next countdown, I'll put his back to 'Needs Work'.

     
    • Malte Meyn

      Malte Meyn - 2018-01-07

      Thanks, that sounds reasonable.

       
  • Malte Meyn

    Malte Meyn - 2018-01-09
    • Patch: review --> needs_work
     
  • Malte Meyn

    Malte Meyn - 2018-01-09

    So far I’ve got answer from all four German publishers I contacted but not from Faber Music (or even Elaine Gould). Three of these answers were very clear, I’ll wait for a clarification on the fourth and then summarize what they said and make a patch.

     
  • Malte Meyn

    Malte Meyn - 2018-01-09

    Here are the answers I got from the publishers:

    Publisher 1
    • Has no house rule for this situation.
    • But recommends to use a brevis rest for 1 measure in 4/2 time; for more measures use a “modern” horizontal beam rest (MMR.expand-limit = 1).
    • Alternatively do the same for 4/2 as for other time signatures like 4/4 (“consequently modern practice”).

    Publisher 2
    • Use the same notation for all time signatures including 4/2 (what Publisher 1 calls “consequently modern practice”).
    • MMR.expand-limit = 9

    Publisher 3
    • Use brevis rest for 1 measure, longa for 2 measures, longa + brevis for 3 and so on (like LilyPond’s default behaviour).
    • MMR.expand-limit = 12 (or maybe 8); after seeing my example they voted for 8 (“else it looks like stacking wood”)

    After thinking about these answers I would suggest the following:
    • Change LilyPond’s default expand-limit to 8 (publisher 3, Gardner Read “Music Notation”) or 9 (publisher 2, Elaine Gould “Behind Bars”) instead of 10 (current default). IMO there are arguments for both 8 and 9:
    ∘ 8 is one or two (in case of 4/2 time) maxima rests, not one or two maximas + a little bit.
    ∘ 9 is the largest single-digit number.
    → I’m undecided
    • Have a boolean grob property of MMR that controls whether longer rests are used for longer measures (publisher 3, current default) or whether all times are handled the same (publisher 2 and maybe 1). And make the default that it matches current default (after all, LilyPond doesn’t want really “modern” engraving, does it?).
    • Now think whether we need usable-duration-logs and if so what it should do:
    ∘ Control the appearance of single measure rests.
    ∘ Control the appearance of compressed rests.
    → I would suggest not to use it. According to Gould smaller than whole rests should be placed where notes of that lengths would stand, so if one wants 1/8 rest in 1/8 time just use r8 instead of R8. And I don’t see why anyone would want to disable brevis, longa, maxima rests. (Ok, maybe maxima … in this post there is an example of 8 measures rest that uses two longas instead of a maxima … but after looking at that edition (NBA) I have the impression that they do weird stuff with rests …) But that’s only my opinion.

     
    • Malte Meyn

      Malte Meyn - 2018-01-09

      Oh, and if we decided to keep usable-duration-logs it would be necessary to fix the staff-position of smaller rests: currently all symbols just hang from the second line so not only quarters and eighths are displaced but halves look like wholes.

       
  • Benkő Pál

    Benkő Pál - 2018-01-09

    for default expand-limit I vote for 8.
    about usable-duration-logs: I also suggest not to use it; however, the main usage would be to use dotless full measure rests e.g. in 3/8 time (so R4. could look like r4 or r2).

     
  • Malte Meyn

    Malte Meyn - 2018-01-11

    Would you really notate a rest in 3/8 as quarter or half instead of whole or dotted quarter?

    Apart from that, publisher 4 has anwered: Basically their answer confirms that we should support both versions. They do the same as publisher 2 for Bach/Handel and later; additionally they set a “1” above single measure rests (see also [#5251]) and have less space between the rest symbols (is there an option to control this distance?). For older music they are ok with the thing publisher 3 and LilyPond do.

     

    Related

    Issues: #5251

    • Benkő Pál

      Benkő Pál - 2018-01-11

      Would you really notate a rest in 3/8 as quarter or half instead of whole or
      dotted quarter?

      I definitely would not, I just said that as the only argument I can
      imagine someone could come up with in support of usable-duration-logs.
      Undotted quarter would match the principles of mensural notation
      (rests are never dotted and always perfect if mensuration says so);
      half would be the result of scaling the "whole rest in 3/4 time"
      principle. but those were never used, I guess; Bach uses whole rests,
      see the Gloria movement (bottom of page 2 in
      http://ks.petruccimusiclibrary.org/files/imglnks/usimg/0/05/IMSLP102259-PMLP04197-Bach_Bm_Mass_parts_278110185_bass.pdf
      ).

       
      • Malte Meyn

        Malte Meyn - 2018-01-12

        Undotted quarter would match the principles of mensural notation
        (rests are never dotted and always perfect if mensuration says so);
        half would be the result of scaling the "whole rest in 3/4 time"
        principle.

        Mensural notation has perfect and imperfect division, yes, but only for maxima, longa, brevis and semibrevis (= whole) notes/values. So I see no point in having undotted minima and seminiminma (half and quarter) rests: this principle of mensural notation doesn’t apply to these values. Or am I mistaken? Of course, modern notation often shifts durations (f. e. tempus imperfectum cum prolatione major could be written as 6/8 time) but this is “modernized” notation and should not use quarter but dotted quarter rests for semibrevis rests.

         
  • Malte Meyn

    Malte Meyn - 2018-01-13

    I changed my mind: Allowing shorter rests doesn’t harm—no one has to use positive numbers in usable-duration-logs but if someone really wants to do it even though Gould et al. disadvise, we shouldn’t take away this functionality.

    This also means that we don’t need such a boolean grob property: Instead you can just override usable-duration-logs to #'(0) as it has been done in every single discussion about this property that I could find on the internet. Yay, backwards-compatibility! ;)

    Of course we could discuss whether it would be nice to have a shorthand like

    modernMMRs = \override MultiMeasureRest.usable-duration-logs = #'(0)
    

    next to compressFullBarRests and expandFullBarRests in ly/property-init.ly.

    Concerning the default value of expand-limit: This doesn’t really belong here but would be another issue. I’ll send a feature request to the bug list for discussion.

     
    • Malte Meyn

      Malte Meyn - 2018-01-13

      BTW until 2.15.8 there was a boolean property called use-breve that was replaced by usable-duration-logs, round-up-to-longer-rest and round-up-exceptions. Going back to a boolean property would be something like a regression ;)

       
    • Benkő Pál

      Benkő Pál - 2018-01-13

      Undotted quarter would match the principles of mensural notation
      (rests are never dotted and always perfect if mensuration says so);
      half would be the result of scaling the "whole rest in 3/4 time"
      principle.

      Mensural notation has perfect and imperfect division, yes, but only for
      maxima, longa, brevis and semibrevis (= whole) notes/values. So I see no
      point in having undotted minima and seminiminma (half and quarter) rests:
      this principle of mensural notation doesn’t apply to these values.

      Yes, that's why I said "principles", not "rules" or "practice". I
      think the same principle works when Bach uses 9/8 in one part, 3/4 in
      another (e.g. Jesus bleibet meine Freude in BWV147) or 12/8 in one
      part, 4/4 in another (e.g. Mein teurer Heiland in Johannespassion).
      But it's definitely not extended to multi-measure rests, as the
      examples above prove.

      I changed my mind: Allowing shorter rests doesn’t harm—no one has to use
      positive numbers in usable-duration-logs but if someone really wants to do
      it even though Gould et al. disadvise, we shouldn’t take away this
      functionality.

      This also means that we don’t need such a boolean grob property: Instead you
      can just override usable-duration-logs to #'(0) as it has been done in every
      single discussion about this property that I could find on the internet.
      Yay, backwards-compatibility! ;)

      Of course we could discuss whether it would be nice to have a shorthand like

      modernMMRs = \override MultiMeasureRest.usable-duration-logs = #'(0)

      Oh, these are all great!

       
  • Malte Meyn

    Malte Meyn - 2018-01-13

    Issue 3208: compressed MMRs choose correct glyphs

    usable-duration-logs now affects only the choice of glyph for the
    representation of a single measure. For multiple measures, glyphs for
    longer rests up to maxima are used.

    This is a second attempt to make it work and has little to do with my
    first attempt at https://codereview.appspot.com/333340043 Therefore I
    created a new Rietveld issue.

    Also the vertical positioning of half and shorter rest glyphs in MMRs
    now is handled correctly. BUT: this breaks make check because of a
    different positioning of breve rests in TabStaffs. For details see
    discussion below.

    http://codereview.appspot.com/335410043

     
    • Malte Meyn

      Malte Meyn - 2018-01-13

      Breaks make check (rest-positioning.ly). For explanation see Rietveld.

       
  • Anonymous

    Anonymous - 2018-01-14
    • Needs: -->
    • Patch: new --> review
    • Type: --> Enhancement
     
    • Benkő Pál

      Benkő Pál - 2018-01-14

      to me this is progress; some of the tests look (now and before) plain
      silly to me:
      rest-dot-position.ly: aligned longa and breve rests should not touch each other
      TAB staves: is it actually expected that a longa and breve rests don't
      go from line to line?

       
      • Malte Meyn

        Malte Meyn - 2018-01-15

        rest-dot-position.ly: The regression here is [#5217] (random placement of dots) and has nothing to do with my patch; of course one could change this touching rests in a separate issue.

        multi-measure-rest-staff-position.ly: This is ok IMHO because staff-position = 0 should behave the same for Rest and MultiMeasureRest. But maybe we should add a convert-ly rule that shifts these overrides?

        rest-positions.ly (screenshots 2 and 4, the actual error is only in screenshot 4): That’s on purpose but needs fixing nethertheless, this patch should be waiting for [#5258]. Gould doesn’t say anything about whether they should go from staff line to staff line but IMO that’s worth a discussion (not here but at [#5258]). One would have to draw these rests as rectangles instead of taking them from the font.

         

        Related

        Issues: #5217
        Issues: #5258


        Last edit: Malte Meyn 2018-01-15
<< < 1 2 3 > >> (Page 2 of 3)