summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/musixflx/ChangeLog7
-rw-r--r--Build/source/texk/musixflx/Makefile.am9
-rw-r--r--Build/source/texk/musixflx/Makefile.in111
-rwxr-xr-xBuild/source/texk/musixflx/tests/musixflx.test11
-rw-r--r--Build/source/texk/musixflx/tests/quod.mx184
-rw-r--r--Build/source/texk/musixflx/tests/quod.mx24
-rw-r--r--Build/source/texk/musixflx/tests/quod.tex187
7 files changed, 407 insertions, 6 deletions
diff --git a/Build/source/texk/musixflx/ChangeLog b/Build/source/texk/musixflx/ChangeLog
index d21547e7ccc..628dadcd5ee 100644
--- a/Build/source/texk/musixflx/ChangeLog
+++ b/Build/source/texk/musixflx/ChangeLog
@@ -1,3 +1,10 @@
+2009-10-23 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * tests/musixflx.test (new): Shell script for a test case.
+ * tests/quod.{mx1,mx2,tex} (new): Test data supplied by
+ Bob Tennent <rdt@cs.queensu.ca>, mail from 2009-10-23.
+ * Makefile.am: Adapted.
+
2009-10-19 Peter Breitenlohner <peb@mppmu.mpg.de>
Import musixflx-0.83.2 from CTAN.
diff --git a/Build/source/texk/musixflx/Makefile.am b/Build/source/texk/musixflx/Makefile.am
index 7b7e10cd7dd..43dea5d38e7 100644
--- a/Build/source/texk/musixflx/Makefile.am
+++ b/Build/source/texk/musixflx/Makefile.am
@@ -27,3 +27,12 @@ nodist_musixflx_SOURCES = \
nodist_man1_MANS = \
$(MUSIXFLX_TREE)/musixflx.1
+## Tests.
+##
+TESTS = tests/musixflx.test
+EXTRA_DIST += $(TESTS)
+DISTCLEANFILES =
+## tests/musixflx.test
+EXTRA_DIST += tests/quod.mx1 tests/quod.mx2 tests/quod.tex
+DISTCLEANFILES += quod.mx1 quod.mx2
+
diff --git a/Build/source/texk/musixflx/Makefile.in b/Build/source/texk/musixflx/Makefile.in
index 0bcc8258f4f..ca8286b4832 100644
--- a/Build/source/texk/musixflx/Makefile.in
+++ b/Build/source/texk/musixflx/Makefile.in
@@ -95,6 +95,8 @@ NROFF = nroff
MANS = $(nodist_man1_MANS)
ETAGS = etags
CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@@ -193,7 +195,8 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
ACLOCAL_AMFLAGS = -I ../../m4
-EXTRA_DIST = $(MUSIXFLX_TREE) $(MUSIXFLX_TREE)-PATCHES
+EXTRA_DIST = $(MUSIXFLX_TREE) $(MUSIXFLX_TREE)-PATCHES $(TESTS) \
+ tests/quod.mx1 tests/quod.mx2 tests/quod.tex
AM_CFLAGS = $(WARNING_CFLAGS)
nodist_musixflx_SOURCES = \
$(MUSIXFLX_TREE)/musixflx.c
@@ -201,6 +204,8 @@ nodist_musixflx_SOURCES = \
nodist_man1_MANS = \
$(MUSIXFLX_TREE)/musixflx.1
+TESTS = tests/musixflx.test
+DISTCLEANFILES = quod.mx1 quod.mx2
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -420,6 +425,98 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
distdir: $(DISTFILES)
@list='$(MANS)'; if test -n "$$list"; then \
list=`for p in $$list; do \
@@ -584,6 +681,7 @@ distcleancheck: distclean
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
all-am: Makefile $(PROGRAMS) $(MANS) config.h
installdirs:
@@ -611,6 +709,7 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -689,12 +788,12 @@ uninstall-am: uninstall-binPROGRAMS uninstall-man
uninstall-man: uninstall-man1
-.MAKE: all install-am install-strip
+.MAKE: all check-am install-am install-strip
-.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
- clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \
- dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \
- dist-zip distcheck distclean distclean-compile \
+.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \
+ clean clean-binPROGRAMS clean-generic ctags dist dist-all \
+ dist-bzip2 dist-gzip dist-hook dist-lzma dist-shar dist-tarZ \
+ dist-xz dist-zip distcheck distclean distclean-compile \
distclean-generic distclean-hdr distclean-tags distcleancheck \
distdir distuninstallcheck dvi dvi-am html html-am info \
info-am install install-am install-binPROGRAMS install-data \
diff --git a/Build/source/texk/musixflx/tests/musixflx.test b/Build/source/texk/musixflx/tests/musixflx.test
new file mode 100755
index 00000000000..4027c99c2c2
--- /dev/null
+++ b/Build/source/texk/musixflx/tests/musixflx.test
@@ -0,0 +1,11 @@
+#! /bin/sh
+
+# Copyright (C) 2010 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+rm -f quod.mx2
+cp -f $srcdir/tests/quod.mx1 .
+
+./musixflx quod || exit 1
+diff $srcdir/tests/quod.mx2 quod.mx2 || exit 1
+
diff --git a/Build/source/texk/musixflx/tests/quod.mx1 b/Build/source/texk/musixflx/tests/quod.mx1
new file mode 100644
index 00000000000..929680ee19f
--- /dev/null
+++ b/Build/source/texk/musixflx/tests/quod.mx1
@@ -0,0 +1,84 @@
+0.83
+S
+505.89pt
+10.0pt
+0.0pt
+6.0pt
+4.8pt
+12.80003pt
+5.59998pt
+0 0 10.40005pt
+0 1 19.58401pt
+0 1 0.0pt
+0 0 0.4pt
+b 0
+1 1 125.90411pt
+1 1 0.0pt
+1 0 0.4pt
+b 1
+2 1 125.90411pt
+2 1 0.0pt
+2 0 0.4pt
+b 2
+3 1 114.67212pt
+3 1 0.0pt
+3 0 0.4pt
+b 3
+4 1 125.90411pt
+4 1 0.0pt
+4 0 0.4pt
+b 4
+5 1 131.52011pt
+5 1 0.0pt
+5 0 0.4pt
+b 5
+6 1 141.93611pt
+6 1 0.0pt
+6 0 0.4pt
+b 6
+7 1 114.67212pt
+7 1 0.0pt
+7 0 0.4pt
+b 7
+8 1 120.33609pt
+8 1 0.0pt
+8 0 10.80011pt
+b 7
+l 10.80011pt 6.40005pt
+9 1 19.58401pt
+9 1 0.0pt
+9 0 0.4pt
+b 8
+10 1 120.28812pt
+10 1 0.0pt
+10 0 0.4pt
+b 9
+11 1 120.28812pt
+11 1 0.0pt
+11 0 0.4pt
+b 10
+12 1 131.52011pt
+12 1 0.0pt
+12 0 0.4pt
+b 11
+13 1 147.55211pt
+13 1 0.0pt
+13 0 0.4pt
+b 12
+14 1 144.3841pt
+14 1 0.0pt
+14 0 0.4pt
+b 13
+15 1 137.13611pt
+15 1 0.0pt
+15 0 0.4pt
+b 14
+16 1 125.90411pt
+16 1 0.0pt
+16 0 0.4pt
+b 15
+17 1 123.5521pt
+17 1 0.0pt
+17 0 6.40005pt
+b 16
+* 0 0
diff --git a/Build/source/texk/musixflx/tests/quod.mx2 b/Build/source/texk/musixflx/tests/quod.mx2
new file mode 100644
index 00000000000..fb0c9b29226
--- /dev/null
+++ b/Build/source/texk/musixflx/tests/quod.mx2
@@ -0,0 +1,4 @@
+\lineset{ 1}{ 5}{ 4.36049pt}{ 5.45061pt}{ 0.00000pt}% 0 - 4
+\lineset{ 2}{ 5}{ 4.31860pt}{ 5.39825pt}{ 0.00000pt}% 5 - 8
+\lineset{ 3}{ 4}{ 4.48817pt}{ 5.61022pt}{ 0.00000pt}% 9 - 12
+\lineset{ 4}{ 4}{ 4.33818pt}{ 5.42273pt}{ 0.00000pt}% 13 - 16
diff --git a/Build/source/texk/musixflx/tests/quod.tex b/Build/source/texk/musixflx/tests/quod.tex
new file mode 100644
index 00000000000..a210b339b21
--- /dev/null
+++ b/Build/source/texk/musixflx/tests/quod.tex
@@ -0,0 +1,187 @@
+\input musixtex.tex
+\input musixsty.tex
+
+
+\def\tr#1{\zcharnote{#1}{\ppff tr}}%
+\def\pince#1{\shake{#1}}%
+\vsize9.75in
+\voffset-0.5in
+\hsize7.0in
+\hoffset-0.25in
+\smallmusicsize
+\bigaccid
+\advance\parindent by 10pt
+\def\writebarno{\llap{\ninebf\the\barno\barnoadd}}%
+\def\raisebarno{4\internote}%
+\def\shiftbarno{1.5\Interligne}%
+\nobarnumbers
+\geometricskipscale
+
+\def\omit#1{}%
+
+\def\tql#1#2{\tbl{#1}\qb{#1}{#2}}
+\def\tqu#1#2{\tbu{#1}\qb{#1}{#2}}
+\def\nbbqu#1#2{\nbbu{#1}\qb{#1}{#2}}
+\def\nbbql#1#2{\nbbl{#1}\qb{#1}{#2}}
+
+\def\nqql#1#2{\roffset{0.25}{\tbbl{#1}\tbbl{#1}\qb{#1}{#2}}}
+\def\nqqu#1#2{\roffset{0.25}{\tbbu{#1}\tbbu{#1}\qb{#1}{#2}}}
+\def\tqql#1#2{\roffset{0.25}{\tbbl{#1}\tbl{#1}\qb{#1}{#2}}}
+\def\tqqu#1#2{\roffset{0.25}{\tbbu{#1}\tbu{#1}\qb{#1}{#2}}}
+\def\tqqql#1#2{\roffset{0.25}{\tbbbl{#1}\tbl{#1}\qb{#1}{#2}}}
+\def\tqqqu#1#2{\roffset{0.25}{\tbbbu{#1}\tbu{#1}\qb{#1}{#2}}}
+
+\instrumentnumber4
+\setclef1\bass\setbassclefsymbol1\bassoct
+\setclef4\treble\settrebleclefsymbol4\trebleoct
+\catcodesmusic
+\generalsignature{+1}
+\generalmeter\meterC
+\setname1{B}
+\setname2{T}
+\setname3{A}
+\setname4{S}
+\songtop4
+\songbottom1
+\fulltitle{Quodlibet}
+\subtitle{Variation 30 of the Goldberg Variations for Clavier}
+\title{Quodlibet}
+\author{J. S. Bach (1685-1750)}
+\shortauthor{J. S. Bach}
+\othermention{Arranged for Recorders by R. D. Tennent}
+\maketitle
+\startbarno=0
+\nobarnumbers
+\stafftopmarg=4.0\Interligne%
+\staffbotmarg=4.0\Interligne%
+%\setinterinstrument3{2.5\internote}%
+\startpiece\addspace\afterruleskip%
+\systemnumbers%
+\Notes\ds&\cu d&\ds&\ds\en
+\bar%1
+\Notes\hl N&\ibu1g2\qb1{ghi}\tqu1j&&\hpause\en
+\Notes\hl M&\ibl1k{-2}\qb1k\en
+\notes&\nbbl1\qb1j\tql1i&&\qp\en
+\Notes&\ibu1h0\qb1h&&\ds\en
+\notes&\nbbu1\qb1g\tqu1h&&\cu d\en
+\def\atnextbar{\znotes&&\centerpause&&\en}%
+\bar%2
+\Notes\hl L&\ibu1i{-2}\qb1i\tqu1h&\ql n&\ibu3g2\qb3{gh}\en
+\Notes&\itied1g\qu g&\ql n&\qb3i\tqu3j\en
+\Notes\ql{.K}&\ttie1\qu g&\ql o&\ibl3k{-2}\qb3k\en
+\notes&&&\nbbl3\qb3j\tql3i\en
+\Notes&\ibu1f0\pince{n}\qb1f&\cl o&\cu h\en
+\notes\cu J&\nbbu1\qb1e\tqu1f&\ds&\ds\en
+\bar%3
+\Notes\hu I&\qu g&\ibl2n{-1}\qb2{no}&\ql k\en
+\Notes&\ds\cl k&\qb2{n}\tql2{=m}&\ql k\en
+\Notes\hu J&\ibu1j{-2}\qb1{ji}&\ibl2j{0}\qb2{lk}&\ql l\en
+\Notes&\qb1h\tqu1g&\qb2j\tql2p&\ql l\en
+\bar%4
+\Notes\hl K&\itied1f\pince{n}\qu f&\ibl2o{-1}\qb2{on}&\ibl3k{-1}\qb3{kl}\en
+\notes&\ttie1\ibbu1e{-2}\qb1f\tbbu1\qb1e&\qb2o&\qb3k\en
+%\vnotes1.5\elemskip&\nbbbu1\qb1e\tbbu1\qb1f&&\en
+\Notes&\itied1d\tqu1d&\tql2m&\tql3j\en
+\Notes\qu G&\ttie1\qu d&\ibl2n{-2}\qb2n\tql2m&\ibu3h{-1}\pince{p}\qb3i\tqu3h\en
+\Notes\ds&\qp&\ibl2n{-5}\qb2n&\qu g\en
+\notes\ibbl0b{-1}\qb0b\tql0a&&\tql2k&\en
+\bar%5
+\Notes\ibl0M0\qb0N&\ql n&\ibl2n2\qb2n&\hpause\en
+\notes\nbbl0\qb0M\tql0N&&\qb2o&\en
+\Notes\ibl0K0\qb0L&\ql n&\qb2p&\en
+\notes\nbbl0\qb0K\tql0L&&\tql2q&\en
+\Notes\ql{.M}&\ql o&\ibl2r{-2}\qb2r&\qp\en
+\notes&&\nbbl2\qb2q\tql2p&\en
+\Notes\sk\cu I&\ql o&\ibl2o6\qb2o\itieu2r\tql2r&\ds\cl k\en
+\bar%6
+\Notes\ql{.L}&\ibl1n{-1}\qb1{no}&\ttie2\ibl2r{-2}\qb2r\tql2q&\ibl3n{-2}\qb3{nm}\en
+\Notes&\qb1n&\ql p&\qb3l\en
+\notes\ibbl0M2\qb0M\tql0N&\tql1m&&\tql3k\en
+\Notes\itieu0a\ql a&\ibl1l{-2}\qb1l&\ql{.o}&\pince{n}\ibl3i0\qb3{^j}\en
+\notes&\tql1k&&\nbbl3\qb3i\tql3j\en
+\notes\ttie0\ibbl0a{-2}\qb0{aN}&\cl{^j}&&\cu h\en
+\notes\qb0M\tql0L&\ds&\ibbl2i2\qb2i\qsk\tql2{^j}&\ds\en
+\bar%7
+\Notes\ql M&\ibu1g0\qb1{fg}&\ibl2k0\qb2{kl}&\qu h\en
+\Notes\ql K&\qb1h\tqu1f&\qb2m\tql2k&\qu h\en
+\Notes\ql N&\ibu1g{-2}\qb1{gf}&\ibl2i4\qb2{ik}&\ql i\en
+\Notes\qu G&\qb1e\tqu1d&\qb2n\tql2m&\ql i\en
+\bar%8
+\Notes\qu{.H}&\ibu1c4\qb1{^cd}&\ibl2l{-1}\qb2{.l}\tqql2k\isluru2j&\ibu3i{-1}\qb3{hi}\en
+\notes&\qb1e&\tslur2j\ibbl2j0\qb2k\hqsk\tbbl2\qb2{^j}&\qb3h\en
+\Notes\cu{^J}&\itied1h\tqu1h&\itieu2l\tql2l&\tqu3g\en
+\notes\ql K&\ttie1\ibu1h{-1}\qb1h&\ttie2\ibbl2l{-1}\qb2{lk}&\ibu3f{-1}\qb3f\en
+\notes&\tqu1g&\qb2l\tql2j&\tqu3e\en
+\Notes\cl K&\cu f&\cl k&\cu d\en
+%\nobarnumbers%
+%\setrightrepeat%
+%\alaligne%
+\advance\barno by -1%
+%\leftrepeat%
+%\systemnumbers%
+\leftrightrepeat
+%\advance\barno by -1%
+\Notes\ds&\cl m&\ds&\cl o\en
+\bar%9
+%\notes&&&\lcharnote q{\ninebf \the\barno}\enotes
+\Notes\ql d\sk\ql c&\ibl1k0\qb1{kmk}\tql1{m}&\ql o\sk\ql o&\ibl3m0\qb3{mom}\tql3o\en
+\Notes\ql b&\ibl1k0\qb1n&\ql p&\ibl3k2\qb3k\en
+\notes&\qb1k&&\nbbl3\qb3l\tql3m\en
+\Notes\ql N&\qb1k\tql1n&\ql p&\ibl3n{-4}\qb3n\tql3l\en
+\bar%10
+\Notes\ibl0b{-1}\qb0{cbc}\tql0a&\cl l\ds\qp&\ibl2o{-1}\qb2{opo}\tql2n&\ibl3o{-2}\qb3{onm}\tql3l\en
+\Notes\ql{.b}&\ql m&\ibl2m{-2}\qb2m&\ibl3j0\qb3{^k}\en
+\notes&&\tql2l&\nbbl3\qb3{^j}\tql3k\en
+\Notes\sk\cl a&\ql m&\cl{^k}\ds&\ibl3i8\qb3i\tql3p\en
+\bar%11
+\Notes\ql{N}\sk\ql{N}&\ibl1l0\qb1{nln}\tql1l&\ql p\sk\ql p&\ibl3m0\qb3{lpl}\tql3p\en
+\notes\ql{.a}&\ibl1m{-1}\qb1{m*n}&\ql q&\ibbl3k2\qb3{^klm}\tql3n\en
+\Notes&\qb1m&\ql q&\ibl3o{-2}\qb3o\en
+\notes\cl{^a}&\tql1l&&\nbbl3\qb3n\tql3m\en
+\bar%12
+\Notes\ql b&\ibl1k2\qb1{^k}&\ibl2o{-1}\qb2p&\ibl3n{-2}\qb3n\en
+\notes&\nbbl1\qb1l\tql1m&\qb2q&\nbbl3\qb3m\tql3l\qsk\en
+\notes\qu I&\itied1i\qu i&\qb2p&\ibbl3k0\qb3{^kl}\en
+\notes&&\tql2o&\qb3m\tql3k\en
+\Notes\ql{.L}&\ttie1\ibu1i0\qb1i&\ibl2n0\qb2n&\itieu3l\hl l\en
+\notes&\nbbu1\qb1h\tqu1i&\nbbl2\qb2m\tql2n&\en
+\Notes&\ibu1g2\qb1g&\cl l&\en
+\notes\cl{=K}&\nbbu1\qb1h\tqu1i&\ds&\en
+\bar%13
+\notes\qu J&\ibl1j2\qb1j\sk\qb1k&\hpause&\ttie3\ibbl3k1\isluru3l\qb3l\tslur3k\qb3k\isluru3m\qb3m\tslur3l\tql3l\en
+\notes\ql c&\qb1l\sk\tql1m&&\ibbl3m1\isluru3n\qb3n\tbbl3\tslur3m\qb3m\tql3o\en
+\notes\ql{.b}&\ibl1n{-1}\qb1n\sk\nbbl1\qb1m\tql1l&\ql n&\ql{.k}\en
+\Notes&\cl k&\ibl2k{-4}\qb2n&\en
+\notes\ibbu0J{-2}\qb0J\tqu0I&\ds&\tql2g&\ibbl3j2\qb3j\tql3k\en
+\bar%14
+\Notes\qu{.H}&\ds&\ibl2j1\qb2{.j}&\ibl3l2\qb3l\en
+\notes&\cu h&\qsk\tqql2k&\nbbl3\qb3m\tql3n\en
+\Notes&\ibu1e0\qb1e&\ibl2j{-2}\qb2j&\ibl3o{-2}\qb3o\en
+\notes\ibbu0I2\qb0I\tqu0J&\nbbu1\qb1d\tqu1e&\tql2i&\tql3n\en
+\notes\ql{.K}&\ibu1g1\qb1f&\ibu2h1\qb2h&\ibbl3l{-2}\pince{o}\qb3m\tbbl3\qb3l\en
+%\vnotes1.4\elemskip&&&\nbbbl3\qb3l\tbbl3\qb3m\en
+\Notes&\itied1g\tqu1g&\tqu2i&\tql3k\en
+\Notes&\ttie1\ibu1g{-1}\qb1g&\ibl2j2\qb2j&\ibu3i{-6}\qb3j\en
+\notes\ibbu0J2\qb0J\tqu0K&\tqu1f&\tql2k&\tqu3d\en
+\bar%15
+\Notes\ibu0I0\qb0G&\qu d&\ibu2i0\qb2i&\ibl3i0\qb3i\en
+\notes\qb0H&&\nbbu2\qb2h\tqu2i&\qb3j\en
+\Notes\qb0I&\qu d&\cu g&\qb3k\en
+\Notes\tqu0G&&\ds&\tql3i\en
+\Notes\qu{.J}&\qu e&\ds&\ibu3j{-2}\qb3j\en
+\notes&&\ibbl2l{-2}\qb2l\tql2k&\qb3i\en
+\Notes&\qu e&\ibl2j4\qb2j&\qb3h\en
+\Notes\cu{^J}&&\tql2l&\tqu3g\en
+\bar%16
+\notes\ql K&\ibu1g{1}\qb1d&\ibbl2h1\qb2{hk}&\ibu3f2\qb3f\en
+\notes&\qb1e&\qb2j\tql2i&\tqu3g\en
+\notes\ql K&\qb1d&\ibbl2j0\qb2j\tbbl2\qb2h&\ibu3h{-4}\qb3h\en
+\Notes&\tqu1j&\itieu2k\tql2k&\tqu3f\en
+\Notes\ql N&\ibu1i{-2}\qb1i&\ttie2\ibl2j0\qb2k&\qu g\en
+\notes&\tqu1h&\nbbl2\qb2j\tql2k&\en
+\Notes\cu G&\cu g&\cl i&\cu g\en
+\setrightrepeat
+%\mulooseness=+1%
+\endpiece%
+\eject
+\end