lilypond-user
[Top][All Lists]
Advanced

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

Re: \bar "||" and \repeat around a line break


From: Thomas Morley
Subject: Re: \bar "||" and \repeat around a line break
Date: Mon, 21 Jan 2013 13:48:07 +0100

2013/1/19 David Kastrup <address@hidden>:
> Jim Long <address@hidden> writes:
>
>> On Fri, Jan 18, 2013 at 11:19:33AM +0100, David Kastrup wrote:
>>>
>>> I was just pointing out that LilyPond's default is not all-lunatic.
>>
>> I'd like to eat some crow, as it seems I'm the lunatic in this
>> thread for which I must apologize.
>
> I was not stating that LilyPond's default was the best it could be (or
> even intentionally the way it is), merely that the notion "this is
> totally wrong" is exaggerated.
>
>> My interest in this issue of implicit open-repeat bars could be
>> addressed with an override ability for repeats beginning at the
>> start of a piece or at a double bar.  Like Werner, I too was
>> unaware of the double-bar aspect of the rule for repeats.
>
>> Perhaps this could be overridden only when needed, or set
>> globally for a given context where it is wanted.
>
> I am not sure whether an explicit repeat sign should not be the default
> here, particularly at a line break.  But that does not mean that it
> should be the only possible option.
>
> --
> David Kastrup
>
>
> _______________________________________________
> lilypond-user mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user

Hi,

I investigated this topic further:

a) Question
What happens if a manual \bar is set and \repeat starts at the same moment?

b) Testing-scenario
Storing all available barlines in lists (for 2.16.1 and 2.17.9).
Creating an automated test-procedure with custom-setting of
startRepeatType as an indicator.

c) Test-procedure

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\version "2.16.1"
% or
%\version "2.17.9"

% After temporary adding this line
%
% (write (map (lambda (x) (car x)) bar-glyph-alist))
%
% to /scm/bar-line.scm of 2.16.1 and "2.17.9"
% the following bar-line-lists could be found.

#(define 2-16-1-bar-lines '(
    ":|:"
    ":|.|:"
    ":|.:"
    "||:"
    "dashed"
    "|"
    "|s"
    "|:"
    "|."
    ".|"
    ":|"
    "||"
    ".|."
    "|.|"
    ""
    ":"
    "."
    "'"
    "empty"
    "brace"
    "bracket"
    "S"
    "|S"
    "S|"
    ":|S"
    ":|S."
    "S|:"
    ".S|:"
    ":|S|:"
    ":|S.|:"
    "kievan"))

#(define 2-17-9-bar-lines '(
      "k"
      ":|.S.|:-S"
      ":|.S.|:"
      "S.|:-S"
      "S.|:"
      ":|.S-S"
      ":|.S"
      "S-S"
      "S-|"
      "S"
      ".|:-||"
      ":|][|:"
      ":|]"
      "[|:"
      ".|:"
      ":|."
      ":.|.:"
      ":|.|:"
      ":..:"
      ":|.:"
      "'"
      ";"
      "!"
      "|.|"
      ".."
      "||"
      "|."
      ".|"
      "."
      "|-s"
      "|"
      "-"
      ""
    ))

% Automated testing-procedure
% Works with both versions

mus =
\new Staff {
  $(make-sequential-music
    (map
      (lambda (x)
        (let* ((arg-1
                 (string-append
                   "\"" x "\""))
               (arg-2
                 (string-append
                   "\\bar " arg-1))
               (arg-3
                 (string-append
                   "Testing bar-line and \\repeat with glyph: " arg-1))
               (test-mark
                 #{
                    \once \override Score.RehearsalMark #'self-alignment-X =
                      #LEFT
                    \once \override Score.RehearsalMark #'break-visibility =
                      ##(#f #f #t)
                    \mark \markup #arg-3
                 #})
               (bar-mark
                 #{
                    \mark
                      \markup {
                              \rounded-box
                              \with-color #red
                              \center-column { #arg-2 "and start of \\repeat" }
                      }
                 #}))
         #{
           \relative c' {
              #test-mark
              c1 cis
              #bar-mark

              \bar #x
              %\break

              % For testing-purpose:
              % Setting a "kievan"-startRepeatType works only
              % if the previous bar-glyph is "|" !!!!
              \set Score.startRepeatType =
                #(if (= 16 (cadr (ly:version))) "kievan" "k")
              \repeat volta 2 { d }
              e
              \break
           }
         #}))
    (if (= 16 (cadr (ly:version)))
        2-16-1-bar-lines
        2-17-9-bar-lines)
    ))
  }

% The test-call

#(set-global-staff-size 11)

\paper { ragged-last-bottom = ##f }

\layout {
        \context {
                \Score
                \override NonMusicalPaperColumn #'line-break-permission = ##f
                \override RehearsalMark #'break-visibility = ##(#t #t #f)
                \override RehearsalMark #'font-size = #0
        }
        line-width = 190
        indent = 0
}

\mus

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

d) Results
The manual bar overrides the startRepeatType in all cases, apart from \bar "|".
\bar "||" isn't special-cased.

e) Thoughts
My naive estimation was that the second bar-setting would override the
first, but it is the opposite (apart from \bar "|").
To get customized barlines via startRepeatType (very easy with the
newer devel-version) one has to omit any manual \bar at the same
moment.

I'd vote for a feature making possible that startRepeatType overrides
a manual bar.


Cheers,
  Harm



reply via email to

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