From cae3696c5c283a4f1ca61c5bab8a0f6454dd36e5 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 8 Oct 2023 20:55:34 +0000 Subject: musixtex (8oct23) git-svn-id: svn://tug.org/texlive/trunk@68484 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/generic/musixtex/ChangeLog-136.txt | 7 + .../doc/generic/musixtex/ChangeLog-137.txt | 5 + Master/texmf-dist/doc/generic/musixtex/README | 4 +- .../texmf-dist/doc/generic/musixtex/musixdoc.pdf | Bin 1437432 -> 1448431 bytes .../doc/generic/musixtex/musixdoc/extensions.tex | 85 +++++++++++ .../doc/generic/musixtex/musixdoc/frontmatter.tex | 2 +- .../generic/musixtex/musixdoc/miscellaneous.tex | 2 + .../doc/generic/musixtex/musixdoc/smaller.tex | 2 +- .../texmf-dist/tex/generic/musixtex/musixmtab.tex | 166 +++++++++++++++++++++ .../texmf-dist/tex/generic/musixtex/musixtex.tex | 42 ++++-- 10 files changed, 298 insertions(+), 17 deletions(-) create mode 100644 Master/texmf-dist/doc/generic/musixtex/ChangeLog-136.txt create mode 100644 Master/texmf-dist/doc/generic/musixtex/ChangeLog-137.txt create mode 100644 Master/texmf-dist/tex/generic/musixtex/musixmtab.tex diff --git a/Master/texmf-dist/doc/generic/musixtex/ChangeLog-136.txt b/Master/texmf-dist/doc/generic/musixtex/ChangeLog-136.txt new file mode 100644 index 00000000000..06ac3fee83f --- /dev/null +++ b/Master/texmf-dist/doc/generic/musixtex/ChangeLog-136.txt @@ -0,0 +1,7 @@ + +Changes from MusiXTeX 135 to 136: + + * Support for Turkish classical music accidentalsi; see musixmkm.tex. + * Re-define \hlthick to produce thicker ledger lines. + * Provide thinner accidentals; see musixthacc.tex. + * Thicker Postscript hairpins. diff --git a/Master/texmf-dist/doc/generic/musixtex/ChangeLog-137.txt b/Master/texmf-dist/doc/generic/musixtex/ChangeLog-137.txt new file mode 100644 index 00000000000..2f62d7a0e9c --- /dev/null +++ b/Master/texmf-dist/doc/generic/musixtex/ChangeLog-137.txt @@ -0,0 +1,5 @@ + +Changes from MusiXTeX 136 to 137: + + * added small ss fonts + * added extension library musixmtab.tex supporting "modern" tablature diff --git a/Master/texmf-dist/doc/generic/musixtex/README b/Master/texmf-dist/doc/generic/musixtex/README index 4047ef57262..001f12eddad 100644 --- a/Master/texmf-dist/doc/generic/musixtex/README +++ b/Master/texmf-dist/doc/generic/musixtex/README @@ -1,4 +1,4 @@ -This is MusiXTeX, version 1.36 (2023-01-11). +This is MusiXTeX, version 1.37 (2023-10-07). MusiXTeX is a TeX-based system for typesetting music. The main author was Daniel Taupin, who died in a climbing @@ -87,4 +87,4 @@ conformance to the GNU General Public License (Version 2, later version. This distribution is maintained by Bob Tennent -rdt(at)cs(dot)queensu(dot)ca. +rdtennent(at)gmail(dot)com. diff --git a/Master/texmf-dist/doc/generic/musixtex/musixdoc.pdf b/Master/texmf-dist/doc/generic/musixtex/musixdoc.pdf index adbcbfc912a..c01420e9c05 100644 Binary files a/Master/texmf-dist/doc/generic/musixtex/musixdoc.pdf and b/Master/texmf-dist/doc/generic/musixtex/musixdoc.pdf differ diff --git a/Master/texmf-dist/doc/generic/musixtex/musixdoc/extensions.tex b/Master/texmf-dist/doc/generic/musixtex/musixdoc/extensions.tex index d2bdd3d75ad..c11c389efa0 100644 --- a/Master/texmf-dist/doc/generic/musixtex/musixdoc/extensions.tex +++ b/Master/texmf-dist/doc/generic/musixtex/musixdoc/extensions.tex @@ -1689,6 +1689,91 @@ These are generated by, respectively, \end{tabular} \end{list} + \section{musixmtab}\index{tablature}\index{musixmtab@{\tt musixmtab.tex}}\label{mtab} + +Modern instrumentalists of string instruments (guitar, banjo, mandolin, etc.) +use a hybrid form of tablature in which notes have (downward) stems and beams attached.% +\footnote{It seems this ``modern'' form of tablature was introduced by Pete Seeger in his 5-string banjo +instruction book, first published in 1948.} +The \verb\musixmtab\\index{musixmtab} package combines traditional Gelten-style tablature notation +already in \musixtex\ with the stems and beams of standard music notation. +It is assumed that there is at most one beam (beam number $0$) and that all stems are downward. + +In the following commands, +\{$s$\} is a string number (counting from the top) and \{$n$\} is a numerical note (i.e., fret number). + +\begin{center} +\begin{tabular}{ll} +\keyindex{uh}\{$s$\}\{$n$\} & a half note (boxed, to differentiate from a quarter note)\\ +\keyindex{zuh}\{$s$\}\{$n$\} & a non-spacing stemless half note\\ +\keyindex{uq}\{$s$\}\{$n$\} & a quarter note (with a centered stem)\\ +\keyindex{uc}\{$s$\}\{$n$\} & an eighth note (with a flag)\\ +\keyindex{ucc}\{$s$\}\{$n$\} & a sixteenth note (with a double flag)\\ +\keyindex{zu}\{$s$\}\{$n$\} & a non-spacing stemless quarter, eighth or sixteenth note\\ +\keyindex{uib}\{$s$\}\{$l$\} & initiate a single beam; $s$ is the starting string and $l$ is the slope\\ +\keyindex{uibb}\{$s$\}\{$l$\} & initiate a double beam; $s$ is the starting string and $l$ is the slope\\ +\keyindex{ub}\{$s$\}\{$n$\} & a beamed note\\ +\keyindex{unbb} & increase the beam multiplicity to 2\\ +\keyindex{utbb} & decrease the beam mutiplicity to 1 after the following note\\ +\keyindex{utb} & terminate the beam after the following note\\ +\keyindex{utq}\{$s$\}\{$n$\} & terminate the beam after this note\\ + +\end{tabular} +\end{center} +Conventional \musixtex\ commands such as \verb|pt| and \verb|arpeggio| may be used but arguments must reference \musixtex\ note +designations rather than string numbers. + +Here is an example, {\it Cripple Creek}, for 5-string banjo in standard G tuning, clawhammer style: + +\begin{music} +\parindent=2ex +\input musixmtab +\setclefsymbol1\tabclef\setsize1{\largevalue}\setsign10 +\setname1{\tabstringfnt\baselineskip=1.2\internote% +\vbox{\hbox{D}\hbox{B}\hbox{G}\hbox{D}\hbox{\ g}}} +\generalmeter{\meterfrac24} +\startbarno1 +\nobarnumbers +\nostartrule +\startpiece\addspace\afterruleskip +\notes\uibb40\ub12\lcn{10}{\it SL}\ub15\zu15\zu20\ub30\utq50\en +\notes\uibb40\ub10\ccn{10}{\it T}\ub20\ub10\utq50\en +\bar%2 +\Notes\uib24\ub21\utq12\en +\Notes\uib40\ub10\en +\notes\unbb\zu10\zu20\ub30\utq50\en +\bar%3 +\notes\uibb40\ub12\lcn{10}{\it SL}\ub15\zu15\zu20\ub30\utq50\en +\notes\uibb40\ub10\ccn{10}{\it T}\ub20\ub10\utq50\en +\bar%4 +\notes\uibb2{-2}\ub21\utbb\ccn9{\it P}\ub20\en +\Notes\utq32\en +\Notes\uib40\ub30\en +\notes\unbb\zu10\zu20\ub30\utq50\en +\setrightrepeat +\alaligne +\zleftrepeat +\notes\uibb40\ub32\lcn{9}{\it SL}\ub34\zu10\zu20\ub34\utq50\en +\notes\uibb3{-1}\ub32\utbb\ccn9{\it P}\ub30\utq42\en +\bar +\notes\uibb40\ub32\lcn9{\it SL}\ub34\zu10\zu20\ub34\utq50\en +\Notes\uib40\ub40\en +\notes\unbb\zu10\zu20\ub30\utq50\en +\bar +\notes\uibb40\ub32\lcn9{\it SL}\ub34\zu10\zu20\ub34\utq50\en +\notes\uibb4{-1}\ub32\ccn9{\it P}\ub30\ub42\ccn9{\it P}\utq40\en +\bar +\notes\uibb40\ub40\ccn9{\it H}\ub42\zu10\zu20\ub30\utq50\en +\Notes\uib40\ub30\en +\Notes\unbb\zu10\zu20\ub30\utq50\en +\zrightrepeat +\qspace +\NOtes\arpeggio05\zuh10\zuh20\zuh30\zuh40\uh50\en +\Endpiece + +\end{music} + + \section{musixper}\label{perc} Provides special symbols intended for percussion parts. Included are a diff --git a/Master/texmf-dist/doc/generic/musixtex/musixdoc/frontmatter.tex b/Master/texmf-dist/doc/generic/musixtex/musixdoc/frontmatter.tex index 6079e9b04d9..e62408b2ac0 100644 --- a/Master/texmf-dist/doc/generic/musixtex/musixdoc/frontmatter.tex +++ b/Master/texmf-dist/doc/generic/musixtex/musixdoc/frontmatter.tex @@ -1,6 +1,6 @@ \title{\Huge\bfseries\musixtex\\[\bigskipamount] \LARGE\bfseries Using \TeX{} to write polyphonic\\or -instrumental music\\\Large\itshape Version 1.36} +instrumental music\\\Large\itshape Version 1.37} \author{} diff --git a/Master/texmf-dist/doc/generic/musixtex/musixdoc/miscellaneous.tex b/Master/texmf-dist/doc/generic/musixtex/musixdoc/miscellaneous.tex index 7b568bda912..6b1cbf4fe55 100644 --- a/Master/texmf-dist/doc/generic/musixtex/musixdoc/miscellaneous.tex +++ b/Master/texmf-dist/doc/generic/musixtex/musixdoc/miscellaneous.tex @@ -1093,3 +1093,5 @@ from \verb|tabdefs.tex| by R.J.~Gelten, which is available \href{http://icking-music-archive.org/software/musixtex/add-ons/tabdefs.tex} {\underline{here}} at WIMA\index{WIMA}. +See extension libraries in Section~\ref{frenchtab} and \ref{mtab} for ``french'' and ``modern'' +variants, respectively. diff --git a/Master/texmf-dist/doc/generic/musixtex/musixdoc/smaller.tex b/Master/texmf-dist/doc/generic/musixtex/musixdoc/smaller.tex index 987b6f6422e..8a50b8e5960 100644 --- a/Master/texmf-dist/doc/generic/musixtex/musixdoc/smaller.tex +++ b/Master/texmf-dist/doc/generic/musixtex/musixdoc/smaller.tex @@ -105,7 +105,7 @@ example: \end{verbatim}\end{quote} \section[Ossia]{Ossia\texorpdfstring{\protect\footnote{Italian \textit{o sia} (or else)}}{}} -This clever example had been provided by Olivier Vogel:\label{ossia} +This clever example had been provided by Olivier Vogel:\label{ossia}\index{ossia} %\begin{center} %\includegraphics[scale=1]{./mxdexamples/ossiavogel.eps} diff --git a/Master/texmf-dist/tex/generic/musixtex/musixmtab.tex b/Master/texmf-dist/tex/generic/musixtex/musixmtab.tex new file mode 100644 index 00000000000..087395a2a92 --- /dev/null +++ b/Master/texmf-dist/tex/generic/musixtex/musixmtab.tex @@ -0,0 +1,166 @@ +% musixmtab.tex : modern tablature definitions for MusiXTeX +% +% usage: +% +% \input musixtex +% \input musixmtab +% ... +% +% musixmtab.tex is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2, or (at your option) +% any later version. +% +% musixmtab.tex is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with MusiXTeX; see the file COPYING. If not, write to +% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +% Boston, MA 02111-1307, USA. +% +% Copyright 2023 Bob Tennent rdtennent@gmail.com +% + +\immediate\write16{musixmtab\space<2023/07/21>} +\ifx\undefined\startpiece\errmessage{Input musixtex.tex before musixmtab.tex}\fi + +\makeatletter + + +% Assumption: there is at most one beam and it is a lower beam + +% like \downst@m but with quarter skip; used in \uq +\def\midst@m{\stem@skip\qd@skip + \divide\stem@skip by 4 + \advance\st@bot-\stemfactor\interbeam + \advance\st@bot-\altportee + \ifx\st@mcut\empty + \ifdim\st@bot<-\thr@@\internote + \cutst@l\thr@@\cutst@l\f@ur\cutst@l\fiv@ + \cutst@l\si@\cutst@l\s@v@n\cutst@l\@ight \fi \fi + \minst@bot\advance\st@bot\altportee + \C@stem} + + +% a half note (boxed) +% argument 1 is the string number +% argument 2 is the note number +\def\uh#1#2{% + \boxitsep=1pt% + \setbox0=\hbox{\raise-0.25\internote\hbox{\boxit{\tabsmallfnt #2}}}% + \stringraise\nblines% + \advance\stringraise by -#1% + \multiply\stringraise by 2% + \advance\stringraise-1% + \advancefalse\def\q@u{}\loffset{0.2}{\@nq{\the\stringraise}}% + \special{ps: 1 setgray}% + \zchar{\the\stringraise}{\vrule height \ht0 width \wd0 depth \dp0}% + \special{ps: 0 setgray}% + \zchar{\the\stringraise}{\box0}% + \n@i\stringraise% + \def\q@u{}\let\st@m\downst@m\let\n@sym\q@u% + \y@v\qn@width\writ@note% +} + +% a non-spacing stemless half note +% argument 1 is the string number +% argument 2 is the note number +\def\zuh#1#2{% + \boxitsep=1pt% + \setbox0=\hbox{\raise-0.25\internote\hbox{\boxit{\tabsmallfnt #2}}}% + \stringraise\nblines% + \advance\stringraise by -#1% + \multiply\stringraise by 2% + \advance\stringraise-1% + \advancefalse\def\q@u{}\loffset{0.2}{\@nq{\the\stringraise}}% + \special{ps: 1 setgray}% + \zchar{\the\stringraise}{\vrule height \ht0 width \wd0 depth \dp0}% + \special{ps: 0 setgray}% + \zchar{\the\stringraise}{\box0}% +} + +% a quarter note (with a centered stem) +% argument 1 is the string number +% argument 2 is the note number +\def\uq#1#2{% + \zltab{#1}{#2}% + \stringraise\nblines% + \advance\stringraise by -#1% + \multiply\stringraise by 2% + \advance\stringraise-1% + \n@i\stringraise% + \def\q@u{}\let\st@m\midst@m\let\n@sym\q@u% + \y@v\qn@width\writ@note% +} + +% an eighth note (with a flag) +% argument 1 is the string number +% argument 2 is the note number +\def\uc#1#2{% + \zltab{#1}{#2}% + \stringraise\nblines% + \advance\stringraise by -#1% + \multiply\stringraise by 2% + \n@i\stringraise% + \def\q@u{}\n@vii\@xlv\let\st@m\down@flag% + \let\n@sym\q@u\y@v\qn@width\writ@note% +} + +% a non-spacing stemless quarter or eighth note +% argument 1 is the string number +% argument 2 is the note number +\def\zu#1#2{\zltab{#1}{#2}}% + +% initiate a beam +% argument 1 is a string number +% argument 2 is the slope +\def\uib#1#2{% + \stringraise\nblines% + \advance\stringraise by -#1% + \multiply\stringraise by 2% + \ibl0{\the\stringraise}{#2}% +} + +% initiate a double beam +% argument 1 is a string number +% argument 2 is the slope +\def\uibb#1#2{% + \stringraise\nblines% + \advance\stringraise by -#1% + \multiply\stringraise by 2% + \ibbl0{\the\stringraise}{#2}% +} + +% a beam note +% argument 1 is the string number +% argument 2 is the note number +\def\ub#1#2{% + \zltab{#1}{#2}% + \s@l@ctbeam{0}\relax% + \stringraise\nblines% + \advance\stringraise by -#1% + \multiply\stringraise by 2% + \n@i\stringraise% + \def\q@u{}\let\st@m\beamst@m% + \let\n@fon\g@q\let\n@sym\q@u\y@v\qn@width\writ@note% +} + +% increase the beam multiplicity to 2 +\def\unbb{\nbbl0} + +% decrease the beam multiplicity to one after the following note +\def\utbb{\tbbl0} + +% terminate the beam after the following note +\def\utb{\tbl0} + +% terminate the beam at this note +% argument 1 is the string number +% argument 2 is the note number +\def\utq#1#2{\utb\ub{#1}{#2}} + +\makeatother +\endinput diff --git a/Master/texmf-dist/tex/generic/musixtex/musixtex.tex b/Master/texmf-dist/tex/generic/musixtex/musixtex.tex index 06333281b9b..a46abeec616 100644 --- a/Master/texmf-dist/tex/generic/musixtex/musixtex.tex +++ b/Master/texmf-dist/tex/generic/musixtex/musixtex.tex @@ -25,15 +25,19 @@ \def\mufl@x{0.83}% \def\mxmajorvernumber{1} -\def\mxminorvernumber{36} +\def\mxminorvernumber{37} \def\mxvernumber{\mxmajorvernumber\mxminorvernumber}% make it possible to compare with \ifnum \def\mxversuffix{}% \edef\mxversion{\mxmajorvernumber.\mxminorvernumber\mxversuffix} -\def\mxdate{2023-01-11} +\def\mxdate{2023-10-07} \immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}% \everyjob{\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}}% +% version 1.37 +% +% added small ss fonts +% % version 1.36 % % Support for Turkish classical music accidentalsi; see musixmkm.tex. @@ -683,6 +687,13 @@ \font\fivedc=phvb8t at 5pt \font\sixdc=phvb8t at 6pt +%% +% small ss fonts % version 1.37 RDT +%% +\font\fourss=phvr8t at 4pt +\font\fivess=phvr8t at 5pt +\font\sixss=phvr8t at 6pt + %% % Seven point fonts %% @@ -888,11 +899,11 @@ \def\normdyn{\let\ppff\ppfftwenty} \def\meddyn{\let\ppff\ppfftwentyfour} -\font\tabfntthirteen=phvb8t at 4pt % version 1.34 RDT -\font\tabfntsixteen=phvb8t at 5pt -\font\tabfnttwenty=phvb8t at 6pt -\font\tabfnttwentyfour=phvb8t at 8pt -\font\tabfnttwentynine=phvb8t at 10pt +\font\tabfntthirteen=phvb8t at 5pt % version 1.37 RDT +\font\tabfntsixteen=phvb8t at 6pt +\font\tabfnttwenty=phvb8t at 7pt +\font\tabfnttwentyfour=phvb8t at 9pt +\font\tabfnttwentynine=phvb8t at 11pt \font\musiceleven=musix11 \font\musicthirteen=musix13 @@ -1846,8 +1857,8 @@ \let\tabnorcleffnt\twelvedc \let\tablargecleffnt\frtdc \let\tabLargecleffnt\svtdc \let\tabsmallcleffnt\tendc \def\tabstringfnt{\ifdim\internote<.95\Internote \sixss % 1.29 RDT - \else\ifdim\internote<1.19\Internote \eightss - \else\ifdim\internote<1.43\Internote \niness + \else\ifdim\internote<1.19\Internote \sevenss + \else\ifdim\internote<1.43\Internote \eightss \else\twelvess\fi\fi\fi}% \else\ifnum\musicsize=\@xxix \let\musicLargefont\musictwentynine @@ -1928,7 +1939,7 @@ \let\tabnorcleffnt\tendc \let\tablargecleffnt\twelvedc \let\tabLargecleffnt\frtdc \let\tabsmallcleffnt\eightdc \def\tabstringfnt{\ifdim\internote<.95\Internote \fivess % 1.29 RDT - \else\ifdim\internote<1.19\Internote \sixss + \else\ifdim\internote<1.19\Internote \sevenss % 1.37 RDT \else\ifdim\internote<1.43\Internote \eightss \else\niness\fi\fi\fi}% \fi\fi\fi}% @@ -2706,10 +2717,15 @@ \let\Writ@newsigns\empty \def\updat@context{\writ@newclefs - \T@bil \wbarno@x\Writ@newsigns\Writ@meters\lastbarpos\lin@pos\addspace\afterruleskip + \T@bil \wbarno@x\Writ@newsigns\Writ@meters\addspace\afterruleskip %%% 1.21: added \lastbarno setting \else\Writ@newsigns\z@suspend\contpiece \fi} + + + + + \def\changecontext{\showallbarrules\n@wbar\updat@context} \def\Changecontext{\showallbarrules\setdoublebar\changecontext} \def\zchangecontext{\advance\n@skip\beforeruleskip \widthtyp@\@ne \t@rmskip @@ -5401,7 +5417,7 @@ \def\nbinstruments{1} \noinstrum@nt1\s@l@ctinstr\internote\Internote \def\tabstringfnt{\ifdim\internote<.95\Internote \fivess % 1.29 RDT -\else\ifdim\internote<1.19\Internote \sixss +\else\ifdim\internote<1.19\Internote \sevenss % 1.37 RDT \else\ifdim\internote<1.43\Internote \eightss \else\niness\fi\fi\fi}% @@ -5540,7 +5556,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Macros for tablature. They put numbers on or above the staff lines. % +% Macros for Tablature. They put numbers on or above the staff lines. % % Based on tabdefs.tex by R.J. Gelten % % % % 1.33 RDT % -- cgit v1.2.3