Re: Custom Bar Line for Renaissance Polyphony

Gabriel Ellsworth <[email protected]> Mon, 27 Jul 2026 10:52:50 +0100
Newsgroups gmane.comp.gnu.lilypond.general
Message-ID <CAHavgtXUiVNghjcGE=4cfcgtPx1idpO5SjG_ZY+5hmz0Q4a_Gw@mail.gmail.com>
--00000000000018ba91065794b139
Content-Type: multipart/alternative; boundary="00000000000018ba90065794b138"

--00000000000018ba90065794b138
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sun, 26 Jul 2026, Yoshiaki Onishi wrote:

> > I would like to improve this draft in the following ways and need help:
> >     =E2=80=A2 make-down-tick-bar-line =E2=80=94 I would like it to mirr=
or
> make-up-tick-bar-line =E2=80=94 i.e., find the lowest staff line and exte=
nd down
> from there. But I haven=E2=80=99t been able to build that in my experimen=
tation.
> >     =E2=80=A2 Edges =E2=80=94 IIUC, LilyPond=E2=80=99s *tick* bar lines=
 are rounded boxes, but
> *normal* bar lines are squared off to meet the edge of the staff line whe=
re
> they end. My style requires (ideally) a box with one rounded edge (the ed=
ge
> that touches nothing) and one squared-off edge to touch a staff line. But=
 I
> don=E2=80=99t know how to build that.
>
> =E2=80=A6I think I addressed both of these issues? For Item 1, I did a bi=
t of a
> =E2=80=9Cbrute force=E2=80=9D thing where the value of =E2=80=9Cbottom=E2=
=80=9D is set depending on
> =E2=80=9Cline-count,=E2=80=9D using *cond*. If you somehow tinker with th=
e distance between
> staff lines, you=E2=80=99d have to also tweak the values, but I think thi=
s should
> work for now.
>

Thank you very much!


I am still experimenting with Scheme code to find the lowest staff line =E2=
=80=A6

I think I have isolated a problem.

In the MWE below, my Scheme code *can* find the lowest staff line. =F0=9F=
=91=8D

Screenshot (bar line in blue):
[image: image.png]

But if I try to use the minus sign (-) to *subtract* 0.25 staff space from
the minimum line-pos, to get the output that I want, things fail: The bar
line is no longer positioned relative to the lowest staff line.

Screenshot:

[image: image.png]

I am confused:


Why is it that I can add (+) 0.25 staff space above the lowest line, but I
*cannot subtract* (-) 0.25 staff space below that line?

%%%  SNIPPET BEGINS

\version "2.27.1"

% From https://github.com/lilypond/lilypond/blob/master/scm/bar-line.scm
#(define (bar-line::calc-blot thickness extent grob)
  "Calculate the blot diameter for a rounded box, taking the extent
into account."
  (let ((blot-diameter (layout-blot-diameter grob))
        (height (interval-length extent)))

   (cond ((< thickness blot-diameter) thickness)
         ((< height blot-diameter) height)
         (else blot-diameter))))

