<?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=Positioning_tuplet_numbers_close_to_kneed_beams</id>
	<title>Positioning tuplet numbers close to kneed beams - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lilypond.community/index.php?action=history&amp;feed=atom&amp;title=Positioning_tuplet_numbers_close_to_kneed_beams"/>
	<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Positioning_tuplet_numbers_close_to_kneed_beams&amp;action=history"/>
	<updated>2026-06-19T09:44:16Z</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=Positioning_tuplet_numbers_close_to_kneed_beams&amp;diff=4903&amp;oldid=prev</id>
		<title>Lemzwerg: New category</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Positioning_tuplet_numbers_close_to_kneed_beams&amp;diff=4903&amp;oldid=prev"/>
		<updated>2025-11-21T23:35:34Z</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:35, 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-l157&quot;&gt;Line 157:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 157:&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:Tweaks and overrides]]&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:Tweaks and overrides]]&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:Keyboards]]&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:Keyboards]]&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:Version-specific]][[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:Version-specific]]&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=Positioning_tuplet_numbers_close_to_kneed_beams&amp;diff=3752&amp;oldid=prev</id>
		<title>Lemzwerg at 22:57, 21 November 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Positioning_tuplet_numbers_close_to_kneed_beams&amp;diff=3752&amp;oldid=prev"/>
		<updated>2025-11-21T22:57:56Z</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:57, 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-l157&quot;&gt;Line 157:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 157:&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:Tweaks and overrides]]&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:Tweaks and overrides]]&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:Keyboards]]&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:Keyboards]]&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:Version-specific]]&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:Version-specific&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=Positioning_tuplet_numbers_close_to_kneed_beams&amp;diff=2829&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=Positioning_tuplet_numbers_close_to_kneed_beams&amp;diff=2829&amp;oldid=prev"/>
		<updated>2025-11-16T18:55:31Z</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:55, 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-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&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;Two functions are provided. The first moves the number along the Y-axis, and is called like so: &amp;lt;code&amp;gt;\override TupletNumber #&amp;#039;Y-offset = #kneed-beam&amp;lt;/code&amp;gt;. The second function centers the number horizontally: &amp;lt;code&amp;gt;\override TupletNumber #&amp;#039;X-offset = #center-on-beam&amp;lt;/code&amp;gt;.&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;Two functions are provided. The first moves the number along the Y-axis, and is called like so: &amp;lt;code&amp;gt;\override TupletNumber #&amp;#039;Y-offset = #kneed-beam&amp;lt;/code&amp;gt;. The second function centers the number horizontally: &amp;lt;code&amp;gt;\override TupletNumber #&amp;#039;X-offset = #center-on-beam&amp;lt;/code&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;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=646&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=646&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=Positioning_tuplet_numbers_close_to_kneed_beams&amp;diff=565&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=Positioning_tuplet_numbers_close_to_kneed_beams&amp;diff=565&amp;oldid=prev"/>
		<updated>2025-10-26T22:44:13Z</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;If you want to move tuplet numbers close to kneed beams on a single staff or between staves, this workaround automates the process. It ignores tuplets on ordinary beams or with visible brackets.&lt;br /&gt;
