summaryrefslogtreecommitdiff
path: root/macros/musixtex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-10-09 03:05:28 +0000
committerNorbert Preining <norbert@preining.info>2023-10-09 03:05:28 +0000
commit55c62aa6d5cc8ce94c28ac255b66a13ccd2375b2 (patch)
tree1b5eb4f2e66d4ee007cac50ea4d0f34c11cda50f /macros/musixtex
parent9f6bac4b7884af8d5a457275e30fc5e253ff9de8 (diff)
CTAN sync 202310090305
Diffstat (limited to 'macros/musixtex')
-rw-r--r--macros/musixtex/README4
-rw-r--r--macros/musixtex/doc/ChangeLog-136.txt7
-rw-r--r--macros/musixtex/doc/ChangeLog-137.txt5
-rw-r--r--macros/musixtex/doc/musixdoc.pdfbin1437432 -> 1448431 bytes
-rw-r--r--macros/musixtex/doc/musixdoc/extensions.tex85
-rw-r--r--macros/musixtex/doc/musixdoc/frontmatter.tex2
-rw-r--r--macros/musixtex/doc/musixdoc/miscellaneous.tex2
-rw-r--r--macros/musixtex/doc/musixdoc/smaller.tex2
-rw-r--r--macros/musixtex/doc/musixftab/frenchtab-samples.pdfbin0 -> 20014 bytes
-rw-r--r--macros/musixtex/doc/musixftab/frenchtab-samples.tex9
-rw-r--r--macros/musixtex/tex/musixmtab.tex166
-rw-r--r--macros/musixtex/tex/musixtex.tex42
12 files changed, 307 insertions, 17 deletions
diff --git a/macros/musixtex/README b/macros/musixtex/README
index 4047ef5726..001f12edda 100644
--- a/macros/musixtex/README
+++ b/macros/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/macros/musixtex/doc/ChangeLog-136.txt b/macros/musixtex/doc/ChangeLog-136.txt
new file mode 100644
index 0000000000..06ac3fee83
--- /dev/null
+++ b/macros/musixtex/doc/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/macros/musixtex/doc/ChangeLog-137.txt b/macros/musixtex/doc/ChangeLog-137.txt
new file mode 100644
index 0000000000..2f62d7a0e9
--- /dev/null
+++ b/macros/musixtex/doc/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/macros/musixtex/doc/musixdoc.pdf b/macros/musixtex/doc/musixdoc.pdf
index adbcbfc912..c01420e9c0 100644
--- a/macros/musixtex/doc/musixdoc.pdf
+++ b/macros/musixtex/doc/musixdoc.pdf
Binary files differ
diff --git a/macros/musixtex/doc/musixdoc/extensions.tex b/macros/musixtex/doc/musixdoc/extensions.tex
index d2bdd3d75a..c11c389efa 100644
--- a/macros/musixtex/doc/musixdoc/extensions.tex
+++ b/macros/musixtex/doc/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/macros/musixtex/doc/musixdoc/frontmatter.tex b/macros/musixtex/doc/musixdoc/frontmatter.tex
index 6079e9b04d..e62408b2ac 100644
--- a/macros/musixtex/doc/musixdoc/frontmatter.tex
+++ b/macros/musixtex/doc/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/macros/musixtex/doc/musixdoc/miscellaneous.tex b/macros/musixtex/doc/musixdoc/miscellaneous.tex
index 7b568bda91..6b1cbf4fe5 100644
--- a/macros/musixtex/doc/musixdoc/miscellaneous.tex
+++ b/macros/musixtex/doc/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/macros/musixtex/doc/musixdoc/smaller.tex b/macros/musixtex/doc/musixdoc/smaller.tex
index 987b6f6422..8a50b8e596 100644
--- a/macros/musixtex/doc/musixdoc/smaller.tex
+++ b/macros/musixtex/doc/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/macros/musixtex/doc/musixftab/frenchtab-samples.pdf b/macros/musixtex/doc/musixftab/frenchtab-samples.pdf
new file mode 100644
index 0000000000..a035265ce6
--- /dev/null
+++ b/macros/musixtex/doc/musixftab/frenchtab-samples.pdf
Binary files differ
diff --git a/macros/musixtex/doc/musixftab/frenchtab-samples.tex b/macros/musixtex/doc/musixftab/frenchtab-samples.tex
new file mode 100644
index 0000000000..8ee4f077ce
--- /dev/null
+++ b/macros/musixtex/doc/musixftab/frenchtab-samples.tex
@@ -0,0 +1,9 @@
+\font\tabfnt=frenchtab at 11pt
+
+{\tabfnt 0 1 2 3 4 5 6 7 8 9}
+
+{\tabfnt A B C D E F G H I K L M N O P Q R}
+
+{\tabfnt V W X Y Z}
+
+\end
diff --git a/macros/musixtex/tex/musixmtab.tex b/macros/musixtex/tex/musixmtab.tex
new file mode 100644
index 0000000000..087395a2a9
--- /dev/null
+++ b/macros/musixtex/tex/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/macros/musixtex/tex/musixtex.tex b/macros/musixtex/tex/musixtex.tex
index 06333281b9..a46abeec61 100644
--- a/macros/musixtex/tex/musixtex.tex
+++ b/macros/musixtex/tex/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.
@@ -684,6 +688,13 @@
\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 %