<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.lilypond.community/index.php?action=history&amp;feed=atom&amp;title=Roman_numerals_for_analysis</id>
	<title>Roman numerals for analysis - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lilypond.community/index.php?action=history&amp;feed=atom&amp;title=Roman_numerals_for_analysis"/>
	<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Roman_numerals_for_analysis&amp;action=history"/>
	<updated>2026-05-04T17:34:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.lilypond.community/index.php?title=Roman_numerals_for_analysis&amp;diff=4896&amp;oldid=prev</id>
		<title>Lemzwerg: New category</title>
		<link rel="alternate" type="text/html" href="https://wiki.lilypond.community/index.php?title=Roman_numerals_for_analysis&amp;diff=4896&amp;oldid=prev"/>
		<updated>2025-11-21T23:35:24Z</updated>

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

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

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

		<summary type="html">&lt;p&gt;Import snippet from LSR&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This function is designed to simplify the creation of Roman numerals for harmonic analysis.&lt;br /&gt;
&lt;br /&gt;
Syntax: &amp;lt;code&amp;gt;\markup \rN { &amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;...list of symbols...&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;lt;code&amp;gt; }&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter a Roman numeral as a list of symbols, with each element separated by spaces. List symbols in order of appearance, omitting those not needed: Roman numeral; letter for a quality requiring a special indicator (i.e., diminished, half-diminished, etc.); top (or only) number of inversion symbol; bottom number; &amp;amp;quot;/&amp;amp;quot; (if secondary function); Roman numeral.&lt;br /&gt;
&lt;br /&gt;
Preceding either Roman numeral with &amp;amp;quot;s&amp;amp;quot; or &amp;amp;quot;b&amp;amp;quot; or &amp;amp;quot;n&amp;amp;quot; will attach a sharp, flat, or natural: for example, &amp;amp;quot;svi&amp;amp;quot; or &amp;amp;quot;bVII&amp;amp;quot; (quotation marks not needed). Note names are possible: Cs, Dn, Eb.&lt;br /&gt;
&lt;br /&gt;
Use the following symbols for qualities (if a superscript indication is needed): &amp;amp;quot;o&amp;amp;quot; for diminished, &amp;amp;quot;h&amp;amp;quot; for half-diminished, &amp;amp;quot;+&amp;amp;quot; for augmented, &amp;amp;quot;b&amp;amp;quot; for flat. You may use any combination of &amp;amp;quot;M&amp;amp;quot; and &amp;amp;quot;m&amp;amp;quot; here: M, mm, MM7, Mm, Mmm9, etc. Added notes are also possible: add6, add9, etc.&lt;br /&gt;
&lt;br /&gt;
The analysis can be created in a &amp;lt;code&amp;gt;Lyrics&amp;lt;/code&amp;gt; context.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lilypond version=&amp;quot;2.24.0&amp;quot;&amp;gt;&lt;br /&gt;
%% http://lsr.di.unimi.it/LSR/Item?id=710&lt;br /&gt;
&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
%% A function to create Roman numerals for harmonic analysis.&lt;br /&gt;
%%&lt;br /&gt;
%% Syntax: \markup \rN { ...list of symbols... }&lt;br /&gt;
%%&lt;br /&gt;
%% List symbols in this order (as needed): Roman numeral, quality, top number of&lt;br /&gt;
%% inversion symbol, bottom number, &amp;quot;/&amp;quot; (if secondary function), Roman numeral.&lt;br /&gt;
%%&lt;br /&gt;
%% &amp;quot;bVII&amp;quot; creates flat VII; &amp;quot;svi&amp;quot; creates sharp vi; &amp;quot;Ab&amp;quot; creates A-flat; &amp;quot;As&amp;quot; A-sharp&lt;br /&gt;
%%&lt;br /&gt;
%% Qualities: use &amp;quot;o&amp;quot; for diminished, &amp;quot;h&amp;quot; for half-diminished,&lt;br /&gt;
%% &amp;quot;+&amp;quot; for augmented, &amp;quot;b&amp;quot; for flat.  Use any combination of &amp;quot;M&amp;quot; and &amp;quot;m&amp;quot;:&lt;br /&gt;
%% M, m, MM7, Mm, mm, Mmm9, etc. Added-note chords: add, add6, etc.&lt;br /&gt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;br /&gt;
&lt;br /&gt;
#(define rN-size -1) %% change to vary size of numerals&lt;br /&gt;
&lt;br /&gt;
#(define scaling (magstep rN-size))&lt;br /&gt;
&lt;br /&gt;
%%% change constant to adjust distance between characters&lt;br /&gt;
#(define X-separation (* scaling 0.2)) &lt;br /&gt;
&lt;br /&gt;
%%% symmetrical distance between inversion figures and midline&lt;br /&gt;
#(define inversion-Y-separation (* scaling 0.1)) &lt;br /&gt;
&lt;br /&gt;
#(define dim&lt;br /&gt;
   (markup&lt;br /&gt;
    #:override `(thickness . ,scaling)&lt;br /&gt;
    #:draw-circle (* scaling 0.25) (* scaling 0.1) #f))&lt;br /&gt;
&lt;br /&gt;
#(define half-dim&lt;br /&gt;
   (markup&lt;br /&gt;
    #:override `(thickness . ,scaling)&lt;br /&gt;
    #:combine&lt;br /&gt;
    (#:combine dim &lt;br /&gt;
               #:draw-line `(,(* scaling -0.3) . ,(* scaling -0.3)))&lt;br /&gt;
    #:draw-line `(,(* scaling 0.3) . ,(* scaling 0.3))))&lt;br /&gt;
&lt;br /&gt;
#(define augmented&lt;br /&gt;
   (markup&lt;br /&gt;
    #:override `(thickness . ,scaling)&lt;br /&gt;
    #:combine&lt;br /&gt;
    (#:combine #:draw-line `(,(* scaling -0.25) . 0) &lt;br /&gt;
               #:draw-line `(0 . ,(* scaling -0.25)))&lt;br /&gt;
    (#:combine #:draw-line `(,(* scaling 0.25) . 0) &lt;br /&gt;
               #:draw-line `(0 . ,(* scaling 0.25)))))&lt;br /&gt;
&lt;br /&gt;
#(define (acc? str num) (string? number?)&lt;br /&gt;
   (eq? num (string-index str (char-set #\b #\s #\n)))) %% checks for accidental&lt;br /&gt;
&lt;br /&gt;
#(define acc `((#\b . ,(markup #:flat))&lt;br /&gt;
               (#\s . ,(markup #:sharp))&lt;br /&gt;
               (#\n . ,(markup #:natural))))&lt;br /&gt;
&lt;br /&gt;
#(define-markup-command (rN layout props symbols) (markup-list?)&lt;br /&gt;
   ;; isolate and normalize segment of list before slash (if any)&lt;br /&gt;
   (let* ((up-to-slash (car (split-list-by-separator symbols (lambda (x) (equal? x &amp;quot;/&amp;quot;)))))&lt;br /&gt;
          (first-part (append up-to-slash (make-list (- 4 (length up-to-slash)) &amp;quot;&amp;quot;)))&lt;br /&gt;
          (normalized&lt;br /&gt;
           (if (or (string-index (cadr first-part) (string-&amp;gt;char-set &amp;quot;mMaAdD&amp;quot;))&lt;br /&gt;
                   (not (null? (lset-intersection equal? &amp;#039;(&amp;quot;o&amp;quot; &amp;quot;h&amp;quot; &amp;quot;+&amp;quot; &amp;quot;b&amp;quot;) (cdr first-part)))))&lt;br /&gt;
               first-part&lt;br /&gt;
               (list (car first-part) &amp;quot;&amp;quot; (cadr first-part) (caddr first-part))))&lt;br /&gt;
          (base (car normalized))&lt;br /&gt;
          (quality (cadr normalized))&lt;br /&gt;
          (quality-marker&lt;br /&gt;
           (cond ((equal? &amp;quot;o&amp;quot; quality) (markup #:raise (* 0.5 scaling) dim))&lt;br /&gt;
                 ((equal? &amp;quot;h&amp;quot; quality) (markup #:raise (* 0.5 scaling) half-dim))&lt;br /&gt;
                 ((equal? &amp;quot;+&amp;quot; quality) (markup #:raise (* 0.5 scaling) augmented))&lt;br /&gt;
                 ((equal? &amp;quot;b&amp;quot; quality) (markup #:raise (* 0.5 scaling) #:flat))&lt;br /&gt;
                 ((equal? &amp;quot;&amp;quot; quality) (markup #:null))&lt;br /&gt;
                 (else (markup quality))))&lt;br /&gt;
          (upper (caddr normalized))&lt;br /&gt;
          (lower (cadddr normalized))&lt;br /&gt;
          ;; isolate slash and what follows&lt;br /&gt;
          (second-part (if (member &amp;quot;/&amp;quot; symbols) (member &amp;quot;/&amp;quot; symbols) &amp;#039;(&amp;quot;&amp;quot; &amp;quot;&amp;quot;)))&lt;br /&gt;
          (rN-two (cadr second-part))&lt;br /&gt;
          (base-stencil&lt;br /&gt;
           (interpret-markup layout&lt;br /&gt;
                             (cons (list `(word-space . ,X-separation) `(font-size . ,rN-size)) props)&lt;br /&gt;
                             (markup base)))&lt;br /&gt;
          ;; calculate Y midpoint of base (for positioning quality and inversion)&lt;br /&gt;
          (vertical-offset (/ (interval-length (ly:stencil-extent base-stencil Y)) 2))&lt;br /&gt;
          (inversion-stencil&lt;br /&gt;
           (if (equal? lower &amp;quot;&amp;quot;)&lt;br /&gt;
               (ly:stencil-translate-axis (interpret-markup layout&lt;br /&gt;
                                                            (cons (list `(word-space . ,X-separation)) props)&lt;br /&gt;
                                                            (markup #:fontsize (- rN-size 5) upper))&lt;br /&gt;
                                          inversion-Y-separation Y)&lt;br /&gt;
&lt;br /&gt;
               (ly:stencil-aligned-to&lt;br /&gt;
                (ly:stencil-combine-at-edge&lt;br /&gt;
                 (interpret-markup layout&lt;br /&gt;
                                   (cons (list `(word-space . ,X-separation)) props)&lt;br /&gt;
                                   (markup #:fontsize (- rN-size 5) upper))&lt;br /&gt;
                 Y DOWN&lt;br /&gt;
                 (interpret-markup layout&lt;br /&gt;
                                   (cons (list `(word-space . ,X-separation)) props)&lt;br /&gt;
                                   (markup #:fontsize (- rN-size 5) lower))&lt;br /&gt;
                 (* 2 inversion-Y-separation))&lt;br /&gt;
                Y CENTER)))&lt;br /&gt;
          (quality-marker-stencil&lt;br /&gt;
           (ly:stencil-translate-axis (interpret-markup layout&lt;br /&gt;
                                                        (cons (list `(word-space . ,X-separation)) props)&lt;br /&gt;
                                                        (markup #:fontsize (- rN-size 5) quality-marker))&lt;br /&gt;
                                      inversion-Y-separation Y))&lt;br /&gt;
          &lt;br /&gt;
          ;; base, quality marker, and inversion&lt;br /&gt;
          (one&lt;br /&gt;
           (ly:stencil-combine-at-edge&lt;br /&gt;
&lt;br /&gt;
            (ly:stencil-combine-at-edge&lt;br /&gt;
             (interpret-markup layout&lt;br /&gt;
                               (cons (list `(word-space . ,X-separation)) props)&lt;br /&gt;
                               ;; accommodates an accidental either before or after&lt;br /&gt;
                               (cond ((acc? base 0)&lt;br /&gt;
                                      (markup #:fontsize (- rN-size 4)&lt;br /&gt;
                                              #:raise (* 2 vertical-offset) #:vcenter&lt;br /&gt;
                                              (assoc-ref acc (string-ref base 0))&lt;br /&gt;
                                              #:fontsize rN-size (substring base 1)))&lt;br /&gt;
&lt;br /&gt;
                                     ((acc? base (1- (string-length base)))&lt;br /&gt;
                                      (markup #:fontsize rN-size&lt;br /&gt;
                                              (substring base 0 (1- (string-length base)))&lt;br /&gt;
                                              #:fontsize (- rN-size 4) #:raise (/ scaling 2)&lt;br /&gt;
                                              (assoc-ref acc (string-ref base (1- (string-length base))))))&lt;br /&gt;
&lt;br /&gt;
                                     (else (markup #:fontsize rN-size base))))&lt;br /&gt;
             X RIGHT&lt;br /&gt;
             (ly:stencil-translate-axis quality-marker-stencil vertical-offset Y) &lt;br /&gt;
             (if (equal? &amp;quot;&amp;quot; quality) 0 X-separation))&lt;br /&gt;
&lt;br /&gt;
            X RIGHT&lt;br /&gt;
            (ly:stencil-translate-axis inversion-stencil vertical-offset Y)&lt;br /&gt;
            (if (equal? &amp;quot;&amp;quot; upper) 0 X-separation)))&lt;br /&gt;
&lt;br /&gt;
          ;; slash and after&lt;br /&gt;
          (two&lt;br /&gt;
           (ly:stencil-combine-at-edge&lt;br /&gt;
            (interpret-markup layout&lt;br /&gt;
                              (cons (list `(word-space . ,X-separation) `(font-size . ,rN-size)) props)&lt;br /&gt;
                              (if (equal? &amp;quot;&amp;quot; lower)&lt;br /&gt;
                                  (markup (car second-part))&lt;br /&gt;
                                  (markup #:hspace X-separation (car second-part))))&lt;br /&gt;
            X RIGHT&lt;br /&gt;
            (interpret-markup layout&lt;br /&gt;
                              (cons (list `(word-space . ,X-separation)) props)&lt;br /&gt;
                              (cond ((acc? rN-two 0)&lt;br /&gt;
                                     (markup #:fontsize (- rN-size 4)&lt;br /&gt;
                                             #:raise scaling (assoc-ref acc (string-ref rN-two 0))&lt;br /&gt;
                                             #:fontsize rN-size (substring rN-two 1)))&lt;br /&gt;
&lt;br /&gt;
                                    ((acc? rN-two (1- (string-length rN-two)))&lt;br /&gt;
                                     (markup #:fontsize rN-size&lt;br /&gt;
                                             (substring rN-two 0 (1- (string-length rN-two)))&lt;br /&gt;
                                             #:fontsize (- rN-size 4) #:raise (/ scaling 2)&lt;br /&gt;
                                             (assoc-ref acc (string-ref rN-two (1- (string-length rN-two))))))&lt;br /&gt;
&lt;br /&gt;
                                    (else (markup #:fontsize rN-size rN-two))))&lt;br /&gt;
            X-separation)))&lt;br /&gt;
&lt;br /&gt;
     (if (equal? rN-two &amp;quot;&amp;quot;)&lt;br /&gt;
         one&lt;br /&gt;
         (ly:stencil-combine-at-edge one X RIGHT two 0))))&lt;br /&gt;
&lt;br /&gt;
bassline = \relative c&amp;#039; {&lt;br /&gt;
  \clef bass&lt;br /&gt;
  \key g \major&lt;br /&gt;
  \time 3/4&lt;br /&gt;
  g4 fis f&lt;br /&gt;
  e es es&lt;br /&gt;
  d2 d,4&lt;br /&gt;
  g2.&lt;br /&gt;
  \bar &amp;quot;||&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
analysis = \lyricmode {&lt;br /&gt;
  \set stanza = #&amp;quot;G:     &amp;quot; % use spaces to adjust position of key indication&lt;br /&gt;
  \markup \rN { I } \markup \rN { V 6 5 } \markup \rN { vii o 4 3 / IV }&lt;br /&gt;
  \markup \rN { IV 6 } \markup \rN { ii h 4 3 } \markup \rN { Fr + 6 }&lt;br /&gt;
  \markup \rN { I 6 4 } \markup \rN { V 7 }&lt;br /&gt;
  \markup \rN { I }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
\score {&lt;br /&gt;
  \new Staff &amp;lt;&amp;lt;&lt;br /&gt;
    \new Voice = &amp;quot;bass&amp;quot; { \bassline }&lt;br /&gt;
    \new Lyrics \lyricsto &amp;quot;bass&amp;quot; { \analysis }&lt;br /&gt;
  &amp;gt;&amp;gt;&lt;br /&gt;
  \layout {&lt;br /&gt;
    \context {&lt;br /&gt;
      \Score&lt;br /&gt;
      \override SpacingSpanner.shortest-duration-space = #5&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lilypond&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Text]]&lt;br /&gt;
[[Category:Scheme]]&lt;br /&gt;
[[Category:Symbols and glyphs]]&lt;br /&gt;
[[Category:Specific notation]]&lt;/div&gt;</summary>
		<author><name>Jean Abou Samra</name></author>
	</entry>
</feed>