<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.lilypond.community/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jean+Abou+Samra</id>
	<title>LilyPond wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lilypond.community/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jean+Abou+Samra"/>
	<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/wiki/Special:Contributions/Jean_Abou_Samra"/>
	<updated>2026-05-13T19:24:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Coloring_elements_of_notation&amp;diff=6524</id>
		<title>Coloring elements of notation</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Coloring_elements_of_notation&amp;diff=6524"/>
		<updated>2026-04-07T11:37:32Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Individual objects may be assigned colors. Several pre-defined colors are available; they are [https://lilypond.org/doc/v2.25/Documentation/notation/list-of-colors.html exhaustively listed] in the Notation Reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
\relative c&#039;&#039; {&lt;br /&gt;
  \override NoteHead.color = #red&lt;br /&gt;
  c4 c&lt;br /&gt;
  \override NoteHead.color = #(x11-color &#039;LimeGreen)&lt;br /&gt;
  d&lt;br /&gt;
  \override Stem.color = #blue&lt;br /&gt;
  e&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Editorial annotations]]&lt;br /&gt;
[[Category:Really simple]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Coloring_elements_of_notation&amp;diff=6523</id>
		<title>Coloring elements of notation</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Coloring_elements_of_notation&amp;diff=6523"/>
		<updated>2026-04-07T11:36:55Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Undo revision 6522 by Jean Abou Samra (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Individual objects may be assigned colors. Several pre-defined colors are available; they are exhaustively listed in the Notation Reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
%% http://lsr.di.unimi.it/LSR/Item?id=419&lt;br /&gt;
&lt;br /&gt;
\relative c&#039;&#039; {&lt;br /&gt;
  \override NoteHead.color = #red&lt;br /&gt;
  c4 c&lt;br /&gt;
  \override NoteHead.color = #(x11-color &#039;LimeGreen)&lt;br /&gt;
  d&lt;br /&gt;
  \override Stem.color = #blue&lt;br /&gt;
  e&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Editorial annotations]]&lt;br /&gt;