% From https://github.com/lilypond/lilypond/blob/master/scm/bar-line.scm
#(define (layout-blot-diameter grob)
  "Get the blot diameter of the @var{grob}'s corresponding layout."
  (let* ((layout (ly:grob-layout grob))
         (blot-diameter (ly:output-def-lookup layout 'blot-diameter)))

   blot-diameter))


*% Draw a tick placed around the lowest staff line:*#(define
(make-up-tick-bar-line is-span grob extent)
  (let* ((line-thickness (layout-line-thickness grob))
         (thickness (* (ly:grob-property grob 'hair-thickness 1)
                       line-thickness))
         (staff-symbol (ly:grob-object grob 'staff-symbol))
         (line-pos (ly:grob-property staff-symbol 'line-positions))
         (line-count (length line-pos))
         (staff-space (ly:staff-symbol-staff-space grob))
         (half-staff (* 1/2 staff-space))
         (quarter-staff (* 1/4 staff-space)))



*   ;; Our goal is to place the tick mark   ;; relative to the
bottom/lowest staff line.*   (if (>=3D line-count 2)
       (set! center
               (+ *; WILL FAIL if I change this plus to minus (-)*
                quarter-staff
                ; in the following code,
                ; min WORKS to find the lowest line:
                (* (apply min line-pos) half-staff))))

   (ly:round-filled-box
    (cons 0 thickness) ; x
    (coord-translate (symmetric-interval quarter-staff) center) ; y
    (bar-line::calc-blot thickness extent grob))))

#(add-bar-glyph-print-procedure "u" make-up-tick-bar-line)
#(define-bar-line "u" "u" #f #f)

\fixed c' {
  g1 \bar "u"
}

\layout {
  % \override Staff.StaffSymbol.line-count =3D #4
  \context {
    \Staff
    % For testing and inspection purposes:
    \override BarLine.color =3D #blue
  }
}

%%%  SNIPPET ENDS

--00000000000018ba90065794b138
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div><span id=3D"m_-5090=
933377449853377gmail-docs-internal-guid-86d4e50c-7fff-4858-26fd-2a8f8e0c00d=
1"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0p=
t"><span style=3D"background-color:transparent">On Sun, 26 </span>Jul<span =
style=3D"background-color:transparent"> 2026, Yoshiaki Onishi wrote:</span>=
</p></span></div></div><div class=3D"gmail_quote"><blockquote class=3D"gmai=
l_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,20=
4,204);padding-left:1ex">&gt; I would like to improve this draft in the fol=
lowing ways and need help:<br>
&gt;=C2=A0 =C2=A0 =C2=A0=E2=80=A2 make-down-tick-bar-line =E2=80=94 I would=
 like it to mirror make-up-tick-bar-line =E2=80=94 i.e., find the lowest st=
aff line and extend down from there. But I haven=E2=80=99t been able to bui=
ld that in my experimentation.<br>
&gt;=C2=A0 =C2=A0 =C2=A0=E2=80=A2 Edges =E2=80=94 IIUC, LilyPond=E2=80=99s =
*tick* bar lines are rounded boxes, but *normal* bar lines are squared off =
to meet the edge of the staff line where they end. My style requires (ideal=
ly) a box with one rounded edge (the edge that touches nothing) and one squ=
ared-off edge to touch a staff line. But I don=E2=80=99t know how to build =
that.<br>
<br>
=E2=80=A6I think I addressed both of these issues? For Item 1, I did a bit =
of a =E2=80=9Cbrute force=E2=80=9D thing where the value of =E2=80=9Cbottom=
=E2=80=9D is set depending on =E2=80=9Cline-count,=E2=80=9D using *cond*. I=
f you somehow tinker with the distance between staff lines, you=E2=80=99d h=
ave to also tweak the values, but I think this should work for now.<br></bl=
ockquote><div><span id=3D"m_-5090933377449853377gmail-docs-internal-guid-ba=
252bbd-7fff-3b01-9559-bdb0e63a03cb"><p dir=3D"ltr" style=3D"line-height:1.3=
8;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;font-fami=
ly:Garamond,serif;color:rgb(0,0,0);background-color:transparent;font-varian=
t:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p di=
r=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span=
 style=3D"font-size:12pt;font-family:Garamond,serif;color:rgb(0,0,0);backgr=
ound-color:transparent;font-variant:normal;vertical-align:baseline;white-sp=
ace:pre-wrap">Thank you very much!</span></p></span><span id=3D"m_-50909333=
77449853377gmail-docs-internal-guid-dc69cde9-7fff-ab05-9d46-cd6a1ca5c035"><=
p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><=
span style=3D"font-size:12pt;font-family:Garamond,serif;color:rgb(0,0,0);ba=
ckground-color:transparent;font-variant:normal;vertical-align:baseline;whit=
e-space:pre-wrap"><br></span></p><p dir=3D"ltr" style=3D"line-height:1.38;m=
argin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;font-family:=
Garamond,serif;color:rgb(0,0,0);background-color:transparent;font-variant:n=
ormal;vertical-align:baseline;white-space:pre-wrap">I am still experimentin=
g with Scheme code to find the lowest staff line =E2=80=A6</span></p><br><p=
 dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><s=
pan style=3D"font-size:12pt;font-family:Garamond,serif;color:rgb(0,0,0);bac=
kground-color:transparent;font-variant:normal;vertical-align:baseline;white=
-space:pre-wrap">I think I have isolated a problem.</span></p><br><p dir=3D=
"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span sty=
le=3D"font-size:12pt;font-family:Garamond,serif;color:rgb(0,0,0);background=
-color:transparent;font-variant:normal;vertical-align:baseline;white-space:=
pre-wrap">In the MWE below, my Scheme code *can* find the lowest staff line=
. =F0=9F=91=8D</span></p><br><p dir=3D"ltr" style=3D"line-height:1.38;margi=
n-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;font-family:Gara=
mond,serif;color:rgb(0,0,0);background-color:transparent;font-variant:norma=
l;vertical-align:baseline;white-space:pre-wrap">Screenshot<span id=3D"m_-50=
90933377449853377gmail-docs-internal-guid-6c21d5e9-7fff-64ed-cf1e-6784bd4fa=
647"><span style=3D"font-size:12pt;background-color:transparent;font-varian=
t:normal;vertical-align:baseline">=C2=A0(bar line in blue)</span></span>:</=
span></p><img src=3D"cid:ii_ms31ae3w0" alt=3D"image.png" width=3D"316" heig=
ht=3D"159"><br></span></div><div><span><br></span></div><div><span id=3D"m_=
-5090933377449853377gmail-docs-internal-guid-bad1f887-7fff-c3fa-bb10-33d893=
30e7fc"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:0pt"><span style=3D"font-size:12pt;font-family:Garamond,serif;color:rgb(=
0,0,0);background-color:transparent;font-variant:normal;vertical-align:base=
line;white-space:pre-wrap">But if I try to use the minus sign (-) to *subtr=
act* 0.25 staff space from the minimum line-pos, to get the output that I w=
ant, things fail: The bar line is no longer positioned relative to the lowe=
st staff line.</span></p><br><p dir=3D"ltr" style=3D"line-height:1.38;margi=
n-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;font-family:Gara=
mond,serif;color:rgb(0,0,0);background-color:transparent;font-variant:norma=
l;vertical-align:baseline;white-space:pre-wrap">Screenshot:</span></p></spa=
n></div><div><span><br></span></div><div><img src=3D"cid:ii_ms31bt281" alt=
=3D"image.png" width=3D"316" height=3D"160"><br></div><div><br></div><div><=
span id=3D"m_-5090933377449853377gmail-docs-internal-guid-0efc7589-7fff-210=
a-94a2-d040d8d4ae06"><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0p=
t;margin-bottom:0pt"><span style=3D"font-size:12pt;font-family:Garamond,ser=
if;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style=
:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;wh=
ite-space:pre-wrap">I am confused:</span></p><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12pt;=
font-family:Garamond,serif;color:rgb(0,0,0);background-color:transparent;fo=
nt-variant:normal;vertical-align:baseline;white-space:pre-wrap"><span id=3D=
"gmail-docs-internal-guid-612daf6b-7fff-8ddd-72e1-57ef75be666f"><br></span>=
</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-b=
ottom:0pt"><span style=3D"font-size:12pt;font-family:Garamond,serif;color:r=
gb(0,0,0);background-color:transparent;font-variant:normal;vertical-align:b=
aseline;white-space:pre-wrap">Why is it that I can add (+) 0.25 staff space=
 above the lowest line, but I *cannot subtract* (-) 0.25 staff space below =
that line?</span></p><br></span></div><div><span style=3D"font-family:monos=
pace;background-color:transparent">%%% =C2=A0SNIPPET BEGINS</span></div><di=
v><font face=3D"monospace"><br>\version &quot;2.27.1&quot;<br><br>% From <a=
 href=3D"https://github.com/lilypond/lilypond/blob/master/scm/bar-line.scm"=
 target=3D"_blank">https://github.com/lilypond/lilypond/blob/master/scm/bar=
-line.scm</a><br>#(define (bar-line::calc-blot thickness extent grob)<br>=
=C2=A0 &quot;Calculate the blot diameter for a rounded box, taking the exte=
nt<br>into account.&quot;<br>=C2=A0 (let ((blot-diameter (layout-blot-diame=
ter grob))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 (height (interval-length extent))=
)<br><br>=C2=A0 =C2=A0(cond ((&lt; thickness blot-diameter) thickness)<br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0((&lt; height blot-diameter) height)<br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(else blot-diameter))))<br><br>% From <a =
href=3D"https://github.com/lilypond/lilypond/blob/master/scm/bar-line.scm" =
target=3D"_blank">https://github.com/lilypond/lilypond/blob/master/scm/bar-=
line.scm</a><br>#(define (layout-blot-diameter grob)<br>=C2=A0 &quot;Get th=
e blot diameter of the @var{grob}&#39;s corresponding layout.&quot;<br>=C2=
=A0 (let* ((layout (ly:grob-layout grob))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0(blot-diameter (ly:output-def-lookup layout &#39;blot-diameter)))<br>=
<br>=C2=A0 =C2=A0blot-diameter))<br><br><b>% Draw a tick placed around the =
lowest staff line:<br></b>#(define (make-up-tick-bar-line is-span grob exte=
nt)<br>=C2=A0 (let* ((line-thickness (layout-line-thickness grob))<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(thickness (* (ly:grob-property grob &#39;ha=
ir-thickness 1)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0line-thickness))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0(staff-symbol (ly:grob-object grob &#39;staff-symbol))<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0(line-pos (ly:grob-property staff-symbol &#39;line-=
positions))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(line-count (length line-p=
os))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(staff-space (ly:staff-symbol-sta=
ff-space grob))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(half-staff (* 1/2 sta=
ff-space))<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(quarter-staff (* 1/4 staff=
-space)))<br><br><b>=C2=A0 =C2=A0;; Our goal is to place the tick mark<br>=
=C2=A0 =C2=A0;; relative to the bottom/lowest staff line.<br></b>=C2=A0 =C2=
=A0(if (&gt;=3D line-count 2)<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0(set! center<br=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(+ <b><font size=3D=
"4">; WILL FAIL if I change this plus to minus (-)</font></b><br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 quarter-staff<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ; in the following code,<br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ; min WORKS to find=
 the lowest line:<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 (* (apply min line-pos) half-staff))))<br><br>=C2=A0 =C2=A0(ly:round-fi=
lled-box<br>=C2=A0 =C2=A0 (cons 0 thickness) ; x<br>=C2=A0 =C2=A0 (coord-tr=
anslate (symmetric-interval quarter-staff) center) ; y<br>=C2=A0 =C2=A0 (ba=
r-line::calc-blot thickness extent grob))))<br><br>#(add-bar-glyph-print-pr=
ocedure &quot;u&quot; make-up-tick-bar-line)<br>#(define-bar-line &quot;u&q=
uot; &quot;u&quot; #f #f)<br><br>\fixed c&#39; {<br>=C2=A0 g1 \bar &quot;u&=
quot;<br>}<br><br>\layout {<br>=C2=A0 % \override Staff.StaffSymbol.line-co=
unt =3D #4<br>=C2=A0 \context {<br>=C2=A0 =C2=A0 \Staff<br>=C2=A0 =C2=A0 % =
For testing and inspection purposes:<br>=C2=A0 =C2=A0 \override BarLine.col=
or =3D #blue<br>=C2=A0 }<br>}<br><br>%%% =C2=A0SNIPPET ENDS</font><span></s=
pan></div></div></div>
</div>

--00000000000018ba90065794b138--

--00000000000018ba91065794b139
Content-Type: image/png; name="image.png"
Content-Disposition: inline; filename="image.png"
Content-Transfer-Encoding: base64
Content-ID: <ii_ms31ae3w0>
X-Attachment-Id: ii_ms31ae3w0

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
AABJRU5ErkJggg==
--00000000000018ba91065794b139
Content-Type: image/png; name="image.png"
Content-Disposition: inline; filename="image.png"
Content-Transfer-Encoding: base64
Content-ID: <ii_ms31bt281>
X-Attachment-Id: ii_ms31bt281

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
/wAi5U4BdRO4MgAAAABJRU5ErkJggg==
--00000000000018ba91065794b139--