-*-text-*-:-*-auto-fill-*- MPP-FAQ CONTENTS OF THIS FILE INTRODUCTION GOALS DESIGN WHAT MPP CAN DO TODO-now TODO-sometime BUGS I WANT TO HELP CONTENTS OF PACKAGE DISCLAIMER & COPYING POLICY INTRODUCTION Typesetting music is a complex task, whereas the message that printed music conveys is usually a simple one. MusiXTeX is a system for setting music (using TeX). Programming MusiXTeX is difficult. MPP is a try at providing a simple interface for setting music using MusiXTeX. MPP stands for MusiXTeX preprocessor, and this is how the program works, currently. This document is not really a Q&A document. It describes what we think mpp should be. If you have suggestions on MPP, or trouble using it, please consult this first. GOALS - Describing a well-defined language for defining music. We call this language (rather arrogantly) The Musical Definition Language or mpp-input. The program MPP reads an MPP-input sourcefile and outputs a musixtex file. This musical definition language should: 1. define music as unambigiously as possible 2. be easily readable 3. be writable in ASCII (with a texteditor) At this time, the language isn't yet defined precisely. We are working on it, and it will largely resemble mpp-input (as it is now) - We want to provide an easy-to-use interface for typesetting music in its broadest sense. This interface should be intuitive from a musical point of view. By broadest sense we mean: it is designed for music printed left to right in staffs, using notes to designate rythm and pitch. - MPP uses MusiXTeX and TeX for its output. This is not a key issue: in a future verision, MPP might bypass musixtex, but at the moment MusiXTeX and TeX are very convenient for producing output, and if MusiXTeX is maintainted properly, then there is no need to bypass it. * * AT THIS TIME TWO VERSIONS OF MUSIXTEX EXIST: ONE BY TAUPIN, ONE * BY EGLER. WE THINK THIS IS A BAD IDEA, AND A WASTE OF EFFORT. WE * WILL NOT SUPPORT TWO ENTIRELY DIFFERENT VERSIONS OF MUSIXTEX. * * DEAR READER, PLEASE TRY TO PREVENT THE ARISAL OF TWO CAMPS OF * MUSIC TYPESETTERS VERSIONS. IT WILL BE IN EVERYBODY'S GOOD IF * THERE IS ONLY *ONE* VERSION OF MUSIXTEX * * * Perhaps Taupin and Egler could be persuaded to sum up the best * features their packages. a voting could then be organised, to decide * in what direction Musi?TeX should evolve. * Incidently, if it might come to a voting, be sure to send a copy of your vote or OS kernel to . We are still trying to determine wether this account is a null-device, or how much data the harddisk can hold. (For the humor impaired. This an attempt at making a joke :-) Don't get us wrong: we think Musi[xX]TeX is a wonderful and useful package: look at the effort we put into MPP. We'd hate to see it's usage decrease because of lack of agreement. - Generate high-quality output. Ideally it should be of a professional quality. We'd like to render Herbert Chlapiks words, "Fine music setting is not possible without a knowledgeable printer," untrue. - MPP does not display notes directly, nor will it be rehacked to be used interactively. MPP writes output to a file. It will not be extended to play music, or to recognize music. This does not mean that the language mpp uses should solely be used for printing music. - MPP should support a broad range of platforms. Mpp is mainly developed on a unix machine. It should be portable to any platform which can run (Musix)TeX and a C++ compiler. Yes. Even SMDOS is supported, although we secretly hope that everybody ditches dos in favor of an os that lets you use as much memory as you like. - MPP is free. Commercial windows packages for setting music are abundant. Free musicprinting software is scarce. DESIGN - mpp is written in C++. It will not be downgraded/ported to fit broken systems. WHAT MPP CAN DO (v0.45) At the moment MPP's features include: - multistaff parts. This includes orchestral scores, piano parts. Each part is contained in a separate file. - lyrics (through a perl script .. little sketchy.) - Chords, beams, slurs, ties, clef and meter changes, transposition, super and subscripts, (de)crescendos TODO-now - define m[ou]dela. - get rid of generic octave - multibar rests - generalised \script macro - named voices/staffs - update and extend the manual. - crescendo placement - multiple movements on one page. - Consult file TODO, NEWS (v = done, x = ?, * = not done) TODO-sometime - macros: mpp extensions in inputfiles. - run trip.mpp for some situations mpp doesn't handle gracefully. - remove musixtex deps in sourcelanguage. - support: windows (?), OS/2, MacIntosh (?) BUGS - trip.mpp I WANT TO HELP! If you think you can make MPP better, then you may do so; The GNU copyleft guarantees you can. But do send us patches and suggestions, to prevent two versions from floating around. Keep in mind that we have also thought of mpp's design. Don't come with suggestions how to radically make MPP better by rewriting the whole thing. Don't bug us with philosophical discussions. We've got better things to do. If you want to help, and do not know how to code C++, then could you do something about the manual? We like coding a lot more than writing docs. DISCLAIMER & COPYING POLICY MPP is copyright 1995 by its author(s). MPP is distributed under the terms of the GNU General Public License. MPP is provided without any warranty what so ever. MPP may be freely distributed. For further information consult the GNU General Public License. CONTENTS OF PACKAGE This archive contains *.h, *.cc: the mpp sources, written in C++ notes.ini, script.ini: mpp runtime *.mpp: example mpp input files mdo: a script for producing a dvi file from a mpp file mpp.tex: a file containing TeX definitions for mpp. mppdoc.*: an (incomplete) manual domppdoc: compile the manual into a TeXable file mpp.exe: an MSDOS executable. COPYING: the GNU General Public License SUPPORT: supported platforms. ChangeLog: list of changes INSTALL: how to install FAQ: you're reading this NEWS: TODO: what should have been in mpp. MANIFEST: a list of all files in this archive. GETTING MPP WWW: MPP has it's own webpage: http://asterix.urc.tue.nl/~tnnvjn/mpp-english.html. You will find a link to the latest release as well as a link to the latest test-version---which is not guaranteed to work. Some examples (both gif and mpp-input) and links can also be found here. And do drop by on our orchestra homepage. FTP: We will upload the latest 'stable' release to the tex-archive, eg. ftp.dante.de. You can also find the latest version of MusiXTeX here. The latest test-release as well as the stable release should be available from ftp://pcnov095.win.tue.nl/pub/mpp/ AUTHORS MPP was written by Jan Nieuwenhuizen , ACKNOWLEDGEMENTS Thanks go out to: -Han-Wen Nienhuys for writing this :), and some other documents. -Judith Blauw for useful help on musical matters -Herbert Zeilmaker for a second opinion on the MPP language. All these people are members of the Eindhovens Jongeren Ensemble, (a small symphonic orchestra in the south of Holland) INSTALLATION See the file INSTALL for detailed installation instructions. Basically on a unix machine, you should do: 1. execute 'configure' 2. run 'make' 3. run 'make INSTALLDIR=your_favourite_libdir' 4. Make a symlink in your path to mpp: ln -sf your_favourite_libdir/mpp mpp 5. install the "mdo" script correctly For an msdos machine, an executable is supplied. Copy it (along with the .ini files and mpp.tex) to a directory, and create a batchfile : rem batch file del *.mx? \myfavdir\mpp %1 tex %1 musixflx %1 tex %1 SUPPORTED PLATFORMS Mpp 0.45 is known to compile and run on the following platforms Machine, OS, compiler adress of person who compiled it Sun Sparc; SunOS 4.3.1_U1; g++ 2.6.3, g++ 2.7.0 Han-Wen Nienhuys Sun Sparc; SunOS ftl1 5.4 generic sun4m; g++ 2.6.0 Jan Nieuwenhuizen IRIX 5.3 11091811 IP19 mips; native CC, g++ 2.7.0 Jan Nieuwenhuizen i286/i386; SM-DOS; Turbo C++ 1.0, Turbo C++ 3.0, gnu make 3.71 Jan Nieuwenhuizen i386/i586 Linux 1.2.1[13]; g++ 2.7.0 Han-Wen Nienhuys IBM RS6000; Aix 3.2; g++ 2.?. OS/2 Warp, Borland C++, Christof Hesse These platforms might give some problems. g++ <= 2.5 might trigger internal compiler errors. Watcom 10.5: init.cc o[f]stream error