[[Category:Really simple]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Coloring_elements_of_notation&amp;diff=6522</id>
		<title>Coloring elements of notation</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Coloring_elements_of_notation&amp;diff=6522"/>
		<updated>2026-04-07T11:35:14Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Individual objects may be assigned colors. Several pre-defined colors are available; they are [https://lilypond.org/doc/v2.25/Documentation/notation/list-of-colors.html exhaustively listed] in the Notation Reference.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 \version &amp;quot;2.24&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 %% &amp;lt;nowiki&amp;gt;http://lsr.di.unimi.it/LSR/Item?id=419&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 \relative c&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt; {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; \override NoteHead.color = #red&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; c4 c&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; \override NoteHead.color = #(x11-color &#039;LimeGreen)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; d&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; \override Stem.color = #blue&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; e&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Editorial annotations]]&lt;br /&gt;
[[Category:Really simple]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Splitting_chords&amp;diff=6521</id>
		<title>Splitting chords</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Splitting_chords&amp;diff=6521"/>
		<updated>2026-04-07T09:51:33Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This snippet is a 2009 contribution by Gilles Thibault in [https://lists.gnu.org/archive/html/lilypond-user/2009-01/msg00685.html lilypond-user]. It provides two functions to split a chord sequence into two separate voices, also preserving articulations and slurs: &amp;lt;code&amp;gt;\keepOnlyFirstNote&amp;lt;/code&amp;gt; extracts the first note (as given in the input; this is usually the lowest one) of every chord, and &amp;lt;code&amp;gt;\deleteFirstNote&amp;lt;/code&amp;gt; collects the remaining notes.&lt;br /&gt;
&lt;br /&gt;
Note that these functions don&#039;t support &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt; to repeat the last chord.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
#(define (has-duration? music)&lt;br /&gt;
   (ly:duration? (ly:music-property music &#039;duration)))&lt;br /&gt;
&lt;br /&gt;
#(define (not-has-duration? music)&lt;br /&gt;
   (not (has-duration? music)))&lt;br /&gt;
&lt;br /&gt;
keepOnlyFirstNote =&lt;br /&gt;
#(define-music-function (music) (ly:music?)&lt;br /&gt;
   (music-map&lt;br /&gt;
    (lambda (evt)&lt;br /&gt;
      (when (eq? &#039;EventChord (ly:music-property evt &#039;name))&lt;br /&gt;
 	(let ((elts (ly:music-property evt &#039;elements)))&lt;br /&gt;
 	  (when (has-duration? (car elts))&lt;br /&gt;
 	    (ly:music-set-property!&lt;br /&gt;
 	     evt &#039;elements&lt;br /&gt;
 	     (cons (car elts)&lt;br /&gt;
 		   (filter not-has-duration? (cdr elts)))))))&lt;br /&gt;
      evt)&lt;br /&gt;
    music))&lt;br /&gt;
&lt;br /&gt;
deleteFirstNote =&lt;br /&gt;
#(define-music-function (music) (ly:music?)&lt;br /&gt;
   (music-map&lt;br /&gt;
    (lambda (evt)&lt;br /&gt;
      (when (eq? &#039;EventChord (ly:music-property evt &#039;name))&lt;br /&gt;
 	(let ((elts (ly:music-property evt &#039;elements)))&lt;br /&gt;
          (when (has-duration? (car elts))&lt;br /&gt;
            (ly:music-set-property! evt &#039;elements  (cdr elts)))))&lt;br /&gt;
      evt)&lt;br /&gt;
    music))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
music = \relative c&#039; {&lt;br /&gt;
  &amp;lt;c e&amp;gt;4-&amp;gt; &amp;lt;d f&amp;gt;( &amp;lt;b g&#039;&amp;gt;) &amp;lt;c e&amp;gt;-. g2 c2&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\markup { Music with chords }&lt;br /&gt;
\new Staff \music&lt;br /&gt;
&lt;br /&gt;
\markup { Music split into two staves }&lt;br /&gt;
&amp;lt;&amp;lt;&lt;br /&gt;
  \new Staff \deleteFirstNote \music&lt;br /&gt;
  \new Staff \keepOnlyFirstNote \music&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Chords]]&lt;br /&gt;
[[category:Scheme]]&lt;br /&gt;
[[category:Really cool]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Coloring_individual_staff_lines&amp;diff=6520</id>
		<title>Coloring individual staff lines</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Coloring_individual_staff_lines&amp;diff=6520"/>
		<updated>2026-04-07T09:46:10Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Staff lines can be colored independently by overriding the default stencil for &amp;lt;code&amp;gt;StaffSymbol&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;StaffSymbol&amp;lt;/code&amp;gt; callback &amp;lt;code&amp;gt;color-staff-lines&amp;lt;/code&amp;gt; takes a set of colors (using LilyPond&#039;s predefined colors or the functions &amp;lt;code&amp;gt;x11-color&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rgb-color&amp;lt;/code&amp;gt;) which are applied to each staff line in turn starting with the fifth line (for a standard staff), or each item in the list for custom staves defined with &amp;lt;code&amp;gt;line-positions&amp;lt;/code&amp;gt;. To signal that a particular line between colored lines should remain black, use &amp;lt;code&amp;gt;#f&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Contributed by Neil Puttock.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
#(define-public ((color-staff-lines . rest) grob)&lt;br /&gt;
&lt;br /&gt;
   (define (index-cell cell dir)&lt;br /&gt;
     (if (equal? dir RIGHT)&lt;br /&gt;
         (cdr cell)&lt;br /&gt;
         (car cell)))&lt;br /&gt;
&lt;br /&gt;
   (define (index-set-cell! x dir val)&lt;br /&gt;
     (case dir&lt;br /&gt;
       ((-1) (set-car! x val))&lt;br /&gt;
       ((1) (set-cdr! x val))))&lt;br /&gt;
&lt;br /&gt;
   (let* ((common (ly:grob-system grob))&lt;br /&gt;
          (span-points &#039;(0 . 0))&lt;br /&gt;
          (thickness (* (ly:grob-property grob &#039;thickness 1.0)&lt;br /&gt;
                        (ly:output-def-lookup (ly:grob-layout grob) &#039;line-thickness)))&lt;br /&gt;
          (width (ly:grob-property grob &#039;width))&lt;br /&gt;
          (line-positions (ly:grob-property grob &#039;line-positions))&lt;br /&gt;
          (staff-space (ly:grob-property grob &#039;staff-space 1))&lt;br /&gt;
          (line-stencil #f)&lt;br /&gt;
          (total-lines empty-stencil)&lt;br /&gt;
          ;; use a local copy of colors list, since&lt;br /&gt;
          ;; stencil creation mutates list&lt;br /&gt;
          (colors rest))&lt;br /&gt;
&lt;br /&gt;
     (for-each&lt;br /&gt;
      (lambda (dir)&lt;br /&gt;
        (if (and (= dir RIGHT)&lt;br /&gt;
                 (number? width))&lt;br /&gt;
            (set-cdr! span-points width)&lt;br /&gt;
            (let* ((bound (ly:spanner-bound grob dir))&lt;br /&gt;
                   (bound-ext (ly:grob-extent bound bound X)))&lt;br /&gt;
              &lt;br /&gt;
              (index-set-cell! span-points dir&lt;br /&gt;
                               (ly:grob-relative-coordinate bound common X))&lt;br /&gt;
              (if (and (not (ly:item-break-dir bound))&lt;br /&gt;
                       (not (interval-empty? bound-ext)))&lt;br /&gt;
                  (index-set-cell! span-points dir &lt;br /&gt;
                                   (+ (index-cell span-points dir)&lt;br /&gt;
                                      (index-cell bound-ext dir))))))&lt;br /&gt;
        (index-set-cell! span-points dir (- (index-cell span-points dir)&lt;br /&gt;
                                            (* dir thickness 0.5))))&lt;br /&gt;
      (list LEFT RIGHT))&lt;br /&gt;
&lt;br /&gt;
     (set! span-points&lt;br /&gt;
           (coord-translate span-points&lt;br /&gt;
                            (- (ly:grob-relative-coordinate grob common X))))&lt;br /&gt;
     (set! line-stencil&lt;br /&gt;
           (make-line-stencil thickness (car span-points) 0 (cdr span-points) 0))&lt;br /&gt;
&lt;br /&gt;
     (if (pair? line-positions)&lt;br /&gt;
         (for-each (lambda (position)&lt;br /&gt;
                     (let ((color (if (pair? colors)&lt;br /&gt;
                                      (car colors)&lt;br /&gt;
                                      #f)))&lt;br /&gt;
                       (set! total-lines&lt;br /&gt;
                             (ly:stencil-add&lt;br /&gt;
                              total-lines&lt;br /&gt;
                              (ly:stencil-translate-axis&lt;br /&gt;
                               (if (color? color)&lt;br /&gt;
                                   (ly:stencil-in-color line-stencil&lt;br /&gt;
                                                        (first color)&lt;br /&gt;
                                                        (second color)&lt;br /&gt;
                                                        (third color))&lt;br /&gt;
                                   line-stencil)&lt;br /&gt;
                               (* position staff-space 0.5) Y)))&lt;br /&gt;
                       (and (pair? colors)&lt;br /&gt;
                            (set! colors (cdr colors)))))&lt;br /&gt;
                   line-positions)       &lt;br /&gt;
         (let* ((line-count (ly:grob-property grob &#039;line-count 5))&lt;br /&gt;
                (height (* (1- line-count) (/ staff-space 2))))&lt;br /&gt;
           (do ((i 0 (1+ i)))                      &lt;br /&gt;
               ((= i line-count))&lt;br /&gt;
             (let ((color (if (and (pair? colors)&lt;br /&gt;
                                   (&amp;gt; (length colors) i))&lt;br /&gt;
                              (list-ref colors i)&lt;br /&gt;
                              #f)))&lt;br /&gt;
               (set! total-lines (ly:stencil-add&lt;br /&gt;
                                  total-lines&lt;br /&gt;
                                  (ly:stencil-translate-axis&lt;br /&gt;
                                   (if (color? color)&lt;br /&gt;
                                       (ly:stencil-in-color line-stencil&lt;br /&gt;
                                                            (first color)&lt;br /&gt;
                                                            (second color)&lt;br /&gt;
                                                            (third color))&lt;br /&gt;
                                       line-stencil)&lt;br /&gt;
                                   (- height (* i staff-space)) Y)))))))&lt;br /&gt;
     total-lines))&lt;br /&gt;
&lt;br /&gt;
\relative c&#039; {&lt;br /&gt;
  % color all lines in a standard five-line staff&lt;br /&gt;
  \override Staff.StaffSymbol.stencil = #(color-staff-lines red green yellow blue cyan)&lt;br /&gt;
  c1 \stopStaff&lt;br /&gt;
  \revert Staff.StaffSymbol.stencil&lt;br /&gt;
&lt;br /&gt;
  \startStaff&lt;br /&gt;
  % color the fifth, third and second lines only&lt;br /&gt;
  \override Staff.StaffSymbol.stencil = #(color-staff-lines (rgb-color 0 0.3 0.8) #f grey (x11-color &#039;LightGreen))&lt;br /&gt;
  c1 \stopStaff&lt;br /&gt;
  \revert Staff.StaffSymbol.stencil&lt;br /&gt;
&lt;br /&gt;
  \startStaff&lt;br /&gt;
  % color an individual line in a custom staff&lt;br /&gt;
  \override Staff.StaffSymbol.line-positions = #&#039;(-4 0 4)&lt;br /&gt;
  \override Staff.StaffSymbol.stencil = #(color-staff-lines #f red)&lt;br /&gt;
  c1 &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Staff notation]]&lt;br /&gt;
[[Category:Version-specific]]&lt;br /&gt;
[[Category:Tweaks and overrides]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Clef_change_at_the_beginning_of_a_piece_(alternative)&amp;diff=6519</id>
		<title>Clef change at the beginning of a piece (alternative)</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Clef_change_at_the_beginning_of_a_piece_(alternative)&amp;diff=6519"/>
		<updated>2026-04-07T09:44:26Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When changing the clef at the beginning of the first measure, Lilypond just changes the clef for the staff. This is how to keep the staff clef and add an extra clef after the time signature and before the first note.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
\relative c&#039; {&lt;br /&gt;
  %%  Start with a bass clef :&lt;br /&gt;
  \clef bass&lt;br /&gt;
  %%  Use a hidden grace note:&lt;br /&gt;
  \once\hideNotes\grace c64&lt;br /&gt;
  %%  Adjust the clef spacing:&lt;br /&gt;
  \once\override Staff.Clef.X-extent = #&#039;(1 . 2)&lt;br /&gt;
  %%  Put in the treble clef:&lt;br /&gt;
  \clef treble&lt;br /&gt;
  c4 c c c | c1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Staff notation]]&lt;br /&gt;
[[Category:Pitches]]&lt;br /&gt;
[[Category:Tweaks and overrides]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Clef,_key_and_time_signature_in_square_brackets&amp;diff=6485</id>
		<title>Clef, key and time signature in square brackets</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Clef,_key_and_time_signature_in_square_brackets&amp;diff=6485"/>
		<updated>2026-03-28T12:24:43Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For critical editions, objects like clefs, key or time signatures sometimes need to be written in parentheses to indicate they are missing from the autograph. This can be achieved by simply wrapping the &amp;lt;code&amp;gt;bracketify-stencil&amp;lt;/code&amp;gt; function around the object&#039;s stencil function. By using &amp;lt;code&amp;gt;\once \override&amp;lt;/code&amp;gt;, the effect can be applied to just one clef/key/time signature; by using &amp;lt;code&amp;gt;\override&amp;lt;/code&amp;gt; it applies to the whole piece.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
\layout { ragged-right = ##t }&lt;br /&gt;
&lt;br /&gt;
\relative c&#039;&#039; {&lt;br /&gt;
  % Use \once \override if you only want the object immediately following&lt;br /&gt;
  % to be in brackets.&lt;br /&gt;
  \override Staff.Clef.stencil = #(lambda (grob)&lt;br /&gt;
    (bracketify-stencil (ly:clef::print grob) Y 0.1 0.2 0.1))&lt;br /&gt;
  \override Staff.TimeSignature.stencil = #(lambda (grob)&lt;br /&gt;
    (bracketify-stencil (ly:time-signature::print grob) Y 0.1 0.2 0.1))&lt;br /&gt;
  \override Staff.KeySignature.stencil = #(lambda (grob)&lt;br /&gt;
    (bracketify-stencil (ly:key-signature-interface::print grob) Y 0.1 0.2 0.1))&lt;br /&gt;
  \time 2/4&lt;br /&gt;
  \key cis \minor&lt;br /&gt;
  a4 b8 cis \break&lt;br /&gt;
  \clef &amp;quot;bass&amp;quot;&lt;br /&gt;
  c,,2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Editorial annotations]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Expect_a_warning_several_times&amp;diff=6408</id>
		<title>Expect a warning several times</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Expect_a_warning_several_times&amp;diff=6408"/>
		<updated>2026-02-28T11:36:08Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Scheme style&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are times when your LilyPond source file prints warnings when compiled and you may want to suppress these warnings from the output.  LilyPond has a Scheme function for this: &amp;lt;code&amp;gt;ly:expect-warning&amp;lt;/code&amp;gt;. However, there are times when the same warning is printed  several times and &amp;lt;code&amp;gt;ly:expect-warning&amp;lt;/code&amp;gt; will only hide one warning at a time.  Typing this function several times in a row is tedious.&lt;br /&gt;
&lt;br /&gt;
The Scheme function below takes a string that will match some part of the warning, just like &amp;lt;code&amp;gt;ly:expect-warning&amp;lt;/code&amp;gt;, but it also takes an integer for the number of times the warning is printed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#(define (expect-warning-times n . args)&lt;br /&gt;
   (for-each (lambda _ (apply ly:expect-warning args))&lt;br /&gt;
             (iota n)))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A usage example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#(expect-warning-times 4 &amp;quot;omitting tuplet bracket&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hint from the documentation: [https://lilypond.org/doc/v2.25/Documentation/internals/scheme-functions scheme-functions]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6386</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6386"/>
		<updated>2026-02-23T13:14:26Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* Spam users */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;br /&gt;
::Thank you for your answer. You have a point with security issues, SyntaxHighlight needs Scribunto. There is no special language support for Lilypond anyway, I use Latex, better than nothing. Your installation has to offer proc open, otherwise Scribunto is not working. I have not found a single provider which allows this.&lt;br /&gt;
::Maybe I am missing something in my preferences, when editing I do not see anything that supports editing, not even the option to insert links, maybe it&#039;s because I don&#039;t use the visual editor, I like &amp;quot;pure&amp;quot; editing as it is in Lilypond. CharInsert offers support for Wiki syntax, including tags like &amp;amp;lt;pre&amp;gt;, all combinations of {} and so on.&lt;br /&gt;
::Greetings from Austria, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 03:17, 19 December 2025 (UTC)&lt;br /&gt;
:::[off-topic] Where in Austria?  Greetings from Kufstein :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:15, 19 December 2025 (UTC)&lt;br /&gt;
::::Niederösterreich, nordöstlich von Wien (Bezirk Gänserndorf) [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:21, 19 December 2025 (UTC)&lt;br /&gt;
:::I don&#039;t think SyntaxHighlight needs Scribunto. It uses Pygments, which is a Python (not Lua) library (of which I actually am technically a maintainer, although I&#039;ve been inactive lately by lack of time). It certainly needs something like &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt;, but this wiki doesn&#039;t use a &amp;quot;managed&amp;quot; MediaWiki install (where the provider installs things for you, à la &amp;quot;Wordpress in one click&amp;quot;), it&#039;s on a VPS on which I have root access and administrate things myself, so I can install and configure anything (and &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; is already being used to run LilyPond). The real problem is that the LilyPond code snippets are mostly added through a the special, non-standard parser tag &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and so the extension I wrote that defines this tag would need to support syntax highlighting.&lt;br /&gt;
:::Regarding the editor toolbar, it sounds like what you want is not CharInsert but [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor], which I&#039;ve just added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:15, 19 December 2025 (UTC)&lt;br /&gt;
::::PS: I also meant to write that Pygments supports LilyPond. (I implemented this a few years ago.) [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:26, 19 December 2025 (UTC)&lt;br /&gt;
:::::Apropos Pygments: I&#039;ve submitted a [https://github.com/pygments/pygments/pull/2974 PR] to update LilyPond support some time ago. [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:38, 19 December 2025 (UTC)&lt;br /&gt;
::::Thank you for installing this extension, this is definitely an improvement. CharInsert is a different animal. Root access is of course best, but you have to do much administration. Usually root access is very expensive when you need a provider. A long time ago I have written a Lilypond extension myself on a home server in my local network.&lt;br /&gt;
::::Just in case you are asking who I am, I wrote LSR 1040, 1042, 1043, 1044 (when I remember right) and was involved in 1066 and 1067. [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 19:34, 19 December 2025 (UTC)&lt;br /&gt;
:::::I&#039;ve discovered a potential reason for activating Scribunto: Right now, I&#039;m using the &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; MediaWiki API to download snippets for &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt;.  However, &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; doesn&#039;t expand templates.  This means that I have to call the &amp;lt;code&amp;gt;expandtemplates&amp;lt;/code&amp;gt; API, sending the unexpanded page to the Wiki server to get an expanded version back.&lt;br /&gt;
:::::The Skribunto interface provides [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#frame:preprocess &amp;lt;code&amp;gt;frame:preprocess&amp;lt;/code&amp;gt;], which seems to unify the abovementioned two calls into a single one (I haven&#039;t tested it). Maybe this can be configured to not use Lua, in case this simplifies things. What do you think? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:56, 1 January 2026 (UTC)&lt;br /&gt;
::::::I don&#039;t see a problem with one extra API call per page to expand templates. Also, the function you link is a Lua API, for use in Lua modules running on the wiki, so I don&#039;t get how you want to use it outside. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 22:02, 1 January 2026 (UTC)&lt;br /&gt;
:::::::OK, &amp;lt;code&amp;gt;expandtemplates&amp;lt;/code&amp;gt; it is then :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 23:30, 1 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MediaWiki variables for current stable and unstable LilyPond versions ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
what do you think about adding [https://www.mediawiki.org/wiki/Manual:Variable MediaWiki variables] that indicate the current stable and unstable LilyPond versions (without the ‘micro’ value)?  I suggest&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLE}}&amp;lt;/nowiki&amp;gt; → 2.24&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVEL}}&amp;lt;/nowiki&amp;gt; → 2.25&lt;br /&gt;
&lt;br /&gt;
and maybe&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLEDOC}} → https://lilypond.org/docs/{{LILYSTABLE}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVELDOC}} → https://lilypond.org/docs/{{LILYDEVEL}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Such variables would reduce maintainance of yet-to-be-written templates.  In particular, I would like to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Template:convert-ly&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: it would tell users that the snippet in question needs conversion with &amp;lt;code&amp;gt;convert-ly&amp;lt;/code&amp;gt; (showing a link to the documentation) for newer versions. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:46, 28 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Sounds OK to me. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:34, 28 December 2025 (UTC)&lt;br /&gt;
::Great!  However, it seems to me that you have to add some piece of PHP code to do that...  This means I cannot do it by myself. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 07:00, 30 December 2025 (UTC)&lt;br /&gt;
:::Ah, do you need them to be variables as opposed to templates? [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:30, 30 December 2025 (UTC)&lt;br /&gt;
::::Do I?  I honestly don&#039;t know.  Please advise. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 12:36, 30 December 2025 (UTC)&lt;br /&gt;
:::::Please try templates first. Seems to me that the use case for variables is when you want programmatically generated stuff like the current date. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 19:40, 30 December 2025 (UTC)&lt;br /&gt;
::::::It seems to work fine, thanks!  However, for more serious template handling I think that the [https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions ParserFunctions] extension would be necessary. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 06:43, 31 December 2025 (UTC)&lt;br /&gt;
:::::::Added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:01, 31 December 2025 (UTC)&lt;br /&gt;
::::::::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:41, 1 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Spam users ==&lt;br /&gt;
&lt;br /&gt;
Jean, what shall we do with spam users like User:JoleenStallings?  Shall we remove them immediately?  While they don&#039;t do harm to the Wiki, they are still polluting the namespace... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:21, 11 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Yes. I&#039;ve just removed all their user pages and blocked them and their IP addresses. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 13:57, 11 January 2026 (UTC)&lt;br /&gt;
::OK, thanks. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:03, 11 January 2026 (UTC)&lt;br /&gt;
:::Obviously the spammers have discovered this wiki. IMHO there is only one solution. Creation of new users only with verification of an admin and editing only for registered users [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 19:53, 11 January 2026 (UTC)&lt;br /&gt;
::::Well, it&#039;s not that bad: currently, the situation can be handled manually quite easily (by watching the atom feed of this Wiki and quickly removing spam users).  However, if this becomes too much of a burden, some additional measures must be taken. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:17, 12 January 2026 (UTC)&lt;br /&gt;
:::::OK, this has become too much of a burden at this point, there are several users to block per day. I&#039;ve added a simple anti-spam question which editors creating an account must solve (&amp;quot;What is the LilyPond command to set a time signature of 3/4?&amp;quot;), let&#039;s see how effective this is. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 13:14, 23 February 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Talk:Displaying_LilyPond%27s_data_directory&amp;diff=6358</id>
		<title>Talk:Displaying LilyPond&#039;s data directory</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Talk:Displaying_LilyPond%27s_data_directory&amp;diff=6358"/>
		<updated>2026-02-19T15:13:22Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== No LilyPond tag on scheme code ==&lt;br /&gt;
&lt;br /&gt;
I purposely did not use the &amp;lt;code&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/code&amp;gt; tag on this code because I didn&#039;t want to expose the Wiki&#039;s internal structure.  If I&#039;m being overly paranoid we can add it later. [[User:Ksnortum|Ksnortum]] ([[User talk:Ksnortum|talk]]) 16:42, 18 February 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Printing the path inside the wiki wouldn&#039;t be a problem, but you can&#039;t use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; because it doesn&#039;t support snippets which don&#039;t produce any visual output. I think giving an error in this case is the right default for &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; because we want to remind editors that snippets should come with examples, but adding a &amp;lt;code&amp;gt;no-output&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; could be sensible. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:12, 19 February 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Talk:Displaying_LilyPond%27s_data_directory&amp;diff=6357</id>
		<title>Talk:Displaying LilyPond&#039;s data directory</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Talk:Displaying_LilyPond%27s_data_directory&amp;diff=6357"/>
		<updated>2026-02-19T15:12:52Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* No LilyPond tag on scheme code */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== No LilyPond tag on scheme code ==&lt;br /&gt;
&lt;br /&gt;
I purposely did not use the &amp;lt;code&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/code&amp;gt; tag on this code because I didn&#039;t want to expose the Wiki&#039;s internal structure.  If I&#039;m being overly paranoid we can add it later. [[User:Ksnortum|Ksnortum]] ([[User talk:Ksnortum|talk]]) 16:42, 18 February 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Printing the path inside the wiki wouldn&#039;t be a problem, but you can&#039;t use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; because it doesn&#039;t support snippets which don&#039;t produce any visual output. I think giving an error is the right default for &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; because we want to remind editors that snippets should come with examples, but adding a &amp;lt;code&amp;gt;no-output&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; could be sensible. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:12, 19 February 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Displaying_LilyPond%27s_data_directory&amp;diff=6356</id>
		<title>Displaying LilyPond&#039;s data directory</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Displaying_LilyPond%27s_data_directory&amp;diff=6356"/>
		<updated>2026-02-19T15:10:36Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Print it to stderr&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[Frescobaldi]], you can install LilyPond while editing the Settings options. However, it is not always clear what directory LilyPond is installed in.&lt;br /&gt;
&lt;br /&gt;
Using the following code will display LilyPond’s data directory in the LilyPond log.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
\version &amp;quot;2.24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#(ly:message &amp;quot;The LilyPond data directory is located at: ~a&amp;quot; (ly:get-option &#039;datadir))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Thanks to Mark Knoop for this code.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Snippet]]&lt;br /&gt;
[[Category:Scheme]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Box_around_notes&amp;diff=6319</id>
		<title>Box around notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Box_around_notes&amp;diff=6319"/>
		<updated>2026-02-02T21:36:05Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This snippet demonstrates how to add boxes around/behind notes. Boxes are automatically sized.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
#(define-event-class &#039;music-boxer-event &#039;span-event)&lt;br /&gt;
&lt;br /&gt;
#(define-event-class &#039;box-event &#039;music-event)&lt;br /&gt;
&lt;br /&gt;
#(define (add-grob-definition grob-name grob-entry)&lt;br /&gt;
   (set! all-grob-descriptions&lt;br /&gt;
         (cons ((@@ (lily) completize-grob-entry)&lt;br /&gt;
                (cons grob-name grob-entry))&lt;br /&gt;
               all-grob-descriptions)))&lt;br /&gt;
&lt;br /&gt;
#(add-grob-definition&lt;br /&gt;
  &#039;LyricWord&lt;br /&gt;
  `(;(stencil . ,ly:lyric-word::print)&lt;br /&gt;
     (meta . ((class . Spanner)&lt;br /&gt;
              (interfaces . (lyric-hyphen-interface&lt;br /&gt;
                             lyric-word-interface&lt;br /&gt;
                             text-interface))))))&lt;br /&gt;
&lt;br /&gt;
#(define (make-box thick padding xext yext)&lt;br /&gt;
   (let ((xext (interval-widen xext padding))&lt;br /&gt;
         (yext (interval-widen yext padding)))&lt;br /&gt;
   (ly:stencil-add&lt;br /&gt;
    (make-filled-box-stencil xext (cons (- (car yext) thick) (car yext)))&lt;br /&gt;
    (make-filled-box-stencil xext (cons (cdr yext) (+ (cdr yext) thick)))&lt;br /&gt;
    (make-filled-box-stencil (cons (cdr xext) (+ (cdr xext) thick)) yext)&lt;br /&gt;
    (make-filled-box-stencil (cons (- (car xext) thick) (car xext)) yext))))&lt;br /&gt;
&lt;br /&gt;
#(define (music-boxer-stencil grob)&lt;br /&gt;
   (let* ((elts (ly:grob-object grob &#039;elements))&lt;br /&gt;
          (refp-X (ly:grob-common-refpoint-of-array grob elts X))&lt;br /&gt;
          (X-ext (ly:relative-group-extent elts refp-X X))&lt;br /&gt;
          (refp-Y (ly:grob-common-refpoint-of-array grob elts Y))&lt;br /&gt;
          (Y-ext (ly:relative-group-extent elts refp-Y Y))&lt;br /&gt;
          (padding (ly:grob-property grob &#039;padding 0.3))&lt;br /&gt;
          (stil (make-box 0.1 padding X-ext Y-ext))&lt;br /&gt;
          (offset (ly:grob-relative-coordinate grob refp-X X)))&lt;br /&gt;
     (ly:stencil-translate-axis stil (- offset) X)))&lt;br /&gt;
&lt;br /&gt;
#(define box-stil music-boxer-stencil)&lt;br /&gt;
&lt;br /&gt;
#(add-grob-definition&lt;br /&gt;
  &#039;Box&lt;br /&gt;
  `(&lt;br /&gt;
     (stencil . ,box-stil)&lt;br /&gt;
     (meta . ((class . Item)&lt;br /&gt;
              (interfaces . ())))))&lt;br /&gt;
&lt;br /&gt;
#(add-grob-definition&lt;br /&gt;
  &#039;MusicBoxer&lt;br /&gt;
  `(&lt;br /&gt;
     (stencil . ,music-boxer-stencil)&lt;br /&gt;
     (meta . ((class . Spanner)&lt;br /&gt;
              (interfaces . ())))))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#(define box-types&lt;br /&gt;
   &#039;(&lt;br /&gt;
      (BoxEvent&lt;br /&gt;
       . ((description . &amp;quot;A box encompassing music at a single timestep.&amp;quot;)&lt;br /&gt;
          (types . (general-music box-event music-event event))&lt;br /&gt;
          ))&lt;br /&gt;
      ))&lt;br /&gt;
&lt;br /&gt;
#(define music-boxer-types&lt;br /&gt;
   &#039;(&lt;br /&gt;
      (MusicBoxerEvent&lt;br /&gt;
       . ((description . &amp;quot;Used to signal where boxes encompassing music start and stop.&amp;quot;)&lt;br /&gt;
          (types . (general-music music-boxer-event span-event event))&lt;br /&gt;
          ))&lt;br /&gt;
      ))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#(set!&lt;br /&gt;
  music-boxer-types&lt;br /&gt;
  (map (lambda (x)&lt;br /&gt;
         (set-object-property! (car x)&lt;br /&gt;
           &#039;music-description&lt;br /&gt;
           (cdr (assq &#039;description (cdr x))))&lt;br /&gt;
         (let ((lst (cdr x)))&lt;br /&gt;
           (set! lst (assoc-set! lst &#039;name (car x)))&lt;br /&gt;
           (set! lst (assq-remove! lst &#039;description))&lt;br /&gt;
           (hashq-set! music-name-to-property-table (car x) lst)&lt;br /&gt;
           (cons (car x) lst)))&lt;br /&gt;
    music-boxer-types))&lt;br /&gt;
&lt;br /&gt;
#(set!&lt;br /&gt;
  box-types&lt;br /&gt;
  (map (lambda (x)&lt;br /&gt;
         (set-object-property! (car x)&lt;br /&gt;
           &#039;music-description&lt;br /&gt;
           (cdr (assq &#039;description (cdr x))))&lt;br /&gt;
         (let ((lst (cdr x)))&lt;br /&gt;
           (set! lst (assoc-set! lst &#039;name (car x)))&lt;br /&gt;
           (set! lst (assq-remove! lst &#039;description))&lt;br /&gt;
           (hashq-set! music-name-to-property-table (car x) lst)&lt;br /&gt;
           (cons (car x) lst)))&lt;br /&gt;
    box-types))&lt;br /&gt;
&lt;br /&gt;
#(set! music-descriptions&lt;br /&gt;
       (append music-boxer-types music-descriptions))&lt;br /&gt;
&lt;br /&gt;
#(set! music-descriptions&lt;br /&gt;
       (append box-types music-descriptions))&lt;br /&gt;
&lt;br /&gt;
#(set! music-descriptions&lt;br /&gt;
       (sort music-descriptions alist&amp;lt;?))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#(define (add-bound-item spanner item)&lt;br /&gt;
   (if (null? (ly:spanner-bound spanner LEFT))&lt;br /&gt;
       (ly:spanner-set-bound! spanner LEFT item)&lt;br /&gt;
       (ly:spanner-set-bound! spanner RIGHT item)))&lt;br /&gt;
&lt;br /&gt;
musicBoxerEngraver =&lt;br /&gt;
#(lambda (context)&lt;br /&gt;
   (let ((span &#039;())&lt;br /&gt;
         (finished &#039;())&lt;br /&gt;
         (current-event &#039;())&lt;br /&gt;
         (event-start &#039;())&lt;br /&gt;
         (event-stop &#039;()))&lt;br /&gt;
&lt;br /&gt;
     `((listeners&lt;br /&gt;
        (music-boxer-event .&lt;br /&gt;
          ,(lambda (engraver event)&lt;br /&gt;
             (if (= START (ly:event-property event &#039;span-direction))&lt;br /&gt;
                 (set! event-start event)&lt;br /&gt;
                 (set! event-stop event)))))&lt;br /&gt;
&lt;br /&gt;
       (acknowledgers&lt;br /&gt;
        (note-column-interface .&lt;br /&gt;
          ,(lambda (engraver grob source-engraver)&lt;br /&gt;
             (if (ly:spanner? span)&lt;br /&gt;
                 (begin&lt;br /&gt;
                  (ly:pointer-group-interface::add-grob span &#039;elements grob)&lt;br /&gt;
                  (add-bound-item span grob)))&lt;br /&gt;
             (if (ly:spanner? finished)&lt;br /&gt;
                 (begin&lt;br /&gt;
                  (ly:pointer-group-interface::add-grob finished &#039;elements grob)&lt;br /&gt;
                  (add-bound-item finished grob)))))&lt;br /&gt;
&lt;br /&gt;
        (inline-accidental-interface .&lt;br /&gt;
          ,(lambda (engraver grob source-engraver)&lt;br /&gt;
             (if (ly:spanner? span)&lt;br /&gt;
                 (begin&lt;br /&gt;
                  (ly:pointer-group-interface::add-grob span &#039;elements grob)))&lt;br /&gt;
             (if (ly:spanner? finished)&lt;br /&gt;
                 (ly:pointer-group-interface::add-grob finished &#039;elements grob))))&lt;br /&gt;
&lt;br /&gt;
        (script-interface .&lt;br /&gt;
          ,(lambda (engraver grob source-engraver)&lt;br /&gt;
             (if (ly:spanner? span)&lt;br /&gt;
                 (begin&lt;br /&gt;
                  (ly:pointer-group-interface::add-grob span &#039;elements grob)))&lt;br /&gt;
             (if (ly:spanner? finished)&lt;br /&gt;
                 (ly:pointer-group-interface::add-grob finished &#039;elements grob))))&lt;br /&gt;
&lt;br /&gt;
        (finger-interface .&lt;br /&gt;
          ,(lambda (engraver grob source-engraver)&lt;br /&gt;
             (if (ly:spanner? span)&lt;br /&gt;
                 (begin&lt;br /&gt;
                  (ly:pointer-group-interface::add-grob span &#039;elements grob)))&lt;br /&gt;
             (if (ly:spanner? finished)&lt;br /&gt;
                 (ly:pointer-group-interface::add-grob finished &#039;elements grob))))&lt;br /&gt;
&lt;br /&gt;
        ;; add additional interfaces to acknowledge here&lt;br /&gt;
&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
       (process-music .&lt;br /&gt;
         ,(lambda (trans)&lt;br /&gt;
            (if (ly:stream-event? event-stop)&lt;br /&gt;
                (if (null? span)&lt;br /&gt;
                    (ly:warning &amp;quot;No start to this box.&amp;quot;)&lt;br /&gt;
                    (begin&lt;br /&gt;
                     (set! finished span)&lt;br /&gt;
                     (ly:engraver-announce-end-grob trans finished event-start)&lt;br /&gt;
                     (set! span &#039;())&lt;br /&gt;
                     (set! event-stop &#039;()))))&lt;br /&gt;
            (if (ly:stream-event? event-start)&lt;br /&gt;
                (begin&lt;br /&gt;
                 (set! span (ly:engraver-make-grob trans &#039;MusicBoxer event-start))&lt;br /&gt;
                 (set! event-start &#039;())))))&lt;br /&gt;
&lt;br /&gt;
       (stop-translation-timestep .&lt;br /&gt;
         ,(lambda (trans)&lt;br /&gt;
            (if (and (ly:spanner? span)&lt;br /&gt;
                     (null? (ly:spanner-bound span LEFT)))&lt;br /&gt;
                (ly:spanner-set-bound! span LEFT&lt;br /&gt;
                  (ly:context-property context &#039;currentMusicalColumn)))&lt;br /&gt;
            (if (ly:spanner? finished)&lt;br /&gt;
                (begin&lt;br /&gt;
                 (if (null? (ly:spanner-bound finished RIGHT))&lt;br /&gt;
                     (ly:spanner-set-bound! finished RIGHT&lt;br /&gt;
                       (ly:context-property context &#039;currentMusicalColumn)))&lt;br /&gt;
                 (set! finished &#039;())&lt;br /&gt;
                 (set! event-start &#039;())&lt;br /&gt;
                 (set! event-stop &#039;())))))&lt;br /&gt;
&lt;br /&gt;
       (finalize&lt;br /&gt;
        (lambda (trans)&lt;br /&gt;
          (if (ly:spanner? finished)&lt;br /&gt;
              (begin&lt;br /&gt;
               (if (null? (ly:spanner-bound finished RIGHT))&lt;br /&gt;
                   (set! (ly:spanner-bound finished RIGHT)&lt;br /&gt;
                         (ly:context-property context &#039;currentMusicalColumn)))&lt;br /&gt;
               (set! finished &#039;())))&lt;br /&gt;
          (if (ly:spanner? span)&lt;br /&gt;
              (begin&lt;br /&gt;
               (ly:warning &amp;quot;unterminated box :-(&amp;quot;)&lt;br /&gt;
               (ly:grob-suicide! span)&lt;br /&gt;
               (set! span &#039;()))))))))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
boxEngraver =&lt;br /&gt;
#(lambda (context)&lt;br /&gt;
   (let ((box &#039;())&lt;br /&gt;
         (ev &#039;()))&lt;br /&gt;
&lt;br /&gt;
     `((listeners&lt;br /&gt;
        (box-event .&lt;br /&gt;
          ,(lambda (engraver event)&lt;br /&gt;
             (set! ev event))))&lt;br /&gt;
&lt;br /&gt;
       (acknowledgers&lt;br /&gt;
        (note-column-interface .&lt;br /&gt;
          ,(lambda (engraver grob source-engraver)&lt;br /&gt;
             (if (ly:grob? box)&lt;br /&gt;
                 (begin&lt;br /&gt;
                  ; (set! (ly:grob-parent box X) grob) ;; ??&lt;br /&gt;
                   (set! (ly:grob-parent box Y) grob)&lt;br /&gt;
                 (ly:pointer-group-interface::add-grob box &#039;elements grob)))))&lt;br /&gt;
&lt;br /&gt;
        (inline-accidental-interface .&lt;br /&gt;
          ,(lambda (engraver grob source-engraver)&lt;br /&gt;
             (if (ly:item? box)&lt;br /&gt;
                 (ly:pointer-group-interface::add-grob box &#039;elements grob))))&lt;br /&gt;
&lt;br /&gt;
        (script-interface .&lt;br /&gt;
          ,(lambda (engraver grob source-engraver)&lt;br /&gt;
             (if (ly:item? box)&lt;br /&gt;
                 (ly:pointer-group-interface::add-grob box &#039;elements grob))))&lt;br /&gt;
&lt;br /&gt;
        (finger-interface .&lt;br /&gt;
          ,(lambda (engraver grob source-engraver)&lt;br /&gt;
             (if (ly:item? box)&lt;br /&gt;
                 (ly:pointer-group-interface::add-grob box &#039;elements grob))))&lt;br /&gt;
&lt;br /&gt;
        ;; add additional interfaces to acknowledge here&lt;br /&gt;
&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
       (process-music .&lt;br /&gt;
         ,(lambda (trans)&lt;br /&gt;
            (if (ly:stream-event? ev)&lt;br /&gt;
                (begin&lt;br /&gt;
                 (set! box (ly:engraver-make-grob trans &#039;Box ev))&lt;br /&gt;
                 (set! ev &#039;())))))&lt;br /&gt;
       (stop-translation-timestep .&lt;br /&gt;
         ,(lambda (trans)&lt;br /&gt;
            (set! box &#039;()))))))&lt;br /&gt;
&lt;br /&gt;
musicBoxerStart =&lt;br /&gt;
#(make-span-event &#039;MusicBoxerEvent START)&lt;br /&gt;
&lt;br /&gt;
musicBoxerEnd =&lt;br /&gt;
#(make-span-event &#039;MusicBoxerEvent STOP)&lt;br /&gt;
&lt;br /&gt;
box = #(make-music &#039;BoxEvent)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EXAMPLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
melody = \relative c&#039;&#039; {&lt;br /&gt;
  \set fingeringOrientations = #&#039;(left)&lt;br /&gt;
  %1&lt;br /&gt;
  \repeat volta 2 {&lt;br /&gt;
    \once\override Score.Box.padding = 0.5&lt;br /&gt;
    \box &amp;lt;g-3  c-2 f-1&amp;gt;1&lt;br /&gt;
    \musicBoxerStart d8-4 g,-0 d&#039; g, d&#039;-4 g,-0 d&#039; \musicBoxerEnd g,&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  %2&lt;br /&gt;
  \repeat volta 2 {&lt;br /&gt;
    \box &amp;lt;d&#039;-4  c&#039;-2 f-1&amp;gt;1\f\fermata&lt;br /&gt;
    \musicBoxerStart g8-3 d-0 g d g8-4 d-0 g \musicBoxerEnd d\accent&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \new Staff \melody&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\layout {&lt;br /&gt;
  \context {&lt;br /&gt;
    \Global&lt;br /&gt;
    \grobdescriptions #all-grob-descriptions&lt;br /&gt;
  }&lt;br /&gt;
  \context {&lt;br /&gt;
    \Score&lt;br /&gt;
    \consists \musicBoxerEngraver % for spans&lt;br /&gt;
    \consists \boxEngraver&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Editorial annotations]]&lt;br /&gt;
[[Category:Paper and layout]]&lt;br /&gt;
[[Category:Scheme]]&lt;br /&gt;
[[Category:Specific notation]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Grouping_contexts&amp;diff=6318</id>
		<title>Grouping contexts</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Grouping_contexts&amp;diff=6318"/>
		<updated>2026-02-02T21:35:17Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In polyphonic notation, many voices can share a staff: In this situation, the accidentals and staff are shared, but the stems, slurs, beams, etc., are private to each voice. Hence, engravers should be grouped. The engravers for note head, stems, slurs, etc., go into a group called “Voice context”, while the engravers for key, accidental, bar, etc., go into a group called “Staff context”. In the case of polyphony, a single Staff context contains more than one Voice context. Similarly, more Staff contexts can be put into a single Score context.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
topVoice = \relative c&#039; {&lt;br /&gt;
  \key d\major&lt;br /&gt;
  es8([ g] a[ fis])&lt;br /&gt;
  b4&lt;br /&gt;
  b16[-. b-. b-. cis-.]&lt;br /&gt;
  d4-&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
botVoice = \relative c&#039; {&lt;br /&gt;
  \key d\major&lt;br /&gt;
  c8[( f] b[ a)]&lt;br /&gt;
  es4&lt;br /&gt;
  es16[-. es-. es-. fis-.]&lt;br /&gt;
  b4-&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
hoom = \relative c {&lt;br /&gt;
  \key d \major&lt;br /&gt;
  \clef bass&lt;br /&gt;
  g8-. r&lt;br /&gt;
  r4&lt;br /&gt;
  fis8-.&lt;br /&gt;
  r8&lt;br /&gt;
  r4&lt;br /&gt;
  b&#039;4-&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pah = \relative c&#039; {&lt;br /&gt;
  r8 b-.&lt;br /&gt;
  r4&lt;br /&gt;
  r8 g8-.&lt;br /&gt;
  r16 g-. r8&lt;br /&gt;
  \clef treble&lt;br /&gt;
  fis&#039;4-&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \new Staff &amp;lt;&amp;lt; \topVoice \\ \botVoice &amp;gt;&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  &amp;lt;&amp;lt; &lt;br /&gt;
    \new Staff &amp;lt;&amp;lt; \topVoice \\ \botVoice &amp;gt;&amp;gt;&lt;br /&gt;
    \new Staff &amp;lt;&amp;lt; \pah \\ \hoom &amp;gt;&amp;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:Contexts and engravers]]&lt;br /&gt;
[[Category:Real music]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=LSR_382&amp;diff=6312</id>
		<title>LSR 382</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=LSR_382&amp;diff=6312"/>
		<updated>2026-02-01T18:39:44Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Shortcut double redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Slanted parentheses around dynamics]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Talk:Slanted_parentheses_around_dynamics&amp;diff=6311</id>
		<title>Talk:Slanted parentheses around dynamics</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Talk:Slanted_parentheses_around_dynamics&amp;diff=6311"/>
		<updated>2026-02-01T18:38:20Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* Is this Snippet Necessary? */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Is this Snippet Necessary? ==&lt;br /&gt;
&lt;br /&gt;
Can&#039;t this be done without Scheme code?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
  \relative c&#039;&#039; {&lt;br /&gt;
    \override Parentheses.font-size = #2&lt;br /&gt;
    c4\parenthesize\f c c \dynamicUp c\parenthesize\p&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [[User:Ksnortum|Ksnortum]] ([[User talk:Ksnortum|talk]]) 16:52, 31 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:IMHO the answer is no.  &amp;lt;code&amp;gt;\parenthesize&amp;lt;/code&amp;gt; doesn&#039;t allow the fine-tuning necessary to get good output with slanted text.   It might sense, however, to improve the documentation, mentioning &amp;lt;code&amp;gt;\parenthesize&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 06:17, 1 February 2026 (UTC)&lt;br /&gt;
::Should I add my code to the snippet, or create an issue on the documentation? [[User:Ksnortum|Ksnortum]] ([[User talk:Ksnortum|talk]]) 15:25, 1 February 2026 (UTC)&lt;br /&gt;
:::Please directly modify the snippet.  The next Wiki import eventually updates the LilyPond documentation. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:35, 1 February 2026 (UTC)&lt;br /&gt;
::::Knute, the change itself looks good, thanks.  However, the form must be adjusted to follow the guidelines in [[:Category:Included in the official documentation]]: only a single &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; block is allowed for ‘official’ snippets.  Please fix that. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:03, 1 February 2026 (UTC)&lt;br /&gt;
:::::Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:38, 1 February 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Slanted_parentheses_around_dynamics&amp;diff=6310</id>
		<title>Slanted parentheses around dynamics</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Slanted_parentheses_around_dynamics&amp;diff=6310"/>
		<updated>2026-02-01T18:38:12Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Conform to the format of snippets included in the official documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The easiest way to parenthesize dynamics is to use the normal &amp;lt;code&amp;gt;\parenthesize&amp;lt;/code&amp;gt; command and adjust the font size, e.g., &amp;lt;code&amp;gt;{ c&#039;4\tweak Parentheses.font-size 2 \parenthesize \f }&amp;lt;/code&amp;gt;. However, this results in upright parentheses, while dynamic marks are normally slanted. This snippet gives a method to make the parentheses slanted as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
paren =&lt;br /&gt;
#(define-event-function (dyn) (ly:event?)&lt;br /&gt;
   (make-dynamic-script&lt;br /&gt;
    #{ \markup \concat {&lt;br /&gt;
         \normal-text \italic \fontsize #2 (&lt;br /&gt;
         \pad-x #0.2 #(ly:music-property dyn &#039;text)&lt;br /&gt;
         \normal-text \italic \fontsize #2 )&lt;br /&gt;
       }&lt;br /&gt;
    #}))&lt;br /&gt;
&lt;br /&gt;
\relative c&#039;&#039; {&lt;br /&gt;
  c4\paren\f c c \dynamicUp c\paren\p&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Expressive marks]]&lt;br /&gt;
[[Category:Scheme]]&lt;br /&gt;
[[Category:Text]]&lt;br /&gt;
[[Category:Workaround]]&lt;br /&gt;
[[Category:Included in the official documentation]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Talk:Creating_%E2%80%9Creal%E2%80%9D_parenthesized_dynamics&amp;diff=6309</id>
		<title>Talk:Creating “real” parenthesized dynamics</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Talk:Creating_%E2%80%9Creal%E2%80%9D_parenthesized_dynamics&amp;diff=6309"/>
		<updated>2026-02-01T18:31:58Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Jean Abou Samra moved page Talk:Creating “real” parenthesized dynamics to Talk:Slanted parentheses around dynamics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:Slanted parentheses around dynamics]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Talk:Slanted_parentheses_around_dynamics&amp;diff=6308</id>
		<title>Talk:Slanted parentheses around dynamics</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Talk:Slanted_parentheses_around_dynamics&amp;diff=6308"/>
		<updated>2026-02-01T18:31:58Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Jean Abou Samra moved page Talk:Creating “real” parenthesized dynamics to Talk:Slanted parentheses around dynamics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Is this Snippet Necessary? ==&lt;br /&gt;
&lt;br /&gt;
Can&#039;t this be done without Scheme code?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
  \relative c&#039;&#039; {&lt;br /&gt;
    \override Parentheses.font-size = #2&lt;br /&gt;
    c4\parenthesize\f c c \dynamicUp c\parenthesize\p&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [[User:Ksnortum|Ksnortum]] ([[User talk:Ksnortum|talk]]) 16:52, 31 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:IMHO the answer is no.  &amp;lt;code&amp;gt;\parenthesize&amp;lt;/code&amp;gt; doesn&#039;t allow the fine-tuning necessary to get good output with slanted text.   It might sense, however, to improve the documentation, mentioning &amp;lt;code&amp;gt;\parenthesize&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 06:17, 1 February 2026 (UTC)&lt;br /&gt;
::Should I add my code to the snippet, or create an issue on the documentation? [[User:Ksnortum|Ksnortum]] ([[User talk:Ksnortum|talk]]) 15:25, 1 February 2026 (UTC)&lt;br /&gt;
:::Please directly modify the snippet.  The next Wiki import eventually updates the LilyPond documentation. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:35, 1 February 2026 (UTC)&lt;br /&gt;
::::Knute, the change itself looks good, thanks.  However, the form must be adjusted to follow the guidelines in [[:Category:Included in the official documentation]]: only a single &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; block is allowed for ‘official’ snippets.  Please fix that. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:03, 1 February 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Creating_%E2%80%9Creal%E2%80%9D_parenthesized_dynamics&amp;diff=6307</id>
		<title>Creating “real” parenthesized dynamics</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Creating_%E2%80%9Creal%E2%80%9D_parenthesized_dynamics&amp;diff=6307"/>
		<updated>2026-02-01T18:31:57Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Jean Abou Samra moved page Creating “real” parenthesized dynamics to Slanted parentheses around dynamics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Slanted parentheses around dynamics]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Slanted_parentheses_around_dynamics&amp;diff=6306</id>
		<title>Slanted parentheses around dynamics</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Slanted_parentheses_around_dynamics&amp;diff=6306"/>
		<updated>2026-02-01T18:31:57Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Jean Abou Samra moved page Creating “real” parenthesized dynamics to Slanted parentheses around dynamics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Although the easiest way to add parentheses to a dynamic mark is to use a &amp;lt;code&amp;gt;\markup&amp;lt;/code&amp;gt; block, this method has a downside: the created objects behave like text markups and not like dynamics.&lt;br /&gt;
&lt;br /&gt;
However, it is possible to create a similar object using the equivalent Scheme code (as described in the Notation Reference), combined with the &amp;lt;code&amp;gt;make-dynamic-script&amp;lt;/code&amp;gt; function. This way, the markup is regarded as a dynamic and therefore remains compatible with commands such as &amp;lt;code&amp;gt;\dynamicUp&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;\dynamicDown&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
paren =&lt;br /&gt;
#(define-event-function (dyn) (ly:event?)&lt;br /&gt;
   (make-dynamic-script&lt;br /&gt;
    #{ \markup \concat {&lt;br /&gt;
         \normal-text \italic \fontsize #2 (&lt;br /&gt;
         \pad-x #0.2 #(ly:music-property dyn &#039;text)&lt;br /&gt;
         \normal-text \italic \fontsize #2 )&lt;br /&gt;
       }&lt;br /&gt;
    #}))&lt;br /&gt;
&lt;br /&gt;
\relative c&#039;&#039; {&lt;br /&gt;
  c4\paren\f c c \dynamicUp c\paren\p&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another way to do parenthesize dynamics is to use the &amp;lt;code&amp;gt;\parenthesize&amp;lt;/code&amp;gt; command, although this way doesn&#039;t give you the fine-tuning of the dynamic text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
  \relative c&#039;&#039; {&lt;br /&gt;
    \override Parentheses.font-size = #2&lt;br /&gt;
    c4\parenthesize\f c c \dynamicUp c\parenthesize\p&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Expressive marks]]&lt;br /&gt;
[[Category:Scheme]]&lt;br /&gt;
[[Category:Text]]&lt;br /&gt;
[[Category:Workaround]]&lt;br /&gt;
[[Category:Included in the official documentation]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Smiley&amp;diff=6293</id>
		<title>Smiley</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Smiley&amp;diff=6293"/>
		<updated>2026-01-31T14:52:27Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put some funny icons in your score or in a markup. Syntax is &amp;lt;code&amp;gt;\smiley &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;size&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;\smileyNoteHead &amp;lt;var&amp;gt;type&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;. (Contributed by Pierre-Perol Schneider.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
%%% Smiley defs to be saved as smiley.ily:&lt;br /&gt;
lovePath = \markup {&lt;br /&gt;
  \combine &lt;br /&gt;
  \override #&#039;(filled . #t) &lt;br /&gt;
  \with-color #(x11-color &#039;DeepPink)&lt;br /&gt;
  \path #0.01 &lt;br /&gt;
  #&#039;((moveto    0.00   0.75)&lt;br /&gt;
     (curveto   0.00   1.30   0.35   1.90   1.10   1.90)&lt;br /&gt;
     (curveto   1.50   1.90   1.70   1.75   2.00   1.40)&lt;br /&gt;
     (curveto   2.30   1.75   2.50   1.90   2.90   1.90)&lt;br /&gt;
     (curveto   3.65   1.90   4.00   1.30   4.00   0.75)&lt;br /&gt;
     (curveto   4.00  -0.30   3.00  -0.50   2.05  -1.80)&lt;br /&gt;
     (curveto   2.00  -1.85   2.00  -1.85   1.95  -1.80)&lt;br /&gt;
     (curveto   1.00  -0.50   0.00  -0.30   0.00   0.75))&lt;br /&gt;
  \combine &lt;br /&gt;
  \path #0.15 &lt;br /&gt;
  #&#039;((moveto    0.00   0.75)&lt;br /&gt;
     (curveto   0.00   1.30   0.35   1.90   1.10   1.90)&lt;br /&gt;
     (curveto   1.50   1.90   1.70   1.75   2.00   1.40)&lt;br /&gt;
     (curveto   2.30   1.75   2.50   1.90   2.90   1.90)&lt;br /&gt;
     (curveto   3.65   1.90   4.00   1.30   4.00   0.75)&lt;br /&gt;
     (curveto   4.00  -0.30   3.00  -0.50   2.05  -1.80)&lt;br /&gt;
     (curveto   2.00  -1.85   2.00  -1.85   1.95  -1.80)&lt;br /&gt;
     (curveto   1.00  -0.50   0.00  -0.30   0.00   0.75))&lt;br /&gt;
  \override #&#039;(filled . #t) &lt;br /&gt;
  \with-color #(x11-color &#039;LightPink)&lt;br /&gt;
  \path #0.01 &lt;br /&gt;
  #&#039;((moveto    0.20   0.75)&lt;br /&gt;
     (curveto   0.20   1.75   1.23   1.84   1.57   1.55)&lt;br /&gt;
     (curveto   1.05   1.52   0.70   1.10   0.70   0.65)&lt;br /&gt;
     (curveto   0.70  -0.20   1.30  -0.40   1.86  -1.40)&lt;br /&gt;
     (curveto   1.10  -0.40   0.20  -0.20   0.20   0.75))&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
smilePath = \markup {&lt;br /&gt;
  \combine &lt;br /&gt;
  \override #&#039;(filled . #t) &lt;br /&gt;
  \with-color #(x11-color &#039;gold)&lt;br /&gt;
  \path #0.01 &lt;br /&gt;
  #&#039;((moveto    0.00   0.00)&lt;br /&gt;
     (curveto   0.00   1.10   0.90   1.82   1.82   1.82)&lt;br /&gt;
     (curveto   2.70   1.82   3.63   1.10   3.63   0.00)&lt;br /&gt;
     (curveto   3.63  -1.10   2.70  -1.82   1.82  -1.82)&lt;br /&gt;
     (curveto   0.91  -1.82   0.00  -1.10   0.00   0.00))&lt;br /&gt;
  \combine &lt;br /&gt;
  \path #0.15&lt;br /&gt;
  #&#039;((moveto    0.00   0.00)&lt;br /&gt;
     (curveto   0.00   1.10   0.90   1.82   1.82   1.82)&lt;br /&gt;
     (curveto   2.70   1.82   3.63   1.10   3.63   0.00)&lt;br /&gt;
     (curveto   3.63  -1.10   2.70  -1.82   1.82  -1.82)&lt;br /&gt;
     (curveto   0.91  -1.82   0.00  -1.10   0.00   0.00)&lt;br /&gt;
     (moveto    0.40  -0.13)&lt;br /&gt;
     (curveto   0.44  -0.10   0.58  -0.04   0.73  -0.09)&lt;br /&gt;
     (moveto    0.56  -0.08)&lt;br /&gt;
     (curveto   0.65  -1.63   3.00  -1.63   3.06  -0.07)&lt;br /&gt;
     (moveto    2.90  -0.07)&lt;br /&gt;
     (curveto   2.95  -0.06   3.09  -0.04   3.22  -0.12))&lt;br /&gt;
  \override #&#039;(filled . #t) &lt;br /&gt;
  \path #0.01 &lt;br /&gt;
  #&#039;((moveto    1.34   1.23)&lt;br /&gt;
     (curveto   1.61   1.23   1.61   0.17   1.34   0.17)&lt;br /&gt;
     (curveto   1.09   0.17   1.09   1.23   1.34   1.23)&lt;br /&gt;
     (moveto    2.31   1.23)&lt;br /&gt;
     (curveto   2.58   1.23   2.59   0.17   2.31   0.17)&lt;br /&gt;
     (curveto   2.06   0.17   2.06   1.23   2.31   1.23))&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
winkPath = \markup {&lt;br /&gt;
 \combine &lt;br /&gt;
 \override #&#039;(filled . #t) &lt;br /&gt;
 \with-color #(x11-color &#039;gold)&lt;br /&gt;
 \path #0.01 &lt;br /&gt;
 #&#039;((moveto    0.00    0.00)&lt;br /&gt;
    (curveto   0.00    1.10   0.90   1.82   1.82   1.82)&lt;br /&gt;
    (curveto   2.70    1.82   3.63   1.10   3.63   0.00)&lt;br /&gt;
    (curveto   3.63   -1.10   2.70  -1.82   1.82  -1.82)&lt;br /&gt;
    (curveto   0.91   -1.82   0.00  -1.10   0.00   0.00))&lt;br /&gt;
 \combine &lt;br /&gt;
 \path #0.15&lt;br /&gt;
 #&#039;((moveto    0.00    0.00)&lt;br /&gt;
    (curveto   0.00    1.10   0.90   1.82   1.82   1.82)&lt;br /&gt;
    (curveto   2.70    1.82   3.63   1.10   3.63   0.00)&lt;br /&gt;
    (curveto   3.63   -1.10   2.70  -1.82   1.82  -1.82)&lt;br /&gt;
    (curveto   0.91   -1.82   0.00  -1.10   0.00   0.00)&lt;br /&gt;
    (moveto    0.40   -0.13)&lt;br /&gt;
    (curveto   0.44   -0.10   0.58  -0.04   0.73  -0.09)&lt;br /&gt;
    (moveto    0.56   -0.08)&lt;br /&gt;
    (curveto   0.65   -1.63   3.00  -1.63   3.06  -0.07)&lt;br /&gt;
    (moveto    2.90   -0.07)&lt;br /&gt;
    (curveto   2.95   -0.06   3.09  -0.04   3.22  -0.12)&lt;br /&gt;
    (moveto    2.00    0.50)&lt;br /&gt;
    (curveto   2.10    0.60   2.20   0.80   2.60   0.70)&lt;br /&gt;
    (moveto    2.00    0.50)&lt;br /&gt;
    (curveto   2.10    0.50   2.20   0.70   2.60   0.50))&lt;br /&gt;
 \override #&#039;(filled . #t) &lt;br /&gt;
 \path #0.01 &lt;br /&gt;
 #&#039;((moveto    1.34    1.23)&lt;br /&gt;
    (curveto   1.61    1.23   1.61   0.17   1.34   0.17)&lt;br /&gt;
    (curveto   1.09    0.17   1.09   1.23   1.34   1.23))&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
straitPath = \markup {&lt;br /&gt;
 \combine &lt;br /&gt;
 \override #&#039;(filled . #t) &lt;br /&gt;
 \with-color #(x11-color &#039;gold)&lt;br /&gt;
 \path #0.01 &lt;br /&gt;
 #&#039;((moveto    0.00    0.00)&lt;br /&gt;
    (curveto   0.00    1.10   0.90   1.82   1.82   1.82)&lt;br /&gt;
    (curveto   2.70    1.82   3.63   1.10   3.63   0.00)&lt;br /&gt;
    (curveto   3.63   -1.10   2.70  -1.82   1.82  -1.82)&lt;br /&gt;
    (curveto   0.91   -1.82   0.00  -1.10   0.00   0.00))&lt;br /&gt;
 \combine &lt;br /&gt;
 \path #0.15&lt;br /&gt;
 #&#039;((moveto    0.00    0.00)&lt;br /&gt;
    (curveto   0.00    1.10   0.90   1.82   1.82   1.82)&lt;br /&gt;
    (curveto   2.70    1.82   3.63   1.10   3.63   0.00)&lt;br /&gt;
    (curveto   3.63   -1.10   2.70  -1.82   1.82  -1.82)&lt;br /&gt;
    (curveto   0.91   -1.82   0.00  -1.10   0.00   0.00))&lt;br /&gt;
 \combine &lt;br /&gt;
 \override #&#039;(filled . #t) &lt;br /&gt;
 \path #0.01 &lt;br /&gt;
 #&#039;((moveto    1.34    1.23)&lt;br /&gt;
    (curveto   1.61    1.23   1.61   0.17   1.34   0.17)&lt;br /&gt;
    (curveto   1.09    0.17   1.09   1.23   1.34   1.23)&lt;br /&gt;
    (moveto    2.31    1.23)&lt;br /&gt;
    (curveto   2.58    1.23   2.59   0.17   2.31   0.17)&lt;br /&gt;
    (curveto   2.06    0.17   2.06   1.23   2.31   1.23))&lt;br /&gt;
 \path #0.2&lt;br /&gt;
 #&#039;((moveto    1.14   -0.65)&lt;br /&gt;
    (lineto    2.51   -0.65))&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
eiffelPath = \markup {&lt;br /&gt;
  \combine&lt;br /&gt;
  \override #&#039;(filled . #t) &lt;br /&gt;
  \with-color #(x11-color &#039;burlywood)&lt;br /&gt;
  \path #0.01 &lt;br /&gt;
  #&#039;((moveto  -0.05   0.00)&lt;br /&gt;
     (lineto   0.71   0.99)&lt;br /&gt;
     (lineto   1.04   0.99)&lt;br /&gt;
     (lineto   0.96   1.36)&lt;br /&gt;
     (lineto   0.78   1.36)&lt;br /&gt;
     (lineto   0.71   0.99)&lt;br /&gt;
     (lineto  -0.05   0.00)&lt;br /&gt;
     (lineto   0.35   0.75)&lt;br /&gt;
     (lineto   0.35   0.83)&lt;br /&gt;
     (lineto   0.33   0.86)&lt;br /&gt;
     (lineto   0.33   0.96)&lt;br /&gt;
     (lineto   0.40   0.96)&lt;br /&gt;
     (lineto   0.63   1.56)&lt;br /&gt;
     (lineto   0.60   1.56)&lt;br /&gt;
     (lineto   0.59   1.62)&lt;br /&gt;
     (curveto  0.57   1.70   0.58   1.70   0.63   1.70)&lt;br /&gt;
     (lineto   0.63   1.73)&lt;br /&gt;
     (lineto   0.66   1.73)&lt;br /&gt;
     (curveto  0.72   2.30   0.78   2.70   0.79   3.56)&lt;br /&gt;
     (lineto   0.77   3.60)&lt;br /&gt;
     (lineto   0.76   3.68)&lt;br /&gt;
     (lineto   0.78   3.74)&lt;br /&gt;
     (curveto  0.85   3.75   0.86   3.78   0.87   4.03)&lt;br /&gt;
     (curveto  0.88   3.78   0.90   3.74   0.96   3.74)&lt;br /&gt;
     (lineto   0.98   3.68)&lt;br /&gt;
     (lineto   0.97   3.60)&lt;br /&gt;
     (lineto   0.95   3.56)&lt;br /&gt;
     (curveto  0.97   2.70   1.02   2.30   1.08   1.73)&lt;br /&gt;
     (lineto   1.11   1.73)&lt;br /&gt;
     (lineto   1.11   1.70)&lt;br /&gt;
     (curveto  1.17   1.70   1.17   1.70   1.15   1.62)&lt;br /&gt;
     (lineto   1.14   1.56)&lt;br /&gt;
     (lineto   1.11   1.56)&lt;br /&gt;
     (lineto   1.34   0.96)&lt;br /&gt;
     (lineto   1.41   0.96)&lt;br /&gt;
     (lineto   1.41   0.86)&lt;br /&gt;
     (lineto   1.39   0.83)&lt;br /&gt;
     (lineto   1.39   0.75)&lt;br /&gt;
     (lineto   1.79   0.00)&lt;br /&gt;
     (lineto   1.36   0.00)&lt;br /&gt;
     (curveto  1.36   0.30   1.10   0.51   0.87   0.51)&lt;br /&gt;
     (curveto  0.60   0.51   0.38   0.30   0.38   0.00)&lt;br /&gt;
     (lineto  -0.05   0.00))&lt;br /&gt;
  \path #0.08 &lt;br /&gt;
  #&#039;((moveto   0.71   0.99)&lt;br /&gt;
     (lineto   1.04   0.99)&lt;br /&gt;
     (lineto   0.96   1.36)&lt;br /&gt;
     (lineto   0.78   1.36)&lt;br /&gt;
     (lineto   0.71   0.99)&lt;br /&gt;
     (moveto  -0.05   0.00)&lt;br /&gt;
     (lineto   0.35   0.75)&lt;br /&gt;
     (lineto   0.35   0.83)&lt;br /&gt;
     (lineto   0.33   0.86)&lt;br /&gt;
     (lineto   0.33   0.96)&lt;br /&gt;
     (lineto   0.40   0.96)&lt;br /&gt;
     (lineto   0.63   1.56)&lt;br /&gt;
     (lineto   0.60   1.56)&lt;br /&gt;
     (lineto   0.59   1.62)&lt;br /&gt;
     (curveto  0.57   1.70   0.58   1.70   0.63   1.70)&lt;br /&gt;
     (lineto   0.63   1.73)&lt;br /&gt;
     (lineto   0.66   1.73)&lt;br /&gt;
     (curveto  0.72   2.30   0.78   2.70   0.79   3.56)&lt;br /&gt;
     (lineto   0.77   3.60)&lt;br /&gt;
     (lineto   0.76   3.68)&lt;br /&gt;
     (lineto   0.78   3.74)&lt;br /&gt;
     (curveto  0.85   3.75   0.86   3.78   0.87   4.03)&lt;br /&gt;
     (curveto  0.88   3.78   0.90   3.74   0.96   3.74)&lt;br /&gt;
     (lineto   0.98   3.68)&lt;br /&gt;
     (lineto   0.97   3.60)&lt;br /&gt;
     (lineto   0.95   3.56)&lt;br /&gt;
     (curveto  0.97   2.70   1.02   2.30   1.08   1.73)&lt;br /&gt;
     (lineto   1.11   1.73)&lt;br /&gt;
     (lineto   1.11   1.70)&lt;br /&gt;
     (curveto  1.17   1.70   1.17   1.70   1.15   1.62)&lt;br /&gt;
     (lineto   1.14   1.56)&lt;br /&gt;
     (lineto   1.11   1.56)&lt;br /&gt;
     (lineto   1.34   0.96)&lt;br /&gt;
     (lineto   1.41   0.96)&lt;br /&gt;
     (lineto   1.41   0.86)&lt;br /&gt;
     (lineto   1.39   0.83)&lt;br /&gt;
     (lineto   1.39   0.75)&lt;br /&gt;
     (lineto   1.79   0.00)&lt;br /&gt;
     (lineto   1.36   0.00)&lt;br /&gt;
     (curveto  1.36   0.30   1.10   0.51   0.87   0.51)&lt;br /&gt;
     (curveto  0.60   0.51   0.38   0.30   0.38   0.00)&lt;br /&gt;
     (lineto  -0.05   0.00))&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#(define-markup-command (smiley layout props smiley-choice smiley-size) (string? number?)&lt;br /&gt;
  &amp;quot;Include a smiley in a text&amp;quot;&lt;br /&gt;
  (interpret-markup layout props&lt;br /&gt;
    (cond&lt;br /&gt;
      ((string=? smiley-choice &amp;quot;:)&amp;quot;)  &lt;br /&gt;
        #{&lt;br /&gt;
           \markup&lt;br /&gt;
           \scale #(cons (* 0.3 smiley-size)(* 0.3 smiley-size))&lt;br /&gt;
           \smilePath&lt;br /&gt;
        #})&lt;br /&gt;
      ((string=? smiley-choice &amp;quot;;)&amp;quot;)  &lt;br /&gt;
        #{&lt;br /&gt;
           \markup&lt;br /&gt;
           \scale #(cons (* 0.3 smiley-size)(* 0.3 smiley-size))&lt;br /&gt;
           \winkPath&lt;br /&gt;
        #})&lt;br /&gt;
      ((string=? smiley-choice &amp;quot;:|&amp;quot;)  &lt;br /&gt;
        #{&lt;br /&gt;
           \markup&lt;br /&gt;
           \scale #(cons (* 0.3 smiley-size)(* 0.3 smiley-size))&lt;br /&gt;
           \straitPath&lt;br /&gt;
        #})&lt;br /&gt;
      ((string=? smiley-choice &amp;quot;&amp;lt;3&amp;quot;)  &lt;br /&gt;
        #{&lt;br /&gt;
           \markup&lt;br /&gt;
           \scale #(cons (* 0.3 smiley-size)(* 0.3 smiley-size))&lt;br /&gt;
           \lovePath&lt;br /&gt;
        #})&lt;br /&gt;
       ((string=? smiley-choice &amp;quot;A&amp;quot;)  &lt;br /&gt;
        #{&lt;br /&gt;
           \markup&lt;br /&gt;
           \scale #(cons (* 0.3 smiley-size)(* 0.3 smiley-size))&lt;br /&gt;
           \eiffelPath&lt;br /&gt;
        #})&lt;br /&gt;
      (else &lt;br /&gt;
        #{&lt;br /&gt;
           \markup&lt;br /&gt;
           \null&lt;br /&gt;
        #})&lt;br /&gt;
      )))&lt;br /&gt;
&lt;br /&gt;
%%%% And even put it as a notehead:&lt;br /&gt;
smileyNoteHead = &lt;br /&gt;
#(define-music-function &lt;br /&gt;
  (smiley-choice) (string?)&lt;br /&gt;
    #{&lt;br /&gt;
        \once\override NoteHead.stencil = &lt;br /&gt;
          #(lambda (grob) (grob-interpret-markup grob &lt;br /&gt;
              #{ &lt;br /&gt;
                \markup\smiley $smiley-choice #0.9 &lt;br /&gt;
              #}))&lt;br /&gt;
        \once\override NoteHead.stem-attachment = #&#039;(1 . -.2)&lt;br /&gt;
        \once\override Stem.layer = #0&lt;br /&gt;
    #})&lt;br /&gt;
&lt;br /&gt;
%%%% End smiley.ily:&lt;br /&gt;
&lt;br /&gt;
%%% TESTS %%%%&lt;br /&gt;
&lt;br /&gt;
%\include &amp;quot;smiley.ily&amp;quot;&lt;br /&gt;
&lt;br /&gt;
\markup\concat { &lt;br /&gt;
  &amp;quot;I&amp;quot; \hspace #.3&lt;br /&gt;
  \raise #1.2 \smiley #&amp;quot;&amp;lt;3&amp;quot; #3 \hspace #.3&lt;br /&gt;
  &amp;quot;P&amp;quot; \hspace #-.6&lt;br /&gt;
  \raise #0.07 \smiley #&amp;quot;A&amp;quot; #4 \hspace #.1&lt;br /&gt;
  \smallCaps &amp;quot;ris&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    c&#039;1_\markup\smiley #&amp;quot;:)&amp;quot; #3&lt;br /&gt;
    \mark\markup\smiley #&amp;quot;:|&amp;quot; #2&lt;br /&gt;
    \smileyNoteHead #&amp;quot;:|&amp;quot; c&#039;4  &lt;br /&gt;
    \smileyNoteHead #&amp;quot;:)&amp;quot; a&#039; &lt;br /&gt;
    \smileyNoteHead #&amp;quot;&amp;lt;3&amp;quot; \tweak stem-attachment #&#039;(0.98 . 0) f&#039; &lt;br /&gt;
    s8&lt;br /&gt;
  }&lt;br /&gt;
  \layout {&lt;br /&gt;
    indent = 15&lt;br /&gt;
    \context {&lt;br /&gt;
      \Staff&lt;br /&gt;
      instrumentName = \markup\smiley #&amp;quot;A&amp;quot; #5&lt;br /&gt;
      \once\override TimeSignature.stencil = &lt;br /&gt;
        #(lambda (grob) (grob-interpret-markup grob &lt;br /&gt;
            #{ \markup\smiley #&amp;quot;;)&amp;quot; #2 #}))&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Scheme]]&lt;br /&gt;
[[Category:Symbols and glyphs]]&lt;br /&gt;
[[Category:Really cool]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Spacing_out_percent_repeats_with_hidden_notes&amp;diff=6292</id>
		<title>Spacing out percent repeats with hidden notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Spacing_out_percent_repeats_with_hidden_notes&amp;diff=6292"/>
		<updated>2026-01-31T14:37:39Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you don&#039;t like the spacing used for percent repeats, you can enlarge the percent bars by suitably adding hidden notes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
\new Staff &amp;lt;&amp;lt;&lt;br /&gt;
  \new Voice {&lt;br /&gt;
    \repeat percent 3 \relative c&#039;&#039; { e e e e }&lt;br /&gt;
    \repeat percent 3 \relative c&#039;&#039; { e e e e }&lt;br /&gt;
  }&lt;br /&gt;
  \new Voice {&lt;br /&gt;
    s1 s s&lt;br /&gt;
    s1 \hideNotes \repeat unfold 8 c4 \unHideNotes &lt;br /&gt;
  }&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Repeats]]&lt;br /&gt;
[[Category:Spacing]]&lt;br /&gt;
[[Category:Symbols and glyphs]]&lt;br /&gt;
[[Category:Workaround]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Coda_ahead_of_a_line_of_its_own&amp;diff=6291</id>
		<title>Coda ahead of a line of its own</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Coda_ahead_of_a_line_of_its_own&amp;diff=6291"/>
		<updated>2026-01-31T14:29:07Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Remove full option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here the coda is simply engraved as a new score. (Contributed by Pierre Perol-Schneider.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
myMusic = {&lt;br /&gt;
  \clef F&lt;br /&gt;
  \key ees\major&lt;br /&gt;
  \time 5/4&lt;br /&gt;
  \set Score.currentBarNumber = #42&lt;br /&gt;
  \bar &amp;quot;&amp;quot;&lt;br /&gt;
  g8 r r g\p r4 bes8\&amp;lt; r c&#039; r&lt;br /&gt;
  g8\mf r r g r4 bes,8 r c r&lt;br /&gt;
  d8-\tweak X-offset #-2.5 \f d4 d a,8 d^&amp;gt; r r4&lt;br /&gt;
  \bar &amp;quot;||&amp;quot;&lt;br /&gt;
  \mark\markup\musicglyph &amp;quot;scripts.segno&amp;quot;&lt;br /&gt;
  \key bes\major&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
myCoda = {&lt;br /&gt;
  \clef F&lt;br /&gt;
  \key bes\major&lt;br /&gt;
  \time 5/4&lt;br /&gt;
  \set Score.currentBarNumber = #45&lt;br /&gt;
  \bar &amp;quot;&amp;quot;&lt;br /&gt;
  d4. d8~ d4 ees8 r f8 r&lt;br /&gt;
  g4. g,8~g,4 g8 r8 r4&lt;br /&gt;
  \bar &amp;quot;||&amp;quot;&lt;br /&gt;
  \key ees\major&lt;br /&gt;
  c8 r r c r4 ees8 r f r&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \new Staff \with { &lt;br /&gt;
    \omit TimeSignature &lt;br /&gt;
  } &lt;br /&gt;
  \myMusic&lt;br /&gt;
  \layout {&lt;br /&gt;
    indent = 0&lt;br /&gt;
    \context { &lt;br /&gt;
      \Score &lt;br /&gt;
      \omit TimeSignature&lt;br /&gt;
    } &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \new Staff \with {&lt;br /&gt;
    \omit TimeSignature&lt;br /&gt;
    instrumentName = \markup\vcenter { &lt;br /&gt;
      \bold &amp;quot;coda&amp;quot; \fontsize #3 \musicglyph &amp;quot;scripts.coda&amp;quot; &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  \myCoda&lt;br /&gt;
  \layout {&lt;br /&gt;
    indent = 25&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Repeats]]&lt;br /&gt;
[[Category:Editorial annotations]]&lt;br /&gt;
[[Category:Workaround]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Coda_ahead_of_a_line_of_its_own&amp;diff=6290</id>
		<title>Coda ahead of a line of its own</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Coda_ahead_of_a_line_of_its_own&amp;diff=6290"/>
		<updated>2026-01-31T14:28:43Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Remove broken links, move acknowledgement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here the coda is simply engraved as a new score. (Contributed by Pierre Perol-Schneider.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot; full&amp;gt;&lt;br /&gt;
myMusic = {&lt;br /&gt;
  \clef F&lt;br /&gt;
  \key ees\major&lt;br /&gt;
  \time 5/4&lt;br /&gt;
  \set Score.currentBarNumber = #42&lt;br /&gt;
  \bar &amp;quot;&amp;quot;&lt;br /&gt;
  g8 r r g\p r4 bes8\&amp;lt; r c&#039; r&lt;br /&gt;
  g8\mf r r g r4 bes,8 r c r&lt;br /&gt;
  d8-\tweak X-offset #-2.5 \f d4 d a,8 d^&amp;gt; r r4&lt;br /&gt;
  \bar &amp;quot;||&amp;quot;&lt;br /&gt;
  \mark\markup\musicglyph &amp;quot;scripts.segno&amp;quot;&lt;br /&gt;
  \key bes\major&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
myCoda = {&lt;br /&gt;
  \clef F&lt;br /&gt;
  \key bes\major&lt;br /&gt;
  \time 5/4&lt;br /&gt;
  \set Score.currentBarNumber = #45&lt;br /&gt;
  \bar &amp;quot;&amp;quot;&lt;br /&gt;
  d4. d8~ d4 ees8 r f8 r&lt;br /&gt;
  g4. g,8~g,4 g8 r8 r4&lt;br /&gt;
  \bar &amp;quot;||&amp;quot;&lt;br /&gt;
  \key ees\major&lt;br /&gt;
  c8 r r c r4 ees8 r f r&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \new Staff \with { &lt;br /&gt;
    \omit TimeSignature &lt;br /&gt;
  } &lt;br /&gt;
  \myMusic&lt;br /&gt;
  \layout {&lt;br /&gt;
    indent = 0&lt;br /&gt;
    \context { &lt;br /&gt;
      \Score &lt;br /&gt;
      \omit TimeSignature&lt;br /&gt;
    } &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \new Staff \with {&lt;br /&gt;
    \omit TimeSignature&lt;br /&gt;
    instrumentName = \markup\vcenter { &lt;br /&gt;
      \bold &amp;quot;coda&amp;quot; \fontsize #3 \musicglyph &amp;quot;scripts.coda&amp;quot; &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  \myCoda&lt;br /&gt;
  \layout {&lt;br /&gt;
    indent = 25&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Repeats]]&lt;br /&gt;
[[Category:Editorial annotations]]&lt;br /&gt;
[[Category:Workaround]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Ripped,_torn_staff-lines&amp;diff=6289</id>
		<title>Ripped, torn staff-lines</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Ripped,_torn_staff-lines&amp;diff=6289"/>
		<updated>2026-01-31T13:19:05Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Shouldn&amp;#039;t be full&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are some macros (contributed by Mark Polesky) which can make a single staff appear as though its right side has been torn off. Two styles are available: the first &amp;amp;quot;erases&amp;amp;quot; the ends of individual staff- lines to different lengths; the second draws a zigzag line and erases everything to its right. Furthermore, the first type is capable of producing tear-patterns at random. Both work by temporarily modifying the &amp;lt;code&amp;gt;BarLine&amp;lt;/code&amp;gt; stencil.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;nodoc&amp;quot;&amp;gt;&lt;br /&gt;
For technical reasons, the zigzag lines don&#039;t show up in the Wiki because &amp;lt;code&amp;gt;\postscript&amp;lt;/code&amp;gt; only works with LilyPond&#039;s PS backend and is neither supported in the SVG (used in this Wiki) nor in the Cairo backend.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;style-1-preferences&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== STYLE 1 PREFERENCES: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;tearWidth&amp;lt;/code&amp;gt; ... default is 1&amp;lt;br /&amp;gt;&lt;br /&gt;
horizontal distance (measured in staff-spaces) between the end-points of the shortest and longest staff-lines.&lt;br /&gt;
* &amp;lt;code&amp;gt;tearXext&amp;lt;/code&amp;gt; ... default is &#039;(0 . 0)&amp;lt;br /&amp;gt;&lt;br /&gt;
X-extent of the BarLine stencil, NOT including its width. Can be used as &amp;amp;quot;padding&amp;amp;quot; around the stencil, if needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;style-2-preferences&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== STYLE 2 PREFERENCES: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagDefaultYext&amp;lt;/code&amp;gt; ... default is &#039;(-4 . 4)&amp;lt;br /&amp;gt;&lt;br /&gt;
Y-extent of the zigzag BarLine stencil (measured in staff-spaces).&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagDefaultSerrationCount&amp;lt;/code&amp;gt; ... default is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
Number of &amp;amp;quot;teeth&amp;amp;quot; or &amp;amp;quot;notches&amp;amp;quot; on the zigzag line.&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagTearLineWidth&amp;lt;/code&amp;gt; ... default is 0.1&amp;lt;br /&amp;gt;&lt;br /&gt;
Width of the zigzag line itself.&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagTearAngle&amp;lt;/code&amp;gt; ... default is 90&amp;lt;br /&amp;gt;&lt;br /&gt;
Angle (measured in degrees) of kinks in the zigzag line.&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagTearXext&amp;lt;/code&amp;gt; ... default is &#039;(0 . 0)&amp;lt;br /&amp;gt;&lt;br /&gt;
X-extent of the zigzag BarLine stencil, NOT including its width. Can be used as &amp;amp;quot;padding&amp;amp;quot; around the stencil, if needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;usage&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== USAGE: ===&lt;br /&gt;
&lt;br /&gt;
see the &amp;lt;code&amp;gt;\score { }&amp;lt;/code&amp;gt; block at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
%% preferences %%&lt;br /&gt;
&lt;br /&gt;
tearWidth = #1&lt;br /&gt;
tearXext = #&#039;(0 . 0)&lt;br /&gt;
&lt;br /&gt;
zigzagDefaultYext = #&#039;(-4 . 4)&lt;br /&gt;
zigzagDefaultSerrationCount = #5&lt;br /&gt;
zigzagTearLineWidth = #0.1&lt;br /&gt;
zigzagTearAngle = #90&lt;br /&gt;
zigzagTearXext = #&#039;(0 . 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%% start definitions %%&lt;br /&gt;
&lt;br /&gt;
tearGeneric =&lt;br /&gt;
  #(define-music-function (lengths) (list?)&lt;br /&gt;
  (let ((x-ext&lt;br /&gt;
          (lambda (n)&lt;br /&gt;
            (cons (* (list-ref lengths n) (/ tearWidth 4)) tearWidth)))&lt;br /&gt;
        (y-ext &#039;(1.5 . 2.5)))&lt;br /&gt;
&lt;br /&gt;
  #{&lt;br /&gt;
    \once \override Staff.BarLine.stencil = #ly:text-interface::print&lt;br /&gt;
    \once \override Staff.BarLine.text = \markup&lt;br /&gt;
      \override #&#039;(baseline-skip . 0) \with-color #white&lt;br /&gt;
      \column {&lt;br /&gt;
        \filled-box #(x-ext 0) #y-ext #0&lt;br /&gt;
        \filled-box #(x-ext 1) #y-ext #0&lt;br /&gt;
        \filled-box #(x-ext 2) #y-ext #0&lt;br /&gt;
        \filled-box #(x-ext 3) #y-ext #0&lt;br /&gt;
        \filled-box #(x-ext 4) #y-ext #0&lt;br /&gt;
      }&lt;br /&gt;
    \once \override Staff.BarLine.layer = #1&lt;br /&gt;
    \once \override Staff.BarLine.X-extent =&lt;br /&gt;
      #`(,(car tearXext) . ,(- (+ (cdr tearXext) tearWidth) 0.1))&lt;br /&gt;
    \break&lt;br /&gt;
  #}))&lt;br /&gt;
&lt;br /&gt;
tear =&lt;br /&gt;
  #(define-music-function () ()&lt;br /&gt;
  #{&lt;br /&gt;
    \tearGeneric&lt;br /&gt;
      #(let loop ((unused &#039;(0 1 2 3 4))&lt;br /&gt;
                  (lengths &#039;()))&lt;br /&gt;
        (if (= (length lengths) 5)&lt;br /&gt;
            lengths&lt;br /&gt;
            (let* ((x (random (length unused)))&lt;br /&gt;
                   (y (- (length unused) x))&lt;br /&gt;
                   (z (list-ref unused x)))&lt;br /&gt;
             (loop (append (list-tail unused (+ x 1))&lt;br /&gt;
                           (list-tail (reverse unused) y))&lt;br /&gt;
                   (append lengths `(,z))))))&lt;br /&gt;
  #})&lt;br /&gt;
&lt;br /&gt;
tearCustom =&lt;br /&gt;
  #(define-music-function (lengths) (list?)&lt;br /&gt;
  #{ \tearGeneric #lengths #})&lt;br /&gt;
&lt;br /&gt;
zigzagTearCustom =&lt;br /&gt;
  #(define-music-function (y-ext serrations)&lt;br /&gt;
    (pair? number?)&lt;br /&gt;
    (let* ((zigzagTearHeight (- (cdr y-ext) (car y-ext)))&lt;br /&gt;
           (deg2rad (lambda (x) (* x (/ (* (atan 1) 4) 180))))&lt;br /&gt;
           (zigzagTearWidth&lt;br /&gt;
              (/ zigzagTearHeight&lt;br /&gt;
                 serrations&lt;br /&gt;
                 (* (tan (/ (deg2rad zigzagTearAngle) 2)) 2))))&lt;br /&gt;
  #{&lt;br /&gt;
    \once \override Staff.BarLine.stencil = #ly:text-interface::print&lt;br /&gt;
    \once \override Staff.BarLine.text =&lt;br /&gt;
      \markup \with-dimensions&lt;br /&gt;
               #`(0 . ,zigzagTearWidth)&lt;br /&gt;
               #`(,(car y-ext) . ,(cdr y-ext))&lt;br /&gt;
        \postscript&lt;br /&gt;
&lt;br /&gt;
#(string-append &amp;quot;&lt;br /&gt;
/linewidth &amp;quot; (number-&amp;gt;string zigzagTearLineWidth) &amp;quot; def&lt;br /&gt;
/height &amp;quot; (number-&amp;gt;string zigzagTearHeight) &amp;quot; def&lt;br /&gt;
/serrations &amp;quot; (number-&amp;gt;string serrations) &amp;quot; def&lt;br /&gt;
/width &amp;quot; (number-&amp;gt;string zigzagTearWidth) &amp;quot; def&lt;br /&gt;
/padding &amp;quot; (number-&amp;gt;string (cdr zigzagTearXext)) &amp;quot; 2 width mul add def&lt;br /&gt;
&lt;br /&gt;
/serrationHeight height serrations div def&lt;br /&gt;
/y0 &amp;quot; (number-&amp;gt;string (cdr y-ext)) &amp;quot; def&lt;br /&gt;
/xn width def&lt;br /&gt;
/yn serrationHeight 2 div neg def&lt;br /&gt;
&lt;br /&gt;
/plotAngle {&lt;br /&gt;
  xn yn rlineto&lt;br /&gt;
  xn neg yn rlineto&lt;br /&gt;
} def&lt;br /&gt;
&lt;br /&gt;
/plotSerrations {&lt;br /&gt;
  serrations { plotAngle } repeat&lt;br /&gt;
} def&lt;br /&gt;
&lt;br /&gt;
%% whiteout:&lt;br /&gt;
1 setgray&lt;br /&gt;
linewidth setlinewidth&lt;br /&gt;
0 y0 linewidth add moveto %% (whiteout staff-lines when y-exts are integers)&lt;br /&gt;
0 y0 lineto&lt;br /&gt;
plotSerrations&lt;br /&gt;
0 linewidth neg rlineto %% (whiteout staff-lines when y-exts are integers)&lt;br /&gt;
padding 0 rlineto&lt;br /&gt;
0 height linewidth 2 mul add rlineto %% (account for top and bottom linewidth)&lt;br /&gt;
padding neg 0 rlineto&lt;br /&gt;
fill stroke&lt;br /&gt;
&lt;br /&gt;
%% draw serrations:&lt;br /&gt;
newpath&lt;br /&gt;
0 setgray&lt;br /&gt;
linewidth setlinewidth&lt;br /&gt;
0 y0 moveto&lt;br /&gt;
plotSerrations&lt;br /&gt;
stroke&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    \once \override Staff.BarLine.layer = #1&lt;br /&gt;
    \once \override Staff.BarLine.X-extent =&lt;br /&gt;
      #`(,(car zigzagTearXext) .&lt;br /&gt;
       ,(- (+ (cdr zigzagTearXext) zigzagTearWidth) 0.1))&lt;br /&gt;
    \break&lt;br /&gt;
  #}))&lt;br /&gt;
&lt;br /&gt;
zigzagTear = \zigzagTearCustom #zigzagDefaultYext #zigzagDefaultSerrationCount&lt;br /&gt;
&lt;br /&gt;
%% end definitions %%&lt;br /&gt;
&lt;br /&gt;
%% example of a custom tear-pattern:&lt;br /&gt;
tearRagged = \tearCustom #&#039;(3 1 3 1 3)&lt;br /&gt;
&lt;br /&gt;
music = { g&#039;4 d&#039;&#039; b&#039; d&#039;&#039; }&lt;br /&gt;
\header { tagline=##f }&lt;br /&gt;
\score {&lt;br /&gt;
  {&lt;br /&gt;
    %% random line-lengths:&lt;br /&gt;
    \music \tear&lt;br /&gt;
&lt;br /&gt;
    %% set line-lengths on-the-fly:&lt;br /&gt;
    \music \tearCustom #&#039;(0 1 2 3 4)&lt;br /&gt;
&lt;br /&gt;
    %% define a custom tear-pattern if you want consistency (see above):&lt;br /&gt;
    \music \tearRagged&lt;br /&gt;
&lt;br /&gt;
    %% default zigzag tear:&lt;br /&gt;
    \music \zigzagTear&lt;br /&gt;
&lt;br /&gt;
    %% set zigzag Y-extent and serration-count on-the-fly:&lt;br /&gt;
    \transpose c c&#039; \music \zigzagTearCustom #&#039;(-4 . 7) #4&lt;br /&gt;
  }&lt;br /&gt;
  \layout {&lt;br /&gt;
    indent = #0&lt;br /&gt;
    ragged-right = ##t&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:Editorial annotations]]&lt;br /&gt;
[[Category:Really cool]]&lt;br /&gt;
[[Category:Snippet]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Correction wanted]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Ripped,_torn_staff-lines&amp;diff=6288</id>
		<title>Ripped, torn staff-lines</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Ripped,_torn_staff-lines&amp;diff=6288"/>
		<updated>2026-01-31T13:18:37Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Remove broken links, move acknowledgement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are some macros (contributed by Mark Polesky) which can make a single staff appear as though its right side has been torn off. Two styles are available: the first &amp;amp;quot;erases&amp;amp;quot; the ends of individual staff- lines to different lengths; the second draws a zigzag line and erases everything to its right. Furthermore, the first type is capable of producing tear-patterns at random. Both work by temporarily modifying the &amp;lt;code&amp;gt;BarLine&amp;lt;/code&amp;gt; stencil.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;nodoc&amp;quot;&amp;gt;&lt;br /&gt;
For technical reasons, the zigzag lines don&#039;t show up in the Wiki because &amp;lt;code&amp;gt;\postscript&amp;lt;/code&amp;gt; only works with LilyPond&#039;s PS backend and is neither supported in the SVG (used in this Wiki) nor in the Cairo backend.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;style-1-preferences&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== STYLE 1 PREFERENCES: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;tearWidth&amp;lt;/code&amp;gt; ... default is 1&amp;lt;br /&amp;gt;&lt;br /&gt;
horizontal distance (measured in staff-spaces) between the end-points of the shortest and longest staff-lines.&lt;br /&gt;
* &amp;lt;code&amp;gt;tearXext&amp;lt;/code&amp;gt; ... default is &#039;(0 . 0)&amp;lt;br /&amp;gt;&lt;br /&gt;
X-extent of the BarLine stencil, NOT including its width. Can be used as &amp;amp;quot;padding&amp;amp;quot; around the stencil, if needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;style-2-preferences&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== STYLE 2 PREFERENCES: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagDefaultYext&amp;lt;/code&amp;gt; ... default is &#039;(-4 . 4)&amp;lt;br /&amp;gt;&lt;br /&gt;
Y-extent of the zigzag BarLine stencil (measured in staff-spaces).&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagDefaultSerrationCount&amp;lt;/code&amp;gt; ... default is 5&amp;lt;br /&amp;gt;&lt;br /&gt;
Number of &amp;amp;quot;teeth&amp;amp;quot; or &amp;amp;quot;notches&amp;amp;quot; on the zigzag line.&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagTearLineWidth&amp;lt;/code&amp;gt; ... default is 0.1&amp;lt;br /&amp;gt;&lt;br /&gt;
Width of the zigzag line itself.&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagTearAngle&amp;lt;/code&amp;gt; ... default is 90&amp;lt;br /&amp;gt;&lt;br /&gt;
Angle (measured in degrees) of kinks in the zigzag line.&lt;br /&gt;
* &amp;lt;code&amp;gt;zigzagTearXext&amp;lt;/code&amp;gt; ... default is &#039;(0 . 0)&amp;lt;br /&amp;gt;&lt;br /&gt;
X-extent of the zigzag BarLine stencil, NOT including its width. Can be used as &amp;amp;quot;padding&amp;amp;quot; around the stencil, if needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;usage&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== USAGE: ===&lt;br /&gt;
&lt;br /&gt;
see the &amp;lt;code&amp;gt;\score { }&amp;lt;/code&amp;gt; block at the end of the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot; full&amp;gt;&lt;br /&gt;
%% preferences %%&lt;br /&gt;
&lt;br /&gt;
tearWidth = #1&lt;br /&gt;
tearXext = #&#039;(0 . 0)&lt;br /&gt;
&lt;br /&gt;
zigzagDefaultYext = #&#039;(-4 . 4)&lt;br /&gt;
zigzagDefaultSerrationCount = #5&lt;br /&gt;
zigzagTearLineWidth = #0.1&lt;br /&gt;
zigzagTearAngle = #90&lt;br /&gt;
zigzagTearXext = #&#039;(0 . 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%% start definitions %%&lt;br /&gt;
&lt;br /&gt;
tearGeneric =&lt;br /&gt;
  #(define-music-function (lengths) (list?)&lt;br /&gt;
  (let ((x-ext&lt;br /&gt;
          (lambda (n)&lt;br /&gt;
            (cons (* (list-ref lengths n) (/ tearWidth 4)) tearWidth)))&lt;br /&gt;
        (y-ext &#039;(1.5 . 2.5)))&lt;br /&gt;
&lt;br /&gt;
  #{&lt;br /&gt;
    \once \override Staff.BarLine.stencil = #ly:text-interface::print&lt;br /&gt;
    \once \override Staff.BarLine.text = \markup&lt;br /&gt;
      \override #&#039;(baseline-skip . 0) \with-color #white&lt;br /&gt;
      \column {&lt;br /&gt;
        \filled-box #(x-ext 0) #y-ext #0&lt;br /&gt;
        \filled-box #(x-ext 1) #y-ext #0&lt;br /&gt;
        \filled-box #(x-ext 2) #y-ext #0&lt;br /&gt;
        \filled-box #(x-ext 3) #y-ext #0&lt;br /&gt;
        \filled-box #(x-ext 4) #y-ext #0&lt;br /&gt;
      }&lt;br /&gt;
    \once \override Staff.BarLine.layer = #1&lt;br /&gt;
    \once \override Staff.BarLine.X-extent =&lt;br /&gt;
      #`(,(car tearXext) . ,(- (+ (cdr tearXext) tearWidth) 0.1))&lt;br /&gt;
    \break&lt;br /&gt;
  #}))&lt;br /&gt;
&lt;br /&gt;
tear =&lt;br /&gt;
  #(define-music-function () ()&lt;br /&gt;
  #{&lt;br /&gt;
    \tearGeneric&lt;br /&gt;
      #(let loop ((unused &#039;(0 1 2 3 4))&lt;br /&gt;
                  (lengths &#039;()))&lt;br /&gt;
        (if (= (length lengths) 5)&lt;br /&gt;
            lengths&lt;br /&gt;
            (let* ((x (random (length unused)))&lt;br /&gt;
                   (y (- (length unused) x))&lt;br /&gt;
                   (z (list-ref unused x)))&lt;br /&gt;
             (loop (append (list-tail unused (+ x 1))&lt;br /&gt;
                           (list-tail (reverse unused) y))&lt;br /&gt;
                   (append lengths `(,z))))))&lt;br /&gt;
  #})&lt;br /&gt;
&lt;br /&gt;
tearCustom =&lt;br /&gt;
  #(define-music-function (lengths) (list?)&lt;br /&gt;
  #{ \tearGeneric #lengths #})&lt;br /&gt;
&lt;br /&gt;
zigzagTearCustom =&lt;br /&gt;
  #(define-music-function (y-ext serrations)&lt;br /&gt;
    (pair? number?)&lt;br /&gt;
    (let* ((zigzagTearHeight (- (cdr y-ext) (car y-ext)))&lt;br /&gt;
           (deg2rad (lambda (x) (* x (/ (* (atan 1) 4) 180))))&lt;br /&gt;
           (zigzagTearWidth&lt;br /&gt;
              (/ zigzagTearHeight&lt;br /&gt;
                 serrations&lt;br /&gt;
                 (* (tan (/ (deg2rad zigzagTearAngle) 2)) 2))))&lt;br /&gt;
  #{&lt;br /&gt;
    \once \override Staff.BarLine.stencil = #ly:text-interface::print&lt;br /&gt;
    \once \override Staff.BarLine.text =&lt;br /&gt;
      \markup \with-dimensions&lt;br /&gt;
               #`(0 . ,zigzagTearWidth)&lt;br /&gt;
               #`(,(car y-ext) . ,(cdr y-ext))&lt;br /&gt;
        \postscript&lt;br /&gt;
&lt;br /&gt;
#(string-append &amp;quot;&lt;br /&gt;
/linewidth &amp;quot; (number-&amp;gt;string zigzagTearLineWidth) &amp;quot; def&lt;br /&gt;
/height &amp;quot; (number-&amp;gt;string zigzagTearHeight) &amp;quot; def&lt;br /&gt;
/serrations &amp;quot; (number-&amp;gt;string serrations) &amp;quot; def&lt;br /&gt;
/width &amp;quot; (number-&amp;gt;string zigzagTearWidth) &amp;quot; def&lt;br /&gt;
/padding &amp;quot; (number-&amp;gt;string (cdr zigzagTearXext)) &amp;quot; 2 width mul add def&lt;br /&gt;
&lt;br /&gt;
/serrationHeight height serrations div def&lt;br /&gt;
/y0 &amp;quot; (number-&amp;gt;string (cdr y-ext)) &amp;quot; def&lt;br /&gt;
/xn width def&lt;br /&gt;
/yn serrationHeight 2 div neg def&lt;br /&gt;
&lt;br /&gt;
/plotAngle {&lt;br /&gt;
  xn yn rlineto&lt;br /&gt;
  xn neg yn rlineto&lt;br /&gt;
} def&lt;br /&gt;
&lt;br /&gt;
/plotSerrations {&lt;br /&gt;
  serrations { plotAngle } repeat&lt;br /&gt;
} def&lt;br /&gt;
&lt;br /&gt;
%% whiteout:&lt;br /&gt;
1 setgray&lt;br /&gt;
linewidth setlinewidth&lt;br /&gt;
0 y0 linewidth add moveto %% (whiteout staff-lines when y-exts are integers)&lt;br /&gt;
0 y0 lineto&lt;br /&gt;
plotSerrations&lt;br /&gt;
0 linewidth neg rlineto %% (whiteout staff-lines when y-exts are integers)&lt;br /&gt;
padding 0 rlineto&lt;br /&gt;
0 height linewidth 2 mul add rlineto %% (account for top and bottom linewidth)&lt;br /&gt;
padding neg 0 rlineto&lt;br /&gt;
fill stroke&lt;br /&gt;
&lt;br /&gt;
%% draw serrations:&lt;br /&gt;
newpath&lt;br /&gt;
0 setgray&lt;br /&gt;
linewidth setlinewidth&lt;br /&gt;
0 y0 moveto&lt;br /&gt;
plotSerrations&lt;br /&gt;
stroke&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    \once \override Staff.BarLine.layer = #1&lt;br /&gt;
    \once \override Staff.BarLine.X-extent =&lt;br /&gt;
      #`(,(car zigzagTearXext) .&lt;br /&gt;
       ,(- (+ (cdr zigzagTearXext) zigzagTearWidth) 0.1))&lt;br /&gt;
    \break&lt;br /&gt;
  #}))&lt;br /&gt;
&lt;br /&gt;
zigzagTear = \zigzagTearCustom #zigzagDefaultYext #zigzagDefaultSerrationCount&lt;br /&gt;
&lt;br /&gt;
%% end definitions %%&lt;br /&gt;
&lt;br /&gt;
%% example of a custom tear-pattern:&lt;br /&gt;
tearRagged = \tearCustom #&#039;(3 1 3 1 3)&lt;br /&gt;
&lt;br /&gt;
music = { g&#039;4 d&#039;&#039; b&#039; d&#039;&#039; }&lt;br /&gt;
\header { tagline=##f }&lt;br /&gt;
\score {&lt;br /&gt;
  {&lt;br /&gt;
    %% random line-lengths:&lt;br /&gt;
    \music \tear&lt;br /&gt;
&lt;br /&gt;
    %% set line-lengths on-the-fly:&lt;br /&gt;
    \music \tearCustom #&#039;(0 1 2 3 4)&lt;br /&gt;
&lt;br /&gt;
    %% define a custom tear-pattern if you want consistency (see above):&lt;br /&gt;
    \music \tearRagged&lt;br /&gt;
&lt;br /&gt;
    %% default zigzag tear:&lt;br /&gt;
    \music \zigzagTear&lt;br /&gt;
&lt;br /&gt;
    %% set zigzag Y-extent and serration-count on-the-fly:&lt;br /&gt;
    \transpose c c&#039; \music \zigzagTearCustom #&#039;(-4 . 7) #4&lt;br /&gt;
  }&lt;br /&gt;
  \layout {&lt;br /&gt;
    indent = #0&lt;br /&gt;
    ragged-right = ##t&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:Editorial annotations]]&lt;br /&gt;
[[Category:Really cool]]&lt;br /&gt;
[[Category:Snippet]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Correction wanted]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6280</id>
		<title>Mozart’s Musikalisches Würfelspiel</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6280"/>
		<updated>2026-01-30T12:55:21Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Don&amp;#039;t use q across different measures since it doesn&amp;#039;t work after reordering&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mozart’s [https://en.wikipedia.org/wiki/Musikalisches_W%C3%BCrfelspiel Musikalisches Würfelspiel] (score [https://imslp.org/wiki/Musikalisches_W%C3%BCrfelspiel,_K.516f_(Mozart,_Wolfgang_Amadeus) available on IMSLP]) is a system to create a waltz by choosing each measure from a list of possibilities, with 759,499,667,166,482 possible waltzes in total. This is an implementation of the Würfelspiel using a bit of Scheme code to select the measures at random, producing a different waltz at each compilation. The code is an instructive example of creating music functions and manipulating music in Scheme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
rhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { &amp;lt;g&#039; b d g&amp;gt;4 r8 }&lt;br /&gt;
    \volta 2 { &amp;lt;g b d g&amp;gt;4 r8 }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;g b d g&amp;gt;4 r8&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { g,8 g&#039;16 f! e d }&lt;br /&gt;
    \volta 2 { g,8 b&#039;16 g fis e }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;&amp;lt; { g,8^&amp;quot;Volta 2&amp;quot; b&#039;16 g fis e } \\ { g,8_&amp;quot;Volta 1&amp;quot; g&#039;16 f! e d } &amp;gt;&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
rhData = \relative {&lt;br /&gt;
  | f&#039;&#039;8 d g&lt;br /&gt;
  | a,8 fis16 g b g&#039;&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g8 d4\trill&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c e g c g&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt; r8&lt;br /&gt;
  | b16 a b c d b&lt;br /&gt;
  | e16 c b a g fis&lt;br /&gt;
  | &amp;lt;e c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;8( g e)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 g16 e c8&lt;br /&gt;
  | a&#039;8( fis d)&lt;br /&gt;
  | c16 g c e g, c&lt;br /&gt;
  | g8( c e)&lt;br /&gt;
  | e16 c e8 g&lt;br /&gt;
  | g8 b16 d d,8&lt;br /&gt;
  | c16 e g d a fis&#039;&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;16 e d e f g&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d,16 fis a d fis a&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;8 8 8&lt;br /&gt;
  | f16 e f d c b&lt;br /&gt;
  | fis&#039;16 d a a&#039; fis d&lt;br /&gt;
  | b16 d g d b8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16[ c g8] e&#039;&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 c d b g8&lt;br /&gt;
  | a8 d fis&lt;br /&gt;
  | a,16 e&#039; d g fis a&lt;br /&gt;
  | g16 b g d b8&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 g, g&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | c16 b c e g,8&lt;br /&gt;
  | b16 c d b a g&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | a8 f&#039;16 d a b&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | g&#039;&#039;8 b16 g d b&lt;br /&gt;
  | g&#039;8 g16 d b&#039;8&lt;br /&gt;
  | e,8 c16 e g c&lt;br /&gt;
  | e,8( c g)&lt;br /&gt;
  | c8 e16 c g8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16( cis) d f g, b&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 16 &amp;lt;d f&amp;gt; &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;8 b d,&lt;br /&gt;
  | d16 b g8 r8&lt;br /&gt;
  | e&#039;8 c g&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | c8 e16 c g&#039;8&lt;br /&gt;
  | e16 c b g a fis&lt;br /&gt;
  | e&#039;16 c b c g8&lt;br /&gt;
  | e&#039;16 g c g e c&lt;br /&gt;
  | d16 a d8 fis&lt;br /&gt;
  | fis8 a fis&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | g&#039;8 b16 g d g&lt;br /&gt;
  | g8( e c)&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | g16 b d b g8&lt;br /&gt;
  | f16 e d c b d&lt;br /&gt;
  | g8 e c&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | g&#039;16 b g8 d&lt;br /&gt;
  | c8 c, r&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | d8 a\turn fis&#039;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d16[ b g8] g&#039;&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | c8 e g,&lt;br /&gt;
  | d&#039;8 d16 g b8&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g16 d g b g d&lt;br /&gt;
  | f16 e d8 g&lt;br /&gt;
  | fis16 a d a fis a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;b, d&amp;gt;8 g&#039;16 b d,8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | fis8 a d,&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | fis16 d a8 fis&#039;&lt;br /&gt;
  | c16 e c g e8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | a,8 d16 c b a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e&#039;8( g c)&lt;br /&gt;
  | d,16 f d f b, d&lt;br /&gt;
  | &amp;lt;b d&amp;gt;16( &amp;lt;a c&amp;gt;) q( &amp;lt;g b&amp;gt;) q( &amp;lt;fis a&amp;gt;)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;8 d b&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 q q&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16 f a f d b&lt;br /&gt;
  | d16 a d fis a fis&lt;br /&gt;
  | e16 a g b fis a&lt;br /&gt;
  | e16 c g&#039; e c&#039; g&lt;br /&gt;
  | d&#039;8 a16 fis d a&lt;br /&gt;
  | g&#039;8 b16 g d8&lt;br /&gt;
  | g16 fis g b d,8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;16 e d b g8&lt;br /&gt;
  | c16 g c e g &amp;lt;c, e&amp;gt;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | b8 d g&lt;br /&gt;
  | a16 g fis g d8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt;16 &amp;lt;g b&amp;gt; g8&lt;br /&gt;
  | d&#039;8 g16 d b d&lt;br /&gt;
  | a16 e&#039; &amp;lt;b d&amp;gt; &amp;lt;a c&amp;gt; &amp;lt;g b&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | fis&#039;8 fis16 d a&#039;8&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | &amp;lt;a, d fis&amp;gt;8 fis&#039;4\trill&lt;br /&gt;
  | g16 b g b d,8&lt;br /&gt;
  | a8 a16 d fis8&lt;br /&gt;
  | d16 e f d c b&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 d16 b g8&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | d16 f a, d b d&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 &amp;lt;d&#039; fis&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | e16 c&#039; b g a fis&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | f16 d a8 b&lt;br /&gt;
  | &amp;lt;g c e&amp;gt;8 e&#039;4\trill&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | d16 a fis&#039; d a&#039; fis&lt;br /&gt;
  | d16 cis d fis a fis&lt;br /&gt;
  | g16 b g d b g&lt;br /&gt;
  | c16 g e&#039; c g&#039;8&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | b,8 d16 b a g&lt;br /&gt;
  | e&#039;16 g d c b a&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 8 8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | g16 fis g d b g&lt;br /&gt;
  | d&#039;8 g,4&lt;br /&gt;
  | d&#039;8( b g)&lt;br /&gt;
  | d&#039;16 b&#039; g d b8&lt;br /&gt;
  | c8 c16 d e8&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | e16 g d g a, fis&#039;&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | b16 c d e f d&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | f16 a a,8 b16 d&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c b d g8&lt;br /&gt;
  | a16 g b g d g&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhData = \relative {&lt;br /&gt;
  | f8 d g&lt;br /&gt;
  | &amp;lt;b, g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g16 b g&#039;8 b,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;4 g,8&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 8 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | f16 e d e f g&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | c16 e g e c&#039; c,&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 r8&lt;br /&gt;
  | g&#039;4 g,8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c a&#039;&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;b&#039; d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | b,16 d g d b g&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;&amp;lt; { a&#039;8 fis d } \\ { d8 d c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c4 c,8&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 &amp;lt;b d&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;16 e d8 g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | c,8 g c,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c a&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;f a&amp;gt;4 &amp;lt;g d&#039;&amp;gt;8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;g b&amp;gt;4 r8&lt;br /&gt;
  | g8 8 8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | g&#039;8 g, r&lt;br /&gt;
  | e&#039;4 e16 c&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;8 g, r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;&amp;lt; { d&#039;8 d d } \\ { c8 c c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;&amp;lt; e4 \\ c4 &amp;gt;&amp;gt; r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | d,16 d&#039; cis d c d&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c fis&amp;gt;8 8 &amp;lt;c a&#039;&amp;gt;&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 g8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,8 8 8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,16 b c d e fis&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;g&#039; g&#039;&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | g8 g, r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table = #&#039;(&lt;br /&gt;
#(96 32 69 40 148 104 152 119 98 3 54)&lt;br /&gt;
#(22 6 95 17 74 157 60 84 142 87 130)&lt;br /&gt;
#(141 128 158 113 163 27 171 114 42 165 10)&lt;br /&gt;
#(41 63 13 85 45 167 53 50 156 61 103)&lt;br /&gt;
#(105 146 153 161 80 154 99 140 75 135 28)&lt;br /&gt;
#(122 46 55 2 97 68 133 86 129 47 37)&lt;br /&gt;
#(11 134 110 159 36 118 21 169 62 147 106)&lt;br /&gt;
#(30 81 24 100 107 91 127 94 123 33 5)&lt;br /&gt;
#(70 117 66 90 25 138 16 120 65 102 35)&lt;br /&gt;
#(121 39 139 176 143 71 155 88 77 4 20)&lt;br /&gt;
#(26 126 15 7 64 150 57 48 19 31 108)&lt;br /&gt;
#(9 56 132 34 125 29 175 166 82 164 92)&lt;br /&gt;
#(112 174 73 67 76 101 43 51 137 144 12)&lt;br /&gt;
#(49 18 58 160 136 162 168 115 38 59 124)&lt;br /&gt;
#(109 116 145 52 1 23 89 72 149 173 44)&lt;br /&gt;
#(14 83 79 170 93 151 172 111 8 78 131)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
#(define choices&lt;br /&gt;
   (map (lambda (possibilities)&lt;br /&gt;
          (1- (vector-ref possibilities (random 11))))&lt;br /&gt;
        table))&lt;br /&gt;
&lt;br /&gt;
#(define (split-measures music)&lt;br /&gt;
   (let ((elements (ly:music-property&lt;br /&gt;
                     (ly:music-property music &#039;element)&lt;br /&gt;
                     &#039;elements)))&lt;br /&gt;
     (let loop ((elts (reverse elements))&lt;br /&gt;
                (measure &#039;())&lt;br /&gt;
                (measures &#039;()))&lt;br /&gt;
       (cond&lt;br /&gt;
        ((null? elts)&lt;br /&gt;
         (list-&amp;gt;vector measures))&lt;br /&gt;
        ((or (music-is-of-type? (car elts) &#039;bar-check) ;; until 2.25.5&lt;br /&gt;
             (music-is-of-type? (car elts) &#039;bar-check-event)) ;; since 2.25.6&lt;br /&gt;
         (let ((measure-music (make-sequential-music measure)))&lt;br /&gt;
           (loop (cdr elts) &#039;() (cons measure-music measures))))&lt;br /&gt;
        (else&lt;br /&gt;
         (loop (cdr elts) (cons (car elts) measure) measures))))))&lt;br /&gt;
&lt;br /&gt;
applyChoices =&lt;br /&gt;
#(define-music-function (music) (ly:music?)&lt;br /&gt;
   (let* ((measures (split-measures music))&lt;br /&gt;
          (chosen-measures&lt;br /&gt;
           (map (lambda (i) (vector-ref measures i))&lt;br /&gt;
                choices))&lt;br /&gt;
          (first-part (make-sequential-music (take chosen-measures 8)))&lt;br /&gt;
          (second-part (make-sequential-music (drop chosen-measures 8))))&lt;br /&gt;
     #{&lt;br /&gt;
       \repeat volta 2 { #first-part }&lt;br /&gt;
       \repeat volta 2 { #second-part }&lt;br /&gt;
     #}))&lt;br /&gt;
&lt;br /&gt;
\header {&lt;br /&gt;
  title = &amp;quot;Valse&amp;quot;&lt;br /&gt;
  composer = &amp;quot;Mozart&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
randomWaltz =&lt;br /&gt;
\keepWithTag generation&lt;br /&gt;
\new PianoStaff &amp;lt;&amp;lt;&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \time 3/8&lt;br /&gt;
    \applyChoices \rhData&lt;br /&gt;
  }&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \clef bass&lt;br /&gt;
    \applyChoices \lhData&lt;br /&gt;
  }&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \layout { }&lt;br /&gt;
  \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \midi { }&lt;br /&gt;
  \unfoldRepeats \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
% Uncomment to display the table of all possible measures (&amp;quot;Notentafel&amp;quot;)&lt;br /&gt;
%{&lt;br /&gt;
\score {&lt;br /&gt;
  \layout {&lt;br /&gt;
    \context {&lt;br /&gt;
      \Score&lt;br /&gt;
      barNumberVisibility = #all-bar-numbers-visible&lt;br /&gt;
      \override BarNumber.break-visibility = #end-of-line-invisible&lt;br /&gt;
      centerBarNumbers = ##t&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  \keepWithTag table &amp;lt;&amp;lt;&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \time 3/8&lt;br /&gt;
      \rhData&lt;br /&gt;
    }&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \clef bass&lt;br /&gt;
      \lhData&lt;br /&gt;
    }&lt;br /&gt;
  &amp;gt;&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
%}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Talk:Ripped,_torn_staff-lines&amp;diff=6258</id>
		<title>Talk:Ripped, torn staff-lines</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Talk:Ripped,_torn_staff-lines&amp;diff=6258"/>
		<updated>2026-01-29T16:27:58Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* zigzag */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== zigzag ==&lt;br /&gt;
&lt;br /&gt;
here in the wiki the zigzag lines seem to be omitted. The code itself does work. --[[User:Rudi Guggt|Rudi Guggt]] ([[User talk:Rudi Guggt|talk]]) 09:35, 29 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Ja, anscheinend funktionieren mehrere Dinge nicht, wie ich schon bei einem anderen Snippet angemerkt habe. Leider kann man keine Bilder hochladen, um zu illustrieren, wie es sein sollte. Der Bürokrat in diesem Wiki hat die Funktionalität dieses Wikis ziemlich stark eingeschränkt. [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 16:22, 29 January 2026 (UTC)&lt;br /&gt;
:This wiki uses SVG output, where &amp;lt;code&amp;gt;\postscript&amp;lt;/code&amp;gt; cannot work, as mentioned on [[PostScript lines]]. The snippet should be changed to use markup commands like &amp;lt;code&amp;gt;\path&amp;lt;/code&amp;gt;. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:27, 29 January 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6157</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6157"/>
		<updated>2026-01-11T13:57:23Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* Spam users */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;br /&gt;
::Thank you for your answer. You have a point with security issues, SyntaxHighlight needs Scribunto. There is no special language support for Lilypond anyway, I use Latex, better than nothing. Your installation has to offer proc open, otherwise Scribunto is not working. I have not found a single provider which allows this.&lt;br /&gt;
::Maybe I am missing something in my preferences, when editing I do not see anything that supports editing, not even the option to insert links, maybe it&#039;s because I don&#039;t use the visual editor, I like &amp;quot;pure&amp;quot; editing as it is in Lilypond. CharInsert offers support for Wiki syntax, including tags like &amp;amp;lt;pre&amp;gt;, all combinations of {} and so on.&lt;br /&gt;
::Greetings from Austria, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 03:17, 19 December 2025 (UTC)&lt;br /&gt;
:::[off-topic] Where in Austria?  Greetings from Kufstein :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:15, 19 December 2025 (UTC)&lt;br /&gt;
::::Niederösterreich, nordöstlich von Wien (Bezirk Gänserndorf) [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:21, 19 December 2025 (UTC)&lt;br /&gt;
:::I don&#039;t think SyntaxHighlight needs Scribunto. It uses Pygments, which is a Python (not Lua) library (of which I actually am technically a maintainer, although I&#039;ve been inactive lately by lack of time). It certainly needs something like &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt;, but this wiki doesn&#039;t use a &amp;quot;managed&amp;quot; MediaWiki install (where the provider installs things for you, à la &amp;quot;Wordpress in one click&amp;quot;), it&#039;s on a VPS on which I have root access and administrate things myself, so I can install and configure anything (and &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; is already being used to run LilyPond). The real problem is that the LilyPond code snippets are mostly added through a the special, non-standard parser tag &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and so the extension I wrote that defines this tag would need to support syntax highlighting.&lt;br /&gt;
:::Regarding the editor toolbar, it sounds like what you want is not CharInsert but [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor], which I&#039;ve just added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:15, 19 December 2025 (UTC)&lt;br /&gt;
::::PS: I also meant to write that Pygments supports LilyPond. (I implemented this a few years ago.) [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:26, 19 December 2025 (UTC)&lt;br /&gt;
:::::Apropos Pygments: I&#039;ve submitted a [https://github.com/pygments/pygments/pull/2974 PR] to update LilyPond support some time ago. [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:38, 19 December 2025 (UTC)&lt;br /&gt;
::::Thank you for installing this extension, this is definitely an improvement. CharInsert is a different animal. Root access is of course best, but you have to do much administration. Usually root access is very expensive when you need a provider. A long time ago I have written a Lilypond extension myself on a home server in my local network.&lt;br /&gt;
::::Just in case you are asking who I am, I wrote LSR 1040, 1042, 1043, 1044 (when I remember right) and was involved in 1066 and 1067. [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 19:34, 19 December 2025 (UTC)&lt;br /&gt;
:::::I&#039;ve discovered a potential reason for activating Scribunto: Right now, I&#039;m using the &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; MediaWiki API to download snippets for &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt;.  However, &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; doesn&#039;t expand templates.  This means that I have to call the &amp;lt;code&amp;gt;expandtemplates&amp;lt;/code&amp;gt; API, sending the unexpanded page to the Wiki server to get an expanded version back.&lt;br /&gt;
:::::The Skribunto interface provides [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#frame:preprocess &amp;lt;code&amp;gt;frame:preprocess&amp;lt;/code&amp;gt;], which seems to unify the abovementioned two calls into a single one (I haven&#039;t tested it). Maybe this can be configured to not use Lua, in case this simplifies things. What do you think? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:56, 1 January 2026 (UTC)&lt;br /&gt;
::::::I don&#039;t see a problem with one extra API call per page to expand templates. Also, the function you link is a Lua API, for use in Lua modules running on the wiki, so I don&#039;t get how you want to use it outside. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 22:02, 1 January 2026 (UTC)&lt;br /&gt;
:::::::OK, &amp;lt;code&amp;gt;expandtemplates&amp;lt;/code&amp;gt; it is then :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 23:30, 1 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MediaWiki variables for current stable and unstable LilyPond versions ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
what do you think about adding [https://www.mediawiki.org/wiki/Manual:Variable MediaWiki variables] that indicate the current stable and unstable LilyPond versions (without the ‘micro’ value)?  I suggest&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLE}}&amp;lt;/nowiki&amp;gt; → 2.24&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVEL}}&amp;lt;/nowiki&amp;gt; → 2.25&lt;br /&gt;
&lt;br /&gt;
and maybe&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLEDOC}} → https://lilypond.org/docs/{{LILYSTABLE}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVELDOC}} → https://lilypond.org/docs/{{LILYDEVEL}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Such variables would reduce maintainance of yet-to-be-written templates.  In particular, I would like to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Template:convert-ly&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: it would tell users that the snippet in question needs conversion with &amp;lt;code&amp;gt;convert-ly&amp;lt;/code&amp;gt; (showing a link to the documentation) for newer versions. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:46, 28 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Sounds OK to me. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:34, 28 December 2025 (UTC)&lt;br /&gt;
::Great!  However, it seems to me that you have to add some piece of PHP code to do that...  This means I cannot do it by myself. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 07:00, 30 December 2025 (UTC)&lt;br /&gt;
:::Ah, do you need them to be variables as opposed to templates? [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:30, 30 December 2025 (UTC)&lt;br /&gt;
::::Do I?  I honestly don&#039;t know.  Please advise. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 12:36, 30 December 2025 (UTC)&lt;br /&gt;
:::::Please try templates first. Seems to me that the use case for variables is when you want programmatically generated stuff like the current date. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 19:40, 30 December 2025 (UTC)&lt;br /&gt;
::::::It seems to work fine, thanks!  However, for more serious template handling I think that the [https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions ParserFunctions] extension would be necessary. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 06:43, 31 December 2025 (UTC)&lt;br /&gt;
:::::::Added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:01, 31 December 2025 (UTC)&lt;br /&gt;
::::::::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:41, 1 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Spam users ==&lt;br /&gt;
&lt;br /&gt;
Jean, what shall we do with spam users like User:JoleenStallings?  Shall we remove them immediately?  While they don&#039;t do harm to the Wiki, they are still polluting the namespace... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:21, 11 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Yes. I&#039;ve just removed all their user pages and blocked them and their IP addresses. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 13:57, 11 January 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Demonstrating_LilyPond_support_for_figured_bass&amp;diff=6111</id>
		<title>Demonstrating LilyPond support for figured bass</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Demonstrating_LilyPond_support_for_figured_bass&amp;diff=6111"/>
		<updated>2026-01-08T13:20:30Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This snippet demonstrates how figured bass is supported in LilyPond. In addition to the numerous BassFigure objects available, you can always use text markups instead to get precisely what you need.&amp;lt;br /&amp;gt;&lt;br /&gt;
All of these examples are to be found in the relevant sections of the Notation Reference, where you will learn how to add a figured bass with simple but powerful notation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;&amp;lt;&lt;br /&gt;
  \new Voice {&lt;br /&gt;
    \clef bass&lt;br /&gt;
    dis4 c d ais&lt;br /&gt;
    g fis e a&lt;br /&gt;
    r gis d b,&lt;br /&gt;
    f,! e c c&lt;br /&gt;
    c1&lt;br /&gt;
  }&lt;br /&gt;
  \figures {&lt;br /&gt;
    &amp;lt; 6 &amp;gt;4 &amp;lt; 7\+ &amp;gt;8 &amp;lt; 6+ [_!] &amp;gt;&lt;br /&gt;
    &amp;lt; 6 &amp;gt;4 &amp;lt;6 5 [3+] &amp;gt;&lt;br /&gt;
    &amp;lt; _ &amp;gt;4 &amp;lt; 6 5/&amp;gt;4&lt;br /&gt;
    &amp;lt;4- 6+ 7!&amp;gt; &amp;lt;5++&amp;gt; &amp;lt;3--&amp;gt; &amp;lt;7/&amp;gt; r &amp;lt;6\+ 5/&amp;gt; &lt;br /&gt;
    &amp;lt; [4 6] 8 [_! 12] &amp;gt;&lt;br /&gt;
    &amp;lt; 5 \markup { \tiny \number 6 \super (1) } &amp;gt;&lt;br /&gt;
    \set useBassFigureExtenders = ##t&lt;br /&gt;
    &amp;lt;4 6&amp;gt; &amp;lt;3 6&amp;gt; &amp;lt;3 7&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Ancient notation]]&lt;br /&gt;
[[Category:Simultaneous notes]]&lt;br /&gt;
[[Category:Chords]]&lt;br /&gt;
[[Category:Keyboards]]&lt;br /&gt;
[[Category:Fretted strings]]&lt;br /&gt;
[[Category:Ancient notation]]&lt;br /&gt;
[[Category:Snippet]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Talk:Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6102</id>
		<title>Talk:Mozart’s Musikalisches Würfelspiel</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Talk:Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6102"/>
		<updated>2026-01-07T19:34:12Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* Does not work with 2.25 */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Volte in wrong order? ==&lt;br /&gt;
&lt;br /&gt;
It seems to me that the prima volta bar should be seconda volta and vice versa. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:08, 7 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Indeed! Fixed, thanks. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:26, 7 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Does not work with 2.25 ==&lt;br /&gt;
&lt;br /&gt;
What changed? Compiling with 2.25 produces an error message [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 18:52, 7 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed, thanks. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 19:34, 7 January 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6101</id>
		<title>Mozart’s Musikalisches Würfelspiel</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6101"/>
		<updated>2026-01-07T19:33:51Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Make it work in 2.25&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mozart&#039;s [https://en.wikipedia.org/wiki/Musikalisches_W%C3%BCrfelspiel Musikalisches Würfelspiel] (score [https://imslp.org/wiki/Musikalisches_W%C3%BCrfelspiel,_K.516f_(Mozart,_Wolfgang_Amadeus) available on IMSLP]) is a system to create a waltz by choosing each measure from a list of possibilities, with 759,499,667,166,482 possible waltzes in total. This is an implementation of the Würfelspiel using a bit of Scheme code to select the measures at random, producing a different waltz at each compilation. The code is an instructive example of creating music functions and manipulating music in Scheme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
rhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { &amp;lt;g&#039; b d g&amp;gt;4 r8 }&lt;br /&gt;
    \volta 2 { &amp;lt;g b d g&amp;gt;4 r8 }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;g b d g&amp;gt;4 r8&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { g,8 g&#039;16 f! e d }&lt;br /&gt;
    \volta 2 { g,8 b&#039;16 g fis e }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;&amp;lt; { g,8^&amp;quot;Volta 2&amp;quot; b&#039;16 g fis e } \\ { g,8_&amp;quot;Volta 1&amp;quot; g&#039;16 f! e d } &amp;gt;&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
rhData = \relative {&lt;br /&gt;
  | f&#039;&#039;8 d g&lt;br /&gt;
  | a,8 fis16 g b g&#039;&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g8 d4\trill&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c e g c g&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt; r8&lt;br /&gt;
  | b16 a b c d b&lt;br /&gt;
  | e16 c b a g fis&lt;br /&gt;
  | &amp;lt;e c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;8( g e)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 g16 e c8&lt;br /&gt;
  | a&#039;8( fis d)&lt;br /&gt;
  | c16 g c e g, c&lt;br /&gt;
  | g8( c e)&lt;br /&gt;
  | e16 c e8 g&lt;br /&gt;
  | g8 b16 d d,8&lt;br /&gt;
  | c16 e g d a fis&#039;&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;16 e d e f g&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d,16 fis a d fis a&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;8 8 8&lt;br /&gt;
  | f16 e f d c b&lt;br /&gt;
  | fis&#039;16 d a a&#039; fis d&lt;br /&gt;
  | b16 d g d b8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16[ c g8] e&#039;&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 c d b g8&lt;br /&gt;
  | a8 d fis&lt;br /&gt;
  | a,16 e&#039; d g fis a&lt;br /&gt;
  | g16 b g d b8&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 g, g&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | c16 b c e g,8&lt;br /&gt;
  | b16 c d b a g&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | a8 f&#039;16 d a b&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | g&#039;&#039;8 b16 g d b&lt;br /&gt;
  | g&#039;8 g16 d b&#039;8&lt;br /&gt;
  | e,8 c16 e g c&lt;br /&gt;
  | e,8( c g)&lt;br /&gt;
  | c8 e16 c g8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16( cis) d f g, b&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 16 &amp;lt;d f&amp;gt; &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;8 b d,&lt;br /&gt;
  | d16 b g8 r8&lt;br /&gt;
  | e&#039;8 c g&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | c8 e16 c g&#039;8&lt;br /&gt;
  | e16 c b g a fis&lt;br /&gt;
  | e&#039;16 c b c g8&lt;br /&gt;
  | e&#039;16 g c g e c&lt;br /&gt;
  | d16 a d8 fis&lt;br /&gt;
  | fis8 a fis&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | g&#039;8 b16 g d g&lt;br /&gt;
  | g8( e c)&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | g16 b d b g8&lt;br /&gt;
  | f16 e d c b d&lt;br /&gt;
  | g8 e c&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | g&#039;16 b g8 d&lt;br /&gt;
  | c8 c, r&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | d8 a\turn fis&#039;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d16[ b g8] g&#039;&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | c8 e g,&lt;br /&gt;
  | d&#039;8 d16 g b8&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g16 d g b g d&lt;br /&gt;
  | f16 e d8 g&lt;br /&gt;
  | fis16 a d a fis a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;b, d&amp;gt;8 g&#039;16 b d,8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | fis8 a d,&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | fis16 d a8 fis&#039;&lt;br /&gt;
  | c16 e c g e8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | a,8 d16 c b a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e&#039;8( g c)&lt;br /&gt;
  | d,16 f d f b, d&lt;br /&gt;
  | &amp;lt;b d&amp;gt;16( &amp;lt;a c&amp;gt;) q( &amp;lt;g b&amp;gt;) q( &amp;lt;fis a&amp;gt;)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;8 d b&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 q q&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16 f a f d b&lt;br /&gt;
  | d16 a d fis a fis&lt;br /&gt;
  | e16 a g b fis a&lt;br /&gt;
  | e16 c g&#039; e c&#039; g&lt;br /&gt;
  | d&#039;8 a16 fis d a&lt;br /&gt;
  | g&#039;8 b16 g d8&lt;br /&gt;
  | g16 fis g b d,8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;16 e d b g8&lt;br /&gt;
  | c16 g c e g &amp;lt;c, e&amp;gt;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | b8 d g&lt;br /&gt;
  | a16 g fis g d8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt;16 &amp;lt;g b&amp;gt; g8&lt;br /&gt;
  | d&#039;8 g16 d b d&lt;br /&gt;
  | a16 e&#039; &amp;lt;b d&amp;gt; &amp;lt;a c&amp;gt; &amp;lt;g b&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | fis&#039;8 fis16 d a&#039;8&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | &amp;lt;a, d fis&amp;gt;8 fis&#039;4\trill&lt;br /&gt;
  | g16 b g b d,8&lt;br /&gt;
  | a8 a16 d fis8&lt;br /&gt;
  | d16 e f d c b&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 d16 b g8&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | d16 f a, d b d&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 &amp;lt;d&#039; fis&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | e16 c&#039; b g a fis&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | f16 d a8 b&lt;br /&gt;
  | &amp;lt;g c e&amp;gt;8 e&#039;4\trill&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | d16 a fis&#039; d a&#039; fis&lt;br /&gt;
  | d16 cis d fis a fis&lt;br /&gt;
  | g16 b g d b g&lt;br /&gt;
  | c16 g e&#039; c g&#039;8&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | b,8 d16 b a g&lt;br /&gt;
  | e&#039;16 g d c b a&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 8 8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | g16 fis g d b g&lt;br /&gt;
  | d&#039;8 g,4&lt;br /&gt;
  | d&#039;8( b g)&lt;br /&gt;
  | d&#039;16 b&#039; g d b8&lt;br /&gt;
  | c8 c16 d e8&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | e16 g d g a, fis&#039;&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | b16 c d e f d&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | f16 a a,8 b16 d&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c b d g8&lt;br /&gt;
  | a16 g b g d g&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhData = \relative {&lt;br /&gt;
  | f8 d g&lt;br /&gt;
  | &amp;lt;b, g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g16 b g&#039;8 b,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;4 g,8&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 8 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | f16 e d e f g&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | c16 e g e c&#039; c,&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 r8&lt;br /&gt;
  | g&#039;4 g,8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c a&#039;&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;b&#039; d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | b,16 d g d b g&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | q4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | q16 g q g q g&lt;br /&gt;
  | q16 g q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;&amp;lt; { a&#039;8 fis d } \\ { d8 d c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c4 c,8&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 &amp;lt;b d&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;16 e d8 g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | c,8 g c,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c a&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;f a&amp;gt;4 &amp;lt;g d&#039;&amp;gt;8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;g b&amp;gt;4 r8&lt;br /&gt;
  | g8 8 8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | g&#039;8 g, r&lt;br /&gt;
  | e&#039;4 e16 c&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;8 g, r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;&amp;lt; { d&#039;8 d d } \\ { c8 c c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;&amp;lt; e4 \\ c4 &amp;gt;&amp;gt; r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | d,16 d&#039; cis d c d&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c fis&amp;gt;8 8 &amp;lt;c a&#039;&amp;gt;&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 g8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,8 8 8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,16 b c d e fis&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;g&#039; g&#039;&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | g8 g, r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table = #&#039;(&lt;br /&gt;
#(96 32 69 40 148 104 152 119 98 3 54)&lt;br /&gt;
#(22 6 95 17 74 157 60 84 142 87 130)&lt;br /&gt;
#(141 128 158 113 163 27 171 114 42 165 10)&lt;br /&gt;
#(41 63 13 85 45 167 53 50 156 61 103)&lt;br /&gt;
#(105 146 153 161 80 154 99 140 75 135 28)&lt;br /&gt;
#(122 46 55 2 97 68 133 86 129 47 37)&lt;br /&gt;
#(11 134 110 159 36 118 21 169 62 147 106)&lt;br /&gt;
#(30 81 24 100 107 91 127 94 123 33 5)&lt;br /&gt;
#(70 117 66 90 25 138 16 120 65 102 35)&lt;br /&gt;
#(121 39 139 176 143 71 155 88 77 4 20)&lt;br /&gt;
#(26 126 15 7 64 150 57 48 19 31 108)&lt;br /&gt;
#(9 56 132 34 125 29 175 166 82 164 92)&lt;br /&gt;
#(112 174 73 67 76 101 43 51 137 144 12)&lt;br /&gt;
#(49 18 58 160 136 162 168 115 38 59 124)&lt;br /&gt;
#(109 116 145 52 1 23 89 72 149 173 44)&lt;br /&gt;
#(14 83 79 170 93 151 172 111 8 78 131)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
#(define choices&lt;br /&gt;
   (map (lambda (possibilities)&lt;br /&gt;
          (1- (vector-ref possibilities (random 11))))&lt;br /&gt;
        table))&lt;br /&gt;
&lt;br /&gt;
#(define (split-measures music)&lt;br /&gt;
   (let ((elements (ly:music-property&lt;br /&gt;
                     (ly:music-property music &#039;element)&lt;br /&gt;
                     &#039;elements)))&lt;br /&gt;
     (let loop ((elts (reverse elements))&lt;br /&gt;
                (measure &#039;())&lt;br /&gt;
                (measures &#039;()))&lt;br /&gt;
       (cond&lt;br /&gt;
        ((null? elts)&lt;br /&gt;
         (list-&amp;gt;vector measures))&lt;br /&gt;
        ((or (music-is-of-type? (car elts) &#039;bar-check) ;; until 2.25.5&lt;br /&gt;
             (music-is-of-type? (car elts) &#039;bar-check-event)) ;; since 2.25.6&lt;br /&gt;
         (let ((measure-music (make-sequential-music measure)))&lt;br /&gt;
           (loop (cdr elts) &#039;() (cons measure-music measures))))&lt;br /&gt;
        (else&lt;br /&gt;
         (loop (cdr elts) (cons (car elts) measure) measures))))))&lt;br /&gt;
&lt;br /&gt;
applyChoices =&lt;br /&gt;
#(define-music-function (music) (ly:music?)&lt;br /&gt;
   (let* ((measures (split-measures music))&lt;br /&gt;
          (chosen-measures&lt;br /&gt;
           (map (lambda (i) (vector-ref measures i))&lt;br /&gt;
                choices))&lt;br /&gt;
          (first-part (make-sequential-music (take chosen-measures 8)))&lt;br /&gt;
          (second-part (make-sequential-music (drop chosen-measures 8))))&lt;br /&gt;
     #{&lt;br /&gt;
       \repeat volta 2 { #first-part }&lt;br /&gt;
       \repeat volta 2 { #second-part }&lt;br /&gt;
     #}))&lt;br /&gt;
&lt;br /&gt;
\header {&lt;br /&gt;
  title = &amp;quot;Valse&amp;quot;&lt;br /&gt;
  composer = &amp;quot;Mozart&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
randomWaltz =&lt;br /&gt;
\keepWithTag generation&lt;br /&gt;
\new PianoStaff &amp;lt;&amp;lt;&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \time 3/8&lt;br /&gt;
    \applyChoices \rhData&lt;br /&gt;
  }&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \clef bass&lt;br /&gt;
    \applyChoices \lhData&lt;br /&gt;
  }&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \layout { }&lt;br /&gt;
  \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \midi { }&lt;br /&gt;
  \unfoldRepeats \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
% Uncomment to display the table of all possible measures (&amp;quot;Notentafel&amp;quot;)&lt;br /&gt;
%{&lt;br /&gt;
\score {&lt;br /&gt;
  \layout {&lt;br /&gt;
    \context {&lt;br /&gt;
      \Score&lt;br /&gt;
      barNumberVisibility = #all-bar-numbers-visible&lt;br /&gt;
      \override BarNumber.break-visibility = #end-of-line-invisible&lt;br /&gt;
      centerBarNumbers = ##t&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  \keepWithTag table &amp;lt;&amp;lt;&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \time 3/8&lt;br /&gt;
      \rhData&lt;br /&gt;
    }&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \clef bass&lt;br /&gt;
      \lhData&lt;br /&gt;
    }&lt;br /&gt;
  &amp;gt;&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
%}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Talk:Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6098</id>
		<title>Talk:Mozart’s Musikalisches Würfelspiel</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Talk:Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6098"/>
		<updated>2026-01-07T15:26:42Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* Volte in wrong order? */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Volte in wrong order? ==&lt;br /&gt;
&lt;br /&gt;
It seems to me that the prima volta bar should be seconda volta and vice versa. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:08, 7 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Indeed! Fixed, thanks. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:26, 7 January 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6097</id>
		<title>Mozart’s Musikalisches Würfelspiel</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6097"/>
		<updated>2026-01-07T15:26:11Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mozart&#039;s [https://en.wikipedia.org/wiki/Musikalisches_W%C3%BCrfelspiel Musikalisches Würfelspiel] (score [https://imslp.org/wiki/Musikalisches_W%C3%BCrfelspiel,_K.516f_(Mozart,_Wolfgang_Amadeus) available on IMSLP]) is a system to create a waltz by choosing each measure from a list of possibilities, with 759,499,667,166,482 possible waltzes in total. This is an implementation of the Würfelspiel using a bit of Scheme code to select the measures at random, producing a different waltz at each compilation. The code is an instructive example of creating music functions and manipulating music in Scheme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
rhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { &amp;lt;g&#039; b d g&amp;gt;4 r8 }&lt;br /&gt;
    \volta 2 { &amp;lt;g b d g&amp;gt;4 r8 }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;g b d g&amp;gt;4 r8&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { g,8 g&#039;16 f! e d }&lt;br /&gt;
    \volta 2 { g,8 b&#039;16 g fis e }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;&amp;lt; { g,8^&amp;quot;Volta 2&amp;quot; b&#039;16 g fis e } \\ { g,8_&amp;quot;Volta 1&amp;quot; g&#039;16 f! e d } &amp;gt;&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
rhData = \relative {&lt;br /&gt;
  | f&#039;&#039;8 d g&lt;br /&gt;
  | a,8 fis16 g b g&#039;&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g8 d4\trill&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c e g c g&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt; r8&lt;br /&gt;
  | b16 a b c d b&lt;br /&gt;
  | e16 c b a g fis&lt;br /&gt;
  | &amp;lt;e c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;8( g e)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 g16 e c8&lt;br /&gt;
  | a&#039;8( fis d)&lt;br /&gt;
  | c16 g c e g, c&lt;br /&gt;
  | g8( c e)&lt;br /&gt;
  | e16 c e8 g&lt;br /&gt;
  | g8 b16 d d,8&lt;br /&gt;
  | c16 e g d a fis&#039;&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;16 e d e f g&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d,16 fis a d fis a&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;8 8 8&lt;br /&gt;
  | f16 e f d c b&lt;br /&gt;
  | fis&#039;16 d a a&#039; fis d&lt;br /&gt;
  | b16 d g d b8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16[ c g8] e&#039;&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 c d b g8&lt;br /&gt;
  | a8 d fis&lt;br /&gt;
  | a,16 e&#039; d g fis a&lt;br /&gt;
  | g16 b g d b8&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 g, g&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | c16 b c e g,8&lt;br /&gt;
  | b16 c d b a g&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | a8 f&#039;16 d a b&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | g&#039;&#039;8 b16 g d b&lt;br /&gt;
  | g&#039;8 g16 d b&#039;8&lt;br /&gt;
  | e,8 c16 e g c&lt;br /&gt;
  | e,8( c g)&lt;br /&gt;
  | c8 e16 c g8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16( cis) d f g, b&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 16 &amp;lt;d f&amp;gt; &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;8 b d,&lt;br /&gt;
  | d16 b g8 r8&lt;br /&gt;
  | e&#039;8 c g&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | c8 e16 c g&#039;8&lt;br /&gt;
  | e16 c b g a fis&lt;br /&gt;
  | e&#039;16 c b c g8&lt;br /&gt;
  | e&#039;16 g c g e c&lt;br /&gt;
  | d16 a d8 fis&lt;br /&gt;
  | fis8 a fis&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | g&#039;8 b16 g d g&lt;br /&gt;
  | g8( e c)&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | g16 b d b g8&lt;br /&gt;
  | f16 e d c b d&lt;br /&gt;
  | g8 e c&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | g&#039;16 b g8 d&lt;br /&gt;
  | c8 c, r&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | d8 a\turn fis&#039;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d16[ b g8] g&#039;&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | c8 e g,&lt;br /&gt;
  | d&#039;8 d16 g b8&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g16 d g b g d&lt;br /&gt;
  | f16 e d8 g&lt;br /&gt;
  | fis16 a d a fis a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;b, d&amp;gt;8 g&#039;16 b d,8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | fis8 a d,&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | fis16 d a8 fis&#039;&lt;br /&gt;
  | c16 e c g e8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | a,8 d16 c b a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e&#039;8( g c)&lt;br /&gt;
  | d,16 f d f b, d&lt;br /&gt;
  | &amp;lt;b d&amp;gt;16( &amp;lt;a c&amp;gt;) q( &amp;lt;g b&amp;gt;) q( &amp;lt;fis a&amp;gt;)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;8 d b&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 q q&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16 f a f d b&lt;br /&gt;
  | d16 a d fis a fis&lt;br /&gt;
  | e16 a g b fis a&lt;br /&gt;
  | e16 c g&#039; e c&#039; g&lt;br /&gt;
  | d&#039;8 a16 fis d a&lt;br /&gt;
  | g&#039;8 b16 g d8&lt;br /&gt;
  | g16 fis g b d,8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;16 e d b g8&lt;br /&gt;
  | c16 g c e g &amp;lt;c, e&amp;gt;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | b8 d g&lt;br /&gt;
  | a16 g fis g d8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt;16 &amp;lt;g b&amp;gt; g8&lt;br /&gt;
  | d&#039;8 g16 d b d&lt;br /&gt;
  | a16 e&#039; &amp;lt;b d&amp;gt; &amp;lt;a c&amp;gt; &amp;lt;g b&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | fis&#039;8 fis16 d a&#039;8&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | &amp;lt;a, d fis&amp;gt;8 fis&#039;4\trill&lt;br /&gt;
  | g16 b g b d,8&lt;br /&gt;
  | a8 a16 d fis8&lt;br /&gt;
  | d16 e f d c b&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 d16 b g8&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | d16 f a, d b d&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 &amp;lt;d&#039; fis&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | e16 c&#039; b g a fis&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | f16 d a8 b&lt;br /&gt;
  | &amp;lt;g c e&amp;gt;8 e&#039;4\trill&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | d16 a fis&#039; d a&#039; fis&lt;br /&gt;
  | d16 cis d fis a fis&lt;br /&gt;
  | g16 b g d b g&lt;br /&gt;
  | c16 g e&#039; c g&#039;8&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | b,8 d16 b a g&lt;br /&gt;
  | e&#039;16 g d c b a&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 8 8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | g16 fis g d b g&lt;br /&gt;
  | d&#039;8 g,4&lt;br /&gt;
  | d&#039;8( b g)&lt;br /&gt;
  | d&#039;16 b&#039; g d b8&lt;br /&gt;
  | c8 c16 d e8&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | e16 g d g a, fis&#039;&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | b16 c d e f d&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | f16 a a,8 b16 d&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c b d g8&lt;br /&gt;
  | a16 g b g d g&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhData = \relative {&lt;br /&gt;
  | f8 d g&lt;br /&gt;
  | &amp;lt;b, g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g16 b g&#039;8 b,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;4 g,8&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 8 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | f16 e d e f g&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | c16 e g e c&#039; c,&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 r8&lt;br /&gt;
  | g&#039;4 g,8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c a&#039;&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;b&#039; d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | b,16 d g d b g&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | q4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | q16 g q g q g&lt;br /&gt;
  | q16 g q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;&amp;lt; { a&#039;8 fis d } \\ { d8 d c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c4 c,8&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 &amp;lt;b d&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;16 e d8 g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | c,8 g c,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c a&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;f a&amp;gt;4 &amp;lt;g d&#039;&amp;gt;8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;g b&amp;gt;4 r8&lt;br /&gt;
  | g8 8 8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | g&#039;8 g, r&lt;br /&gt;
  | e&#039;4 e16 c&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;8 g, r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;&amp;lt; { d&#039;8 d d } \\ { c8 c c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;&amp;lt; e4 \\ c4 &amp;gt;&amp;gt; r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | d,16 d&#039; cis d c d&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c fis&amp;gt;8 8 &amp;lt;c a&#039;&amp;gt;&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 g8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,8 8 8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,16 b c d e fis&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;g&#039; g&#039;&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | g8 g, r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table = #&#039;(&lt;br /&gt;
#(96 32 69 40 148 104 152 119 98 3 54)&lt;br /&gt;
#(22 6 95 17 74 157 60 84 142 87 130)&lt;br /&gt;
#(141 128 158 113 163 27 171 114 42 165 10)&lt;br /&gt;
#(41 63 13 85 45 167 53 50 156 61 103)&lt;br /&gt;
#(105 146 153 161 80 154 99 140 75 135 28)&lt;br /&gt;
#(122 46 55 2 97 68 133 86 129 47 37)&lt;br /&gt;
#(11 134 110 159 36 118 21 169 62 147 106)&lt;br /&gt;
#(30 81 24 100 107 91 127 94 123 33 5)&lt;br /&gt;
#(70 117 66 90 25 138 16 120 65 102 35)&lt;br /&gt;
#(121 39 139 176 143 71 155 88 77 4 20)&lt;br /&gt;
#(26 126 15 7 64 150 57 48 19 31 108)&lt;br /&gt;
#(9 56 132 34 125 29 175 166 82 164 92)&lt;br /&gt;
#(112 174 73 67 76 101 43 51 137 144 12)&lt;br /&gt;
#(49 18 58 160 136 162 168 115 38 59 124)&lt;br /&gt;
#(109 116 145 52 1 23 89 72 149 173 44)&lt;br /&gt;
#(14 83 79 170 93 151 172 111 8 78 131)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
#(define choices&lt;br /&gt;
   (map (lambda (possibilities)&lt;br /&gt;
          (1- (vector-ref possibilities (random 11))))&lt;br /&gt;
        table))&lt;br /&gt;
&lt;br /&gt;
#(define (split-measures music)&lt;br /&gt;
   (let ((elements (ly:music-property&lt;br /&gt;
                     (ly:music-property music &#039;element)&lt;br /&gt;
                     &#039;elements)))&lt;br /&gt;
     (let loop ((elts (reverse elements))&lt;br /&gt;
                (measure &#039;())&lt;br /&gt;
                (measures &#039;()))&lt;br /&gt;
       (cond&lt;br /&gt;
        ((null? elts)&lt;br /&gt;
         (list-&amp;gt;vector measures))&lt;br /&gt;
        ((music-is-of-type? (car elts) &#039;bar-check)&lt;br /&gt;
         (let ((measure-music (make-sequential-music measure)))&lt;br /&gt;
           (loop (cdr elts) &#039;() (cons measure-music measures))))&lt;br /&gt;
        (else&lt;br /&gt;
         (loop (cdr elts) (cons (car elts) measure) measures))))))&lt;br /&gt;
&lt;br /&gt;
applyChoices =&lt;br /&gt;
#(define-music-function (music) (ly:music?)&lt;br /&gt;
   (let* ((measures (split-measures music))&lt;br /&gt;
          (chosen-measures&lt;br /&gt;
           (map (lambda (i) (vector-ref measures i))&lt;br /&gt;
                choices))&lt;br /&gt;
          (first-part (make-sequential-music (take chosen-measures 8)))&lt;br /&gt;
          (second-part (make-sequential-music (drop chosen-measures 8))))&lt;br /&gt;
     #{&lt;br /&gt;
       \repeat volta 2 { #first-part }&lt;br /&gt;
       \repeat volta 2 { #second-part }&lt;br /&gt;
     #}))&lt;br /&gt;
&lt;br /&gt;
\header {&lt;br /&gt;
  title = &amp;quot;Valse&amp;quot;&lt;br /&gt;
  composer = &amp;quot;Mozart&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
randomWaltz =&lt;br /&gt;
\keepWithTag generation&lt;br /&gt;
\new PianoStaff &amp;lt;&amp;lt;&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \time 3/8&lt;br /&gt;
    \applyChoices \rhData&lt;br /&gt;
  }&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \clef bass&lt;br /&gt;
    \applyChoices \lhData&lt;br /&gt;
  }&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \layout { }&lt;br /&gt;
  \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \midi { }&lt;br /&gt;
  \unfoldRepeats \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
% Uncomment to display the table of all possible measures (&amp;quot;Notentafel&amp;quot;)&lt;br /&gt;
%{&lt;br /&gt;
\score {&lt;br /&gt;
  \layout {&lt;br /&gt;
    \context {&lt;br /&gt;
      \Score&lt;br /&gt;
      barNumberVisibility = #all-bar-numbers-visible&lt;br /&gt;
      \override BarNumber.break-visibility = #end-of-line-invisible&lt;br /&gt;
      centerBarNumbers = ##t&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  \keepWithTag table &amp;lt;&amp;lt;&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \time 3/8&lt;br /&gt;
      \rhData&lt;br /&gt;
    }&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \clef bass&lt;br /&gt;
      \lhData&lt;br /&gt;
    }&lt;br /&gt;
  &amp;gt;&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
%}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6096</id>
		<title>Mozart’s Musikalisches Würfelspiel</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6096"/>
		<updated>2026-01-07T15:24:23Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Fix volte being swapped around, thanks Werner&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mozart&#039;s [https://en.wikipedia.org/wiki/Musikalisches_W%C3%BCrfelspiel Musikalisches Würfelspiel] (score [https://imslp.org/wiki/Musikalisches_W%C3%BCrfelspiel,_K.516f_(Mozart,_Wolfgang_Amadeus) available on IMSLP]) is a system to create a waltz by choosing each measure from a list of possibilities, with 759,499,667,166,482 possible waltzes in total. This is an implementation of the Würfelspiel using a bit of Scheme code to select the measures at random, producing a different waltz at each compilation. The code is an instructive example of creating music functions and manipulating music in Scheme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
rhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { &amp;lt;g&#039; b d g&amp;gt;4 r8 }&lt;br /&gt;
    \volta 2 { &amp;lt;g b d g&amp;gt;4 r8 }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;g b d g&amp;gt;4 r8&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { g,8 g&#039;16 f! e d }&lt;br /&gt;
    \volta 2 { g,8 b&#039;16 g fis e }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;&amp;lt; { g,8_&amp;quot;Volta 1&amp;quot; g&#039;16 f! e d } \\ { g,8^&amp;quot;Volta 2&amp;quot; b&#039;16 g fis e } &amp;gt;&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
rhData = \relative {&lt;br /&gt;
  | f&#039;&#039;8 d g&lt;br /&gt;
  | a,8 fis16 g b g&#039;&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g8 d4\trill&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c e g c g&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt; r8&lt;br /&gt;
  | b16 a b c d b&lt;br /&gt;
  | e16 c b a g fis&lt;br /&gt;
  | &amp;lt;e c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;8( g e)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 g16 e c8&lt;br /&gt;
  | a&#039;8( fis d)&lt;br /&gt;
  | c16 g c e g, c&lt;br /&gt;
  | g8( c e)&lt;br /&gt;
  | e16 c e8 g&lt;br /&gt;
  | g8 b16 d d,8&lt;br /&gt;
  | c16 e g d a fis&#039;&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;16 e d e f g&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d,16 fis a d fis a&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;8 8 8&lt;br /&gt;
  | f16 e f d c b&lt;br /&gt;
  | fis&#039;16 d a a&#039; fis d&lt;br /&gt;
  | b16 d g d b8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16[ c g8] e&#039;&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 c d b g8&lt;br /&gt;
  | a8 d fis&lt;br /&gt;
  | a,16 e&#039; d g fis a&lt;br /&gt;
  | g16 b g d b8&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 g, g&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | c16 b c e g,8&lt;br /&gt;
  | b16 c d b a g&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | a8 f&#039;16 d a b&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | g&#039;&#039;8 b16 g d b&lt;br /&gt;
  | g&#039;8 g16 d b&#039;8&lt;br /&gt;
  | e,8 c16 e g c&lt;br /&gt;
  | e,8( c g)&lt;br /&gt;
  | c8 e16 c g8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16( cis) d f g, b&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 16 &amp;lt;d f&amp;gt; &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;8 b d,&lt;br /&gt;
  | d16 b g8 r8&lt;br /&gt;
  | e&#039;8 c g&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | c8 e16 c g&#039;8&lt;br /&gt;
  | e16 c b g a fis&lt;br /&gt;
  | e&#039;16 c b c g8&lt;br /&gt;
  | e&#039;16 g c g e c&lt;br /&gt;
  | d16 a d8 fis&lt;br /&gt;
  | fis8 a fis&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | g&#039;8 b16 g d g&lt;br /&gt;
  | g8( e c)&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | g16 b d b g8&lt;br /&gt;
  | f16 e d c b d&lt;br /&gt;
  | g8 e c&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | g&#039;16 b g8 d&lt;br /&gt;
  | c8 c, r&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | d8 a\turn fis&#039;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d16[ b g8] g&#039;&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | c8 e g,&lt;br /&gt;
  | d&#039;8 d16 g b8&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g16 d g b g d&lt;br /&gt;
  | f16 e d8 g&lt;br /&gt;
  | fis16 a d a fis a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;b, d&amp;gt;8 g&#039;16 b d,8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | fis8 a d,&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | fis16 d a8 fis&#039;&lt;br /&gt;
  | c16 e c g e8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | a,8 d16 c b a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e&#039;8( g c)&lt;br /&gt;
  | d,16 f d f b, d&lt;br /&gt;
  | &amp;lt;b d&amp;gt;16( &amp;lt;a c&amp;gt;) q( &amp;lt;g b&amp;gt;) q( &amp;lt;fis a&amp;gt;)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;8 d b&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 q q&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16 f a f d b&lt;br /&gt;
  | d16 a d fis a fis&lt;br /&gt;
  | e16 a g b fis a&lt;br /&gt;
  | e16 c g&#039; e c&#039; g&lt;br /&gt;
  | d&#039;8 a16 fis d a&lt;br /&gt;
  | g&#039;8 b16 g d8&lt;br /&gt;
  | g16 fis g b d,8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;16 e d b g8&lt;br /&gt;
  | c16 g c e g &amp;lt;c, e&amp;gt;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | b8 d g&lt;br /&gt;
  | a16 g fis g d8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt;16 &amp;lt;g b&amp;gt; g8&lt;br /&gt;
  | d&#039;8 g16 d b d&lt;br /&gt;
  | a16 e&#039; &amp;lt;b d&amp;gt; &amp;lt;a c&amp;gt; &amp;lt;g b&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | fis&#039;8 fis16 d a&#039;8&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | &amp;lt;a, d fis&amp;gt;8 fis&#039;4\trill&lt;br /&gt;
  | g16 b g b d,8&lt;br /&gt;
  | a8 a16 d fis8&lt;br /&gt;
  | d16 e f d c b&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 d16 b g8&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | d16 f a, d b d&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 &amp;lt;d&#039; fis&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | e16 c&#039; b g a fis&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | f16 d a8 b&lt;br /&gt;
  | &amp;lt;g c e&amp;gt;8 e&#039;4\trill&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | d16 a fis&#039; d a&#039; fis&lt;br /&gt;
  | d16 cis d fis a fis&lt;br /&gt;
  | g16 b g d b g&lt;br /&gt;
  | c16 g e&#039; c g&#039;8&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | b,8 d16 b a g&lt;br /&gt;
  | e&#039;16 g d c b a&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 8 8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | g16 fis g d b g&lt;br /&gt;
  | d&#039;8 g,4&lt;br /&gt;
  | d&#039;8( b g)&lt;br /&gt;
  | d&#039;16 b&#039; g d b8&lt;br /&gt;
  | c8 c16 d e8&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | e16 g d g a, fis&#039;&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | b16 c d e f d&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | f16 a a,8 b16 d&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c b d g8&lt;br /&gt;
  | a16 g b g d g&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhData = \relative {&lt;br /&gt;
  | f8 d g&lt;br /&gt;
  | &amp;lt;b, g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g16 b g&#039;8 b,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;4 g,8&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 8 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | f16 e d e f g&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | c16 e g e c&#039; c,&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 r8&lt;br /&gt;
  | g&#039;4 g,8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c a&#039;&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;b&#039; d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | b,16 d g d b g&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | q4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | q16 g q g q g&lt;br /&gt;
  | q16 g q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;&amp;lt; { a&#039;8 fis d } \\ { d8 d c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c4 c,8&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 &amp;lt;b d&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;16 e d8 g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | c,8 g c,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c a&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;f a&amp;gt;4 &amp;lt;g d&#039;&amp;gt;8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;g b&amp;gt;4 r8&lt;br /&gt;
  | g8 8 8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | g&#039;8 g, r&lt;br /&gt;
  | e&#039;4 e16 c&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;8 g, r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;&amp;lt; { d&#039;8 d d } \\ { c8 c c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;&amp;lt; e4 \\ c4 &amp;gt;&amp;gt; r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | d,16 d&#039; cis d c d&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c fis&amp;gt;8 8 &amp;lt;c a&#039;&amp;gt;&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 g8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,8 8 8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,16 b c d e fis&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;g&#039; g&#039;&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | g8 g, r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table = #&#039;(&lt;br /&gt;
#(96 32 69 40 148 104 152 119 98 3 54)&lt;br /&gt;
#(22 6 95 17 74 157 60 84 142 87 130)&lt;br /&gt;
#(141 128 158 113 163 27 171 114 42 165 10)&lt;br /&gt;
#(41 63 13 85 45 167 53 50 156 61 103)&lt;br /&gt;
#(105 146 153 161 80 154 99 140 75 135 28)&lt;br /&gt;
#(122 46 55 2 97 68 133 86 129 47 37)&lt;br /&gt;
#(11 134 110 159 36 118 21 169 62 147 106)&lt;br /&gt;
#(30 81 24 100 107 91 127 94 123 33 5)&lt;br /&gt;
#(70 117 66 90 25 138 16 120 65 102 35)&lt;br /&gt;
#(121 39 139 176 143 71 155 88 77 4 20)&lt;br /&gt;
#(26 126 15 7 64 150 57 48 19 31 108)&lt;br /&gt;
#(9 56 132 34 125 29 175 166 82 164 92)&lt;br /&gt;
#(112 174 73 67 76 101 43 51 137 144 12)&lt;br /&gt;
#(49 18 58 160 136 162 168 115 38 59 124)&lt;br /&gt;
#(109 116 145 52 1 23 89 72 149 173 44)&lt;br /&gt;
#(14 83 79 170 93 151 172 111 8 78 131)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
#(define choices&lt;br /&gt;
   (map (lambda (possibilities)&lt;br /&gt;
          (1- (vector-ref possibilities (random 11))))&lt;br /&gt;
        table))&lt;br /&gt;
&lt;br /&gt;
#(define (split-measures music)&lt;br /&gt;
   (let ((elements (ly:music-property&lt;br /&gt;
                     (ly:music-property music &#039;element)&lt;br /&gt;
                     &#039;elements)))&lt;br /&gt;
     (let loop ((elts (reverse elements))&lt;br /&gt;
                (measure &#039;())&lt;br /&gt;
                (measures &#039;()))&lt;br /&gt;
       (cond&lt;br /&gt;
        ((null? elts)&lt;br /&gt;
         (list-&amp;gt;vector measures))&lt;br /&gt;
        ((music-is-of-type? (car elts) &#039;bar-check)&lt;br /&gt;
         (let ((measure-music (make-sequential-music measure)))&lt;br /&gt;
           (loop (cdr elts) &#039;() (cons measure-music measures))))&lt;br /&gt;
        (else&lt;br /&gt;
         (loop (cdr elts) (cons (car elts) measure) measures))))))&lt;br /&gt;
&lt;br /&gt;
applyChoices =&lt;br /&gt;
#(define-music-function (music) (ly:music?)&lt;br /&gt;
   (let* ((measures (split-measures music))&lt;br /&gt;
          (chosen-measures&lt;br /&gt;
           (map (lambda (i) (vector-ref measures i))&lt;br /&gt;
                choices))&lt;br /&gt;
          (first-part (make-sequential-music (take chosen-measures 8)))&lt;br /&gt;
          (second-part (make-sequential-music (drop chosen-measures 8))))&lt;br /&gt;
     #{&lt;br /&gt;
       \repeat volta 2 { #first-part }&lt;br /&gt;
       \repeat volta 2 { #second-part }&lt;br /&gt;
     #}))&lt;br /&gt;
&lt;br /&gt;
\header {&lt;br /&gt;
  title = &amp;quot;Valse&amp;quot;&lt;br /&gt;
  composer = &amp;quot;Mozart&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
randomWaltz =&lt;br /&gt;
\keepWithTag generation&lt;br /&gt;
\new PianoStaff &amp;lt;&amp;lt;&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \time 3/8&lt;br /&gt;
    \applyChoices \rhData&lt;br /&gt;
  }&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \clef bass&lt;br /&gt;
    \applyChoices \lhData&lt;br /&gt;
  }&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \layout { }&lt;br /&gt;
  \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \midi { }&lt;br /&gt;
  \unfoldRepeats \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
% Uncomment to display the table of all possible measures (&amp;quot;Notentafel&amp;quot;)&lt;br /&gt;
%{&lt;br /&gt;
\score {&lt;br /&gt;
  \layout {&lt;br /&gt;
    \context {&lt;br /&gt;
      \Score&lt;br /&gt;
      barNumberVisibility = #all-bar-numbers-visible&lt;br /&gt;
      \override BarNumber.break-visibility = #end-of-line-invisible&lt;br /&gt;
      centerBarNumbers = ##t&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  \keepWithTag table &amp;lt;&amp;lt;&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \time 3/8&lt;br /&gt;
      \rhData&lt;br /&gt;
    }&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \clef bass&lt;br /&gt;
      \lhData&lt;br /&gt;
    }&lt;br /&gt;
  &amp;gt;&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
%}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6094</id>
		<title>Mozart’s Musikalisches Würfelspiel</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Mozart%E2%80%99s_Musikalisches_W%C3%BCrfelspiel&amp;diff=6094"/>
		<updated>2026-01-07T14:46:38Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: Create&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mozart&#039;s [https://en.wikipedia.org/wiki/Musikalisches_W%C3%BCrfelspiel Musikalisches Würfelspiel] (score [https://imslp.org/wiki/Musikalisches_W%C3%BCrfelspiel,_K.516f_(Mozart,_Wolfgang_Amadeus) available on IMSLP]) is a system to create a waltz by choosing each measure from a list of possibilities, with 759,499,667,166,482 possible waltzes in total. This is an implementation of the Würfelspiel using a bit of Scheme code to select the measures at random, producing a different waltz at each compilation. The code is an instructive example of creating music functions and manipulating music in Scheme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24&amp;quot;&amp;gt;&lt;br /&gt;
rhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { &amp;lt;g&#039; b d g&amp;gt;4 r8 }&lt;br /&gt;
    \volta 2 { &amp;lt;g b d g&amp;gt;4 r8 }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;g b d g&amp;gt;4 r8&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhMeasureEight = \relative {&lt;br /&gt;
  \tag generation \alternative {&lt;br /&gt;
    \volta 1 { g,8 b&#039;16 g fis e }&lt;br /&gt;
    \volta 2 { g,8 g&#039;16 f! e d }&lt;br /&gt;
  }&lt;br /&gt;
  \tag table {&lt;br /&gt;
    &amp;lt;&amp;lt; { g,8^&amp;quot;Volta 1&amp;quot; b&#039;16 g fis e } \\ { g,8_&amp;quot;Volta 2&amp;quot; g&#039;16 f! e d } &amp;gt;&amp;gt;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
rhData = \relative {&lt;br /&gt;
  | f&#039;&#039;8 d g&lt;br /&gt;
  | a,8 fis16 g b g&#039;&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g8 d4\trill&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c e g c g&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt; r8&lt;br /&gt;
  | b16 a b c d b&lt;br /&gt;
  | e16 c b a g fis&lt;br /&gt;
  | &amp;lt;e c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;8( g e)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 g16 e c8&lt;br /&gt;
  | a&#039;8( fis d)&lt;br /&gt;
  | c16 g c e g, c&lt;br /&gt;
  | g8( c e)&lt;br /&gt;
  | e16 c e8 g&lt;br /&gt;
  | g8 b16 d d,8&lt;br /&gt;
  | c16 e g d a fis&#039;&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;16 e d e f g&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d,16 fis a d fis a&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;8 8 8&lt;br /&gt;
  | f16 e f d c b&lt;br /&gt;
  | fis&#039;16 d a a&#039; fis d&lt;br /&gt;
  | b16 d g d b8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16[ c g8] e&#039;&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 c d b g8&lt;br /&gt;
  | a8 d fis&lt;br /&gt;
  | a,16 e&#039; d g fis a&lt;br /&gt;
  | g16 b g d b8&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 g, g&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | c16 b c e g,8&lt;br /&gt;
  | b16 c d b a g&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | a8 f&#039;16 d a b&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | g&#039;&#039;8 b16 g d b&lt;br /&gt;
  | g&#039;8 g16 d b&#039;8&lt;br /&gt;
  | e,8 c16 e g c&lt;br /&gt;
  | e,8( c g)&lt;br /&gt;
  | c8 e16 c g8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16( cis) d f g, b&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 16 &amp;lt;d f&amp;gt; &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;8 b d,&lt;br /&gt;
  | d16 b g8 r8&lt;br /&gt;
  | e&#039;8 c g&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | c8 e16 c g&#039;8&lt;br /&gt;
  | e16 c b g a fis&lt;br /&gt;
  | e&#039;16 c b c g8&lt;br /&gt;
  | e&#039;16 g c g e c&lt;br /&gt;
  | d16 a d8 fis&lt;br /&gt;
  | fis8 a fis&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | g&#039;8 b16 g d g&lt;br /&gt;
  | g8( e c)&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | g16 b d b g8&lt;br /&gt;
  | f16 e d c b d&lt;br /&gt;
  | g8 e c&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | g&#039;16 b g8 d&lt;br /&gt;
  | c8 c, r&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | d8 a\turn fis&#039;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | d16[ b g8] g&#039;&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | c8 e g,&lt;br /&gt;
  | d&#039;8 d16 g b8&lt;br /&gt;
  | g8 c, e&lt;br /&gt;
  | g16 d g b g d&lt;br /&gt;
  | f16 e d8 g&lt;br /&gt;
  | fis16 a d a fis a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;b, d&amp;gt;8 g&#039;16 b d,8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | g&#039;8 e c&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | fis8 a d,&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | fis16 d a8 fis&#039;&lt;br /&gt;
  | c16 e c g e8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | fis8 a16 fis d fis&lt;br /&gt;
  | a,8 d16 c b a&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | e&#039;8( g c)&lt;br /&gt;
  | d,16 f d f b, d&lt;br /&gt;
  | &amp;lt;b d&amp;gt;16( &amp;lt;a c&amp;gt;) q( &amp;lt;g b&amp;gt;) q( &amp;lt;fis a&amp;gt;)&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | e8 c g&lt;br /&gt;
  | f&#039;8 d b&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 q q&lt;br /&gt;
  | c16 g e&#039; c g&#039; e&lt;br /&gt;
  | d16 f a f d b&lt;br /&gt;
  | d16 a d fis a fis&lt;br /&gt;
  | e16 a g b fis a&lt;br /&gt;
  | e16 c g&#039; e c&#039; g&lt;br /&gt;
  | d&#039;8 a16 fis d a&lt;br /&gt;
  | g&#039;8 b16 g d8&lt;br /&gt;
  | g16 fis g b d,8&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | g&#039;16 e d b g8&lt;br /&gt;
  | c16 g c e g &amp;lt;c, e&amp;gt;&lt;br /&gt;
  | \rhMeasureEight&lt;br /&gt;
  | b8 d g&lt;br /&gt;
  | a16 g fis g d8&lt;br /&gt;
  | &amp;lt;e, c&#039;&amp;gt;8 8 8&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;8 &amp;lt;b d&amp;gt;16 &amp;lt;g b&amp;gt; g8&lt;br /&gt;
  | d&#039;8 g16 d b d&lt;br /&gt;
  | a16 e&#039; &amp;lt;b d&amp;gt; &amp;lt;a c&amp;gt; &amp;lt;g b&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | fis&#039;8 fis16 d a&#039;8&lt;br /&gt;
  | c16 b c g e c&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | &amp;lt;a, d fis&amp;gt;8 fis&#039;4\trill&lt;br /&gt;
  | g16 b g b d,8&lt;br /&gt;
  | a8 a16 d fis8&lt;br /&gt;
  | d16 e f d c b&lt;br /&gt;
  | c8 g e&#039;&lt;br /&gt;
  | g8 d16 b g8&lt;br /&gt;
  | g&#039;8 c, e&lt;br /&gt;
  | d16 f a, d b d&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 &amp;lt;d&#039; fis&amp;gt; &amp;lt;fis a&amp;gt;&lt;br /&gt;
  | e16 c&#039; b g a fis&lt;br /&gt;
  | c&#039;16 b c g e c&lt;br /&gt;
  | f16 d a8 b&lt;br /&gt;
  | &amp;lt;g c e&amp;gt;8 e&#039;4\trill&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g&#039;8 f16 e d c&lt;br /&gt;
  | d16 a fis&#039; d a&#039; fis&lt;br /&gt;
  | d16 cis d fis a fis&lt;br /&gt;
  | g16 b g d b g&lt;br /&gt;
  | c16 g e&#039; c g&#039;8&lt;br /&gt;
  | e16 d e g c g&lt;br /&gt;
  | b,8 d16 b a g&lt;br /&gt;
  | e&#039;16 g d c b a&lt;br /&gt;
  | c16 b c e g, c&lt;br /&gt;
  | &amp;lt;fis, d&#039;&amp;gt;8 8 8&lt;br /&gt;
  | e&#039;16 d e g c g&lt;br /&gt;
  | g16 fis g d b g&lt;br /&gt;
  | d&#039;8 g,4&lt;br /&gt;
  | d&#039;8( b g)&lt;br /&gt;
  | d&#039;16 b&#039; g d b8&lt;br /&gt;
  | c8 c16 d e8&lt;br /&gt;
  | g8 f16 e d c&lt;br /&gt;
  | e16 g d g a, fis&#039;&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | b16 c d e f d&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | f16 a a,8 b16 d&lt;br /&gt;
  | g,8 c e&lt;br /&gt;
  | e16 c b d g8&lt;br /&gt;
  | a16 g b g d g&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
lhData = \relative {&lt;br /&gt;
  | f8 d g&lt;br /&gt;
  | &amp;lt;b, g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g16 b g&#039;8 b,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;4 g,8&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 8 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | f16 e d e f g&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | c16 e g e c&#039; c,&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 r8&lt;br /&gt;
  | g&#039;4 g,8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g&#039;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c a&#039;&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;b&#039; d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | b,16 d g d b g&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | q4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | q16 g q g q g&lt;br /&gt;
  | q16 g q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;&amp;lt; { a&#039;8 fis d } \\ { d8 d c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | d4 c8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c4 c,8&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | c&#039;4 r8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 &amp;lt;b d&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;c g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | f&#039;16 e d8 g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;g g&#039;&amp;gt;4 g&#039;8&lt;br /&gt;
  | c,8 g c,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;c, a&#039;&amp;gt;4 8&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;c a&#039;&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | &amp;lt;c&#039; g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;f a&amp;gt;4 &amp;lt;g d&#039;&amp;gt;8&lt;br /&gt;
  | c,8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | &amp;lt;g b&amp;gt;4 r8&lt;br /&gt;
  | g8 8 8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;d fis&amp;gt;4 &amp;lt;c fis&amp;gt;8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | g&#039;8 g, r&lt;br /&gt;
  | e&#039;4 e16 c&lt;br /&gt;
  | \lhMeasureEight&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;8 8 &amp;lt;b g&#039;&amp;gt;&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | g&#039;&#039;8 g, r8&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;&amp;lt; { d&#039;8 d d } \\ { c8 c c } &amp;gt;&amp;gt;&lt;br /&gt;
  | &amp;lt;&amp;lt; e4 \\ c4 &amp;gt;&amp;gt; r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | d,16 d&#039; cis d c d&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;c fis&amp;gt;8 8 &amp;lt;c a&#039;&amp;gt;&lt;br /&gt;
  | &amp;lt;b g&#039;&amp;gt;4 g8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,8 8 8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | f4 g8&lt;br /&gt;
  | c,16 b c d e fis&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;e g&amp;gt;4 r8&lt;br /&gt;
  | c4 r8&lt;br /&gt;
  | g4 r8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | &amp;lt;c&#039; e&amp;gt;4 8&lt;br /&gt;
  | c8 8 8&lt;br /&gt;
  | &amp;lt;c g&#039;&amp;gt;4 &amp;lt;c e&amp;gt;8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 r8&lt;br /&gt;
  | g&#039;16 fis g d b g&lt;br /&gt;
  | b4 r8&lt;br /&gt;
  | &amp;lt;g&#039; b&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;4 r8&lt;br /&gt;
  | &amp;lt;c e&amp;gt;4 &amp;lt;e g&amp;gt;8&lt;br /&gt;
  | c8 d d,&lt;br /&gt;
  | c&#039;8 g c,&lt;br /&gt;
  | &amp;lt;g&#039; g&#039;&amp;gt;4 &amp;lt;b g&#039;&amp;gt;8&lt;br /&gt;
  | c8 g c,&lt;br /&gt;
  | f&#039;4 g8&lt;br /&gt;
  | &amp;lt;c, e&amp;gt;16 g&#039; q g q g&lt;br /&gt;
  | g8 g, r8&lt;br /&gt;
  | &amp;lt;b d&amp;gt;4 8&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table = #&#039;(&lt;br /&gt;
#(96 32 69 40 148 104 152 119 98 3 54)&lt;br /&gt;
#(22 6 95 17 74 157 60 84 142 87 130)&lt;br /&gt;
#(141 128 158 113 163 27 171 114 42 165 10)&lt;br /&gt;
#(41 63 13 85 45 167 53 50 156 61 103)&lt;br /&gt;
#(105 146 153 161 80 154 99 140 75 135 28)&lt;br /&gt;
#(122 46 55 2 97 68 133 86 129 47 37)&lt;br /&gt;
#(11 134 110 159 36 118 21 169 62 147 106)&lt;br /&gt;
#(30 81 24 100 107 91 127 94 123 33 5)&lt;br /&gt;
#(70 117 66 90 25 138 16 120 65 102 35)&lt;br /&gt;
#(121 39 139 176 143 71 155 88 77 4 20)&lt;br /&gt;
#(26 126 15 7 64 150 57 48 19 31 108)&lt;br /&gt;
#(9 56 132 34 125 29 175 166 82 164 92)&lt;br /&gt;
#(112 174 73 67 76 101 43 51 137 144 12)&lt;br /&gt;
#(49 18 58 160 136 162 168 115 38 59 124)&lt;br /&gt;
#(109 116 145 52 1 23 89 72 149 173 44)&lt;br /&gt;
#(14 83 79 170 93 151 172 111 8 78 131)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
#(define choices&lt;br /&gt;
   (map (lambda (possibilities)&lt;br /&gt;
          (1- (vector-ref possibilities (random 11))))&lt;br /&gt;
        table))&lt;br /&gt;
&lt;br /&gt;
#(define (split-measures music)&lt;br /&gt;
   (let ((elements (ly:music-property&lt;br /&gt;
                     (ly:music-property music &#039;element)&lt;br /&gt;
                     &#039;elements)))&lt;br /&gt;
     (let loop ((elts (reverse elements))&lt;br /&gt;
                (measure &#039;())&lt;br /&gt;
                (measures &#039;()))&lt;br /&gt;
       (cond&lt;br /&gt;
        ((null? elts)&lt;br /&gt;
         (list-&amp;gt;vector measures))&lt;br /&gt;
        ((music-is-of-type? (car elts) &#039;bar-check)&lt;br /&gt;
         (let ((measure-music (make-sequential-music measure)))&lt;br /&gt;
           (loop (cdr elts) &#039;() (cons measure-music measures))))&lt;br /&gt;
        (else&lt;br /&gt;
         (loop (cdr elts) (cons (car elts) measure) measures))))))&lt;br /&gt;
&lt;br /&gt;
applyChoices =&lt;br /&gt;
#(define-music-function (music) (ly:music?)&lt;br /&gt;
   (let* ((measures (split-measures music))&lt;br /&gt;
          (chosen-measures&lt;br /&gt;
           (map (lambda (i) (vector-ref measures i))&lt;br /&gt;
                choices))&lt;br /&gt;
          (first-part (make-sequential-music (take chosen-measures 8)))&lt;br /&gt;
          (second-part (make-sequential-music (drop chosen-measures 8))))&lt;br /&gt;
     #{&lt;br /&gt;
       \repeat volta 2 { #first-part }&lt;br /&gt;
       \repeat volta 2 { #second-part }&lt;br /&gt;
     #}))&lt;br /&gt;
&lt;br /&gt;
\header {&lt;br /&gt;
  title = &amp;quot;Valse&amp;quot;&lt;br /&gt;
  composer = &amp;quot;Mozart&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
randomWaltz =&lt;br /&gt;
\keepWithTag generation&lt;br /&gt;
\new PianoStaff &amp;lt;&amp;lt;&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \time 3/8&lt;br /&gt;
    \applyChoices \rhData&lt;br /&gt;
  }&lt;br /&gt;
  \new Staff {&lt;br /&gt;
    \clef bass&lt;br /&gt;
    \applyChoices \lhData&lt;br /&gt;
  }&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \layout { }&lt;br /&gt;
  \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \midi { }&lt;br /&gt;
  \unfoldRepeats \randomWaltz&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
% Uncomment to display the table of all possible measures (&amp;quot;Notentafel&amp;quot;)&lt;br /&gt;
%{&lt;br /&gt;
\score {&lt;br /&gt;
  \layout {&lt;br /&gt;
    \context {&lt;br /&gt;
      \Score&lt;br /&gt;
      barNumberVisibility = #all-bar-numbers-visible&lt;br /&gt;
      \override BarNumber.break-visibility = #end-of-line-invisible&lt;br /&gt;
      centerBarNumbers = ##t&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  \keepWithTag table &amp;lt;&amp;lt;&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \time 3/8&lt;br /&gt;
      \rhData&lt;br /&gt;
    }&lt;br /&gt;
    \new Staff {&lt;br /&gt;
      \clef bass&lt;br /&gt;
      \lhData&lt;br /&gt;
    }&lt;br /&gt;
  &amp;gt;&amp;gt;&lt;br /&gt;
}&lt;br /&gt;
%}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6061</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6061"/>
		<updated>2026-01-01T22:02:31Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* This wiki has no templates */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;br /&gt;
::Thank you for your answer. You have a point with security issues, SyntaxHighlight needs Scribunto. There is no special language support for Lilypond anyway, I use Latex, better than nothing. Your installation has to offer proc open, otherwise Scribunto is not working. I have not found a single provider which allows this.&lt;br /&gt;
::Maybe I am missing something in my preferences, when editing I do not see anything that supports editing, not even the option to insert links, maybe it&#039;s because I don&#039;t use the visual editor, I like &amp;quot;pure&amp;quot; editing as it is in Lilypond. CharInsert offers support for Wiki syntax, including tags like &amp;amp;lt;pre&amp;gt;, all combinations of {} and so on.&lt;br /&gt;
::Greetings from Austria, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 03:17, 19 December 2025 (UTC)&lt;br /&gt;
:::[off-topic] Where in Austria?  Greetings from Kufstein :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:15, 19 December 2025 (UTC)&lt;br /&gt;
::::Niederösterreich, nordöstlich von Wien (Bezirk Gänserndorf) [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:21, 19 December 2025 (UTC)&lt;br /&gt;
:::I don&#039;t think SyntaxHighlight needs Scribunto. It uses Pygments, which is a Python (not Lua) library (of which I actually am technically a maintainer, although I&#039;ve been inactive lately by lack of time). It certainly needs something like &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt;, but this wiki doesn&#039;t use a &amp;quot;managed&amp;quot; MediaWiki install (where the provider installs things for you, à la &amp;quot;Wordpress in one click&amp;quot;), it&#039;s on a VPS on which I have root access and administrate things myself, so I can install and configure anything (and &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; is already being used to run LilyPond). The real problem is that the LilyPond code snippets are mostly added through a the special, non-standard parser tag &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and so the extension I wrote that defines this tag would need to support syntax highlighting.&lt;br /&gt;
:::Regarding the editor toolbar, it sounds like what you want is not CharInsert but [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor], which I&#039;ve just added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:15, 19 December 2025 (UTC)&lt;br /&gt;
::::PS: I also meant to write that Pygments supports LilyPond. (I implemented this a few years ago.) [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:26, 19 December 2025 (UTC)&lt;br /&gt;
:::::Apropos Pygments: I&#039;ve submitted a [https://github.com/pygments/pygments/pull/2974 PR] to update LilyPond support some time ago. [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:38, 19 December 2025 (UTC)&lt;br /&gt;
::::Thank you for installing this extension, this is definitely an improvement. CharInsert is a different animal. Root access is of course best, but you have to do much administration. Usually root access is very expensive when you need a provider. A long time ago I have written a Lilypond extension myself on a home server in my local network.&lt;br /&gt;
::::Just in case you are asking who I am, I wrote LSR 1040, 1042, 1043, 1044 (when I remember right) and was involved in 1066 and 1067. [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 19:34, 19 December 2025 (UTC)&lt;br /&gt;
:::::I&#039;ve discovered a potential reason for activating Scribunto: Right now, I&#039;m using the &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; MediaWiki API to download snippets for &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt;.  However, &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; doesn&#039;t expand templates.  This means that I have to call the &amp;lt;code&amp;gt;expandtemplates&amp;lt;/code&amp;gt; API, sending the unexpanded page to the Wiki server to get an expanded version back.&lt;br /&gt;
:::::The Skribunto interface provides [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#frame:preprocess &amp;lt;code&amp;gt;frame:preprocess&amp;lt;/code&amp;gt;], which seems to unify the abovementioned two calls into a single one (I haven&#039;t tested it). Maybe this can be configured to not use Lua, in case this simplifies things. What do you think? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:56, 1 January 2026 (UTC)&lt;br /&gt;
::::::I don&#039;t see a problem with one extra API call per page to expand templates. Also, the function you link is a Lua API, for use in Lua modules running on the wiki, so I don&#039;t get how you want to use it outside. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 22:02, 1 January 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MediaWiki variables for current stable and unstable LilyPond versions ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
what do you think about adding [https://www.mediawiki.org/wiki/Manual:Variable MediaWiki variables] that indicate the current stable and unstable LilyPond versions (without the ‘micro’ value)?  I suggest&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLE}}&amp;lt;/nowiki&amp;gt; → 2.24&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVEL}}&amp;lt;/nowiki&amp;gt; → 2.25&lt;br /&gt;
&lt;br /&gt;
and maybe&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLEDOC}} → https://lilypond.org/docs/{{LILYSTABLE}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVELDOC}} → https://lilypond.org/docs/{{LILYDEVEL}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Such variables would reduce maintainance of yet-to-be-written templates.  In particular, I would like to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Template:convert-ly&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: it would tell users that the snippet in question needs conversion with &amp;lt;code&amp;gt;convert-ly&amp;lt;/code&amp;gt; (showing a link to the documentation) for newer versions. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:46, 28 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Sounds OK to me. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:34, 28 December 2025 (UTC)&lt;br /&gt;
::Great!  However, it seems to me that you have to add some piece of PHP code to do that...  This means I cannot do it by myself. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 07:00, 30 December 2025 (UTC)&lt;br /&gt;
:::Ah, do you need them to be variables as opposed to templates? [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:30, 30 December 2025 (UTC)&lt;br /&gt;
::::Do I?  I honestly don&#039;t know.  Please advise. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 12:36, 30 December 2025 (UTC)&lt;br /&gt;
:::::Please try templates first. Seems to me that the use case for variables is when you want programmatically generated stuff like the current date. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 19:40, 30 December 2025 (UTC)&lt;br /&gt;
::::::It seems to work fine, thanks!  However, for more serious template handling I think that the [https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions ParserFunctions] extension would be necessary. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 06:43, 31 December 2025 (UTC)&lt;br /&gt;
:::::::Added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:01, 31 December 2025 (UTC)&lt;br /&gt;
::::::::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:41, 1 January 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6058</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6058"/>
		<updated>2025-12-31T08:01:47Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* MediaWiki variables for current stable and unstable LilyPond versions */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;br /&gt;
::Thank you for your answer. You have a point with security issues, SyntaxHighlight needs Scribunto. There is no special language support for Lilypond anyway, I use Latex, better than nothing. Your installation has to offer proc open, otherwise Scribunto is not working. I have not found a single provider which allows this.&lt;br /&gt;
::Maybe I am missing something in my preferences, when editing I do not see anything that supports editing, not even the option to insert links, maybe it&#039;s because I don&#039;t use the visual editor, I like &amp;quot;pure&amp;quot; editing as it is in Lilypond. CharInsert offers support for Wiki syntax, including tags like &amp;amp;lt;pre&amp;gt;, all combinations of {} and so on.&lt;br /&gt;
::Greetings from Austria, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 03:17, 19 December 2025 (UTC)&lt;br /&gt;
:::[off-topic] Where in Austria?  Greetings from Kufstein :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:15, 19 December 2025 (UTC)&lt;br /&gt;
::::Niederösterreich, nordöstlich von Wien (Bezirk Gänserndorf) [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:21, 19 December 2025 (UTC)&lt;br /&gt;
:::I don&#039;t think SyntaxHighlight needs Scribunto. It uses Pygments, which is a Python (not Lua) library (of which I actually am technically a maintainer, although I&#039;ve been inactive lately by lack of time). It certainly needs something like &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt;, but this wiki doesn&#039;t use a &amp;quot;managed&amp;quot; MediaWiki install (where the provider installs things for you, à la &amp;quot;Wordpress in one click&amp;quot;), it&#039;s on a VPS on which I have root access and administrate things myself, so I can install and configure anything (and &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; is already being used to run LilyPond). The real problem is that the LilyPond code snippets are mostly added through a the special, non-standard parser tag &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and so the extension I wrote that defines this tag would need to support syntax highlighting.&lt;br /&gt;
:::Regarding the editor toolbar, it sounds like what you want is not CharInsert but [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor], which I&#039;ve just added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:15, 19 December 2025 (UTC)&lt;br /&gt;
::::PS: I also meant to write that Pygments supports LilyPond. (I implemented this a few years ago.) [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:26, 19 December 2025 (UTC)&lt;br /&gt;
:::::Apropos Pygments: I&#039;ve submitted a [https://github.com/pygments/pygments/pull/2974 PR] to update LilyPond support some time ago. [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:38, 19 December 2025 (UTC)&lt;br /&gt;
::::Thank you for installing this extension, this is definitely an improvement. CharInsert is a different animal. Root access is of course best, but you have to do much administration. Usually root access is very expensive when you need a provider. A long time ago I have written a Lilypond extension myself on a home server in my local network.&lt;br /&gt;
::::Just in case you are asking who I am, I wrote LSR 1040, 1042, 1043, 1044 (when I remember right) and was involved in 1066 and 1067. [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 19:34, 19 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MediaWiki variables for current stable and unstable LilyPond versions ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
what do you think about adding [https://www.mediawiki.org/wiki/Manual:Variable MediaWiki variables] that indicate the current stable and unstable LilyPond versions (without the ‘micro’ value)?  I suggest&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLE}}&amp;lt;/nowiki&amp;gt; → 2.24&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVEL}}&amp;lt;/nowiki&amp;gt; → 2.25&lt;br /&gt;
&lt;br /&gt;
and maybe&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLEDOC}} → https://lilypond.org/docs/{{LILYSTABLE}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVELDOC}} → https://lilypond.org/docs/{{LILYDEVEL}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Such variables would reduce maintainance of yet-to-be-written templates.  In particular, I would like to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Template:convert-ly&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: it would tell users that the snippet in question needs conversion with &amp;lt;code&amp;gt;convert-ly&amp;lt;/code&amp;gt; (showing a link to the documentation) for newer versions. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:46, 28 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Sounds OK to me. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:34, 28 December 2025 (UTC)&lt;br /&gt;
::Great!  However, it seems to me that you have to add some piece of PHP code to do that...  This means I cannot do it by myself. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 07:00, 30 December 2025 (UTC)&lt;br /&gt;
:::Ah, do you need them to be variables as opposed to templates? [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:30, 30 December 2025 (UTC)&lt;br /&gt;
::::Do I?  I honestly don&#039;t know.  Please advise. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 12:36, 30 December 2025 (UTC)&lt;br /&gt;
:::::Please try templates first. Seems to me that the use case for variables is when you want programmatically generated stuff like the current date. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 19:40, 30 December 2025 (UTC)&lt;br /&gt;
::::::It seems to work fine, thanks!  However, for more serious template handling I think that the [https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions ParserFunctions] extension would be necessary. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 06:43, 31 December 2025 (UTC)&lt;br /&gt;
:::::::Added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:01, 31 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6036</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6036"/>
		<updated>2025-12-30T19:40:49Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* MediaWiki variables for current stable and unstable LilyPond versions */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;br /&gt;
::Thank you for your answer. You have a point with security issues, SyntaxHighlight needs Scribunto. There is no special language support for Lilypond anyway, I use Latex, better than nothing. Your installation has to offer proc open, otherwise Scribunto is not working. I have not found a single provider which allows this.&lt;br /&gt;
::Maybe I am missing something in my preferences, when editing I do not see anything that supports editing, not even the option to insert links, maybe it&#039;s because I don&#039;t use the visual editor, I like &amp;quot;pure&amp;quot; editing as it is in Lilypond. CharInsert offers support for Wiki syntax, including tags like &amp;amp;lt;pre&amp;gt;, all combinations of {} and so on.&lt;br /&gt;
::Greetings from Austria, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 03:17, 19 December 2025 (UTC)&lt;br /&gt;
:::[off-topic] Where in Austria?  Greetings from Kufstein :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:15, 19 December 2025 (UTC)&lt;br /&gt;
::::Niederösterreich, nordöstlich von Wien (Bezirk Gänserndorf) [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:21, 19 December 2025 (UTC)&lt;br /&gt;
:::I don&#039;t think SyntaxHighlight needs Scribunto. It uses Pygments, which is a Python (not Lua) library (of which I actually am technically a maintainer, although I&#039;ve been inactive lately by lack of time). It certainly needs something like &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt;, but this wiki doesn&#039;t use a &amp;quot;managed&amp;quot; MediaWiki install (where the provider installs things for you, à la &amp;quot;Wordpress in one click&amp;quot;), it&#039;s on a VPS on which I have root access and administrate things myself, so I can install and configure anything (and &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; is already being used to run LilyPond). The real problem is that the LilyPond code snippets are mostly added through a the special, non-standard parser tag &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and so the extension I wrote that defines this tag would need to support syntax highlighting.&lt;br /&gt;
:::Regarding the editor toolbar, it sounds like what you want is not CharInsert but [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor], which I&#039;ve just added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:15, 19 December 2025 (UTC)&lt;br /&gt;
::::PS: I also meant to write that Pygments supports LilyPond. (I implemented this a few years ago.) [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:26, 19 December 2025 (UTC)&lt;br /&gt;
:::::Apropos Pygments: I&#039;ve submitted a [https://github.com/pygments/pygments/pull/2974 PR] to update LilyPond support some time ago. [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:38, 19 December 2025 (UTC)&lt;br /&gt;
::::Thank you for installing this extension, this is definitely an improvement. CharInsert is a different animal. Root access is of course best, but you have to do much administration. Usually root access is very expensive when you need a provider. A long time ago I have written a Lilypond extension myself on a home server in my local network.&lt;br /&gt;
::::Just in case you are asking who I am, I wrote LSR 1040, 1042, 1043, 1044 (when I remember right) and was involved in 1066 and 1067. [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 19:34, 19 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MediaWiki variables for current stable and unstable LilyPond versions ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
what do you think about adding [https://www.mediawiki.org/wiki/Manual:Variable MediaWiki variables] that indicate the current stable and unstable LilyPond versions (without the ‘micro’ value)?  I suggest&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLE}}&amp;lt;/nowiki&amp;gt; → 2.24&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVEL}}&amp;lt;/nowiki&amp;gt; → 2.25&lt;br /&gt;
&lt;br /&gt;
and maybe&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLEDOC}} → https://lilypond.org/docs/{{LILYSTABLE}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVELDOC}} → https://lilypond.org/docs/{{LILYDEVEL}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Such variables would reduce maintainance of yet-to-be-written templates.  In particular, I would like to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Template:convert-ly&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: it would tell users that the snippet in question needs conversion with &amp;lt;code&amp;gt;convert-ly&amp;lt;/code&amp;gt; (showing a link to the documentation) for newer versions. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:46, 28 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Sounds OK to me. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:34, 28 December 2025 (UTC)&lt;br /&gt;
::Great!  However, it seems to me that you have to add some piece of PHP code to do that...  This means I cannot do it by myself. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 07:00, 30 December 2025 (UTC)&lt;br /&gt;
:::Ah, do you need them to be variables as opposed to templates? [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:30, 30 December 2025 (UTC)&lt;br /&gt;
::::Do I?  I honestly don&#039;t know.  Please advise. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 12:36, 30 December 2025 (UTC)&lt;br /&gt;
:::::Please try templates first. Seems to me that the use case for variables is when you want programmatically generated stuff like the current date. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 19:40, 30 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6024</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6024"/>
		<updated>2025-12-30T08:30:20Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* MediaWiki variables for current stable and unstable LilyPond versions */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;br /&gt;
::Thank you for your answer. You have a point with security issues, SyntaxHighlight needs Scribunto. There is no special language support for Lilypond anyway, I use Latex, better than nothing. Your installation has to offer proc open, otherwise Scribunto is not working. I have not found a single provider which allows this.&lt;br /&gt;
::Maybe I am missing something in my preferences, when editing I do not see anything that supports editing, not even the option to insert links, maybe it&#039;s because I don&#039;t use the visual editor, I like &amp;quot;pure&amp;quot; editing as it is in Lilypond. CharInsert offers support for Wiki syntax, including tags like &amp;amp;lt;pre&amp;gt;, all combinations of {} and so on.&lt;br /&gt;
::Greetings from Austria, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 03:17, 19 December 2025 (UTC)&lt;br /&gt;
:::[off-topic] Where in Austria?  Greetings from Kufstein :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:15, 19 December 2025 (UTC)&lt;br /&gt;
::::Niederösterreich, nordöstlich von Wien (Bezirk Gänserndorf) [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:21, 19 December 2025 (UTC)&lt;br /&gt;
:::I don&#039;t think SyntaxHighlight needs Scribunto. It uses Pygments, which is a Python (not Lua) library (of which I actually am technically a maintainer, although I&#039;ve been inactive lately by lack of time). It certainly needs something like &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt;, but this wiki doesn&#039;t use a &amp;quot;managed&amp;quot; MediaWiki install (where the provider installs things for you, à la &amp;quot;Wordpress in one click&amp;quot;), it&#039;s on a VPS on which I have root access and administrate things myself, so I can install and configure anything (and &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; is already being used to run LilyPond). The real problem is that the LilyPond code snippets are mostly added through a the special, non-standard parser tag &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and so the extension I wrote that defines this tag would need to support syntax highlighting.&lt;br /&gt;
:::Regarding the editor toolbar, it sounds like what you want is not CharInsert but [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor], which I&#039;ve just added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:15, 19 December 2025 (UTC)&lt;br /&gt;
::::PS: I also meant to write that Pygments supports LilyPond. (I implemented this a few years ago.) [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:26, 19 December 2025 (UTC)&lt;br /&gt;
:::::Apropos Pygments: I&#039;ve submitted a [https://github.com/pygments/pygments/pull/2974 PR] to update LilyPond support some time ago. [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:38, 19 December 2025 (UTC)&lt;br /&gt;
::::Thank you for installing this extension, this is definitely an improvement. CharInsert is a different animal. Root access is of course best, but you have to do much administration. Usually root access is very expensive when you need a provider. A long time ago I have written a Lilypond extension myself on a home server in my local network.&lt;br /&gt;
::::Just in case you are asking who I am, I wrote LSR 1040, 1042, 1043, 1044 (when I remember right) and was involved in 1066 and 1067. [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 19:34, 19 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MediaWiki variables for current stable and unstable LilyPond versions ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
what do you think about adding [https://www.mediawiki.org/wiki/Manual:Variable MediaWiki variables] that indicate the current stable and unstable LilyPond versions (without the ‘micro’ value)?  I suggest&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLE}}&amp;lt;/nowiki&amp;gt; → 2.24&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVEL}}&amp;lt;/nowiki&amp;gt; → 2.25&lt;br /&gt;
&lt;br /&gt;
and maybe&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLEDOC}} → https://lilypond.org/docs/{{LILYSTABLE}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVELDOC}} → https://lilypond.org/docs/{{LILYDEVEL}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Such variables would reduce maintainance of yet-to-be-written templates.  In particular, I would like to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Template:convert-ly&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: it would tell users that the snippet in question needs conversion with &amp;lt;code&amp;gt;convert-ly&amp;lt;/code&amp;gt; (showing a link to the documentation) for newer versions. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:46, 28 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Sounds OK to me. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:34, 28 December 2025 (UTC)&lt;br /&gt;
::Great!  However, it seems to me that you have to add some piece of PHP code to do that...  This means I cannot do it by myself. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 07:00, 30 December 2025 (UTC)&lt;br /&gt;
:::Ah, do you need them to be variables as opposed to templates? [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:30, 30 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6009</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=6009"/>
		<updated>2025-12-28T08:34:49Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* MediaWiki variables for current stable and unstable LilyPond versions */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;br /&gt;
::Thank you for your answer. You have a point with security issues, SyntaxHighlight needs Scribunto. There is no special language support for Lilypond anyway, I use Latex, better than nothing. Your installation has to offer proc open, otherwise Scribunto is not working. I have not found a single provider which allows this.&lt;br /&gt;
::Maybe I am missing something in my preferences, when editing I do not see anything that supports editing, not even the option to insert links, maybe it&#039;s because I don&#039;t use the visual editor, I like &amp;quot;pure&amp;quot; editing as it is in Lilypond. CharInsert offers support for Wiki syntax, including tags like &amp;amp;lt;pre&amp;gt;, all combinations of {} and so on.&lt;br /&gt;
::Greetings from Austria, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 03:17, 19 December 2025 (UTC)&lt;br /&gt;
:::[off-topic] Where in Austria?  Greetings from Kufstein :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:15, 19 December 2025 (UTC)&lt;br /&gt;
::::Niederösterreich, nordöstlich von Wien (Bezirk Gänserndorf) [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:21, 19 December 2025 (UTC)&lt;br /&gt;
:::I don&#039;t think SyntaxHighlight needs Scribunto. It uses Pygments, which is a Python (not Lua) library (of which I actually am technically a maintainer, although I&#039;ve been inactive lately by lack of time). It certainly needs something like &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt;, but this wiki doesn&#039;t use a &amp;quot;managed&amp;quot; MediaWiki install (where the provider installs things for you, à la &amp;quot;Wordpress in one click&amp;quot;), it&#039;s on a VPS on which I have root access and administrate things myself, so I can install and configure anything (and &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; is already being used to run LilyPond). The real problem is that the LilyPond code snippets are mostly added through a the special, non-standard parser tag &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and so the extension I wrote that defines this tag would need to support syntax highlighting.&lt;br /&gt;
:::Regarding the editor toolbar, it sounds like what you want is not CharInsert but [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor], which I&#039;ve just added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:15, 19 December 2025 (UTC)&lt;br /&gt;
::::PS: I also meant to write that Pygments supports LilyPond. (I implemented this a few years ago.) [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:26, 19 December 2025 (UTC)&lt;br /&gt;
:::::Apropos Pygments: I&#039;ve submitted a [https://github.com/pygments/pygments/pull/2974 PR] to update LilyPond support some time ago. [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:38, 19 December 2025 (UTC)&lt;br /&gt;
::::Thank you for installing this extension, this is definitely an improvement. CharInsert is a different animal. Root access is of course best, but you have to do much administration. Usually root access is very expensive when you need a provider. A long time ago I have written a Lilypond extension myself on a home server in my local network.&lt;br /&gt;
::::Just in case you are asking who I am, I wrote LSR 1040, 1042, 1043, 1044 (when I remember right) and was involved in 1066 and 1067. [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 19:34, 19 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MediaWiki variables for current stable and unstable LilyPond versions ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
what do you think about adding [https://www.mediawiki.org/wiki/Manual:Variable MediaWiki variables] that indicate the current stable and unstable LilyPond versions (without the ‘micro’ value)?  I suggest&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLE}}&amp;lt;/nowiki&amp;gt; → 2.24&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVEL}}&amp;lt;/nowiki&amp;gt; → 2.25&lt;br /&gt;
&lt;br /&gt;
and maybe&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYSTABLEDOC}} → https://lilypond.org/docs/{{LILYSTABLE}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{LILYDEVELDOC}} → https://lilypond.org/docs/{{LILYDEVEL}}/Documentation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Such variables would reduce maintainance of yet-to-be-written templates.  In particular, I would like to add &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Template:convert-ly&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: it would tell users that the snippet in question needs conversion with &amp;lt;code&amp;gt;convert-ly&amp;lt;/code&amp;gt; (showing a link to the documentation) for newer versions. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:46, 28 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Sounds OK to me. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 08:34, 28 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5889</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5889"/>
		<updated>2025-12-19T16:26:25Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* This wiki has no templates */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;br /&gt;
::Thank you for your answer. You have a point with security issues, SyntaxHighlight needs Scribunto. There is no special language support for Lilypond anyway, I use Latex, better than nothing. Your installation has to offer proc open, otherwise Scribunto is not working. I have not found a single provider which allows this.&lt;br /&gt;
::Maybe I am missing something in my preferences, when editing I do not see anything that supports editing, not even the option to insert links, maybe it&#039;s because I don&#039;t use the visual editor, I like &amp;quot;pure&amp;quot; editing as it is in Lilypond. CharInsert offers support for Wiki syntax, including tags like &amp;amp;lt;pre&amp;gt;, all combinations of {} and so on.&lt;br /&gt;
::Greetings from Austria, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 03:17, 19 December 2025 (UTC)&lt;br /&gt;
:::[off-topic] Where in Austria?  Greetings from Kufstein :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:15, 19 December 2025 (UTC)&lt;br /&gt;
::::Niederösterreich, nordöstlich von Wien (Bezirk Gänserndorf) [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:21, 19 December 2025 (UTC)&lt;br /&gt;
:::I don&#039;t think SyntaxHighlight needs Scribunto. It uses Pygments, which is a Python (not Lua) library (of which I actually am technically a maintainer, although I&#039;ve been inactive lately by lack of time). It certainly needs something like &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt;, but this wiki doesn&#039;t use a &amp;quot;managed&amp;quot; MediaWiki install (where the provider installs things for you, à la &amp;quot;Wordpress in one click&amp;quot;), it&#039;s on a VPS on which I have root access and administrate things myself, so I can install and configure anything (and &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; is already being used to run LilyPond). The real problem is that the LilyPond code snippets are mostly added through a the special, non-standard parser tag &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and so the extension I wrote that defines this tag would need to support syntax highlighting.&lt;br /&gt;
:::Regarding the editor toolbar, it sounds like what you want is not CharInsert but [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor], which I&#039;ve just added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:15, 19 December 2025 (UTC)&lt;br /&gt;
::::PS: I also meant to write that Pygments supports LilyPond. (I implemented this a few years ago.) [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:26, 19 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5888</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5888"/>
		<updated>2025-12-19T16:15:22Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* This wiki has no templates */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;br /&gt;
::Thank you for your answer. You have a point with security issues, SyntaxHighlight needs Scribunto. There is no special language support for Lilypond anyway, I use Latex, better than nothing. Your installation has to offer proc open, otherwise Scribunto is not working. I have not found a single provider which allows this.&lt;br /&gt;
::Maybe I am missing something in my preferences, when editing I do not see anything that supports editing, not even the option to insert links, maybe it&#039;s because I don&#039;t use the visual editor, I like &amp;quot;pure&amp;quot; editing as it is in Lilypond. CharInsert offers support for Wiki syntax, including tags like &amp;amp;lt;pre&amp;gt;, all combinations of {} and so on.&lt;br /&gt;
::Greetings from Austria, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 03:17, 19 December 2025 (UTC)&lt;br /&gt;
:::[off-topic] Where in Austria?  Greetings from Kufstein :-) -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 05:15, 19 December 2025 (UTC)&lt;br /&gt;
::::Niederösterreich, nordöstlich von Wien (Bezirk Gänserndorf) [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:21, 19 December 2025 (UTC)&lt;br /&gt;
:::I don&#039;t think SyntaxHighlight needs Scribunto. It uses Pygments, which is a Python (not Lua) library (of which I actually am technically a maintainer, although I&#039;ve been inactive lately by lack of time). It certainly needs something like &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;proc_open&amp;lt;/code&amp;gt;, but this wiki doesn&#039;t use a &amp;quot;managed&amp;quot; MediaWiki install (where the provider installs things for you, à la &amp;quot;Wordpress in one click&amp;quot;), it&#039;s on a VPS on which I have root access and administrate things myself, so I can install and configure anything (and &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; is already being used to run LilyPond). The real problem is that the LilyPond code snippets are mostly added through a the special, non-standard parser tag &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and so the extension I wrote that defines this tag would need to support syntax highlighting.&lt;br /&gt;
:::Regarding the editor toolbar, it sounds like what you want is not CharInsert but [https://www.mediawiki.org/wiki/Extension:WikiEditor WikiEditor], which I&#039;ve just added. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 16:15, 19 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5884</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5884"/>
		<updated>2025-12-18T21:10:27Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* This wiki has no templates */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;br /&gt;
::::::Great, thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:50, 13 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This wiki has no templates ==&lt;br /&gt;
&lt;br /&gt;
Would it be ok if I created some templates? And I am missing several AddOns, CharInsert would be nice for editing, SyntaxHighlight, Scribunto. I am running a rather private Lilypond Wiki in German for several years and have some experience with Wikis, [[User:Manuela|Manuela]] ([[User talk:Manuela|talk]]) 15:13, 18 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Feel free to create all kinds of pages, including templates. However, I&#039;d prefer if they were created as needed for specific pages (i.e., don&#039;t create templates &amp;quot;for the future&amp;quot; that aren&#039;t used on any pages). Also, I don&#039;t see much that could be factored between pages so what&#039;s your use case? In particular, please don&#039;t create templates similar [[wikipedia:Template:Em|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{em|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; on Wikipedia]] that add friction to the editing process for a negligible payoff.&lt;br /&gt;
:I haven&#039;t installed the extensions you requested because:&lt;br /&gt;
:# I don&#039;t see any special characters that would be needed particularly often on this wiki specifically, and I&#039;d rather not maintain a general list of special characters, this is the job of system-level input methods like Compose keys and character map apps IMHO.&lt;br /&gt;
:# It wouldn&#039;t make much sense to have syntax highlighting only for the few code snippets that use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, as opposed to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. However, if someone submits a change for adding syntax highlighting to the output of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;lilypond&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the [https://gitlab.com/jeanas/LilyWiki extension] that defines this tag for the wiki, I&#039;ll be happy to review it.&lt;br /&gt;
:# Scribunto has security implications (e.g., the need to keep Lua updated), so I&#039;d rather only install it if there is a compelling use case for that.&lt;br /&gt;
:[[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 21:10, 18 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Leonach&amp;diff=5828</id>
		<title>User talk:Leonach</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Leonach&amp;diff=5828"/>
		<updated>2025-12-15T17:23:42Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Searching with images? ==&lt;br /&gt;
&lt;br /&gt;
Hi all, although i see the reasons for migrating the LSR to this wiki, there is a disadvantage: when searching in the LSR, i could see the images of the scores in the search result, so i could find a possible solution much faster. Is there a way to show images in the search results in this wiki? [[User:Leonach|Leonach]] ([[User talk:Leonach|talk]]) 16:08, 15 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:@[[User:Jean Abou Samra|Jean]] [https://www.mediawiki.org/w/index.php?title=Project:Support_desk&amp;amp;oldid=8019982#How_to_display_images_in_search_results asked], but the suggested solution doesn&#039;t seem to work with SVG images, and there wasn&#039;t any further reply.  Maybe there is more information available meanwhile -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:45, 15 December 2025 (UTC)&lt;br /&gt;
::[https://www.mediawiki.org/wiki/Project:Support_desk/Archive_24#How_to_display_images_in_search_results This] is the archived thread with a further reply from MarkAHershberger. Note that the problem is not with SVG per se, but with the fact that the images are directly inlined into the HTML, instead of being stored as files on the server and included with the standard image syntax, which prevents MediaWiki from detecting them as the page thumbnails. The main reason for doing this is that I&#039;m not sure how to purge unused images (e.g., if you preview your changes 20 times before doing an edit, I don&#039;t want those 20 images to remain on the server forever).&lt;br /&gt;
::At some point, I tried to make it detect those inline images, but it didn&#039;t really get anywhere, sorry. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:22, 15 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Leonach&amp;diff=5827</id>
		<title>User talk:Leonach</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Leonach&amp;diff=5827"/>
		<updated>2025-12-15T17:22:52Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* Searching with images? */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Searching with images? ==&lt;br /&gt;
&lt;br /&gt;
Hi all, although i see the reasons for migrating the LSR to this wiki, there is a disadvantage: when searching in the LSR, i could see the images of the scores in the search result, so i could find a possible solution much faster. Is there a way to show images in the search results in this wiki? [[User:Leonach|Leonach]] ([[User talk:Leonach|talk]]) 16:08, 15 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:@[[User:Jean Abou Samra|Jean]] [https://www.mediawiki.org/w/index.php?title=Project:Support_desk&amp;amp;oldid=8019982#How_to_display_images_in_search_results asked], but the suggested solution doesn&#039;t seem to work with SVG images, and there wasn&#039;t any further reply.  Maybe there is more information available meanwhile -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:45, 15 December 2025 (UTC)&lt;br /&gt;
::[https://www.mediawiki.org/wiki/Project:Support_desk/Archive_24#How_to_display_images_in_search_results This] is the archived thread with a further reply from MarkAHershberger. Note that the problem is not with SVG per se, but with the fact that the images are directly inlined as HTML, instead of being stored as files on the server and included with the standard image syntax, which prevents MediaWiki from detecting them as the page thumbnails. The main reason for doing this is that I&#039;m not sure how to purge unused images (e.g., if you preview your changes 20 times before doing an edit, I don&#039;t want those 20 images to remain on the server forever).&lt;br /&gt;
::At some point, I tried to make it detect those inline images, but it didn&#039;t really get anywhere, sorry. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:22, 15 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5759</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5759"/>
		<updated>2025-12-13T09:13:07Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* More fonts for the Wiki */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;br /&gt;
::::Ah, I forgot that Google added Font Variation (VF) versions of the CJK fonts, and the various GNU/Linux distros eagerly took them to make the font bundles much smaller.  Older LilyPond versions cannot reject these fonts correctly.&lt;br /&gt;
::::For me it works with 2.24.4 if you use the font &amp;lt;code&amp;gt;[https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Regular.otf NotoSerifCJKjp-Regular.otf]&amp;lt;/code&amp;gt; (probably also installing the [https://github.com/notofonts/noto-cjk/blob/main/Serif/OTF/Japanese/NotoSerifCJKjp-Bold.otf bold version] for completeness), and this font is found first. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 04:24, 13 December 2025 (UTC)&lt;br /&gt;
:::::Thanks, I&#039;ve added these fonts on the server as a workaround. The snippet now displays correctly. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 09:13, 13 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5723</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5723"/>
		<updated>2025-12-12T23:49:48Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* More fonts for the Wiki */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;br /&gt;
::Thanks, but are you sure that the CJK font is working correctly?  I tried to modify the [[UTF-8]] snippet to trigger a re-rendering, but I still can&#039;t see any Japanese... -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 20:44, 12 December 2025 (UTC)&lt;br /&gt;
:::Oops, indeed. But I don&#039;t understand why. On the server, &amp;lt;code&amp;gt;-dshow-available-fonts&amp;lt;/code&amp;gt; does list &amp;quot;Noto Serif CJK JP&amp;quot;. And curiously, if I remove all font settings and compile the code with different versions, it starts working between 2.25.12 and 2.25.13. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 23:49, 12 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5721</id>
		<title>User talk:Jean Abou Samra</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=User_talk:Jean_Abou_Samra&amp;diff=5721"/>
		<updated>2025-12-12T18:34:23Z</updated>

		<summary type="html">&lt;p&gt;Jean Abou Samra: /* More fonts for the Wiki */ Reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test of email notifications ==&lt;br /&gt;
&lt;br /&gt;
This is a test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 02:46, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:04, 2 November 2025 (UTC)&lt;br /&gt;
::Third test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
:::Reply test. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 03:05, 2 November 2025 (UTC)&lt;br /&gt;
::::Yet another test. [[User:Jean Abou Samra Test Account|Jean Abou Samra Test Account]] ([[User talk:Jean Abou Samra Test Account|talk]]) 03:14, 2 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Default stylesheet for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
you&#039;ve recently removed paper indentation settings from [[Rest styles]], arguing that no indentation is the default for this Wiki.  However, this snippet is part of the “official” documentation that doesn&#039;t set the indentation to zero by default...&lt;br /&gt;
&lt;br /&gt;
I thus wonder whether it makes sense to synchronize the Wiki with the LilyPond documentation by not providing a default value for the indentation.  Another reason to stay with LilyPond&#039;s default is that a novice user who tries to compile a snippet might be surprised that it looks differently. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 16:51, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m surprised. [https://lilypond.org/doc/v2.25/Documentation/contributor/lilypond-formatting This page of the contributor&#039;s guide] implies &amp;lt;code&amp;gt;indent = 0&amp;lt;/code&amp;gt; is the default in doc snippets. Is it out of date? What are the exact settings used to compile snippets in the docs? It&#039;s been too long since I had any idea how the doc build works, I can&#039;t find this in the repo right now… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:13, 23 November 2025 (UTC)&lt;br /&gt;
::I took the style settings used on the wiki [https://lilypond.org/doc/v2.25/Documentation/usage/other-programs right from the usage manual] in the section that says &amp;quot;you have to effectively mimick how lilypond-book runs lilypond&amp;quot;… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 17:15, 23 November 2025 (UTC)&lt;br /&gt;
:::D&#039;oh.  You are correct.  My mistake, my memory failed me, and of course I didn&#039;t check before writing :-)&lt;br /&gt;
:::Sorry for the noise -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:22, 23 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cropped SVG images ==&lt;br /&gt;
&lt;br /&gt;
Jean, please have a look at the image in [[Custodes]] – the mensural custodes in the fourth staff are cropped.  If you download the SVG image and use a program like `inkview` you can see that the image actually contains the complete glyphs, however, the bounding box is too tight (an old LilyPond issue, as you certainly know).&lt;br /&gt;
&lt;br /&gt;
Is there a possibility to increase the bounding boxes of all images (both horizontally and vertically) using a post-processing step so that cropping can be avoided? -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 10:40, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Seems a bit overkill to me. I&#039;ve added a simple workaround to that snippet. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 12:41, 25 November 2025 (UTC)&lt;br /&gt;
::Nice, thanks!  I didn&#039;t think of this simple fix. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:27, 25 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some CSS code for &amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Jean, what do you think of adding something like the following&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
body { quotes: &#039;‘&#039; &#039;’&#039;; }&lt;br /&gt;
samp:before { content: open-quote; } &lt;br /&gt;
samp:after  { content: close-quote; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the Wiki CSS for the sake of better conversion to Texinfo?  My reasoning is as follows.&lt;br /&gt;
&lt;br /&gt;
There is a strong visual difference between &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; in the Wiki and &amp;lt;code&amp;gt;@code&amp;lt;/code&amp;gt; in Texinfo output: the former produces typewriter text in a box, the latter uses just typewriter.  This is fine with the fonts used for Texinfo output except for marking single letters: in Texinfo it is better to use &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt; for this situation, producing typewriter text in quotes.&lt;br /&gt;
&lt;br /&gt;
On the Wiki side I would thus like to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;makelsr.pl&amp;lt;/code&amp;gt; converts to &amp;lt;code&amp;gt;@samp&amp;lt;/code&amp;gt;. However, it currently produces plain typewriter in the Wiki, which isn&#039;t ideal since the contrast to plain text isn&#039;t large enough IMHO.&lt;br /&gt;
&lt;br /&gt;
Example: The letter &amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt; is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  My suggestion: The letter ‘&amp;lt;samp&amp;gt;s&amp;lt;/samp&amp;gt;’ is marked with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
An alternative would be to give &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;samp&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; the same appearance as &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 17:15, 30 November 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Done. Thanks for providing the CSS code. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 15:28, 6 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ah, I missed that with this CSS code the quote characters are also in typewriter, which is not correct.  So please add &amp;lt;code&amp;gt;font-family: sans-serif;&amp;lt;/code&amp;gt; to both the &amp;lt;code&amp;gt;samp:before&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;samp:after&amp;lt;/code&amp;gt; block.&lt;br /&gt;
:: [I haven&#039;t found out how to display the quotes with the same font selected by the user to display the main font in Wiki – or is this fixed to always be sans-serif?]&lt;br /&gt;
&lt;br /&gt;
::: Done. I don&#039;t know a better solution either. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:30, 8 December 2025 (UTC)&lt;br /&gt;
:::Thanks! -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:48, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Search issues ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
To get nice snippet headings in the documentation, we often use non-letter stuff like opening and closing quotes in Wiki page titles.  However, as I&#039;ve found out recently, this severely hampers searching.  For example, the snippet [[Using \arpeggioBracket to make divisi more visible]] cannot be immediately found by entering “Using arpeggioBracket” (i.e., without the backslash) into the search field.&lt;br /&gt;
&lt;br /&gt;
I now wonder whether the Wiki can be configured to ignore quote characters and the like in the search.  If this is not possible, I have to add redirections for all articles with such characters in its name.  It&#039;s not a big deal since it can be done programmatically, however, not needing this would be a better solution. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 13:55, 9 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:AFAIU the autocompletion just matches by title prefix (to be clear, this is not about the search results page you get if you press Enter, which is much more complete). I think it&#039;s not too bad, not sure if there&#039;s any way to change it. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 14:13, 9 December 2025 (UTC)&lt;br /&gt;
::OK, thanks.  What do you think of installing the [https://www.mediawiki.org/wiki/Extension:CirrusSearch Cirrus search extension]?  It seems that Wikimedia is using this by default, and it comes with fuzzy search support, AFAICS. -- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 14:47, 9 December 2025 (UTC)&lt;br /&gt;
:::It looks like there is no opensearch package in Fedora, and honestly I&#039;m not too keen on setting up a tool as large and complex as MediaWiki itself requiring its own systemd services and networks ports and so on if it&#039;s only for the sake of this autocompletion… [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:20, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
== More fonts for the Wiki ==&lt;br /&gt;
&lt;br /&gt;
Jean,&lt;br /&gt;
&lt;br /&gt;
please have a look at the snippet [[Changing the default text font family]]: as can be seen, some font shapes for DejaVu Mono are missing.  Is it possible to get them added to the server that runs the Wiki?&lt;br /&gt;
&lt;br /&gt;
BTW, the same holds for the [[UTF-8]] snippet, where Japanese is missing.&lt;br /&gt;
-- [[User:Lemzwerg|Lemzwerg]] ([[User talk:Lemzwerg|talk]]) 15:39, 12 December 2025 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Fixed. [[User:Jean Abou Samra|Jean Abou Samra]] ([[User talk:Jean Abou Samra|talk]]) 18:34, 12 December 2025 (UTC)&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
</feed>