Menu

#3688 Manual barlines overwrite repeat barlines

Accepted
nobody
None
Enhancement
2015-09-13
2013-11-30
Anonymous
No

Originally created by: *anonymous

Originally created by: janek.li...@gmail.com

\markup \justify {
  Manual barlines overwrite repeat barlines:
}

\relative f' {
  R1 
  \bar "||"
  \repeat volta 2 {
    c1
  }
  \bar "||"
}

\markup \justify {
  This is especially wrong when the repeat starts after
  a line break, as repeat barline could be easily added
  at the beginning of the next system:
}
\relative f' {
  R1 
  \bar "||"
  \break
  \repeat volta 2 {
    c1
  }
}
1 Attachments

Related

Issues: #3688

Discussion

  • Google Importer

    Google Importer - 2014-10-05

    Originally posted by: nine.fie...@gmail.com

    This has inconvenienced me too and I might be willing to spend time on it.  Is the desired behavior simply that bar lines due to \repeat volta always take precedence over bar lines due to \bar, so that that \bar type is only seen at line breaks or when repeats are unfolded?  Are there other unstated requirements?

     
  • Google Importer

    Google Importer - 2014-10-06

    Originally posted by: m...@hohlart.de

    The whole bar line stuff is far from being in a perfect state.

    Until now, we have

    - the bar line itself
    - the bar line at the end of a line
    - the corresponding bar line at the beginning of a new line
    - the span bar

    included in every definition of a bar line.

    We need at least definitions for begin/end repeat cases, too.

    And well, then there's issue 2918 ... ;-)

     

    Related

    Issues: #2918

  • Google Importer

    Google Importer - 2014-10-06

    Originally posted by: nine.fie...@gmail.com

    Thanks for that pointer, Marc.  I'll read the old discussions before commenting more.

    On the topic of manual bar lines overwriting repeat bar lines, repeat bar lines can also add bar lines where they should not.

    \version "2.19.0"
    \layout { ragged-right = ##t }
    << {
        b'2. \break % in mid measure
        \repeat volta 2 { 4 | 2. } 4
    } >>

     
  • Google Importer

    Google Importer - 2014-10-25

    Originally posted by: pkx1...@gmail.com

    On 25/10/14 16:41, Dan Eble wrote:> I am proposing an approach to the issue "Manual barlines overwrite repeat barlines,” https://code.google.com/p/lilypond/issues/detail?id=3688 .
    >
    > I think this issue could be addressed by introducing the concept of bar line layers.  The bar lines created automatically at measure boundaries would be in one layer.  The bar lines created automatically by repeat structures would be in a layer on top of them.
    >
    >   top      bar lines created specially by user (is it useful?)
    >   repeat   bar lines created automatically by repeat structures
    >   main     bar lines created with \bar x
    >   timing   bar lines created automatically at measure boundaries
    >   bottom   bar lines created specially by the user (use described later)
    >
    > I’m not sure that the “timing" layer should be separate from the “main” layer, but let’s start with this.
    >
    > The definition of the set of glyphs to use for a bar line type (normal, end-of-line, beginning-of-line) would need to indicate when the lower layer should show through.  Whether this would need to be a new option (e.g. #f) or just a new meaning for “” is discussed later.
    >
    > The bar engraver would compose the bar types from all layers into a set of glyphs to assign to the BarLine.  For the example in the issue,
    >
    >                norm   eol   bol
    >    repeat     (“.|:”,  #f, “.|:”)
    >    main       (“||”, “||”, “||”)
    >    timing     (“|”,   “|”, “|”)
    >    -------------------------
    >    result     (“.|:”, “||”, “.|:”)
    >
    > BOTTOM-LAYER USE CASE: I want a bar line which
    >
    >   1. does not have the problems with repeat bar lines
    >      that are described in the tracker
    >
    >   2. looks different than an automatic bar line
    >
    >   3. does not require me to pay attention to the measure
    >      position to avoid clobbering automatic bar lines
    >
    >   4. is visible at the end of the line only
    >
    > I’ve seen this in hymns where lines are broken in mid-measure with a double bar or a thick bar when the break corresponds to the end of a line of the poem.  I currently use a command \meterBar which takes care of 2-4 with some hoop-jumping and code that seems fragile.  It think bar line layers would solve the whole problem more easily.
    >
    > BAR ERASURE: \bar “” currently erases automatic bar lines.  Is this important or just a side effect?  What should \bar “” mean in a layered scheme?
    >
    > Option 1. The intended use of \bar “” is just to allow a line break; erasing an automatic bar line is a side effect nobody cares for.  It is fine if \bar “” is changed to allow a lower-layer bar to appear.  There are separate layers for “timing” and “main” bar lines, and \bar “” adds a transparent bar line to the “main” layer.  We do not need to add #f as an option in the glyph sets.
    >
    > Option 2. Erasing an automatic bar line with \bar “” is useful, but it is not generally useful to allow one layer to hide what is under it without drawing anything in its place.  There is one combined layer for “timing” and “main” bar lines, and \bar “” overrides the type of bar in this layer (like the current code).  We do not need to add #f as an option in the glyph sets.
    >
    > Option 3. It is generally useful to allow one layer to hide what is under it without drawing anything in its place, and this is what \bar “” does in a separate “main” layer above the “timing” layer.  This needs to be represented in the glyph sets.
    >
    > There’s a lot more to consider, but that’s enough for now.  Thanks for your feedback.
    > —
    > Dan

     

    Related

    Issues: #3688

  • Trevor Daniels

    Trevor Daniels - 2015-09-13
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -2,29 +2,32 @@
    
     *Originally created by:* [janek.li...@gmail.com](http://code.google.com/u/100525084317801742451/)
    
    -\markup \justify \{
    -&nbsp; Manual barlines overwrite repeat barlines:
    -\}
    +~~~~
    +:::TeX
    +\markup \justify {
    +  Manual barlines overwrite repeat barlines:
    +}
    
    -\relative f' \{
    -&nbsp; [r1] 
    -&nbsp; \bar "||"
    -&nbsp; \repeat volta 2 \{
    -&nbsp;&nbsp;&nbsp; c1
    -&nbsp; \}
    -&nbsp; \bar "||"
    -\}
    +\relative f' {
    +  R1 
    +  \bar "||"
    +  \repeat volta 2 {
    +    c1
    +  }
    +  \bar "||"
    +}
    
    -\markup \justify \{
    -&nbsp; This is especially wrong when the repeat starts after
    -&nbsp; a line break, as repeat barline could be easily added
    -&nbsp; at the beginning of the next system:
    -\}
    -\relative f' \{
    -&nbsp; [r1] 
    -&nbsp; \bar "||"
    -&nbsp; \break
    -&nbsp; \repeat volta 2 \{
    -&nbsp;&nbsp;&nbsp; c1
    -&nbsp; \}
    -\}
    +\markup \justify {
    +  This is especially wrong when the repeat starts after
    +  a line break, as repeat barline could be easily added
    +  at the beginning of the next system:
    +}
    +\relative f' {
    +  R1 
    +  \bar "||"
    +  \break
    +  \repeat volta 2 {
    +    c1
    +  }
    +}
    +~~~~
    
    • Needs: -->
    • Patch: -->
     
  • Trevor Daniels

    Trevor Daniels - 2015-09-13
     
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.