lilypond-user
[Top][All Lists]
Advanced

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

Re: Accidental style in presence of mid-bar line breaks.


From: Richard Shann
Subject: Re: Accidental style in presence of mid-bar line breaks.
Date: Thu, 28 Jun 2018 16:52:47 +0100

On Thu, 2018-06-28 at 14:52 +0100, Richard Shann wrote:
> On Thu, 2018-06-28 at 09:09 +0100, Richard Shann wrote:
> > On Wed, 2018-06-27 at 17:00 +0200, Simon Albrecht wrote:
> > > On 26.06.2018 09:11, Richard Shann wrote:
> > > > In this connection, I noticed that LilyPond skips printing the
> > > > bar
> > > > number at the beginning of each line if the bar is being split
> > > > over
> > > > a
> > > > line.
> > > 
> > > That’s configurable:
> > > 
> > > %%%%%%%%%%%%%%%%%%%%%%%
> > > \version "2.19.80"
> > > 
> > > \layout {
> > >    \context {
> > >      \Score
> > >      barNumberVisibility = #(every-nth-bar-number-visible 1)
> > >      \override BarNumber.break-visibility = #begin-of-line-
> > > visible
> > >    }
> > > }
> > > 
> > > {
> > >    1 2 \bar "" \break 2
> > > }
> > > %%%%%%%%%%%%%%%%%%%%%%%
> > > 
> > 
> > Thanks - that's useful, I've added it to Denemo's "Allow breaks at
> > half
> > bar" command. It also suggests that if I look for where the
> > parenthesized measure numbers are generated in LilyPond's sources I
> > might be able to trigger a warning to the user that a bar has been
> > broken, and they (or Denemo) can look for possible repeat
> > accidentals
> > to add.
> 
> I've had a go at finding where the "(" is added to the bar number
> markup and found that 
> 
> \version "2.19.43"
> 
> #(define-public ((every-nth-bar-number-visible n) barnum mp)
>    (display "\n\n\nhello\n\n\n")
>   (= 0 (modulo barnum n)))
> 
> \layout {
>    \context {
>      \Score
>      barNumberVisibility = #(every-nth-bar-number-visible 1)
>      \override BarNumber.break-visibility = #begin-of-line-visible
>    }
> }
> 
> {
>    a1 a2 \bar "" \break a2
> }
> 
> Does issue "hello" on standard out, so I could issue a warning there,
> but the only place the "(" seems to be added is at
> 
> (define-public (robust-bar-number-function ...)
> 
> in scm/translation-functions.scm 
> 
> and this procedure does *not* seemed to be called in compiling that
> example. Anyone any clues about where in the source code the "(" is
> added to a bar numbering?

Ha!
I find that the following code

\version "2.19.43"

#(define-public ((every-nth-bar-number-visible n) barnum mp)
   (if (positive? (ly:moment-main-numerator mp))
       (format #t "Warning bar ~A is broken\n" barnum))
  (= 0 (modulo barnum n)))

\layout {
   \context {
     \Score
     barNumberVisibility = #(every-nth-bar-number-visible 1)
     \override BarNumber.break-visibility = #begin-of-line-visible
   }
}

{
  
   a1 a2 \bar "" \break a2  a1  
}

Gives the needed warning when a bar is broken, but I guess it is not
going to be possible to identify which \score {} block the mid bar
break occurred ... The user knows a bar number n has been broken, but
not which movement that was in.

Richard








reply via email to

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