&lt;br /&gt;
Important: to work properly, this method must be used with manual beaming.&lt;br /&gt;
&lt;br /&gt;
Two functions are provided. The first moves the number along the Y-axis, and is called like so: &amp;lt;code&amp;gt;\override TupletNumber #&amp;#039;Y-offset = #kneed-beam&amp;lt;/code&amp;gt;. The second function centers the number horizontally: &amp;lt;code&amp;gt;\override TupletNumber #&amp;#039;X-offset = #center-on-beam&amp;lt;/code&amp;gt;.&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=646&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% A function to position tuplet numbers next to kneed beams on a single&lt;br /&gt;
%% staff and between staves. Will ignore tuplets on ordinary beams and&lt;br /&gt;
%% with visible brackets.&lt;br /&gt;
%%&lt;br /&gt;
%% Usage: \override TupletNumber.Y-offset = #kneed-beam&lt;br /&gt;
%%&lt;br /&gt;
%% You must use manual beaming for this function to work properly.&lt;br /&gt;
%%&lt;br /&gt;
%% An additional function, called with a separate override (see below), will&lt;br /&gt;
%% horizontally center the tuplet number on the kneed beam.&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
#(define (kneed-beam tuplet-number)&lt;br /&gt;
   (let* ((tuplet-bracket (ly:grob-object tuplet-number &amp;#039;bracket))&lt;br /&gt;
          (first-note (ly:grob-parent tuplet-bracket X))&lt;br /&gt;
          (first-stem (ly:grob-object first-note &amp;#039;stem))&lt;br /&gt;
          (beam (ly:grob-object first-stem &amp;#039;beam)))&lt;br /&gt;
&lt;br /&gt;
     (if (and (ly:grob? beam) ; beam on first note?&lt;br /&gt;
              (ly:grob-property beam &amp;#039;knee) ; is it kneed?&lt;br /&gt;
              (interval-empty? (ly:grob-property tuplet-bracket &amp;#039;Y-extent))) ; visible bracket?&lt;br /&gt;
         (let* ((stems (ly:grob-object beam &amp;#039;stems))&lt;br /&gt;
                (closest-stem (nearest tuplet-number stems))&lt;br /&gt;
                (direction-first-stem (ly:grob-property first-stem &amp;#039;direction))&lt;br /&gt;
                (direction-closest-stem (ly:grob-property closest-stem &amp;#039;direction))&lt;br /&gt;
                (beaming-near-number (car (ly:grob-property closest-stem &amp;#039;beaming)))&lt;br /&gt;
                (beam-multiplier&lt;br /&gt;
                 (if (= direction-closest-stem UP)&lt;br /&gt;
                     (length (filter positive? beaming-near-number))&lt;br /&gt;
                     (length (filter negative? beaming-near-number))))&lt;br /&gt;
                (beam-ends (ly:grob-property beam &amp;#039;positions))&lt;br /&gt;
                (mid-beam-Y (/ (+ (car beam-ends) (cdr beam-ends)) 2)) ; mid-beam Y-coordinate&lt;br /&gt;
                (number-height (ly:grob::stencil-height tuplet-number))&lt;br /&gt;
&lt;br /&gt;
                ;; inital value of Y-offset (will cause number to overlap beam slightly)&lt;br /&gt;
                (correction&lt;br /&gt;
                  (- mid-beam-Y&lt;br /&gt;
                    (if (= direction-closest-stem UP)&lt;br /&gt;
                        (car number-height)&lt;br /&gt;
                        (cdr number-height))))&lt;br /&gt;
                (beam-width (ly:grob-property beam &amp;#039;beam-thickness))&lt;br /&gt;
                (beam-gap (* 0.5 (ly:grob-property beam &amp;#039;gap)))&lt;br /&gt;
                (beam-padding 0.2)) ; change to move number closer or farther from beam&lt;br /&gt;
&lt;br /&gt;
           ;; refinement of initial value of Y-offset&lt;br /&gt;
           (cond&lt;br /&gt;
             ((= direction-first-stem direction-closest-stem DOWN)&lt;br /&gt;
              (- correction&lt;br /&gt;
                (* 0.5 beam-width)&lt;br /&gt;
                beam-padding))&lt;br /&gt;
&lt;br /&gt;
             ((= direction-first-stem direction-closest-stem UP)&lt;br /&gt;
              (+ correction&lt;br /&gt;
                (* 0.5 beam-width)&lt;br /&gt;
                beam-padding))&lt;br /&gt;
&lt;br /&gt;
             ((and (= direction-first-stem DOWN) (= direction-closest-stem UP))&lt;br /&gt;
              (+ correction&lt;br /&gt;
                (* beam-multiplier (+ beam-gap beam-width))&lt;br /&gt;
                (* 0.5 beam-width)&lt;br /&gt;
                beam-padding))&lt;br /&gt;
&lt;br /&gt;
             ((and (= direction-first-stem UP) (= direction-closest-stem DOWN))&lt;br /&gt;
              (- correction&lt;br /&gt;
                (* beam-multiplier (+ beam-gap beam-width))&lt;br /&gt;
                (* 0.5 beam-width)&lt;br /&gt;
                beam-padding)))))))&lt;br /&gt;
&lt;br /&gt;
%% find the stem closest to the tuplet-number&lt;br /&gt;
#(define (nearest tuplet-number stems)&lt;br /&gt;
  (let* ((refp (ly:grob-system tuplet-number))&lt;br /&gt;
         (X-coord (interval-center (ly:grob-extent tuplet-number refp X)))&lt;br /&gt;
         (closest (ly:grob-array-ref stems 0)))&lt;br /&gt;
    (let lp ((x 1))&lt;br /&gt;
     (if (&amp;lt;= (abs (- X-coord&lt;br /&gt;
                    (ly:grob-relative-coordinate&lt;br /&gt;
                      (ly:grob-array-ref stems x) refp X)))&lt;br /&gt;
             (abs (- X-coord&lt;br /&gt;
                    (ly:grob-relative-coordinate closest refp X))))&lt;br /&gt;
         (set! closest (ly:grob-array-ref stems x)))&lt;br /&gt;
     (if (&amp;lt; x (1- (ly:grob-array-length stems)))&lt;br /&gt;
         (lp (1+ x))&lt;br /&gt;
         closest))))&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% A function which horizontally centers a tuplet number on a kneed beam.  May&lt;br /&gt;
%% be used in conjunction with the earlier function.&lt;br /&gt;
%%&lt;br /&gt;
%% Usage: \override  TupletNumber.X-offset = #center-on-beam&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
#(define (center-on-beam tuplet-number)&lt;br /&gt;
  (let* ((tuplet-bracket (ly:grob-object tuplet-number &amp;#039;bracket))&lt;br /&gt;
         (first-note (ly:grob-parent tuplet-bracket X))&lt;br /&gt;
         (first-stem (ly:grob-object first-note &amp;#039;stem))&lt;br /&gt;
         (beam (ly:grob-object first-stem &amp;#039;beam)))&lt;br /&gt;
&lt;br /&gt;
    (if (and (ly:grob? beam)&lt;br /&gt;
             (ly:grob-property beam &amp;#039;knee)&lt;br /&gt;
             (interval-empty? (ly:grob-property tuplet-bracket &amp;#039;Y-extent)))&lt;br /&gt;
      (let* ((refp (ly:grob-system tuplet-number))&lt;br /&gt;
             (number-X (interval-center (ly:grob-extent tuplet-number refp X)))&lt;br /&gt;
             (beam-center-X (interval-center (ly:grob-extent beam refp X))))&lt;br /&gt;
    &lt;br /&gt;
        (- beam-center-X number-X)))))&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EXAMPLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
top = \change Staff = &amp;quot;1&amp;quot;&lt;br /&gt;
bottom = \change Staff = &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
music = \relative c {&lt;br /&gt;
  \override Beam.auto-knee-gap = #1&lt;br /&gt;
  \tupletSpan 4&lt;br /&gt;
  \tuplet 3/2 {&lt;br /&gt;
    \bottom c8[ g&amp;#039; \top e&amp;#039;]&lt;br /&gt;
    c&amp;#039;[ e, \bottom g,]&lt;br /&gt;
    \top e&amp;#039;&amp;#039;[ \bottom c,, \top g&amp;#039;&amp;#039;]&lt;br /&gt;
  }&lt;br /&gt;
  \tuplet 5/4 {&lt;br /&gt;
    \bottom c,,16[ \top g&amp;#039;&amp;#039; e&amp;#039; \bottom g,, \top c&amp;#039;]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \new PianoStaff &amp;lt;&amp;lt;&lt;br /&gt;
    \new Staff = &amp;quot;1&amp;quot; {&lt;br /&gt;
      s1^&amp;quot;Before:&amp;quot;&lt;br /&gt;
      s1^&amp;quot;After:&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
    \new Staff = &amp;quot;2&amp;quot; {&lt;br /&gt;
      \clef bass&lt;br /&gt;
      \music&lt;br /&gt;
      \bar &amp;quot;||&amp;quot;&lt;br /&gt;
      \override TupletNumber.Y-offset = #kneed-beam&lt;br /&gt;
      \override TupletNumber.X-offset = #center-on-beam&lt;br /&gt;
      \music&lt;br /&gt;
    }&lt;br /&gt;
  &amp;gt;&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Rhythms]]&lt;br /&gt;
[[Category:Scheme]]&lt;br /&gt;
[[Category:Tweaks and overrides]]&lt;br /&gt;
[[Category:Keyboards]]&lt;br /&gt;
[[Category:Version-specific]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
</feed>