<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.lilypond.community/index.php?action=history&amp;feed=atom&amp;title=Displaying_bar_numbers_on_a_separate_staff</id>
	<title>Displaying bar numbers on a separate staff - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lilypond.community/index.php?action=history&amp;feed=atom&amp;title=Displaying_bar_numbers_on_a_separate_staff"/>
	<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Displaying_bar_numbers_on_a_separate_staff&amp;action=history"/>
	<updated>2026-05-04T17:04:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Displaying_bar_numbers_on_a_separate_staff&amp;diff=4247&amp;oldid=prev</id>
		<title>Lemzwerg: New category</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Displaying_bar_numbers_on_a_separate_staff&amp;diff=4247&amp;oldid=prev"/>
		<updated>2025-11-21T23:18:20Z</updated>

		<summary type="html">&lt;p&gt;New category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:18, 21 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l322&quot;&gt;Line 322:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 322:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Staff notation]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Staff notation]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Contexts and engravers]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Contexts and engravers]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Preparing parts]][[Category:Snippet]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Preparing parts]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Snippet]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lemzwerg</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Displaying_bar_numbers_on_a_separate_staff&amp;diff=3423&amp;oldid=prev</id>
		<title>Lemzwerg at 22:51, 21 November 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Displaying_bar_numbers_on_a_separate_staff&amp;diff=3423&amp;oldid=prev"/>
		<updated>2025-11-21T22:51:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:51, 21 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l322&quot;&gt;Line 322:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 322:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Staff notation]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Staff notation]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Contexts and engravers]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Contexts and engravers]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Preparing parts]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Preparing parts&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]][[Category:Snippet&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lemzwerg</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Displaying_bar_numbers_on_a_separate_staff&amp;diff=2347&amp;oldid=prev</id>
		<title>Jean Abou Samra: Replace version=&quot;2.24.0&quot; with version=&quot;2.24&quot; now that the LilyWiki extension supports auto-selecting the latest release in a stable series</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Displaying_bar_numbers_on_a_separate_staff&amp;diff=2347&amp;oldid=prev"/>
		<updated>2025-11-16T18:49:12Z</updated>

		<summary type="html">&lt;p&gt;Replace version=&amp;quot;2.24.0&amp;quot; with version=&amp;quot;2.24&amp;quot; now that the LilyWiki extension supports auto-selecting the latest release in a stable series&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:49, 16 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Defines the BarNumberStaff context, to be used as a more prominent measure counter in between of staff groups in large scores.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Defines the BarNumberStaff context, to be used as a more prominent measure counter in between of staff groups in large scores.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lilypond version=&quot;2.24&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.0&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;lilypond version=&quot;2.24&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% http://lsr.di.unimi.it/LSR/Item?id=651&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% http://lsr.di.unimi.it/LSR/Item?id=651&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Displaying_bar_numbers_on_a_separate_staff&amp;diff=583&amp;oldid=prev</id>
		<title>Jean Abou Samra: Import snippet from LSR</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Displaying_bar_numbers_on_a_separate_staff&amp;diff=583&amp;oldid=prev"/>
		<updated>2025-10-26T22:44:32Z</updated>

		<summary type="html">&lt;p&gt;Import snippet from LSR&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Defines the BarNumberStaff context, to be used as a more prominent measure counter in between of staff groups in large scores.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24.0&amp;quot;&amp;gt;&lt;br /&gt;
%% http://lsr.di.unimi.it/LSR/Item?id=651&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% Store the following until&lt;br /&gt;
%%   %% end of include file&lt;br /&gt;
%% as BarNumberStaff-1.0.ily.&lt;br /&gt;
%% To use it in your projects, write&lt;br /&gt;
%%   \include &amp;quot;&amp;lt;path-to-file/&amp;gt;BarNumberStaff-1.0.ily&amp;quot;&lt;br /&gt;
%% to define the BarNumberStaff context described below.&lt;br /&gt;
%%&lt;br /&gt;
%% Cheers,&lt;br /&gt;
%%   Alexander&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% BarNumberStaff&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% Version 1.0&lt;br /&gt;
%% 2009, Alexander Kobel (www.a-kobel.de)&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% Defines the&lt;br /&gt;
%%   BarNumberStaff&lt;br /&gt;
%% context, to be used as a more prominent measure counter&lt;br /&gt;
%% in between of staff groups in large scores.&lt;br /&gt;
%%&lt;br /&gt;
%% To use it, insert&lt;br /&gt;
%%   \new BarNumberStaff { ... }&lt;br /&gt;
%% into your score, where { ... } is a combination of&lt;br /&gt;
%% MultiMeasureRests, RehearsalMarks and optionally skips and&lt;br /&gt;
%% attached TextScripts.&lt;br /&gt;
%% Every MultiMeasureRest is translated to the bar number of&lt;br /&gt;
%% the current measure, RehearsalMarks and TextScripts are&lt;br /&gt;
%% printed as usual.&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%% This should also work with older versions, probably up&lt;br /&gt;
%% to &amp;lt;= 2.10. Please report if this is the case.&lt;br /&gt;
%% However, note that Joe Neeman&amp;#039;s new vertical spacing&lt;br /&gt;
%% algorithm greatly improves the default influence of a&lt;br /&gt;
%% BarNumberStaff to the overall score layout, thus version&lt;br /&gt;
%% &amp;gt;= 2.13.x is recommended (see lines 213 - 231).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% Internals&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% BarNumberStaves use MultiMeasureRests to render bar numbers.&lt;br /&gt;
%% The underlying concept is as follows:&lt;br /&gt;
%%&lt;br /&gt;
%% A global measure counter is initialized to 0.&lt;br /&gt;
%% Conceptually, each time a MultiMeasureRestNumber is rendered, the&lt;br /&gt;
%% global measure counter is examined, incremented, and used as &amp;#039;text.&lt;br /&gt;
%% To handle compressed full measure rests, the &amp;#039;text callback of&lt;br /&gt;
%% MultiMeasureRestNumber hijacks the &amp;#039;measure-count property of the&lt;br /&gt;
%% parental MultiMeasureRest to know how many bars have been compressed.&lt;br /&gt;
%%&lt;br /&gt;
%% To allow several scores per file, or several BarNumberStaves per score,&lt;br /&gt;
%% without forcing the user to reset the global counter or initialize&lt;br /&gt;
%% several &amp;#039;text callbacks per BarNumberStaff, the callback further&lt;br /&gt;
%% checks the &amp;#039;when moment of the NonMusicalPaperColumn of the rest,&lt;br /&gt;
%% and stores both the moment and the respective bar number in another&lt;br /&gt;
%% global variable. If a moment before the cached value is encountered,&lt;br /&gt;
%% a new score is assumed and the global state is reset. If the same&lt;br /&gt;
%% moment is encountered, another BarNumberStaff calls the bar number&lt;br /&gt;
%% at the same position, so the increment of the global measure counter&lt;br /&gt;
%% has already been done.&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
#(define global-measure-count 0)&lt;br /&gt;
#(define measure-at-when (cons (ly:make-moment 0 0) 1))&lt;br /&gt;
&lt;br /&gt;
#(define (bar-number-staff-text-callback grob)&lt;br /&gt;
  (let* (&lt;br /&gt;
    (parent-rest (ly:grob-parent grob Y))&lt;br /&gt;
    (measure-count (ly:grob-property parent-rest &amp;#039;measure-count))&lt;br /&gt;
    (parent-NMPC (ly:grob-parent parent-rest X)) ;; NonMusicalPaperColumn&lt;br /&gt;
    (when (ly:grob-property parent-NMPC &amp;#039;when))&lt;br /&gt;
    (moment=? (lambda (a b)&lt;br /&gt;
               (let ((diff (ly:moment-sub a b)))&lt;br /&gt;
                (and (zero? (ly:moment-main-numerator diff))&lt;br /&gt;
                 (zero? (ly:moment-grace-numerator diff))))))&lt;br /&gt;
    (start-measure&lt;br /&gt;
     (if (ly:moment&amp;lt;? (car measure-at-when) when)&lt;br /&gt;
      (1+ global-measure-count)&lt;br /&gt;
      (if (moment=? (car measure-at-when) when)&lt;br /&gt;
       (cdr measure-at-when)&lt;br /&gt;
       1)))&lt;br /&gt;
    (end-measure (+ start-measure (1- measure-count)))&lt;br /&gt;
  )&lt;br /&gt;
   (if (&amp;gt; start-measure end-measure)&lt;br /&gt;
    ;; Probably in a partial, but a MultiMeasureRest can&amp;#039;t be positioned&lt;br /&gt;
    ;; well there. Thus commit suicide.&lt;br /&gt;
    (ly:grob-suicide! grob))&lt;br /&gt;
&lt;br /&gt;
   (set! measure-at-when (cons when start-measure))&lt;br /&gt;
   (set! global-measure-count end-measure)&lt;br /&gt;
   (if (= start-measure end-measure)&lt;br /&gt;
    (number-&amp;gt;string start-measure)&lt;br /&gt;
    (string-append&lt;br /&gt;
     (number-&amp;gt;string start-measure) &amp;quot; – &amp;quot; (number-&amp;gt;string end-measure)))))&lt;br /&gt;
&lt;br /&gt;
#(define (bar-number-staff-plain-stencil grob)&lt;br /&gt;
  (let* (;; determine maximum Y-extent of digits&lt;br /&gt;
         (target-Y-extent&lt;br /&gt;
         (ly:stencil-extent (grob-interpret-markup grob &amp;quot;0123456789&amp;quot;) Y)))&lt;br /&gt;
   ;; return the current text, with Y-extent enlarged to include all digits&lt;br /&gt;
   ;; centered for better alignment with RehearsalMarks and TextScripts,&lt;br /&gt;
   ;; and better fit of box-stencil around them&lt;br /&gt;
   (ly:stencil-add&lt;br /&gt;
    (ly:make-stencil &amp;quot;&amp;quot; &amp;#039;(0 . 0) target-Y-extent)&lt;br /&gt;
    (ly:text-interface::print grob))))&lt;br /&gt;
&lt;br /&gt;
#(define (bar-number-staff-boxed-stencil grob)&lt;br /&gt;
  (box-stencil (bar-number-staff-plain-stencil grob) 0.125 0.5))&lt;br /&gt;
&lt;br /&gt;
#(define (bar-number-staff-circled-stencil grob)&lt;br /&gt;
  (circle-stencil (bar-number-staff-plain-stencil grob) 0.125 0.5))&lt;br /&gt;
&lt;br /&gt;
\layout {&lt;br /&gt;
  \context {&lt;br /&gt;
    \type Engraver_group&lt;br /&gt;
    \name BarNumberStaff&lt;br /&gt;
    \alias Voice&lt;br /&gt;
    %% This in conceptually more elegant than \alias Staff,&lt;br /&gt;
    %% because Voice is a bottom context.&lt;br /&gt;
&lt;br /&gt;
    \consists Output_property_engraver&lt;br /&gt;
    \consists Mark_engraver&lt;br /&gt;
    \consists Multi_measure_rest_engraver&lt;br /&gt;
    \consists Text_engraver&lt;br /&gt;
&lt;br /&gt;
    \consists Script_row_engraver&lt;br /&gt;
    \consists Separating_line_group_engraver&lt;br /&gt;
    \consists Font_size_engraver&lt;br /&gt;
    \consists Collision_engraver&lt;br /&gt;
&lt;br /&gt;
    \consists Axis_group_engraver&lt;br /&gt;
&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    %% MultiMeasureRests are not to be shown themselves,&lt;br /&gt;
    %% but serve as a positioning anchor for the&lt;br /&gt;
    %% MultiMeasureRestNumbers showing the bar numbers.&lt;br /&gt;
    \override MultiMeasureRest.staff-position = #0&lt;br /&gt;
    \override MultiMeasureRest.Y-offset = #0&lt;br /&gt;
    \override MultiMeasureRest.Y-extent = #&amp;#039;(+inf.0 . -inf.0)&lt;br /&gt;
    \override MultiMeasureRest.transparent = ##t&lt;br /&gt;
&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    %% The MultiMeasureRestNumbers do the actual work&lt;br /&gt;
    %% of showing bar numbers.&lt;br /&gt;
&lt;br /&gt;
    %% Initialize fonts.&lt;br /&gt;
    \override MultiMeasureRestNumber.font-encoding = #&amp;#039;latin1&lt;br /&gt;
    \override MultiMeasureRestNumber.font-family = #&amp;#039;roman&lt;br /&gt;
    \override MultiMeasureRestNumber.font-series = #&amp;#039;bold&lt;br /&gt;
    \override MultiMeasureRestNumber.font-shape = #&amp;#039;upright&lt;br /&gt;
    \override MultiMeasureRestNumber.font-size = #1&lt;br /&gt;
&lt;br /&gt;
    %% The nasty tweak&lt;br /&gt;
    \override MultiMeasureRestNumber.text = #bar-number-staff-text-callback&lt;br /&gt;
&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    %% Predefined stencils:&lt;br /&gt;
    %% - bar-number-staff-plain-stencil&lt;br /&gt;
    %% - bar-number-staff-boxed-stencil&lt;br /&gt;
    %% - bar-number-staff-circled-stencil&lt;br /&gt;
    %%   (use with care; in particular, does not work well with&lt;br /&gt;
    %%    \compressEmptyMeasures)&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    \override MultiMeasureRestNumber.stencil = #bar-number-staff-plain-stencil&lt;br /&gt;
&lt;br /&gt;
    %% Positioning and spacing&lt;br /&gt;
    \override MultiMeasureRestNumber.extra-spacing-width = #&amp;#039;(0 . 0)&lt;br /&gt;
    \override MultiMeasureRestNumber.Y-offset = #0&lt;br /&gt;
&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    %% Allow RehearsalMarks and TextScripts to be printed in the&lt;br /&gt;
    %% BarNumberStaff.&lt;br /&gt;
&lt;br /&gt;
    \override RehearsalMark.break-align-symbols =&lt;br /&gt;
    #(lambda (grob)&lt;br /&gt;
      (if (= (ly:item-break-dir grob) 1)&lt;br /&gt;
       &amp;#039;(time-signature key-signature staff-bar clef left-edge)&lt;br /&gt;
       &amp;#039;(staff-bar)))&lt;br /&gt;
    \override RehearsalMark.Y-offset = #0&lt;br /&gt;
    \override RehearsalMark.outside-staff-priority = 0&lt;br /&gt;
&lt;br /&gt;
    rehearsalMarkFormatter = #format-mark-box-letters&lt;br /&gt;
&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    %% BarNumberStaves are intended to be used between StaffGroups,&lt;br /&gt;
    %% where no SpanBar occurs. In case of collisions, either use&lt;br /&gt;
    %% a whiteout stencil for the RehearsalMarks, or try&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    %% \override RehearsalMark.self-alignment-X = #LEFT&lt;br /&gt;
    %% \override RehearsalMark.X-offset = #1&lt;br /&gt;
    %%&lt;br /&gt;
    %% \override RehearsalMark.stencil =&lt;br /&gt;
    %% #(lambda (grob) (stencil-whiteout-box (ly:text-interface::print grob)))&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
    \override TextScript.Y-offset = #0&lt;br /&gt;
&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    %% Vertical spacing&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
    %% BarNumberStaves should not disturb the vertical spacing&lt;br /&gt;
    %% of a score, thus the defaults are to fit them very tightly&lt;br /&gt;
    %% into the score. Your mileage may vary, though - feel free&lt;br /&gt;
    %% to adjust the settings as you wish.&lt;br /&gt;
    %% Joe Neeman&amp;#039;s new vertical spacing algorithm in version 2.13&lt;br /&gt;
    %% greatly simplifies a tight positioning of the BarNumberStaff.&lt;br /&gt;
    %% No substantial effort has been made to achieve the same&lt;br /&gt;
    %% quality in &amp;lt;= 2.12.2.&lt;br /&gt;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
%    %% version 2.12.2&lt;br /&gt;
%&lt;br /&gt;
%    \override VerticalAxisGroup.minimum-Y-extent = #&amp;#039;(0 . 0)&lt;br /&gt;
%&lt;br /&gt;
%    %% requires version 2.13.x&lt;br /&gt;
%    \override VerticalAxisGroup.staff-affinity = #CENTER&lt;br /&gt;
%    \override VerticalAxisGroup.inter-staff-spacing =&lt;br /&gt;
%    #&amp;#039;((space . 5) (padding . 1.5) (minimum-distance . 1.5))&lt;br /&gt;
%&lt;br /&gt;
%    %% (Updaters note: due to some changes in 2.14.x the following is used)&lt;br /&gt;
&lt;br /&gt;
     \override VerticalAxisGroup.staff-staff-spacing = &lt;br /&gt;
     	#&amp;#039;((basic-distance . 1)&lt;br /&gt;
     	   (minimum-distance . 1)&lt;br /&gt;
     	   (padding . 3)&lt;br /&gt;
     	   (stretchability . 3))&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  \context { \Score      \accepts BarNumberStaff }&lt;br /&gt;
  \context { \ChoirStaff \accepts BarNumberStaff }&lt;br /&gt;
  \context { \GrandStaff \accepts BarNumberStaff }&lt;br /&gt;
  \context { \PianoStaff \accepts BarNumberStaff }&lt;br /&gt;
  \context { \StaffGroup \accepts BarNumberStaff }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% end of include file&lt;br /&gt;
%%&lt;br /&gt;
%% example follows:&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
marks = {&lt;br /&gt;
  \partial 2. s2.&lt;br /&gt;
  s1 s1 \mark \default&lt;br /&gt;
  s1 s1 \mark \default&lt;br /&gt;
  s1*3 \bar &amp;quot;|.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
music = { \partial 2. c&amp;#039;4 c&amp;#039; c&amp;#039; | \repeat unfold 20 c&amp;#039;4 c&amp;#039;\breve }&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  &amp;lt;&amp;lt;&lt;br /&gt;
    \new BarNumberStaff &amp;lt;&amp;lt;&lt;br /&gt;
      \marks&lt;br /&gt;
      { \compressEmptyMeasures \partial 2. s2. | R1*7 }&lt;br /&gt;
    &amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    \new StaffGroup &amp;lt;&amp;lt;&lt;br /&gt;
      \new Staff \with { instrumentName = &amp;quot;Tromba&amp;quot; } \music&lt;br /&gt;
      \new GrandStaff &amp;lt;&amp;lt;&lt;br /&gt;
        \new Staff \with { instrumentName = &amp;quot;Violino I&amp;quot; } \music&lt;br /&gt;
        \new Staff \with { instrumentName = &amp;quot;Violino II&amp;quot; } \music&lt;br /&gt;
      &amp;gt;&amp;gt;&lt;br /&gt;
      \new Staff \with { instrumentName = &amp;quot;Viola&amp;quot; }&lt;br /&gt;
      { \clef alto \music }&lt;br /&gt;
    &amp;gt;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    \new BarNumberStaff &amp;lt;&amp;lt;&lt;br /&gt;
      \marks&lt;br /&gt;
      { \compressEmptyMeasures \partial 2. s2. | R1*7 }&lt;br /&gt;
    &amp;gt;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    \new ChoirStaff &amp;lt;&amp;lt;&lt;br /&gt;
      \new Staff \with { instrumentName = &amp;quot;Soprano&amp;quot; } \music&lt;br /&gt;
      \new Staff \with { instrumentName = &amp;quot;Alto&amp;quot; }&lt;br /&gt;
      { \clef alto \music }&lt;br /&gt;
      \new Staff \with { instrumentName = &amp;quot;Tenore&amp;quot; }&lt;br /&gt;
      { \clef tenor \music }&lt;br /&gt;
      \new Staff \with { instrumentName = &amp;quot;Basso&amp;quot; }&lt;br /&gt;
      { \clef bass \music }&lt;br /&gt;
    &amp;gt;&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    \new BarNumberStaff {&lt;br /&gt;
      \compressEmptyMeasures&lt;br /&gt;
      \partial 2. f&amp;#039;&amp;#039;&amp;#039;2.^&amp;quot;Notes in BarNumberStaves are silently ignored…&amp;quot;&lt;br /&gt;
                        -\markup { \dynamic p &amp;quot; Foo?&amp;quot; }&lt;br /&gt;
      | R1 f,,-\markup { \dynamic ff \bold &amp;quot; Bar!&amp;quot; } R&lt;br /&gt;
      | r_&amp;quot;…as well as standard rests.&amp;quot; R R1*2&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    \new PianoStaff \with { instrumentName = &amp;quot;Continuo&amp;quot; } &amp;lt;&amp;lt;&lt;br /&gt;
      \new Staff \music&lt;br /&gt;
      \new Staff { \clef bass \music }&lt;br /&gt;
    &amp;gt;&amp;gt;&lt;br /&gt;
    \new Staff { \clef bass \music }&lt;br /&gt;
  &amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  \layout {&lt;br /&gt;
    \context {&lt;br /&gt;
      \Score&lt;br /&gt;
      \override NonMusicalPaperColumn.line-break-permission = ##f&lt;br /&gt;
      \remove Bar_number_engraver&lt;br /&gt;
      \remove Mark_engraver&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Staff notation]]&lt;br /&gt;
[[Category:Contexts and engravers]]&lt;br /&gt;
[[Category:Preparing parts]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
</feed>