From 2d2fa840b09458e3a77c720440ef55f6f92f0251 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 16 Apr 2017 22:31:37 +0000 Subject: -mpmx 2.7.6 (24nov16) git-svn-id: svn://tug.org/texlive/trunk@43869 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/texk/texlive/linked_scripts/Makefile.am | 1 - .../source/texk/texlive/linked_scripts/Makefile.in | 1 - .../texk/texlive/linked_scripts/pmx/pmx2pdf.lua | 5 - .../source/texk/texlive/linked_scripts/scripts.lst | 1 - Master/bin/amd64-freebsd/pmx2pdf | 1 - Master/bin/amd64-netbsd/pmx2pdf | 1 - Master/bin/armel-linux/pmx2pdf | 1 - Master/bin/armhf-linux/pmx2pdf | 1 - Master/bin/i386-cygwin/pmx2pdf | 1 - Master/bin/i386-freebsd/pmx2pdf | 1 - Master/bin/i386-linux/pmx2pdf | 1 - Master/bin/i386-netbsd/pmx2pdf | 1 - Master/bin/i386-solaris/pmx2pdf | 1 - Master/bin/powerpc-linux/pmx2pdf | 1 - Master/bin/sparc-solaris/pmx2pdf | 1 - Master/bin/universal-darwin/pmx2pdf | 1 - Master/bin/win32/pmx2pdf.exe | Bin 1536 -> 0 bytes Master/bin/x86_64-cygwin/pmx2pdf | 1 - Master/bin/x86_64-darwin/pmx2pdf | 1 - Master/bin/x86_64-linux/pmx2pdf | 1 - Master/bin/x86_64-solaris/pmx2pdf | 1 - Master/texmf-dist/doc/generic/pmx/README | 2 +- Master/texmf-dist/doc/generic/pmx/pmx-install.pdf | Bin 30836 -> 90652 bytes Master/texmf-dist/doc/generic/pmx/pmx-install.tex | 2 +- Master/texmf-dist/doc/generic/pmx/pmx25-274.html | 320 --- Master/texmf-dist/doc/generic/pmx/pmx25-276.html | 332 +++ Master/texmf-dist/doc/generic/pmx/pmx274.pdf | Bin 267772 -> 0 bytes Master/texmf-dist/doc/generic/pmx/pmx274.tex | 2693 ------------------- Master/texmf-dist/doc/generic/pmx/pmx276.pdf | Bin 0 -> 315325 bytes Master/texmf-dist/doc/generic/pmx/pmx276.tex | 2705 ++++++++++++++++++++ Master/texmf-dist/scripts/pmx/pmx2pdf.lua | 5 - Master/texmf-dist/tex/generic/pmx/pmx.tex | 2 +- Master/tlpkg/libexec/ctan2tds | 1 - Master/tlpkg/tlpsrc/pmx.tlpsrc | 1 - 34 files changed, 3040 insertions(+), 3047 deletions(-) delete mode 100755 Build/source/texk/texlive/linked_scripts/pmx/pmx2pdf.lua delete mode 120000 Master/bin/amd64-freebsd/pmx2pdf delete mode 120000 Master/bin/amd64-netbsd/pmx2pdf delete mode 120000 Master/bin/armel-linux/pmx2pdf delete mode 120000 Master/bin/armhf-linux/pmx2pdf delete mode 120000 Master/bin/i386-cygwin/pmx2pdf delete mode 120000 Master/bin/i386-freebsd/pmx2pdf delete mode 120000 Master/bin/i386-linux/pmx2pdf delete mode 120000 Master/bin/i386-netbsd/pmx2pdf delete mode 120000 Master/bin/i386-solaris/pmx2pdf delete mode 120000 Master/bin/powerpc-linux/pmx2pdf delete mode 120000 Master/bin/sparc-solaris/pmx2pdf delete mode 120000 Master/bin/universal-darwin/pmx2pdf delete mode 100755 Master/bin/win32/pmx2pdf.exe delete mode 120000 Master/bin/x86_64-cygwin/pmx2pdf delete mode 120000 Master/bin/x86_64-darwin/pmx2pdf delete mode 120000 Master/bin/x86_64-linux/pmx2pdf delete mode 120000 Master/bin/x86_64-solaris/pmx2pdf delete mode 100644 Master/texmf-dist/doc/generic/pmx/pmx25-274.html create mode 100644 Master/texmf-dist/doc/generic/pmx/pmx25-276.html delete mode 100644 Master/texmf-dist/doc/generic/pmx/pmx274.pdf delete mode 100644 Master/texmf-dist/doc/generic/pmx/pmx274.tex create mode 100644 Master/texmf-dist/doc/generic/pmx/pmx276.pdf create mode 100644 Master/texmf-dist/doc/generic/pmx/pmx276.tex delete mode 100755 Master/texmf-dist/scripts/pmx/pmx2pdf.lua diff --git a/Build/source/texk/texlive/linked_scripts/Makefile.am b/Build/source/texk/texlive/linked_scripts/Makefile.am index ca2e26bb171..4261a686ca7 100644 --- a/Build/source/texk/texlive/linked_scripts/Makefile.am +++ b/Build/source/texk/texlive/linked_scripts/Makefile.am @@ -164,7 +164,6 @@ texmf_other_scripts = \ pfarrei/pfarrei.tlu \ pkfix-helper/pkfix-helper \ pkfix/pkfix.pl \ - pmx/pmx2pdf.lua \ pmxchords/pmxchords.lua \ pst2pdf/pst2pdf.pl \ ptex-fontmaps/kanji-config-updmap-sys.sh \ diff --git a/Build/source/texk/texlive/linked_scripts/Makefile.in b/Build/source/texk/texlive/linked_scripts/Makefile.in index 51fd0db035a..3fda5d4d2ff 100644 --- a/Build/source/texk/texlive/linked_scripts/Makefile.in +++ b/Build/source/texk/texlive/linked_scripts/Makefile.in @@ -379,7 +379,6 @@ texmf_other_scripts = \ pfarrei/pfarrei.tlu \ pkfix-helper/pkfix-helper \ pkfix/pkfix.pl \ - pmx/pmx2pdf.lua \ pmxchords/pmxchords.lua \ pst2pdf/pst2pdf.pl \ ptex-fontmaps/kanji-config-updmap-sys.sh \ diff --git a/Build/source/texk/texlive/linked_scripts/pmx/pmx2pdf.lua b/Build/source/texk/texlive/linked_scripts/pmx/pmx2pdf.lua deleted file mode 100755 index 41cff58cc7f..00000000000 --- a/Build/source/texk/texlive/linked_scripts/pmx/pmx2pdf.lua +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env texlua - -print ("The pmx2pdf[.lua] script has been retired; please switch") -print ("to the musixtex script, which now processes .pmx files.") - diff --git a/Build/source/texk/texlive/linked_scripts/scripts.lst b/Build/source/texk/texlive/linked_scripts/scripts.lst index ddf9ceaaefa..c18ff4126fd 100644 --- a/Build/source/texk/texlive/linked_scripts/scripts.lst +++ b/Build/source/texk/texlive/linked_scripts/scripts.lst @@ -109,7 +109,6 @@ pfarrei/a5toa4.tlu pfarrei/pfarrei.tlu pkfix-helper/pkfix-helper pkfix/pkfix.pl -pmx/pmx2pdf.lua pmxchords/pmxchords.lua pst2pdf/pst2pdf.pl ptex-fontmaps/kanji-config-updmap-sys.sh diff --git a/Master/bin/amd64-freebsd/pmx2pdf b/Master/bin/amd64-freebsd/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/amd64-freebsd/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/amd64-netbsd/pmx2pdf b/Master/bin/amd64-netbsd/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/amd64-netbsd/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/armel-linux/pmx2pdf b/Master/bin/armel-linux/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/armel-linux/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/armhf-linux/pmx2pdf b/Master/bin/armhf-linux/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/armhf-linux/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/i386-cygwin/pmx2pdf b/Master/bin/i386-cygwin/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/i386-cygwin/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/i386-freebsd/pmx2pdf b/Master/bin/i386-freebsd/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/i386-freebsd/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/i386-linux/pmx2pdf b/Master/bin/i386-linux/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/i386-linux/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/i386-netbsd/pmx2pdf b/Master/bin/i386-netbsd/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/i386-netbsd/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/i386-solaris/pmx2pdf b/Master/bin/i386-solaris/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/i386-solaris/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/powerpc-linux/pmx2pdf b/Master/bin/powerpc-linux/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/powerpc-linux/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/sparc-solaris/pmx2pdf b/Master/bin/sparc-solaris/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/sparc-solaris/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/universal-darwin/pmx2pdf b/Master/bin/universal-darwin/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/universal-darwin/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/win32/pmx2pdf.exe b/Master/bin/win32/pmx2pdf.exe deleted file mode 100755 index 5777d90a17a..00000000000 Binary files a/Master/bin/win32/pmx2pdf.exe and /dev/null differ diff --git a/Master/bin/x86_64-cygwin/pmx2pdf b/Master/bin/x86_64-cygwin/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/x86_64-cygwin/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/x86_64-darwin/pmx2pdf b/Master/bin/x86_64-darwin/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/x86_64-darwin/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/x86_64-linux/pmx2pdf b/Master/bin/x86_64-linux/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/x86_64-linux/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/bin/x86_64-solaris/pmx2pdf b/Master/bin/x86_64-solaris/pmx2pdf deleted file mode 120000 index 73d88404556..00000000000 --- a/Master/bin/x86_64-solaris/pmx2pdf +++ /dev/null @@ -1 +0,0 @@ -../../texmf-dist/scripts/pmx/pmx2pdf.lua \ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pmx/README b/Master/texmf-dist/doc/generic/pmx/README index 0a01adb7efb..8f288a78f56 100644 --- a/Master/texmf-dist/doc/generic/pmx/README +++ b/Master/texmf-dist/doc/generic/pmx/README @@ -1,4 +1,4 @@ -This is PMX, version 2.7.4 (2016-05-06). PMX provides a preprocessor for MusiXTeX. +This is PMX, version 2.7.6 (2016-11-24). PMX provides a preprocessor for MusiXTeX. pmxab builds a TeX input file based on a .pmx input file in a much simpler language, making most of the layout decisions by itself. It has diff --git a/Master/texmf-dist/doc/generic/pmx/pmx-install.pdf b/Master/texmf-dist/doc/generic/pmx/pmx-install.pdf index b3bcb1dc9cb..a722737c961 100644 Binary files a/Master/texmf-dist/doc/generic/pmx/pmx-install.pdf and b/Master/texmf-dist/doc/generic/pmx/pmx-install.pdf differ diff --git a/Master/texmf-dist/doc/generic/pmx/pmx-install.tex b/Master/texmf-dist/doc/generic/pmx/pmx-install.tex index b15d7763394..eaea987e583 100644 --- a/Master/texmf-dist/doc/generic/pmx/pmx-install.tex +++ b/Master/texmf-dist/doc/generic/pmx/pmx-install.tex @@ -5,7 +5,7 @@ \RequirePackage{hyperref} \usepackage{xcolor} \newcommand{\myurl}[1]{\textcolor{blue}{\underline{\textcolor{black}{\url{#1}}}}} -\newcommand{\pmxVersion}{2.7.3} +\newcommand{\pmxVersion}{2.7.6} \begin{document} \title{Installation of the CTAN PMX Distribution} \author{Bob Tennent\\ diff --git a/Master/texmf-dist/doc/generic/pmx/pmx25-274.html b/Master/texmf-dist/doc/generic/pmx/pmx25-274.html deleted file mode 100644 index 8e66cbb279c..00000000000 --- a/Master/texmf-dist/doc/generic/pmx/pmx25-274.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - PMX beta vs 2.5 - - - -

Return

- -

Changes from PMX 2.5 to the Latest Full Release (2.74), 16 February 2016

- -

2.501 (Note: new scor2prt)

- - -

2.502 (Note: new pmx.tex)

- - -

2.503

- - -

2.504

- - -

2.505

- - -

2.506

- - -

2.507

- - -

2.508

- - -

2.509

- - -

2.510

- - -

2.511 (Note: new scor2prt named s2p2511.exe)

- - -

2.512

- - -

2.513

- - -

2.514

- - -

2.515

- - -

2.516 (Note: new pmx.tex)

- - -

2.517

- - -

2.518

- - -

2.519

- - -

2.520

- - -

2.521

- - -

2.602 (Note: new pmx.tex; requires eTeX)

- - -

2.603 (Note: new scor2prt)

- - -

2.610

- - -

2.613

- - -

2.614

- - -

2.615 (Note: new scor2prt)

- - -

2.616

- - -

2.617

- - -

2.618

- - -

2.619 (Note: new pmx.tex)

- - -

2.621

- - -

2.622

- - -

2.70 (Note: new scor2prt.exe and pmx.tex)

- - -

2.71 (Note: new pmx.tex and MusiXTeX 1.21)

- - -

2.72 (Note: new pmx.tex; still requires MusiXTeX 1.21)

- - -

2.73 (Note: new pmx.tex)

- - -

2.74 (Note: new pmx.tex, new scor2prt)

- - -

Revised 16 February 2016, Don Simons (dsimons at roadrunner dot com)

- - - diff --git a/Master/texmf-dist/doc/generic/pmx/pmx25-276.html b/Master/texmf-dist/doc/generic/pmx/pmx25-276.html new file mode 100644 index 00000000000..aaebbfdf6a7 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pmx/pmx25-276.html @@ -0,0 +1,332 @@ + + + + + PMX 2.76 vs 2.5 + + + +

Return

+ +

Changes from PMX 2.5 to the Latest Full Release (2.76), 3 December 2016

+ +

2.501 (Note: new scor2prt)

+ + +

2.502 (Note: new pmx.tex)

+ + +

2.503

+ + +

2.504

+ + +

2.505

+ + +

2.506

+ + +

2.507

+ + +

2.508

+ + +

2.509

+ + +

2.510

+ + +

2.511 (Note: new scor2prt named s2p2511.exe)

+ + +

2.512

+ + +

2.513

+ + +

2.514

+ + +

2.515

+ + +

2.516 (Note: new pmx.tex)

+ + +

2.517

+ + +

2.518

+ + +

2.519

+ + +

2.520

+ + +

2.521

+ + +

2.602 (Note: new pmx.tex; requires eTeX)

+ + +

2.603 (Note: new scor2prt)

+ + +

2.610

+ + +

2.613

+ + +

2.614

+ + +

2.615 (Note: new scor2prt)

+ + +

2.616

+ + +

2.617

+ + +

2.618

+ + +

2.619 (Note: new pmx.tex)

+ + +

2.621

+ + +

2.622

+ + +

2.70 (Note: new scor2prt.exe and pmx.tex)

+ + +

2.71 (Note: new pmx.tex and MusiXTeX 1.21)

+ + +

2.72 (Note: new pmx.tex; still requires MusiXTeX 1.21)

+ + +

2.73 (Note: new pmx.tex)

+ + +

2.74 (Note: new pmx.tex, new scor2prt)

+ + +

2.76

+ + +

Revised 3 December 2016, Don Simons (dsimons at roadrunner dot com)

