From 6d881cc089df1edebd7e6b2aead5dcfdb3b9fdae Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Wed, 28 Mar 2012 15:02:29 +0000 Subject: pmx: Add manpages, lua script, and a test case git-svn-id: svn://tug.org/texlive/trunk@25762 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/utils/pmx/ChangeLog | 6 + Build/source/utils/pmx/Makefile.am | 25 +++ Build/source/utils/pmx/Makefile.in | 345 ++++++++++++++++++++++++++++-- Build/source/utils/pmx/configure | 77 ++++++- Build/source/utils/pmx/configure.ac | 5 + Build/source/utils/pmx/pmx.1 | 101 +++++++++ Build/source/utils/pmx/pmx.lua | 154 +++++++++++++ Build/source/utils/pmx/pmx.test | 26 +++ Build/source/utils/pmx/pmxab.1 | 24 +++ Build/source/utils/pmx/scor2prt.1 | 18 ++ Build/source/utils/pmx/tests/barsant.mid | Bin 0 -> 3077 bytes Build/source/utils/pmx/tests/barsant.pml | 24 +++ Build/source/utils/pmx/tests/barsant.pmx | 68 ++++++ Build/source/utils/pmx/tests/barsant.tex | 307 ++++++++++++++++++++++++++ Build/source/utils/pmx/tests/barsant1.pmx | 48 +++++ Build/source/utils/pmx/tests/barsant2.pmx | 66 ++++++ 16 files changed, 1270 insertions(+), 24 deletions(-) create mode 100644 Build/source/utils/pmx/pmx.1 create mode 100755 Build/source/utils/pmx/pmx.lua create mode 100755 Build/source/utils/pmx/pmx.test create mode 100644 Build/source/utils/pmx/pmxab.1 create mode 100644 Build/source/utils/pmx/scor2prt.1 create mode 100644 Build/source/utils/pmx/tests/barsant.mid create mode 100644 Build/source/utils/pmx/tests/barsant.pml create mode 100644 Build/source/utils/pmx/tests/barsant.pmx create mode 100644 Build/source/utils/pmx/tests/barsant.tex create mode 100644 Build/source/utils/pmx/tests/barsant1.pmx create mode 100644 Build/source/utils/pmx/tests/barsant2.pmx (limited to 'Build/source/utils/pmx') diff --git a/Build/source/utils/pmx/ChangeLog b/Build/source/utils/pmx/ChangeLog index 55f9ad34d9c..b01a3d422f8 100644 --- a/Build/source/utils/pmx/ChangeLog +++ b/Build/source/utils/pmx/ChangeLog @@ -3,6 +3,12 @@ * arith.h (new): Dummy header to avoid the need to run arithchk. * Makefile.am, configure.ac: Modified to allow cross compilation. + * pmx.lua, pmx.1, pmxab.1, scor2prt.1: New files from CTAN + (http://mirrors.ctan.org/support/pmx/pmx-texmf.zip). + * pmx.test: New shell script for tests. + * tests/barsant*: Test input and expected output. + * Makefile.am, configure.ac: Add the new files. + 2012-03-26 Peter Breitenlohner Adapt pmx-2.6.17 to the TeX Live build system. diff --git a/Build/source/utils/pmx/Makefile.am b/Build/source/utils/pmx/Makefile.am index 1e91f08e1e5..adcfc3a0e69 100644 --- a/Build/source/utils/pmx/Makefile.am +++ b/Build/source/utils/pmx/Makefile.am @@ -230,3 +230,28 @@ EXTRA_libf2c_a_SOURCES += \ EXTRA_libf2c_a_SOURCES += \ $(PMX_TREE)/libf2c/signbit.c +lua_scripts = pmx + +scriptsdir = texmf/scripts/pmx +nodist_bin_SCRIPTS = + +include $(srcdir)/../../texk/am/script_links.am + +texmfdir = $(datarootdir)/$(scriptsdir) +texmf_SCRIPTS = $(lua_scripts:=.lua) + +install-data-hook: install-lua-links + +uninstall-hook: uninstall-links + +man1_MANS = pmx.1 pmxab.1 scor2prt.1 + +## Tests +## +TESTS = pmx.test +EXTRA_DIST += $(TESTS) + +## pmx.test +EXTRA_DIST += tests/barsant* +DISTCLEANFILES = barsant* pmxaerr.dat + diff --git a/Build/source/utils/pmx/Makefile.in b/Build/source/utils/pmx/Makefile.in index 711629253c8..892876becd7 100644 --- a/Build/source/utils/pmx/Makefile.in +++ b/Build/source/utils/pmx/Makefile.in @@ -16,6 +16,7 @@ @SET_MAKE@ + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ @@ -34,16 +35,18 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = pmxab$(EXEEXT) scor2prt$(EXEEXT) -subdir = . DIST_COMMON = README $(am__configure_deps) \ $(srcdir)/../../build-aux/depcomp \ $(srcdir)/../../build-aux/install-sh \ - $(srcdir)/../../build-aux/missing $(srcdir)/Makefile.am \ + $(srcdir)/../../build-aux/missing \ + $(srcdir)/../../texk/am/script_links.am $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure \ ../../build-aux/config.guess ../../build-aux/config.sub \ ../../build-aux/depcomp ../../build-aux/install-sh \ ../../build-aux/ltmain.sh ../../build-aux/missing \ ../../build-aux/texinfo.tex ../../build-aux/ylwrap ChangeLog +@WIN32_TRUE@@WIN32_WRAP_TRUE@am__append_1 = $(wrappers) +subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-warnings.m4 \ $(top_srcdir)/../../m4/kpse-win32.m4 $(top_srcdir)/version.ac \ @@ -109,7 +112,8 @@ am_libf2c_a_OBJECTS = abort_.$(OBJEXT) cabs.$(OBJEXT) derf_.$(OBJEXT) \ wrtfmt.$(OBJEXT) wsfe.$(OBJEXT) wsle.$(OBJEXT) wsne.$(OBJEXT) \ xwsne.$(OBJEXT) dtime_.$(OBJEXT) etime_.$(OBJEXT) libf2c_a_OBJECTS = $(am_libf2c_a_OBJECTS) -am__installdirs = "$(DESTDIR)$(bindir)" +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(texmfdir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) am_pmxab_OBJECTS = pmxab.$(OBJEXT) pmxab_OBJECTS = $(am_pmxab_OBJECTS) @@ -119,6 +123,34 @@ am_scor2prt_OBJECTS = scor2prt.$(OBJEXT) scor2prt_OBJECTS = $(am_scor2prt_OBJECTS) scor2prt_LDADD = $(LDADD) scor2prt_DEPENDENCIES = libf2c.a +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +SCRIPTS = $(nodist_bin_SCRIPTS) $(texmf_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp am__depfiles_maybe = depfiles @@ -131,8 +163,13 @@ SOURCES = $(libf2c_a_SOURCES) $(EXTRA_libf2c_a_SOURCES) \ $(pmxab_SOURCES) $(scor2prt_SOURCES) DIST_SOURCES = $(libf2c_a_SOURCES) $(EXTRA_libf2c_a_SOURCES) \ $(pmxab_SOURCES) $(scor2prt_SOURCES) +man1dir = $(mandir)/man1 +NROFF = nroff +MANS = $(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) @@ -241,7 +278,8 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I ../../m4 -EXTRA_DIST = $(PMX_TREE) $(PMX_TREE)-PATCHES +EXTRA_DIST = $(PMX_TREE) $(PMX_TREE)-PATCHES ../../build-aux/relpath \ + $(TESTS) tests/barsant* INCLUDES = -I$(srcdir)/$(PMX_TREE)/libf2c AM_CFLAGS = #$(WARNING_CFLAGS) pmxab_SOURCES = $(PMX_TREE)/pmxab.c @@ -333,13 +371,24 @@ EXTRA_libf2c_a_SOURCES = $(PMX_TREE)/libf2c/uninit.c \ $(PMX_TREE)/libf2c/ftell64_.c $(PMX_TREE)/libf2c/pow_qq.c \ $(PMX_TREE)/libf2c/qbitbits.c $(PMX_TREE)/libf2c/qbitshft.c \ $(PMX_TREE)/libf2c/signbit.c +lua_scripts = pmx +scriptsdir = texmf/scripts/pmx +nodist_bin_SCRIPTS = $(am__append_1) +all_scripts = $(lua_scripts) $(perl_scripts) $(shell_scripts) +@WIN32_TRUE@@WIN32_WRAP_TRUE@wrappers = $(all_scripts:=.exe) +@WIN32_TRUE@@WIN32_WRAP_TRUE@runscript = $(top_srcdir)/../../texk/texlive/w32_wrapper/runscript.exe +texmfdir = $(datarootdir)/$(scriptsdir) +texmf_SCRIPTS = $(lua_scripts:=.lua) +man1_MANS = pmx.1 pmxab.1 scor2prt.1 +TESTS = pmx.test +DISTCLEANFILES = barsant* pmxaerr.dat all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj am--refresh: Makefile @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../texk/am/script_links.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -362,6 +411,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; +$(srcdir)/../../texk/am/script_links.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck @@ -421,6 +471,70 @@ pmxab$(EXEEXT): $(pmxab_OBJECTS) $(pmxab_DEPENDENCIES) $(EXTRA_pmxab_DEPENDENCIE scor2prt$(EXEEXT): $(scor2prt_OBJECTS) $(scor2prt_DEPENDENCIES) $(EXTRA_scor2prt_DEPENDENCIES) @rm -f scor2prt$(EXEEXT) $(LINK) $(scor2prt_OBJECTS) $(scor2prt_LDADD) $(LIBS) +install-nodist_binSCRIPTS: $(nodist_bin_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(nodist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-nodist_binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(nodist_bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) +install-texmfSCRIPTS: $(texmf_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(texmfdir)" || $(MKDIR_P) "$(DESTDIR)$(texmfdir)" + @list='$(texmf_SCRIPTS)'; test -n "$(texmfdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n' \ + -e 'h;s|.*|.|' \ + -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) { files[d] = files[d] " " $$1; \ + if (++n[d] == $(am__install_max)) { \ + print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ + else { print "f", d "/" $$4, $$1 } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(texmfdir)$$dir'"; \ + $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(texmfdir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-texmfSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(texmf_SCRIPTS)'; test -n "$(texmfdir)" || exit 0; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 's,.*/,,;$(transform)'`; \ + dir='$(DESTDIR)$(texmfdir)'; $(am__uninstall_files_from_dir) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -2842,6 +2956,38 @@ scor2prt.obj: $(PMX_TREE)/scor2prt.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(PMX_TREE)/scor2prt.c' object='scor2prt.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o scor2prt.obj `if test -f '$(PMX_TREE)/scor2prt.c'; then $(CYGPATH_W) '$(PMX_TREE)/scor2prt.c'; else $(CYGPATH_W) '$(srcdir)/$(PMX_TREE)/scor2prt.c'; fi` +install-man1: $(man1_MANS) + @$(NORMAL_INSTALL) + test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" + @list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \ + { for i in $$list; do echo "$$i"; done; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -2895,7 +3041,113 @@ 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 \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ + test "$$failed" -eq 0; \ + else :; fi + distdir: $(DISTFILES) + @list='$(MANS)'; if test -n "$$list"; then \ + list=`for p in $$list; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ + if test -n "$$list" && \ + grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ + echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ + grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ + echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ + echo " typically \`make maintainer-clean' will remove them" >&2; \ + exit 1; \ + else :; fi; \ + else :; fi $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -3061,10 +3313,11 @@ distcleancheck: distclean $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am -all-am: Makefile $(LIBRARIES) $(PROGRAMS) +all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(SCRIPTS) $(MANS) installdirs: - for dir in "$(DESTDIR)$(bindir)"; do \ + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(texmfdir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -3093,6 +3346,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" @@ -3121,13 +3375,14 @@ info: info-am info-am: -install-data-am: - +install-data-am: install-man install-texmfSCRIPTS + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: -install-exec-am: install-binPROGRAMS +install-exec-am: install-binPROGRAMS install-nodist_binSCRIPTS install-html: install-html-am @@ -3137,7 +3392,7 @@ install-info: install-info-am install-info-am: -install-man: +install-man: install-man1 install-pdf: install-pdf-am @@ -3168,30 +3423,74 @@ ps: ps-am ps-am: -uninstall-am: uninstall-binPROGRAMS +uninstall-am: uninstall-binPROGRAMS uninstall-man \ + uninstall-nodist_binSCRIPTS uninstall-texmfSCRIPTS + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-hook +uninstall-man: uninstall-man1 -.MAKE: install-am install-strip +.MAKE: check-am install-am install-data-am install-strip uninstall-am -.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ - clean-binPROGRAMS clean-generic clean-noinstLIBRARIES ctags \ - dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzip \ +.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \ + clean clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \ + ctags dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzip \ dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ distclean distclean-compile distclean-generic distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ + install-data install-data-am install-data-hook install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-man1 install-nodist_binSCRIPTS install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binPROGRAMS + install-texmfSCRIPTS installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-binPROGRAMS \ + uninstall-hook uninstall-man uninstall-man1 \ + uninstall-nodist_binSCRIPTS uninstall-texmfSCRIPTS # in case of an SVN repository dist-hook: rm -rf `find $(distdir) -name .svn` +.PHONY: install-lua-links install-perl-links install-shell-links \ + install-links uninstall-links +@WIN32_TRUE@@WIN32_WRAP_TRUE@$(wrappers): $(runscript) +@WIN32_TRUE@@WIN32_WRAP_TRUE@ $(LN_S) $(runscript) $@ + +install-lua-links: +@WIN32_FALSE@ $(MAKE) $(AM_MAKEFLAGS) TYPE=lua EXT=lua install-links + +install-perl-links: +@WIN32_FALSE@ $(MAKE) $(AM_MAKEFLAGS) TYPE=perl EXT=pl install-links + +install-shell-links: +@WIN32_FALSE@ $(MAKE) $(AM_MAKEFLAGS) TYPE=shell EXT=sh install-links + +# We support native builds, multiplatform or not, as well as distro builds. +install-links: + @REL=`$(SHELL) $(srcdir)/../../build-aux/relpath '$(DESTDIR)' '$(bindir)' '$(datarootdir)'`; \ + if test -z "$$REL"; then \ + echo 'unable to compute relative path for linked $(TYPE) scripts' >&2; \ + exit 1; \ + fi; \ + cd $(DESTDIR)$(bindir) && \ + for f in $($(TYPE)_scripts); do \ + rm -f $$f; \ + echo "creating link '$$f' -> '$$REL/$(scriptsdir)/$$f.$(EXT)'"; \ + $(LN_S) $$REL/$(scriptsdir)/$$f.$(EXT) $$f || exit 1; \ + done + +uninstall-links: +@WIN32_FALSE@ @for f in $(all_scripts); do \ +@WIN32_FALSE@ echo "rm -f '$(DESTDIR)$(bindir)/$$f'"; \ +@WIN32_FALSE@ rm -f "$(DESTDIR)$(bindir)/$$f"; \ +@WIN32_FALSE@ done + +install-data-hook: install-lua-links + +uninstall-hook: uninstall-links # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/Build/source/utils/pmx/configure b/Build/source/utils/pmx/configure index 650b4018cc0..9036b95a01f 100755 --- a/Build/source/utils/pmx/configure +++ b/Build/source/utils/pmx/configure @@ -613,6 +613,10 @@ CPP RANLIB LN_S AM_CPPFLAGS +WIN32_WRAP_FALSE +WIN32_WRAP_TRUE +WIN32_FALSE +WIN32_TRUE WARNING_CFLAGS am__fastdepCC_FALSE am__fastdepCC_TRUE @@ -3736,8 +3740,71 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags -AM_CPPFLAGS='-DNON_UNIX_STDIO' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for native WIN32 or MINGW32" >&5 +$as_echo_n "checking for native WIN32 or MINGW32... " >&6; } +if ${kpse_cv_have_win32+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef WIN32 + choke me +#endif +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __MINGW32__ + choke me +#endif +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + kpse_cv_have_win32=mingw32 +else + kpse_cv_have_win32=native +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + kpse_cv_have_win32=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_win32" >&5 +$as_echo "$kpse_cv_have_win32" >&6; } + + if test "x$kpse_cv_have_win32" != xno; then + WIN32_TRUE= + WIN32_FALSE='#' +else + WIN32_TRUE='#' + WIN32_FALSE= +fi + + if test -r $srcdir/../../texk/texlive/w32_wrapper/runscript.exe; then + WIN32_WRAP_TRUE= + WIN32_WRAP_FALSE='#' +else + WIN32_WRAP_TRUE='#' + WIN32_WRAP_FALSE= +fi + + +AM_CPPFLAGS='-DNON_UNIX_STDIO' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native WIN32 or MINGW32" >&5 @@ -4587,6 +4654,14 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${WIN32_TRUE}" && test -z "${WIN32_FALSE}"; then + as_fn_error $? "conditional \"WIN32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${WIN32_WRAP_TRUE}" && test -z "${WIN32_WRAP_FALSE}"; then + as_fn_error $? "conditional \"WIN32_WRAP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 diff --git a/Build/source/utils/pmx/configure.ac b/Build/source/utils/pmx/configure.ac index 619ba223f67..d0c9afb24f8 100644 --- a/Build/source/utils/pmx/configure.ac +++ b/Build/source/utils/pmx/configure.ac @@ -21,6 +21,11 @@ AC_PROG_CC KPSE_COMPILER_WARNINGS +KPSE_CHECK_WIN32 +AM_CONDITIONAL([WIN32], [test "x$kpse_cv_have_win32" != xno]) +AM_CONDITIONAL([WIN32_WRAP], + [test -r $srcdir/../../texk/texlive/w32_wrapper/runscript.exe]) + dnl initial value for AM_CPPFLAGS AC_SUBST([AM_CPPFLAGS], ['-DNON_UNIX_STDIO']) diff --git a/Build/source/utils/pmx/pmx.1 b/Build/source/utils/pmx/pmx.1 new file mode 100644 index 00000000000..5d699c826b3 --- /dev/null +++ b/Build/source/utils/pmx/pmx.1 @@ -0,0 +1,101 @@ +.\" This manpage is licensed under the GNU Public License +.TH pmx 1 2011-11-28 "pmx script, version 0.2" "" + +.SH NAME +pmx \- This script processes pmx files and then deletes intermediate files + +.SH SYNOPSIS +[ texlua ] +.B pmx[.lua] +{ +.IR option +| +.IR jobname +[ .pmx ] +} ... +.TP +The default effect is to process each file using +.TP 12 +.BR pmxab (1) +(pre-processing pass) +.TP +.BR etex (1) +(first pass) +.TP +.BR musixflx (1) +(second pass) +.TP +.BR etex (1) +(third pass) +.TP +.BR dvips (1) +(dvi to Postscript) +.TP +.BR ps2pdf (1) +(Postscript to Portable Document Format) +.TP +followed by removal of intermediate files. + +.SH OPTIONS +.TP 8 +.B -v +output program name and version number, and quit +.TP +.B -h +output usage summary and quit +.TP +.B -l +changes the TeX processor to +.BR latex (1) +or +.BR pdflatex (1) +.TP +.B -p +changes the TeX processor to +.BR pdfetex (1) +or +.BR pdflatex (1) +(and doesn't run +.BR dvips (1) +and +.BR ps2pdf (1) +or +.BR dvipdfm (1) +) +.TP +.B -d +changes the dvi processor to +.BR dvipdfm (1) +.TP +.B -s +stops processing at the dvi file +.TP +.B -t +stops processing at the tex (and midi) files +.TP +.B -i +retain intermediate files +.TP +.B -f +default processing +.TP 0 +Options affect processing of all succeeding PMX files unless changed by another option. + +.SH SEE ALSO +.BR pmxab (1) +.BR scor2prt (1) +.BR etex (1), +.BR latex (1), +.BR pdfetex (1), +.BR pdflatex (1), +.BR musixflx (1), +.BR dvipdfm (1), +.BR dvips (1), +.BR ps2pdf (1). +.br +pmx260.pdf +.br +pmxccn.pdf + +.SH AUTHOR +This manual page was written by Bob Tennent . diff --git a/Build/source/utils/pmx/pmx.lua b/Build/source/utils/pmx/pmx.lua new file mode 100755 index 00000000000..035c9515d93 --- /dev/null +++ b/Build/source/utils/pmx/pmx.lua @@ -0,0 +1,154 @@ +#!/usr/bin/env texlua + +VERSION = "0.2" + +--[[ + pmx.lua: processes MusiXTeX files using pmxab as a pre-processor (and deletes intermediate files) + + (c) Copyright 2011 Bob Tennent rdt@cs.queensu.ca + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +--]] + +--[[ + + ChangeLog: + version 0.2 2011-11-28 RDT + added -i (retain intermediate files) option + + version 0.1 2011-07-12 RDT + +--]] + +function usage() + print("Usage: [texlua] pmx.lua { option | basename[.pmx] } ... ") + print("options: -v version") + print(" -h help") + print(" -l latex (or pdflatex)") + print(" -p pdfetex (or pdflatex)") + print(" -d dvipdfm") + print(" -s stop at dvi") + print(" -t stop at tex/mid") + print(" -i retain intermediate files") + print(" -f restore default processing") +end + +function whoami () + print("This is pmx.lua version ".. VERSION .. ".") +end + +whoami() +if #arg == 0 then + usage() + os.exit(0) +end + +-- defaults: +tex = "etex" +musixflx = "musixflx" +dvi = "dvips" +ps2pdf = "ps2pdf" +intermediate = 1 + +exit_code = 0 +narg = 1 +repeat + this_arg = arg[narg] + if this_arg == "-v" then + os.exit(0) + elseif this_arg == "-h" then + usage() + os.exit(0) + elseif this_arg == "-l" then + if tex == "pdfetex" then + tex = "pdflatex" + else + tex = "latex" + end + elseif this_arg == "-p" then + if tex == "latex" then + tex = "pdflatex" + else + tex = "pdfetex" + end + dvi = ""; ps2pdf = "" + elseif this_arg == "-d" then + dvi = "dvipdfm"; ps2pdf = "" + elseif this_arg == "-s" then + dvi = ""; ps2pdf = "" + elseif this_arg == "-f" then + tex = "etex"; dvi = "dvips"; ps2pdf = "ps2pdf"; intermediate = 1 + elseif this_arg == "-t" then + tex = ""; dvi = ""; ps2pdf = "" + elseif this_arg == "-i" then + intermediate = 0 + else + filename = this_arg + if filename ~= "" and string.sub(filename, -4, -1) == ".pmx" then + filename = string.sub(filename, 1, -5) + end + if not io.open(filename .. ".pmx", "r") then + print("Non-existent file: ", filename .. ".pmx") + else + print("Processing ".. filename .. ".pmx.") + os.remove( filename .. ".mx2" ) + os.execute("pmxab" .. " " .. filename ) + pmxaerr = io.open("pmxaerr.dat", "r") + if (not pmxaerr) then + print("No log file.") + os.exit(1) + end + linebuf = pmxaerr:read() + err = tonumber(linebuf) + pmxaerr:close() + if ( err == 0 ) and + ((tex == "") or os.execute(tex .. " " .. filename) == 0) and + ((tex == "") or os.execute(musixflx .. " " .. filename) == 0) and + ((tex == "") or os.execute(tex .. " " .. filename) == 0) and + ((tex ~= "latex" and tex ~= "pdflatex") + or (os.execute(tex .. " " .. filename) == 0)) and + (dvi == "" or (os.execute(dvi .. " " .. filename) == 0)) and + (ps2pdf == "" or (os.execute(ps2pdf .. " " .. filename .. ".ps") == 0) ) + then + if ps2pdf ~= "" then + print(filename .. ".pdf generated by " .. ps2pdf .. ".") + end + if intermediate == 1 then -- clean-up: + os.remove( "pmxaerr.dat" ) + os.remove( filename .. ".mx1" ) + os.remove( filename .. ".mx2" ) + if dvi ~= "" then + os.remove( filename .. ".dvi" ) + end + if ps2pdf ~= "" then + os.remove( filename .. ".ps" ) + end + end + else + print("pmx/MusiXTeX processing of " .. filename .. ".pmx fails.\n") + exit_code = 2 + --[[ uncomment for debugging + print("tex = ", tex) + print("dvi = ", dvi) + print("ps2pdf = ", ps2pdf) + --]] + end + + end --if not io.open ... + end --if this_arg == ... + narg = narg+1 +until narg > #arg +os.exit( exit_code ) diff --git a/Build/source/utils/pmx/pmx.test b/Build/source/utils/pmx/pmx.test new file mode 100755 index 00000000000..61c4a8bbd39 --- /dev/null +++ b/Build/source/utils/pmx/pmx.test @@ -0,0 +1,26 @@ +#! /bin/sh + +# Copyright (C) 2012 Peter Breitenlohner +# You may freely use, modify and/or distribute this file. + +rm -f barsant* pmxaerr.dat + +cp $srcdir/tests/barsant.pmx . + +failed= + +./scor2prt barsant \ + && diff barsant1.pmx $srcdir/tests/barsant1.pmx \ + && diff barsant2.pmx $srcdir/tests/barsant2.pmx \ + || failed="$failed scor2prt" + +./pmxab barsant \ + && diff barsant.mid $srcdir/tests/barsant.mid \ + && diff barsant.pml $srcdir/tests/barsant.pml \ + && diff barsant.tex $srcdir/tests/barsant.tex \ + || failed="$failed pmxab" + +test -z "$failed" && exit 0 +echo "failed tests:$failed" +exit 1 + diff --git a/Build/source/utils/pmx/pmxab.1 b/Build/source/utils/pmx/pmxab.1 new file mode 100644 index 00000000000..eddb52d8bd3 --- /dev/null +++ b/Build/source/utils/pmx/pmxab.1 @@ -0,0 +1,24 @@ +.TH pmxab 1 "12 July 2011" "Version 2.6.03" "PMX Manual Page" +.SH NAME +pmxab \- a MusiXTeX preprocessor +.SH SYNOPSIS +.B pmxab +.RI basename [.pmx] + +.SH DESCRIPTION +pmxab is a preprocessor for MusiXTeX. +It's usually invoked by its frontend pmx(1). +To use it to its full benefit you should have installed MusiXTeX Version 1.15 +or higher, and TeX itself. +The goal of PMX is to faciliate the efficient typesetting of scores and parts +that have an almost professional appearance. To learn more about typesetting +with PMX, please read the PMX Manual. + +When invoked directly, pmxab produces tex output utilizing the MusiXTeX +macro set. +.SH SEE ALSO +pmx(1), scor2prt(1), musixtex(1) +.SH AUTHORS +PMX was written by Don Simons . +This manual page was written by Roland Stigge for the Debian +project and revised by Bob Tennent . diff --git a/Build/source/utils/pmx/scor2prt.1 b/Build/source/utils/pmx/scor2prt.1 new file mode 100644 index 00000000000..4e38a161cb0 --- /dev/null +++ b/Build/source/utils/pmx/scor2prt.1 @@ -0,0 +1,18 @@ +.TH scor2prt 1 "5 March 2012" "Version 2.6.17" "scor2prt Manual Page" +.SH NAME +scor2prt \- source-parts separation program for pmx, a MusiXTeX preprocessor +.SH SYNOPSIS +.B scor2prt +.RI basename [.pmx] +.SH DESCRIPTION +scor2prt is part of pmx(1), a preprocessor for MusiXTeX. It can automatically +create parts from a score by generating a set of .pmx files, one for each part, +from a single .pmx file for the score. The appearance of the parts can be +controlled by special commands in the main file. Read the PMX Manual for more +information about that. +.SH SEE ALSO +pmx(1), pmxab(1), musixtex(1), PMX Manual +.SH AUTHORS +PMX was written by Don Simons . +This manual page was written by Roland Stigge for the Debian +project and revised by Bob Tennent . diff --git a/Build/source/utils/pmx/tests/barsant.mid b/Build/source/utils/pmx/tests/barsant.mid new file mode 100644 index 00000000000..48190b2ddac Binary files /dev/null and b/Build/source/utils/pmx/tests/barsant.mid differ diff --git a/Build/source/utils/pmx/tests/barsant.pml b/Build/source/utils/pmx/tests/barsant.pml new file mode 100644 index 00000000000..d219f240277 --- /dev/null +++ b/Build/source/utils/pmx/tests/barsant.pml @@ -0,0 +1,24 @@ +This is PMX, Version 2617 , 28 Jan 12 +Opening barsant.pmx + Starting first PMX pass + + Bar 1 Bar 2 Bar 3 Bar 4 Bar 5 Bar 6 Bar 7 Bar 8 Bar 9 Bar 10 Bar 11 + Bar 12 Bar 13 Bar 14 Bar 15 Bar 16 Bar 17 + Done with first pass + + nlbuf: 50 +Starting second PMX pass + +WARNING + In a title block, you have specified instrument and/or + composer but no title for the piece. + + Bar 1 Bar 2 Bar 3 Bar 4 Bar 5 Bar 6 Bar 7 Bar 8 Bar 9 Bar 10 Bar 11 + Bar 12 Bar 13 Bar 14 Bar 15 Bar 16 Bar 17 +Writing ./barsant.tex + Done with second PMX pass. Now run TeX + +Writing barsant.mid +MIDI instrument 0 is 74 +MIDI instrument 1 is 6 + Bytes used: 2126 807 21 diff --git a/Build/source/utils/pmx/tests/barsant.pmx b/Build/source/utils/pmx/tests/barsant.pmx new file mode 100644 index 00000000000..f10fd67b064 --- /dev/null +++ b/Build/source/utils/pmx/tests/barsant.pmx @@ -0,0 +1,68 @@ +%----------------% +% +% barsant.pmx Revised 29 June 2002 +% +%----------------% +% +% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig, + 2 2 4 4 0 6 0 0 +% +% npages,nsyst,musicsize,fracindent + 1 7 20 0.07 +Basso +Recorder +bt +./ +Abep +Iiharet60 +Tc +Francesco Barsanti (1690-1772) +%% +AeI1.1 +%2S9 +% Bar 1-4 +h +Adagio +c43 r8 f 65 f 42 e 6 r c | [ b 6 c ] d 7 b 65 c4 r8 c 65 t | + \global\figdrop5\Figu{-1}{\fsmsh}\Figu{0}{4}\Figu{4}{2}\ + c t bf4 65 x1842 a8 65 t a t #42 g 6 r g 65 t | + g t #42 f4 \global\figdrop8\ 65 x1842 \Figu06\ e8 d 54 dd1+ 3 c3 b8 6 g 7 / +g85 Gf ed1 d3 [ c3 a8+ gd1x5n s+1 f e d c s+1 ] Gc b8 s c s r e | + [ d35 s c d s e op ] e s d e s f op [ f s e f s g ] g f e f + Gf ed1 d3 c8 r ad1+ g3 | + [ fs15 dd+ ] [ c3 \nbbbbl2\ bf1x3 s+2 a g ] s+2 Gfn [ e1 cd+ ] [ b3 + \nbbbbl2\ a1x3 g f ] Ge ds8 ot e r ed1 dn3 | + [ cs15 ad+ ] [ g3 \nbbbbl2\ f1x3 s+2 e d s+2 ] + Gcn b1 c8 g1+ g3 s f e f s f8 op r1 f ed d3 / +% Bar 5-6 +[ c84 f- 7 ] g 4 g- 3 c ed1 f3 gd1 f3 ed1 d3 | cs4 5 r8 c 65 d4 r8 fd1 e3 / +[ e65 g c e s e1 s ] d6 c b a g f e d dd8 ot c1 c4 r8 ed1 f3 | + g85 gx3 s+1 fs g s+1 bf8 [ a3 s g fn e s ] [ f1 s d cs s d op ] + d s e f s gs op / +% Bar 7-8 +ds43 5 r8 d 65 e # ed1 fs3 gs8 e 7 | a4 r8 a 6 g4 7 r8 g 6 / +a85 ax3n+0+.7 s+2 gs a s+2 c8 bd1 ot a3 g1 Gfs ed8 r1 b+ bd ot a6 s b s | + c86x3 s+2 b a s+2 ax3 s+2 g f s+2 fx3 s+1 e f s+1 c+ + bx3 s+2 a g s+2 gx3 s+2 f e s+2 ex3nf+0+.7 s+2 ds e s+2 b+ / +% Bar 9-10 +f43 7 r8 d 65 e4 gs- 65 | a r r gs+ 65 / +a85x3 s+2 g f s+2 fx3 s+2 e d s+2 dx3nf+0+.7 s+2 cs d s+2 a+ + gs1 b d8 r1 d cd b3 s+0-.3 | + [ c1 s a s bf s gs s ] a s fs s gn s e s + [ fn s ds s e s cs s ] dn s f s e d s / +% Bar 11-12 +[ a83 d- 7 ] e 4 e- #3 a ad1+ b3 c8 gs 65 | a4 # cs- 65 d8 dd1 e3 f8 d / +c15 s+2 gs+ a s+1 d- Gc bd8 ot a1 a4 r8 ed1+ d3 | + cs1 e g bf [ a3 cs e1 s ] e6 s d s cn bf a g f e s + Ge fd1 e3 d8 ot r8 dd1 cn3 / +% Bar 13-14 +g43 b- 65 [-1+1 c8 cd1 d3 ] ef8 b 6 | c4 -3 bf n42 af 6 an #6 / +b14 d f a [ g3 b d1 t ] [+1 d6 t c b a g f e d ] + Gd ed1 ot d3 c8 r1 d dd ot c6 s d s | + ef1 c cd ot b6 s c s en1 c cd ot b6 s c s + f1 c cd ot b6 s c s fs1 c cd ot b6 s c s / +% Bar 15-end +b82 6 gd1 a3 b8 g 7 c4 -3 r | r2 r8 f e s 6 d s 6 | [-1 c f 7 g 4 g- 3 ] c2 / +g45 r1 af gd f3 ef1 bn+ s c s an s [ bf s g s af s fs s ] | + g s e s f s d s [ ef s c s df s bn s ] c8 s a op g op f+ s | + [ e s a- dd ot c1 ] c2 / diff --git a/Build/source/utils/pmx/tests/barsant.tex b/Build/source/utils/pmx/tests/barsant.tex new file mode 100644 index 00000000000..fe003c3404e --- /dev/null +++ b/Build/source/utils/pmx/tests/barsant.tex @@ -0,0 +1,307 @@ +%%%%%%%%%%%%%%%%% +% +% barsant.tex +% +%%%%%%%%%%%%%%%% +\input musixtex +\input pmx +\def\fixdrop{\advance\sysno by 1\ifcase\sysno% +\figdrop= 5 \figdtwo= 4 \or% +\figdrop= 8 \figdtwo= 4 \or% +\figdrop= 5 \figdtwo= 4 \or% +\figdrop= 6 \figdtwo= 4 \or% +\figdrop= 7 \figdtwo= 4 \or% +\figdrop= 4 \figdtwo= 4 \or% +\figdrop= 6 \figdtwo= 4 \fi}% +\setmaxslurs{24}\setmaxinstruments{24}% +\input musixps +\normalmusicsize% +\nopagenumbers +\tracingstats=2\relax +\hsize=524pt +\vsize740pt +\def\nbinstruments{2} +\setstaffs11 +\setclef16 +\setname1{Basso} +\setstaffs21 +\setclef20 +\setname2{Recorder} +\generalsignature{ 0}% +\generalmeter\meterC% +\parindent 37pt +\elemskip1pt\afterruleskip1.000pt\beforeruleskip0pt\relax +\stafftopmarg0pt\staffbotmarg0pt\interstaff{7.9}\relax +\readmod{barsant} +\startmuflex\startpiece\addspace\afterruleskip% +\bigaccid% +\global\parskip 0pt plus 12\Interligne minus 99\Interligne% +\def\upstrut{\znotes&\zcharnote{\upamt}{~}\en}% +\Nosluradjust\Notieadjust\nohalfties +\global\parskip 0pt plus 12\Interligne minus 99\Interligne% +\def\upstrut{\znotes&\zcharnote{\upamt}{~}\en}% +\znotes&\zcharnote{16}{\titles{.2}{}{0}% +{}{.2}{Francesco Barsanti (1690-1772)}{.1}}\en% +% Bar count 1 +\fixdrop% +\starteq% +\pnotes{2.00}\qu{'C}&\zcharnote{16}{\bigfont\kern-30pt Adagio}% +\ibl2{'e}{-2}\qb2g\en% +\pnotes{1.75}&\shlft8{\zcu{'f}}\nbbl2\qbp2e\en% +\pnotes{1.05}\sk\ds&\tbbbl2\tbl2\qb2{'d}\ibbbl2e{-2}\rbbbl2\rbbl2\qb2c% +\en% +\pnotes{1.50}&\qb2{''a}\en% +\pnotes{0.50}\Figu0{6}\Figu4{5}\cl{'F}&\en% +\pnotes{0.83}&\isluru0{''a}\nbbbbl2\qb2{`g}\qb2f\qb2e\qb2d\tslur0d% +\tbl2\qb2c\en% +\pnotes{2.00}\ast{1.05}\Figu0{4}\Figu4{2}\ibl1{'F}{-1}\qb1F\Figu0{6}% +\tbl1\qb1E\ds\cu C&\ast{1.05}\ibl2{'b}1\isluru0b\shlft8{\zcu c}\qb2b% +\tslur0c\tbl2\qb2c\ds\cl e\en% +% Bar count 2 +\xbar +\pnotes{1.05}\Figu0{6}\ibu1{'B}1\qb1B\sk\sk\sk\tbu1\qb1C\sk\sk\sk\Figu0{% +7}\ibu1C{-1}\qb1D\sk\sk\sk\Figu0{6}\Figu4{5}\tbu1\qb1B&\ibbbl2{'d}0% +\isluru0d\qb2d\qb2c\tslur0d\qb2d\uppz e\tbl2\qb2e\ibbbl2e0\isluru0e\qb2e% +\qb2d\tslur0e\qb2e\uppz f\tbl2\qb2f\ibbbl2f0\isluru0f\qb2f\qb2e\tslur0f% +\qb2f\tbl2\qb2g\ibbbl2f0\qb2g\qb2f\qb2e\tbl2\qb2f\en% +\pnotes{1.75}\ast{.83}\qu{'C}&\ast{.83}\ibbl2{'e}{-2}\shlft8{\zcu f}% +\qbp2e\en% +\pnotes{1.05}&\tbbbl2\tbbl2\qb2{'d}\en% +\pnotes{2.00}\sk\ds&\tbl2\qb2{'c}\ds\en% +\pnotes{1.75}\Figu0{6}\Figu4{5}\tieforisd\islurd0{'C}\cu C&% +\ibbl2{''a}{-2}\qbp2a\en% +\pnotes{1.05}&\tbbbl2\tbl2\qb2{'g}\en% +% Bar count 3 +\fixdrop% +\alaligne +\pnotes{1.41}\global\figdrop5\Figu{-1}{\fsmsh}\Figu{0}{4}\Figu{4}{2}% +\tieforts\tslur0{'C}\cu C&\ibbl2{'g}9\bigsh f\qb2f\en% +\pnotes{1.15}&\tbl2\qbp2{''d}\en% +\pnotes{0.58}\Figu0{6}\Figu4{5}\bigfl{'B}\qu B&\en% +\pnotes{1.00}&\ibbbl2{''b}{-3}\qb2c\en% +\pnotes{0.82}&\ast{.36}\nbbbbl2\isluru0{''d}\fl b\xnum{0.82}c3\qb2b\qb2a% +\tslur0b\tbl2\qb2{`g}\en% +\pnotes{1.41}\Figu0{4}\Figu4{2}&\ast{1.24}\ibbl2{'f}9\shlft8{\bigna f\zcu% + f}\qb2e\en% +\pnotes{1.15}&\tbl2\qbp2{''c}\en% +\pnotes{0.58}\Figu0{6}\Figu4{5}\tieforisd\islurd0{'A}\cu A&\en% +\pnotes{1.00}&\ibbbl2{''a}{-3}\qb2b\en% +\pnotes{0.82}&\nbbbbl2\xnum{0.82}{''b}3\qb2a\qb2{`g}\tbl2\qb2f\en% +\pnotes{2.00}\ast{1.49}\Figu{-1}{\fsmsh}\Figu0{4}\Figu4{2}\ibu1{'A}{-1}% +\tieforts\tslur0A\qb1A\Figu0{6}\tbu1\qb1{`G}\ds&\ast{1.49}\ibl2{'d}1% +\shlft{13}{\zcu e}\shake g\sh d\qb2d\tbl2\qb2e\ds\en% +\pnotes{1.73}\Figu0{6}\Figu4{5}\tieforisd\islurd0G\cu G&\ibbl2{'e}{-1}% +\qbp2e\en% +\pnotes{1.00}&\bigna{'d}\tbbbl2\tbl2\qb2d\en% +% Bar count 4 +\xbar +\pnotes{1.41}\Figu{-1}{\fsmsh}\Figu0{4}\Figu4{2}\tieforts\tslur0G\cu G&% +\ibbl2{'d}9\bigsh c\qb2c\en% +\pnotes{1.15}&\tbl2\qbp2{''a}\en% +\pnotes{0.58}\Figu0{6}\Figu4{5}\qu F&\en% +\pnotes{1.00}&\ibbbl2{'f}{-3}\qb2g\en% +\pnotes{0.82}&\nbbbbl2\isluru0{''a}\xnum{0.82}{`g}3\qb2f\qb2e\tslur0f% +\tbl2\qb2d\en% +\pnotes{1.41}\Figu0{4}\Figu4{2}&\ast{1.24}\ibbl2{'c}4\shlft8{\bigna c\zcu% + c}\rbbl2\qb2b\en% +\pnotes{1.00}\sk\global\figdrop8\Figu06\cu E&\qb2{'c}\en% +\pnotes{1.41}&\tbbl2\tbl2\qb2{'g}\en% +\pnotes{1.00}\Figu0{5}\Figu4{4}\ibu1{'A}3\qb1{`D}&\ibbbl2{'f}0\isluru0g% +\qb2g\qb2f\qb2e\tslur0f\tbbbl2\tbbl2\qb2f\en% +\pnotes{1.73}\Figu0{3}\nbbu1\qbp1{'D}&\uppz{'f}\tbl2\qb2f\en% +\pnotes{1.00}\tbbbu1\tbu1\qb1{'C}&\en% +\pnotes{1.41}\Figu0{6}\ibu1{'B}{-2}\qb1B&\qs\ibbl2{'f}{-2}\qb2f\en% +\pnotes{1.73}\Figu0{7}\tbu1\qb1G&\qbp2{'e}\en% +\pnotes{1.00}&\tbbbl2\tbl2\qb2{'d}\en% +% Bar count 5 +\fixdrop% +\alaligne +\pnotes{0.81}\ibl1{''B}{-2}\qb1C&\ibbbbl2{'g}6\qb2e\qb2g\qb2{'c}% +\isluru0e\tbbbbl2\tbbbl2\qb2e\en% +\pnotes{1.48}&\tslur0{''e}\tbl2\qb2e\en% +\pnotes{0.81}\Figu0{7}\tbl1\qb1{'F}&\ibbbbl2{''b}{-4}\qb2d\qb2c\qb2b% +\qb2a\qb2{`g}\qb2f\qb2e\tbl2\qb2d\en% +\pnotes{2.00}\Figu0{4}\ibu1{'E}{-9}\qb1G&\ibl2{'d}{-1}\shake g\qbp2d\en% +\pnotes{1.00}\Figu0{3}\tbu1\qb1G&\en% +\pnotes{1.48}&\tbbl2\tbl2\qb2{'c}\en% +\pnotes{2.00}\ibl1{'D}2\qb1C&\ql{'c}\en% +\pnotes{1.77}\nbbl1\qbp1{'E}&\en% +\pnotes{1.10}\tbbbl1\tbl1\qb1{'F}&\en% +\pnotes{1.77}\ibbl1{'F}{-2}\qbp1G&\ds\en% +\pnotes{1.10}\tbbbl1\qb1{'F}&\en% +\pnotes{1.77}\qbp1{'E}&\ibbl2{'e}2\qbp2e\en% +\pnotes{1.10}\tbbbl1\tbl1\qb1{'D}&\tbbbl2\tbl2\qb2{'f}\en% +% Bar count 6 +\hardspace{ .4pt}% +\xbar +\pnotes{2.00}\Figu0{5}\bigsh{'C}\qu C&\cl{'g}\en% +\pnotes{1.24}&\xnum{1.37}{''a}3\ibbl2{`g}0\isluru0{'a}\qb2{`g}\ast{.15}% +\sh f\qb2f\tslur0{'a}\tbl2\qb2{`g}\en% +\pnotes{2.00}\ast{.15}\ds&\ast{.15}\fl{''b}\cl b\en% +\pnotes{1.10}\Figu0{6}\Figu4{5}\cu{'C}&\ibbbl2{'g}{-3}\isluru0{'a}\qb2a% +\qb2{`g}\ast{.29}\na f\qb2f\tslur0e\tbl2\qb2e\en% +\pnotes{1.48}\qu{'D}\sk\sk\sk\ds\sk\ibbl1F{-1}\qbp1F&\ibbl2{'d}0% +\isluru0f\qb2f\qb2d\tslur0c\bigsh c\qb2c\uppz e\tbl2\qb2d\ibbl2e2% +\isluru0d\qb2d\qb2e\tslur0f\qb2f\en% +\pnotes{0.74}&\uppz{'g}\bigsh g\tbl2\qb2g\en% +\pnotes{1.10}\tbbbl1\tbl1\qb1{'E}&\en% +% Bar count 7 +\fixdrop% +\alaligne +\pnotes{2.00}\ast{.54}\Figu0{5}\sh{'D}\qu D&\ast{.54}\cl{''a}\en% +\pnotes{1.70}&\xnum{3.28}{''b}3\ibbl2a0\isluru0c\qb2a\ast{1.12}\sh{`g}% +\qb2g\tslur0{'c}\tbl2\qb2a\en% +\pnotes{2.00}\ds&\ibl2{''b}{-3}\qb2c\en% +\pnotes{1.92}\Figu0{6}\Figu4{5}\cu{'D}&\shake{''d}\nbbl2\qbp2b\en% +\pnotes{1.63}&\ast{.65}\tbbbl2\tbl2\qb2{''a}\en% +\pnotes{1.80}\Figu{-1}{\sharpfig}\ibl1{'E}0\qb1E&\ibbl2{'g}{-6}% +\rbbl2\qb2g\en% +\pnotes{1.00}&\ast{2.47}\shlft8{\bigsh{'f}\zcu f}\tbl2\qbp2e\en% +\pnotes{1.92}\nbbl1\qbp1{'E}&\en% +\pnotes{1.63}\ast{1.80}\sh{'F}\tbbbl1\tbl1\qb1F&\en% +\pnotes{1.80}\ast{1.19}\ibl1{'G}{-3}\sh G\qb1G&\ast{1.19}\qs\ibbl2{''a}0% +\qb2b\en% +\pnotes{1.92}\Figu0{7}\tbl1\qb1{'E}&\shake{''d}\qbp2b\en% +\pnotes{1.47}&\ast{.65}\isluru0{''a}\nbbbbl2\qb2a\tslur0b\tbl2\qb2b\en% +% Bar count 8 +\xbar +\pnotes{1.70}\ql{''A}\sk\sk\sk\sk\sk\ds&\xnum{1.70}{''d}3\ibbl2b{-3}% +\isluru0e\qb2c\qb2b\tslur0c\tbl2\qb2a\xnum{1.70}b3\ibbl2{`g}{-3}% +\isluru0{'c}\qb2a\qb2{`g}\tslur0{'a}\tbl2\qb2{`f}\xnum{1.70}g3\ibbl2f0% +\isluru0g\qb2f\qb2e\tslur0g\tbl2\qb2f\en% +\pnotes{2.00}\Figu0{6}\cl{''A}&\cl{''c}\en% +\pnotes{1.70}\Figu0{7}\ql{'G}\sk\sk\sk\sk\sk\ds&% +\xnum{1.70}{''c}3\ibbl2a{-3}\isluru0d\qb2b\qb2a\tslur0b\tbl2\qb2{`g}% +\xnum{1.70}{'a}3\ibbl2{`f}{-3}\isluru0{'b}\qb2{`g}\qb2f\tslur0g% +\tbl2\qb2e\xnum{3.28}f3\ibbl2e0\isluru0g\qb2e\ast{1.12}\sh d\qb2d\tslur0g% +\tbl2\qb2e\en% +\pnotes{2.00}\Figu0{6}\cl{'G}&\cl{''b}\en% +% Bar count 9 +\xbar +\pnotes{1.70}\Figu0{7}\ql{'F}\sk\sk\sk\sk\sk\ds&% +\xnum{1.70}{''b}3\ibbl2{`g}{-3}\isluru0{'c}\qb2a\qb2{`g}\tslur0{'a}% +\tbl2\qb2{`f}\xnum{1.70}g3\ibbl2e{-3}\isluru0{'a}\qb2{`f}\qb2e\tslur0f% +\tbl2\qb2d\xnum{3.28}e3\ibbl2d0\isluru0f\qb2d\ast{1.12}\sh c\qb2c\tslur0f% +\tbl2\qb2d\en% +\pnotes{2.00}\Figu0{6}\Figu4{5}\cu{'D}&\cl{''a}\en% +\pnotes{1.80}\ast{.82}\ql{'E}&\ast{.82}\ibbl2{''a}6\sh{`g}\qb2g% +\tbbl2\qb2{'b}\en% +\pnotes{2.00}&\tbl2\qb2{''d}\en% +\pnotes{1.80}\Figu0{6}\Figu4{5}\bigsh G\qu G&\qs\ibbl2{''c}0\qb2d\en% +\pnotes{1.92}&\qbp2{''c}\en% +\pnotes{1.63}&\ast{.65}\isu0{''b}{-.3}\tbbbl2\tbl2\qb2b\en% +% Bar count 10 +\fixdrop% +\def\raisebarno{7.5\internote}% +\alaligne +\def\raisebarno{3.5\internote}% +\pnotes{1.77}\qu{'A}\sk\sk\sk\ast{1.44}\ast{1.44}\qp\sk\sk\sk\ast{1.44}% +\ast{1.44}\ast{1.44}\qp\sk\sk\sk\ast{1.44}\ast{1.44}\ast{1.44}\Figu0{6}% +\Figu4{5}\bigsh G\ql G&\ibbl2{''b}{-1}\tslur0c\qb2c\isluru0a\qb2a% +\ast{1.44}\tslur0b\fl b\qb2b\ast{1.44}\isluru0{`g}\sh g\tbl2\qb2g% +\ibbl2g{-1}\tslur0{'a}\qb2a\ast{1.44}\isluru0{`f}\sh f\qb2f\ast{1.44}% +\tslur0g\na g\qb2g\isluru0e\tbl2\qb2e\ast{1.44}\ibbl2e{-1}\tslur0f\na f% +\qb2f\ast{1.44}\isluru0d\sh d\qb2d\tslur0e\qb2e\ast{1.44}\isluru0c\sh c% +\tbl2\qb2c\ast{1.44}\ibbl2e0\tslur0d\na d\qb2d\isluru0f\qb2f\qb2e\tslur0d% +\tbl2\qb2d\en% +% Bar count 11 +\xbar +\pnotes{1.77}\ibl1{'G}{-6}\qb1{'A}\sk\ast{1.44}\Figu0{7}\tbl1\qb1{`D}&% +\ibbl2{'e}1\isluru0e\qb2c\ast{1.44}\sh g\qb2g\tslur0{'b}\qb2a% +\tbl2\qb2{`d}\en% +\pnotes{2.00}\ast{2.36}\Figu0{4}\ibu1{'C}{-9}\qb1E&\ast{2.36}\ibu2{'b}{-2}% +\shlft8{\zcu c}\shake{'c}\qbp2{`b}\en% +\pnotes{1.00}\Figu{-1}{\fsmsh}\Figu0{3}\tbu1\qb1E&\en% +\pnotes{1.77}&\tbbu2\tbu2\qb2{'a}\en% +\pnotes{2.00}\ibl1{'C}9\qb1A&\qu{'a}\en% +\pnotes{1.90}\nbbl1\qbp1{''A}&\en% +\pnotes{1.56}\ast{1.01}\tbbbl1\tbl1\qb1{''B}&\en% +\pnotes{2.00}\ibl1{''B}{-7}\qb1C&\ds\en% +\pnotes{1.90}\ast{1.20}\Figu0{6}\Figu4{5}\sh{'G}\tbl1\qb1G&\ast{1.20}% +\ibbl2{'e}{-3}\qbp2e\en% +\pnotes{1.56}&\ast{1.01}\tbbbl2\tbl2\qb2{'d}\en% +% Bar count 12 +\xbar +\pnotes{1.77}\ast{.75}\Figu{-1}{\sharpfig}\ql{''A}&\ast{.75}\ibbl2{'d}6% +\sh c\qb2c\qb2e\qb2g\ast{1.44}\fl{'b}\tbl2\qb2b\en% +\pnotes{1.56}\Figu0{6}\Figu4{5}\bigsh{'C}\qu C&\ibbbl2{''b}6\qb2a% +\ast{1.64}\sh c\tbbbl2\qb2c\en% +\pnotes{1.77}&\isluru0{''e}\tbl2\qb2e\en% +\pnotes{1.38}&\ibbbbl2{''c}{-4}\tslur0e\qb2e\isluru0d\qb2d\ast{1.82}\na c% +\qb2c\ast{1.82}\fl b\qb2b\qb2a\qb2{`g}\qb2f\tslur0e\tbl2\qb2e\en% +\pnotes{1.90}\ast{2.74}\ibl1{'D}0\qb1D&\ast{2.74}\ibbl2{'f}{-3}\shlft8{% +\zcu e}\qbp2f\en% +\pnotes{1.56}&\ast{1.01}\tbbbl2\tbbl2\qb2{'e}\en% +\pnotes{1.90}\nbbl1\qbp1{'D}&\shake{'g}\tbl2\qb2d\en% +\pnotes{1.56}\ast{1.01}\tbbbl1\tbl1\qb1{'E}&\en% +\pnotes{2.00}\ibl1{'F}{-5}\qb1F&\ds\en% +\pnotes{1.90}\tbl1\qb1{'D}&\ibbl2{'d}{-3}\qbp2d\en% +\pnotes{1.56}&\ast{2.32}\na{'c}\tbbbl2\tbl2\qb2c\en% +% Bar count 13 +\fixdrop% +\alaligne +\endeq% +\pnotes{1.48}\ql{'G}&\ibbl2{'d}4\qb2b\qb2d\qb2f\tbl2\qb2{'a}\en% +\pnotes{1.14}\Figu0{6}\Figu4{5}\qu{'B}&\ibbbl2{''a}5\qb2{`g}% +\tbbbl2\qb2{'b}\en% +\pnotes{1.48}&\tieforisu\isluru0{''d}\tbl2\qb2d\en% +\pnotes{0.88}&\ibbbbl2{''c}{-4}\tieforts\tslur0d\qb2d\qb2c\qb2b\qb2a% +\qb2{`g}\qb2f\qb2e\tbl2\qb2d\en% +\pnotes{1.73}\ast{1.13}\ibu1{'C}1\qb1C&\ast{1.13}\ibbl2{'d}{-2}\shlft8{% +\zcu d}\shake g\qbp2e\en% +\pnotes{1.14}&\tbbbl2\tbbl2\qb2{'d}\en% +\pnotes{1.73}\nbbu1\qbp1{'C}&\tbl2\qb2{'c}\en% +\pnotes{1.14}\tbbbu1\tbu1\qb1{'D}&\en% +\pnotes{1.48}\ast{.42}\ibu1{'D}{-3}\fl E\qb1E&\ast{.42}\qs\ibbl2{'c}0% +\qb2d\en% +\pnotes{1.73}\Figu0{6}\tbu1\qb1{'B}&\shake{'g}\qbp2d\en% +\pnotes{0.88}&\isluru0{'c}\nbbbbl2\qb2c\tslur0d\tbl2\qb2d\en% +% Bar count 14 +\xbar +\pnotes{1.48}\Figu{-1}{\fsmfl}\Figu0{3}\qu{'C}&\ibbl2{'b}0\bigfl e\qb2e% +\qb2c\en% +\pnotes{1.73}&\shake{'g}\qbp2c\en% +\pnotes{0.88}&\isluru0{'b}\nbbbbl2\qb2b\tslur0c\tbl2\qb2c\en% +\pnotes{1.48}\ast{.68}\Figu{-1}{\fsmna}\Figu0{4}\Figu4{2}\bigfl{'B}\qu B% +&\ast{.68}\ibbl2{'b}0\na e\qb2e\qb2c\en% +\pnotes{1.73}&\shake{'g}\qbp2c\en% +\pnotes{0.88}&\isluru0{'b}\nbbbbl2\qb2b\tslur0c\tbl2\qb2c\en% +\pnotes{1.48}\Figu0{6}\bigfl{'A}\qu A&\ibbl2{'b}0\qb2f\qb2c\en% +\pnotes{1.73}&\shake{'g}\qbp2c\en% +\pnotes{0.88}&\isluru0{'b}\nbbbbl2\qb2b\tslur0c\tbl2\qb2c\en% +\pnotes{1.48}\ast{.68}\Figu{-1}{\fsmsh}\Figu0{6}\bigna{'A}\qu A&% +\ast{.68}\ibbl2{'b}0\sh f\qb2f\qb2c\en% +\pnotes{1.73}&\shake{'g}\qbp2c\en% +\pnotes{0.88}&\isluru0{'b}\nbbbbl2\qb2b\tslur0c\tbl2\qb2c\en% +% Bar count 15 +\fixdrop% +\alaligne +\pnotes{2.00}\Figu0{6}\ibu1{'B}{-1}\qb1B&\ql{'g}\en% +\pnotes{1.73}\nbbu1\qbp1G&\en% +\pnotes{1.00}\tbbbu1\tbu1\qb1{'A}&\en% +\pnotes{1.41}\ibu1{'A}{-2}\qb1B&\qs\ast{.11}\ibbl2{''a}{-2}\fl a\qb2a\en% +\pnotes{1.73}\Figu0{7}\tbu1\qb1G&\qbp2{'g}\en% +\pnotes{1.00}&\tbbbl2\tbl2\qb2{'f}\en% +\pnotes{1.41}\ast{.53}\Figu{-1}{\fsmfl}\Figu0{3}\qu{'C}\sk\sk\sk% +\ast{.11}\ast{.11}\ast{.11}\qp&\ast{.53}\ibbl2{'g}2\fl e\qb2e\ast{.11}% +\isluru0{'b}\na b\qb2b\tslur0c\qb2c\ast{.11}\isluru0a\na a\tbl2\qb2a% +\ast{.11}\ibbl2a{-1}\tslur0b\fl b\qb2b\isluru0{`g}\qb2g\ast{.11}% +\tslur0{'a}\fl a\qb2a\ast{.11}\isluru0{`f}\sh f\tbl2\qb2f\en% +% Bar count 16 +\xbar +\pnotes{1.41}\hpause&\ibbl2{'f}{-1}\tslur0g\qb2g\isluru0e\qb2e\tslur0f% +\qb2f\isluru0d\tbl2\qb2d\ast{.11}\ibbl2d{-1}\tslur0e\fl e\qb2e\isluru0c% +\qb2c\ast{.11}\tslur0d\fl d\qb2d\ast{.11}\isluru0b\na b\tbl2\qb2b\en% +\pnotes{2.00}\ds\ibl1{'F}{-2}\qb1F\Figu0{6}\isluru1E\qb1E\Figu0{6}% +\tslur1D\tbl1\qb1D&\ibl2{'a}2\tslur0c\qb2c\uppz e\qb2a\uppz e\qb2{`g}% +\isluru0{'f}\tbl2\qb2f\en% +% Bar count 17 +\xbar +\pnotes{2.00}\ibu1{'E}{-2}\qb1C\Figu0{7}\qb1F\Figu0{4}\qb1G&% +\ibl2{'c}{-1}\tslur0e\qb2e\qb2a\shake g\qbp2d\en% +\pnotes{1.00}\Figu0{3}\tbu1\qb1G&\en% +\pnotes{1.41}&\tbbl2\tbl2\qb2{'c}\en% +\pnotes{4.00}\hu{'C}&\hl{'c}\en% +\Endpiece +\vskip .1\Interligne\eject\endmuflex +\bye diff --git a/Build/source/utils/pmx/tests/barsant1.pmx b/Build/source/utils/pmx/tests/barsant1.pmx new file mode 100644 index 00000000000..2aea3d406eb --- /dev/null +++ b/Build/source/utils/pmx/tests/barsant1.pmx @@ -0,0 +1,48 @@ +%----------------% +% +% barsant.pmx Revised 29 June 2002 +% +%----------------% +% +% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig, + 1 + 1 + 4 + 4 + 0 + 6 + .00 + 0 +% +% npages,nsyst,musicsize,fracindent + 1 + 7 + 20 + .05 + +b +./ +Ti +Basso +Abep +Tc +Francesco Barsanti (1690-1772) +% Bar 1-4 +h +Adagio +c43 r8 f 65 f 42 e 6 r c | [ b 6 c ] d 7 b 65 c4 r8 c 65 t | +\global\figdrop5\Figu{-1}{\fsmsh}\Figu{0}{4}\Figu{4}{2}\ +c t bf4 65 x1842 a8 65 t a t #42 g 6 r g 65 t | +g t #42 f4 \global\figdrop8\ 65 x1842 \Figu06\ e8 d 54 dd1+ 3 c3 b8 6 g 7 / +% Bar 5-6 +[ c84 f- 7 ] g 4 g- 3 c ed1 f3 gd1 f3 ed1 d3 | cs4 5 r8 c 65 d4 r8 fd1 e3 / +% Bar 7-8 +ds43 5 r8 d 65 e # ed1 fs3 gs8 e 7 | a4 r8 a 6 g4 7 r8 g 6 / +% Bar 9-10 +f43 7 r8 d 65 e4 gs- 65 | a r r gs+ 65 / +% Bar 11-12 +[ a83 d- 7 ] e 4 e- #3 a ad1+ b3 c8 gs 65 | a4 # cs- 65 d8 dd1 e3 f8 d / +% Bar 13-14 +g43 b- 65 [-1+1 c8 cd1 d3 ] ef8 b 6 | c4 -3 bf n42 af 6 an #6 / +% Bar 15-end +b82 6 gd1 a3 b8 g 7 c4 -3 r | r2 r8 f e s 6 d s 6 | [-1 c f 7 g 4 g- 3 ] c2 / diff --git a/Build/source/utils/pmx/tests/barsant2.pmx b/Build/source/utils/pmx/tests/barsant2.pmx new file mode 100644 index 00000000000..a21386f4768 --- /dev/null +++ b/Build/source/utils/pmx/tests/barsant2.pmx @@ -0,0 +1,66 @@ +%----------------% +% +% barsant.pmx Revised 29 June 2002 +% +%----------------% +% +% nv,noinst,mtrnuml,mtrdenl,mtrnump,mtrdenp,xmtrnum0,isig, + 1 + 1 + 4 + 4 + 0 + 6 + .00 + 0 +% +% npages,nsyst,musicsize,fracindent + 1 + 7 + 20 + .05 + +t +./ +Ti +Recorder +Abep +Tc +Francesco Barsanti (1690-1772) +S9 +% Bar 1-4 +h +Adagio +g85 Gf ed1 d3 [ c3 a8+ gd1x5n s+1 f e d c s+1 ] Gc b8 s c s r e | +[ d35 s c d s e op ] e s d e s f op [ f s e f s g ] g f e f +Gf ed1 d3 c8 r ad1+ g3 | +[ fs15 dd+ ] [ c3 \nbbbbl2\ bf1x3 s+2 a g ] s+2 Gfn [ e1 cd+ ] [ b3 +\nbbbbl2\ a1x3 g f ] Ge ds8 ot e r ed1 dn3 | +[ cs15 ad+ ] [ g3 \nbbbbl2\ f1x3 s+2 e d s+2 ] +Gcn b1 c8 g1+ g3 s f e f s f8 op r1 f ed d3 / +% Bar 5-6 +[ e65 g c e s e1 s ] d6 c b a g f e d dd8 ot c1 c4 r8 ed1 f3 | +g85 gx3 s+1 fs g s+1 bf8 [ a3 s g fn e s ] [ f1 s d cs s d op ] +d s e f s gs op / +% Bar 7-8 +a85 ax3n+0+.7 s+2 gs a s+2 c8 bd1 ot a3 g1 Gfs ed8 r1 b+ bd ot a6 s b s | +c86x3 s+2 b a s+2 ax3 s+2 g f s+2 fx3 s+1 e f s+1 c+ +bx3 s+2 a g s+2 gx3 s+2 f e s+2 ex3nf+0+.7 s+2 ds e s+2 b+ / +% Bar 9-10 +a85x3 s+2 g f s+2 fx3 s+2 e d s+2 dx3nf+0+.7 s+2 cs d s+2 a+ +gs1 b d8 r1 d cd b3 s+0-.3 | +[ c1 s a s bf s gs s ] a s fs s gn s e s +[ fn s ds s e s cs s ] dn s f s e d s / +% Bar 11-12 +c15 s+2 gs+ a s+1 d- Gc bd8 ot a1 a4 r8 ed1+ d3 | +cs1 e g bf [ a3 cs e1 s ] e6 s d s cn bf a g f e s +Ge fd1 e3 d8 ot r8 dd1 cn3 / +% Bar 13-14 +b14 d f a [ g3 b d1 t ] [+1 d6 t c b a g f e d ] +Gd ed1 ot d3 c8 r1 d dd ot c6 s d s | +ef1 c cd ot b6 s c s en1 c cd ot b6 s c s +f1 c cd ot b6 s c s fs1 c cd ot b6 s c s / +% Bar 15-end +g45 r1 af gd f3 ef1 bn+ s c s an s [ bf s g s af s fs s ] | +g s e s f s d s [ ef s c s df s bn s ] c8 s a op g op f+ s | +[ e s a- dd ot c1 ] c2 / -- cgit v1.2.3