From a5edcfe433dd540818b1a0d4eafd6c4b63d24dcc Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 23 Apr 2015 22:55:51 +0000 Subject: musixtnt, split from musixtex git-svn-id: svn://tug.org/texlive/trunk@37024 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/musixtnt/README | 53 +++++++++++ .../doc/generic/musixtnt/TransformNotes.3 | 101 +++++++++++++++++++++ .../doc/generic/musixtnt/TransformNotes.pdf | Bin 0 -> 6693 bytes .../texmf-dist/doc/generic/musixtnt/fixmsxpart.pdf | Bin 0 -> 8101 bytes Master/texmf-dist/doc/generic/musixtnt/msxlint.pdf | Bin 0 -> 4148 bytes .../generic/musixtnt/musixtnt-2015-02-09.tar.gz | Bin 0 -> 107349 bytes .../texmf-dist/tex/generic/musixtnt/musixtnt.tex | 30 ++++++ Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/libexec/ctan2tds | 57 +++++++----- Master/tlpkg/tlpsrc/collection-music.tlpsrc | 1 + Master/tlpkg/tlpsrc/musixtex.tlpsrc | 7 +- Master/tlpkg/tlpsrc/musixtnt.tlpsrc | 5 + 12 files changed, 229 insertions(+), 27 deletions(-) create mode 100644 Master/texmf-dist/doc/generic/musixtnt/README create mode 100644 Master/texmf-dist/doc/generic/musixtnt/TransformNotes.3 create mode 100644 Master/texmf-dist/doc/generic/musixtnt/TransformNotes.pdf create mode 100644 Master/texmf-dist/doc/generic/musixtnt/fixmsxpart.pdf create mode 100644 Master/texmf-dist/doc/generic/musixtnt/msxlint.pdf create mode 100644 Master/texmf-dist/doc/generic/musixtnt/musixtnt-2015-02-09.tar.gz create mode 100644 Master/texmf-dist/tex/generic/musixtnt/musixtnt.tex create mode 100644 Master/tlpkg/tlpsrc/musixtnt.tlpsrc (limited to 'Master') 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-.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}{#2}% +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}% . + +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}{#2&\\transpose+7#3}% +will transpose just the second instrument (argument #3). + +\\TransformNotes{#2|#3}{#2|#3&\\tinynotesize#4}% +will begin typesetting the notes of the second instrument (#4) in tiny size. + +\\TransformNotes{#2}{#3}% +will switch the order of the two instruments. + +\\TransformNotes{#2}{#2}% +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 . + 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 Binary files /dev/null and b/Master/texmf-dist/doc/generic/musixtnt/TransformNotes.pdf 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 Binary files /dev/null and b/Master/texmf-dist/doc/generic/musixtnt/fixmsxpart.pdf 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 Binary files /dev/null and b/Master/texmf-dist/doc/generic/musixtnt/msxlint.pdf 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 Binary files /dev/null and b/Master/texmf-dist/doc/generic/musixtnt/musixtnt-2015-02-09.tar.gz 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.* -- cgit v1.2.3