summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-04-23 22:55:51 +0000
committerKarl Berry <karl@freefriends.org>2015-04-23 22:55:51 +0000
commita5edcfe433dd540818b1a0d4eafd6c4b63d24dcc (patch)
tree1681f893f4068d9a03a2ad339819961884e5052b
parent087d2d121f4f1e7dc23d5175759f4be6fb44c0ef (diff)
musixtnt, split from musixtex
git-svn-id: svn://tug.org/texlive/trunk@37024 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/musixtnt/README53
-rw-r--r--Master/texmf-dist/doc/generic/musixtnt/TransformNotes.3101
-rw-r--r--Master/texmf-dist/doc/generic/musixtnt/TransformNotes.pdfbin0 -> 6693 bytes
-rw-r--r--Master/texmf-dist/doc/generic/musixtnt/fixmsxpart.pdfbin0 -> 8101 bytes
-rw-r--r--Master/texmf-dist/doc/generic/musixtnt/msxlint.pdfbin0 -> 4148 bytes
-rw-r--r--Master/texmf-dist/doc/generic/musixtnt/musixtnt-2015-02-09.tar.gzbin0 -> 107349 bytes
-rw-r--r--Master/texmf-dist/tex/generic/musixtnt/musixtnt.tex30
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds57
-rw-r--r--Master/tlpkg/tlpsrc/collection-music.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/musixtex.tlpsrc7
-rw-r--r--Master/tlpkg/tlpsrc/musixtnt.tlpsrc5
12 files changed, 229 insertions, 27 deletions
diff --git a/Master/texmf-dist/doc/generic/musixtnt/README b/Master/texmf-dist/doc/generic/musixtnt/README
new file mode 100644
index 00000000000..feb85055448
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/musixtnt/README
@@ -0,0 +1,53 @@
+This archive contains a MusiXTeX extension library musixtnt
+and C source code, binaries for Windows (32 bit and 64 bit)
+and MacOSX, and documentation for two programs: fixmsxpart
+and msxlint.
+
+musixtnt.tex provides a macro \TransformNotes that
+enables transformations of the effect of notes
+commands such as \notes. In general, the effect of
+\TransformNotes{input}{output} is that notes commands in
+the source will expect their arguments to match the input
+pattern, but the notes will be typeset according to the
+output pattern. An example is extracting single-instrument
+parts from a multi-instrument score.
+
+fixmsxpart corrects note spacing in a single-part MusiXTeX
+source (possibly derived from a multi-instrument score and
+as a result having irregular note spacing).
+
+msxlint detects incorrectly formatted notes lines in a
+MusiXTeX source file. This should be used before using
+\TransformNotes.
+
+To install:
+
+Create texmf/tex/generic/musixtnt in a local or personal
+texmf tree and move musixtnt.tex into it.
+
+Create texmf/doc/generic/musixtnt and move there the files
+in the doc directory.
+
+Update the file-name database as required by your TeX
+installation.
+
+If your platform is UNIX-like, process the
+musixtnt-<version>.tar.gz file as usual (tar zxvf ...,
+./configure, make, make install).
+
+If your platform is Windows, move the executables
+msxlint.exe and fixmsxpart.exe in either the 32bit or the
+64bit folders to a folder on the executable PATH.
+
+If your platform is Mac OS-X, install the executables
+in the macosx directory.
+
+musixtnt.tex, fixmsxpart.c, utils.c and msxlint.c are
+licensed under the GPL version 2.
+
+Please report bugs and experience (good or bad) using these
+programs to me.
+
+Bob Tennent
+rdt@cs.queensu.ca
+2015-02-18
diff --git a/Master/texmf-dist/doc/generic/musixtnt/TransformNotes.3 b/Master/texmf-dist/doc/generic/musixtnt/TransformNotes.3
new file mode 100644
index 00000000000..4db043a9818
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/musixtnt/TransformNotes.3
@@ -0,0 +1,101 @@
+.TH TransformNotes 3 2015-01-18 "" ""
+
+.SH NAME
+TransformNotes \- macro to transform notes command arguments in MusiXTeX
+
+.SH SYNOPSIS
+.nf
+
+ \\input musixtnt
+
+ \\TransformNotes{input}{output}%
+
+.fi
+
+.SH USAGE
+
+musixtnt.tex is an extension library for MusiXTeX. It is available
+at WIMA in the software archive.
+
+\\TransformNotes makes possible transformations of the effect of notes commands such as
+\\notes. In general, the effect of \\TransformNotes{input}{output}
+is that notes commands in the source will expect their arguments to match the input pattern,
+but the notes will be typeset according to the output pattern.
+
+For example, \\TransformNotes{#2&#3&#4&#5}{#2&#3&#5}%
+would be appropriate for a four-instrument score (arguments #2, #3, #4, and #5, separated by three
+&s), but the notes for the usual third argument (#4) will be discarded in the typeset output.
+
+The instrument/staff numbers in the first argument must start at 2 and increase
+consecutively, using & (or | for multi-staff instruments) as a separator.
+The reason that the segment identifiers start at 2 is that argument #1 for the
+basic \\vnotes macro
+is a spacing parameter.
+It is
+essential that every \\znotes, \\notes, \\Notes, \\NOtes, etc. command in
+the score match the pattern of the first argument to \\TransformNotes exactly; too few (or too many)
+note segments will result in unintentionally discarded material and possibly compilation failure.
+An auxiliary program
+.BR msxlint (1)
+can be used to detect such inconsistencies;
+it is available at WIMA in the
+software
+archive.
+Notes commands are assumed to be terminated by \\en, not \\enotes.
+
+\\TransformNotes may be used anywhere between \\startpiece
+and the command that ends the piece.
+
+To extract
+a single-instrument part from a (copy of a) multi-instrument musixtex score:
+set \\nbinstrument to 1 (for example, with command \\instrumentnumber1),
+and use \\TransformNotes to discard all but one of the note segments in notes
+commands.
+For example, the following line placed after
+\\startpiece (but before any note commands) would be appropriate for a
+four-instrument score and will result in a single-instrument part for the second of
+these: \\TransformNotes{#2&#3&#4&#5}{#3}% .
+
+Some additional revisions to the source for the part might be necessary:
+
+ + adjusting \\setname1, \\setclef1, \\setsign1,
+\\setmeter1 and \\setstaffs1 commands, as necessary;
+
+ + ensuring that tempo and roadmap markings (D.C., Fine, etc.) are in
+the appropriate instrument segment;
+
+When the extracted part score is compiled and viewed, it may be seen
+that horizontal-spacing commands designed for multiple instruments can produce bad
+spacing when used for a single instrument. Bad spacing can be corrected manually but
+this is very tedious; an auxiliary program called
+.BR fixmsxpart (1)
+automates this process (for single-staff instruments only); it is available at WIMA
+in the software archive.
+
+The \\TransformNotes macro may be used for other purposes. Here are some examples:
+
+\\TransformNotes{#2&#3}{#2&\\transpose+7#3}%
+will transpose just the second instrument (argument #3).
+
+\\TransformNotes{#2|#3&#4}{#2|#3&\\tinynotesize#4}%
+will begin typesetting the notes of the second instrument (#4) in tiny size.
+
+\\TransformNotes{#2&#3}{#3&#2}%
+will switch the order of the two instruments.
+
+\\TransformNotes{#2&#3}{#2&#3}%
+will restore normal two-instrument processing.
+
+.SH LIMITATIONS
+The \\TransformNotes macro is currently incompatible with the musixlyr extension
+package for lyrics.
+
+.SH SEE ALSO
+.BR msxlint (1),
+.BR fixmsxpart (1)
+.PP
+musixdoc.pdf
+
+.SH AUTHOR
+This manual page was written by Bob Tennent <rdt@cs.queensu.ca>.
+
diff --git a/Master/texmf-dist/doc/generic/musixtnt/TransformNotes.pdf b/Master/texmf-dist/doc/generic/musixtnt/TransformNotes.pdf
new file mode 100644
index 00000000000..1e9374edd95
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/musixtnt/TransformNotes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/musixtnt/fixmsxpart.pdf b/Master/texmf-dist/doc/generic/musixtnt/fixmsxpart.pdf
new file mode 100644
index 00000000000..833c48e57fd
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/musixtnt/fixmsxpart.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/musixtnt/msxlint.pdf b/Master/texmf-dist/doc/generic/musixtnt/msxlint.pdf
new file mode 100644
index 00000000000..a0a3ecd26ab
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/musixtnt/msxlint.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/musixtnt/musixtnt-2015-02-09.tar.gz b/Master/texmf-dist/doc/generic/musixtnt/musixtnt-2015-02-09.tar.gz
new file mode 100644
index 00000000000..9bf6291cadf
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/musixtnt/musixtnt-2015-02-09.tar.gz
Binary files differ
diff --git a/Master/texmf-dist/tex/generic/musixtnt/musixtnt.tex b/Master/texmf-dist/tex/generic/musixtnt/musixtnt.tex
new file mode 100644
index 00000000000..421168907a4
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtnt/musixtnt.tex
@@ -0,0 +1,30 @@
+%
+% MusiXtnt.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.
+%
+% MusiXtnt.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 MusiXtnt; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+% Copyright 2015 Bob Tennent rdt@cs.queensu.ca
+%
+\immediate\write16{MusiXtnt\space<18 February 2015>}%
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\ifx\setlyrics\undefined%
+\gdef\TransformNotes#1#2{\def\vnotes##1\elemskip#1\en{\noteskip##1\@l@mskip\@vnotes#2\en}}%
+\else\errmessage{Musixtnt is incompatible with musixlyr}%
+\fi
+
+\catcode`\@=\catcodeat
+%
+\endinput
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 866013e203a..fa74a4ede9d 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -373,7 +373,7 @@ my @TLP_working = qw(
mugsthesis multenum multibbl multibib multibibliography
multicap multienv multiexpand multirow
multido multiobjective munich musixguit
- musixtex musixtex-fonts musuos muthesis
+ musixtex musixtex-fonts musixtnt musuos muthesis
mversion mwcls mwe mweights mxedruli
mychemistry mycv mylatexformat
nag nameauth namespc nanumtype1 natbib natded nath nature navigator
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index ea29404c438..f5015ac56b6 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -1249,6 +1249,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'pst-geo' => '&POSTpstgeo',
'pxbase' => '&POSTpxbase',
'pxchfon' => '&POSTpxchfon',
+ 'recipebook' => '&POST_rmsymlink',
'splitindex' => '&POST_do_man',
'startex' => '&POST_otherformat',
'tap', => '&POSTtap',
@@ -1328,6 +1329,7 @@ $standarddest = "texmf-dist";
'mfpic', 'generic',
'midnight', 'generic',
'mkpattern', 'plain',
+ 'musixtnt', 'generic',
'oberdiek', 'generic',
'ocherokee', 'lambda',
'ofs', 'generic',
@@ -2812,7 +2814,8 @@ for (@ARGV) {
my $COOKED_PKG = "$COOKED_TOP/$package"; # output directory
if ($specialscripts_bin{$package}
- || $package =~ /^(biber|context|mptopdf)$/) { # special POSTcases
+ # special POSTcases:
+ || $package =~ /^(biber|context|mptopdf|musixtnt)$/) {
$BUILDDEST = "$COOKED_PKG/Build/source";
$TOPDEST = "$COOKED_PKG/Master";
} else {
@@ -5703,6 +5706,12 @@ sub POSTmathdesign {
&mv_with_mkdir ("vf/*", "$DEST/fonts/vf/public/$package");
}
+sub POSTmontex {
+ print "POST$package - avoid 00readme case clash\n";
+ # these files are no longer used in TL.
+ &SYSTEM ("$MV 00readme 00readme.mfinput.km");
+}
+
sub POSTmptopdf {
# mptopdf needs a cut-down version of the context post routine.
# But there are enough differences that trying to factor out the
@@ -5741,18 +5750,14 @@ sub POSTmusixtex {
}
sub POSTmusixtnt {
- print "POST$package - w32 binaries\n";
+ print "POST$package - preserve binaries, use/remove windows exe\n";
+ &POST_preserve_bin ("fixmsxpart", "msxlint");
+ #
my $w32bindir = "$TOPDEST/bin/win32";
&mv_with_mkdir ("msxlint.exe", "fixmsxpart.exe", $w32bindir);
&SYSTEM ("$RM -rf windows");
}
-sub POSTmontex {
- print "POST$package - avoid 00readme case clash\n";
- # these files are no longer used in TL.
- &SYSTEM ("$MV 00readme 00readme.mfinput.km");
-}
-
sub POSTnumericplots {
print "POST$package - mv latex subdir\n";
&SYSTEM ("$MV latex $DEST/tex/latex/$package");
@@ -5787,19 +5792,7 @@ sub POSTpict2e {
sub POSTpmx {
print "POST$package - preserve binaries\n";
- # the pmx package includes binaries made from Build, and normal
- # scripts and support files. The latter can get updated without
- # needing to update the former, so we support it. Which means
- # preserving the binaries from the Build.
- chomp (my @platforms = `cd $Master/bin && ls`);
- for my $p (@platforms) {
- my $platdir = "$TOPDEST/bin/$p";
- my $exeext = &exeext ($p);
- &SYSTEM ("$CP $Master/bin/$p/scor2prt$exeext $platdir/");
- &SYSTEM ("$CP $Master/bin/$p/pmxab$exeext $platdir/");
- }
-
- &POST_do_man ();
+ &POST_preserve_bin ("scor2prt", "pmxab");
}
sub POSTprerex {
@@ -5947,7 +5940,7 @@ sub POSTzhspacing {
&SYSTEM ("$MV doc/* .; rmdir doc");
}
-# (Generic post hook actions.)
+# Generic post hook actions follow, with an underscore following POST.
sub POST_otherformat {
print "POST$package - move macros up a level\n";
@@ -5980,6 +5973,26 @@ sub POST_do_man {
&tl_man_to_pdf ();
}
+sub POST_preserve_bin {
+ # the pmx package includes binaries made from Build, and normal
+ # scripts and support files. The latter can get updated without
+ # needing to update the former, so we support it. Which means
+ # preserving the binaries from the Build.
+ my (@binaries) = @_;
+ chomp (my @platforms = `cd $Master/bin && ls`);
+ for my $p (@platforms) {
+ my $platdir = "$TOPDEST/bin/$p";
+ &xmkdir ($platdir);
+ my $exeext = &exeext ($p);
+ for my $b (@binaries) {
+ &SYSTEM ("$CP $Master/bin/$p/$b$exeext $platdir/");
+ }
+ }
+
+ # always going to need this anyway.
+ &POST_do_man ();
+}
+
sub POST_rmsymlink {
print "POST$package - removing symlinks\n";
&SYSTEM ("find $DEST -type l | xargs --no-run-if-empty $RM");
diff --git a/Master/tlpkg/tlpsrc/collection-music.tlpsrc b/Master/tlpkg/tlpsrc/collection-music.tlpsrc
index cd33fa37fa8..ea9710b1e16 100644
--- a/Master/tlpkg/tlpsrc/collection-music.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-music.tlpsrc
@@ -18,6 +18,7 @@ depend m-tx
depend musixguit
depend musixtex
depend musixtex-fonts
+depend musixtnt
depend pmx
depend pmxchords
depend songbook
diff --git a/Master/tlpkg/tlpsrc/musixtex.tlpsrc b/Master/tlpkg/tlpsrc/musixtex.tlpsrc
index 159e2e88de9..f83a4b307ba 100644
--- a/Master/tlpkg/tlpsrc/musixtex.tlpsrc
+++ b/Master/tlpkg/tlpsrc/musixtex.tlpsrc
@@ -1,5 +1,4 @@
-binpattern f bin/${ARCH}/fixmsxpart
-binpattern f bin/${ARCH}/msxlint
+binpattern f bin/${ARCH}/${PKGNAME}
+#
binpattern f bin/${ARCH}/musixflx
-binpattern f bin/${ARCH}/musixtex
-docpattern +f texmf-dist/doc/man/man1/musix*
+docpattern +f texmf-dist/doc/man/man1/musixflx.*
diff --git a/Master/tlpkg/tlpsrc/musixtnt.tlpsrc b/Master/tlpkg/tlpsrc/musixtnt.tlpsrc
new file mode 100644
index 00000000000..1c726f3ff49
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/musixtnt.tlpsrc
@@ -0,0 +1,5 @@
+binpattern f bin/${ARCH}/fixmsxpart
+docpattern +f texmf-dist/doc/man/man1/fixmsxpart.*
+#
+binpattern f bin/${ARCH}/msxlint
+docpattern +f texmf-dist/doc/man/man1/msxlint.*