+ + + diff --git a/Master/texmf-dist/doc/generic/pmx/pmx274.pdf b/Master/texmf-dist/doc/generic/pmx/pmx274.pdf deleted file mode 100644 index df50add9e31..00000000000 Binary files a/Master/texmf-dist/doc/generic/pmx/pmx274.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/generic/pmx/pmx274.tex b/Master/texmf-dist/doc/generic/pmx/pmx274.tex deleted file mode 100644 index 3d6630157f4..00000000000 --- a/Master/texmf-dist/doc/generic/pmx/pmx274.tex +++ /dev/null @@ -1,2693 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% pmx274.tex 20 Feb 2016 -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\documentclass[11pt]{article} -% -\let\reft\ref - \usepackage[dvips,colorlinks=true,linkcolor=blue]{hyperref} - \usepackage[dvips]{graphicx} - \usepackage{multicol} -% -\def\MusiXTeX{MusiX\TeX} -\def\bs{{\tt\char'134}} -\newcommand\PMXX{\textbf{PMX}} -\newcommand\PMX{\PMXX~} -\newcommand\IMA{\href{http://Icking-Music-Archive.org}{\underline{Icking Music Archive}}} -% -% Use \bfx for program names only. Use \bf for single embedded letters -% -\font\bfx=cmb10 scaled\magstephalf -\font\bfi=cmbxti10 scaled\magstephalf -\font\specfig=cmrj -\setcounter{secnumdepth}3 -\setcounter{tocdepth}3 -\def\Bslash{\tt\char'134} -\def\|{{\tt\char'174}} -\def\LBR{{\tt\char'173}} -\def\RBR{{\tt\char'175}} -\textheight= 9.5in \voffset-.8in% -\textwidth= 6.5in \hoffset-1.0in -\def\newfrom{2.59} % changed every now and then -\def\NEW#1{\ifdim#1 pt<\newfrom pt\else% -\marginpar{\fbox{#1}}\fi} - -\hoffset-54pt - -%\let\rulet\rule\def\rule#1#2{\if#1<#2\rulet{.05in}{#2}\else\rulet{#1}{.05in}\fi} - -\begin{document} - -\raggedright -\parindent24pt - -\title{ - \Huge\bf - PMX~--~a Preprocessor for \MusiXTeX{}\\ - \null\vskip-15pt - \Large\sl - Version 2.74~--~February 2016\\ - \author{\Large\rm Don \sc Simons\\ - \large\sl - Dr. Don's PC and Harpsichord Emporium\\ - \normalsize\sl - Redondo Beach, California, USA.\\ -% To make the bitmapped eps: (1) TeX file with cmtt scaled 2500, -% (2) dvips -> gsview -> pdf. -% (3) gwin32 -sDEVICE=pnggray -sOutputFile=file.png -r100 -dEPSCrop -dbatch -q -% -dNOPAUSE -dTextAlphaBits=4 file.eps -c quit -% (4) file.png -> GIMP (crop out blank space) -> save as .eps. -% - \includegraphics[scale=0.4]{file600.eps}}} - -\date{} - -\maketitle - -\section*{Preface} -Compared to version 2.73, \PMX version 2.74 has minor enhancements to lyrics capabilities, -behind-the-scenes modifications to allow staff-crossing chords that are unbeamed or beamed as -illustrated in {\tt staffcrossall.pmx}, -and several bugfixes in \bf scor2prt and {\tt pmx.tex}. - -\setcounter{page}1 -\tableofcontents -%\setcounter{secnumdepth}1 -\pagestyle{headings} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\boxitsep{10pt} -\let\hrt\hrule\def\hrule{\hrt height2pt} -\let\vrt\vrule\def\vrule{\vrt width2pt} -\def\boxit#1{\vbox{\hrule\hbox{\vrule\kern\boxitsep\vbox{% -\kern\boxitsep\hbox{#1}\kern\boxitsep}\kern\boxitsep\vrule}\hrule}} -\font\ded=cmssdc10 scaled \magstep3 -\bigskip -\setbox4=\vbox{ - \hsize3in\noindent\strut - \centerline{\ded Dedication} -\vskip 3pt -The \MusiXTeX~community was stunned by the sudden death of Werner Icking on -\break February 8, 2001. He had been a benevolent patriarch, touching many -of us not only -with his technical savvy and gentle guidance, but also his genuine kindness -and generosity. His spirit runs deep through all of \PMX. His encouragement -fueled its development from its very beginning. Many -enhancements have been his proposals, including one he made on what -turned out to be his last day. Werner, my friend, I dedicate this work to -you and your memory. -} -\vfill -$$\boxit{\box4}$$ -\let\hrule\hrt\let\vrule\vrt -\vfill -\eject - -\section{Introduction} -%\setcounter{secnumdepth}1 - - \PMX is a preprocessor for \MusiXTeX{}. Before using it you should -have installed \MusiXTeX~Version 1.21 \NEW{2.71} or higher, and -any available version of \TeX~that includes e-\TeX. The goal of \PMX is to -facilitate the efficient typesetting of scores and parts -that have an almost professional appearance. It can do {\it all} the work -involved in setting up {\tt \bs notes-\bs enotes} groupings, -selecting groups of -notes to be beamed, defining beam heights and slopes, spreading the -entire piece evenly over specified numbers of systems and pages, and inserting -extra spaces where needed to make room for accidentals, flags, dots, -and new clefs. The input language for \PMX is much simpler than -\MusiXTeX. You can enter note values and rests from 64ths to double -whole notes ({\it breves}), ornaments, slurs, and limited text strings. Every -voice in every bar must have exactly the correct number of beats in -the current meter, but you may change the meter at the beginning of any -measure, with or without printing the new time signature. Before making a -\TeX{} file, \PMX checks these timings and other aspects of the input. -\PMX has special features for dealing with baroque chamber music, including -the ability -to notate figured bass below the bottom staff in each system. If \PMX hasn't -yet learned to do something you want to do, you can usually work around the -problem by inserting literal \TeX\ strings in the \PMX input file. - - You can automatically create parts from a score using {\bfx scor2prt}. -This auxiliary program generates a set of {\tt .pmx} input files, one for -each part, from a single {\tt .pmx} file for the score. -You can control the appearance of the -parts with special commands in the main file, thereby making it -possible to include within a single input file all the information -that defines the score and the individual parts. - -The basic \PMX -distribution as of this version of the manual is -\href{http://icking-music-archive.org/software/pmx/pmx273.zip} -{\underline{\tt pmx273.zip}}.\NEW{2.73} It -contains the FORTRAN sources, binaries that will run in a DOS -window on a PC with WINDOWS95 or higher, manuals for useage and for installation -in DOS/Windows, and example typesetting files. Alternatively, the -\href{http://www.icking-music-archive.org/software/htdocs/Getting_Started_Four_Scenar.html} -{\underline{software section}} of the Werner Icking Music Archive (WIMA) has instructions -for acquiring and installing \MusiXTeX~and \PMX on various platforms -(Windows, Mac-OSX, Unix-like systems) including using automated procedures from -several external \TeX~distribution sites. -The packages from those other sites will -all eventually incorporate all the upgrades in {\tt pmx273.zip} but will take -varying amounts of time to do so. \PMX is often upgraded; the most current version will -always be available directly from the ``News'' paragraph -\href{http://www.icking-music-archive.org/software/htdocs/htdocs.html}{\underline{here}}. - -\subsection{Conventions for This Manual} - - Hey, this is boring stuff, but if you take a minute to understand -the typographic conventions and a little jargon, -it may avoid some confusion down the road. - - The typewriter typeface always indicates verbatim text as it would -be input to a computer. This includes file names, \MusiXTeX{} tokens, and -\PMX commands, e.g., {\tt barsant.pmx, \bs internote, c44}. - - Bold is used for program names (e.g., {\bfx pmxab}), or when applied -to a single letter, to relate a \PMX command to its meaning (e.g., ``{\tt e} -signifies a l{\bf e}ft shift''). - - When\NEW{2.5}~viewing the PDF version of this document on a computer -screen, clickable internal hyperlinks are colored blue, and clickable external -links are underlined and colored cyan. - - Italics may mean several different things depending on the context: -simple emphasis, or the first appearance of {\it jargon} -(buzz-words that need to be explicitly defined), or finally -to represent input variables for which some verbatim text would need to be -substituted. In the latter case the variable will be surrounded by -square brackets, e.g., [{\it basename}], but the brackets are not to be -included with the substituted text. - - Speaking of jargon, there are several special words that have very -specific meanings here: A {\it staff} is one set of 5 lines (plural -{\it staves}), a {\it system} is a group of staves, and {\it voice} refers to -one of the one or two -simultaneous allowable sequences of notes in a staff. Note that this -is a change \NEW{2.5}from versions prior to 2.5, where {\it voice} was used -interchangeably with staff. - -A \PMX {\it command} is a string of characters with no spaces between them. -The first character determines the type of command. Any other characters -are parameters that may be either required or optional. Sometimes we loosely -use the word {\it command} to refer just to the initial character. - -\subsection{Setup} - - Here we briefly describe the setup for the Windows OS, -assuming \TeX\ and \MusiXTeX\ have already been installed. After compiling the -FORTRAN source code, users of other OS's -may either adapt these instructions as needed or use one of the other setup -methods referenced earlier. - -After decompressing the distribution file {\tt pmx273.zip}, -you should have these -files: \NEW{2.73} {\tt pmx273.for}, {\tt scor2prt.for}, two -Windows executables {\tt pmxab.exe} and {\tt scor2prt.exe}, several sample -{\tt .pmx} files, -{\tt pmx.tex}, {\tt ref273.tex} (\TeX\ source for a command summary), -{\tt pmx273.tex }(\TeX\ source for this file), -PDF images of the latter two files, {\tt pmx25-273.html} showing -changes from version 2.50 to 2.73, and {\tt install\_run\_PMX.pdf} which gives more -details about installing and running on different platforms. - -%If necessary, compile the FORTRAN programs. -%I have tried to keep the source code as generic as possible, but minor -%modifications may be needed for FORTRAN-to-C translation and/or other -%compilers. - - Once you have assembled a full set of files, put the executables -somewhere in the path or in your working directory, {\tt pmx.tex} into the -texinput directory, the sample {\tt *.pmx} files in your working -directory (the one from which you will run \PMXX), and the source code and -document files wherevever you wish. - -\subsection{Basic Operation, by Example} - -Edit the 15th line of {\tt barsant.pmx} to contain the path to the -directory where you want \PMX to write the {\tt .tex} file. For example, -if you want this to be the same as the working directory, type {\tt .\bs}~for Windows, -or {\tt ./} for UNIX. - -If you haven't done so, open a command window and navigate to the -folder containing {\tt barsant.pmx}. Execute \PMX by typing -{\tt pmxab barsant} . Alternatively, you may -just type {\tt pmxab } and you will be prompted -for a jobname, which in this case is just {\tt barsant} . -{\bfx pmxab} will always generate two files in the working -directory: {\tt barsant.pml} -is a log file, and {\tt pmxaerr.dat} contains a single integer, 0 if -the run was successful, otherwise the line number in the {\tt .pmx} file of the -fatal error (useful for batch processing). Also, on successful completion, -{\tt barsant.tex} will be placed in the path specified in the setup. - -Now you are right where you would be after -entering, debugging, and rough-editing the {\tt .tex} file manually. To see -the results, process {\tt barsant.tex} just as you would for any \MusiXTeX{} -file, running all three passes, and view the {\tt .dvi} file, or go on and run -{\bf dvips} to create a postscript file and view that with a postscript viewer -such as {\bf GSview}. To make -separate parts, run {\bfx scor2prt} by typing {\tt scor2prt barsant} .\NEW{2.0} -The program will create a new {\tt .pmx} file for each instrument, in this -case {\tt barsant1.pmx} and {\tt barsant2.pmx}. -You may then process these -files like you did the original one to create separate parts. - -\section{Elements of PMX} -\def\l@subsection{\@dottedtocline{2}{5em}{20em}}%original 2 3.8 3.2 -%\setcounter{secnumdepth}2 - -\subsection{Setup Data in the Input File} \label{setupdata} - - To see how the input file is put together, we'll look at -{\tt barsant.pmx}. For reference, here are are the first few lines: -\begin{verbatim} -%----------------% -% -% barsant.pmx Revised 29 June 2002 -% -%----------------% -% -% nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,xmtrnum0,isig, - 2 2 4 4 0 6 0 0 -% -% npages,nsyst,musicsize,fracindent - 1 7 20 0.07 -Basso -Recorder -bt -./ -\end{verbatim} -The lines -with {\tt \%} in column 1 are comments. -Some special handling of comment lines will be -discussed in the section on creating parts from a score in -section~\ref{scor2prt}. - -The rest of the lines in this example are the {\it setup data}. -Starting in the first non-comment line above, - -{\tt nv} (integer$\leq$24) \NEW{2.6} is the total number of -sta{\bf v}es per system. Each staff may contain either one or two voices, -but the total number of voices at any one time may not exceed 24. - -{\tt noinst} (integer$\leq${\tt nv}) is number of {\it instruments}. Each -instrument has a unique name (see below), and any instrument -with more than one staff will have its staves joined with a curly bracket. -Usually there is only one staff per instrument and {\tt noinst=nv}. There -are two ways to assign more than one staff to one or more instruments. -If only the first (lowest) instrument has more than one staff, such as in -a score for piano and a solo instrument, simply make -{\tt noinst$<$nv} and any difference will show up in instrument 1, the bottom -one in each system. -\NEW{1.4} For a -more general distribution of staves among instruments, -put a minus sign in front of {\tt noinst}, -and follow {\tt noinst} with the number of staves in each instrument in -succession, separated by spaces. These numbers must add up to {\tt nv} or your -computer will explode. For a typical example of keyboard music, see -{\tt mwalmnd.pmx}, in which {\tt nv=2} and {\tt noinst=1}, producing two -staves per system with a curly bracket at the left. - -The number of instruments can be changed as well after the start of the -score, but only to a number less than the original one. See -section~\ref{movbrk} to learn how to start with a smaller -number of instruments and later increase it. - -{\tt mtrnuml} is the {\it logical} numerator of the meter, or the number of -beats per measure; {\tt mtrdenl} the denominator. Please note the special -considerations in the paragraph after the next. If {\tt mtrnuml} is -divisible by 2 or 3, beam grouping will be automatic; otherwise you will -have to force all beams using {\tt [}$\dots${\tt ]} as described in -section~\ref{beams}. - -{\tt mtrnmp} and {\tt mtrdnp} are the {\it printed} numerator and denominator. -These determine the appearance of the meter in the printed output but -have no effect on the internal timing analysis. If {\tt mtrnmp$>$0} then it -and {\tt mtrdnp} are printed literally as the numerator and denominator -of the time signature. Please note the special considerations in the following -paragraph. If -{\tt mtrnmp$<$0}, then the numerator is abs({\tt mtrnmp}) and the -entire time signature will be printed with a vertical slash through -it. If {\tt mtrnmp}=0, then {\tt mtrdnp} determines the printed meter -as follows: - -\medskip - -\begin{tabular}{ll} -\tt 0 & No meter is printed ({\it blind} meter change)\\ -\tt 1, 2, 3, or 4 & A single digit, between the 2nd and 4th lines\\ -\tt 5 & Cut time (alla breve)\\ -\tt 6 & Common time\\ -\tt 7 & Numeral 3 with a vertical slash\\ -\end{tabular} - -\medskip - -There are special considerations for n/16 and n/1 time signatures (where the -latter "1" normally means a whole note). To get -n/1 time, use {\tt 0} (zero) for {\tt mtrdenl} and {\tt 1} for {\tt mtrdnp}. To -remember this rule, recall that the printed denominator is taken literally, -while the logical denominator can always be represented -by the same single digit used for the corresponding time value when entering -ordinary notes (see section~\ref{notes}). So -for n/16 time, use {\tt 1} for {\tt mtrdenl} and {\tt 16} for {\tt mtrdnp}. - -If the first bar is a partial bar containing a pickup, {\tt xmtrnum0} is -the number of beats in it; otherwise set it to 0. It need not be an -integer. The first bar is the {\it only} bar that can have a different -number of beats than the current value of {\tt mtrnuml} (Later we'll see how -to change the meter). - -{\tt isig} is the key signature, positive integer for sharps, negative for -flats. - -If {\tt npages}$>$0, it is the number of pages and {\tt nsyst} is the total -number of systems in the entire piece. \PMX will spread the entire -piece horizontally over this number of systems, and vertically over -{\tt npages} pages. For proper vertical spacing there should be from -about 9 to 16 staves per page. If you specify too many staves for the number -of pages, one or more staves may spill over onto an extra sheet. If this -happens it will only become obvious when you preview the {\tt .dvi} file. -One solution is to use the global option {\tt Ae} -(see section~\ref{AeDirective}); another is to increase {\tt npages} or -decrease {\tt nsyst}. - -If {\tt npages} is set to 0, then {\tt nsyst} is interpreted as the average -number of measures per system. This is useful while building up a -file a little at a time. \PMX will calculate how many systems to use, and -spread them over an appropriate number of pages. - -{\tt musicsize} is 16, 20, 24, or 29, the height of a staff in points, with -20 considered the default\NEW{2.6}. - -{\tt fracindent} is the indentation of the first system from the left -margin, expressed as a decimal fraction of the total line width. - -Next come the names of the {\tt noinst} instruments as you want them to -appear within the indentation in the first system, one per line, -starting with the {\it bottom} instrument. If you've set {\tt fracindent}=0 -and don't -want instrument names to appear, you must still leave {\tt noinst} -blank lines here. Next comes a single string of {\tt nv} -letters or numbers for the clefs, again starting with the bottom staff: -\label{ClefCodes} -{\tt b,~r,~n,~a,~m,~s,~t,~f,~8} or digits 0-8 \NEW{2.71} respectively for {\bf b}ass, -ba{\bf r}itone, te{\bf n}or, {\bf a}lto, {\bf m}ezzo-soprano, {\bf s}oprano, -{\bf t}reble,\NEW{2.2} {\bf F}rench violin clef, or octave treble clef. -The last line of setup data contains the path to the directory -where you want the {\tt tex} file to go when \PMX creates it. The one -in {\tt barsant.pmx}~, -{\tt ./}~, represents the current directory in UNIX and some versions of DOS. -The path must terminate with {\tt /} or {\tt \bs}~. - -\subsection{Structure of the Body of the Input File} \label{structure} - - The rest of the {\tt .pmx} file is the {\it body} of the input. -The basic unit of input from here on is called an {\it input block} or -just {\it block}, each one representing an integral number of bars. If there -is a pickup bar defined by {\tt xmtrnum0} $>$ 0, -it must be included in the first block {\it together with at least one full bar}. -If you wish to put a pickup in a separate block, for example at the start -of a new movement, set the initial logical -meter to fit the pickup bar, then after the pickup bar do a blind meter change -as described in section~\ref{MeterChange}). - -There will usually be -4 to 8 bars in a block. 15 is the most allowed. It is good practice -to separate the blocks with comment lines that state which bars are -represented, as I've done in {\tt barsant.pmx}. -It is also advisable, although not required, to separate the bars with -the command {\tt |}. Its main functions -are to provide visual separation in the input file, and to help isolate input -errors: if you put one anywhere except -at a bar-end, {\bfx pmxab} will stop and show you where it detected the -timing error. Otherwise, with several minor exceptions, -{\tt |} has no effect. - -At the start of each block there may be a few special commands -(described starting in section~\ref{pmxcmds}). -Next come the input data for the selected number -of bars of the first (lowest in the system) voice in the first staff, followed by -either {\tt /} to move to the next staff, or {\tt //} to move to the next voice -on the same staff. Each new voice must start on a new line -in the input file, i.e., there should be no further data on the same input line -after {\tt /} or {\tt // }. - Continue entering other voices, each with -{\it exactly} the same number of bars as the first, -terminated by {\tt /} or {\tt //}, until - the last (topmost in the system) ends with a {\tt /} and the block is -finished. Within -a block every voice must have the same number of bars, but every block -needn't have the same number of bars as other blocks. The number of -voices in a staff can only be 1 or 2, and cannot change within a block, but -may vary from block to block. - - The data for each voice in each staff are a sequence of commands -containing one or more adjacent characters. Commands are separated from each -other by spaces. The line-terminating commands {\tt /} and {\tt //} should also -naturally be preceded by a space. - -\subsubsection{Notes} \label{notes} - - Commands for notes always start with a lower-case letter and, as -with all commands, end at -the first space. The first letter is the note name ({\tt a-g}). The -rest of the characters can be in any order with only a few -restrictions. The first digit defines the {\it basic time value} of the -note: {\tt 9, 0, 2, 4, 8, 1, 3} or {\tt 6} respectively for double-whole, -whole, half, quarter, -eighth, sixteenth, thirty-second, and sixty-fourth notes. The second -digit sets the octave (for reference, octave 4 runs from middle C to -the B above). Certain letters may appear after the initial one: {\tt d} -for {\bf d}ot; {\tt dd} for \NEW{1.4} double dot; -{\tt f, n,} or {\tt s} for {\bf f}lat, {\bf n}atural, -or {\bf s}harp (repeat the letter -immediately for a double); {\tt u} or {\tt l}, which force the stem -direction of any un-beamed note; {\tt e} or {\tt r} to shift the notehead -l{\bf e}ft -or {\bf r}ight by its own width; and {\tt a} (for {\bf a}lone) which inhibits -beaming for this note (or, if the first note of an xtuplet, for the -entire xtuplet). \NEW{2.4}A single accidental may be followed by {\tt c} to -make it {\bf c}autionary, i.e., surround it with parentheses. -Alternatively, it may also be followed by {\tt i} to -suppress typesetting \NEW{2.3} but still have -the M{\bf I}DI processor honor the accidental. Other characters allowed in note -commands are {\tt +}, {\tt -}, {\tt .}(period), {\tt ,}(comma), {\tt x}, and -several special characters following {\tt x}, all to be described below. -Between the first letter and the end or {\tt x} if present, -non-digits can be in any order with respect to each other and to the digits, -with minor exceptions involving shifting dots and accidentals. - -To move -a dot from its default location, simply follow the {\tt d} -with one or two decimal numbers, each predeced by -{\tt +} or {\tt -}. -The first is the -vertical shift in \bs{\tt internote}s, the second, the horizontal shift in -notehead widths. - -\label{AccidentalPosition} -Accidentals \NEW{1.4} can be shifted too. One way is to enter -{\tt +} or {\tt -} right after the accidental character, -then an integer -for the vertical shift, then another {\tt +} or {\tt -} followed by the -horizontal shift in notehead widths. If you use this method, you {\it must} -enter both numbers. Or, to just shift horizontally, use -{\tt <} or {\tt >} followed by the shift in notehead widths. When shifting -a sharp to avoid another sharp, a left shift of 0.85 is usually best. When -shifting a flat to avoid a flat above it, a left shift of 0.3 is suggested. -In chords (see section~\ref{chords}), if all the notes are in the same \NEW{2.4}voice, -\PMX will automatically shift accidentals if required. This will be disabled -for the current chord -if any user-defined accidental shifts are entered, unless {\tt A} is entered -along with the shift, e.g., {\tt zcsA<.5} . In that case the user-defined -shift will be added to the PMX-computed one. -\NEW{2.4} Another option that affects accidental positioning in -chords is {\tt Ao}, -entered in the main note command of a chord. It will force the accidentals -in that chord will be posted in the order -they come in the source file (starting with the main note), each one as far -to the right as it will go without crashing into a notehead, stem, or -another accidental. - - - Dots and accidentals always have to be entered when and if a note -calls for them. i.e., they are never carried over from previous notes. -On the other hand, the octave only needs to be entered if the note is -more than a fourth away from the most recent note in the same voice. -This feature lets you go for long stretches in a voice before needing -to enter the octave. An alternate way to jump more than a fourth but -less than a twelfth is to type {\tt +} or {\tt -}. In other words, these -mean to put the note an octave higher or lower than it -otherwise would have gone. Two {\tt +}'s will raise the pitch two octaves -above what it otherwise would have been, and so forth. -The basic time -value is also carried over from the past if it is not re-entered, -except for the first note or rest in each voice in an input block, -for which it {\it must} be entered. -Therefore, when the melody jumps more than a 4th, using {\tt +} or {\tt -} is -often more convenient than using a digit. This is because in order to -use the digit, you must first enter the basic time value whether it -changes or not. - - For example {\tt c44 d e f g a b c c0-} is an ascending quarter-note -scale starting on middle C, followed by an octave jump down to a -whole note middle C. - - Explicit octave \NEW{2.1} numbers can be combined with one or -more {\tt +} or {\tt -} . In earlier versions, {\tt +} or {\tt -} was -ignored if an octave number was specified. This is a slight backward -incompatibility; \PMX prints a warning when it happens. - -Stem length \NEW{2.73} can be {\bf s}hortened or {\bf l}engthened by {\it x} -\bs{\tt internote} with the options {\tt S}{\it x} or {\tt L}{\it x}~. -{\it x} is restricted to the range (0.5,4.0) for shortening and 0.5 to 27.5 -for lengthening. -The shortening can be made ``sticky'' by following the number {\it x} with -{\tt :} . Then every note's stem in the voice will be shortened until -one is encountered with the option {\tt S:} . By lengthening a stem enough -to span to the next staff and connect with notes there, unflagged staff-spanning -chords can be constructed. See section \ref{chords}~for further details -about staff-spanning chords. - -The first note command in each voice in a block must -contain at a minimum the note name or {\tt r} for a rest (see below), -and a basic time value. For notes, it is good practice and can simplify -editing -if in addition an explicit octave is set here. However if it is not, -\PMX will make some assumptions. At \NEW{2.4} the start of the first -input block the pitch will be set as if the prior note were middle C. -In later blocks \PMX will use the -obvious inheritance rules from the end of the prior block. -However, if the number of voices in a staff -has changed from the prior block, it is safest to reset the octave at the -start of a new block. Duration is never inherited and must be set at the -start of each input block. - - Dots can be a little tricky, because even though they affect the -actual time value, they don't affect the basic time value, and it is only the -latter that is ``sticky". Therefore, if a note is to be dotted, you always have to -enter a {\tt d} (or a period, see next paragraph) somewhere within the -command, after -the note name, even if the actual time value and octave are the same -as the prior note. But the {\it basic} time value need not be re-entered if -it hasn't changed (unless the note is more than a fourth from the -prior note {\it and} you have for some strange reason elected to indicate the -octave with a number rather than {\tt +} or {\tt -} ). So for example, -consecutive dotted half notes, each within a fourth of the previous -one, could be most cleanly entered as {\tt cd24 ed gd ed}, whereas {\tt cd24 e} -would represent a dotted half note followed by a plain half note -(since the basic time value---as defined by the first digit---was a half -note all along). - - There are two special shortcut rhythmic notations. For normal dotted -rhythms (3:1 ratio), if you -include a period ({\tt .}) in the note command, it will -(a) assign a dot to the note just entered, (b) terminate that note, -(c) prepare to -receive the next note name {\it without any space}, and (d)~automatically -assign a time value to the second note equal to one-third of the first one. -No time value may be entered for the second note, but octave and accidental -data may. Ornaments and slurs (see below) following this command will apply -to the second member. If you need to follow the main note -with some modifying -\NEW{2.3} -command, you can still use the shortcut ({\tt .}) after that command and a -space. -The main advantage of this shortcut comes if you want to -follow one dotted pair with another of the same rhythm; then you -needn't enter any explicit time value for {\it either} member of the second pair. -This is possible because after using the shortcut, -the basic (inheritable) duration is set to that of the -{\it first} note in the pair, without the dot. - - For paired notes with 2:1 rhythmic ratios, the character {\tt ,}~(comma) -behaves similarly to the {\tt .}~(period) for 3:1 rhythms. - - Xtuplets, or groups of notes with their stems connected, -can have from 2 to 24 notes or\NEW{1.4} rests. Normally they -all have the same duration, but there are several options---described -below---to change this. The command for the first note of an xtuplet begins -exactly like a -note or rest command, with the name of the first note in the xtuplet, or -{\tt r} if it starts with a {\bf r}est (see next subsection), and an optional -time value. -However, the actual time value (including a dot if present and a basic -duration that may have been inherited from the prior note) now represents the -{\it total} duration of the xtuplet. Next (with no space, as usual) comes -{\tt x} followed by a one- or two-digit integer for the number of notes in -the xtuplet. The only options allowed immediately following the number are -{\tt d} and {\tt n} . \NEW{2.4}{\tt d} signifies that the {\it first} note -of the xtuplet should have a dot and the second, and extra flag. -{\tt n} controls the printing of the {\bf n}umber and bracket. -If {\tt n} is followed by a blank, then no number will be -printed. On the other hand, -an \NEW{2.3}{\it unsigned} integer here is taken as a substitute number to -be printed instead of the natural one. -If one or two {\it signed} decimal numbers follow {\tt n} -(each starting with {\tt +} or {\tt -}), the first -is a vertical shift in {\tt \bs internote}s, and the second, a horizontal shift -in notehead widths. Another suboption to {\tt n} is {\tt f}, -to {\bf f}lip the number vertically from its default position. A \NEW{2.5}final -suboption to {\tt n} is {\tt s} followed by a signed integer. It applies only -to non-beamed xtuplets, for which it tweaks the slope of the bracket above or -below the xtuplet. For non-beamed xtuplets, you can further change the -appearance of the bracket and number as explain in section~\ref{ATDirective}. - -The second through last notes of the xtuplet are each then -represented by a separate command containing a subset of the characters -permitted for ordinary notes or rests: note name or {\tt r} (the only required -character), accidental, and octave change character ({\tt +} or {\tt -}). -\NEW{1.4} The octave may be given explicitly instead, and any integer will be -interpreted as such, as no time values or dots are permitted. - -The last note of an xtuplet may not be a\NEW{1.4} rest. - -To double\NEW{2.3} the duration of any note in an xtuplet, add the -character {\tt D} to the command for that note. This will decrease the expected -number of notes in the xtuplet by one. To add a dot to the doubled note -(as Bach sometimes did), use {\tt F} instead of {\tt D}. -\NEW{2.4}To add a dot to one -note and an extra flag to the next, include {\tt d} in the note command, -{\it after} the {\tt x} if it's the first note of the xtuplet as noted above. - -As an example, an ascending quarter-note triplet scale would be -notated\hfil\break {\tt~c44x3~d~e~f4x3~g~a~b4x3~c~d~\dots} - -\subsubsection{Rests} - - The command for a rest starts with {\tt r}. -Then for a normal rest, in either order come a digit for the basic time value -(using same codes as for notes, optional if unchanged from previous value), -a {\tt d} if the rest is dotted, and a second {\tt d} if double dotted. -\NEW{2.0} The basic time value of a rest -affects future notes and rests the same as if it had come from a note, -i.e., it applies until another value is entered with a subsequent note -or rest in the same voice. The command {\tt rp} represents a -full-bar rest notated with a {\bfi p}{\it ause} character (whole rest) -regardless of -the time signature; in this case no other duration information is -needed or allowed. {\tt rb}, followed if necessary by a duration -specifier, denotes a {\bfi b}{\it lank} rest, one that occupies space and time -but is invisible. This is most often used when there are -two voices in a staff and one drops out for some of the duration -of the current input block. (See {\tt mwalmnd.pmx} for examples). -\NEW{1.4} The -option {\tt o} (for {\bf o}ff-center) suppresses centering a full bar rest. If -you don't exercise this option, then -{\it all} full-bar rests will be horizontally centered between bar -lines, including pauses ({\tt rp}) as well as normal rests that fill the bar. -\label{MultibarRest}{\tt rm} followed immediately by an integer will generate a -{\bfi m}{\it ulti-bar} -rest, a special combination of characters between two bar lines with an integer -above representing two or more bars of rest. -This command will generally only be used in separate parts -after having been automatically generated by {\bfx scor2prt}. However, it -\NEW{2.4}may be used in a multi-line score, provided it is entered for the same -number of bars in every staff. - - The default vertical position of a rest depends on whether there -are one or two voices in the staff. -For one voice it is just the \MusiXTeX{} default -(approximately centered on the middle line). On the other hand, in -the lower voice in -a two-voice staff, the rest is lowered {\tt 4\bs internote}, while -in the upper voice it is raised {\tt 2\bs internote}. The \PMX default can be -manually overridden by appending {\tt +}~or~{\tt -} and an integer -representing the offset from the {\it middle} line of the staff -(not from the \PMX default if there are two voices in the staff!). -So for example, in a single staff -in 3/4 meter, two voices, each with a half note followed by its own -quarter rest would be either -\begin{verbatim} -c24 r4 // -c25 r4 / -\end{verbatim} -or equivalently -\begin{verbatim} -c24 r4-4 // -c25 r4+2 / -\end{verbatim} -while -\begin{verbatim} -c24 r4+0 // -c25 r4b / -\end{verbatim} -would produce two notes followed by a single, vertically centered rest. - -Another way to override the default vertical positioning of rests is useful in -keyboard scores, or in fact any score containing two voices on a staff. -The option {\tt K} (for {\bf K}eyboard) in the -{\tt A} command generally causes rests to be -aligned horizontally with notes in the voice in which they are entered. See -section~\ref{Acommands} for a detailed description. - -\subsubsection{Chords}\label{chords} - - Chordal notes, which always share a stem and the same time value as the -prior note, are symbolized with {\tt z} (for {\bf z}ero time) followed by a note name and -optionally an accidental, {\tt +} or {\tt -} as octave indicator, and {\tt e} -or {\tt r} for a l{\bf e}ft or {\bf r}ight shift by one notehead width. -No basic time value is allowed. If the main note -is dotted, then the chordal note will appear with a dot regardless of whether -a {\tt d} is entered. The only time a {\tt d} is required in a chordal note -command is if the dot's position is to be adjusted; in this case the -{\tt d} is required, followed by one or two decimal numbers, each preceded by -{\tt +} or {\tt -}. The first is the vertical shift in \bs{\tt internote}s; -the second, the horizontal shift in notehead widths. -Any number of chordal notes can follow a -single main note. The stem direction of a chord is controlled by the main -note, but may be manually overridden with {\tt u} or {\tt l} in the main note -command. - - When chordal notes are beamed together, the default height and angle of -the beam will be determined by the main note on each stem (the one without -{\tt z}). If a beam joining chordal notes looks bad, you can usually -fix it either by changing which note acts as the main one, -or by fine-tuning the beam parameters as described -in section~\ref{beams}. - -\PMX uses a complex algorithm to automatically position accidentals in chords. -If you are unhappy with the result, you can manually tweak the horizontal -positions as described in section~\ref{AccidentalPosition}. - -Although there is no dedicated command for it, chords can be made to span from -one staff to another using various techniques\NEW{2.73}. The approach will depend on -whether -the chord is single-stemmed with no flag, single-stemmed with a flag, or beamed. -If beamed, it will also depend on whether it is an xtuplet or not. Examples of all -the basic possibilities are contained in the sample file {\tt staffcrossall.pmx}. - -For unbeamed, unflagged staff-crossing chords, -by lengthening the stem with the {\tt L} option on the main note, it can -be made long enough to join with an unflagged single-stemmed note or chord in the -next staff. Single-stemmed notes with one or more flags can be joined across staves -with a trick discovered by Andre Van Ryckeghem: In one staff create a standard note or -chord with -the stem pointing away from the other staff. In the other staff, place the chord notes -in a one-note forced beam that has been lowered or raised into the first staff -(e.g. {\tt [-10 b14 ]}); that -will stretch the stem to join the other notes, but with just one note (or chord) in the -beam, the crossbar will have zero length and be invisible. - -Beamed chords may also span from one staff to another, using joined beams (see -section~\ref{beams}). The general approach is to construct a set of chords -(or single notes, if the other chord notes are in the other staff) in each of -the two staves, enclose each set in a separate forced beam, and join the two -beams with {\tt ]j}...{\tt [j}~. It is important to remember that the -lower staff is processed first. So in most cases, the end of the segment in the lower -staff must be joined (using {\tt ]j}) to the start of the upper segment (with {\tt [j}). -It turns out that for non-xtuplet beamed chords, in all cases where the chord at the -beginning of the beam has a note -in the {\it lower} staff, this works fine provided that the forced beams are of equal -duration and cover the same time span, and that positions in either staff with no note -are represented with -blank rests \bs{\tt rb} inside the force beam. So for example a set of beamed chords -that starts only in the -lower staff and ends only in the upper could be represented by - -\medskip -{\tt [+28 g83 g g rb ]j / - -[jf rb g84 g g ] /} -\medskip - -This example highlights some other issues, viz., that the beam height or direction of one -or both beam groups may need to be altered. Often this will require trial and error. - -Unfortunately this two-group procedure breaks down if the first chord in the beam has no -notes in the lower staff. There are tricks to get around this; the user is referred to -the file {\tt staffcrossall.pmx} for examples. However, there is a much more -straightforward way to define -staff-crossing beamed chords that begin in the upper staff: it simply requires defining -the beamed group in each staff as an xtuplet within a forced beam. It turns out that -the treatment of -staff-crossing beamed xtuplets is more robust than for non-xtuplets, and will admit -more intuitive coding. So for example, the reverse of the above example, where -the beam starts in the upper staff and ends in the lower, could be obtained with - -\medskip -{\tt [+28 rb2x4n g3 g g ]j / - -[jf g24x4 g g rb ] /} - -\medskip -\newdimen\psav\psav=\parindent\parindent=0pt where we used the option {\tt n} to -suppress printing the number. As you might expect, more general staff-crossing -beamed chordal xtuplets follow the same concepts already described for non-xtuplets, -but as noted, they are more robust and admit patterns that start in the upper staff -and end in the lower one. {\tt staffcrossall.pmx} also contains examples this -approach. - -\parindent=\psav - -\subsubsection{Grace notes}\label{graces} - - A grace note command starts with a {\tt G}. It is entered in its natural -order, normally before the main note, but sometimes after. After {\tt G} and -before the note name, comes any -combination of the following options: an unsigned integer (which may have 2 digits) -representing the number of -notes in the grace (default is 1), {\tt m} and a digit for -{\bfi m}{\it ultiplicity} -(number of flags or beams, default is 1, 0 is allowed), -{\tt s} for {\bf s}lur (joining all notes of the -grace to the main note; no other {\bf s} is needed on the main note), -{\tt x} for a slash (only for single graces), -{\tt l} or {\tt u} to force the direction of the stem(s), -{\tt X} followed by a decimal number {\it x} to insert a gap of {\it x} -notehead widths between a normal grace and its main note\NEW{2.6}, -{\tt A} (for -{\bf A}fter) or {\tt W} (for {\bf W}ay-after) to associate -the grace note with the {\it prior} note. Next comes the only -required character, the -first note name. No time value can be entered, but if needed, the -octave or an accidental can be given as in a normal note. Second and -later notes must follow immediately in sequence, set apart by spaces, likewise -without any time value, and without any intervening commands. - - Normal or after-graces will be placed {\it immediately} before or after -the main note; way-after's, as far to right as possible before the next note -or bar line. If either type of after-grace is slurred, the slur will start -on the main note and end on the last one in the grace. - - -\subsubsection{Ornaments} - - Commands for ornaments are entered {\it after} their associated -note command. The ornaments now available are shake ({\tt ot}), {\bf m}ordent -({\tt om}), ``x"- or ``+"-shaped ornament symbols ({\tt ox, o+}), pizzicato -({\tt ou}), strong {\bf p}izzicato ({\tt op}), left parenthesis before -notehead ({\tt o(}), right parenthesis after notehead ({\tt o)}), -upper {\bf f}ermata ({\tt of}), {\bf d}own {\bf f}ermata ({\tt ofd}), -staccato ({\tt o.}), tenuto ({\tt o\_}), two different se{\bf g}nos -({\tt og} or {\tt oG}), {\bf C}oda ({\tt oC})\NEW{2.71}, -arbitrary-length wavy-line {\bf t}rill with {\it tr} ({\tt oT}), -arbitrary-length wavy-line -trill without {\it tr} ({\tt oTt}), sforzando ({\tt o>}), -%duncecap ({\tt o}\hbox to 6pt{\tt\^~}), \NEW{2.4}{\bf c}aesura ({\tt oc}), and -duncecap ({\tt o\verb|^|}), \NEW{2.4}{\bf c}aesura ({\tt oc}), and -{\bf b}reath ({\tt ob}). -All except the parentheses, staccato, -tenuto, and down fermata will normally -appear above the staff; the parentheses appear at the level of the note -head, and staccato and tenuto just above or below depending on the -stem direction. The only difference between staccato and -pizzicato is the vertical positioning of the dot. - -Either type of trill may immediately include an unsigned decimal number -to specify the length of the printed symbol in current \bs{\tt noteskip}s; the -default is 1. Thus {\tt oT0} represents {\it tr} with no wavy line. - -Once the ornament type has been specified, most of them can be raised -or lowered from their default position by appending -a signed integer to the command, representing the vertical offset -in \bs{\tt internote}s. \NEW{2.4}. A second signed integer specifies a -horizontal shift from default in notehead widths. - -The caesura and breath marks differ from the others in their default horizontal position, -which is 0.5\bs{\tt noteskip} past the note. - -The {\tt og} segno has several special properties. It must be entered in the first (lowest) -staff, but will appear above -every staff. Its vertical position cannot be altered, but if appended by a number...unsigned -if positive...all appearances will be shifted horizontally by that number of points. On the -other hand, the {\tt oG} segno\NEW{2.71} has a smaller symbol than {\tt og}, -applies only to the note after which it is entered, and can be shifted just as a -normal ornament. - - An ornament can be automatically repeated on a series of consecutive notes, -provided the notes are all in the same voice and the same input block. -To activate this feature, terminate -the first ornament command with~{\tt:}~. Then every note in that voice will -have the same ornament until a note is followed by the repeat terminator -{\tt o:} . - -\subsubsection{Editorial accidentals} - - To place a small sharp, flat, natural, or question mark above the staff, -after the affected note enter {\tt oe} followed by {\tt s, f, n} or {\tt ?}. -\NEW{2.2} You may also put a question mark right after the accidental. - -\subsubsection{Slurs} \label{slurs} - - By default \PMX will use \MusiXTeX's built-in font-based slurs. -But through user intervention it is possible to use either one of -\NEW{2.4}two different types of postscript slurs. {\it Type K} slurs, -developed by Stanislav Kneifl, are directly supported by \PMX and will -be the focus of any future \PMX enhancements. -They are globally activated with {\tt Ap} and several global -defaults set with other options to the {\tt A} command as described in -section~\ref{ApDirective}. If these are used, so will an alternate -set of hairpins (see section~\ref{dynamics}). -The other postscript slur option is Hiroaki Morimoto's {\it Type M} slurs. -These -are not directly supported by \PMXX, but are intended to be fully -compatible with the default font-based slurs. To use them, one would -use the in-line \TeX~command \bs\bs{\tt input musixpss}\bs~, and be sure -{\it not} to enter {\tt Ap} . From \PMXX's standpoint they are no different -from font-based slurs. - -There are some advanced options available only -with Type K postscript slurs, and a few obsolete ones only with font-based. -At this point the main -difference in functionality between the two is that with postscript, \PMX -provides support for -true ties, which are shaped and positioned slightly differently from -slurs. Future enhancements -will probably only work with Type K postscript slurs. Some users do still -prefer -font-based, possibly because Type K postscript slurs are not visible in some -DVI viewers. -New users should experiment with the various types of slurs and decide for -themselves. - - The normal commands for slurs are {\tt (} placed with a space -before a note, and {\tt )} placed after. The command {\tt s} is equivalent to -{\it both} of them (!), except that it always follows the affected note. -With font-based slurs, {\tt t} is equivalent to {\tt s} but -with several minor differences to be explained later. With postscript slurs, -{\tt t} signals to use a true tie. -The commands {\tt s} and {\tt t} are {\it toggles}, turning -a slur or tie off if it's already on and starting one otherwise. - -A \NEW{2.5} slur or tie may end on a rest, but not start on one. The default -ending height in this case will be the same as the starting height, and it -may be tweaked as described below. - - The first character is optionally followed by -a single-character ID code {\tt 0-9} or {\tt A-Z}, then by other -options described below. ID codes are only needed if two or more slurs are -open at the same time within one voice, such as when several chord -notes are tied. Using ID codes in such cases tells \PMX which open slur to -close. ID codes cannot be used with font-based {\tt t} slurs. - -The rules for finding the default direction and position of a slur -are complex; many factors enter into defining visually pleasing values. But -there's no need for gory details here; the result will usually satisfy, and if -not, it can easily be tweaked. The default direction of curvature can be -overridden with {\tt u} ({\bf u}pper), {\tt l} ({\bf l}ower), -or equivalently {\tt d} ({\bf d}own). -Starting or ending position can be shifted from its default by -entering one or two explicitly signed numbers. The first, which must be -an integer, represents the vertical shift in \bs{\tt internote}s; the second, -which may be decimal, the horizontal offset in notehead widths. \NEW{2.71}Starting -or ending -position of a postscript slur or tie can be made to align with the end of the stem -of an unbeamed note by using the option {\tt v}. No other options are permitted -with {\tt sv}, but any desired position can be forced with the numeric options. - -The shape of the slur may be altered as well\NEW{2.1}. This paragraph -deals with font-based slurs, for which the shapes may be less -than fully satisfying due to fundamental limitations of \MusiXTeX. -At the slur termination only, one or three -more parameters may follow the ones just described. The first, a signed, -nonzero -integer, is a vertical adjustment to the mid-height of the slur in -\bs{\tt internote}s. The next two, integers between 1 and 7 following a -``{\tt :}", are alterations to the starting and ending slopes. -These numbers are -passed directly as arguments of the \MusiXTeX{} macros \bs{\tt midslur} -(if only -one is given) or \bs{\tt curve} (if there are three). - -For \NEW{2.4}Type-K slurs, -the shape may be changed locally by including {\tt f} in either the -slur's starting or ending command to flatten it a bit, or {\tt h}, -{\tt H}, or {\tt HH} to -increase its curvature and raise or lower its middle by increasing degrees. -The default \NEW{2.5}curvature can be altered from normal -with new suboptions -to {\tt Ap} as described in section~\ref{ApDirective}. Local -curvature tweaks will take precedence over the global default. A special -option {\tt n} to the slur command can be used to locally restore the normal -curvature if the default curvature has been globally changed. - -Another option peculiar to Type-K slurs and ties is to locally -override the global -setting for automatic height adjustment (to avoid tangencies with staff -lines). The global defaults may be changed with the {\tt A} command as -described in section~\ref{ApDirective}. To -override the global setting for the current slur or tie only, use -the option {\tt p} in the command that starts the slur or tie, -followed by {\tt +} or {\tt -} (to turn adjustment -on or off), followed by {\tt s} or {\tt t} (for slur or tie). - -A dotted \NEW{1.41} slur is activated by including the option {\tt b} (for -{\bf b}roken) in the command that starts the slur. - -Slurs involving grace notes are specified within the command for the grace -(see section~\ref{graces}). - -For font-based slurs, the unique aspect of {\tt t} slurs is that if one -starts or ends on the same -note as an {\tt s} slur, the former will be moved away from the notehead to -avoid a collision. {\it This only works if neither slur has an ID code.} -This feature is only retained for backward compatibility. - -The available options should cover most circumstances, but if not, -the \TeX\ macros \bs{\tt isu} etc, defined in {\tt pmx.tex}, can be entered -as in-line \TeX\ commands (see section~\ref{LitTeX}). -These commands have three arguments: -slur number, vertical position (pitch, or offset from bottom staff line in -\bs{\tt internote}s), and horizontal offset in -notehead widths. When using these commands, you must choose an explicit -slur number. Use one large enough to avoid -conflicts with \PMXX 's automatic slurs, which are numbered from \NEW{2.4} -0 upward. -Also, remember that non-spacing in-line \TeX\ commands such as this one must -come {\it before} the note they apply to, in contrast with the \PMX -slur toggles which may come after. - -\subsubsection{Ties} - -With font-based slurs, in \PMX the only difference between ties and slurs -is the default positioning. -Ordinary slur ends are centered horizontally above or below the notehead, -while tie ends are shifted inboard and closer to the midheight of the -notehead. To specify a font-based tie in \PMXX, use a slur command and -include the option {\tt t} -in it, somewhere after the initial {\tt ( , ) , s } or {\tt t} . - -\NEW{2.4} With postscript slurs, ties---indicated with {\tt t} or -{\tt st}---will have similar differences -in endpoint positions, -but in addition will have a different shape (somewhat flatter) and will -always end at the same height they start. There is also an option to the -{\tt A} command that affects ties across line breaks -(see section~\ref{ApDirective}). By default the -second part of such ties will be drawn as a complete tie symbol. However, -if you want them to be a {\it half tie}---a special shape that is horizontal -at its left end---use the command {\tt Ap+h} at the start of the file. - -In addition to the notation options just mentioned, ties may also be -%indicated with the character {\tt\{} before the starting note and {\tt\}} after -indicated with the character {\tt$\{$} before the starting note and {\tt$\}$} after -the ending note\NEW{2.6}. - -\subsubsection{Line-breaking Type K slurs and ties} \NEW{2.5} \label{lbslurs} - -No special action is required if a slur or tie happens to cross a line break. -However, some special, manual adjustments are available for Type K postscript -slurs in these cases. The global option {\tt Apl} by itself adjusts several -parameters as described in section~\ref{ApDirective}. Further, if {\tt Apl} -has been issued, -then case-by-case adjustments for line-breaking Type K slurs and ties are -available as suboptions to the -slur commands. To tweak the horizontal and vertical positions of the end of -the first segment, enter the suboption {\tt s} in the command that starts -the line-breaking slur or tie, followed by two signed numbers representing -respectively the vertical shift -in \bs{\tt internote}s and the the horizontal shift in notehead widths. To -tweak the position of the start of the second segment, follow the above by -another {\tt s} and two more signed numbers. The usual curvature options -{\tt h}, {\tt H}, {\tt HH}, and {\tt f}, if included in -the starting command for a line-breaking slur, will apply only to the first -segment, and if in the closing command, to the second segment. If the tweaked -slur or tie does not happen to come at a linebreak, -the special position tweaks (after {\tt s} ) will all be ignored, and the -curvature tweaks on the closing note will take precedence as they normally -would. - -\subsubsection{Dynamics} \label{dynamics} - -\NEW{2.3} -After the affected note, enter {\tt D} followed by one of the -following {\tt pppp, ppp, pp, p, ffff, fff, ff, f, mf, mp, fp, sfz, -"[{\it any text}]", >,} -or {\tt <} . The last two are diminuendo and crescendo, and they are toggles, -i.e., the first one of each starts the symbol and the next one ends it. -The one surrounded by double quotes is an arbitrary text string. -With any dynamic mark, you can also -enter position shifts, vertical as a signed integer representing -the number of {\tt \bs internote}s, then horizontal as a signed number representing -number of notehead widths. There can only be one of the letter-groups on each -note, but there may also be {\tt D<} and/or {\tt D>} on the same note. These must be -entered as separate {\tt D...} commands, and must come in the right order, e.g., - -\medskip -[{\it some notes}] {\tt D<} [{\it more notes}] {\tt D< Dffff D>} -[{\it more notes}] {\tt D>} -\medskip - -Hairpins \NEW{2.7} may span from one input block to the next. - -There are numerous context-sensistive automagic adjustments to the positions -of all the dynamic symbols. If you don't like the result you can adjust the -position as just described. - -Due to \MusiXTeX's limitations, -there are some restrictions on hairpins when using font-based slurs. -They cannot be longer than 68mm, they cannot wrap over a system break, and they -must be horizontal. Finally, -only certain specific lengths are available so some horizontal position -tweaking may be needed, especially when letter-groups and -hairpins are combined. -These restrictions are all removed when using postscript slurs. - -\subsubsection{Beams} \label{beams} - - For the most part, \PMX automatically takes care of the details of -defining beams: selecting which notes are beamed together, and setting -the angle, direction, height, and {\it multiplicity} (the number of bars -along the top or bottom). However, one may define a {\it forced} -beam---which overrides \PMXX 's selection of which notes are beamed -together---by -surrounding the included notes with {\tt [} and {\tt ]}, being certain to -separate these commands and their options from the included note commands with -spaces. One may also wish to edit certain features of a beam even when -\PMXX 's grouping decision -would otherwise be acceptable; here again the beamed notes must be set -apart with {\tt [} and {\tt ]}. - -The {\tt [} may optionally be followed -immediately by several options. - -{\tt u} or {\tt l} will override -\PMXX 's selection of the direction of the beam, while {\tt f} will -{\bf f}lip it from whatever \PMX decided. - -{\tt j} {\bf j}oins the beam -grouping to a prior one started in another system (see below). - -One, two, or three consecutive integers, each preceded with {\tt +} -or {\tt -} , will affect the beam's appearance. The first integer is -an adjustment to the starting level (in \bs{\tt internote}s) and may range -from -30 to 30; the second is a slope adjustment with the same -permissible range; the third is an alternate adjustment to the -starting level (in beam thicknesses) and may only range from 1 to 3, -always acting to increase the stem length. The latter may be used to -align consecutive horizontal beams which have internal multiplicity -changes. For example, in 2/4 time, {\tt c84~c1~c~c~c~c8} would cause two -beams but the -first one would be lower than the second; {\tt [+0+0+1~c84~c1~c~]~c~c~c8} -would align the tops of the beams with each other. Due to the -complexity of \PMXX 's beam analysis procedures, these editing commands -may sometimes produce unexpected results, and some iteration may be -required to get exactly what you want. For example, -{\tt [+0+0+3~cd8~c3~c6~c~]~c~c~c3~cd8} -will not produce two aligned beams as desired, because -when \PMX analyzes the first beam, it automatically raises the starting -level a bit for another reason, namely, to avoid too short a stem on -the 64th notes at the end of that beam. In this case, -the user could counteract \PMXX 's internal adjustment by using -{\tt [-1+0+3~cd8~c3~c6~c~]~c~c~c3~cd8}. - -The character {\tt m} followed by a digit 1-4 forces the {\bf m}ultiplicity -of the -beam, the number of stem-joining bars. - -The option {\tt h} forces the beam to be {\bf h}orizontal. - - By default, xtuplets are set apart with their own beam. To beam -an xtuplet together with other non-xtuplets, just include it with the -other notes in a forced beam. - - Rests may also be included within forced beams, provided they are -shorter than quarter rests, and of course that they come {\it between} the first -and last notes under the beam. - -It's \NEW{2.5} now easy to define a repeating forced beam pattern. -If the option {\tt :}~(colon) is included in the starting command {\tt [}~for -a forced beam, then after you end the beam, more beams of the same duration -will be forced in -that voice, until stopped. They will be stopped at either the next regular -forced beam, or the end of the input block for that voice, whichever comes -first. - - Some users may wish to define beamed groupings with subgroups -joined by a single beam. The command {\tt ][}, standing alone between two -note commands in a forced beam, causes the multiplicity to decrease to -unity and immediately increase to its natural value for the next note. -For example, {\tt [~c14~c~c~c~][~c~c~c~c~]} will generate two doubly-beamed -groups connected by a single beam. - -Related \NEW{2.3} to this is a {\it single-slope beam group}, which is the -same as described -in the previous paragraph except that the beam disappears between segments. -Segments should be separated by {\tt ]-[} standing alone between two notes -inside the forced beam. - - If there are large jumps in pitch between notes in a beam within -a single staff, as a matter of taste you may wish -to start the beam for example as an upper one and end it as a -lower. \PMX will never do this automatically, but you can accomplish -it by forcing the beam with appropriately modified up/down-ness, starting level, -and slope. If you use this technique, there are two details to note: (1)~if -there are any intermediate multiplicity changes, they will only be handled -properly if the initially specified up-down-ness is consistent with the -vertical position -of the intermediate notes involved, and (2)~for proper appearance in crowded -scores you may wish -to insert hardspace or shifts as described in -section~\ref{hardspace}. Some examples are included in {\tt most.pmx}. - - Beams cannot normally jump staves. But if that is desired, start -the beam normally in one staff, and terminate the part of the beam in that -staff with {\tt ...~]j} . Then resume the beam in the new, adjacent staff with -{\tt [j~...} . For staff-jumping beams, it's OK to have just a single note -inside one or both of the members. Some adjustment of the beam height and -slope may be required. Sometimes the ending section's up-downness must be -overridden; you will know this is so if the ending is shifted horizontally -from its proper position by one notehead width. -Each voice must still have the right number -of beats, so you will probably need to fill time with blank rests after the -first member of the beam in one staff and before the second member in the other. -There can -still only be one staff-jumping beam open at a time. - -\subsubsection{Clefs} - - A clef change is signaled by {\tt C} followed by a single lower-case -letter or digit using the code specified in -section~\ref{ClefCodes}. If clefs come out at the wrong -vertical position, refer to the note in {\tt pmx.tex}. - -\subsubsection{Arpeggios} - -To set an arpeggio (a vertical wavy line), simply place the command {\tt ?} -after the commands for both the first and last note. To shift the symbol to -the left by {\it x} notehead widths, use the option {\tt -}[{\it x}]\NEW{2.6} . - -\subsubsection{Lyrics}\NEW{2.73}\label{lyrics} - -Lyrics depend on the underlying \TeX\ command {\tt\bs pmxlyr} developed by Dirk -Laurie, which is defined in {\tt pmx.tex}. It in turn makes use of the macro -package {\tt musixlyr.tex} developed by Rainer Dunker. So to enable lyrics within \PMXX, -you will need to -ensure that {\tt musixlyr.tex} is installed somewhere in your system where your -\TeX\ processor can find it. - -Lyrics can be inserted by enclosing them in double-quotes inside the music line -just before the first note to which they apply, as in -{\tt "us-ing lyr---ics now\_\hglue1pt\_ "}. Once the first double quote is encountered, \PMX will -ensure that {\tt musixflx.tex} is input into the \TeX~file. - -Lyrics for several notes can be defined in one go. -The lyrics in each input string demand a specific number of notes, depending on -the number of syllables, hyphens, and underscores. If there are not enough lyrics, -question marks will appear; if too many, the excess syllables will not appear. - -The rules for aligning lyrics properly with notes are as follows. Words are -separated by whitespace, with any number of spaces counting as one. Syllables -within a word that require just one note each are separated by a single hyphen. There are -two ways to extend a syllable over two or more notes. If it is the last syllable in -a word (like {\tt "now\_\hglue1pt\_ "}), follow it with consecutive underscores, one for each extra -note, and finally a space. It will be printed with a continuous underscore. -To extend a syllable within a word (like {\tt "lyr---ics"}), insert one extra hyphen -(with no spaces) for each -extra note, and it will be printed with some number of hyphens filling the proper -space between syllables. Conversely, a tilde ({\tt \char126}) between two words -(with no spaces) prints a space between them while assigning the last syllable of the -first and the first syllable of the second to a single note\footnote{This is just an -example of using a standard \TeX\ feature within lyrics.}. So in the end, in a voice -with lyrics, every note must be associated with a syllable, its extension, or two -syllables joined with a tilde. - -Although underscores within a word or consecutive hyphens at the end may not crash the -code, they are not recommended for any foreseen useful purpose. - -By default, lyrics will be placed below the staff where they are entered, half way between that -and the next lower staff. You may want to -alter the vertical position of a lyrics line, especially if both voices in -a staff have lyrics. This is accomplished with the opfion {\tt @}, immediately -following the closing quote of the -lyrics string with no space. That must be followed by either {\tt a} or {\tt b} for -{\bf a}bove or {\bf b}elow the staff, then a signed integer for the number of -\bs{\tt internote}s above or below the default height. This command is "sticky"; it -will remain in force for later lyircs in the same voice until altered. - -It may also be necessary to allow extra vertical space where the lyrics are positioned. -There is no \PMX command for this, but type 2 inline \TeX~can be used to insert extra -vertical space above any instrument. For example, if the voice is in instrument \#2 and -lyrics are below that staff, -\bs\bs{\tt interinstrument=0\bs internote\bs\bs setinterinstrument1\{8\bs internote\}}\bs~ will -add \newline 8 \bs{\tt internote}s in the space for the lyrics. - -Present limitations allow lyrics at upper and lower voices on the bottom two -staves of instruments 1 to 4. Elsewhere they are quietly ignored. - -Most scores with lyrics will benefit from the type 2 command \bs\bs{\tt sepbarrules}\bs, which -stops bar lines from crossing through the vertical space between instruments. - -The notation {\tt "us-ing lyr---ics now\_\hglue1pt\_ "} is actually shorthand for the inline \TeX\ -string {\tt\bs pmxlyr\{us-ing lyr---ics now\_\hglue1pt\_ \}\bs}. All the rules given in -section~\ref{LitTeX}~for -Type~1 \TeX\ strings apply. To ensure that the length of all the Type 1 \TeX\ -strings belonging to a particular note combined does not exceed 128, remember -to account for the nine characters in {\tt\bs pmxlyr\{\}}. - -This way of entering lyrics is a convenient interface to a small subset of the -facilities offered by {\tt musixlyr}. If more advanced features than those supported by -{\tt\bs pmxlyr} are needed, the necessary {\tt musixlyr} macros could be entered as -in-line \TeX\ directly into the .pmx file - see the example file {\tt netsoos.pmx} for -some of those. - -If really advanced features are needed (such as having several verses of lyrics -at once), most users would prefer the convenient interface to {\tt musixlyr} via -the program {\bfx M-Tx} developed by Dirk Laurie. It is a pre-preprocessor which produces -a {\tt .pmx} file containing the proper in-line \TeX\ commands. Its input language -is similar (but not identical) to \PMX and includes most \PMX functionality as a subset. - -\subsection{Commands That Affect All Voices} \label{pmxcmds} - - Most commands that affect all the voices can only appear in the first -(lowest) voice in the first (lowest) staff. Most such commands will -automatically be -transferred from score to parts when separate parts are generated by -{\bfx scor2prt} (see section~\ref{scor2prt}). - -\subsubsection{Repeats, double bars, forced single bars} - - Repeat signs, double bars, and other bar-ending options are signaled -by {\tt R} followed by -{\tt l, r, lr, d, D, dl, b} or {\tt z} for -{\bf l}eft repeat, {\bf r}ight repeat, {\bf l}eft-{\bf r}ight repeat, -thin-thin {\bf d}ouble -bar, thin-thick {\bf D}ouble bar, thin-thin {\bf d}ouble bar followed by -{\bf l}eft repeat, single {\bf b}ar, or blank (invisible) barline\NEW{2.4}. -Some of these have peculiarities. -{\tt Rb} forces a single bar before a movement break (see section~\ref{movbrk}), -where otherwise by default there is a double bar. That can be useful for -example if you -change the number of instruments (via an option in the movement-break command) -in the middle of a movement. {\tt Rz} will cause a blank barline at the end -of the current system, not necessarily the current bar. It can be used -together with blind meter changes if you want to split a bar across a -system break. -If {\tt Rlr} falls at a system break, \PMX will automatically split it in -two. The command {\tt Rdl} will likewise be split at a system break, but if -not at a system break, the {\tt d} will be ignored. - -These commands must be in the -first voice. It is best only to place them before the first note in an -input block or if necessary after the last one; otherwise {\bfx scor2prt} -may behave erratically. -Using two separate {\tt R} commands in succession will cause -unpredictable results. - - -\subsubsection{Voltas (first and second endings)} - - Beginnings and ends of first and second endings are signaled by -{\tt V} (for {\bfi v}{\it olta}). -If it's the {\it end} of the volta, add the option {\tt b} (for -{\bfi b}{\it ox}) or {\tt x} for {\it no bo}{\bfi x}. -If it's the {\it start} of a volta, you can -optionally enter any text at all that doesn't include a space and doesn't -start with {\tt b} or {\tt x} (most -commonly {\tt 1} or {\tt 2}). A period will automatically be -appended to the text. If one volta ends and another starts right -away, only a single {\tt V} is needed. Voltas must only be entered in the -first voice. If separate parts are to be created from a score using -{\bfx scor2prt}, then only a single volta is allowed in any given input -block, and it must be at the beginning of the block. - -\subsubsection{Meter changes}\label{MeterChange} - - Meter can only be changed at the beginning of an input block. -A {\bfi m}{\it eter change} command starts with the letter {\tt m}. -There are two different ways to complete the command. - -{\bfx Method 1.} Enter 4 numbers -with no intervening spaces. The four numbers are {\tt mtrnuml}, -{\tt mtrdenl}, {\tt mtrnmp}, {\tt mtrdnp} as defined in section~\ref{setupdata}, -with the following exceptions for this method only: -You must use {\tt o} to represent -the number 1; if you enter the digit {\tt 1} then \PMX will interpret that -digit and the next as a 2-digit integer, between 10 and 19 inclusive. -19 is the largest number that can be entered with this method. Note that -{\tt mtrdenl=0} still represents a whole note. - -{\bfx Method 2.} \NEW{1.4} Enter the four numbers verbatim in the order just -listed, but separate them with slashes ({\it /}). - -\subsubsection{Fundamentals of key changes and transposition}\label{transpose} - -As explained in section~\ref{setupdata}, the intial key signature, also called -the concert key, is specified in the setup data. In order to change the key -signature or to transpose (i.e. make the printed notes appear at a different -level than where -they were entered), use the {\tt K} command. The syntax is {\tt K}[{\it n}][{\it k}] -where {\it n} and {\it k} are explicitly signed digits respectively giving the distance -to transpose in \bs{\tt internotes}, and -new key signature. When transposing, you should always use relative accidentals, activated by -the separate command {\tt Ar} at the start of the first input block (see section~\ref{ArDirective}). -For example, to transpose a piece in C major to E major you would enter -{\tt Ar~K+2+4} at the beginning of the first block. - -To transpose by a half step to a key with the same -letter name, use {\tt K-0}[{\it k}] where as before {\it k} is an explicitly signed integer giving -the new signature. -(Using {\tt -0} instead of {\tt +0} eliminates confusion with a simple key -change, see the next paragraph.) - -A simple key change can be signalled at the start of any input block. Use -the command {\tt K} with {\it n}={\tt +0} as the first argument and the new key signature as the second. - -If the signature changes from sharps to flats -or vice-versa, the default will be to include naturals in the first instance of the new -signature. To suppress this behavior, use the \NEW{2.7}option {\tt n} right after {\tt K} . -For example, to change from -2 flats to 3 sharps and suppress the naturals, enter {\tt Kn+0+3} . - -The procedures described above will affect all instruments in the score. To change the key of or -transpose just a single instrument, use Ki[{\it m}][{\it n}][{\it k}] when {\it m} is an unsigned integer -representing the instrument number, and {\it n} and {\it k} are as just described. -For more than one instrument, you may immediately repeat everything after {\tt K} (including {\tt i}). -This may come either at start of score (right after setup) or at the beginning of any later input -block. But if it's later, it must be preceded by a normal -(full score) non-transposing key change command {\tt K+0}[{\it k}]. -For example, to change the keys of the second and third instruments to one sharp and two sharps -respectively, use {\tt Ki2+0+1i3+0+2} . - -\subsubsection{More on transposition; ``transposing'' instruments and example files} - -In practice, two fundamentally different situations may arise: (1) (Full-score transposition) A -score that has been entered in one key -is to be completely transposed to a different key and pitch level, usually to force the range to fit -different instruments than original; or (2) (``Transposing'' -instruments) some of the instruments require a part printed in a different key and at a different -pitch level than it sounds. - -To transpose -an entire score from the key specified in the setup data (Case TTA), simply use the -{\tt K} command at the -beginning of the first input block, as outlined in the previous section. - -It gets more complicated when some transposing instruments are involved, -because there are three different possibilities: -(Case~CTS)~The transposing instruments can be entered in concert key but printed -transposed in the score and in separate parts created with {\bfx scor2prt} (see -section~\ref{scor2prt}); -(Case~TTS)~They can be entered transposed and printed transposed in -both the score and in parts; -(Case~CCS)~They can be entered in concert key and printed in concert key in the score, but -printed transposed in parts. Matters are further complicated if there is a later key -change. Finally, if a MIDI file is to be produced, then in cases CTS and TTS an additional -step involving the transpose option to the MIDI command {\tt I} -(see section~\ref{MIDI}) must be taken. - -All of the required commands for all four of these cases are summarized in the table -below. Following that, they are discussed a bit further and illustrated in -four example files (named [Case]{\tt .pmx}) that are also included in the distribution. - -\font\smaller=cmr10 -{\smaller -\begin{center} - \begin{tabular}{cllcll} - \hline - Case & PMX entry & Printed score & MIDI pitch & Initial commands & Later key change \\ - \hline - TTA & All B flat major, & All transposed up & transposed & {\tt K+2+2} & {\tt K+0-5} \\ - ~ & later key change & 2 steps to D & ~ & {\tt I} & ~ \\ - ~ & to B flat minor & major, later to D & ~ & ~ & ~ \\ - ~ & ~ & minor & ~ & ~ & ~ \\ - \hline - CTS & All B flat major, & Trombone (1) & concert & {\tt Ki2+5+1i3+1+0} & {\tt K+0-5} \\ - ~ & later key change & concert; alto sax & ~ & {\tt IT+0-5-1} & {\tt Ki2+5-2i3+1-3} \\ - ~ & to B flat minor & (2) transposed up & ~ & ~ & ~ \\ - ~ & ~ & 5 to G, later G & ~ & ~ & ~ \\ - ~ & ~ & minor; clarinet (3) & ~ & ~ & ~ \\ - ~ & ~ & transposed up 1 to & ~ & ~ & ~ \\ - ~ & ~ & C, later C minor. & ~ & ~ & ~ \\ - \hline - TTS & Trombone (1) & Trombone (1) & concert & {\tt Ki2+0+1i3+0+0} & {\tt K+0-5} \\ - ~ & concert; alto sax & concert; alto sax & ~ & {\tt IT+0-5-1} & {\tt Ki2+0-2i3+0-3} \\ - ~ & (2) transposed up & (2) transposed up & ~ & ~ & ~ \\ - ~ & 5 to G, later G & 5 to G, later G & ~ & ~ & ~ \\ - ~ & minor; clarinet (3) & minor; clarinet (3) & ~ & ~ & ~ \\ - ~ & transposed up 1 to & transposed up 1 to & ~ & ~ & ~ \\ - ~ & C, later C minor. & C, later C minor. & ~ & ~ & ~ \\ - \hline - CCS & All B flat major, & All B flat major, & concert & {\tt \%2K+5+2} & {\tt K+0-5} \\ - ~ & later key change & later key change & ~ & {\tt \%3K+1+0} & ~ \\ - ~ & to B flat minor & to B flat minor; & ~ & ~ & ~ \\ - ~ & ~ & parts printed & ~ & ~ & ~ \\ - ~ & ~ & transposed & ~ & ~ & ~ \\ - \hline - \end{tabular} -\end{center} -\medskip -} - -{\bfx Case TTA: Full score transposition.} -Here the entire score is to be transposed. In the setup data the signature is set to -2. Then -the command {\tt K+2+2} says to transpose up 2 steps from the initial key of B flat to D, and put 2 -sharps in the key signature. No special attention is needed for the MIDI; it will come out in the -transposed key. A later (full-score) key change requires another {\tt K} command, but now the -transposition parameter is set to 0 and the new key is the concert key (I guarantee people will be -confused by this). In the example the command for the signature change is {\tt K+0-5} , making the -new concert key B flat minor with 5 flats, and, considering the initial transposition, causing the -score and MIDI to come out in D minor with 2 flats. - -{\bfx Case CTS: Parts all entered in concert key, but some transposed in the printed score.} -Here, to produce the -printed score, parts are all entered in concert key, but instrument-wise transposition is used for -the transposed instruments. In the example the alto sax part is entered in B flat but will be -transposed up 5 steps in the printed score, to G major. This is brought about with {\tt Ki2+5+1} . Similar -logic applies to the clarinet part, while the trombone part is not transposed. If a MIDI file is -desired, it will come out in concert key, but only after using the transpose option in the MIDI -command to undo the transpositions caused by the K command. In the example the command -{\tt IT+0-5-1} does this, ``de''transposing each of the three instruments by the necessary number of -steps. For a later key change, first the full-score {\tt K} command changes the concert key, then the -instrument-wise {\tt Ki command}, with the same transpositions as the initial one, sets the new key -signatures for the transposing instruments. Here the signatures to be entered are the transposed -signatures, i.e., the ones that will be printed. - -{\bfx Case TTS: Parts entered in respective transposed keys, and printed in those keys in the score.} -In this method of scoring transposing instruments, parts for transposing instruments -are transposed ahead of time and -entered exactly as they will appear in the score. So to produce the printed -score this way, the pitch does not have to be changed, but the key signatures must be set -separately for each transposing instrument using the {\tt Ki} command. In the example, the alto sax is -entered in the key of G so the instrument-wise option for it is {\tt Ki2+0+1} . Note that {\tt +0} means no -further transposition is needed before printing, because the part was transposed on entry. Once -again, if a MIDI file is desired, it will come out in concert key, but just as in the previous case, -you must use the transpose option in the MIDI command {\tt IT} to undo the transpositions caused -by the {\tt K} command. For a later key change, the same full-score {\tt K} command as in the previous -case is used to change the concert key. Then the instrument-wise {\tt Ki} command, now with {\tt +0} for -the transpositions, sets the new key signatures for the transposing instruments, again using the -transposed signatures. - -{\bfx Case CCS: Parts entered in concert key, printed in score in concert key, but transposed in -separate printed parts.} -This is the easiest case of all. Nothing special needs to be done for the score, but part-only, -full-score transposition commands {\tt\%}[instrument number]{\tt K...} should be entered in the score. Then -{\bfx scor2prt} will generate a transposed part. Of course if a MIDI is made from the score it will -come out at concert pitch. For example, to transpose the alto sax part up 5 steps, initially to G -major, near the top of the score file enter {\tt\%2K+5+1} . Later, where the concert key changes to B -flat minor and the alto sax to G minor, enter simply {\tt K+0-5}, making the new concert key B flat -minor with 5 flats. When {\bfx scor2prt} is invoked to make separate parts, this will be transferred -verbatim into all parts, and then \PMX will internally adjust the signature for each transposed part -as required. - -{\bfx Making separate parts.} -In all of the cases discussed, if the patterns of commands in the table are followed, then -separate parts can be made as usual using {\bfx scor2prt}. They will -automatically come out transposed as desired. - -\medskip -%\pagebreak -{\bfx Texts of the transposition sample files:} -% Note: when editing is done, figure out how to make scripts size work without page break. -\begin{scriptsize} -%\begin{tiny} -\begin{multicols}{4} -\begin{verbatim} -%TTA.pmx -3 2 4 4 4 4 0 -2 -1 1 20 .13 -Trombone II+III -Trombone I -bbb -.\bs -Tt -TTA -Apr -I -K+2+2 -b42 d f b t b t gf df b / -b42 d f b t b t gf df b / -b42 d f b t b t gf df b / -K+0-5 -b42 c d e f gs as b / -b42 c d e f gs as b / -b42 c d e f gs as b / - - - -%CTS.pmx -3 3 4 4 4 4 0 -2 -1 1 20 .1 -Trombone -Alto Sax -Clarinet -btt -.\ -Tt -CTS -Apr -Ki2+5+1i3+1+0 -IT+0-5-1 -b42 d f b t b t gf df b / -b43 d f b t b t gf df b / -b44 d f b t b t gf df b / -K+0-5 -Ki2+5-2i3+1-3 -b42 c d e f gs as b / -b43 c d e f gs as b / -b44 c d e f gs as b / - -%TTS.pmx -3 3 4 4 4 4 0 -2 -1 1 20 .1 -Trombone -Alto Sax -Clarinet -btt -.\ -Tt -TTS -Apr -Ki2+0+1i3+0+0 -IT+0-5-1 -b42 d f b t b t gf df b / -g44 b d g t g t ef bf g / -c45 e g c t c t af ef c / -K+0-5 -Ki2+0-2i3+0-3 -b42 c d e f gs as b / -g44 a b c d es fs g / -c45 d e f g as bs c / - -%CCS.pmx -3 3 4 4 4 4 0 -2 -1 1 20 .1 -Trombone -Alto Sax -Clarinet -btt -.\ -Tt -CCS -Apr -%2K+5+1 -%3K+1+0 -I -b42 d f b t b t gf df b / -b43 d f b t b t gf df b / -b44 d f b t b t gf df b / -K+0-5 -b42 c d e f gs as b / -b43 c d e f gs as b / -b44 c d e f gs as b / -\end{verbatim} -\end{multicols} -\end{scriptsize} -%\end{tiny} - -\subsubsection{Text} - - The commands {\tt h} or {\tt l}, when placed in the first -column of an input line and followed by a blank or, for {\tt h} only, by -a signed integer, -stand for {\bfi h}{\it eader} and {\bfi l}{\it ower text}. They will put a -text string -above or below the {\it top} staff in the {\it first} bar of the block where -they are entered. The text string must be on a line of its own, -immediately following the command. The integer is a vertical shift in -\bs{\tt internote}s. - - A {\it title block} with up to three elements can be defined at the -beginning of the first input block. {\tt Tt} signals that the text -{\it on the following line} is to be set as a {\bf t}itle for the whole piece, -and it will be centered. {\tt Tc} similarly indicates a {\bf c}omposer's name, -to be set below the title and right justified. {\tt Ti} likewise stands for -an {\bf i}nstrument name, which will be set above the title, left-justified. -The text for any of these commands can be split over two or more lines -by including \bs\bs~at the location of the line break. - -{\tt Ti} will automatically be invoked by {\bfx scor2prt} when it generates -parts from a score. - -Extra vertical space can be added between the title -block and the top system by appending to {\tt Tt} a one- or two-digit -number representing the space in \bs{\tt internote}s. This only works if -{\tt Tt} is the {\it final} title block element entered. - -The {\tt D} command can be used to enter arbitrary text as described in -section~\ref{dynamics}. - -Lyrics may be entered as described in section~\ref{lyrics}.\NEW{2.73} - -\subsubsection{Page numbering, centered header text} - - If you want pages to be numbered at the top left or right, place -the command {\tt P} anywhere within the \PMX code that represents the first -page to be numbered (usually the first or second page). -{\tt P} can be followed optionally by the starting -page number and/or by {\tt l} or {\tt r}, the latter overriding the default -locations of odds on the right and evens on the left. \NEW{2.0} -There is also a special option {\tt c} for {\bf c}entered header text. -It must be the {\it last} -option in the {\tt P} command. It will define text to be printed at the top of -every page {\it after the first}. If a blank follows {\tt c}, the default -header text will -be the instrument name entered with the command {\tt Ti} . If any non-blank -character except {\tt "} follows {\tt c}, the header text will start with that -character and end at the next blank. If {\tt "} follows {\tt c}, the -header text will be everything between that and the next {\tt "} (this -permits headers containing spaces). The {\tt P} command and its options -will be ignored when making parts from a score (since page numbering -will usually be different in the score than in the parts), but page -numbering (and centered headers) for parts can be still be initiated -independently, for example with {\tt \%!P2} or {\tt \%1P2r} (see -section~\ref{scor2prt}). - -\subsubsection{Overriding certain defaults, or -getting the most from \PMXX}\label{Acommands} - -Understanding this section is important if you want to get the most out -of \PMXX. In many -cases the switches described here represent subtle but significant -improvements that have come along since \PMX was initially developed. Rather -than changing the defaults, they are treated as optional in order not to -upset the layout of older scores. For example, virtually every new score I -create begins with at least {\tt Abple}. - -As you may have guessed, it is the command {\tt A} that can be used to -override a grab-bag of default settings. The available options affect a -wide range of \PMX features: sizes -and interpretation of accidentals, -dot positions, space before the first note of every bar, space between staves, -slur package selection, vertical positioning of Type K postscript -slurs, line-breaking Type-K slurs, curvature of Type-K slurs, -naming of parts, vertical positioning of rests in 2-voice staves\NEW{2.6}, -brackets for non-beamed xtuplets, and inputting so-called -{\it normal include} files. - -{\bf Size of Accidentals.} -{\tt b} makes all accidentals -{\bf b}ig, {\tt s} makes them all {\bf s}mall. By default, big ones are used -unless unaltered spacing doesn't provide enough space. Thus the default -behavior may cause a mixture of big and small accidentals, and in fact is not -recommended. - -{\bf Relative accidentals.}\label{ArDirective} -If transposing, then the {\bf r}elative accidental convention must be used, -indicated by {\tt r}. This changes the way you enter accidentals. With -relative accidentals, the note options {\tt s}, {\tt f}, {\tt n} take on -unconventional meanings, now respectively signaling that a note should be raised -a half step, lowered a half step, or left alone {\it relative to the pitch -it would have according to the key signature}. So for example, with {\tt Ar}, -in the key of B flat major the note command {\tt bs} would cause a B natural -to be printed. By contrast, the default is -the normal, absolute convention, where the indicated pitch alteration is -relative to what the pitch would be if there were no key signature. - -{\bf Vertical position of dots.} -If there are staves with two voices, {\tt d} causes dots in the -lower one to appear on or {\it below} center, in contrast with the default. - -{\bf Gap at start of bar.} -Use {\tt a} followed by a -decimal number to override the default setting for \bs{\tt afterruleskip}, -the space before the first note in a bar. The default in \PMX is -{\tt 1}\bs{\tt elemskip}, 20 percent smaller than \MusiXTeX{}'s. - -{\bf Space between staves within a system.} -If \PMXX's vertical spacing between staves within a system is not pleasing, use {\tt I} or -{\tt i} , followed by a decimal number, to apply a scale factor to -\bs{\tt interstaff} . {\tt I} -affects all pages, {\tt i} only the current one. Shrinking the space between -staves within each system will cause the space between systems to increase, and -conversely. These options have no effect if there is only one staff per system. - -{\bf Equal space between systems.} -\label{AeDirective}\MusiXTeX~normally draws a virtual box around each system -and inserts equal vertical space between boxes. \NEW{2.3} -When objects protrude above the top staff in a system or -below the bottom one, this can lead to unequal spacing between the top staff -line in one system and the next. If you prefer that the vertical spacing -between the staves of consecutive systems be constant for the whole page, -use the {\tt e} option of the {\tt A} command. One side benefit of {\tt Ae} -is that it will prevent systems from spilling over onto extra pages, -regardless of how many systems are put on the page. When using this option, -you may occasionally want to force more vertical space between certain systems. -There is a \TeX~macro -{\tt \bs spread} that can be inserted anywhere in the system before the -desired wider gap. It has one argument, the desired extra space in -{\tt\bs internote}s. - -{\bf Stop grouping systems at top in sparse pages.} -Another \NEW{2.4}\ command affecting vertical spacing is the {\tt v} -option of the {\tt A} command (for -{\bf v}ertical). \PMX normally spreads staves -vertically over a full page, unless the white space becomes excessive, -in which case it groups all staves near the top of the page. Entering -{\tt Av} will suppress this grouping near the top, and ensure that -systems will always be spread vertically regardless of how much white -space is left. It is a toggle; the second time it is issued, the -behavior reverts to the default. - -{\bf Make some staves smaller.} -The {\tt S} -option to the {\tt A} command\NEW{2.7} allows you to specify a -different size for selected staves and their notes compared to the -global value set in the setup data. It is followed by exactly {\tt noinst} -characters, one for each instrument, selected from -{\tt 0}, {\tt -}, {\tt s}, or {\tt t} for -normal, small, small, or tiny sizes respectively. - -{\bf Postscript slurs.} -The \label{ApDirective}\NEW{2.4} command {\tt Ap} activates Type K -{\bf p}ostscript slurs. To use this -you must have {\tt musixps.tex} somewhere that \TeX~can find it, and -{\tt psslurs.pro} somewhere that {\bfx dvips} can find it. -If these files happen to be missing from your \TeX~distribution, they -can be found -\href{http://www.icking-music-archive.org/software/musixtex/musixtex.zip} -{\underline{here}}. -Several suboptions affecting Type K -postscript slurs are described here and in the following paragraphs. First, -by default these slurs and ties will not have their vertical positioning tweaked -to avoid tangencies with staff lines. To activate this type of adjustment, -use one of the suboptions {\tt +s} or {\tt +t} for -slurs or ties respectively. -(For example, {\tt Ap+s}). Be -warned that this may alter the endpoint positions from what one would normally -expect. To deactivate the adjustment, use the same command but with {\tt -} . -Another suboption of {\tt Ap} affects line-breaking slurs. Normally a full tie -is drawn at the start of the second line. -However, the suboption {\tt Ap+h} causes the use of -{\it{\bfi h}alfties} for the second part, which are flattened at their -left-hand end, and require the -special font {\tt mxsk} provided with the Type K postscript slur distribution. -It may be cancelled with {\tt Ap-h} . - -The \NEW{2.5} suboption {\tt l} (e.g. {\tt Apl}~) activates some other tweaks -and tweaking capabilities for line-breaking Type K slurs and ties. It -automatically tweaks the -horizontal positions of the end point of the first segment and the start of the -second, uses a normal tie character for both segments of a tie, and enables -further tweaking of the horizontal and vertical positions of internal endpoints -on a case-by-case basis, using options in the initial slur or tie command (see -section~\ref{lbslurs}, and the end of the fourth system in the example file -{\tt barsant.pmx}). - -Another pair of \NEW{2.5}suboptions to {\tt Ap} affects the default curvature of -Type-K postscript slurs. {\tt Ap+c} and {\tt Ap-c} will respectively increase or -decrease the default curvature of all slurs to the next level in the sequence -{\tt f, n, h, H, HH} . (Here {\tt n} stands for {\bf n}ormal.) Several levels -may be traversed by repeating the suboption, e.g., {\tt Ap+c+c} increases the -default curvature by two levels. If you try to -go outside the allowable range, a warning will be issued, the curvature will be -set to -{\tt f} or {\tt HH} , and processing will continue. See section~\ref{slurs} for -further details. - -If \NEW{2.5} your score contains Type K slurs and if you use a program such as -{\bf dviselec} to extract single pages -from a {\tt .dvi} file, you should use the suboption {\tt h} (e.g. -{\tt Aph}~) . This will cause the header file {\tt psslurs.pro} to be written -into the postscript file at the top of of every page. - -{\bf Vertical rest positioning in keyboard scores.} -The\NEW{2.6} option {\tt AK} activates special rules for vertical positioning of rests in -two-voice staves. By way of background, without this option, rests in two-voice -staves have default positions based on a simple rule that is not -context-sensitive: those in the lower voice (the one before {\tt//}) are -4\bs{\tt internote}s below their single-voice default positions, and those in -the upper line are 2\bs{\tt internote}s above the single-voice default. In contrast, the -option {\tt AK} invokes a set of context-sensitive rules to set the default -position. The baseline rule is to align the rest in a horizontal line with the -next following note in the same bar. If there is no following note in the bar, -then it is aligned with the next prior note. If there are simulataneous rests -in both voices, the old rule is applied. When the {\tt AK} option is in force, -it only affects places where there are two voices in a staff. It may be toggled -on and off at the beginning of any input block, using just {\tt AK}. When the -option is in effect, any user-defined tweaks on the height of a rest will -supersede the option for that particular rest, i.e., the tweak will be applied -relative to the single-voice default position. When {\tt AK} is in effect, the -option {\tt L} in a rest command will cause the vertical position of that rest -to be based on the {\it preceding} note, rather than the following one as is -the default. - -{\bf Names of \PMX files for parts.} -The \label{ANDirective}option {\tt N} to the {\tt A} command allows you to specify -arbitrary names for the part files generated by -{\bfx scor2prt}. Follow {\tt AN} with the part number and the new file base name in double -quotes. Immediately follow this with any number of additional part numbers and -alternate file base names in quotes. When part files are generated, {\tt .pmx} will be -appended to the requested base name. - -{\bf Gapped bracket for nonbeamed xtuplets.} -Non-beamed \label{ATDirective}\NEW{2.5}xtuplets will normally be printed with -a bracket above or below, and -a number above or below that. If you would like this number instead to be -positioned within a gap in the bracket itself, enter {\tt AT} .You must have -{\tt tuplet.tex} available to your \TeX~processor. If missing, this file -can be found -\href{http://www.icking-music-archive.org/software/musixtex/musixtex.zip} -{\underline{here}}. - -{\bf ``Include'' file.} -\PMX commands \NEW{2.5}in an external file can be included at the start of any input -block by designating the file as a {\it normal include} file, using the -command {\tt AR}[{\it filename}] . See section~\ref{ARDirective} for details. - -{\bf Positioning printed pages.} -For \NEW{2.7} printing on {\bf l}etter or a{\bf 4} paper, the command {\tt Acl} or -{\tt Ac4} will set the margins -of the printed area so it will be properly centered with no further -adjustments needed when running {\bfx dvips}. - -\subsubsection{Extra hardspace, horizontal shifts} \label{hardspace} - - Despite the author's best intentions to relieve you of the chore -of adjusting {\it any} horizontal spacing by hand, there may be some occasions -where you -will want to do it. A command starting with {\tt X} initiates one of two -types of horizontal adjustment: A {\it shift} moves one or more -characters but does not affect any other spacing anywhere; a -{\it hardspace} inserts a fixed amount of space at a particular time and -affects the horizontal positions of everything in all staves in the system. -If the command includes {\tt S}, it is a {\bfi s}{\it ingle} shift and affects -only the next note or rest. If it includes a {\tt :} it either starts or -terminates a {\it group} shift. -All {\tt X} commands except group shift terminations -must include a decimal number for the size of the offset in notehead widths. -If the number is immediately followed by -{\tt p}, then the number represents points, otherwise, notehead widths. -If there is no such number but there is a {\tt :} the command -signals a group shift termination. -Group-shift commands must occur in -start/terminate pairs, and group shifts cannot extend across a bar line. - -An {\tt X} command containing neither {\tt S} nor {\tt :} is -automatically a hardspace. - -Because horizontal spacing in parts will usually differ from that in the -score, by default the hardspace command will {\it not} be copied into parts -by {\bfx scor2prt}; however the shift commands will be copied. -These behaviors can be overridden using the methods to be described in -section~\ref{scor2prt}, Alternatively, \NEW{1.42} to help keep \PMX score -files neat -and readable, the character {\tt B} can be used within the {\tt X} command -to signify that it applies to {\bf b}oth score and part, or {\tt P} for -{\bf p}art only. - -\subsubsection{Minimum spacing between notes in crowded systems} - - \PMX does some special, complex analysis to adjust horizontal spacing -in crowded systems. By default, the minimum space between consecutive -noteheads is 0.3 notehead widths. In very special situations you may want to -change 0.3 to some other fraction. To do so, enter {\tt W. }(decimal point is required) - followed by {\tt 1}-{\tt 9} to represent the number -of tenths of a notehead width to be used as the minimum spacing. Use of this option -is demonstrated in the example file {\tt barsant.pmx}. - -\subsubsection{Page size} - - The default page size is 740 by 524 pt (10.3 by 7.3 in). To change -the height or width, use the special commands {\tt h}[{\it n}][{\it u}] or -{\tt w}[{\it n}][{\it u}] at -the beginning of the first input block. Here {\it n} is a decimal number -for the new dimension and {\it u} defines the units; {\tt i} for inches, {\tt m} for -millimeters, and {\tt p} or nothing for points. This command can be used -together with {\tt \%\%} or {\tt \%!} -(see section~\ref{scor2prt}) to give the parts made by -{\bfx scor2prt} different page sizes than the parent score. - -\subsubsection{Line, page, and movement breaks} \label{movbrk} - - It is possible to force line, page, or movement breaks anywhere. -For a line break, just enter {\tt L}[{\it n}] at -the start of an input block (in the first voice only), and the {\it n}-th -system will start there. To start page {\it m} at line {\it n}, enter -{\tt L}[{\it n}]{\tt P}[{\it m}]. You can't force a page break without -first forcing a line break. - - To force a movement break, you must first force a line break as above, -then enter {\tt M}. If a page break also occurs here, the {\tt P} must precede -the {\tt M}. Options following {\tt M} are {\tt +}[{\it integer}] to insert -vertical space in \bs{\tt internote}s before the break, -{\tt i}[{\it decimal number}] to reset the first-line indentation as a fraction -of the line width, and {\tt c}\NEW{1.41} to {\bf c}ontinue bar numbering rather -than resetting the bar number to 0. \NEW{1.4}Also, to change the {\bf n}umber -of instruments, -enter {\tt n}[{\it integer}], then the number of each instrument in their new -order, then a clef-designating character for each staff of each instrument. -(An instrument's number is simply its position in the original sequence.) -There can never be more than the original number of instruments. In this -instance, \NEW{2.5}two-digit instrument numbers must be preceded with -{\tt :} (colon). If you want to start with some number of instruments and -later increase it, you'll need to insert -a dummy page at the beginning with the full set of instruments, then start the -second page with a movement break and decrease the number there. - -Another\NEW{1.4} option after {\tt M} is {\tt r+} or {\tt r-}, which either -forces or -suppresses {\bf r}eprinting the instrument names. The default is to print -them if the number of instruments changes, but otherwise not. - - Immediately after a movement break, any desired meter changes, -key changes, or text can be entered in the normal way. - -\subsubsection{Fractional bars} - - Often if a piece starts with a pickup, the last bar may not be -complete. In such cases, it is usually possible to -place the last bar in an input block by itself, headed by a {\it blind} meter -change. -For example, if the meter had been 4/4 and there was a quarter note -pickup, leaving 3 beats in the last bar, the last bar might be coded -{\tt m3400 cd24 /}. - -\subsubsection{Stem direction of bass notes} - - By default \PMX makes stems go up for middle-line D's in bass -clef, but down for notes on the middle line of all other clefs. If -you want middle-line bass-clef notes also to have downward stems by default, -enter a {\tt B} near the beginning of the file. - -\subsection{Putting {\TeX} Commands into the {\PMX}File } \label{LitTeX} - - There are five ways to enter \TeX ~commands into the {\tt .pmx} file. -Four of -them are {\it in-line}, where the commands are entered directly; the fifth -is by way of an external file. - - The four categories of in-line \TeX~strings -differ mainly in where they will appear in the {\tt .tex} file. -(A \TeX\ {\it string} consists of a starting character, a sequence of -\TeX~commands, and a terminal character). -In the {\tt .pmx} file, -only type 4 \TeX~strings may wrap over line breaks. All in-line \TeX\ must -adhere to the 128-character limit per line, but each line can have more than -one \TeX\ command. -Type 1 begins with a single \bs\ and will appear in the {\tt .tex} file -right before the \TeX -~command for the next note or rest in the {\tt .pmx} file. Multiple -type 1 strings associated with the same note or rest are allowed, although -the total length may not exceed 128 characters (so there is generally no -reason not to combine all \TeX\ commands for a single note into a single -type 1 string). - -A type 2 string begins with \bs\bs\ -and will appear near the top of the {\tt .tex} file, right before -\bs{\tt startmuflex}, regardless of where it appears in the {\tt .pmx} file. -A type 3 string starts with \bs\bs\bs\ and will appear right before the -{\tt\bs xbar} -or {\tt \bs alaligne} at the beginning of the current input block, before the -first barline of the block. While individual type 2 and 3 strings may not wrap -over line breaks in the {\tt .pmx} file, strings of like type on consecutive -lines will appear together in the {\tt .tex} file. -Types 1, 2, and 3 strings must end with \bs\ (backslash-space). -This means that they may not contain -the \TeX\ macro \bs\ (backslash-space). Finally, each type 2 or 3 string -should be isolated on a line of its own, and should be started in column 1. - -Type four permits multiple -lines of arbitrary text to be entered at the top of the {\tt .pmx} file; -they will be transferred verbatim to the top of the {\tt .tex} file. Type -four is initiated with {\tt ---} alone as the top line of the {\tt .pmx} -file. Then follows any text on any number of lines, until the next line -starting with {\tt ---} terminates the block to be transferred. - -The only other distinction among the types of in-line \TeX\ strings arises when -{\bfx scor2prt} is used to make separate parts -(see section~\ref{scor2prt}): -types 2-4 will be copied into all parts, while type 1 only goes into its -original part. - -If you should want to enter a type-1 (note-based) string longer than -128 characters, you could use a series of type-2 or -3 strings to define -a \TeX\ macro containing the desired commands. - - \PMX provides one further option for entering an unlimited set of -\TeX ~commands -just before \bs{\tt startmuflex}, and before any Type 2 in-line \TeX ~strings. -Simply put the commands into a text file named [{\it basename}]{\tt .mod} -in the texinput directory. It will then automatically be -entered with an \bs{\tt input} command. This feature is retained mainly for -backward compatibility; it has been essentially replaced by the various options -for in-line \TeX ~strings. - -\subsection{Figured Bass} - - Figure commands are entered {\it after} their associated note commands. -They only work in the first (lowest) voice, and in any one other voice\NEW{2.6}. -Enter the characters as -they would appear from top to bottom, and as you might pronounce them, -e.g., {\tt 64} or {\tt 73}. Flats here are {\tt -} (minus), sharps are -{\tt \#}, and -naturals {\tt n}, {\it before} the number (if there is a number) (notice -the characters are different here than in notes). -So for example {\it sharp third} is {\tt \#3}, just a sharp is {\tt \#}, {\it six (over) -flat five} is {\tt 6-5}, and {\it sharp six (over) 4} is {\tt \#64}. -In addition to the symbols just described, the following special symbols -are available: {\specfig 2}, {\specfig 4}, {\specfig 5}, {\specfig 6}, {\specfig 9} . -\NEW{2.6}To use them, you must have the font -\href{http://www.icking-music-archive.org/software/musixtex/add-ons/figbas.zip}{\underline{\tt cmrj}} -in your \TeX~system, and then just put an {\tt s} after the number. - -The program -positions all the figures for each system below the lowest staff of that -system, with their tops aligned, and just low enough to clear the -lowest beam, notehead, or stem that could interfere. If you would like to -change the vertical alignment for the remainder of the staff starting at a -figure after the first, \NEW{2.71}append {\tt v}[{\it n}], where {\it n} is an -integer representing the vertical shift in \bs{\tt internote}s, which may -have a minus sign. - -If you want a figure to -align horizontally in the second tier, insert the placeholder figure -{\tt\_} (underscore) before the one you want lowered. This is equivalent to -lowering the figure stack by 4 \bs{\tt internote}s. -\NEW{2.6}If you want to {\it raise} the entire stack by an integral number of -\bs{\tt internote}s, append {\tt +} and the number. This can be combined with -the placeholder figure {\tt\_} to provide full control over the vertical -position of the stack. - - Sometimes you may need to enter a figure when there's no bass -note sounding. To do this, just after the most recent bass note enter -{\tt x}, followed by a two single digits (the first is a repeat count; the -second a time value, i.e., {\tt 2,4,8,1,} or {\tt 3}), immediately followed by a figure symbol -as defined in the previous paragraph. This will -offset the figure from the associated note by the specified time -value. For example, if the lowest voice contained {\tt c03 x3465}, there -would be a whole-note c, and 3 quarter notes later a figure 65 below -the staff. - - There is also a {\it continuation} command, a zero followed immediately -by another \NEW{2.4} -unsigned number. This produces a horizontal line under the bass note, starting -just to the left and extending to the right by the given number of -\bs{\tt noteskip}s. The height and length of the line are set by the current -note's level and \bs{\tt noteskip} respectively. These \NEW{2.4} can be mixed in with -other figures to produce vertical stacks. If another figure follows in the -same command, use {\tt:} as a separator. -If \bs{\tt noteskip} changes or a note drops -below the starting level before the line ends, it is possible to trick -\PMX by entering separate {\tt 0}[{\it n}] commands under each consecutive note; \PMX -will automagically join them together at the same height -(thanks to Werner Icking for this idea). - - If there are figured bass commands in a {\tt .pmx} file but -you want them to be ignored, then enter the command {\tt F} at the -beginning of the body of the file. This feature would most often be -used in the form {\tt \%1F} -(see section~\ref{scor2prt}), which makes a -separate bass part with no figures. - - Figured bass commands will not be altered in any way under -transposition. There is no universal set of interpretations of figured bass -symbols, so no automatic transposition is possible. - -\subsection{Macros} - - A \PMX macro is a single command that stands literally for any -any string of characters that may occur in the input file (sorry, no -variables). It may be useful if you need to repeat the same string later. -There is no practical length limit. - -To -{\bfi r}{\it ecord} a macro, type {\tt MR}{\it n} where {\it n} is between -1 and 20. -Everything you then type will be processed normally as well as stored, -until you enter the command {\tt M}. The next time you need to enter the same -string, just type {\tt MP}{\it n} to {\bf p}lay back the macro. - -To just {\bf s}{\it ave} a macro without having \PMX process it as you -enter it, start it with {\tt MS}{\it n}. - -Macros can be redefined at will. \PMX will print a warning whenever this -occurs. - -If you use macros and want to make separate parts, some care is necessary. -{\bfx Scor2prt} will only transfer {\tt MR} macros into the part where they -originated, but will transfer {\tt MS} macros into all parts. - -\subsection{Include Files}\NEW{2.5}\label{ARDirective} -{\it Include} files are separate text files - containing arbitrary (but contextually appropriate) sequences of - valid \PMX commands. By using the techniques described in this section, - the commands in an include file can be inserted at any desired - place in the virtual \PMX file that the code processes. - They will always be syntax-checked. - -There are two types of include files, {\it global} and - {\it normal}. There can only be one global include file and it must be named - {\tt pmx.mod}. If activated, its contents will always be inserted right after - the setup data. - To activate it, two conditions must be met: (1) an environment variable - {\tt PMXMODDIR} must be defined to contain a valid path, ending with {\tt /} or - \bs~; (2) a file named {\tt pmx.mod} must be present in the directory so defined. - If {\tt PMXMODDIR} is not set, or if it is defined but there is no file - {\tt pmx.mod}, then processing will proceed as usual. - - Normal include files - can have any name and do not require any environment variable to be set. - They are activated by the PMX command {\tt AR[{\it filename}]} , placed in the - .pmx file - at the location where the included lines are to go. It will generally - only make sense to place this command at the beginning of an input block. - \PMX will first check - for the file as pointed to by [{\it filename}], which may contain a complete - or partial pathname preceding the actual file name. If [{\it filename}] is not - found, then \PMX will look for {\tt \%PMXMODDIR[{\it filename}]}, i.e., it will check - the directory defined by {\tt PMXMODDIR} if {\tt PMXMODDIR} has been set. However, - it is not necessary to define {\tt PMXMODDIR} to use a - normal include file. There may be any number of normal include files. The same - file may be used multiple times. Include files cannot contain references to - other include files via the {\tt AR} command; if you try to do that - your computer will - explode. The following information regarding all activated include - files will be printed both to the screen and to the .pml file: notice of - opening or closing, echo of the contents, error messages pertaining to syntax - errors in the included \PMX commands, and an error message if \PMX cannot find - a referenced normal include file. In the latter two cases \PMX will stop. - -\subsection{Batch Processing} - -Due \NEW{2.0} to the number of different programs that must be run in sequence -to produce a printed sheet of music with the \MusiXTeX{} system, most users -prefer to use a batch script to control the process. Since batch commands are -platform-dependent we will not provide examples here, but will mention -several \PMX features that can facilitate batch processing. - -First, whenever {\bfx pmxab} terminates due to a syntax -error, the exit code is set to 1. There are various ways of detecting this -with batch commands, then acting accordingly. -\NEW{1.4} Second, {\bfx pmxab} always writes a file -{\tt pmxaerr.dat} containing a single number: 0 if it exited normally, -otherwise the line number in the {\tt .pmx} file where the syntax -error was. With advanced batch programming techniques, this file can be -opened and read, and if there was an input error, a text editor can be -opened and the input point placed on the line with the error. - -There have been several requests to allow \PMX to keep running even -after it detects an input error. -This has not been done because in many cases any error messages after -the first one would be meaningless, or worse, uncorrected errors could -cause crashes. In any event, all the output from {\bfx pmxab} will be -stored in the log file [{\it jobname}]{\tt.pml}. - -%\setcounter{secnumdepth}1 -\section{Making Parts from a Score} \label{scor2prt} - - Separate parts can be made by running {\bfx scor2prt} and entering the -basename when prompted. The program will create {\tt noinst} separate -{\tt .pmx} files, one for each instrument. By default the files will be named -[{\it basename}][{\it n}]{\tt .pmx}, where [{\it n}] -is the sequential position of the instrument. If desired, part file names can -be customized with {\tt AN} as described in section~\ref{ANDirective}. - - In this section we describe how to control the layout of the -parts separately from that of the score, but by using commands -that are placed in the {\tt .pmx} file for the score. This eliminates the -need for ever editing the {\tt .pmx} files for the parts separately. You -can make all corrections in the file for the score, and then re-run -{\bfx scor2prt}. - - Normally all lines starting with {\tt \%} in the parent {\tt .pmx} are -transferred into all the parts. However, if a line has {\tt \%\%} in -columns 1-2, both it {\it and the following line} will be ignored when -making parts. If the ignored line contains only {\tt h}~, {\tt l}~, - {\tt Tc}~, {\tt Ti}~, or {\tt Tc} to start, -then one additional line will be ignored. - - Conversely, if a line begins with {\tt \%!} then it will be ignored as -usual in creating the parent {\tt .tex} file, but after stripping the first -2 characters the rest will be put in the {\tt .pmx} file for {\it all} the -parts. - -To enter a line into the score file that is only to be transferred to one part, -begin the line with \NEW{2.6} {\tt\%}{\it h}, where {\it h} is an {\it extended -hexadecimal digit} representing the part number from 1 to 24 -({\tt1,2,...,9,a,b,c,...,n,o}). The first -two characters will then be stripped and the rest transferred to the desired part. -For example, to force a line break to system 15 and a page -break to page 2 in part 11 only, enter {\tt \%bL15P2}. The use of the extended hex -digits {\tt a-o} creates a potential incompatibility with prior versions. -To minimize this, the -character after ``{\tt\%}" will {\it only} be interpreted as a part number if -it represents a number less than or equal to {\tt noinst}; otherwise the entire -line will be treated as an ordinary comment and transferred to all parts as -a comment. - - Although only permitted in the first voice in the score, the -following commands with all their options will automatically be copied -into all parts (unless the preceding line has {\tt \%\%}): - {\tt m, V, R, A, h, w, K}. Literal \TeX\ strings of types 2-4 will also be -copied into all parts, while type 1 will only go into its original part. - -User-defined hardspaces ({\tt X} without {\tt :}) are handled specially. By -default they are not copied into parts. There are two ways to circumvent this. -One way to insert hardspace {\it x} into part -{\it n} is to place in the score, on a line of its own, the command -{\tt\%}[{\it n}]{\tt X}[{\it x}] . The \NEW{1.42} other way is with options -in the {\tt X} command in the score: {\tt B} causes the hardspace to be -used in {\bf b}oth score and parts; {\tt P} puts it into the {\bf p}art but not -the score. - -Instrument-wise \NEW{2.7} transposition commands (see section \ref{transpose}) -are also handled specially. -When {\bfx scor2prt} encounters {\tt Ki}[{\it n}] (for instrument {\it n}) in -the score, it transfers the transposition information (transposition amount and -key signature) for that instrument into -the corresponding part, replacing {\tt Ki} by {\tt K} and keeping only the -information for instrument {\tt n}. - -Lateral shifts ({\tt X}[$\dots$]{\tt :}) will be handled normally, -staying with their original voice. - - By default the total number of systems in each part will be the -same as in the score. If you want to override this, there is a command -{\tt S}[{\it n}] (where {\it n} is the desired number of systems), which -can only appear at -the beginning of the first input block. This can be used after {\tt \%!} -to affect all the parts, or after {\tt \%}[{\it h}] to affect just part {\it h}. - {\bfx Scor2prt} will also -compute how many pages it thinks each part should have, and enter that -in the startup data for that part. If you wish to override that, then -in the {\tt .pmx} file for the score, insert for example {\tt \%3S14P2} to -force the third part to have 14 systems and 2 pages (you cannot override the -number of pages without first overriding the number of systems). - - A \NEW{2.0} musicsize of 20 is the default in all parts. This may be -overridden with the option {\tt m} in the command {\tt S}; e.g., -{\tt \%2S15m16} . - - As already noted, a {\tt P} command for page numbering in the parent -file is ignored when making parts. To initiate page numbering in the -parts, use for example {\tt \%!P} anywhere within the \PMX code representing -the first page of the parts (from \TeX 's standpoint the command must occur -between the beginning and end of the page on which the numbering is to begin). -It \NEW{2.0} will often be useful in this case to use the option {\tt c} , -which by default causes the instrument name to be centered in small type at -the top of every page after the first. - -Note the distinctions among the various usages of {\tt P}: as an option with -{\tt S}, it sets the total number of pages in a part; as an option with -{\tt L}, it forces a page break; and as a command on its own, it controls page -numbering and centered headings. - -MIDI \NEW{2.2} commands, i.e., those starting with {\tt I}, will never be -copied into parts, unless they are in a special comment line as just described. - - One function of {\bfx scor2prt} is to condense consecutive bars of rest -into a single group of special printed characters with a number above it. -The command {\tt rm} defines such a {\bf m}ulti-bar {\bf r}est as described -in section~\ref{MultibarRest}. -{\bfx Scor2prt} will automatically insert {\tt rm} commands into the -{\tt .pmx} files -for the parts where appropriate. However, for this feature to work, -the {\it first} full-bar rest in the sequence {\it must} have its duration -explicitly defined in the parent {\tt .pmx} file, either with a digit or -with {\tt p}. I.e., the feature will not work if the first rest in the -sequence inherits its duration from the previous note. - -Using the special \PMX commands listed in this section, -augmented where needed with literal \TeX ~commands, it is possible to store -{\it all} the information for both the score and the parts in a single -{\tt .pmx} file. This greatly simplifies the editing process, since -both the score and the part can be corrected at once, and parts need not be -re-edited each time they are regenerated from the score. - -\section{Making MIDI Files}\label{MIDI} - -\PMX has an elementary capability to create MIDI files. It is intended mainly -to aid in editing scores, so it does not have advanced facilities one would -want for making musically satisfying sound files. - -As \NEW{2.6} of version 2.6, \PMX can only generate MIDI files for scores with -15 or fewer voices. - -Entering the command {\tt I} before any notes have been entered -will cause a MIDI file [{\it jobname}]{\tt.mid} to be -generated in the current directory. Options may follow, without spaces. They -are defined in the following paragraphs. Multiple -options can be combined in one {\tt I} command. -{\tt I} commands can appear later in the file as well, but only at the start -of an input block. Sometimes the order of the -options matters, determining for example whether or not a user-defined pause -is included inside a macro block. - -{\tt t}{\it x} sets the tempo to {\it x} quarter notes per minute. -Default is 96. You can change tempos as often as you like, but only at the -start of an input block (as with all MIDI commands). - -{\tt i}{\it i1i2...in} assigns MIDI instruments {\it i1,i2,...,in} to the -respective \PMX instruments. The default is harpsichord, of course. If -you use this option, you must specify {\it all} instruments. -Each {\it in} is either -a 2-letter abbreviation or an integer between 1 and 255. Acceptable -abbreviations are listed below. Numbers and pairs of letters may be mixed, -but consecutive pairs of numbers must be separated by {\tt :} (colon) . -This option can only be exercised once per file. -Also, the number of instruments cannot change during a piece. - -The \NEW{2.7} number of arguments following suboption {\tt i}, as well as the next -three described suboptions, must in fact equal the number of {\it instruments}. Before -version 2.7, it was the number of {\it staves} (despite the incorrect -description in the manual!) These numbers may differ and this creates a -backward incompatibility. Hoping this won't cause too much distress, -I've enhanced the real-time error messages. - -{\tt v}{\it i1}:{\it i2}:{\it...}:{\it in} assigns MIDI \NEW{2.3} velocities -to each instrument. The colons are required. Values may range from 1 to 127. -The default is 127. - -{\tt b}{\it i1}:{\it i2}:{\it...}:{\it in} assigns MIDI \NEW{2.3} balances to -each instrument. The colons are required. Values may range from 1 to 128. -The default value is 64, which represents the center. Smaller numbers favor -the left stereo channel; larger ones the right. - -{\tt T} allows transposing any instrument by a selected number of steps \NEW{2.7} - ({\tt\bs internote}s). -It must be followed by exactly {\tt noinst} signed integers representing the -amount of transposition for each instrument in order. In practice it is useful -in two situations (1) To transpose a MIDI output up or down by one octave -(7 {\tt\bs internote}s); and (2) when a transposing instrument is printed -in the transposed key in the score after having issued {\tt Ki}, to undo -the transposition in the MIDI. - -{\tt M} initiates a macro operation. This is used for repeats, da capo's, etc. -Macros must have ID numbers between 1 and 20. Operations are start record -macro {\it i}: {\tt MR}{\it i} ; end recording: {\tt M} ; and playback (insert) -macro {\it i}: {\tt MP}{\it i} . Only one macro can be active at a time, -recording or playing but not both. If you try nesting or overlapping macros, -your computer will become psychotic. - -{\tt p}{\it x} inserts a pause of {\it x} quarter notes. Decimals are -allowed, but will be rounded to the nearest sixteenth note. - -{\tt g}{\it i} sets the MIDI gap to {\it i} MIDI clock tics. This is a silence -inserted at the end of every note, while decreasing the sounding duration -by the same amount. The default is 10, which is 2/3 of a 64th note. - - The MIDI module does not recognize graces, ornaments, repeats, voltas, or -segnos. The only ties that are recognized are those using {\tt s} or {\tt (} -alone, with no explicit ID number. Key signatures, -time signatures (meter) and instrument names will be written into the MIDI file, -the latter as track names. This will have no effect whatsoever on audible -output but will affect on-screen appearance of some MIDI file players -and editors. Location of the \PMX key-change and meter-change commands -relative to MIDI macro delimiters in the source will affect (in the obvious -way) how these data are passed to such programs. - -The MIDI file generator does not yet support changing the number of -instruments in midstream. Doing so will cause unpredictable results. - - The instruments are a subset of ``The General MIDI Instrument -Specification." Of course how they sound depends on your hardware and software. -Instruments not listed below can still be used but must be specified by number. -The numbers listed here are from the 1-128 range; when passed to the MIDI file -they are reduced by one. - -%\def\toc#1#2{\hbox to 3.1in{{#2}\leaderfill{#1}}} -\def\tentry#1#2#3{\hbox to 2in{ -\hbox to .24in{\tt #1\hfill}\hbox to 1.7in{#2 (#3)\hfill}\hss}} - -\null -\hbox to 6.5in{\vbox to 1.7in{ -\tentry{pi}{Acoustic Grand Piano}{1} -\tentry{rh}{Rhodes Piano}{5} -\tentry{ha}{Harpsichord}{7} -\tentry{ct}{Clavinet}{8} -\tentry{ma}{Marimba}{13} -\tentry{or}{Church Organ}{20} -\tentry{gu}{Acoustic Nylon Guitar}{25} -\tentry{ab}{Acoustic Bass}{33} -\tentry{vl}{Violin}{41} -}\hss\vbox to 1.7in{ -\tentry{va}{Viola}{42} -\tentry{vc}{Cello}{43} -\tentry{cb}{Contrabass}{44} -\tentry{vo}{Synth Voice}{55} -\tentry{tr}{Trumpet}{57} -\tentry{tb}{Trombone}{58} -\tentry{tu}{Tuba}{59} -\tentry{fr}{French Horn}{61} -\tentry{so}{Soprano Sax}{65} -}\hss\vbox to 1.7in{ -\tentry{al}{Alto Sax}{66} -\tentry{te}{Tenor Sax}{67} -\tentry{bs}{Baritone Sax}{68} -\tentry{ob}{Oboe}{69} -\tentry{ba}{Bassoon}{71} -\tentry{cl}{Clarinet}{72} -\tentry{fl}{Flute}{74} -\tentry{re}{Recorder}{75} -}} - -\section{Limits} - -For simplicity in writing the program, \PMX has numerous variables with -fixed dimensions. In most cases there are no checks against these limits -(hey, I've got more important things to program), so -occasionally there may be hangups due to exceeding a dimension. -Any of these can potentially be increased by making a request via the -mailing list. However, before making such a -request, try working around the problem by -breaking the input into smaller blocks. - -\subsection{Limits on quantities that a user can control} - -(The user can control the {\it number} of these items, but cannot control -the {\it limit on the maximum number} of them.) - -%\ \ \ \ \ 128 characters per input line. -128 characters per input line. - -24 \NEW{2.6} staves. - -2 voices per staff. - -24 \NEW{2.6} voices per system. - -125 systems. - -600 bars. - -40 forced line breaks. - -10 forced page breaks. - -18 key changes. - -20 pages. - -600 \NEW{2.6} notes per input block. - -15 bars per input block. - -101 slurs per input block. - -74 figures (figured bass) per input block. - -37 grace note groups per input block. - -74 notes in grace note groups per input block. - -52 literal \TeX\ strings per input block. - -6 voltas per input block. - -24 \NEW{2.6} trills per input block. - -62 chordal notes (non-spacing) per input block. - -8 beams per voice per bar. - -40 \NEW{2.5}forced beams per voice per input block. - -10 clef changes per voice per input block. - -24 notes per beam. - -24 notes per xtuplet. - -41 text-dynamic strings per input block.\NEW{2.5} - - -\subsection{Limits not under immediate user control} - -% Need all the spaces because this damn format insists on left-justifying -% first line of *first* paragraph in a section.. -% -\ \ \ \ \ \kern-1pt2000 \bs{\tt notes} groups. - -20 \bs{\tt notes} groups per bar. - -20 inserted standard anti-collision spaces (not xtuplet or end-of-bar) per bar. - -20 inserted anti-collision spaces within xtuplets per bar. - -19 inserted anti-collision end-of-bar hardspaces per system. - -83 inserted anti-collision end-of-bar hardspaces. - -400 inserted standard anti-collision spaces per system. - -100 inserted anti-collision spaces within xtuplets per system. - -1000 inserted standard anti-collision spaces. - -200 inserted anti-collision spaces within xtuplets. - -24576 \NEW{2.2} bytes of MIDI output data per voice. - -\section{Closing Notes} - -\subsection{About the Example Files} - -{\tt most.pmx} contains examples of most of the \PMX commands, and a few -programming tricks, including examples in the last line of beam groups whose -notes vary widely in pitch. The printed -output displays the \PMX commands near to the resulting typeset characters. -It is more -useful to look at the printed output rather than the source file, since the -file is littered with in-line \TeX ~needed to output the text strings -representing the \PMX commands. -{\bfx WARNING:} Do not try to play this music; it could be hazardous. - -{\tt barsant.pmx} contains the first movement of a recorder sonata by the -Italian Francesco Barsanti (1690-1772). It demonstrates many of \PMXX 's -strong points in a ``battlefield'' situation: figured -bass, complex beaming patterns, xtuplets, and -automatically adjusted horizontal and vertical spacing in crowded scores. -In fact, -this single-page score pushes the limits of vertical and horizontal crowding. -To get the final result, it makes subtle adjustments using various available options: -{\tt Ae} for equal space between systems, {\tt AI1.1} to increase the vertical -space between staves in a system, {\tt Apl} to activate postscript slurs and -special treatment of line-breaking slurs/ties (note slur at end of fourth -system), and {\tt W.5} to increase minimum space between noteheads so the 64th -notes don't touch each other. This is also a -good score to try making parts with {\bfx scor2prt}. A special command -{\tt \%2S9} is used to increase the number of systems in the recorder part. - -{\tt mwalmnd.pmx} is an Allemand for harpsichord by the German -Matthias Weckmann -(1616-1674). It uses many techniques peculiar to keyboard scores, most notably -two voices per staff. - -{\tt netsoos.pmx}\NEW{2.73} is an example with lyrics, including several inline \TeX\ -commands to enhance the layout. - -{\tt staffcrossall.pmx}\NEW{2.74} contains examples of staff-crossing chords. Some are -single-stemmed, some are beamed non-xtuplets, and finally beamed xtuplets. - -\subsection{A Benign Bug} - - When \TeX 'ing the output of \PMX you will usually get an {\tt Underfull -\bs vbox} message at the end of each page. This is due to my using -\bs{\tt eject} at the end of every page, which automatically spaces the -systems vertically without having to fiddle with \bs{\tt staffbotmarg}. As far -as I know, the -warning is benign, and may be ignored. - -\subsection{Where to Get Help} \label{where} - -The main home of \PMX on the internet is the software section of the -\href{http://icking-music-archive.org}{\underline{Werner Icking Music Archive}}. This -site also links to a mailing list devoted to \MusiXTeX\ and related programs including -\PMX. The denizens of this list are always willing to answer questions about any -aspect of the software. New users are strongly advised to take advantage of this -resource. - -\subsection{Acknowledgments} - - To Daniel Taupin, Ross Mitchell, and Andreas Egler for creating -\MusiXTeX{}; to Olivier Clary for suggesting a crucial modification in -the note-entry scheme; -to my colleague John DiPol (a non-musician!) for the idea of using binary masks -to define beam groupings; -to Joel Hunsberger for unraveling some deep \MusiXTeX~tangles; -to Dirk Laurie -for making \PMX accessible to vocal music by creating {\tt\bs pmxlyr} -and {\bfx M-Tx}; -to Stanislav Kneifl and Hiroaki Morimoto for developing the postscript -slur packages; to -Christian Mondrup, Andre Van Ryckeghem, Christof Biebricher, Joerg Anders, -Olivier Vogel, and other denizens of the TeX-music mailing list -for first-class bug-finding and support in responding to queries about -\PMX on the mailing list; to Luigi Cataldi, Olivier Vogel, Christof -Biebricher, and Cornelius Noack for producing translated and enhanced -\PMX tutorials; and to Bob Tennent for maintaining the software section -of the web site. -Finally, I want to mention again the invaluable contributions by -Werner Icking: his exhaustive beta testing, -uncanny bug-finding, continuing encouragement, and promotion -of \PMX right up until his sudden and premature departure from this -earthly realm. - -\end{document} diff --git a/Master/texmf-dist/doc/generic/pmx/pmx276.pdf b/Master/texmf-dist/doc/generic/pmx/pmx276.pdf new file mode 100644 index 00000000000..9e91fdb55ff Binary files /dev/null and b/Master/texmf-dist/doc/generic/pmx/pmx276.pdf differ diff --git a/Master/texmf-dist/doc/generic/pmx/pmx276.tex b/Master/texmf-dist/doc/generic/pmx/pmx276.tex new file mode 100644 index 00000000000..de0aec648c2 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pmx/pmx276.tex @@ -0,0 +1,2705 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% pmx276.tex 3 Dec 2016 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\documentclass[11pt]{article} +% +\let\reft\ref + \usepackage[dvips,colorlinks=true,linkcolor=blue]{hyperref} + \usepackage[dvips]{graphicx} + \usepackage{multicol} +% +\def\MusiXTeX{MusiX\TeX} +\def\bs{{\tt\char'134}} +\newcommand\PMXX{\textbf{PMX}} +\newcommand\PMX{\PMXX~} +\newcommand\IMA{\href{http://Icking-Music-Archive.org}{\underline{Icking Music Archive}}} +% +% Use \bfx for program names only. Use \bf for single embedded letters +% +\font\bfx=cmb10 scaled\magstephalf +\font\bfi=cmbxti10 scaled\magstephalf +\font\specfig=cmrj +\setcounter{secnumdepth}3 +\setcounter{tocdepth}3 +\def\Bslash{\tt\char'134} +\def\|{{\tt\char'174}} +\def\LBR{{\tt\char'173}} +\def\RBR{{\tt\char'175}} +\textheight= 9.5in \voffset-.8in% +\textwidth= 6.5in \hoffset-1.0in +\def\newfrom{2.59} % changed every now and then +\def\NEW#1{\ifdim#1 pt<\newfrom pt\else% +\marginpar{\fbox{#1}}\fi} + +\hoffset-54pt + +%\let\rulet\rule\def\rule#1#2{\if#1<#2\rulet{.05in}{#2}\else\rulet{#1}{.05in}\fi} + +\begin{document} + +\raggedright +\parindent24pt + +\title{ + \Huge\bf + PMX~--~a Preprocessor for \MusiXTeX{}\\ + \null\vskip-15pt + \Large\sl + Version 2.76~--~3 December 2016\\ + \author{\Large\rm Don \sc Simons\\ + \large\sl + Dr. Don's PC and Harpsichord Emporium\\ + \normalsize\sl + Redondo Beach, California, USA.\\ +% To make the bitmapped eps: (1) TeX file with cmtt scaled 2500, +% (2) dvips -> gsview -> pdf. +% (3) gwin32 -sDEVICE=pnggray -sOutputFile=file.png -r100 -dEPSCrop -dbatch -q +% -dNOPAUSE -dTextAlphaBits=4 file.eps -c quit +% (4) file.png -> GIMP (crop out blank space) -> save as .eps. +% + \includegraphics[scale=0.4]{file600.eps}}} + +\date{} + +\maketitle + +\section*{Preface} +Compared to version 2.73, \PMX version 2.76 has minor enhancements to lyrics capabilities; +behind-the-scenes modifications to allow staff-crossing chords that are unbeamed or beamed as +illustrated in {\tt staffcrossall.pmx}; modifications to allow accented characters in +text strings in lyrics, page headers, and text dynamics; bugfixes in unbeamed, dotted xtuplets; +an increased allowable length of text dynamic strings from 52 to 64 characters; and +bugfixes in the basic code,{\bf\ scor2prt} and {\tt pmx.tex}. + +\setcounter{page}1 +\tableofcontents +%\setcounter{secnumdepth}1 +\pagestyle{headings} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\boxitsep{10pt} +\let\hrt\hrule\def\hrule{\hrt height2pt} +\let\vrt\vrule\def\vrule{\vrt width2pt} +\def\boxit#1{\vbox{\hrule\hbox{\vrule\kern\boxitsep\vbox{% +\kern\boxitsep\hbox{#1}\kern\boxitsep}\kern\boxitsep\vrule}\hrule}} +\font\ded=cmssdc10 scaled \magstep3 +\bigskip +\setbox4=\vbox{ + \hsize3in\noindent\strut + \centerline{\ded Dedication} +\vskip 3pt +The \MusiXTeX~community was stunned by the sudden death of Werner Icking on +\break February 8, 2001. He had been a benevolent patriarch, touching many +of us not only +with his technical savvy and gentle guidance, but also his genuine kindness +and generosity. His spirit runs deep through all of \PMX. His encouragement +fueled its development from its very beginning. Many +enhancements have been his proposals, including one he made on what +turned out to be his last day. Werner, my friend, I dedicate this work to +you and your memory. +} +\vfill +$$\boxit{\box4}$$ +\let\hrule\hrt\let\vrule\vrt +\vfill +\eject + +\section{Introduction} +%\setcounter{secnumdepth}1 + + \PMX is a preprocessor for \MusiXTeX{}. Before using it you should +have installed \MusiXTeX~Version 1.21 \NEW{2.71} or higher, and +any available version of \TeX~that includes e-\TeX. The goal of \PMX is to +facilitate the efficient typesetting of scores and parts +that have an almost professional appearance. It can do {\it all} the work +involved in setting up {\tt \bs notes-\bs enotes} groupings, +selecting groups of +notes to be beamed, defining beam heights and slopes, spreading the +entire piece evenly over specified numbers of systems and pages, and inserting +extra spaces where needed to make room for accidentals, flags, dots, +and new clefs. The input language for \PMX is much simpler than +\MusiXTeX. You can enter note values and rests from 64ths to double +whole notes ({\it breves}), ornaments, slurs, and limited text strings. Every +voice in every bar must have exactly the correct number of beats in +the current meter, but you may change the meter at the beginning of any +measure, with or without printing the new time signature. Before making a +\TeX{} file, \PMX checks these timings and other aspects of the input. +\PMX has special features for dealing with baroque chamber music, including +the ability +to notate figured bass below the bottom staff in each system. If \PMX hasn't +yet learned to do something you want to do, you can usually work around the +problem by inserting literal \TeX\ strings in the \PMX input file. + + You can automatically create parts from a score using {\bfx scor2prt}. +This auxiliary program generates a set of {\tt .pmx} input files, one for +each part, from a single {\tt .pmx} file for the score. +You can control the appearance of the +parts with special commands in the main file, thereby making it +possible to include within a single input file all the information +that defines the score and the individual parts. + +The basic \PMX +distribution as of this version of the manual is +\href{http://icking-music-archive.org/software/pmx/pmx273.zip} +{\underline{\tt pmx273.zip}}.\NEW{2.73} It +contains the FORTRAN sources, binaries that will run in a DOS +window on a PC with WINDOWS95 or higher, manuals for useage and for installation +in DOS/Windows, and example typesetting files. Alternatively, the +\href{http://www.icking-music-archive.org/software/htdocs/Getting_Started_Four_Scenar.html} +{\underline{software section}} of the Werner Icking Music Archive (WIMA) has instructions +for acquiring and installing \MusiXTeX~and \PMX on various platforms +(Windows, Mac-OSX, Unix-like systems) including using automated procedures from +several external \TeX~distribution sites. +The packages from those other sites will +all eventually incorporate all the upgrades in {\tt pmx273.zip} but will take +varying amounts of time to do so. \PMX is often upgraded; the most current version will +always be available directly from the ``News'' paragraph +\href{http://www.icking-music-archive.org/software/htdocs/htdocs.html}{\underline{here}}. + +\subsection{Conventions for This Manual} + + Hey, this is boring stuff, but if you take a minute to understand +the typographic conventions and a little jargon, +it may avoid some confusion down the road. + + The typewriter typeface always indicates verbatim text as it would +be input to a computer. This includes file names, \MusiXTeX{} tokens, and +\PMX commands, e.g., {\tt barsant.pmx, \bs internote, c44}. + + Bold is used for program names (e.g., {\bfx pmxab}), or when applied +to a single letter, to relate a \PMX command to its meaning (e.g., ``{\tt e} +signifies a l{\bf e}ft shift''). + + When\NEW{2.5}~viewing the PDF version of this document on a computer +screen, clickable internal hyperlinks are colored blue, and clickable external +links are underlined and colored cyan. + + Italics may mean several different things depending on the context: +simple emphasis, or the first appearance of {\it jargon} +(buzz-words that need to be explicitly defined), or finally +to represent input variables for which some verbatim text would need to be +substituted. In the latter case the variable will be surrounded by +square brackets, e.g., [{\it basename}], but the brackets are not to be +included with the substituted text. + + Speaking of jargon, there are several special words that have very +specific meanings here: A {\it staff} is one set of 5 lines (plural +{\it staves}), a {\it system} is a group of staves, and {\it voice} refers to +one of the one or two +simultaneous allowable sequences of notes in a staff. Note that this +is a change \NEW{2.5}from versions prior to 2.5, where {\it voice} was used +interchangeably with staff. + +A \PMX {\it command} is a string of characters with no spaces between them. +The first character determines the type of command. Any other characters +are parameters that may be either required or optional. Sometimes we loosely +use the word {\it command} to refer just to the initial character. + +\subsection{Setup} + + Here we briefly describe the setup for the Windows OS, +assuming \TeX\ and \MusiXTeX\ have already been installed. After compiling the +FORTRAN source code, users of other OS's +may either adapt these instructions as needed or use one of the other setup +methods referenced earlier. + +After decompressing the distribution file {\tt pmx273.zip}, +you should have these +files: \NEW{2.73} {\tt pmx273.for}, {\tt scor2prt.for}, two +Windows executables {\tt pmxab.exe} and {\tt scor2prt.exe}, several sample +{\tt .pmx} files, +{\tt pmx.tex}, {\tt ref273.tex} (\TeX\ source for a command summary), +{\tt pmx273.tex }(\TeX\ source for this file), +PDF images of the latter two files, {\tt pmx25-273.html} showing +changes from version 2.50 to 2.73, and {\tt install\_run\_PMX.pdf} which gives more +details about installing and running on different platforms. + +%If necessary, compile the FORTRAN programs. +%I have tried to keep the source code as generic as possible, but minor +%modifications may be needed for FORTRAN-to-C translation and/or other +%compilers. + + Once you have assembled a full set of files, put the executables +somewhere in the path or in your working directory, {\tt pmx.tex} into the +texinput directory, the sample {\tt *.pmx} files in your working +directory (the one from which you will run \PMXX), and the source code and +document files wherevever you wish. + +\subsection{Basic Operation, by Example} + +Edit the 15th line of {\tt barsant.pmx} to contain the path to the +directory where you want \PMX to write the {\tt .tex} file. For example, +if you want this to be the same as the working directory, type {\tt .\bs}~for Windows, +or {\tt ./} for UNIX. + +If you haven't done so, open a command window and navigate to the +folder containing {\tt barsant.pmx}. Execute \PMX by typing +{\tt pmxab barsant} . Alternatively, you may +just type {\tt pmxab } and you will be prompted +for a jobname, which in this case is just {\tt barsant} . +{\bfx pmxab} will always generate two files in the working +directory: {\tt barsant.pml} +is a log file, and {\tt pmxaerr.dat} contains a single integer, 0 if +the run was successful, otherwise the line number in the {\tt .pmx} file of the +fatal error (useful for batch processing). Also, on successful completion, +{\tt barsant.tex} will be placed in the path specified in the setup. + +Now you are right where you would be after +entering, debugging, and rough-editing the {\tt .tex} file manually. To see +the results, process {\tt barsant.tex} just as you would for any \MusiXTeX{} +file, running all three passes, and view the {\tt .dvi} file, or go on and run +{\bf dvips} to create a postscript file and view that with a postscript viewer +such as {\bf GSview}. To make +separate parts, run {\bfx scor2prt} by typing {\tt scor2prt barsant} .\NEW{2.0} +The program will create a new {\tt .pmx} file for each instrument, in this +case {\tt barsant1.pmx} and {\tt barsant2.pmx}. +You may then process these +files like you did the original one to create separate parts. + +\section{Elements of PMX} +\def\l@subsection{\@dottedtocline{2}{5em}{20em}}%original 2 3.8 3.2 +%\setcounter{secnumdepth}2 + +\subsection{Setup Data in the Input File} \label{setupdata} + + To see how the input file is put together, we'll look at +{\tt barsant.pmx}. For reference, here are are the first few lines: +\begin{verbatim} +%----------------% +% +% barsant.pmx Revised 29 June 2002 +% +%----------------% +% +% nv,noinst,mtrnuml,mtrdenl,mtrnmp,mtrdnp,xmtrnum0,isig, + 2 2 4 4 0 6 0 0 +% +% npages,nsyst,musicsize,fracindent + 1 7 20 0.07 +Basso +Recorder +bt +./ +\end{verbatim} +The lines +with {\tt \%} in column 1 are comments. +Some special handling of comment lines will be +discussed in the section on creating parts from a score in +section~\ref{scor2prt}. + +The rest of the lines in this example are the {\it setup data}. +Starting in the first non-comment line above, + +{\tt nv} (integer$\leq$24) \NEW{2.6} is the total number of +sta{\bf v}es per system. Each staff may contain either one or two voices, +but the total number of voices at any one time may not exceed 24. + +{\tt noinst} (integer$\leq${\tt nv}) is number of {\it instruments}. Each +instrument has a unique name (see below), and any instrument +with more than one staff will have its staves joined with a curly bracket. +Usually there is only one staff per instrument and {\tt noinst=nv}. There +are two ways to assign more than one staff to one or more instruments. +If only the first (lowest) instrument has more than one staff, such as in +a score for piano and a solo instrument, simply make +{\tt noinst$<$nv} and any difference will show up in instrument 1, the bottom +one in each system. +\NEW{1.4} For a +more general distribution of staves among instruments, +put a minus sign in front of {\tt noinst}, +and follow {\tt noinst} with the number of staves in each instrument in +succession, separated by spaces. These numbers must add up to {\tt nv} or your +computer will explode. For a typical example of keyboard music, see +{\tt mwalmnd.pmx}, in which {\tt nv=2} and {\tt noinst=1}, producing two +staves per system with a curly bracket at the left. + +The number of instruments can be changed as well after the start of the +score, but only to a number less than the original one. See +section~\ref{movbrk} to learn how to start with a smaller +number of instruments and later increase it. + +{\tt mtrnuml} is the {\it logical} numerator of the meter, or the number of +beats per measure; {\tt mtrdenl} the denominator. Please note the special +considerations in the paragraph after the next. If {\tt mtrnuml} is +divisible by 2 or 3, beam grouping will be automatic; otherwise you will +have to force all beams using {\tt [}$\dots${\tt ]} as described in +section~\ref{beams}. + +{\tt mtrnmp} and {\tt mtrdnp} are the {\it printed} numerator and denominator. +These determine the appearance of the meter in the printed output but +have no effect on the internal timing analysis. If {\tt mtrnmp$>$0} then it +and {\tt mtrdnp} are printed literally as the numerator and denominator +of the time signature. Please note the special considerations in the following +paragraph. If +{\tt mtrnmp$<$0}, then the numerator is abs({\tt mtrnmp}) and the +entire time signature will be printed with a vertical slash through +it. If {\tt mtrnmp}=0, then {\tt mtrdnp} determines the printed meter +as follows: + +\medskip + +\begin{tabular}{ll} +\tt 0 & No meter is printed ({\it blind} meter change)\\ +\tt 1, 2, 3, or 4 & A single digit, between the 2nd and 4th lines\\ +\tt 5 & Cut time (alla breve)\\ +\tt 6 & Common time\\ +\tt 7 & Numeral 3 with a vertical slash\\ +\end{tabular} + +\medskip + +There are special considerations for n/16 and n/1 time signatures (where the +latter "1" normally means a whole note). To get +n/1 time, use {\tt 0} (zero) for {\tt mtrdenl} and {\tt 1} for {\tt mtrdnp}. To +remember this rule, recall that the printed denominator is taken literally, +while the logical denominator can always be represented +by the same single digit used for the corresponding time value when entering +ordinary notes (see section~\ref{notes}). So +for n/16 time, use {\tt 1} for {\tt mtrdenl} and {\tt 16} for {\tt mtrdnp}. + +If the first bar is a partial bar containing a pickup, {\tt xmtrnum0} is +the number of beats in it; otherwise set it to 0. It need not be an +integer. The first bar is the {\it only} bar that can have a different +number of beats than the current value of {\tt mtrnuml} (Later we'll see how +to change the meter). + +{\tt isig} is the key signature, positive integer for sharps, negative for +flats. + +If {\tt npages}$>$0, it is the number of pages and {\tt nsyst} is the total +number of systems in the entire piece. \PMX will spread the entire +piece horizontally over this number of systems, and vertically over +{\tt npages} pages. For proper vertical spacing there should be from +about 9 to 16 staves per page. If you specify too many staves for the number +of pages, one or more staves may spill over onto an extra sheet. If this +happens it will only become obvious when you preview the {\tt .dvi} file. +One solution is to use the global option {\tt Ae} +(see section~\ref{AeDirective}); another is to increase {\tt npages} or +decrease {\tt nsyst}. + +If {\tt npages} is set to 0, then {\tt nsyst} is interpreted as the average +number of measures per system. This is useful while building up a +file a little at a time. \PMX will calculate how many systems to use, and +spread them over an appropriate number of pages. + +{\tt musicsize} is 16, 20, 24, or 29, the height of a staff in points, with +20 considered the default\NEW{2.6}. + +{\tt fracindent} is the indentation of the first system from the left +margin, expressed as a decimal fraction of the total line width. + +Next come the names of the {\tt noinst} instruments as you want them to +appear within the indentation in the first system, one per line, +starting with the {\it bottom} instrument. If you've set {\tt fracindent}=0 +and don't +want instrument names to appear, you must still leave {\tt noinst} +blank lines here. Next comes a single string of {\tt nv} +letters or numbers for the clefs, again starting with the bottom staff: +\label{ClefCodes} +{\tt b,~r,~n,~a,~m,~s,~t,~f,~8} or digits 0-8 \NEW{2.71} respectively for {\bf b}ass, +ba{\bf r}itone, te{\bf n}or, {\bf a}lto, {\bf m}ezzo-soprano, {\bf s}oprano, +{\bf t}reble,\NEW{2.2} {\bf F}rench violin clef, or octave treble clef. +The last line of setup data contains the path to the directory +where you want the {\tt tex} file to go when \PMX creates it. The one +in {\tt barsant.pmx}~, +{\tt ./}~, represents the current directory in UNIX and some versions of DOS. +The path must terminate with {\tt /} or {\tt \bs}~. + +\subsection{Structure of the Body of the Input File} \label{structure} + + The rest of the {\tt .pmx} file is the {\it body} of the input. +The basic unit of input from here on is called an {\it input block} or +just {\it block}, each one representing an integral number of bars. If there +is a pickup bar defined by {\tt xmtrnum0} $>$ 0, +it must be included in the first block {\it together with at least one full bar}. +If you wish to put a pickup in a separate block, for example at the start +of a new movement, set the initial logical +meter to fit the pickup bar, then after the pickup bar do a blind meter change +as described in section~\ref{MeterChange}). + +There will usually be +4 to 8 bars in a block. 15 is the most allowed. It is good practice +to separate the blocks with comment lines that state which bars are +represented, as I've done in {\tt barsant.pmx}. +It is also advisable, although not required, to separate the bars with +the command {\tt |}. Its main functions +are to provide visual separation in the input file, and to help isolate input +errors: if you put one anywhere except +at a bar-end, {\bfx pmxab} will stop and show you where it detected the +timing error. Otherwise, with several minor exceptions, +{\tt |} has no effect. + +At the start of each block there may be a few special commands +(described starting in section~\ref{pmxcmds}). +Next come the input data for the selected number +of bars of the first (lowest in the system) voice in the first staff, followed by +either {\tt /} to move to the next staff, or {\tt //} to move to the next voice +on the same staff. Each new voice must start on a new line +in the input file, i.e., there should be no further data on the same input line +after {\tt /} or {\tt // }. + Continue entering other voices, each with +{\it exactly} the same number of bars as the first, +terminated by {\tt /} or {\tt //}, until + the last (topmost in the system) ends with a {\tt /} and the block is +finished. Within +a block every voice must have the same number of bars, but every block +needn't have the same number of bars as other blocks. The number of +voices in a staff can only be 1 or 2, and cannot change within a block, but +may vary from block to block. + + The data for each voice in each staff are a sequence of commands +containing one or more adjacent characters. Commands are separated from each +other by spaces. The line-terminating commands {\tt /} and {\tt //} should also +naturally be preceded by a space. + +\subsubsection{Notes} \label{notes} + + Commands for notes always start with a lower-case letter and, as +with all commands, end at +the first space. The first letter is the note name ({\tt a-g}). The +rest of the characters can be in any order with only a few +restrictions. The first digit defines the {\it basic time value} of the +note: {\tt 9, 0, 2, 4, 8, 1, 3} or {\tt 6} respectively for double-whole, +whole, half, quarter, +eighth, sixteenth, thirty-second, and sixty-fourth notes. The second +digit sets the octave (for reference, octave 4 runs from middle C to +the B above). Certain letters may appear after the initial one: {\tt d} +for {\bf d}ot; {\tt dd} for \NEW{1.4} double dot; +{\tt f, n,} or {\tt s} for {\bf f}lat, {\bf n}atural, +or {\bf s}harp (repeat the letter +immediately for a double); {\tt u} or {\tt l}, which force the stem +direction of any un-beamed note; {\tt e} or {\tt r} to shift the notehead +l{\bf e}ft +or {\bf r}ight by its own width; and {\tt a} (for {\bf a}lone) which inhibits +beaming for this note (or, if the first note of an xtuplet, for the +entire xtuplet). \NEW{2.4}A single accidental may be followed by {\tt c} to +make it {\bf c}autionary, i.e., surround it with parentheses. +Alternatively, it may also be followed by {\tt i} to +suppress typesetting \NEW{2.3} but still have +the M{\bf I}DI processor honor the accidental. Other characters allowed in note +commands are {\tt +}, {\tt -}, {\tt .}(period), {\tt ,}(comma), {\tt x}, and +several special characters following {\tt x}, all to be described below. +Between the first letter and the end or {\tt x} if present, +non-digits can be in any order with respect to each other and to the digits, +with minor exceptions involving shifting dots and accidentals. + +To move +a dot from its default location, simply follow the {\tt d} +with one or two decimal numbers, each predeced by +{\tt +} or {\tt -}. +The first is the +vertical shift in \bs{\tt internote}s, the second, the horizontal shift in +notehead widths. + +\label{AccidentalPosition} +Accidentals \NEW{1.4} can be shifted too. One way is to enter +{\tt +} or {\tt -} right after the accidental character, +then an integer +for the vertical shift, then another {\tt +} or {\tt -} followed by the +horizontal shift in notehead widths. If you use this method, you {\it must} +enter both numbers. Or, to just shift horizontally, use +{\tt <} or {\tt >} followed by the shift in notehead widths. When shifting +a sharp to avoid another sharp, a left shift of 0.85 is usually best. When +shifting a flat to avoid a flat above it, a left shift of 0.3 is suggested. +In chords (see section~\ref{chords}), if all the notes are in the same \NEW{2.4}voice, +\PMX will automatically shift accidentals if required. This will be disabled +for the current chord +if any user-defined accidental shifts are entered, unless {\tt A} is entered +along with the shift, e.g., {\tt zcsA<.5} . In that case the user-defined +shift will be added to the PMX-computed one. +\NEW{2.4} Another option that affects accidental positioning in +chords is {\tt Ao}, +entered in the main note command of a chord. It will force the accidentals +in that chord will be posted in the order +they come in the source file (starting with the main note), each one as far +to the right as it will go without crashing into a notehead, stem, or +another accidental. + + + Dots and accidentals always have to be entered when and if a note +calls for them. i.e., they are never carried over from previous notes. +On the other hand, the octave only needs to be entered if the note is +more than a fourth away from the most recent note in the same voice. +This feature lets you go for long stretches in a voice before needing +to enter the octave. An alternate way to jump more than a fourth but +less than a twelfth is to type {\tt +} or {\tt -}. In other words, these +mean to put the note an octave higher or lower than it +otherwise would have gone. Two {\tt +}'s will raise the pitch two octaves +above what it otherwise would have been, and so forth. +The basic time +value is also carried over from the past if it is not re-entered, +except for the first note or rest in each voice in an input block, +for which it {\it must} be entered. +Therefore, when the melody jumps more than a 4th, using {\tt +} or {\tt -} is +often more convenient than using a digit. This is because in order to +use the digit, you must first enter the basic time value whether it +changes or not. + + For example {\tt c44 d e f g a b c c0-} is an ascending quarter-note +scale starting on middle C, followed by an octave jump down to a +whole note middle C. + + Explicit octave \NEW{2.1} numbers can be combined with one or +more {\tt +} or {\tt -} . In earlier versions, {\tt +} or {\tt -} was +ignored if an octave number was specified. This is a slight backward +incompatibility; \PMX prints a warning when it happens. + +Stem length \NEW{2.73} can be {\bf s}hortened or {\bf l}engthened by {\it x} +\bs{\tt internote} with the options {\tt S}{\it x} or {\tt L}{\it x}~. +{\it x} is restricted to the range (0.5,4.0) for shortening and 0.5 to 27.5 +for lengthening. +The shortening can be made ``sticky'' by following the number {\it x} with +{\tt :} . Then every note's stem in the voice will be shortened until +one is encountered with the option {\tt S:} . By lengthening a stem enough +to span to the next staff and connect with notes there, unflagged staff-spanning +chords can be constructed. See section \ref{chords}~for further details +about staff-spanning chords. + +The first note command in each voice in a block must +contain at a minimum the note name or {\tt r} for a rest (see below), +and a basic time value. For notes, it is good practice and can simplify +editing +if in addition an explicit octave is set here. However if it is not, +\PMX will make some assumptions. At \NEW{2.4} the start of the first +input block the pitch will be set as if the prior note were middle C. +In later blocks \PMX will use the +obvious inheritance rules from the end of the prior block. +However, if the number of voices in a staff +has changed from the prior block, it is safest to reset the octave at the +start of a new block. Duration is never inherited and must be set at the +start of each input block. + + Dots can be a little tricky, because even though they affect the +actual time value, they don't affect the basic time value, and it is only the +latter that is ``sticky". Therefore, if a note is to be dotted, you always have to +enter a {\tt d} (or a period, see next paragraph) somewhere within the +command, after +the note name, even if the actual time value and octave are the same +as the prior note. But the {\it basic} time value need not be re-entered if +it hasn't changed (unless the note is more than a fourth from the +prior note {\it and} you have for some strange reason elected to indicate the +octave with a number rather than {\tt +} or {\tt -} ). So for example, +consecutive dotted half notes, each within a fourth of the previous +one, could be most cleanly entered as {\tt cd24 ed gd ed}, whereas {\tt cd24 e} +would represent a dotted half note followed by a plain half note +(since the basic time value---as defined by the first digit---was a half +note all along). + + There are two special shortcut rhythmic notations. For normal dotted +rhythms (3:1 ratio), if you +include a period ({\tt .}) in the note command, it will +(a) assign a dot to the note just entered, (b) terminate that note, +(c) prepare to +receive the next note name {\it without any space}, and (d)~automatically +assign a time value to the second note equal to one-third of the first one. +No time value may be entered for the second note, but octave and accidental +data may. Ornaments and slurs (see below) following this command will apply +to the second member. If you need to follow the main note +with some modifying +\NEW{2.3} +command, you can still use the shortcut ({\tt .}) after that command and a +space. +The main advantage of this shortcut comes if you want to +follow one dotted pair with another of the same rhythm; then you +needn't enter any explicit time value for {\it either} member of the second pair. +This is possible because after using the shortcut, +the basic (inheritable) duration is set to that of the +{\it first} note in the pair, without the dot. + + For paired notes with 2:1 rhythmic ratios, the character {\tt ,}~(comma) +behaves similarly to the {\tt .}~(period) for 3:1 rhythms. + + Xtuplets, or groups of notes with their stems connected, +can have from 2 to 24 notes or\NEW{1.4} rests. Normally they +all have the same duration, but there are several options---described +below---to change this. The command for the first note of an xtuplet begins +exactly like a +note or rest command, with the name of the first note in the xtuplet, or +{\tt r} if it starts with a {\bf r}est (see next subsection), and an optional +time value. +However, the actual time value (including a dot if present and a basic +duration that may have been inherited from the prior note) now represents the +{\it total} duration of the xtuplet. Next (with no space, as usual) comes +{\tt x} followed by a one- or two-digit integer for the number of notes in +the xtuplet. The only options allowed immediately following the number are +{\tt d} and {\tt n} . \NEW{2.4}{\tt d} signifies that the {\it first} note +of the xtuplet should have a dot and the second, and extra flag. +{\tt n} controls the printing of the {\bf n}umber and bracket. +If {\tt n} is followed by a blank, then no number will be +printed. On the other hand, +an \NEW{2.3}{\it unsigned} integer here is taken as a substitute number to +be printed instead of the natural one. +If one or two {\it signed} decimal numbers follow {\tt n} +(each starting with {\tt +} or {\tt -}), the first +is a vertical shift in {\tt \bs internote}s, and the second, a horizontal shift +in notehead widths. Another suboption to {\tt n} is {\tt f}, +to {\bf f}lip the number vertically from its default position. A \NEW{2.5}final +suboption to {\tt n} is {\tt s} followed by a signed integer. It applies only +to non-beamed xtuplets, for which it tweaks the slope of the bracket above or +below the xtuplet. For non-beamed xtuplets, you can further change the +appearance of the bracket and number as explain in section~\ref{ATDirective}. + +The second through last notes of the xtuplet are each then +represented by a separate command containing a subset of the characters +permitted for ordinary notes or rests: note name or {\tt r} (the only required +character), accidental, and octave change character ({\tt +} or {\tt -}). +\NEW{1.4} The octave may be given explicitly instead, and any integer will be +interpreted as such, as no time values or dots are permitted. + +The last note of an xtuplet may not be a\NEW{1.4} rest. + +To double\NEW{2.3} the duration of any note in an xtuplet, add the +character {\tt D} to the command for that note. This will decrease the expected +number of notes in the xtuplet by one. To add a dot to the doubled note +(as Bach sometimes did), use {\tt F} instead of {\tt D}. +\NEW{2.4}To add a dot to one +note and an extra flag to the next, include {\tt d} in the note command, +{\it after} the {\tt x} if it's the first note of the xtuplet as noted above. + +As an example, an ascending quarter-note triplet scale would be +notated\hfil\break {\tt~c44x3~d~e~f4x3~g~a~b4x3~c~d~\dots} + +\subsubsection{Rests} + + The command for a rest starts with {\tt r}. +Then for a normal rest, in either order come a digit for the basic time value +(using same codes as for notes, optional if unchanged from previous value), +a {\tt d} if the rest is dotted, and a second {\tt d} if double dotted. +\NEW{2.0} The basic time value of a rest +affects future notes and rests the same as if it had come from a note, +i.e., it applies until another value is entered with a subsequent note +or rest in the same voice. The command {\tt rp} represents a +full-bar rest notated with a {\bfi p}{\it ause} character (whole rest) +regardless of +the time signature; in this case no other duration information is +needed or allowed. {\tt rb}, followed if necessary by a duration +specifier, denotes a {\bfi b}{\it lank} rest, one that occupies space and time +but is invisible. This is most often used when there are +two voices in a staff and one drops out for some of the duration +of the current input block. (See {\tt mwalmnd.pmx} for examples). +\NEW{1.4} The +option {\tt o} (for {\bf o}ff-center) suppresses centering a full bar rest. If +you don't exercise this option, then +{\it all} full-bar rests will be horizontally centered between bar +lines, including pauses ({\tt rp}) as well as normal rests that fill the bar. +\label{MultibarRest}{\tt rm} followed immediately by an integer will generate a +{\bfi m}{\it ulti-bar} +rest, a special combination of characters between two bar lines with an integer +above representing two or more bars of rest. +This command will generally only be used in separate parts +after having been automatically generated by {\bfx scor2prt}. However, it +\NEW{2.4}may be used in a multi-line score, provided it is entered for the same +number of bars in every staff. + + The default vertical position of a rest depends on whether there +are one or two voices in the staff. +For one voice it is just the \MusiXTeX{} default +(approximately centered on the middle line). On the other hand, in +the lower voice in +a two-voice staff, the rest is lowered {\tt 4\bs internote}, while +in the upper voice it is raised {\tt 2\bs internote}. The \PMX default can be +manually overridden by appending {\tt +}~or~{\tt -} and an integer +representing the offset from the {\it middle} line of the staff +(not from the \PMX default if there are two voices in the staff!). +So for example, in a single staff +in 3/4 meter, two voices, each with a half note followed by its own +quarter rest would be either +\begin{verbatim} +c24 r4 // +c25 r4 / +\end{verbatim} +or equivalently +\begin{verbatim} +c24 r4-4 // +c25 r4+2 / +\end{verbatim} +while +\begin{verbatim} +c24 r4+0 // +c25 r4b / +\end{verbatim} +would produce two notes followed by a single, vertically centered rest. + +Another way to override the default vertical positioning of rests is useful in +keyboard scores, or in fact any score containing two voices on a staff. +The option {\tt K} (for {\bf K}eyboard) in the +{\tt A} command generally causes rests to be +aligned horizontally with notes in the voice in which they are entered. See +section~\ref{Acommands} for a detailed description. + +\subsubsection{Chords}\label{chords} + + Chordal notes, which always share a stem and the same time value as the +prior note, are symbolized with {\tt z} (for {\bf z}ero time) followed by a note name and +optionally an accidental, {\tt +} or {\tt -} as octave indicator, and {\tt e} +or {\tt r} for a l{\bf e}ft or {\bf r}ight shift by one notehead width. +No basic time value is allowed. If the main note +is dotted, then the chordal note will appear with a dot regardless of whether +a {\tt d} is entered. The only time a {\tt d} is required in a chordal note +command is if the dot's position is to be adjusted; in this case the +{\tt d} is required, followed by one or two decimal numbers, each preceded by +{\tt +} or {\tt -}. The first is the vertical shift in \bs{\tt internote}s; +the second, the horizontal shift in notehead widths. +Any number of chordal notes can follow a +single main note. The stem direction of a chord is controlled by the main +note, but may be manually overridden with {\tt u} or {\tt l} in the main note +command. + + When chordal notes are beamed together, the default height and angle of +the beam will be determined by the main note on each stem (the one without +{\tt z}). If a beam joining chordal notes looks bad, you can usually +fix it either by changing which note acts as the main one, +or by fine-tuning the beam parameters as described +in section~\ref{beams}. + +\PMX uses a complex algorithm to automatically position accidentals in chords. +If you are unhappy with the result, you can manually tweak the horizontal +positions as described in section~\ref{AccidentalPosition}. + +Although there is no dedicated command for it, chords can be made to span from +one staff to another using various techniques\NEW{2.73}. The approach will depend on +whether +the chord is single-stemmed with no flag, single-stemmed with a flag, or beamed. +If beamed, it will also depend on whether it is an xtuplet or not. Examples of all +the basic possibilities are contained in the sample file {\tt staffcrossall.pmx}. + +For unbeamed, unflagged staff-crossing chords, +by lengthening the stem with the {\tt L} option on the main note, it can +be made long enough to join with an unflagged single-stemmed note or chord in the +next staff. Single-stemmed notes with one or more flags can be joined across staves +with a trick discovered by Andre Van Ryckeghem: In one staff create a standard note or +chord with +the stem pointing away from the other staff. In the other staff, place the chord notes +in a one-note forced beam that has been lowered or raised into the first staff +(e.g. {\tt [-10 b14 ]}); that +will stretch the stem to join the other notes, but with just one note (or chord) in the +beam, the crossbar will have zero length and be invisible. + +Beamed chords may also span from one staff to another, using joined beams (see +section~\ref{beams}). The general approach is to construct a set of chords +(or single notes, if the other chord notes are in the other staff) in each of +the two staves, enclose each set in a separate forced beam, and join the two +beams with {\tt ]j}...{\tt [j}~. It is important to remember that the +lower staff is processed first. So in most cases, the end of the segment in the lower +staff must be joined (using {\tt ]j}) to the start of the upper segment (with {\tt [j}). +It turns out that for non-xtuplet beamed chords, in all cases where the chord at the +beginning of the beam has a note +in the {\it lower} staff, this works fine provided that the forced beams are of equal +duration and cover the same time span, and that positions in either staff with no note +are represented with +blank rests \bs{\tt rb} inside the force beam. So for example a set of beamed chords +that starts only in the +lower staff and ends only in the upper could be represented by +\begin{verbatim} +{\tt [+28 g83 g g rb ]j / +[jf rb g84 g g ] /} +\end{verbatim} +This example highlights some other issues, viz., that the beam height or direction of one +or both beam groups may need to be altered. Often this will require trial and error. + +Unfortunately this two-group procedure breaks down if the first chord in the beam has no +notes in the lower staff. There are tricks to get around this; the user is referred to +the file {\tt staffcrossall.pmx} for examples. However, there is a much more +straightforward way to define +staff-crossing beamed chords that begin in the upper staff: it simply requires defining +the beamed group in each staff as an xtuplet within a forced beam. It turns out that +the treatment of +staff-crossing beamed xtuplets is more robust than for non-xtuplets, and will admit +more intuitive coding. So for example, the reverse of the above example, where +the beam starts in the upper staff and ends in the lower, could be obtained with +\begin{verbatim} +{\tt [+28 rb2x4n g3 g g ]j / +[jf g24x4 g g rb ] /} +\end{verbatim} +\newdimen\psav\psav=\parindent\parindent=0pt where we used the option {\tt n} to +suppress printing the number. As you might expect, more general staff-crossing +beamed chordal xtuplets follow the same concepts already described for non-xtuplets, +but as noted, they are more robust and admit patterns that start in the upper staff +and end in the lower one. {\tt staffcrossall.pmx} also contains examples this +approach. + +\parindent=\psav + +\subsubsection{Grace notes}\label{graces} + + A grace note command starts with a {\tt G}. It is entered in its natural +order, normally before the main note, but sometimes after. After {\tt G} and +before the note name, comes any +combination of the following options: an unsigned integer (which may have 2 digits) +representing the number of +notes in the grace (default is 1), {\tt m} and a digit for +{\bfi m}{\it ultiplicity} +(number of flags or beams, default is 1, 0 is allowed), +{\tt s} for {\bf s}lur (joining all notes of the +grace to the main note; no other {\bf s} is needed on the main note), +{\tt x} for a slash (only for single graces), +{\tt l} or {\tt u} to force the direction of the stem(s), +{\tt X} followed by a decimal number {\it x} to insert a gap of {\it x} +notehead widths between a normal grace and its main note\NEW{2.6}, +{\tt A} (for +{\bf A}fter) or {\tt W} (for {\bf W}ay-after) to associate +the grace note with the {\it prior} note. Next comes the only +required character, the +first note name. No time value can be entered, but if needed, the +octave or an accidental can be given as in a normal note. Second and +later notes must follow immediately in sequence, set apart by spaces, likewise +without any time value, and without any intervening commands. + + Normal or after-graces will be placed {\it immediately} before or after +the main note; way-after's, as far to right as possible before the next note +or bar line. If either type of after-grace is slurred, the slur will start +on the main note and end on the last one in the grace. + + +\subsubsection{Ornaments} + + Commands for ornaments are entered {\it after} their associated +note command. The ornaments now available are shake ({\tt ot}), {\bf m}ordent +({\tt om}), ``x"- or ``+"-shaped ornament symbols ({\tt ox, o+}), pizzicato +({\tt ou}), strong {\bf p}izzicato ({\tt op}), left parenthesis before +notehead ({\tt o(}), right parenthesis after notehead ({\tt o)}), +upper {\bf f}ermata ({\tt of}), {\bf d}own {\bf f}ermata ({\tt ofd}), +staccato ({\tt o.}), tenuto ({\tt o\_}), two different se{\bf g}nos +({\tt og} or {\tt oG}), {\bf C}oda ({\tt oC})\NEW{2.71}, +arbitrary-length wavy-line {\bf t}rill with {\it tr} ({\tt oT}), +arbitrary-length wavy-line +trill without {\it tr} ({\tt oTt}), sforzando ({\tt o>}), +%duncecap ({\tt o}\hbox to 6pt{\tt\^~}), \NEW{2.4}{\bf c}aesura ({\tt oc}), and +duncecap ({\tt o\verb|^|}), \NEW{2.4}{\bf c}aesura ({\tt oc}), and +{\bf b}reath ({\tt ob}). +All except the parentheses, staccato, +tenuto, and down fermata will normally +appear above the staff; the parentheses appear at the level of the note +head, and staccato and tenuto just above or below depending on the +stem direction. The only difference between staccato and +pizzicato is the vertical positioning of the dot. + +Either type of trill may immediately include an unsigned decimal number +to specify the length of the printed symbol in current \bs{\tt noteskip}s; the +default is 1. Thus {\tt oT0} represents {\it tr} with no wavy line. + +Once the ornament type has been specified, most of them can be raised +or lowered from their default position by appending +a signed integer to the command, representing the vertical offset +in \bs{\tt internote}s. \NEW{2.4}. A second signed integer specifies a +horizontal shift from default in notehead widths. + +The caesura and breath marks differ from the others in their default horizontal position, +which is 0.5\bs{\tt noteskip} past the note. + +The {\tt og} segno has several special properties. It must be entered in the first (lowest) +staff, but will appear above +every staff. Its vertical position cannot be altered, but if appended by a number...unsigned +if positive...all appearances will be shifted horizontally by that number of points. On the +other hand, the {\tt oG} segno\NEW{2.71} has a smaller symbol than {\tt og}, +applies only to the note after which it is entered, and can be shifted just as a +normal ornament. + + An ornament can be automatically repeated on a series of consecutive notes, +provided the notes are all in the same voice and the same input block. +To activate this feature, terminate +the first ornament command with~{\tt:}~. Then every note in that voice will +have the same ornament until a note is followed by the repeat terminator +{\tt o:} . + +\subsubsection{Editorial accidentals} + + To place a small sharp, flat, natural, or question mark above the staff, +after the affected note enter {\tt oe} followed by {\tt s, f, n} or {\tt ?}. +\NEW{2.2} You may also put a question mark right after the accidental. + +\subsubsection{Slurs} \label{slurs} + + By default \PMX will use \MusiXTeX's built-in font-based slurs. +But through user intervention it is possible to use either one of +\NEW{2.4}two different types of postscript slurs. {\it Type K} slurs, +developed by Stanislav Kneifl, are directly supported by \PMX and will +be the focus of any future \PMX enhancements. +They are globally activated with {\tt Ap} and several global +defaults set with other options to the {\tt A} command as described in +section~\ref{ApDirective}. If these are used, so will an alternate +set of hairpins (see section~\ref{dynamics}). +The other postscript slur option is Hiroaki Morimoto's {\it Type M} slurs. +These +are not directly supported by \PMXX, but are intended to be fully +compatible with the default font-based slurs. To use them, one would +use the in-line \TeX~command \bs\bs{\tt input musixpss}\bs~, and be sure +{\it not} to enter {\tt Ap} . From \PMXX's standpoint they are no different +from font-based slurs. + +There are some advanced options available only +with Type K postscript slurs, and a few obsolete ones only with font-based. +At this point the main +difference in functionality between the two is that with postscript, \PMX +provides support for +true ties, which are shaped and positioned slightly differently from +slurs. Future enhancements +will probably only work with Type K postscript slurs. Some users do still +prefer +font-based, possibly because Type K postscript slurs are not visible in some +DVI viewers. +New users should experiment with the various types of slurs and decide for +themselves. + + The normal commands for slurs are {\tt (} placed with a space +before a note, and {\tt )} placed after. The command {\tt s} is equivalent to +{\it both} of them (!), except that it always follows the affected note. +With font-based slurs, {\tt t} is equivalent to {\tt s} but +with several minor differences to be explained later. With postscript slurs, +{\tt t} signals to use a true tie. +The commands {\tt s} and {\tt t} are {\it toggles}, turning +a slur or tie off if it's already on and starting one otherwise. + +A \NEW{2.5} slur or tie may end on a rest, but not start on one. The default +ending height in this case will be the same as the starting height, and it +may be tweaked as described below. + + The first character is optionally followed by +a single-character ID code {\tt 0-9} or {\tt A-Z}, then by other +options described below. ID codes are only needed if two or more slurs are +open at the same time within one voice, such as when several chord +notes are tied. Using ID codes in such cases tells \PMX which open slur to +close. ID codes cannot be used with font-based {\tt t} slurs. + +The rules for finding the default direction and position of a slur +are complex; many factors enter into defining visually pleasing values. But +there's no need for gory details here; the result will usually satisfy, and if +not, it can easily be tweaked. The default direction of curvature can be +overridden with {\tt u} ({\bf u}pper), {\tt l} ({\bf l}ower), +or equivalently {\tt d} ({\bf d}own). +Starting or ending position can be shifted from its default by +entering one or two explicitly signed numbers. The first, which must be +an integer, represents the vertical shift in \bs{\tt internote}s; the second, +which may be decimal, the horizontal offset in notehead widths. \NEW{2.71}Starting +or ending +position of a postscript slur or tie can be made to align with the end of the stem +of an unbeamed note by using the option {\tt v}. No other options are permitted +with {\tt sv}, but any desired position can be forced with the numeric options. + +The shape of the slur may be altered as well\NEW{2.1}. This paragraph +deals with font-based slurs, for which the shapes may be less +than fully satisfying due to fundamental limitations of \MusiXTeX. +At the slur termination only, one or three +more parameters may follow the ones just described. The first, a signed, +nonzero +integer, is a vertical adjustment to the mid-height of the slur in +\bs{\tt internote}s. The next two, integers between 1 and 7 following a +``{\tt :}", are alterations to the starting and ending slopes. +These numbers are +passed directly as arguments of the \MusiXTeX{} macros \bs{\tt midslur} +(if only +one is given) or \bs{\tt curve} (if there are three). + +For \NEW{2.4}Type-K slurs, +the shape may be changed locally by including {\tt f} in either the +slur's starting or ending command to flatten it a bit, or {\tt h}, +{\tt H}, or {\tt HH} to +increase its curvature and raise or lower its middle by increasing degrees. +The default \NEW{2.5}curvature can be altered from normal +with new suboptions +to {\tt Ap} as described in section~\ref{ApDirective}. Local +curvature tweaks will take precedence over the global default. A special +option {\tt n} to the slur command can be used to locally restore the normal +curvature if the default curvature has been globally changed. + +Another option peculiar to Type-K slurs and ties is to locally +override the global +setting for automatic height adjustment (to avoid tangencies with staff +lines). The global defaults may be changed with the {\tt A} command as +described in section~\ref{ApDirective}. To +override the global setting for the current slur or tie only, use +the option {\tt p} in the command that starts the slur or tie, +followed by {\tt +} or {\tt -} (to turn adjustment +on or off), followed by {\tt s} or {\tt t} (for slur or tie). + +A dotted \NEW{1.41} slur is activated by including the option {\tt b} (for +{\bf b}roken) in the command that starts the slur. + +Slurs involving grace notes are specified within the command for the grace +(see section~\ref{graces}). + +For font-based slurs, the unique aspect of {\tt t} slurs is that if one +starts or ends on the same +note as an {\tt s} slur, the former will be moved away from the notehead to +avoid a collision. {\it This only works if neither slur has an ID code.} +This feature is only retained for backward compatibility. + +The available options should cover most circumstances, but if not, +the \TeX\ macros \bs{\tt isu} etc, defined in {\tt pmx.tex}, can be entered +as in-line \TeX\ commands (see section~\ref{LitTeX}). +These commands have three arguments: +slur number, vertical position (pitch, or offset from bottom staff line in +\bs{\tt internote}s), and horizontal offset in +notehead widths. When using these commands, you must choose an explicit +slur number. Use one large enough to avoid +conflicts with \PMXX 's automatic slurs, which are numbered from \NEW{2.4} +0 upward. +Also, remember that non-spacing in-line \TeX\ commands such as this one must +come {\it before} the note they apply to, in contrast with the \PMX +slur toggles which may come after. + +\subsubsection{Ties} + +With font-based slurs, in \PMX the only difference between ties and slurs +is the default positioning. +Ordinary slur ends are centered horizontally above or below the notehead, +while tie ends are shifted inboard and closer to the midheight of the +notehead. To specify a font-based tie in \PMXX, use a slur command and +include the option {\tt t} +in it, somewhere after the initial {\tt ( , ) , s } or {\tt t} . + +\NEW{2.4} With postscript slurs, ties---indicated with {\tt t} or +{\tt st}---will have similar differences +in endpoint positions, +but in addition will have a different shape (somewhat flatter) and will +always end at the same height they start. There is also an option to the +{\tt A} command that affects ties across line breaks +(see section~\ref{ApDirective}). By default the +second part of such ties will be drawn as a complete tie symbol. However, +if you want them to be a {\it half tie}---a special shape that is horizontal +at its left end---use the command {\tt Ap+h} at the start of the file. + +In addition to the notation options just mentioned, ties may also be +%indicated with the character {\tt\{} before the starting note and {\tt\}} after +indicated with the character {\tt$\{$} before the starting note and {\tt$\}$} after +the ending note\NEW{2.6}. + +\subsubsection{Line-breaking Type K slurs and ties} \NEW{2.5} \label{lbslurs} + +No special action is required if a slur or tie happens to cross a line break. +However, some special, manual adjustments are available for Type K postscript +slurs in these cases. The global option {\tt Apl} by itself adjusts several +parameters as described in section~\ref{ApDirective}. Further, if {\tt Apl} +has been issued, +then case-by-case adjustments for line-breaking Type K slurs and ties are +available as suboptions to the +slur commands. To tweak the horizontal and vertical positions of the end of +the first segment, enter the suboption {\tt s} in the command that starts +the line-breaking slur or tie, followed by two signed numbers representing +respectively the vertical shift +in \bs{\tt internote}s and the the horizontal shift in notehead widths. To +tweak the position of the start of the second segment, follow the above by +another {\tt s} and two more signed numbers. The usual curvature options +{\tt h}, {\tt H}, {\tt HH}, and {\tt f}, if included in +the starting command for a line-breaking slur, will apply only to the first +segment, and if in the closing command, to the second segment. If the tweaked +slur or tie does not happen to come at a linebreak, +the special position tweaks (after {\tt s} ) will all be ignored, and the +curvature tweaks on the closing note will take precedence as they normally +would. + +\subsubsection{Dynamics} \label{dynamics} + +\NEW{2.3} +After the affected note, enter {\tt D} followed by one of the +following {\tt pppp, ppp, pp, p, ffff, fff, ff, f, mf, mp, fp, sfz, +"[{\it any text}]", >,} +or {\tt <} . The last two are diminuendo and crescendo, and they are toggles, +i.e., the first one of each starts the symbol and the next one ends it. +The one surrounded by \NEW{2.76} double quotes is an arbitrary text string +no longer than 64 characters, which may include embedded \TeX. +With any dynamic mark, you can also +enter position shifts, vertical as a signed integer representing +the number of {\tt \bs internote}s, then horizontal as a signed number representing +number of notehead widths. There can only be one of the letter-groups on each +note, but there may also be {\tt D<} and/or {\tt D>} on the same note. These must be +entered as separate {\tt D...} commands, and must come in the right order, e.g., + +\medskip +[{\it some notes}] {\tt D<} [{\it more notes}] {\tt D< Dffff D>} +[{\it more notes}] {\tt D>} +\medskip + +Hairpins \NEW{2.7} may span from one input block to the next. + +There are numerous context-sensistive automagic adjustments to the positions +of all the dynamic symbols. If you don't like the result you can adjust the +position as just described. + +Due to \MusiXTeX's limitations, +there are some restrictions on hairpins when using font-based slurs. +They cannot be longer than 68mm, they cannot wrap over a system break, and they +must be horizontal. Finally, +only certain specific lengths are available so some horizontal position +tweaking may be needed, especially when letter-groups and +hairpins are combined. +These restrictions are all removed when using postscript slurs. + +\subsubsection{Beams} \label{beams} + + For the most part, \PMX automatically takes care of the details of +defining beams: selecting which notes are beamed together, and setting +the angle, direction, height, and {\it multiplicity} (the number of bars +along the top or bottom). However, one may define a {\it forced} +beam---which overrides \PMXX 's selection of which notes are beamed +together---by +surrounding the included notes with {\tt [} and {\tt ]}, being certain to +separate these commands and their options from the included note commands with +spaces. One may also wish to edit certain features of a beam even when +\PMXX 's grouping decision +would otherwise be acceptable; here again the beamed notes must be set +apart with {\tt [} and {\tt ]}. + +The {\tt [} may optionally be followed +immediately by several options. + +{\tt u} or {\tt l} will override +\PMXX 's selection of the direction of the beam, while {\tt f} will +{\bf f}lip it from whatever \PMX decided. + +{\tt j} {\bf j}oins the beam +grouping to a prior one started in another system (see below). + +One, two, or three consecutive integers, each preceded with {\tt +} +or {\tt -} , will affect the beam's appearance. The first integer is +an adjustment to the starting level (in \bs{\tt internote}s) and may range +from -30 to 30; the second is a slope adjustment with the same +permissible range; the third is an alternate adjustment to the +starting level (in beam thicknesses) and may only range from 1 to 3, +always acting to increase the stem length. The latter may be used to +align consecutive horizontal beams which have internal multiplicity +changes. For example, in 2/4 time, {\tt c84~c1~c~c~c~c8} would cause two +beams but the +first one would be lower than the second; {\tt [+0+0+1~c84~c1~c~]~c~c~c8} +would align the tops of the beams with each other. Due to the +complexity of \PMXX 's beam analysis procedures, these editing commands +may sometimes produce unexpected results, and some iteration may be +required to get exactly what you want. For example, +{\tt [+0+0+3~cd8~c3~c6~c~]~c~c~c3~cd8} +will not produce two aligned beams as desired, because +when \PMX analyzes the first beam, it automatically raises the starting +level a bit for another reason, namely, to avoid too short a stem on +the 64th notes at the end of that beam. In this case, +the user could counteract \PMXX 's internal adjustment by using +{\tt [-1+0+3~cd8~c3~c6~c~]~c~c~c3~cd8}. + +The character {\tt m} followed by a digit 1-4 forces the {\bf m}ultiplicity +of the +beam, the number of stem-joining bars. + +The option {\tt h} forces the beam to be {\bf h}orizontal. + + By default, xtuplets are set apart with their own beam. To beam +an xtuplet together with other non-xtuplets, just include it with the +other notes in a forced beam. + + Rests may also be included within forced beams, provided they are +shorter than quarter rests, and of course that they come {\it between} the first +and last notes under the beam. + +It's \NEW{2.5} now easy to define a repeating forced beam pattern. +If the option {\tt :}~(colon) is included in the starting command {\tt [}~for +a forced beam, then after you end the beam, more beams of the same duration +will be forced in +that voice, until stopped. They will be stopped at either the next regular +forced beam, or the end of the input block for that voice, whichever comes +first. + + Some users may wish to define beamed groupings with subgroups +joined by a single beam. The command {\tt ][}, standing alone between two +note commands in a forced beam, causes the multiplicity to decrease to +unity and immediately increase to its natural value for the next note. +For example, {\tt [~c14~c~c~c~][~c~c~c~c~]} will generate two doubly-beamed +groups connected by a single beam. + +Related \NEW{2.3} to this is a {\it single-slope beam group}, which is the +same as described +in the previous paragraph except that the beam disappears between segments. +Segments should be separated by {\tt ]-[} standing alone between two notes +inside the forced beam. + + If there are large jumps in pitch between notes in a beam within +a single staff, as a matter of taste you may wish +to start the beam for example as an upper one and end it as a +lower. \PMX will never do this automatically, but you can accomplish +it by forcing the beam with appropriately modified up/down-ness, starting level, +and slope. If you use this technique, there are two details to note: (1)~if +there are any intermediate multiplicity changes, they will only be handled +properly if the initially specified up-down-ness is consistent with the +vertical position +of the intermediate notes involved, and (2)~for proper appearance in crowded +scores you may wish +to insert hardspace or shifts as described in +section~\ref{hardspace}. Some examples are included in {\tt most.pmx}. + + Beams cannot normally jump staves. But if that is desired, start +the beam normally in one staff, and terminate the part of the beam in that +staff with {\tt ...~]j} . Then resume the beam in the new, adjacent staff with +{\tt [j~...} . For staff-jumping beams, it's OK to have just a single note +inside one or both of the members. Some adjustment of the beam height and +slope may be required. Sometimes the ending section's up-downness must be +overridden; you will know this is so if the ending is shifted horizontally +from its proper position by one notehead width. +Each voice must still have the right number +of beats, so you will probably need to fill time with blank rests after the +first member of the beam in one staff and before the second member in the other. +There can +still only be one staff-jumping beam open at a time. + +\subsubsection{Clefs} + + A clef change is signaled by {\tt C} followed by a single lower-case +letter or digit using the code specified in +section~\ref{ClefCodes}. If clefs come out at the wrong +vertical position, refer to the note in {\tt pmx.tex}. + +\subsubsection{Arpeggios} + +To set an arpeggio (a vertical wavy line), simply place the command {\tt ?} +after the commands for both the first and last note. To shift the symbol to +the left by {\it x} notehead widths, use the option {\tt -}[{\it x}]\NEW{2.6} . + +\subsubsection{Lyrics}\NEW{2.73}\label{lyrics} + +Lyrics depend on the underlying \TeX\ command {\tt\bs pmxlyr} developed by Dirk +Laurie, which is defined in {\tt pmx.tex}. It in turn makes use of the macro +package {\tt musixlyr.tex} developed by Rainer Dunker. So to enable lyrics within \PMXX, +you will need to +ensure that {\tt musixlyr.tex} is installed somewhere in your system where your +\TeX\ processor can find it. + +Lyrics can be inserted by enclosing them in double-quotes inside the music line +just before the first note to which they apply, as in +{\tt "us-ing lyr---ics now\_\hglue1pt\_ "}. Once the first double quote is encountered, \PMX will +ensure that {\tt musixflx.tex} is input into the \TeX~file. + +Lyrics for several notes can be defined in one go. +The lyrics in each input string demand a specific number of notes, depending on +the number of syllables, hyphens, and underscores. If there are not enough lyrics, +question marks will appear; if too many, the excess syllables will not appear. + +The rules for aligning lyrics properly with notes are as follows. Words are +separated by whitespace, with any number of spaces counting as one. Syllables +within a word that require just one note each are separated by a single hyphen. There are +two ways to extend a syllable over two or more notes. If it is the last syllable in +a word (like {\tt "now\_\hglue1pt\_ "}), follow it with consecutive underscores, one for each extra +note, and finally a space. It will be printed with a continuous underscore. +To extend a syllable within a word (like {\tt "lyr---ics"}), insert one extra hyphen +(with no spaces) for each +extra note, and it will be printed with some number of hyphens filling the proper +space between syllables. Conversely, a tilde ({\tt \char126}) between two words +(with no spaces) prints a space between them while assigning the last syllable of the +first and the first syllable of the second to a single note\footnote{This is just an +example of using a standard \TeX\ feature within lyrics.}. So in the end, in a voice +with lyrics, every note must be associated with a syllable, its extension, or two +syllables joined with a tilde. + +Although underscores within a word or consecutive hyphens at the end may not crash the +code, they are not recommended for any foreseen useful purpose. + +Accented characters can be included in lyrics or elsewhere in several different ways. Here +we provide examples for just one of those methods, one which uses special \TeX~commands. +The following \PMX input contains most of the available accented characters and +leads to the example pictured below. + +\begin{verbatim} +"\'o \`o \^o \"o \~o \=o \.o \u{o} \v{o} \H{o} \t{oo}"@b+4 +c44 d e f g a b c c- d e r / + +"\c{o} \d{o} \b{o} {\oe} {\OE} {\ae} {\AE} {\aa} {\AA} {\o} {\O} {\l} {\L} {\ss}" +c44 d e f g a b c c- d e8 f g a / +\end{verbatim} + +\includegraphics[scale=1.0]{accents.eps} + +By default, lyrics will be placed below the staff where they are entered, half way between that +and the next lower staff. You may want to +alter the vertical position of a lyrics line, especially if both voices in +a staff have lyrics. This is accomplished with the opfion {\tt @}, immediately +following the closing quote of the +lyrics string with no space. That must be followed by either {\tt a} or {\tt b} for +{\bf a}bove or {\bf b}elow the staff, then a signed integer for the number of +\bs{\tt internote}s above or below the default height. This command is "sticky"; it +will remain in force for later lyrics in the same voice until altered. + +It may also be necessary to allow extra vertical space where the lyrics are positioned. +There is no \PMX command for this, but type 2 inline \TeX~can be used to insert extra +vertical space above any instrument. For example, if the voice is in instrument \#2 and +lyrics are below that staff, +\bs\bs{\tt interinstrument=0\bs internote\bs\bs setinterinstrument1\{8\bs internote\}}\bs~ will +add \newline 8 \bs{\tt internote}s in the space for the lyrics. + +Present limitations allow lyrics at upper and lower voices on the bottom two +staves of instruments 1 to 4. Elsewhere they are quietly ignored. + +Most scores with lyrics will benefit from the type 2 command \bs\bs{\tt sepbarrules}\bs, which +stops bar lines from crossing through the vertical space between instruments. + +The notation {\tt "us-ing lyr---ics now\_\hglue1pt\_ "} is actually shorthand for the inline \TeX\ +string {\tt\bs pmxlyr\{us-ing lyr---ics now\_\hglue1pt\_ \}\bs}. All the rules given in +section~\ref{LitTeX}~for +Type~1 \TeX\ strings apply. To ensure that the length of all the Type 1 \TeX\ +strings belonging to a particular note combined does not exceed 128, remember +to account for the nine characters in {\tt\bs pmxlyr\{\}}. + +This way of entering lyrics is a convenient interface to a small subset of the +facilities offered by {\tt musixlyr}. If more advanced features than those supported by +{\tt\bs pmxlyr} are needed, the necessary {\tt musixlyr} macros could be entered as +in-line \TeX\ directly into the .pmx file - see the example file {\tt netsoos.pmx} for +some of those. + +If really advanced features are needed (such as having several verses of lyrics +at once), most users would prefer the convenient interface to {\tt musixlyr} via +the program {\bfx M-Tx} developed by Dirk Laurie. It is a pre-preprocessor which produces +a {\tt .pmx} file containing the proper in-line \TeX\ commands. Its input language +is similar (but not identical) to \PMX and includes most \PMX functionality as a subset. + +\subsection{Commands That Affect All Voices} \label{pmxcmds} + + Most commands that affect all the voices can only appear in the first +(lowest) voice in the first (lowest) staff. Most such commands will +automatically be +transferred from score to parts when separate parts are generated by +{\bfx scor2prt} (see section~\ref{scor2prt}). + +\subsubsection{Repeats, double bars, forced single bars} + + Repeat signs, double bars, and other bar-ending options are signaled +by {\tt R} followed by +{\tt l, r, lr, d, D, dl, b} or {\tt z} for +{\bf l}eft repeat, {\bf r}ight repeat, {\bf l}eft-{\bf r}ight repeat, +thin-thin {\bf d}ouble +bar, thin-thick {\bf D}ouble bar, thin-thin {\bf d}ouble bar followed by +{\bf l}eft repeat, single {\bf b}ar, or blank (invisible) barline\NEW{2.4}. +Some of these have peculiarities. +{\tt Rb} forces a single bar before a movement break (see section~\ref{movbrk}), +where otherwise by default there is a double bar. That can be useful for +example if you +change the number of instruments (via an option in the movement-break command) +in the middle of a movement. {\tt Rz} will cause a blank barline at the end +of the current system, not necessarily the current bar. It can be used +together with blind meter changes if you want to split a bar across a +system break. +If {\tt Rlr} falls at a system break, \PMX will automatically split it in +two. The command {\tt Rdl} will likewise be split at a system break, but if +not at a system break, the {\tt d} will be ignored. + +These commands must be in the +first voice. It is best only to place them before the first note in an +input block or if necessary after the last one; otherwise {\bfx scor2prt} +may behave erratically. +Using two separate {\tt R} commands in succession will cause +unpredictable results. + + +\subsubsection{Voltas (first and second endings)} + + Beginnings and ends of first and second endings are signaled by +{\tt V} (for {\bfi v}{\it olta}). +If it's the {\it end} of the volta, add the option {\tt b} (for +{\bfi b}{\it ox}) or {\tt x} for {\it no bo}{\bfi x}. +If it's the {\it start} of a volta, you can +optionally enter any text at all that doesn't include a space and doesn't +start with {\tt b} or {\tt x} (most +commonly {\tt 1} or {\tt 2}). A period will automatically be +appended to the text. If one volta ends and another starts right +away, only a single {\tt V} is needed. Voltas must only be entered in the +first voice. If separate parts are to be created from a score using +{\bfx scor2prt}, then only a single volta is allowed in any given input +block, and it must be at the beginning of the block. + +\subsubsection{Meter changes}\label{MeterChange} + + Meter can only be changed at the beginning of an input block. +A {\bfi m}{\it eter change} command starts with the letter {\tt m}. +There are two different ways to complete the command. + +{\bfx Method 1.} Enter 4 numbers +with no intervening spaces. The four numbers are {\tt mtrnuml}, +{\tt mtrdenl}, {\tt mtrnmp}, {\tt mtrdnp} as defined in section~\ref{setupdata}, +with the following exceptions for this method only: +You must use {\tt o} to represent +the number 1; if you enter the digit {\tt 1} then \PMX will interpret that +digit and the next as a 2-digit integer, between 10 and 19 inclusive. +19 is the largest number that can be entered with this method. Note that +{\tt mtrdenl=0} still represents a whole note. + +{\bfx Method 2.} \NEW{1.4} Enter the four numbers verbatim in the order just +listed, but separate them with slashes ({\it /}). + +\subsubsection{Fundamentals of key changes and transposition}\label{transpose} + +As explained in section~\ref{setupdata}, the intial key signature, also called +the concert key, is specified in the setup data. In order to change the key +signature or to transpose (i.e. make the printed notes appear at a different +level than where +they were entered), use the {\tt K} command. The syntax is {\tt K}[{\it n}][{\it k}] +where {\it n} and {\it k} are explicitly signed digits respectively giving the distance +to transpose in \bs{\tt internotes}, and +new key signature. When transposing, you should always use relative accidentals, activated by +the separate command {\tt Ar} at the start of the first input block (see section~\ref{ArDirective}). +For example, to transpose a piece in C major to E major you would enter +{\tt Ar~K+2+4} at the beginning of the first block. + +To transpose by a half step to a key with the same +letter name, use {\tt K-0}[{\it k}] where as before {\it k} is an explicitly signed integer giving +the new signature. +(Using {\tt -0} instead of {\tt +0} eliminates confusion with a simple key +change, see the next paragraph.) + +A simple key change can be signalled at the start of any input block. Use +the command {\tt K} with {\it n}={\tt +0} as the first argument and the new key signature as the second. + +If the signature changes from sharps to flats +or vice-versa, the default will be to include naturals in the first instance of the new +signature. To suppress this behavior, use the \NEW{2.7}option {\tt n} right after {\tt K} . +For example, to change from +2 flats to 3 sharps and suppress the naturals, enter {\tt Kn+0+3} . + +The procedures described above will affect all instruments in the score. To change the key of or +transpose just a single instrument, use Ki[{\it m}][{\it n}][{\it k}] when {\it m} is an unsigned integer +representing the instrument number, and {\it n} and {\it k} are as just described. +For more than one instrument, you may immediately repeat everything after {\tt K} (including {\tt i}). +This may come either at start of score (right after setup) or at the beginning of any later input +block. But if it's later, it must be preceded by a normal +(full score) non-transposing key change command {\tt K+0}[{\it k}]. +For example, to change the keys of the second and third instruments to one sharp and two sharps +respectively, use {\tt Ki2+0+1i3+0+2} . + +\subsubsection{More on transposition; ``transposing'' instruments and example files} + +In practice, two fundamentally different situations may arise: (1) (Full-score transposition) A +score that has been entered in one key +is to be completely transposed to a different key and pitch level, usually to force the range to fit +different instruments than original; or (2) (``Transposing'' +instruments) some of the instruments require a part printed in a different key and at a different +pitch level than it sounds. + +To transpose +an entire score from the key specified in the setup data (Case TTA), simply use the +{\tt K} command at the +beginning of the first input block, as outlined in the previous section. + +It gets more complicated when some transposing instruments are involved, +because there are three different possibilities: +(Case~CTS)~The transposing instruments can be entered in concert key but printed +transposed in the score and in separate parts created with {\bfx scor2prt} (see +section~\ref{scor2prt}); +(Case~TTS)~They can be entered transposed and printed transposed in +both the score and in parts; +(Case~CCS)~They can be entered in concert key and printed in concert key in the score, but +printed transposed in parts. Matters are further complicated if there is a later key +change. Finally, if a MIDI file is to be produced, then in cases CTS and TTS an additional +step involving the transpose option to the MIDI command {\tt I} +(see section~\ref{MIDI}) must be taken. + +All of the required commands for all four of these cases are summarized in the table +below. Following that, they are discussed a bit further and illustrated in +four example files (named [Case]{\tt .pmx}) that are also included in the distribution. + +\font\smaller=cmr10 +{\smaller +\begin{center} + \begin{tabular}{cllcll} + \hline + Case & PMX entry & Printed score & MIDI pitch & Initial commands & Later key change \\ + \hline + TTA & All B flat major, & All transposed up & transposed & {\tt K+2+2} & {\tt K+0-5} \\ + ~ & later key change & 2 steps to D & ~ & {\tt I} & ~ \\ + ~ & to B flat minor & major, later to D & ~ & ~ & ~ \\ + ~ & ~ & minor & ~ & ~ & ~ \\ + \hline + CTS & All B flat major, & Trombone (1) & concert & {\tt Ki2+5+1i3+1+0} & {\tt K+0-5} \\ + ~ & later key change & concert; alto sax & ~ & {\tt IT+0-5-1} & {\tt Ki2+5-2i3+1-3} \\ + ~ & to B flat minor & (2) transposed up & ~ & ~ & ~ \\ + ~ & ~ & 5 to G, later G & ~ & ~ & ~ \\ + ~ & ~ & minor; clarinet (3) & ~ & ~ & ~ \\ + ~ & ~ & transposed up 1 to & ~ & ~ & ~ \\ + ~ & ~ & C, later C minor. & ~ & ~ & ~ \\ + \hline + TTS & Trombone (1) & Trombone (1) & concert & {\tt Ki2+0+1i3+0+0} & {\tt K+0-5} \\ + ~ & concert; alto sax & concert; alto sax & ~ & {\tt IT+0-5-1} & {\tt Ki2+0-2i3+0-3} \\ + ~ & (2) transposed up & (2) transposed up & ~ & ~ & ~ \\ + ~ & 5 to G, later G & 5 to G, later G & ~ & ~ & ~ \\ + ~ & minor; clarinet (3) & minor; clarinet (3) & ~ & ~ & ~ \\ + ~ & transposed up 1 to & transposed up 1 to & ~ & ~ & ~ \\ + ~ & C, later C minor. & C, later C minor. & ~ & ~ & ~ \\ + \hline + CCS & All B flat major, & All B flat major, & concert & {\tt \%2K+5+2} & {\tt K+0-5} \\ + ~ & later key change & later key change & ~ & {\tt \%3K+1+0} & ~ \\ + ~ & to B flat minor & to B flat minor; & ~ & ~ & ~ \\ + ~ & ~ & parts printed & ~ & ~ & ~ \\ + ~ & ~ & transposed & ~ & ~ & ~ \\ + \hline + \end{tabular} +\end{center} +\medskip +} + +{\bfx Case TTA: Full score transposition.} +Here the entire score is to be transposed. In the setup data the signature is set to -2. Then +the command {\tt K+2+2} says to transpose up 2 steps from the initial key of B flat to D, and put 2 +sharps in the key signature. No special attention is needed for the MIDI; it will come out in the +transposed key. A later (full-score) key change requires another {\tt K} command, but now the +transposition parameter is set to 0 and the new key is the concert key (I guarantee people will be +confused by this). In the example the command for the signature change is {\tt K+0-5} , making the +new concert key B flat minor with 5 flats, and, considering the initial transposition, causing the +score and MIDI to come out in D minor with 2 flats. + +{\bfx Case CTS: Parts all entered in concert key, but some transposed in the printed score.} +Here, to produce the +printed score, parts are all entered in concert key, but instrument-wise transposition is used for +the transposed instruments. In the example the alto sax part is entered in B flat but will be +transposed up 5 steps in the printed score, to G major. This is brought about with {\tt Ki2+5+1} . Similar +logic applies to the clarinet part, while the trombone part is not transposed. If a MIDI file is +desired, it will come out in concert key, but only after using the transpose option in the MIDI +command to undo the transpositions caused by the K command. In the example the command +{\tt IT+0-5-1} does this, ``de''transposing each of the three instruments by the necessary number of +steps. For a later key change, first the full-score {\tt K} command changes the concert key, then the +instrument-wise {\tt Ki command}, with the same transpositions as the initial one, sets the new key +signatures for the transposing instruments. Here the signatures to be entered are the transposed +signatures, i.e., the ones that will be printed. + +{\bfx Case TTS: Parts entered in respective transposed keys, and printed in those keys in the score.} +In this method of scoring transposing instruments, parts for transposing instruments +are transposed ahead of time and +entered exactly as they will appear in the score. So to produce the printed +score this way, the pitch does not have to be changed, but the key signatures must be set +separately for each transposing instrument using the {\tt Ki} command. In the example, the alto sax is +entered in the key of G so the instrument-wise option for it is {\tt Ki2+0+1} . Note that {\tt +0} means no +further transposition is needed before printing, because the part was transposed on entry. Once +again, if a MIDI file is desired, it will come out in concert key, but just as in the previous case, +you must use the transpose option in the MIDI command {\tt IT} to undo the transpositions caused +by the {\tt K} command. For a later key change, the same full-score {\tt K} command as in the previous +case is used to change the concert key. Then the instrument-wise {\tt Ki} command, now with {\tt +0} for +the transpositions, sets the new key signatures for the transposing instruments, again using the +transposed signatures. + +{\bfx Case CCS: Parts entered in concert key, printed in score in concert key, but transposed in +separate printed parts.} +This is the easiest case of all. Nothing special needs to be done for the score, but part-only, +full-score transposition commands {\tt\%}[instrument number]{\tt K...} should be entered in the score. Then +{\bfx scor2prt} will generate a transposed part. Of course if a MIDI is made from the score it will +come out at concert pitch. For example, to transpose the alto sax part up 5 steps, initially to G +major, near the top of the score file enter {\tt\%2K+5+1} . Later, where the concert key changes to B +flat minor and the alto sax to G minor, enter simply {\tt K+0-5}, making the new concert key B flat +minor with 5 flats. When {\bfx scor2prt} is invoked to make separate parts, this will be transferred +verbatim into all parts, and then \PMX will internally adjust the signature for each transposed part +as required. + +{\bfx Making separate parts.} +In all of the cases discussed, if the patterns of commands in the table are followed, then +separate parts can be made as usual using {\bfx scor2prt}. They will +automatically come out transposed as desired. + +\medskip +%\pagebreak +{\bfx Texts of the transposition sample files:} +% Note: when editing is done, figure out how to make scripts size work without page break. +\begin{scriptsize} +%\begin{tiny} +\begin{multicols}{4} +\begin{verbatim} +%TTA.pmx +3 2 4 4 4 4 0 -2 +1 1 20 .13 +Trombone II+III +Trombone I +bbb +.\bs +Tt +TTA +Apr +I +K+2+2 +b42 d f b t b t gf df b / +b42 d f b t b t gf df b / +b42 d f b t b t gf df b / +K+0-5 +b42 c d e f gs as b / +b42 c d e f gs as b / +b42 c d e f gs as b / + + + +%CTS.pmx +3 3 4 4 4 4 0 -2 +1 1 20 .1 +Trombone +Alto Sax +Clarinet +btt +.\ +Tt +CTS +Apr +Ki2+5+1i3+1+0 +IT+0-5-1 +b42 d f b t b t gf df b / +b43 d f b t b t gf df b / +b44 d f b t b t gf df b / +K+0-5 +Ki2+5-2i3+1-3 +b42 c d e f gs as b / +b43 c d e f gs as b / +b44 c d e f gs as b / + +%TTS.pmx +3 3 4 4 4 4 0 -2 +1 1 20 .1 +Trombone +Alto Sax +Clarinet +btt +.\ +Tt +TTS +Apr +Ki2+0+1i3+0+0 +IT+0-5-1 +b42 d f b t b t gf df b / +g44 b d g t g t ef bf g / +c45 e g c t c t af ef c / +K+0-5 +Ki2+0-2i3+0-3 +b42 c d e f gs as b / +g44 a b c d es fs g / +c45 d e f g as bs c / + +%CCS.pmx +3 3 4 4 4 4 0 -2 +1 1 20 .1 +Trombone +Alto Sax +Clarinet +btt +.\ +Tt +CCS +Apr +%2K+5+1 +%3K+1+0 +I +b42 d f b t b t gf df b / +b43 d f b t b t gf df b / +b44 d f b t b t gf df b / +K+0-5 +b42 c d e f gs as b / +b43 c d e f gs as b / +b44 c d e f gs as b / +\end{verbatim} +\end{multicols} +\end{scriptsize} +%\end{tiny} + +\subsubsection{Text} + + The commands {\tt h} or {\tt l}, when placed in the first +column of an input line and followed by a blank or, for {\tt h} only, by +a signed integer, +stand for {\bfi h}{\it eader} and {\bfi l}{\it ower text}. They will put a +text string +above or below the {\it top} staff in the {\it first} bar of the block where +they are entered. The text string must be on a line of its own, +immediately following the command. The integer is a vertical shift in +\bs{\tt internote}s. + + A {\it title block} with up to three elements can be defined at the +beginning of the first input block. {\tt Tt} signals that the text +{\it on the following line} is to be set as a {\bf t}itle for the whole piece, +and it will be centered. {\tt Tc} similarly indicates a {\bf c}omposer's name, +to be set below the title and right justified. {\tt Ti} likewise stands for +an {\bf i}nstrument name, which will be set above the title, left-justified. +The text for any of these commands can be split over two or more lines +by including \bs\bs~at the location of the line break. + +{\tt Ti} will automatically be invoked by {\bfx scor2prt} when it generates +parts from a score. + +Extra vertical space can be added between the title +block and the top system by appending to {\tt Tt} a one- or two-digit +number representing the space in \bs{\tt internote}s. This only works if +{\tt Tt} is the {\it final} title block element entered. + +The {\tt D} command can be used to enter arbitrary text as described in +section~\ref{dynamics}. + +Lyrics may be entered as described in section~\ref{lyrics}.\NEW{2.73} + +\subsubsection{Page numbering, centered header text} + + If you want pages to be numbered at the top left or right, place +the command {\tt P} anywhere within the \PMX code that represents the first +page to be numbered (usually the first or second page). +{\tt P} can be followed optionally by the starting +page number and/or by {\tt l} or {\tt r}, the latter overriding the default +locations of odds on the right and evens on the left. \NEW{2.0} +There is also a special option {\tt c} for {\bf c}entered header text. +It must be the {\it last} +option in the {\tt P} command. It will define text to be printed at the top of +every page {\it after the first}. If a blank follows {\tt c}, the default +header text will +be the instrument name entered with the command {\tt Ti} . If any non-blank +character except {\tt "} follows {\tt c}, the header text will start with that +character and end at the next blank. If {\tt "} follows {\tt c}, the +header text will be everything between that and the next {\tt "} (this +permits headers containing spaces). The {\tt P} command and its options +will be ignored when making parts from a score (since page numbering +will usually be different in the score than in the parts), but page +numbering (and centered headers) for parts can be still be initiated +independently, for example with {\tt \%!P2} or {\tt \%1P2r} (see +section~\ref{scor2prt}). + +\subsubsection{Overriding certain defaults, or +getting the most from \PMXX}\label{Acommands} + +Understanding this section is important if you want to get the most out +of \PMXX. In many +cases the switches described here represent subtle but significant +improvements that have come along since \PMX was initially developed. Rather +than changing the defaults, they are treated as optional in order not to +upset the layout of older scores. For example, virtually every new score I +create begins with at least {\tt Abple}. + +As you may have guessed, it is the command {\tt A} that can be used to +override a grab-bag of default settings. The available options affect a +wide range of \PMX features: sizes +and interpretation of accidentals, +dot positions, space before the first note of every bar, space between staves, +slur package selection, vertical positioning of Type K postscript +slurs, line-breaking Type-K slurs, curvature of Type-K slurs, +naming of parts, vertical positioning of rests in 2-voice staves\NEW{2.6}, +brackets for non-beamed xtuplets, and inputting so-called +{\it normal include} files. + +{\bf Size of Accidentals.} +{\tt b} makes all accidentals +{\bf b}ig, {\tt s} makes them all {\bf s}mall. By default, big ones are used +unless unaltered spacing doesn't provide enough space. Thus the default +behavior may cause a mixture of big and small accidentals, and in fact is not +recommended. + +{\bf Relative accidentals.}\label{ArDirective} +If transposing, then the {\bf r}elative accidental convention must be used, +indicated by {\tt r}. This changes the way you enter accidentals. With +relative accidentals, the note options {\tt s}, {\tt f}, {\tt n} take on +unconventional meanings, now respectively signaling that a note should be raised +a half step, lowered a half step, or left alone {\it relative to the pitch +it would have according to the key signature}. So for example, with {\tt Ar}, +in the key of B flat major the note command {\tt bs} would cause a B natural +to be printed. By contrast, the default is +the normal, absolute convention, where the indicated pitch alteration is +relative to what the pitch would be if there were no key signature. + +{\bf Vertical position of dots.} +If there are staves with two voices, {\tt d} causes dots in the +lower one to appear on or {\it below} center, in contrast with the default. + +{\bf Gap at start of bar.} +Use {\tt a} followed by a +decimal number to override the default setting for \bs{\tt afterruleskip}, +the space before the first note in a bar. The default in \PMX is +{\tt 1}\bs{\tt elemskip}, 20 percent smaller than \MusiXTeX{}'s. + +{\bf Space between staves within a system.} +If \PMXX's vertical spacing between staves within a system is not pleasing, use {\tt I} or +{\tt i} , followed by a decimal number, to apply a scale factor to +\bs{\tt interstaff} . {\tt I} +affects all pages, {\tt i} only the current one. Shrinking the space between +staves within each system will cause the space between systems to increase, and +conversely. These options have no effect if there is only one staff per system. + +{\bf Equal space between systems.} +\label{AeDirective}\MusiXTeX~normally draws a virtual box around each system +and inserts equal vertical space between boxes. \NEW{2.3} +When objects protrude above the top staff in a system or +below the bottom one, this can lead to unequal spacing between the top staff +line in one system and the next. If you prefer that the vertical spacing +between the staves of consecutive systems be constant for the whole page, +use the {\tt e} option of the {\tt A} command. One side benefit of {\tt Ae} +is that it will prevent systems from spilling over onto extra pages, +regardless of how many systems are put on the page. When using this option, +you may occasionally want to force more vertical space between certain systems. +There is a \TeX~macro +{\tt \bs spread} that can be inserted anywhere in the system before the +desired wider gap. It has one argument, the desired extra space in +{\tt\bs internote}s. + +{\bf Stop grouping systems at top in sparse pages.} +Another \NEW{2.4}\ command affecting vertical spacing is the {\tt v} +option of the {\tt A} command (for +{\bf v}ertical). \PMX normally spreads staves +vertically over a full page, unless the white space becomes excessive, +in which case it groups all staves near the top of the page. Entering +{\tt Av} will suppress this grouping near the top, and ensure that +systems will always be spread vertically regardless of how much white +space is left. It is a toggle; the second time it is issued, the +behavior reverts to the default. + +{\bf Make some staves smaller.} +The {\tt S} +option to the {\tt A} command\NEW{2.7} allows you to specify a +different size for selected staves and their notes compared to the +global value set in the setup data. It is followed by exactly {\tt noinst} +characters, one for each instrument, selected from +{\tt 0}, {\tt -}, {\tt s}, or {\tt t} for +normal, small, small, or tiny sizes respectively. + +{\bf Postscript slurs.} +The \label{ApDirective}\NEW{2.4} command {\tt Ap} activates Type K +{\bf p}ostscript slurs. To use this +you must have {\tt musixps.tex} somewhere that \TeX~can find it, and +{\tt psslurs.pro} somewhere that {\bfx dvips} can find it. +If these files happen to be missing from your \TeX~distribution, they +can be found +\href{http://www.icking-music-archive.org/software/musixtex/musixtex.zip} +{\underline{here}}. +Several suboptions affecting Type K +postscript slurs are described here and in the following paragraphs. First, +by default these slurs and ties will not have their vertical positioning tweaked +to avoid tangencies with staff lines. To activate this type of adjustment, +use one of the suboptions {\tt +s} or {\tt +t} for +slurs or ties respectively. +(For example, {\tt Ap+s}). Be +warned that this may alter the endpoint positions from what one would normally +expect. To deactivate the adjustment, use the same command but with {\tt -} . +Another suboption of {\tt Ap} affects line-breaking slurs. Normally a full tie +is drawn at the start of the second line. +However, the suboption {\tt Ap+h} causes the use of +{\it{\bfi h}alfties} for the second part, which are flattened at their +left-hand end, and require the +special font {\tt mxsk} provided with the Type K postscript slur distribution. +It may be cancelled with {\tt Ap-h} . + +The \NEW{2.5} suboption {\tt l} (e.g. {\tt Apl}~) activates some other tweaks +and tweaking capabilities for line-breaking Type K slurs and ties. It +automatically tweaks the +horizontal positions of the end point of the first segment and the start of the +second, uses a normal tie character for both segments of a tie, and enables +further tweaking of the horizontal and vertical positions of internal endpoints +on a case-by-case basis, using options in the initial slur or tie command (see +section~\ref{lbslurs}, and the end of the fourth system in the example file +{\tt barsant.pmx}). + +Another pair of \NEW{2.5}suboptions to {\tt Ap} affects the default curvature of +Type-K postscript slurs. {\tt Ap+c} and {\tt Ap-c} will respectively increase or +decrease the default curvature of all slurs to the next level in the sequence +{\tt f, n, h, H, HH} . (Here {\tt n} stands for {\bf n}ormal.) Several levels +may be traversed by repeating the suboption, e.g., {\tt Ap+c+c} increases the +default curvature by two levels. If you try to +go outside the allowable range, a warning will be issued, the curvature will be +set to +{\tt f} or {\tt HH} , and processing will continue. See section~\ref{slurs} for +further details. + +If \NEW{2.5} your score contains Type K slurs and if you use a program such as +{\bf dviselec} to extract single pages +from a {\tt .dvi} file, you should use the suboption {\tt h} (e.g. +{\tt Aph}~) . This will cause the header file {\tt psslurs.pro} to be written +into the postscript file at the top of of every page. + +{\bf Vertical rest positioning in keyboard scores.} +The\NEW{2.6} option {\tt AK} activates special rules for vertical positioning of rests in +two-voice staves. By way of background, without this option, rests in two-voice +staves have default positions based on a simple rule that is not +context-sensitive: those in the lower voice (the one before {\tt//}) are +4\bs{\tt internote}s below their single-voice default positions, and those in +the upper line are 2\bs{\tt internote}s above the single-voice default. In contrast, the +option {\tt AK} invokes a set of context-sensitive rules to set the default +position. The baseline rule is to align the rest in a horizontal line with the +next following note in the same bar. If there is no following note in the bar, +then it is aligned with the next prior note. If there are simulataneous rests +in both voices, the old rule is applied. When the {\tt AK} option is in force, +it only affects places where there are two voices in a staff. It may be toggled +on and off at the beginning of any input block, using just {\tt AK}. When the +option is in effect, any user-defined tweaks on the height of a rest will +supersede the option for that particular rest, i.e., the tweak will be applied +relative to the single-voice default position. When {\tt AK} is in effect, the +option {\tt L} in a rest command will cause the vertical position of that rest +to be based on the {\it preceding} note, rather than the following one as is +the default. + +{\bf Names of \PMX files for parts.} +The \label{ANDirective}option {\tt N} to the {\tt A} command allows you to specify +arbitrary names for the part files generated by +{\bfx scor2prt}. Follow {\tt AN} with the part number and the new file base name in double +quotes. Immediately follow this with any number of additional part numbers and +alternate file base names in quotes. When part files are generated, {\tt .pmx} will be +appended to the requested base name. + +{\bf Gapped bracket for nonbeamed xtuplets.} +Non-beamed \label{ATDirective}\NEW{2.5}xtuplets will normally be printed with +a bracket above or below, and +a number above or below that. If you would like this number instead to be +positioned within a gap in the bracket itself, enter {\tt AT} .You must have +{\tt tuplet.tex} available to your \TeX~processor. If missing, this file +can be found +\href{http://www.icking-music-archive.org/software/musixtex/musixtex.zip} +{\underline{here}}. + +{\bf ``Include'' file.} +\PMX commands \NEW{2.5}in an external file can be included at the start of any input +block by designating the file as a {\it normal include} file, using the +command {\tt AR}[{\it filename}] . See section~\ref{ARDirective} for details. + +{\bf Positioning printed pages.} +For \NEW{2.7} printing on {\bf l}etter or a{\bf 4} paper, the command {\tt Acl} or +{\tt Ac4} will set the margins +of the printed area so it will be properly centered with no further +adjustments needed when running {\bfx dvips}. + +\subsubsection{Extra hardspace, horizontal shifts} \label{hardspace} + + Despite the author's best intentions to relieve you of the chore +of adjusting {\it any} horizontal spacing by hand, there may be some occasions +where you +will want to do it. A command starting with {\tt X} initiates one of two +types of horizontal adjustment: A {\it shift} moves one or more +characters but does not affect any other spacing anywhere; a +{\it hardspace} inserts a fixed amount of space at a particular time and +affects the horizontal positions of everything in all staves in the system. +If the command includes {\tt S}, it is a {\bfi s}{\it ingle} shift and affects +only the next note or rest. If it includes a {\tt :} it either starts or +terminates a {\it group} shift. +All {\tt X} commands except group shift terminations +must include a decimal number for the size of the offset in notehead widths. +If the number is immediately followed by +{\tt p}, then the number represents points, otherwise, notehead widths. +If there is no such number but there is a {\tt :} the command +signals a group shift termination. +Group-shift commands must occur in +start/terminate pairs, and group shifts cannot extend across a bar line. + +An {\tt X} command containing neither {\tt S} nor {\tt :} is +automatically a hardspace. + +Because horizontal spacing in parts will usually differ from that in the +score, by default the hardspace command will {\it not} be copied into parts +by {\bfx scor2prt}; however the shift commands will be copied. +These behaviors can be overridden using the methods to be described in +section~\ref{scor2prt}, Alternatively, \NEW{1.42} to help keep \PMX score +files neat +and readable, the character {\tt B} can be used within the {\tt X} command +to signify that it applies to {\bf b}oth score and part, or {\tt P} for +{\bf p}art only. + +\subsubsection{Minimum spacing between notes in crowded systems} + + \PMX does some special, complex analysis to adjust horizontal spacing +in crowded systems. By default, the minimum space between consecutive +noteheads is 0.3 notehead widths. In very special situations you may want to +change 0.3 to some other fraction. To do so, enter {\tt W. }(decimal point is required) + followed by {\tt 1}-{\tt 9} to represent the number +of tenths of a notehead width to be used as the minimum spacing. Use of this option +is demonstrated in the example file {\tt barsant.pmx}. + +\subsubsection{Page size} + + The default page size is 740 by 524 pt (10.3 by 7.3 in). To change +the height or width, use the special commands {\tt h}[{\it n}][{\it u}] or +{\tt w}[{\it n}][{\it u}] at +the beginning of the first input block. Here {\it n} is a decimal number +for the new dimension and {\it u} defines the units; {\tt i} for inches, {\tt m} for +millimeters, and {\tt p} or nothing for points. This command can be used +together with {\tt \%\%} or {\tt \%!} +(see section~\ref{scor2prt}) to give the parts made by +{\bfx scor2prt} different page sizes than the parent score. + +\subsubsection{Line, page, and movement breaks} \label{movbrk} + + It is possible to force line, page, or movement breaks anywhere. +For a line break, just enter {\tt L}[{\it n}] at +the start of an input block (in the first voice only), and the {\it n}-th +system will start there. To start page {\it m} at line {\it n}, enter +{\tt L}[{\it n}]{\tt P}[{\it m}]. You can't force a page break without +first forcing a line break. + + To force a movement break, you must first force a line break as above, +then enter {\tt M}. If a page break also occurs here, the {\tt P} must precede +the {\tt M}. Options following {\tt M} are {\tt +}[{\it integer}] to insert +vertical space in \bs{\tt internote}s before the break, +{\tt i}[{\it decimal number}] to reset the first-line indentation as a fraction +of the line width, and {\tt c}\NEW{1.41} to {\bf c}ontinue bar numbering rather +than resetting the bar number to 0. \NEW{1.4}Also, to change the {\bf n}umber +of instruments, +enter {\tt n}[{\it integer}], then the number of each instrument in their new +order, then a clef-designating character for each staff of each instrument. +(An instrument's number is simply its position in the original sequence.) +There can never be more than the original number of instruments. In this +instance, \NEW{2.5}two-digit instrument numbers must be preceded with +{\tt :} (colon). If you want to start with some number of instruments and +later increase it, you'll need to insert +a dummy page at the beginning with the full set of instruments, then start the +second page with a movement break and decrease the number there. + +Another\NEW{1.4} option after {\tt M} is {\tt r+} or {\tt r-}, which either +forces or +suppresses {\bf r}eprinting the instrument names. The default is to print +them if the number of instruments changes, but otherwise not. + + Immediately after a movement break, any desired meter changes, +key changes, or text can be entered in the normal way. + +\subsubsection{Fractional bars} + + Often if a piece starts with a pickup, the last bar may not be +complete. In such cases, it is usually possible to +place the last bar in an input block by itself, headed by a {\it blind} meter +change. +For example, if the meter had been 4/4 and there was a quarter note +pickup, leaving 3 beats in the last bar, the last bar might be coded +{\tt m3400 cd24 /}. + +\subsubsection{Stem direction of bass notes} + + By default \PMX makes stems go up for middle-line D's in bass +clef, but down for notes on the middle line of all other clefs. If +you want middle-line bass-clef notes also to have downward stems by default, +enter a {\tt B} near the beginning of the file. + +\subsection{Putting {\TeX} Commands into the {\PMX}File } \label{LitTeX} + + There are five ways to enter \TeX ~commands into the {\tt .pmx} file. +Four of +them are {\it in-line}, where the commands are entered directly; the fifth +is by way of an external file. + + The four categories of in-line \TeX~strings +differ mainly in where they will appear in the {\tt .tex} file. +(A \TeX\ {\it string} consists of a starting character, a sequence of +\TeX~commands, and a terminal character). +In the {\tt .pmx} file, +only type 4 \TeX~strings may wrap over line breaks. All in-line \TeX\ must +adhere to the 128-character limit per line, but each line can have more than +one \TeX\ command. +Type 1 begins with a single \bs\ and will appear in the {\tt .tex} file +right before the \TeX +~command for the next note or rest in the {\tt .pmx} file. Multiple +type 1 strings associated with the same note or rest are allowed, although +the total length may not exceed 128 characters (so there is generally no +reason not to combine all \TeX\ commands for a single note into a single +type 1 string). + +A type 2 string begins with \bs\bs\ +and will appear near the top of the {\tt .tex} file, right before +\bs{\tt startmuflex}, regardless of where it appears in the {\tt .pmx} file. +A type 3 string starts with \bs\bs\bs\ and will appear right before the +{\tt\bs xbar} +or {\tt \bs alaligne} at the beginning of the current input block, before the +first barline of the block. While individual type 2 and 3 strings may not wrap +over line breaks in the {\tt .pmx} file, strings of like type on consecutive +lines will appear together in the {\tt .tex} file. +Types 1, 2, and 3 strings must end with \bs\ (backslash-space). +This means that they may not contain +the \TeX\ macro \bs\ (backslash-space). Finally, each type 2 or 3 string +should be isolated on a line of its own, and should be started in column 1. + +Type four permits multiple +lines of arbitrary text to be entered at the top of the {\tt .pmx} file; +they will be transferred verbatim to the top of the {\tt .tex} file. Type +four is initiated with {\tt ---} alone as the top line of the {\tt .pmx} +file. Then follows any text on any number of lines, until the next line +starting with {\tt ---} terminates the block to be transferred. + +The only other distinction among the types of in-line \TeX\ strings arises when +{\bfx scor2prt} is used to make separate parts +(see section~\ref{scor2prt}): +types 2-4 will be copied into all parts, while type 1 only goes into its +original part. + +If you should want to enter a type-1 (note-based) string longer than +128 characters, you could use a series of type-2 or -3 strings to define +a \TeX\ macro containing the desired commands. + + \PMX provides one further option for entering an unlimited set of +\TeX ~commands +just before \bs{\tt startmuflex}, and before any Type 2 in-line \TeX ~strings. +Simply put the commands into a text file named [{\it basename}]{\tt .mod} +in the texinput directory. It will then automatically be +entered with an \bs{\tt input} command. This feature is retained mainly for +backward compatibility; it has been essentially replaced by the various options +for in-line \TeX ~strings. + +\subsection{Figured Bass} + + Figure commands are entered {\it after} their associated note commands. +They only work in the first (lowest) voice, and in any one other voice\NEW{2.6}. +Enter the characters as +they would appear from top to bottom, and as you might pronounce them, +e.g., {\tt 64} or {\tt 73}. Flats here are {\tt -} (minus), sharps are +{\tt \#}, and +naturals {\tt n}, {\it before} the number (if there is a number) (notice +the characters are different here than in notes). +So for example {\it sharp third} is {\tt \#3}, just a sharp is {\tt \#}, {\it six (over) +flat five} is {\tt 6-5}, and {\it sharp six (over) 4} is {\tt \#64}. +In addition to the symbols just described, the following special symbols +are available: {\specfig 2}, {\specfig 4}, {\specfig 5}, {\specfig 6}, {\specfig 9} . +\NEW{2.6}To use them, you must have the font +\href{http://www.icking-music-archive.org/software/musixtex/add-ons/figbas.zip}{\underline{\tt cmrj}} +in your \TeX~system, and then just put an {\tt s} after the number. + +The program +positions all the figures for each system below the lowest staff of that +system, with their tops aligned, and just low enough to clear the +lowest beam, notehead, or stem that could interfere. If you would like to +change the vertical alignment for the remainder of the staff starting at a +figure after the first, \NEW{2.71}append {\tt v}[{\it n}], where {\it n} is an +integer representing the vertical shift in \bs{\tt internote}s, which may +have a minus sign. + +If you want a figure to +align horizontally in the second tier, insert the placeholder figure +{\tt\_} (underscore) before the one you want lowered. This is equivalent to +lowering the figure stack by 4 \bs{\tt internote}s. +\NEW{2.6}If you want to {\it raise} the entire stack by an integral number of +\bs{\tt internote}s, append {\tt +} and the number. This can be combined with +the placeholder figure {\tt\_} to provide full control over the vertical +position of the stack. + + Sometimes you may need to enter a figure when there's no bass +note sounding. To do this, just after the most recent bass note enter +{\tt x}, followed by a two single digits (the first is a repeat count; the +second a time value, i.e., {\tt 2,4,8,1,} or {\tt 3}), immediately followed by a figure symbol +as defined in the previous paragraph. This will +offset the figure from the associated note by the specified time +value. For example, if the lowest voice contained {\tt c03 x3465}, there +would be a whole-note c, and 3 quarter notes later a figure 65 below +the staff. + + There is also a {\it continuation} command, a zero followed immediately +by another \NEW{2.4} +unsigned number. This produces a horizontal line under the bass note, starting +just to the left and extending to the right by the given number of +\bs{\tt noteskip}s. The height and length of the line are set by the current +note's level and \bs{\tt noteskip} respectively. These \NEW{2.4} can be mixed in with +other figures to produce vertical stacks. If another figure follows in the +same command, use {\tt:} as a separator. +If \bs{\tt noteskip} changes or a note drops +below the starting level before the line ends, it is possible to trick +\PMX by entering separate {\tt 0}[{\it n}] commands under each consecutive note; \PMX +will automagically join them together at the same height +(thanks to Werner Icking for this idea). + + If there are figured bass commands in a {\tt .pmx} file but +you want them to be ignored, then enter the command {\tt F} at the +beginning of the body of the file. This feature would most often be +used in the form {\tt \%1F} +(see section~\ref{scor2prt}), which makes a +separate bass part with no figures. + + Figured bass commands will not be altered in any way under +transposition. There is no universal set of interpretations of figured bass +symbols, so no automatic transposition is possible. + +\subsection{Macros} + + A \PMX macro is a single command that stands literally for any +any string of characters that may occur in the input file (sorry, no +variables). It may be useful if you need to repeat the same string later. +There is no practical length limit. + +To +{\bfi r}{\it ecord} a macro, type {\tt MR}{\it n} where {\it n} is between +1 and 20. +Everything you then type will be processed normally as well as stored, +until you enter the command {\tt M}. The next time you need to enter the same +string, just type {\tt MP}{\it n} to {\bf p}lay back the macro. + +To just {\bf s}{\it ave} a macro without having \PMX process it as you +enter it, start it with {\tt MS}{\it n}. + +Macros can be redefined at will. \PMX will print a warning whenever this +occurs. + +If you use macros and want to make separate parts, some care is necessary. +{\bfx Scor2prt} will only transfer {\tt MR} macros into the part where they +originated, but will transfer {\tt MS} macros into all parts. + +\subsection{Include Files}\NEW{2.5}\label{ARDirective} +{\it Include} files are separate text files + containing arbitrary (but contextually appropriate) sequences of + valid \PMX commands. By using the techniques described in this section, + the commands in an include file can be inserted at any desired + place in the virtual \PMX file that the code processes. + They will always be syntax-checked. + +There are two types of include files, {\it global} and + {\it normal}. There can only be one global include file and it must be named + {\tt pmx.mod}. If activated, its contents will always be inserted right after + the setup data. + To activate it, two conditions must be met: (1) an environment variable + {\tt PMXMODDIR} must be defined to contain a valid path, ending with {\tt /} or + \bs~; (2) a file named {\tt pmx.mod} must be present in the directory so defined. + If {\tt PMXMODDIR} is not set, or if it is defined but there is no file + {\tt pmx.mod}, then processing will proceed as usual. + + Normal include files + can have any name and do not require any environment variable to be set. + They are activated by the PMX command {\tt AR[{\it filename}]} , placed in the + .pmx file + at the location where the included lines are to go. It will generally + only make sense to place this command at the beginning of an input block. + \PMX will first check + for the file as pointed to by [{\it filename}], which may contain a complete + or partial pathname preceding the actual file name. If [{\it filename}] is not + found, then \PMX will look for {\tt \%PMXMODDIR[{\it filename}]}, i.e., it will check + the directory defined by {\tt PMXMODDIR} if {\tt PMXMODDIR} has been set. However, + it is not necessary to define {\tt PMXMODDIR} to use a + normal include file. There may be any number of normal include files. The same + file may be used multiple times. Include files cannot contain references to + other include files via the {\tt AR} command; if you try to do that + your computer will + explode. The following information regarding all activated include + files will be printed both to the screen and to the .pml file: notice of + opening or closing, echo of the contents, error messages pertaining to syntax + errors in the included \PMX commands, and an error message if \PMX cannot find + a referenced normal include file. In the latter two cases \PMX will stop. + +\subsection{Batch Processing} + +Due \NEW{2.0} to the number of different programs that must be run in sequence +to produce a printed sheet of music with the \MusiXTeX{} system, most users +prefer to use a batch script to control the process. Since batch commands are +platform-dependent we will not provide examples here, but will mention +several \PMX features that can facilitate batch processing. + +First, whenever {\bfx pmxab} terminates due to a syntax +error, the exit code is set to 1. There are various ways of detecting this +with batch commands, then acting accordingly. +\NEW{1.4} Second, {\bfx pmxab} always writes a file +{\tt pmxaerr.dat} containing a single number: 0 if it exited normally, +otherwise the line number in the {\tt .pmx} file where the syntax +error was. With advanced batch programming techniques, this file can be +opened and read, and if there was an input error, a text editor can be +opened and the input point placed on the line with the error. + +There have been several requests to allow \PMX to keep running even +after it detects an input error. +This has not been done because in many cases any error messages after +the first one would be meaningless, or worse, uncorrected errors could +cause crashes. In any event, all the output from {\bfx pmxab} will be +stored in the log file [{\it jobname}]{\tt.pml}. + +%\setcounter{secnumdepth}1 +\section{Making Parts from a Score} \label{scor2prt} + + Separate parts can be made by running {\bfx scor2prt} and entering the +basename when prompted. The program will create {\tt noinst} separate +{\tt .pmx} files, one for each instrument. By default the files will be named +[{\it basename}][{\it n}]{\tt .pmx}, where [{\it n}] +is the sequential position of the instrument. If desired, part file names can +be customized with {\tt AN} as described in section~\ref{ANDirective}. + + In this section we describe how to control the layout of the +parts separately from that of the score, but by using commands +that are placed in the {\tt .pmx} file for the score. This eliminates the +need for ever editing the {\tt .pmx} files for the parts separately. You +can make all corrections in the file for the score, and then re-run +{\bfx scor2prt}. + + Normally all lines starting with {\tt \%} in the parent {\tt .pmx} are +transferred into all the parts. However, if a line has {\tt \%\%} in +columns 1-2, both it {\it and the following line} will be ignored when +making parts. If the ignored line contains only {\tt h}~, {\tt l}~, + {\tt Tc}~, {\tt Ti}~, or {\tt Tc} to start, +then one additional line will be ignored. + + Conversely, if a line begins with {\tt \%!} then it will be ignored as +usual in creating the parent {\tt .tex} file, but after stripping the first +2 characters the rest will be put in the {\tt .pmx} file for {\it all} the +parts. + +To enter a line into the score file that is only to be transferred to one part, +begin the line with \NEW{2.6} {\tt\%}{\it h}, where {\it h} is an {\it extended +hexadecimal digit} representing the part number from 1 to 24 +({\tt1,2,...,9,a,b,c,...,n,o}). The first +two characters will then be stripped and the rest transferred to the desired part. +For example, to force a line break to system 15 and a page +break to page 2 in part 11 only, enter {\tt \%bL15P2}. The use of the extended hex +digits {\tt a-o} creates a potential incompatibility with prior versions. +To minimize this, the +character after ``{\tt\%}" will {\it only} be interpreted as a part number if +it represents a number less than or equal to {\tt noinst}; otherwise the entire +line will be treated as an ordinary comment and transferred to all parts as +a comment. + + Although only permitted in the first voice in the score, the +following commands with all their options will automatically be copied +into all parts (unless the preceding line has {\tt \%\%}): + {\tt m, V, R, A, h, w, K}. Literal \TeX\ strings of types 2-4 will also be +copied into all parts, while type 1 will only go into its original part. + +User-defined hardspaces ({\tt X} without {\tt :}) are handled specially. By +default they are not copied into parts. There are two ways to circumvent this. +One way to insert hardspace {\it x} into part +{\it n} is to place in the score, on a line of its own, the command +{\tt\%}[{\it n}]{\tt X}[{\it x}] . The \NEW{1.42} other way is with options +in the {\tt X} command in the score: {\tt B} causes the hardspace to be +used in {\bf b}oth score and parts; {\tt P} puts it into the {\bf p}art but not +the score. + +Instrument-wise \NEW{2.7} transposition commands (see section \ref{transpose}) +are also handled specially. +When {\bfx scor2prt} encounters {\tt Ki}[{\it n}] (for instrument {\it n}) in +the score, it transfers the transposition information (transposition amount and +key signature) for that instrument into +the corresponding part, replacing {\tt Ki} by {\tt K} and keeping only the +information for instrument {\tt n}. + +Lateral shifts ({\tt X}[$\dots$]{\tt :}) will be handled normally, +staying with their original voice. + + By default the total number of systems in each part will be the +same as in the score. If you want to override this, there is a command +{\tt S}[{\it n}] (where {\it n} is the desired number of systems), which +can only appear at +the beginning of the first input block. This can be used after {\tt \%!} +to affect all the parts, or after {\tt \%}[{\it h}] to affect just part {\it h}. + {\bfx Scor2prt} will also +compute how many pages it thinks each part should have, and enter that +in the startup data for that part. If you wish to override that, then +in the {\tt .pmx} file for the score, insert for example {\tt \%3S14P2} to +force the third part to have 14 systems and 2 pages (you cannot override the +number of pages without first overriding the number of systems). + + A \NEW{2.0} musicsize of 20 is the default in all parts. This may be +overridden with the option {\tt m} in the command {\tt S}; e.g., +{\tt \%2S15m16} . + + As already noted, a {\tt P} command for page numbering in the parent +file is ignored when making parts. To initiate page numbering in the +parts, use for example {\tt \%!P} anywhere within the \PMX code representing +the first page of the parts (from \TeX 's standpoint the command must occur +between the beginning and end of the page on which the numbering is to begin). +It \NEW{2.0} will often be useful in this case to use the option {\tt c} , +which by default causes the instrument name to be centered in small type at +the top of every page after the first. + +Note the distinctions among the various usages of {\tt P}: as an option with +{\tt S}, it sets the total number of pages in a part; as an option with +{\tt L}, it forces a page break; and as a command on its own, it controls page +numbering and centered headings. + +MIDI \NEW{2.2} commands, i.e., those starting with {\tt I}, will never be +copied into parts, unless they are in a special comment line as just described. + + One function of {\bfx scor2prt} is to condense consecutive bars of rest +into a single group of special printed characters with a number above it. +The command {\tt rm} defines such a {\bf m}ulti-bar {\bf r}est as described +in section~\ref{MultibarRest}. +{\bfx Scor2prt} will automatically insert {\tt rm} commands into the +{\tt .pmx} files +for the parts where appropriate. However, for this feature to work, +the {\it first} full-bar rest in the sequence {\it must} have its duration +explicitly defined in the parent {\tt .pmx} file, either with a digit or +with {\tt p}. I.e., the feature will not work if the first rest in the +sequence inherits its duration from the previous note. + +Using the special \PMX commands listed in this section, +augmented where needed with literal \TeX ~commands, it is possible to store +{\it all} the information for both the score and the parts in a single +{\tt .pmx} file. This greatly simplifies the editing process, since +both the score and the part can be corrected at once, and parts need not be +re-edited each time they are regenerated from the score. + +\section{Making MIDI Files}\label{MIDI} + +\PMX has an elementary capability to create MIDI files. It is intended mainly +to aid in editing scores, so it does not have advanced facilities one would +want for making musically satisfying sound files. + +As \NEW{2.6} of version 2.6, \PMX can only generate MIDI files for scores with +15 or fewer voices. + +Entering the command {\tt I} before any notes have been entered +will cause a MIDI file [{\it jobname}]{\tt.mid} to be +generated in the current directory. Options may follow, without spaces. They +are defined in the following paragraphs. Multiple +options can be combined in one {\tt I} command. +{\tt I} commands can appear later in the file as well, but only at the start +of an input block. Sometimes the order of the +options matters, determining for example whether or not a user-defined pause +is included inside a macro block. + +{\tt t}{\it x} sets the tempo to {\it x} quarter notes per minute. +Default is 96. You can change tempos as often as you like, but only at the +start of an input block (as with all MIDI commands). + +{\tt i}{\it i1i2...in} assigns MIDI instruments {\it i1,i2,...,in} to the +respective \PMX instruments. The default is harpsichord, of course. If +you use this option, you must specify {\it all} instruments. +Each {\it in} is either +a 2-letter abbreviation or an integer between 1 and 255. Acceptable +abbreviations are listed below. Numbers and pairs of letters may be mixed, +but consecutive pairs of numbers must be separated by {\tt :} (colon) . +This option can only be exercised once per file. +Also, the number of instruments cannot change during a piece. + +The \NEW{2.7} number of arguments following suboption {\tt i}, as well as the next +three described suboptions, must in fact equal the number of {\it instruments}. Before +version 2.7, it was the number of {\it staves} (despite the incorrect +description in the manual!) These numbers may differ and this creates a +backward incompatibility. Hoping this won't cause too much distress, +I've enhanced the real-time error messages. + +{\tt v}{\it i1}:{\it i2}:{\it...}:{\it in} assigns MIDI \NEW{2.3} velocities +to each instrument. The colons are required. Values may range from 1 to 127. +The default is 127. + +{\tt b}{\it i1}:{\it i2}:{\it...}:{\it in} assigns MIDI \NEW{2.3} balances to +each instrument. The colons are required. Values may range from 1 to 128. +The default value is 64, which represents the center. Smaller numbers favor +the left stereo channel; larger ones the right. + +{\tt T} allows transposing any instrument by a selected number of steps \NEW{2.7} + ({\tt\bs internote}s). +It must be followed by exactly {\tt noinst} signed integers representing the +amount of transposition for each instrument in order. In practice it is useful +in two situations (1) To transpose a MIDI output up or down by one octave +(7 {\tt\bs internote}s); and (2) when a transposing instrument is printed +in the transposed key in the score after having issued {\tt Ki}, to undo +the transposition in the MIDI. + +{\tt M} initiates a macro operation. This is used for repeats, da capo's, etc. +Macros must have ID numbers between 1 and 20. Operations are start record +macro {\it i}: {\tt MR}{\it i} ; end recording: {\tt M} ; and playback (insert) +macro {\it i}: {\tt MP}{\it i} . Only one macro can be active at a time, +recording or playing but not both. If you try nesting or overlapping macros, +your computer will become psychotic. + +{\tt p}{\it x} inserts a pause of {\it x} quarter notes. Decimals are +allowed, but will be rounded to the nearest sixteenth note. + +{\tt g}{\it i} sets the MIDI gap to {\it i} MIDI clock tics. This is a silence +inserted at the end of every note, while decreasing the sounding duration +by the same amount. The default is 10, which is 2/3 of a 64th note. + + The MIDI module does not recognize graces, ornaments, repeats, voltas, or +segnos. The only ties that are recognized are those using {\tt s} or {\tt (} +alone, with no explicit ID number. Key signatures, +time signatures (meter) and instrument names will be written into the MIDI file, +the latter as track names. This will have no effect whatsoever on audible +output but will affect on-screen appearance of some MIDI file players +and editors. Location of the \PMX key-change and meter-change commands +relative to MIDI macro delimiters in the source will affect (in the obvious +way) how these data are passed to such programs. + +The MIDI file generator does not yet support changing the number of +instruments in midstream. Doing so will cause unpredictable results. + + The instruments are a subset of ``The General MIDI Instrument +Specification." Of course how they sound depends on your hardware and software. +Instruments not listed below can still be used but must be specified by number. +The numbers listed here are from the 1-128 range; when passed to the MIDI file +they are reduced by one. + +%\def\toc#1#2{\hbox to 3.1in{{#2}\leaderfill{#1}}} +\def\tentry#1#2#3{\hbox to 2in{ +\hbox to .24in{\tt #1\hfill}\hbox to 1.7in{#2 (#3)\hfill}\hss}} + +\null +\hbox to 6.5in{\vbox to 1.7in{ +\tentry{pi}{Acoustic Grand Piano}{1} +\tentry{rh}{Rhodes Piano}{5} +\tentry{ha}{Harpsichord}{7} +\tentry{ct}{Clavinet}{8} +\tentry{ma}{Marimba}{13} +\tentry{or}{Church Organ}{20} +\tentry{gu}{Acoustic Nylon Guitar}{25} +\tentry{ab}{Acoustic Bass}{33} +\tentry{vl}{Violin}{41} +}\hss\vbox to 1.7in{ +\tentry{va}{Viola}{42} +\tentry{vc}{Cello}{43} +\tentry{cb}{Contrabass}{44} +\tentry{vo}{Synth Voice}{55} +\tentry{tr}{Trumpet}{57} +\tentry{tb}{Trombone}{58} +\tentry{tu}{Tuba}{59} +\tentry{fr}{French Horn}{61} +\tentry{so}{Soprano Sax}{65} +}\hss\vbox to 1.7in{ +\tentry{al}{Alto Sax}{66} +\tentry{te}{Tenor Sax}{67} +\tentry{bs}{Baritone Sax}{68} +\tentry{ob}{Oboe}{69} +\tentry{ba}{Bassoon}{71} +\tentry{cl}{Clarinet}{72} +\tentry{fl}{Flute}{74} +\tentry{re}{Recorder}{75} +}} + +\section{Limits} + +For simplicity in writing the program, \PMX has numerous variables with +fixed dimensions. In most cases there are no checks against these limits +(hey, I've got more important things to program), so +occasionally there may be hangups due to exceeding a dimension. +Any of these can potentially be increased by making a request via the +mailing list. However, before making such a +request, try working around the problem by +breaking the input into smaller blocks. + +\subsection{Limits on quantities that a user can control} + +(The user can control the {\it number} of these items, but cannot control +the {\it limit on the maximum number} of them.) + +%\ \ \ \ \ 128 characters per input line. +128 characters per input line. + +24 \NEW{2.6} staves. + +2 voices per staff. + +24 \NEW{2.6} voices per system. + +125 systems. + +600 bars. + +40 forced line breaks. + +10 forced page breaks. + +18 key changes. + +20 pages. + +600 \NEW{2.6} notes per input block. + +15 bars per input block. + +101 slurs per input block. + +74 figures (figured bass) per input block. + +37 grace note groups per input block. + +74 notes in grace note groups per input block. + +52 literal \TeX\ strings per input block. + +6 voltas per input block. + +24 \NEW{2.6} trills per input block. + +62 chordal notes (non-spacing) per input block. + +8 beams per voice per bar. + +40 \NEW{2.5}forced beams per voice per input block. + +10 clef changes per voice per input block. + +24 notes per beam. + +24 notes per xtuplet. + +41 text-dynamic strings per input block.\NEW{2.5} + + +\subsection{Limits not under immediate user control} + +% Need all the spaces because this damn format insists on left-justifying +% first line of *first* paragraph in a section.. +% +\ \ \ \ \ \kern-1pt2000 \bs{\tt notes} groups. + +20 \bs{\tt notes} groups per bar. + +20 inserted standard anti-collision spaces (not xtuplet or end-of-bar) per bar. + +20 inserted anti-collision spaces within xtuplets per bar. + +19 inserted anti-collision end-of-bar hardspaces per system. + +83 inserted anti-collision end-of-bar hardspaces. + +400 inserted standard anti-collision spaces per system. + +100 inserted anti-collision spaces within xtuplets per system. + +1000 inserted standard anti-collision spaces. + +200 inserted anti-collision spaces within xtuplets. + +24576 \NEW{2.2} bytes of MIDI output data per voice. + +\section{Closing Notes} + +\subsection{About the Example Files} + +{\tt most.pmx} contains examples of most of the \PMX commands, and a few +programming tricks, including examples in the last line of beam groups whose +notes vary widely in pitch. The printed +output displays the \PMX commands near to the resulting typeset characters. +It is more +useful to look at the printed output rather than the source file, since the +file is littered with in-line \TeX ~needed to output the text strings +representing the \PMX commands. +{\bfx WARNING:} Do not try to play this music; it could be hazardous. + +{\tt barsant.pmx} contains the first movement of a recorder sonata by the +Italian Francesco Barsanti (1690-1772). It demonstrates many of \PMXX 's +strong points in a ``battlefield'' situation: figured +bass, complex beaming patterns, xtuplets, and +automatically adjusted horizontal and vertical spacing in crowded scores. +In fact, +this single-page score pushes the limits of vertical and horizontal crowding. +To get the final result, it makes subtle adjustments using various available options: +{\tt Ae} for equal space between systems, {\tt AI1.1} to increase the vertical +space between staves in a system, {\tt Apl} to activate postscript slurs and +special treatment of line-breaking slurs/ties (note slur at end of fourth +system), and {\tt W.5} to increase minimum space between noteheads so the 64th +notes don't touch each other. This is also a +good score to try making parts with {\bfx scor2prt}. A special command +{\tt \%2S9} is used to increase the number of systems in the recorder part. + +{\tt mwalmnd.pmx} is an Allemand for harpsichord by the German +Matthias Weckmann +(1616-1674). It uses many techniques peculiar to keyboard scores, most notably +two voices per staff. + +{\tt netsoos.pmx}\NEW{2.73} is an example with lyrics, including several inline \TeX\ +commands to enhance the layout. + +{\tt staffcrossall.pmx}\NEW{2.74} contains examples of staff-crossing chords. Some are +single-stemmed, some are beamed non-xtuplets, and finally beamed xtuplets. + +\subsection{A Benign Bug} + + When \TeX 'ing the output of \PMX you will usually get an {\tt Underfull +\bs vbox} message at the end of each page. This is due to my using +\bs{\tt eject} at the end of every page, which automatically spaces the +systems vertically without having to fiddle with \bs{\tt staffbotmarg}. As far +as I know, the +warning is benign, and may be ignored. + +\subsection{Where to Get Help} \label{where} + +The main home of \PMX on the internet is the software section of the +\href{http://icking-music-archive.org}{\underline{Werner Icking Music Archive}}. This +site also links to a mailing list devoted to \MusiXTeX\ and related programs including +\PMX. The denizens of this list are always willing to answer questions about any +aspect of the software. New users are strongly advised to take advantage of this +resource. + +\subsection{Acknowledgments} + + To Daniel Taupin, Ross Mitchell, and Andreas Egler for creating +\MusiXTeX{}; to Olivier Clary for suggesting a crucial modification in +the note-entry scheme; +to my colleague John DiPol (a non-musician!) for the idea of using binary masks +to define beam groupings; +to Joel Hunsberger for unraveling some deep \MusiXTeX~tangles; +to Dirk Laurie +for making \PMX accessible to vocal music by creating {\tt\bs pmxlyr} +and {\bfx M-Tx}; +to Stanislav Kneifl and Hiroaki Morimoto for developing the postscript +slur packages; to +Christian Mondrup, Andre Van Ryckeghem, Christof Biebricher, Joerg Anders, +Olivier Vogel, and other denizens of the TeX-music mailing list +for first-class bug-finding and support in responding to queries about +\PMX on the mailing list; to Luigi Cataldi, Olivier Vogel, Christof +Biebricher, and Cornelius Noack for producing translated and enhanced +\PMX tutorials; and to Bob Tennent for maintaining the software section +of the web site. +Finally, I want to mention again the invaluable contributions by +Werner Icking: his exhaustive beta testing, +uncanny bug-finding, continuing encouragement, and promotion +of \PMX right up until his sudden and premature departure from this +earthly realm. + +\end{document} diff --git a/Master/texmf-dist/scripts/pmx/pmx2pdf.lua b/Master/texmf-dist/scripts/pmx/pmx2pdf.lua deleted file mode 100755 index 41cff58cc7f..00000000000 --- a/Master/texmf-dist/scripts/pmx/pmx2pdf.lua +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env texlua - -print ("The pmx2pdf[.lua] script has been retired; please switch") -print ("to the musixtex script, which now processes .pmx files.") - diff --git a/Master/texmf-dist/tex/generic/pmx/pmx.tex b/Master/texmf-dist/tex/generic/pmx/pmx.tex index 3dcd94e4391..2ea890a3614 100644 --- a/Master/texmf-dist/tex/generic/pmx/pmx.tex +++ b/Master/texmf-dist/tex/generic/pmx/pmx.tex @@ -4,7 +4,7 @@ %% %% %%%%%%%%%%%%%%%%%%%%%%% \ifx\pmxversion\undefined\else\endinput\fi -\def\pmxversion{2.74}\def\pmxdate{4 Feb 20} +\def\pmxversion{2.74}\def\pmxdate{20 Feb 16} % 2.73 4 Feb 16 Fix \pmxclefsym to include \smalltreblelowoct % 2.73 Added \pmxlyr command. % 2.619 At movement break, directly set \nbinstruments in \newmovement; diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 65b16af933b..2965d908023 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -860,7 +860,6 @@ chomp ($Build = `cd $Master/../Build/source && pwd`); 'pl', "&MAKEflatten", 'plain', "die 'skipping, just plain.tex, rest in knuth-lib", 'pl-qx', "&MAKEplqx", - 'pmx', "die 'need to check sources!!", 'pointRuler', "die 'skipping, requires compilation'", 'poltawski', "&MAKEcopy", 'polyglossia-kannada', "die 'skipping, now in polyglossia proper'", diff --git a/Master/tlpkg/tlpsrc/pmx.tlpsrc b/Master/tlpkg/tlpsrc/pmx.tlpsrc index 5b58c535455..af212821e9d 100644 --- a/Master/tlpkg/tlpsrc/pmx.tlpsrc +++ b/Master/tlpkg/tlpsrc/pmx.tlpsrc @@ -1,5 +1,4 @@ binpattern f bin/${ARCH}/pmxab -binpattern f bin/${ARCH}/pmx2pdf binpattern f bin/${ARCH}/scor2prt # docpattern +f texmf-dist/doc/man/man1/pmxab.* -- cgit v1.2.3