]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.76
authorfred <fred>
Sun, 24 Mar 2002 19:56:52 +0000 (19:56 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:56:52 +0000 (19:56 +0000)
66 files changed:
Documentation/mudela.pod [deleted file]
bin/make_version [deleted file]
bin/make_website [deleted file]
input/book.ly [deleted file]
input/book.tex [deleted file]
lily/calcideal.cc [deleted file]
lily/linespace.cc [deleted file]
lily/lyric-engraver.cc [deleted file]
lily/midi-output.cc [deleted file]
mf/Makefile [deleted file]
mf/README [deleted file]
mf/musexgen.mf [deleted file]
mf/musix11.mf [deleted file]
mf/musix13.mf [deleted file]
mf/musix16.mf [deleted file]
mf/musix20.mf [deleted file]
mf/musix24.mf [deleted file]
mf/musix25.mf [deleted file]
mf/musix29.mf [deleted file]
mf/musixgen.mf [deleted file]
mf/musixsps.mf [deleted file]
mf/musixspx.mf [deleted file]
mf/xdrawsl.mf [deleted file]
mf/xdrawzl.mf [deleted file]
mf/xgreg11.mf [deleted file]
mf/xgreg13.mf [deleted file]
mf/xgreg16.mf [deleted file]
mf/xgreg20.mf [deleted file]
mf/xgreg24.mf [deleted file]
mf/xgreg25.mf [deleted file]
mf/xgreg29.mf [deleted file]
mf/xgreggen.mf [deleted file]
mf/xhsld16.mf [deleted file]
mf/xhsld20.mf [deleted file]
mf/xhslu16.mf [deleted file]
mf/xhslu20.mf [deleted file]
mf/xsld11.mf [deleted file]
mf/xsld13.mf [deleted file]
mf/xsld16.mf [deleted file]
mf/xsld20.mf [deleted file]
mf/xsld24.mf [deleted file]
mf/xsld29.mf [deleted file]
mf/xslgen.mf [deleted file]
mf/xslhd.mf [deleted file]
mf/xslhd11.mf [deleted file]
mf/xslhd13.mf [deleted file]
mf/xslhd16.mf [deleted file]
mf/xslhd20.mf [deleted file]
mf/xslhd24.mf [deleted file]
mf/xslhd29.mf [deleted file]
mf/xslhu.mf [deleted file]
mf/xslhu11.mf [deleted file]
mf/xslhu13.mf [deleted file]
mf/xslhu16.mf [deleted file]
mf/xslhu20.mf [deleted file]
mf/xslhu24.mf [deleted file]
mf/xslhu29.mf [deleted file]
mf/xslhz20.mf [deleted file]
mf/xslu11.mf [deleted file]
mf/xslu13.mf [deleted file]
mf/xslu16.mf [deleted file]
mf/xslu20.mf [deleted file]
mf/xslu24.mf [deleted file]
mf/xslu29.mf [deleted file]
mf/xslz20.mf [deleted file]
mf/xtie20.mf [deleted file]

diff --git a/Documentation/mudela.pod b/Documentation/mudela.pod
deleted file mode 100644 (file)
index 633c9b5..0000000
+++ /dev/null
@@ -1,574 +0,0 @@
-=head1 NAME
-
-Mudela -  GNU LilyPond input format 0.1
-
-=head1 DESCRIPTION
-
-This document describes the the GNU LilyPond input format, which is an
-effective language for defining music.  We call this language
-(rather arrogantly) The Musical Definition Language (S<Mudela 0.1>).
-
-[If anybody comes up with a better name, we'd gladly take this Gourlay
-already uses Musical Description Language, GSharp Score Definition
-Language. We're not being original here]
-
-The first aim of Mudela is to define a piece of music, 
-being complete from both from a musical typesetting, 
-as from a musical performing point of view.
-
-
-=head1 Overview
-
-The Musical Definition Language (Mudela) S<version 2>, has a logical
-structure, making use of typing and naming (using identifiers), that
-allows for flexible input, and definition reuse. See MANIFESTO for
-reasons and design considerations.
-
-The below included for explanatory purposes only (i.e., for a complete
-and up-to-date definition, see F<lily/parser.y> and F<lily/lexer.l>):
-
-As a related note, you should take a look at the examples and the init
-files, as this document does not cover every aspect of mudela yet, and
-may be out of date.
-
-=head2 Files
-
-The de-facto extension of Mudela is F<.ly>. Files may be included by
-entering C<include> at the start of a line:
-
-       \include "a_file.ly"
-
-=head2 Comments
-
-Line comments are introduced by a C<%>. Block comments are delimited
-by C<%{> and C<%}>. They do not nest.
-
-=head2 Versions
-
-Occasionally, small changes in syntax across different versions of
-Mudela might give syntax errors. To warn you about possible
-incompatibilities, you can specify the Mudela version for which the
-inputfile was written,
-
-       \version "0.0.50";
-
-A perl-script which tries to convert to newer versions
-(F<convert-mudela>) is included in the LilyPond distribution.
-
-=head2 Words
-
-Keywords are preceded by a backslash: '\'. They contain alphabetic
-characters only. 
-
-Identifiers in their normal form consist start with a alpha character,
-followed by alpha-numerics. Identifiers can contain any characters
-(except whitespace, C<$> and C<%>), if you use this construct:
-
-       $i'm_a_weird###identifier
-
-(which is the identifier with the name
-C<i'm_a_weird###identifier> ). C<$> Takes any sequence of
-characters which are not whitespace, C<$> and C<%>.
-
-       \$i'm_a_weird###escaped_word
-
-=head2 Nesting characters
-
-Mudela uses the brace (C<{> and C<}>) for hierarchical structures. To
-aid the eye in reading, for chords the < and the > are used as
-nesting braces.
-
-=head2 Constants
-
-Please note that -.5 is no Real.
-
-       "I am a string"
-       -1.2e3          % a real
-       12              % an int
-
-
-       
-=head2 Identifiers
-
-=head2 Hierarchical structures
-
-The general structure consists of declarations:
-
-       IDENTIFIER = \TYPE{
-               <type specific data>
-       }
-
-and instantiations:
-
-       \TYPE{ <type specific data> }
-
-(Currently, C<\score> is the only type that can be instantiated
-at top level. Currently declarations can only be done at top level)
-
-Most instantiations that use an IDENTIFIER are specified as follows:
-
-       \TYPE{ IDENTIFIER [...] }
-
-Some exceptions on this rule have been made to prevent inputting
-Mudela becoming tedious
-
-
-=head2 Simple mudela
-
-The actual musical part of Mudela that defines a melody, is known as 
-I<simple mudela>. 
-
-Simple mudela is the most common type of music.  It consists of a list
-of notes or lyrics, chords, and commands.
-
-=head2 Modes:
-
-To simplify different aspects of music definition (entering the notes
-and manipulating them) Mudela has a number of different input "modes":
-
-=over 4
-
-=item Normal mode
-
-At the start of parsing, Mudela assumes normal mode.
-In Normal mode, a word is looked up in the following order:
-
-       word    identifier, string
-       \word   keyword, identifier, string
-
-In normalmode, a word is assumed to start with an alphabetic
-character, followed by alpha-numeric characters.
-
-=item Note mode
-
-Note mode (and thus Simple mudela) is introduced by the keyword C<\melodic>.
-In Note mode, a word is looked up in the following order:
-
-       word    notename, string
-       \word   keyword, identifier, string
-
-In Note mode a word is considered to have alphabetic characters only.
-
-=item Lyric mode
-
-Lyrics mode (and thus Simple mudela)  is introduced by the keyword C<\lyrics>.
-
-In Lyrics mode, a word is looked up in the following order:
-
-       word    string
-       \word   keyword, identifier, string
-
-In Lyric mode every sequence of non-digit and non-white characters
-starting with an alphabetic character or the '_'is considered a word.
-
-       a&@&@&TSI|{[    % a word
-       1THtrhortho     % not a "word"
-       Leise Fl\"u\ss{}teren meine Sapfe       % 4 words
-       _ _ _ _         % 4 words: 4 spaces
-
-=back
-
-These modes are of a lexical nature. Normal and Note mode largely
-resemble each other, save the possibility of entering Reals, 
-meaning of C<_> and the resolution of words
-
-=head2 Notes
-
-Simple mudela basically is a sequence of the notes you want to
-enter. 
-
-       a'4     % dutch names
-
-is a A-1 pitched quaver. The ' signifies an octave change.  A-1 is 440
-Hz concert-pitch. C<c'> is also known as the central c. More examples:
-
-       'a      % 110
-       a       % 220
-       a'      % 440
-       a''     % 880
-
-another example:
-
-       'as4.*2/3
-
-This is an A flat, (just below 110 Hz concert-pitch). The C<*2/3>
-signifies that this note is part of a triplet (3 in stead of 2). The
-duration is one and a half quaver (C<4.>) times 2/3.
-
-
-Notenames are just a special kind of identifiers, and can be declared
-for any language appropriate (see F<dutch.ini>).  The default language
-for notenames is defined to be dutch. In dutch, the notenames are
-a,b,c,d,e,f and g. Sharps are formed by adding the extension "is",
-flats by adding "es"
-
-       % double sharp
-       cisis disis eisis fisis gisis aisis bisis
-       % sharps
-       cis dis eis fis gis ais bis
-       % naturals
-       c d e f g a b 
-       % flats
-       ces des es fes ges as bes
-       % double flats
-       ceses deses eses feses geses ases beses
-
-The standard notenames also have uppercase versions, which octavate
-down:
-
-       a       % 220 concert-pitch
-       A       % 110
-       'A      % 55
-       A'      % 220
-       Cisis
-
-Rests are named r or s
-
-       r       % print a rest
-       s       % a "space" rest, nothing is printed.
-
-These notenames along with duration are enough material to construct
-simple melodies:
-
-       c4 c4 g4 g4 a4 a4 g2
-       f4 f4 e4 e4 d4 d4 c2
-
-Music is able to express more. generally speaking, the other
-'features' are either connected between notes (slurs, beams: spanning
-requests) or attached to notes (eg. accents). The former are
-implemented as START and STOP stop features and then attached to the note.
-
-       []      START/STOP a beam
-       ()      START/STOP a slur
-
-
-example: 
-
-       [c8 () d8 () e8 ]
-
-Please note that these two characters do I<not> necessarrily nest,
-they should attached to the note C<[ {c4 c4} ]> will generate a parse
-error for this reason. 
-
-       [c8 e8(] [)g8 <c'8] e'8>
-                               % NO nesting!
-       [2/3 c8 c8 c8]1/1       % a triplet
-
-
-=head2 Slurs and Ties
-
-Ties connect the noteheads of adjecent notes. They are entered as follows:
-
-       a4 ~ a4
-
-Slurs connect whole chords, and try to avoid crossing stems. They are
-entered as follows:
-
-       a4(  )a4
-
-=head2 Scripts
-
-Symbols which can be put at either side (above or below) of a staff
-are entered as follows:
-
-       a-^     % marcato, direction: default
-       a^-     % portato, direction: above note
-       a_.     % staccato, direction: below note
-       a^\script { "symbolindex"  . . . } % see script.ini for details.
-       a^\fermata      % predefined identifier
-
-Dynamics can be put after the notename:
-
-       a4 \dynamic { 0 } % 0 = fff, 7 = ppp
-
-Mudela defines the following dynamic identifiers:
-
-       ppp pp p mp mf df ff fff        % df iso f, f is a notename.
-
-and the following abbreviations:
-
-       \<      %start crescendo
-       \>      % start decrescendo
-       \!      % end crescendo/decrescendo
-
-=head2 Text
-
-To accompany a note with a text (eg, "marcato"), you should say: 
-
-       c_"marcato"
-       c^"marcato"
-       c-"marcato"
-
-the c- construct chooses the default up/down direction.
-
-
-
-
-=head2 Defaults
-
-If omit the duration of a, a default value is substituted. For this
-default value, there are two modes:
-
-=over 4
-
-=item 1
-
-Use the last duration explicitly entered
-
-=item 2
-
-Use the explicitly set "default duration"
-
-=back
-
-Thus the following inputs are  equivalent
-
-       c4 c4 c16 c16 c16 s16 c4 c16
-
-       \duration { "last" }
-       c4 c c16 c c c c4 c16
-
-       \duration { 4 }
-       c c c16 c16 c16 c16 c c16
-
-       \duration { 16 }
-       c4 c4 c c c c c4 
-
-If you are typing music which does not lie in the "small" and "large"
-octave, you can prevent having to type C<'> all the time by using the
-C<\octave> command: These two lines have the same pitch.
-
-       c'' d'' e''     
-       \octave{c''} c d e
-
-By default the setting of C<\octave> is 0.
-
-=head2 Lyrics
-
-Lyrics in Mudela resemble Simple mudela a lot, with notes substituted
-by text. 
-
-All syllables are entered separately, separated by whitespace 
-
-       Twin-4 kle4 twin-4 kle4 ... 
-
-Two syllables or words that compose a single
-duration entry are bound together using an underscore 
-
-       He_could4 not4
-
-=head2  Music direction
-
-Mudela reads left to right, but you can still stack voices and
-Voice_elements which are produced in two directions: horizontal
-(voice like) and vertical (chord like)
-
-A sequence of notes (horizontal) is called simple horizontal, eg
-
-       c4 c4 g4 g4
-
-
-You can also glue two pieces of simple horizontal music together with the
-concatenation operator:
-
-       horOne = \melodic { c c g g }
-       horTwo = \melodic { a a g2 }
-       twinkle = \melodic { \horOne ++ \horTwo }
-
-If you enclose simple horizontal music in braces ( { } ), then you get
-horizontal music:
-
-       { c c g g a a g2 }      % twinkle twinkle
-
-You can start vertical music (a "chord") by enclosing a sequence of
-notes with < and >. Example:
-
-       <a cis e'>      % a-major chord
-
-You can also put vertical music inside horizontal music:
-
-       { c <c e> <c e g> <c e g c'> }  % 4 increasing chords
-
-And vice versa
-
-       < \multivoice
-         {c c g g a a g2}              
-         {r2  r2  c c g g a a g2} >    % a canon
-
-The duration of a chord equals the union of the durations of each of
-its elements.  The C<\multivoice> is a construct which is explained
-below.
-
-
-=head2 Transposition
-
-You can transpose horizontal music in the following way:
-
-       
-       \melodic {
-               \meter 2/4;
-               ++
-               \transpose { 
-                       d               % from c to the d that's one octave down 
-                       { e4 f4 }       % the horizontal music
-               } ++ g4
-       }
-
-The result is, as you can see, again simple horizontal music.
-
-
-=head2 Voicegroups
-
-If more than one "voice" is in a staff, then you have the option of
-putting the different voices into so called voicegroups: members of
-the same voicegroup share certain characteristics, among others:
-
-       - dynamics
-       - text
-       - beams and stems
-       - scripts
-
-For the actual list, see the init file F<register.ini>
-
-Putting different musical lines in to the same voicegroup effectively
-makes LilyPond try to form chords of all those lines. Putting
-different musical lines in to different voicegroups effectively makes
-LilyPond try to set those lines as independently as possible. 
-
-You can set the voicegroup of a voice with the command C<\group>, e.g.,
-       
-       oboeI = \melodic { 
-               \group "oboes"; 
-               [e8 f8
-               \group "+solo";
-               [g16 a16 g16 fis16]
-               \group "-";
-               g8 f8
-       }
-       oboeII = \melodic { \group "oboes";
-               c8 d8]
-               e4
-               e8 d8
-       }
-       ///     ...
-
-       \staff { 
-               melodicregs \melodic{ oboeI }
-               \melodic { oboeII}
-       }
-
-In this example, the two oboe voices share one staff and are initially
-in the voicegroup called "oboes". They will share beams, dynamics etc.
-After two quavers, oboeI "pushes" its group: a new voicegroup is
-created, called "oboes+solo". The C<\group "-"> command makes the
-voice enter "oboes" again.
-
-Please do note that [] are voicegroup wide; the previous input is
-valid: the beam, started in oboeI, voicegroup "oboes" is also ended in
-voicegroup "oboes", albeit not in oboeI but oboeII
-
-This concept may seem contorted, but it allows you to set the separate
-oboe parts without changing the C<oboeI> and C<oboeII> (assuming that
-you edit the [] in the example.)
-
-The construct
-
-       < { .... } {......} >
-
-makes a chord (all horizontal parts are in the same voicegroup). The construct
-
-       < \multivoice { ....} { .... } >
-
-creates horizontal parts which behave independently. You will have to
-set voicegroup features by hand (\stem and \hshift. See examples)
-
-
-
-
-=head2 Rhythms
-
-Rhythms in Mudela are entered identical to Simple mudela.
-The melodic part of the information is ignored.
-
-=head2 Durations
-
-A duration always starts with the duration type (1,2,4 etc), and then
-any optional multipliers/dots
-
-=head2 Meters/groupings
-
-A meter has this form:
-
-       \meter 3/4 ;
-
-Rhythmic grouping is  a concept closely associated with this. For
-example, in a 5/8 meter, the counts are grouped 2+3. In mudela this is
-entered as
-
-       \grouping  8*2 8*3 ;
-
-You can start the piece with a partial measure, the command takes the
-same syntax as grouping: 
-
-       \partial 16*3 4;
-
-Make the piece start with a partial measure [transl?]  lasting 1 3/4
-quaver.
-
-These commands are also "voice elements", and constitute simple mudela
-(consisting of stuff with duration 0).
-
-=head1 STRUCTURE
-
-In concrete, a piece of Mudela has the following structure:
-
-       % declare pieces of music:
-       melody = \music{ <simple mudela> }
-       accompany = \music{ <simple mudela> }
-
-       % instantiate (=create tex, midi output) the score:
-       \score{ 
-               \staff{ melodicregs melody }
-               \staff{ melodicregs accompany }
-               \midi{ <midi definitions> }
-               \paper{ <paper and layout definitions> }
-       }
-
-=head2 Examples
-
-Examples are included with the GNU LilyPond distribution. For the sake of
-maintenance no long examples are included in this document.
-
-=head2 Staff
-
-The staff is a simple container (containing Voices). The so-called
-"registers" determine the characteristics of the Staff. At this time,
-LilyPond supports the following personalities:
-
-=over 4
-
-=item melodicregs
-
-This makes the staff into a single five line melodic staff.
-
-=item lyricregs
-
-This makes the staff into a staff which will only set Lyric_requests.
-
-=back
-
-
-=head1 HISTORY
-
-
-This language has a number of roots. First and foremost, GNU LilyPond's
-predecessor mpp was the inspiration of simple Mudela.  Secondly, the
-hierarchical structure looks a lot like Rayce's (Rayce is a raytracer
-that I've written as a hobby project. ), which in turn owes a lot to
-POVRay.
-
-Now, we know, musictypesetting and raytracing do not necessarily
-require the same input format, and we know that a lot more ways exist
-to convert music to ASCII, but we did give this language some
-thoughts. As always suggestions are appreciated.
-
diff --git a/bin/make_version b/bin/make_version
deleted file mode 100755 (executable)
index 29b768c..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-#shift;
-if test "x$1" = x;
-then
-    versionfile=".version"
-else
-    versionfile=$1;
-fi
-
-cat $versionfile| sed 's/#.*$//g'|sed 's/\([^ ]*\)[\t ]*=[ \t]*\([^ ]*\)$/#define \1 \"\2\"/g' 
-echo
-if [ -z $CXX ]
-then
-    COMPILER=unknown
-else
-    COMPILER="$CXX `$CXX --version`"
-fi
-
-echo "#define COMPILER "\"$COMPILER\"
diff --git a/bin/make_website b/bin/make_website
deleted file mode 100755 (executable)
index 89fafd7..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-#!/usr/bin/perl -w
-# stupid script to generate WWW site.
-
-use FileHandle;
-use Getopt::Long;
-my $lily_version;
-my $footstr;
-my $mw_id = "<!make_website!>";
-
-sub get_version
-{
-    my ($vstr)=("");
-    open V, "$depth/.version";
-    while (<V>) {
-       s/#.*$//g;
-       next if (/^ *$/);
-       s/^/\$/;
-       s/= *(.*)$/=\"$1\";/;
-       $vstr .= $_;
-    }
-    eval ($vstr);
-    
-    $lily_version= "$TOPLEVEL_MAJOR_VERSION.$TOPLEVEL_MINOR_VERSION.$TOPLEVEL_PATCH_LEVEL$TOPLEVEL_MY_PATCH_LEVEL";
-    
-    # stupid checks.
-    $lily_version= "$TOPLEVEL_MAJOR_VERSION.$TOPLEVEL_MINOR_VERSION.$TOPLEVEL_PATCH_LEVEL$TOPLEVEL_MY_PATCH_LEVEL";
-
-
-    close V;
-}
-
-sub set_html_footer
-{
-    my $MAILADRESS=$ENV{MAILADRESS};
-    my @pw=(getpwuid($<));
-    my $username=$pw[6];
-
-    $footstr = 
-       "\n<hr>Please take me <a href=index.html>back to the index</a>\n<hr>
-<font size=-1>
-This page was generated by <code>make_website</code> from lilypond-$lily_version by
-<p>
-<address><br>$username <a href=mailto:$MAILADRESS>&lt<!bla>$MAILADRESS</a>&gt</address>
-<p>" . `date` . "
-<p></font>";
-}
-    
-
-# do something, check return status
-sub my_system
-{
-    my (@cmds) = @_;
-    foreach $cmd (@cmds) {
-       my ($ignoreret)=0;
-       if ( $cmd  =~ /^-/ ) {
-           $ignoreret = 1;
-           $cmd = substr ($cmd, 1);
-       }
-       
-       my $ret =  ( system ($cmd));
-       if ($ret) {
-           if ($ignoreret) {
-               print STDERR "ignoring failed command \`$cmd\' (status $ret)\n";
-           }else {
-               print STDERR "\nmake_website: failed on command \`$cmd\' (status $ret)\n";
-               exit 2;
-           }
-       }
-    }
-}
-
-
-local $base="lilypond/";
-local @examples=("multi", "wohltemperirt" ,"standchen", "toccata-fuga-E", 
-                "scsii-menuetto", "collisions", "cadenza", "scales", "book");
-
-# rhythm, scales, 
-
-
-sub gen_html
-{
-    print "generating HTML\n";
-    my_system "make -kC .. html";
-}
-
-sub ps_to_gif 
-{
-    my ($a)=@_;
-    if (! -f "$a.ps" ) {
-       my_system("gunzip -c $a.ps.gz > $a.ps");
-    }
-    my_system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $a.ps -c quit |pnmscale 0.5| ppmtogif > $a.gif";
-}
-
-
-sub ps_to_jpeg
-{ 
-    my ($a)=@_;
-    my $in = "$a.ps";
-    
-    my_system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $in -c quit |pnmscale 0.5| cjpeg -grayscale > $a.jpeg";
-}
-
-sub gen_examples
-{
-    print "generating examples: \n";
-    foreach $a (@examples) {
-       $texfile="lelie";
-       $tex = "tex $texfile";
-       if ($a eq "standchen" || $a eq "scsii-menuetto" || $a eq "book" ) {
-           $tex = "latex $a";
-           $texfile = "$a";
-       }
-       
-       if ( ! -f "$a.ly.txt" ) {
-           my_system "ln $depth/input/$a.ly ./$a.ly.txt";
-       }
-       if (! -f "$a.dvi" ) {
-           my_system "lilypond $a;",
-           "$tex", "-mv $texfile.dvi $a.dvi";
-       }  
-       if ( ! -f "$a.ps.gz" && ! -f "$a.ps" ) {
-           my_system "dvips -o $a.ps $a.dvi";
-       }
-
-       my_system "mv lelie.midi $a.midi; " if ( -f "lelie.midi" );
-
-       # generate the pixmap at twice the size, then rescale (for antialiasing)
-       if ( ! -f "$a.gif" ) {
-           ps_to_gif($a);
-       }
-       if ( ! -f "$a.ps.gz" ) {
-           my_system "gzip -f $a.ps";
-       }   
-    }
-}
-
-
-sub gen_list
-{
-    print "generating HTML list\n";
-    open HTMLLIST, ">example_output.html";
-    print HTMLLIST "<html><body><title>LilyPond examples</title>\n
-These example files are taken from the LilyPond distribution.\n
-LilyPond currently only outputs TeX and MIDI. The pictures and\n
- PostScript files were generated using TeX, Ghostscript and some graphics tools. \n
-The GIF files have been scaled to eliminate aliasing.";
-    foreach $a (@examples) {
-       $name=$a;
-       print HTMLLIST "<h1>example file: $name</h1>\n<XMP>\n";
-
-       open IF, "$depth/input/$a.ly";
-       input_record_separator IF "%}";
-       
-       $desc = <IF>;
-       close IF;
-       
-       print HTMLLIST "$desc\n</XMP>";
-
-       $inputf="$a.ly.txt";
-       $giff="$a.gif";
-       $jpegf="$a.jpeg";
-       $pngf = "$a.png";
-       $psf="$a.ps.gz";
-       $midif="$a.midi";
-       
-       print HTMLLIST "<ul>";
-
-       print HTMLLIST "<li><a href=$inputf> The input file</a>"
-           if ( -f $inputf );
-       
-       print HTMLLIST "<li><a href=$giff>The output (picture)</a>"     
-           if ( -f $giff );
-
-       print HTMLLIST "<li><a href=$psf>The output (PS)</a>\n"
-           if ( -f $psf );
-               
-       print HTMLLIST "<li><a href=$midif>The output (MIDI)</a>\n" 
-           if ( -f $midif );
-       print HTMLLIST "</ul>";
-    }
-    print HTMLLIST "</BODY></HTML>";
-    close HTMLLIST;
-}
-
-sub edit_html
-{
-    print STDERR "adding footer\n";
-
-    OUTER:
-    foreach $a (<*.html>) {
-       open H, "$a";
-       my $sep="</BODY>";
-       input_record_separator H $sep;
-       my $file="";
-       
-       while (<H>) { 
-           if (/$mw_id/) {
-               close H;
-               next OUTER;
-           }
-           $file .= $_; 
-
-       }
-       close H;
-
-       my $subst =  $footstr;
-       $subst .= $back if (! $a =~ /index.html/ );
-       $file =~ s/$sep/$subst$sep/g ;
-       $file =~ s/\.gif/\.$image/g;
-       open H, ">$a";
-       print H $mw_id;
-       print H $file;
-       close H;
-    }
-}
-
-sub copy_files
-{  
-    print "copying files\n";
-    print `ln -s $depth/out ./docxx` if ( ! -x "docxx" ) ;
-    my_system "cp $depth/TODO ./TODO.txt",
-    "cp $depth/NEWS ./NEWS.txt",
-    "cp ../lelie*gif .";
-}
-
-sub set_images
-{
-    for $a (<*.gif>) {
-       if ($opt_png) {
-           my_system "gif2png -d $a";
-       }
-       if ($opt_jpeg) {
-           my $b=$a;
-           $b =~ s/.gif/.jpeg/;
-           my_system "cjpeg -o $b $a";
-       }
-    }
-}
-
-sub docxx_update
-{
-    my_system "make -C $depth doc++";
-}
-
-sub do_tar
-{
-     print "tarring.\n";
-     $files = join (' ', < *.html *.$image *.ps.gz *.txt *.midi docxx/*>);
-     my_system
-        "-tar vhcf website.tar $files;",
-        "gzip -f9 website.tar;";
-}
-sub identify
-{
-    print STDERR "make_website 0.1\n";
-    
-}
-sub main
-{
-    identify;
-    GetOptions("jpeg", "gif", "png", "noexamples");
-
-    local $image="gif" ;
-    $image = "png" if ($opt_png);
-    $image = "jpeg" if ($opt_jpeg);
-    
-    $depth = "../";
-    my $cwd;
-    chomp($cwd = `pwd`);
-    die "need to be in directory Documentation\n" if ( ! ($cwd =~ /Documentation$/));
-    get_version;
-    set_html_footer;
-
-
-    $depth = "../../";
-
-    chdir ("out");
-    $ENV{"TEXINPUTS"} .= ":$depth/input/:";
-    $ENV{"LILYINCLUDE"} = "$depth/input/";
-
-
-    gen_html;
-    copy_files;
-    if (! $opt_noexamples) {
-       gen_examples;
-       gen_list;
-    }
-    set_images;
-
-    edit_html;
-    docxx_update;
-    do_tar;
-}
-
-main;
diff --git a/input/book.ly b/input/book.ly
deleted file mode 100644 (file)
index 534fe34..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-%{
-MudelaHeader
-
- filename: book.ly
- title:
- description: demonstrate inclusion of Lily output into (La)TeX
-documents
- composers:
- entered-by:
- copyright:
-
- Tested Features: natural width
-EndMudelaHeader
-%}
-\version "0.0.61";
-
-
-
-\score {\melodic { \clef "bass";
-       [c8 g e' d'] [e' g e' g]
-       [c  a f' e'] [f' a f' a]
-       }
-       
-       \paper { 
-               \output "bach1.out";
-               linewidth =-1.0\cm;
-       }
-}
-
-\score {\melodic { \clef "bass";
-       [c8() g e'() d'] [e'( g e') g]
-       [c()  a f' ()e'] [f'( a f') a]
-               }
-       \paper { 
-               \output "bach2.out";
-               linewidth= -1.0\cm;
-       }
-}
-
-\score {\melodic { \clef "bass";
-       [c8 g( e' d'] [)e' g( e' )g]
-       [c  a( f' e'] [)f' a( f' )a]
-               }
-       \paper { 
-               \output "bach3.out";
-               linewidth = -1.0\cm;
-               unitspace = 2.0\cm;
-       }
-}
diff --git a/input/book.tex b/input/book.tex
deleted file mode 100644 (file)
index 9a1e164..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-% should be scriptified, probably
-\documentclass{article}
-\input lilyponddefs
-\title{Bach's Cello suites}
-
-\author{A.U.Thor}
-\begin{document}
-\maketitle
-
-\section{Banjo}
-
-It is normal to have some text around various figures. Such as this
-text which is merely to add some weight to the page. In het midden van
-mei/Als de nachtegaals zingen/En de avondglans huwt/aan de morgense schijn.
-Als de schuchtere geur/ van de bloeiende seringen/zich mengt met de
-geur/van de late jasmijn. Op een tochtje langs de rijn.
-
-\def\EndLilyPondOutput{}
-\begin{figure}[h]
-  \begin{center}
-    \leavevmode
-    \input bach1.out
-    \caption{original}
-  \end{center}
-\end{figure}
-
-Voglio centocinquante gramme di gorgonzola, tre di questi pannini e due bionde
-ragazze con ciocolatta e panna, per favore. Presto! Non posso parlare
-o scrivere la lingua italiana, ma provo.
-
-\section{Hammond-organ and electric guitar}
-
-It is normal to have some text around various figures. Such as this
-text which is merely to add some weight to the page. In het midden van
-mei/Als de nachtegaals zingen/En de avondglans huwt/aan de morgense schijn.
-Als de schuchtere geur/ van de bloeiende seringen/zich mengt met de
-geur/van de late jasmijn. Op een tochtje langs de rijn.
-
-\begin{figure}[h]
-  \begin{center}
-    \leavevmode
-\input bach2.out
-    
-    \caption{interpretation 1}
-  \end{center}
-\end{figure}
-
-It is normal to have some text around various figures. Such as this
-text which is merely to add some weight to the page. In het midden van
-mei/Als de nachtegaals zingen/En de avondglans huwt/aan de morgense schijn.
-Als de schuchtere geur/ van de bloeiende seringen/zich mengt met de
-geur/van de late jasmijn. Op een tochtje langs de rijn.
-
-\begin{figure}[h]
-  \begin{center}
-    \leavevmode
-\input bach3.out
-    
-    \caption{interpretation 2}
-  \end{center}
-\end{figure}
-
-Voglio centocinquante gramme di gorgonzola, tre di questi pannini e due bionde
-ragazze con ciocolatta e panna, per favore. Presto! Non posso parlare
-o scrivere la lingua italiana, ma provo.
-
-\end{document}
diff --git a/lily/calcideal.cc b/lily/calcideal.cc
deleted file mode 100644 (file)
index 11c1aa2..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-  calcideal.cc -- implement Score::calc_idealspacing()
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-*/
-
-#include "idealspacing.hh"
-#include "score.hh"
-#include "p-score.hh"
-#include "paper-def.hh"
-#include "score-column.hh"
-#include "dimen.hh"
-
-
-/**
-  generate springs between columns.
-
-  TODO: This needs A LOT of rethinking.  Spacing should take optical
-  effects into account, should be local (measure wide), should check
-  smallest divisions.
-    
-  plus, calc_idealspacing() should be called per line.
-  */
-void
-Score::calc_idealspacing()
-{
-    iter_top(cols_,i);
-
-    for (; i.ok(); i++) {
-       if (!i->used_b())
-           continue;
-       
-       PCursor<Score_column*> j(i+1);
-
-       if (i->musical_b()) {
-           assert(j.ok());
-           for (int n=0; n < i->durations.size(); n++) {
-               Moment d = i->durations[n];
-               Real dist = paper_p_->duration_to_dist(d);
-               Real strength =  i->durations[0]/i->durations[n];
-               assert(strength <= 1.0);
-               
-               while (j.ok()) {
-                   if (j->used_b() && j->when() >= d + i->when() )
-                       break;
-                   j++;
-               }
-               Moment delta_desired = j->when() - (d+i->when());
-               dist += paper_p_->duration_to_dist(delta_desired);
-               if (!j->musical_b())
-                   dist += 1 PT; // ugh
-               pscore_p_->connect(i->pcol_l_, j->pcol_l_, dist, strength);
-           }
-       } else if (j.ok()) {
-           while  (!j->used_b())
-               j++;
-           
-           /* attach i to the next column in use. This exists, since
-             the last col is breakable, and therefore in use
-             */
-           
-           Moment d = j->when() - i->when();
-           Real dist = (d) ? paper_p_->duration_to_dist(d) : 2 PT; // todo
-           
-           pscore_p_->connect(i->pcol_l_, j->pcol_l_, dist, (d) ? 1.0:1.0);
-       }
-       // !j.ok() might hold if we're at the last col.
-    }
-}
-
-
diff --git a/lily/linespace.cc b/lily/linespace.cc
deleted file mode 100644 (file)
index c2fec09..0000000
+++ /dev/null
@@ -1,388 +0,0 @@
-#include <math.h>
-#include "linespace.hh"
-#include "p-col.hh"
-#include "debug.hh"
-#include "qlp.hh"
-#include "unionfind.hh"
-#include "idealspacing.hh"
-#include "pointer.tcc"
-
-const Real COLFUDGE=1e-3;
-template class P<Real>;                // ugh.
-
-bool
-Spacing_problem::contains(PCol const *w)
-{
-    for (int i=0; i< cols.size(); i++)
-       if (cols[i].pcol_l_ == w)
-           return true;
-    return false;
-}
-
-int 
-Spacing_problem::col_id(PCol const *w)const
-{
-    for (int i=0; i< cols.size(); i++)
-       if (cols[i].pcol_l_ == w)
-           return i;
-    assert(false);
-    return -1;
-}
-
-void
-Spacing_problem::OK() const
-{
-#ifndef NDEBUG
-    for (int i = 1; i < cols.size(); i++)
-       assert(cols[i].rank_i_ > cols[i-1].rank_i_);
-    for (int i = 1; i < loose_col_arr_.size(); i++)
-       assert(loose_col_arr_[i].rank_i_ > loose_col_arr_[i-1].rank_i_);
-#endif 
-}
-
-/**
-  Make sure no unconnected columns happen. 
- */
-void
-Spacing_problem::handle_loose_cols() 
-{
-    Union_find connected(cols.size());
-    Array<int> fixed;
-    for (int i=0; i < ideals.size(); i++) {
-       assert(ideals[i]->hooke > 0);
-       int l = col_id(ideals[i]->left);
-       int r = col_id(ideals[i]->right);
-       connected.connect(l,r);         
-    }
-    for (int i = 0; i < cols.size(); i++)
-       if (cols[i].fixed())
-           fixed.push(i);
-    for (int i=1; i < fixed.size(); i++)
-       connected.connect(fixed[i-1], fixed[i]);
-
-    for (int i = cols.size(); i--; ) {
-       if (! connected.equiv(fixed[0], i)) {
-           warning("unconnected column: " + String(i));
-           loosen_column(i);
-       }
-    }
-    OK();
-}
-
-
-/** Guess a stupid position for loose columns.  Put loose columns at
-  regular distances from enclosing calced columns */
-void
-Spacing_problem::position_loose_cols(Vector &sol_vec)const
-{
-    if (!loose_col_arr_.size())
-       return ; 
-    assert(sol_vec.dim());
-    Array<bool> fix_b_arr;
-    fix_b_arr.set_size(cols.size() + loose_col_arr_.size());
-    Real utter_right_f=-INFTY;
-    Real utter_left_f =INFTY;
-    for (int i=0; i < loose_col_arr_.size(); i++) {
-       fix_b_arr[loose_col_arr_[i].rank_i_] = false;
-    }
-    for (int i=0; i < cols.size(); i++) {
-       int r= cols[i].rank_i_;
-       fix_b_arr[r] = true;
-       utter_right_f = utter_right_f >? sol_vec(i);
-       utter_left_f = utter_left_f <? sol_vec(i);
-    }
-    Vector v(fix_b_arr.size());
-    int j =0;
-    int k =0;
-    for (int i=0; i < v.dim(); i++) {
-       if (fix_b_arr[i]) {
-           assert(cols[j].rank_i_ == i);
-           v(i) = sol_vec(j++);
-       } else {
-           Real left_pos_f = 
-               (j>0) ?sol_vec(j-1) : utter_left_f;
-           Real right_pos_f = 
-               (j < sol_vec.dim()) ? sol_vec(j) : utter_right_f;
-           int left_rank = (j>0) ? cols[j-1].rank_i_ : 0;
-           int right_rank = (j<sol_vec.dim()) ? cols[j].rank_i_ : sol_vec.dim();
-
-           int d_r = right_rank - left_rank;
-           Colinfo loose=loose_col_arr_[k++];
-           int r = loose.rank_i_ ;
-           assert(r > left_rank && r < right_rank);
-
-           v(i) =  (r - left_rank)*left_pos_f/ d_r + 
-               (right_rank - r) *right_pos_f /d_r;
-       }
-    }
-    sol_vec = v;
-}
-bool
-Spacing_problem::check_constraints(Vector v) const 
-{
-    int dim=v.dim();
-    assert(dim == cols.size());
-    
-    for (int i=0; i < dim; i++) {
-
-       if (cols[i].fixed()&&
-           abs(cols[i].fixed_position() - v(i)) > COLFUDGE) 
-           return false;
-       
-       if (!i) 
-           continue;
-       
-       Real mindist=cols[i-1].minright()
-           +cols[i].minleft();
-
-       // ugh... compares
-       Real dif =v(i) - v(i-1)- mindist;
-       bool b = (dif > - COLFUDGE);
-       
-
-       if (!b)
-           return false;
-
-    }
-    return true;
-}
-
-void
-Spacing_problem::prepare()
-{
-    handle_loose_cols();
-}
-
-bool
-Spacing_problem::check_feasible() const
-{
-    Vector sol(try_initial_solution());
-    return check_constraints(sol);     
-}
-
-/// generate a solution which obeys the min distances and fixed positions
-Vector
-Spacing_problem::try_initial_solution() const
-{
-    int dim=cols.size();
-    Vector initsol(dim);
-    for (int i=0; i < dim; i++) {
-       if (cols[i].fixed()) {
-           initsol(i)=cols[i].fixed_position();        
-
-           if (i > 0) {
-               Real r =initsol(i-1)  + cols[i-1].minright();
-               if (initsol(i) < r ) {
-                   warning("overriding fixed position");
-                   initsol(i) =r;
-               } 
-           }
-               
-       } else {
-           Real mindist=cols[i-1].minright()
-               +cols[i].minleft();
-           if (mindist < 0.0)
-               warning("Excentric column");
-           initsol(i)=initsol(i-1)+mindist;
-       }       
-    }
-
-    return initsol;
-}
-
-
-
-Vector
-Spacing_problem::find_initial_solution() const
-{
-    Vector v(try_initial_solution());     
-    assert(check_constraints(v));
-    return v;
-}
-
-// generate the matrices
-void
-Spacing_problem::make_matrices(Matrix &quad, Vector &lin, Real &c) const
-{
-    quad.fill(0);
-    lin.fill(0);
-    c = 0;
-    for (int j=0; j < ideals.size(); j++){
-       Idealspacing const*i=ideals[j];
-       int l = col_id(i->left);
-       int r = col_id(i->right);
-
-       quad(r,r) += i->hooke;
-       quad(r,l) -= i->hooke;
-       quad(l,r) -= i->hooke;
-       quad(l,l) += i->hooke;
-
-       lin(r) -= i->space*i->hooke;
-       lin(l) += i->space*i->hooke;
-
-       c += sqr(i->space);
-    }
-}
-
-// put the constraints into the LP problem
-void
-Spacing_problem::make_constraints(Mixed_qp& lp) const
-{    
-    int dim=cols.size();
-    for (int j=0; j < dim; j++) {
-       Colinfo c=cols[j];
-       if (c.fixed()) {
-           lp.add_fixed_var(j,c.fixed_position());         
-       }
-       if (j > 0){
-           Vector c1(dim);
-           
-           c1(j)=1.0 ;
-           c1(j-1)=-1.0 ;
-           lp.add_inequality_cons(c1, cols[j-1].minright() +
-                                  cols[j].minleft());
-       }
-    }
-}
-
-Array<Real>
-Spacing_problem::solve() const
-{
-    assert(check_feasible());
-    print();
-
-    Mixed_qp lp(cols.size());
-    make_matrices(lp.quad,lp.lin, lp.const_term);
-    make_constraints(lp);    
-    Vector start=find_initial_solution();    
-    Vector sol(lp.solve(start));
-    if (!check_constraints(sol)) {
-       WARN << "solution doesn't satisfy constraints.\n" ;
-    }
-    Real energy_f =lp.eval(sol);
-    position_loose_cols(sol);
-
-    Array<Real> posns(sol);
-
-    posns.push(energy_f);
-    return posns;
-}
-
-/**
-    add one column to the problem.
-*/    
-void
-Spacing_problem::add_column(PCol  *col, bool fixed, Real fixpos)
-{
-    Colinfo c(col,(fixed)? &fixpos :  0);
-    if (cols.size())
-       c.rank_i_ = cols.top().rank_i_+1;
-    else
-       c.rank_i_ = 0;
-    cols.push(c);
-}
-
-Array<PCol*>
-Spacing_problem::error_pcol_l_arr()const
-{
-    Array<PCol*> retval;
-    for (int i=0; i< cols.size(); i++)
-       if (cols[i].ugh_b_)
-           retval.push(cols[i].pcol_l_);
-    for (int i=0;  i < loose_col_arr_.size(); i++) {
-       retval.push(loose_col_arr_[i].pcol_l_);
-    }
-    return retval;
-}
-
-void
-Spacing_problem::loosen_column(int i)
-{
-    Colinfo c=cols.get(i);
-    for (int i=0; i < ideals.size(); ) {
-       Idealspacing const *i_l =ideals[i];
-       if (i_l->left == c.pcol_l_ || i_l->right == c.pcol_l_)
-           ideals.del(i);
-       else
-           i++;
-    }
-    c.ugh_b_ = true;
-    
-    int i=0;
-    for (; i < loose_col_arr_.size(); i++) {
-       if (loose_col_arr_[i].rank_i_ > c.rank_i_)
-           break;
-    }
-    loose_col_arr_.insert(c,i);
-}
-
-void
-Spacing_problem::add_ideal(Idealspacing const *i)
-{
-    PCol const *l =i->left;
-    PCol const *r= i->right;
-    
-    if (!contains(l) || !contains(r)) {
-       return;
-    }
-    ideals.push(i);
-}
-
-void
-Spacing_problem::print_ideal(Idealspacing const *id)const
-{
-#ifndef NPRINT
-    int l = col_id(id->left);
-    int r = col_id(id->right);
-
-    mtor << "between " << l <<","<<r<<":" ;
-    id->print();
-#endif
-}
-
-void
-Spacing_problem::print() const
-{
-#ifndef NPRINT
-    for (int i=0; i < cols.size(); i++) {
-       mtor << "col " << i<<' ';
-       cols[i].print();
-    }
-    for (int i=0; i < ideals.size(); i++) {
-       print_ideal(ideals[i]);
-    }
-#endif
-    
-}
-
-/* **************** */
-
-void
-Colinfo::print() const
-{
-#ifndef NPRINT
-    mtor << "column { ";
-    if (fixed())
-       mtor << "fixed at " << fixed_position()<<", ";
-    assert(pcol_l_);
-    mtor << "[" << minleft() << ", " << minright() << "]";
-    mtor <<"}\n";
-#endif
-}
-
-Colinfo::Colinfo(PCol *col_l, Real const *fixed_C)
-{
-    if (fixed_C)
-       fixpos_p_.set_l(fixed_C);
-    ugh_b_ = false;
-    pcol_l_ = col_l;
-    width = pcol_l_->width();
-}
-
-
-Colinfo::Colinfo()
-{
-    ugh_b_ = false;
-    pcol_l_ =0;
-}
diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc
deleted file mode 100644 (file)
index 28d1086..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-  lyric-engraver.cc -- implement Lyric_engraver
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-*/
-
-#include "lyric-engraver.hh"
-#include "musical-request.hh"
-#include "text-item.hh"
-#include "paper-def.hh"
-#include "lookup.hh"
-
-Lyric_engraver::Lyric_engraver()
-{
-}
-
-bool
-Lyric_engraver::do_try_request(Request*r)
-{
-    Musical_req * m =r->musical();
-    if (!m || ! m->lreq_l()) 
-       return false;
-    lreq_arr_.push(m->lreq_l());
-
-    return true;
-}
-
-void
-Lyric_engraver::do_process_requests()
-{
-    Text_item * last_item_l =0;
-    for (int i=0; i < lreq_arr_.size(); i++) {
-       Text_item *lp = new Text_item(lreq_arr_[i]->tdef_p_ );
-       lp->dir_i_ = -1;
-       lp->fat_b_ = true;
-       if (last_item_l)
-           lp->add_support(last_item_l);
-       last_item_l = lp;
-       typeset_element(lp);
-    }
-}
-
-void
-Lyric_engraver::do_post_move_processing()
-{
-    lreq_arr_.set_size(0);
-}
-
-
-IMPLEMENT_STATIC_NAME(Lyric_engraver);
-IMPLEMENT_IS_TYPE_B1(Lyric_engraver,Engraver);
-ADD_THIS_ENGRAVER(Lyric_engraver);
diff --git a/lily/midi-output.cc b/lily/midi-output.cc
deleted file mode 100644 (file)
index 1a880fa..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-  midioutput.cc -- implement Midi_output
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>, Jan Nieuwenhuizen <jan@digicash.com> 
-*/
-
-#if 0
-#include "time.h"
-#include "main.hh"
-#include "source.hh"
-#include "proto.hh"
-#include "plist.hh"
-#include "string.hh"
-#include "string-convert.hh"
-#include "debug.hh"
-#include "score.hh"
-#include "main.hh"
-#include "midi-stream.hh"
-#include "midi-def.hh"
-#include "midi-output.hh"
-#include "midi-walker.hh"
-#include "midi-item.hh"
-#include "staff-column.hh"
-#include "musical-request.hh"
-#include "p-score.hh"
-
-Midi_output::Midi_output(Score* score_l, Midi_def* midi_l )
-{
-    midi_l_ = midi_l;
-    score_l_ = score_l;
-
-    Midi_stream midi_stream(midi_l->outfile_str_, 
-        // don-t forget: extra track 0 for tempo/copyright stuff...
-       score_l_->staffs_.size() + 1, 
-       384 );
-    midi_stream_l_ = &midi_stream;
-
-    header();
-    staffs();
-}
-
-void
-Midi_output::do_staff(Staff*st_l,int track_i)
-{
-    Midi_track midi_track( track_i );
-
-    // set track name
-    Midi_text track_name( Midi_text::TRACK_NAME, "Track " + String_convert::i2dec_str( track_i, 0, '0' ) );
-    midi_track.add( Moment( 0 ), &track_name );
-
-    // set instrument :-)
-    Midi_text instrument_name( Midi_text::INSTRUMENT_NAME, "piano" );
-    midi_track.add( Moment( 0 ), &instrument_name );
-
-    Midi_tempo midi_tempo( midi_l_->get_tempo_i( Moment( 1, 4 ) ) );
-    midi_track.add( Moment( 0 ), &midi_tempo );
-
-    for (Midi_walker w (st_l, &midi_track); w.ok(); w++)
-       w.do_process_requests();
-
-    *midi_stream_l_  << midi_track;
-}  
-
-void
-Midi_output::header()
-{
-    Midi_track midi_track( 0 );
-    
-    time_t t = time( 0 );
-
-    // perhaps multiple text events?
-    String str = String( "Creator: " ) + get_version_str() + "\n";
-
-    Midi_text creator( Midi_text::TEXT, str );
-    midi_track.add( Moment( 0 ), &creator );
-
-    str = "Generated, at ";
-    str += ctime( &t );
-    str = str.left_str( str.length_i() - 1 );
-    str += ",\n";
-    Midi_text generate( Midi_text::TEXT, str );
-    midi_track.add( Moment( 0 ), &generate );
-
-#if 0 // TODO!
-    Source_file* sourcefile_l = source_l_g->sourcefile_l( score_l_->defined_ch_C_ );
-    if ( sourcefile_l ) {
-       str += "from musical definition: " 
-           + sourcefile_l->file_line_no_str(score_l_->defined_ch_C_);
-
-    }
-#endif
-    Midi_text from( Midi_text::TEXT, str );
-    midi_track.add( Moment( 0 ), &from );
-
-    // set track name
-    Midi_text track_name( Midi_text::TRACK_NAME, "Track " + String_convert::i2dec_str( 0, 0, '0' ) );
-    midi_track.add( Moment( 0 ), &track_name );
-
-    // ugh, to please lily when reparsing mi2mu output.
-    // lily currently barfs when no meter present.
-    /* are you sure? init is to 4/4 HWN */
-    Midi_time midi_time( 4, 4, 18 );
-    midi_track.add( Moment( 0.0 ), &midi_time );
-
-    *midi_stream_l_  << midi_track;
-}
-
-void
-Midi_output::staffs()
-{
-    int track_i = 1;
-    for (iter_top(score_l_->staffs_,i); i.ok(); i++)
-       do_staff(i, track_i++);
-}
-
-#endif
diff --git a/mf/Makefile b/mf/Makefile
deleted file mode 100644 (file)
index 48682ab..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#
-# project  LilyPond -- the musical typesetter
-# title           makefile for yet to add in MF files
-# file    ../Makefile 
-#
-# Copyright (c) 1997 by
-#      Jan Nieuwenhuizen <jan@digicash.com>
-#      Han-Wen Nienhuys <hanwen@stack.nl>
-#
-
-# subdir level:
-#
-depth = ..
-#
-
-# generic variables:
-#
-include ./$(depth)/make/Variables.make 
-
-include ./$(depth)/.version
-
-# descent order into subdirectories:
-#
-SUBDIRS =
-#
-
-#
-include ./$(depth)/make/Files.make
-MFFILES:=$(wildcard *.mf)
-
-EXTRA_DISTFILES = $(MFFILES) README
-
-
-# list of custom libraries:
-#
-CUSTOMLIBES = \
-
-LOADLIBES +=
-#
-
-# main target of this module:
-#
-MAINTARGET = 
-
-default: $(MAINTARGET)
-#
-
-# generic targets and rules:
-#
-include ./$(depth)/make/Targets.make
-include ./$(depth)/make/Rules.make
-#
-
-lily-mfdir = $(MFDIR)/lilypond
-
-localinstall:
-       $(INSTALL) -d $(lily-mfdir)
-       $(INSTALL) -m 644 $(MFFILES) $(lily-mfdir)
-
-localuninstall:
-       for i in $(MFFILES); do rm -f $(lily-mfdir)/$$i; done
-       -rmdir $(lily-mfdir)
diff --git a/mf/README b/mf/README
deleted file mode 100644 (file)
index 98ec47c..0000000
--- a/mf/README
+++ /dev/null
@@ -1,43 +0,0 @@
-This is from the package MusixTeX, version T.73 (Taupin version.)
-
-The documentation states:
-
-       \begin{center}
-
-       Although one of the authors contested that point once the
-       common work had begun, \musixtex{} may be freely copied,
-       duplicated and used. However, since it is intended to be a
-       \ital{freeware} you are not allowed to sell it, and the fee
-       you may ask for distributing it must be limited to
-       maintenance, support and duplication costs. You may take parts
-       of it to include in other packages, but no packages called
-       \musixtex{} may be distributed under this name if different
-       from the original distribution (except obvious bug corrections
-       or text font adaptations for specific implementations).
-
-       \musixtex{} may be included in further commercial packages,
-       provided that no fee is charged for \musixtex{} itself.
-
-       \end{center}
-
-
-A part (the fonts) are included in this package, which is not called
-\musixtex, so this not a copyright infringement.
-
-
-MusixTeX is copyright 19?? by:
-
-       Daniel Taupin, 
-
-       Laboratoire de Physique des Solides (associ\'e au CNRS),
-       b\^atiment 510, Centre Universitaire, F-91405 ORSAY Cedex
-       <taupin@lps.u-psud.fr>
-
-       Ross Mitchell 
-
-       CSIRO Division of Atmospheric Research, Private Bag No.1,
-       Mordialloc, Victoria 3195, Australia
-
-       Andreas Egler
-
-       (Ruhr--Uni--Bochum) Ursulastr. 32 D-44793 Bochum
diff --git a/mf/musexgen.mf b/mf/musexgen.mf
deleted file mode 100644 (file)
index 1b73e01..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-%  this is musexgen.mf
-
-% Here are two types of pianobrackets available, they are absolute compatible,
-% so choose this one you prefer (search for '%!!!')
-
-path p;
-picture save_pic;
-
-pen thin_pen, med_pen;
-thin_pen:= pencircle scaled max(1,.2pt+blacker);
-med_pen:= pencircle scaled med;
-
-%%%%%%%
-message ("<big braces>");
-%%%%%%%
-
-firstbrace:=20;  % smallest brace is 2*20 pt (\simeq 14mm)
-lastbrace:=67;   % largest brace is 2*67 pt (\simeq 47mm)
-
-%%% from Stanislav Kneifl
-
-def drawpianobracket (expr height) =
-  u# := 1nhh#/5pt# * 1pt#;
-  v# := (height/40) * 1pt#;
-  define_pixels (u, v);
-%  beginchar (height-firstbrace, 1.25nhh#, 0, 0);
-  beginchar (height-firstbrace, 0, 0, 0);
-    z1 = origin;
-    z2 = (4.7u, 7v);
-    z3 = (3.6u, 16.5v);
-    z4 = (1.9u, 25v);
-    z5 = (2.28u, 32v);
-    z6 = (w, 40v);
-    penpos1 (max(1,0.1u), 125);
-    penpos2 (1.2u, 180);
-    penpos3 (3.2u, 195);
-    penpos4 (2.5u, 180);
-    penpos5 (1.14u, 180);
-    penpos6 (max(2,0.3u), 150);
-    penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
-    currenttransform := identity reflectedabout ((0,0),(1,0));
-    penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
-    currenttransform := identity;
-% inserted
-    currentpicture:=currentpicture shifted (round(-1.75nhh), 0);
-%
-  endchar;
-enddef;
-
-def bigbrace(expr v) =
-  beginchar (v-firstbrace, 0, 0, 0);
-  " brace vsize "&decimal round(2v*pt#)&"pt";
-    vwidth:=v*pt;
-    hwidth:=max(.1vwidth,3.25pt);
-    hwidth:=min(hwidth,6.5pt);
-    actwidth:=.035vwidth;
-    x1=.25nhw;  y1=vwidth;
-    x2l=-.8hwidth; y2=2/3vwidth;
-    x3r=.2hwidth; y3=1/3vwidth;
-    x4=-hwidth; y4=0;
-    penpos1(max(1,.25pt),-35);
-    penpos2(1.5med+actwidth,40);
-    penpos3(1.75med+actwidth,45);
-    penpos4(max(1,.2pt),-90);
-    penstroke z1e..z2e..z3e..{left+sw}z4e;
-    currentpen:= pencircle; draw z1..z2..z3..{left+sw}z4;
-    addto currentpicture also currentpicture reflectedabout (origin, right);
-    penlabels(1,2,3,4);
-    currentpicture:= currentpicture shifted (round(-.75nhh), 0);
-  endchar;
-enddef;
-
-%!!! comment the line 'bigbrace' and uncomment the line 'drawpianobracket'
-%    or leave it like it is !!!
-
-for v=firstbrace upto lastbrace :
-    bigbrace (v);
-%    drawpianobracket (v);
-endfor;
-
-%%%%%%%
-message ("<glissandi-elements>");
-%%%%%%%
-%  glissando{slide} (slope [degree])
-
-def glissando (expr theta)=
-  x1=-1; y1=0; z2=z1+(.5nhw,0); z3=z1+(nhw+1,0);
-  p:= z1{1.25up+right}..{1.25down+right}z2{1.25down+right}..{1.25up+right}z3;
-  pickup penrazor scaled (.075nhw+thick) rotated (theta+65);
-  draw p rotated theta;
-  labels (1,2,3);
-enddef;
-
-for slope=1 upto 8:
-
-  beginchar(56+slope-1, (cosd(10slope))*nhw#,(sind(10slope))*nhw#, 0);
-  " glissando element slope "&decimal (10slope)&" degree";
-    glissando (10slope);
-    save_pic:= currentpicture;
-  endchar;
-
-  beginchar(64+slope-1, (cosd(10slope))*nhw#, (sind(10slope))*nhw#, 0);
-  " glissando element slope "&decimal (-10slope)&" degree";
-    currentpicture:= save_pic reflectedabout (origin, right);
-  endchar;
-
-endfor;
-
-%%%%%%%
-message ("<guitar chords>");
-%%%%%%%
-def tabulatur (expr nd)=
-  hwidth:=1/5w;
-  x1=x2=y2=y3=0; x3=w; y1=-nd;
-  fill unitsquare xscaled (w+2thinwidth) yscaled (med+.2pt)
-       shifted(-thinwidth,0);
-  pickup thin_pen;
-  for v=1 upto 5 :
-    draw (z2--z3) shifted (0,v*-hwidth);
-  endfor;
-
-  for v=0 upto 5 :
-    draw (z1--z2) shifted (v*hwidth,0);
-  endfor;
-  labels (1,2,3);
-enddef;
-
-%beginchar(72, 15/4nhw#, 0, 0);" grid";
-%  tabulatur (54/10nhh);
-%endchar;
-
-%beginchar(73, 15/8nhw#, 0, 0); " dot";
-%  fill fullcircle scaled .675nhh shifted (w,-.45nhh);
-%endchar;
-
-%beginchar(74, 15/4nhw#, 0, 0); " bar";
-%  fill unitsquare xscaled w yscaled .3nhh shifted (0,-.6nhh);
-%endchar;
-
-shift:=.15nhh;
-def Circle (expr nh)=
-  x1l=.1w; x2=x4=.5w; x3l=.9w;
-  y1=y3=.5nh+shift; y2=.1nh+shift; y4=.9nh+shift;
-  penpos1(med, 0);
-  penpos2(thinwidth,90);
-  penpos3(med,180);
-  penpos4(thinwidth, 270);
-  penstroke z1e..z2e..z3e..z4e..cycle;
-  pickup pencircle; draw z1..z2..z3..z4..cycle;
-enddef;
-
-%beginchar(75, 3/4nhw#, 0, 0); " circle";
-%  Circle (.9nhh);
-%endchar;
-
-def Cross (expr nh)=
-  x1=x3=.2w; x2=x4=.8w;
-  y1=y4=.2nh+shift; y2=y3=nh-.2nh+shift;
-  pickup med_pen;
-  draw z1--z2; draw z3--z4;
-% labels (1,2,3,4);
-enddef;
-
-%beginchar(76, 3/4nhw#, 0, 0); " cross";
-%  Cross (.9nhh);
-%endchar;
-
-%beginchar(77, 3/4nhw#, 0, 0); " blank";
-%endchar;
-
-beginchar(72, 3nhw#, 0, 0);" small grid";
-  tabulatur (108/25nhh);
-endchar;
-
-beginchar(73, 3/2nhw#, 0, 0); " small dot";
-  fill fullcircle scaled .54nhh shifted (w,-.36nhh);
-endchar;
-
-beginchar(74, 3nhw#, 0, 0); " small bar";
-  fill unitsquare xscaled w yscaled .24nhh shifted (0,-.48nhh);
-endchar;
-
-beginchar(75, 3/5nhw#, 0, 0); " small circle";
-  Circle (.72nhh);
-endchar;
-
-beginchar(76, 3/5nhw#, 0, 0); " small cross";
-  Cross (.72nhh);
-endchar;
-
-% the next seems to be senseless, but it isn't
-
-beginchar(77, 3/5nhw#, 0, 0); " small blank";
-endchar;
diff --git a/mf/musix11.mf b/mf/musix11.mf
deleted file mode 100644 (file)
index fd70f02..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-font_identifier:="musix11";
-
-mode_setup;
-
-font_size 10.24pt#;
-
-nhh#:=2.56pt#;
-nhw#:=3.072pt#;
-gregwidth#:=0.5*sqrt(2)*nhw#;
-
-thin#:=1/50designsize;
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth := 0.064pt;
-beamht#:=0.48nhh#;
-
-define_pixels(nhh,nhw,beamht,gregwidth);
-define_blacker_pixels(thin,med,thick);
-
-pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
-ne = up+right; se = down+right; sw = down+left; nw = up+left;
-
-font_x_height nhh#;
-font_quad nhw#;
-
-input musixgen
diff --git a/mf/musix13.mf b/mf/musix13.mf
deleted file mode 100644 (file)
index 918db5f..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-font_identifier:="musix13";
-
-mode_setup;
-
-font_size 12.8pt#;
-
-nhh#:=3.2pt#;
-nhw#:=3.84pt#;
-gregwidth#:=0.5*sqrt(2)*nhw#;
-
-thin#:=1/50designsize;
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth := 0.08pt;
-beamht#:=0.48nhh#;
-
-define_pixels(nhh,nhw,beamht,gregwidth);
-define_blacker_pixels(thin,med,thick);
-
-pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
-ne = up+right; se = down+right; sw = down+left; nw = up+left;
-
-font_x_height nhh#;
-font_quad nhw#;
-
-input musixgen
diff --git a/mf/musix16.mf b/mf/musix16.mf
deleted file mode 100644 (file)
index 32dbddd..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-font_identifier:="musix16";
-
-mode_setup;
-
-font_size 16pt#;
-
-nhh#:=4pt#;
-nhw#:=4.8pt#;
-gregwidth#:=0.5*sqrt(2)*nhw#;
-
-thin#:=1/50designsize;
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth := 0.1pt;
-beamht#:=0.48nhh#;
-
-define_pixels(nhh,nhw,beamht,gregwidth);
-define_blacker_pixels(thin,med,thick);
-
-pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
-ne = up+right; se = down+right; sw = down+left; nw = up+left;
-
-font_x_height nhh#;
-font_quad nhw#;
-
-input musixgen
diff --git a/mf/musix20.mf b/mf/musix20.mf
deleted file mode 100644 (file)
index 0bdebdf..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-font_identifier:="musix20";
-
-mode_setup;
-
-font_size 20pt#;
-
-nhh#:=5pt#;
-nhw#:=1.2*nhh#;
-gregwidth#:=0.5*sqrt(2)*nhw#;
-
-thin#:=1/50designsize;
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth := 0.125pt;
-beamht#:=0.48nhh#;
-
-define_pixels(nhh,nhw,beamht,gregwidth);
-define_blacker_pixels(thin,med,thick);
-
-pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
-ne = up+right; se = down+right; sw = down+left; nw = up+left;
-
-font_x_height nhh#;
-font_quad nhw#;
-
-input musixgen
diff --git a/mf/musix24.mf b/mf/musix24.mf
deleted file mode 100644 (file)
index 0b2dc46..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-font_identifier:="musix24";
-
-mode_setup;
-
-font_size 24pt#;
-
-nhh#:=6pt#;
-nhw#:=1.2nhh#;
-gregwidth#:=0.5*sqrt(2)*nhw#;
-
-thin#:=1/50designsize;
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth := 0.15pt;
-beamht#:=0.48nhh#;
-
-define_pixels(nhh,nhw,beamht,gregwidth);
-define_blacker_pixels(thin,med,thick);
-
-pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
-ne = up+right; se = down+right; sw = down+left; nw = up+left;
-
-font_x_height nhh#;
-font_quad nhw#;
-
-input musixgen
diff --git a/mf/musix25.mf b/mf/musix25.mf
deleted file mode 100644 (file)
index 529c7ec..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-font_identifier:="musix25";
-
-mode_setup;
-
-font_size 25pt#;
-
-nhh#:=6.25pt#;
-nhw#:=7.5pt#;
-gregwidth#:=0.5*sqrt(2)*nhw#;
-
-thin#:=1/50designsize;
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth := 0.15pt;
-beamht#:=0.48nhh#;
-
-define_pixels(nhh,nhw,beamht,gregwidth);
-define_blacker_pixels(thin,med,thick);
-
-pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
-ne = up+right; se = down+right; sw = down+left; nw = up+left;
-
-font_x_height nhh#;
-font_quad nhw#;
-
-input musixgen
diff --git a/mf/musix29.mf b/mf/musix29.mf
deleted file mode 100644 (file)
index 622aeae..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-font_identifier:="musix29";
-
-mode_setup;
-
-font_size 29pt#;
-
-nhh#:=7.2pt#;
-nhw#:=1.2*nhh#;
-gregwidth#:=0.5*sqrt(2)*nhw#;
-
-thin#:=1/50designsize;
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth := 0.15pt;
-beamht#:=0.48nhh#;
-
-define_pixels(nhh,nhw,beamht,gregwidth);
-define_blacker_pixels(thin,med,thick);
-
-pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
-ne = up+right; se = down+right; sw = down+left; nw = up+left;
-
-font_x_height nhh#;
-font_quad nhw#;
-
-input musixgen
diff --git a/mf/musixgen.mf b/mf/musixgen.mf
deleted file mode 100644 (file)
index 622f8d7..0000000
+++ /dev/null
@@ -1,1521 +0,0 @@
-% next changes: - redesigning accidentals
-%               - new accents
-%               - new gregorian symbols
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  this is musixgen.mf (c)
-%
-%  Version T.70 [March 97]
-%               - double shap corrected by Julian Gilbey (strange paths)
-%
-%  Version T.59 [September 96]
-%               - added one more gregorian symbol (126)
-%
-%  Version T.40 [September 95]
-%               - corrected gregorianFclef (123)
-%
-%  Version 0.37 [March 95]
-%               - introduced reverseAllabreve (122)
-%
-%  Version 0.25 [December 94]
-%               - some new chars
-%               - added the beamfonts at pos x+128 to save memory
-%               - changed coda to be centered
-%               - changed the flags
-%               - changed the position of some chars to save time
-%
-%      ...      - trouble shooting, minor changes
-%
-%  Version 0.99b[April 94]
-%               - added the new signs from Daniel Taupin
-%
-%  Version 0.99 [February 94]
-%               -'bravely' changed the tfm informations to save memory
-%               - redesigned chars 14, 15, 35, 36, 53, 71, 72, 80, 81, 86, 93
-%               - removed * 'never used' chars 37-39, 55-57, 69-70,
-%                                              77-79, 91-99, 101-119
-%                         * (de)crescendi 16-23 -> now in musixlin
-%               - introduced some new chars 0-11, 16-23, 37-39, 57, 77-79,
-%                                           99-117
-%               - changed the position of some chars to save memory
-%%%%%%%%%%
-%  this was musicgen.mf
-%
-%  Version 4.89 [September 93] Andreas Egler
-%               - blacker influence now
-%               - redesigned chars 71, 72, 53, 123
-%
-%  Version 4.88 [January 93] Ross Mitchell
-%               - redesigned chars 63, 64, 65, 66
-%
-%  Version 4.87 [] Daniel Taupin
-%
-%  Version 2.00 [] Daniel Taupin
-%
-%  Version 1.00 [August 86] Angelika Schofer/Andrea Steinbach
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% free positions: 125-127, 188-191, 252-255
-% heights : 0, 0.5, 1, 1.5, 2.25, 3.25, 4, 4.75, 5.25
-% depths  : 0, 0.5, 1, 1.5, 2.25
-
-%{{{ This always indicates a lowres fix to avoid seperated points
-%}}} and/or 'invisible' lines. It doesn't affect higher resolutions !!
-
-pair pone, ptwo;
-transform t;
-path p;
-
-hlthick=.2pt;
-lthick=.4pt;
-
-pen line_pen, med_pen, coda_pen, thin_pen;
-med_pen:= pencircle scaled med;
-line_pen:= pencircle scaled lthick;
-coda_pen:= pencircle xscaled 1.25thick yscaled max(1,.75med);
-thin_pen:= pencircle scaled max(1,.25pt);
-
-apog_fact=.75;
-apog_nhw#=apog_fact*nhw#;
-
-picture save_pic, elem_pic;
-
-%%%%%%%%%%%%%%%
-% basic def's %
-%%%%%%%%%%%%%%%
-
-def savepic = save_pic:= currentpicture enddef;
-def save_elempic = elem_pic:= currentpicture enddef;
-def callpic = currentpicture:= save_pic enddef;
-
-def mirror (expr pone, ptwo) =
-  currentpicture:=currentpicture reflectedabout(round(pone),round(ptwo))
-enddef;
-
-def add_mirror (expr pone, ptwo) =
-  addto currentpicture also currentpicture
-        reflectedabout (round(pone), round(ptwo))
-enddef;
-
-def call_mirror (expr pone, ptwo) = callpic; mirror (pone, ptwo) enddef;
-
-def add_shift (expr pone, ptwo) =
-  addto currentpicture also currentpicture shifted (pone, ptwo)
-enddef;
-
-def call_add_shift (expr pone, ptwo) =
-  callpic; add_shift (pone, ptwo)
-enddef;
-
-def add_elempic (expr pone, ptwo) =
-  addto currentpicture also elem_pic shifted (pone, ptwo)
-enddef;
-
-def call_add_save_elempic (expr pone, ptwo) =
-  callpic; add_elempic(pone, ptwo); savepic
-enddef;
-
-def shift_pic (expr pone, ptwo) =
-  currentpicture:=currentpicture shifted (round(pone),round(ptwo))
-enddef;
-
-def fill_circle (expr diameter, zshift) =
-  fill fullcircle scaled diameter shifted zshift
-enddef;
-
-def fill_square (expr xwidth, ywidth, zshift) =
-  fill unitsquare xscaled xwidth yscaled ywidth shifted zshift
-enddef;
-
-%
-
-def staff=
-  for i=0 upto 4:
-    pickup pencircle yscaled lthick;
-    draw (-5nhw,i*nhh)--(5nhw,i*nhh);
-  endfor
-enddef;
-
-def Staff=
-  for i=0 upto 4:
-    pickup pencircle yscaled lthick;
-    draw (-5nhw,(i*nhh-.5nhh))--(5nhw,(i*nhh-.5nhh));
-  endfor
-enddef;
-
-def upstem=
-  fill_square (lthick, 5nhh, (0,-5nhh))
-enddef;
-
-def downstem=
-  fill_square (lthick, 5nhh, (nhw-hlthick,0))
-enddef;
-
-% eobasicdefs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-%%%%%%%
-message ("<dots & par's>");
-%%%%%%%
-
-beginchar(0, 0, 0, 0); "duration dot"; % correct 3=>0 DT
-  fill_circle (1/3nhh+blacker, (1.5nhw, 0));
-  save_elempic;
-  savepic;
-endchar;
-
-beginchar(1, 0, 0, 0); "double duration dot";
-  call_add_shift (.5nhw, 0);
-  savepic;
-endchar;
-
-beginchar(2, 0, 0, 0); "triple duration dot";
-  callpic;
-  add_elempic (nhw, 0);
-endchar;
-
-beginchar(3, 0, nhh#, nhh#); "left parenthesis"; % correct 0=>3 DT
-  x11=x13=-.1nhw; y12=0; x12=-.3nhw; y11=-y13=-.75nhh;
-  pickup med_pen;
-  draw z11..z12..z13;
-  savepic;
-endchar;
-
-beginchar(4, 0, nhh#, nhh#); "right parenthesis";
-  call_mirror ((.5nhw,0),(.5nhw,1));
-endchar;
-
-beginchar(5, 0, nhh#, nhh#); "cautionary parentheses";
-  callpic;
-  add_mirror ((.3nhw, 0),(.3nhw, 1));
-endchar;
-
-beginchar(6, 0, nhh#, nhh#); "cautionary wide parentheses";% -> bb
-  callpic;
-  add_mirror ((.55nhw, 0),(.55nhw, 1));
-endchar;
-
-%%%%%%%
-message("<accents>");
-%%%%%%%
-
-beginchar(120, 0, 1.5nhh#, 0); "harmonics";
-  pickup thin_pen;
-  draw fullcircle scaled .5nhw shifted (.5nhw, nhh);
-endchar;
-
-%beginchar(XX, 0, 1.5nhh#, 0); "???";
-%  x1=0; x2=.5nhw; x3=nhw-x1; x3=x4+.25nhw; x6=x1+med;
-%  y1=y6=y4=y3=nhh; y2=y1+nhh;
-%  z5-z6=whatever*(z2-z1);
-%  z5-z4=whatever*(z2-z3);
-%  fill z1--z2--z3--z4--z5--z6--cycle;
-%  fill_circle (thick, ((x5,y1+.5thick)));
-%  savepic;
-%endchar;
-
-beginchar(20, 0, 2.25nhh#, 0); "upper sforzato";
-  x1=1/12nhw; x2=.5nhw; x3=nhw-x1; x3=x4+.25nhw; x6=x1+med;
-  y1=y6=y4=y3=nhh; y2=y1+nhh;
-  z5-z6=whatever*(z2-z1);
-  z5-z4=whatever*(z2-z3);
-  fill z1--z2--z3--z4--z5--z6--cycle;
-  savepic;
-endchar;
-
-beginchar(21, 0, 0, 2.25nhh#); "lower sforzato";
-  call_mirror (origin, right);
-endchar;
-
-beginchar(22, 0, nhh#, 0); "downbow";
-  fill_square (thin, nhh, (-thin, .4nhh));
-  fill_square (.5nhw+thin+1, .8beamht+thin, (-thin, nhh));
-  add_mirror ((.5nhw,0),(.5nhw,1));
-endchar;
-
-beginchar(23, 0, 1.5nhh#, 0); "upbow";
-  pickup med_pen;
-  draw (.15nhw, 1.7nhh)--(.5nhw, .2nhh);
-  add_mirror ((.5nhw,0),(.5nhw,1));
-endchar;
-
-beginchar(24, 0, nhh#, 0); "upper staccato";
-  fill_circle (.275nhw+blacker, (.5nhw, nhh));
-  savepic;
-endchar;
-
-beginchar(25, 0, 0, nhh#); "lower staccato";
-  call_mirror (origin, right);
-endchar;
-
-beginchar(18, 0, nhh#, 0); "upper tenuto/staccato";
-  fill_square (nhw, 1.25med, (0, 1.2nhh-.625med));
-  fill_circle (.275nhw+blacker, (.5nhw, .9nhh));
-  savepic;
-endchar;
-
-beginchar(19, 0, 0, nhh#); "lower tenuto/staccato";
-  call_mirror (origin, right);
-endchar;
-
-beginchar(26, 0, nhh#, 0); "upper portato (tenuto)";
-  fill_square (nhw, 1.25med, (0, nhh-.625med));
-  savepic;
-endchar;
-
-beginchar(27, 0, 0, nhh#); "lower portato (tenuto)";
-  call_mirror (origin, right);
-endchar;
-
-beginchar(28, 0, 1.5nhh#, 0); "upper staccatissimo";
-  rayon:= thin+.125nhh;
-  x1=x3=x2+rayon=x4-rayon=.5nhw;
-  y2=y4=y1-rayon=y3+.5nhh=1.15nhh;
-  fill z3--z4{up}..z1..{down}z2--cycle;
-  savepic;
-endchar;
-
-beginchar(29, 0, 0, 1.5nhh#); "lower staccatissimo";
-  call_mirror (origin, right);
-endchar;
-
-beginchar(30, 0, 2.25nhh#, 0); "upper marcato";
-  pickup med_pen;
-  draw (-.2nhw, 1.9nhh)--(1.2nhw, 1.5nhh)--(-.2nhw, 1.1nhh);
-  savepic;
-endchar;
-
-beginchar(31, 0, 0, 2.25nhh#); "lower marcato";
-  call_mirror (origin, right);
-endchar;
-
-%%%%%%%
-message ("<noteheads>");
-%%%%%%%
-
-NHW=nhw+hlthick;
-
-beginchar(7, 0, .5nhh#, .5nhh#); "quarter note";
-% makeshift, expedience
-if pixels_per_inch=600:
-  if NHW>50: corNHW=1.04*NHW; else: corNHW=1.04*NHW+1; fi
-    fill fullcircle xscaled corNHW yscaled 1.85h
-         rotated 20 shifted (.5NHW-.5, 0);
-else:
-  corNHW=1.065*NHW;
-    fill fullcircle xscaled corNHW yscaled 1.85h
-         rotated 20 shifted (.5NHW, 0);
-fi
-endchar;
-
-beginchar(8, 0, .5nhh#, .5nhh#); "half note";
-  penpos1(max(1,2hlthick), 0);
-  penpos3(max(1,2hlthick), 180);
-  penpos2(thick,-90);
-  penpos4(thick, 90);
-  -x1l = .53NHW;
-  x3l = .5NHW;
-  x2 = x4 = y1 = y3 = 0;
-  y2l =-y4l = h;
-  penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle)
-             rotated 20 shifted (.5NHW, 0);
-endchar;
-
-beginchar(9, 0, .5nhh#, .5nhh#); "whole note";
-  x1= y1 = y3 = y5 = y7 = 0;
-  x3= 2x2 = 2x4 = 2x6 = 2x8 = 5/4nhw;
-  y2=-y4 = h;
-  x5= x3-x7 = x1+.375nhw-blacker;
-  y6=-y8 = y2-.1thin;
-  fill z1{curl3}..z2..{curl3}z3{curl3}..z4..{curl3}cycle;
-  unfill (z5..z6..z7..z8..cycle) rotatedaround ((x2,0), 45) shifted (.5,.5);
-%{{{
-  currentpen:= pencircle;
-  draw rt z1{curl3}..bot z2..{curl3}lft z3{curl3}..top z4..{curl3}cycle;
-%}}}
-  labels(range 1 thru 8);
-  savepic;
-endchar;
-
-beginchar(56, 0, .5nhh#, .5nhh#); "whole note with | --> |O|";
-  callpic;
-  fill_square (.6thick, nhh, (-.55thick,-.5nhh));
-  fill_square (.6thick, nhh, (5/4nhw-.05thick,-.5nhh));
-endchar;
-
-beginchar(32, 0, .5nhh#, .5nhh#); "brevis";% 2 whole notes
-  fill_square (5/4nhw, .25nhh, (0,.25nhh));
-  add_mirror (origin, right);
-  x1=x2=0; x3=x4=5/4nhw; y1=-y2=y3=-y4=.7nhh;
-  pickup line_pen;
-  draw z1--z2; draw z3--z4;
-  savepic;
-endchar;
-
-beginchar(39, 0, .5nhh#, .5nhh#); "longa";% 4 whole notes
-  callpic;
-  pickup line_pen;
-  draw (5/4nhw,-.7nhh)--(5/4nhw,-1.7nhh);
-endchar;
-
-beginchar(36, 0, .5nhh#, .5nhh#); "maxima";% 8 whole notes
-  fill_square (5/2nhw, .3nhh, (0,.2nhh));
-  add_mirror (origin, right);
-  pickup line_pen;
-  draw (0,.7nhh)--(0,-.7nhh); draw (5/2nhw,.7nhh)--(5/2nhw,-1.7nhh);
-endchar;
-
-beginchar(37, 0, .5nhh#, .5nhh#); "filled diamond";% -> triangle
-  fill unitsquare scaled (.5*sqrt(2)*NHW) rotated -45;
-endchar;
-
-def square (expr mw)=
-  fill_square (sqrt(2)*.5mw, max(1,thin), origin) rotated -45;
-  fill_square (sqrt(2)*.5mw, .15nhw, (0,-.15nhw)) rotated 45;
-  save_elempic;
-  mirror (origin,up);
-  mirror (origin,left);
-  shift_pic (mw+.5,0);
-  add_elempic(0,0);
-%  mirror (origin,right);% I've seen this too, somewhere ...
-enddef;
-
-beginchar(38, 0, .5nhh#, .5nhh#); "unfilled diamond";% -> rimshot
-  square (NHW);
-endchar;
-
-beginchar(99, 0, .5nhh#, .5nhh#); "oldstyle quarter notehead up";
-  x1=x4=0; x2=x3=NHW; y1=y2=-y3=-y4=h-hlthick;
-  fill z1{dir-10}..z2--z3{dir-170}..z4--cycle;
-  savepic;
-endchar;
-
-beginchar(100, 0, .5nhh#, .5nhh#); "oldstyle quarter notehead down";
-  call_mirror(origin, right);
-endchar;
-
-beginchar(101, 0, .5nhh#, .5nhh#); "oldstyle half notehead up";
-  pthick:=.2nhh;
-  x1=0; x2=NHW; y1=y2=h-.5pthick+hlthick;
-  pickup penrazor scaled pthick rotated 90;
-  draw z1{dir-10}..z2;
-  add_shift (0, -nhh+pthick);
-  fill_square (lthick, nhh-hlthick, (0, -h+hlthick));
-  fill_square (lthick, nhh-hlthick, (nhw-hlthick, -h+hlthick));
-  savepic;
-endchar;
-
-beginchar(102, 0, .5nhh#, .5nhh#); "oldstyle half notehead down";
-  call_mirror(origin, right);
-endchar;
-
-beginchar(111, 0, .5nhh#, .5nhh#); "cross"; % -> closed hihat
-  x1=0; x2=nhw; y1=-.5nhw; y2=-y1;
-  pickup med_pen;
-  draw top rt z1--bot lft z2;
-  add_mirror((.5nhw,0),(.5nhw,1));
-  savepic;
-endchar;
-
-beginchar(112, 0, .5nhh#, .5nhh#); "halfcircled cross";% -> halfclosed hihat
-  callpic;
-  pickup thin_pen;
-  draw halfcircle scaled nhw shifted (.5nhw,0);
-endchar;
-
-beginchar(113, 0, .5nhh#, .5nhh#); "circled cross";% -> open hihat
-  callpic;
-  pickup thin_pen;
-  draw fullcircle scaled nhw shifted (.5nhw,0);
-endchar;
-
-def doublesharp (expr mw, xshift)=
-  x1=y2=x3=0; y1=x2=y4=.5mw; y3=.5mw-x4=.1mw;
-  z4'=.925[z3,z4]; z3'=.925[z4,z3];                        % ***
-  penpos2(max(1,thin),45);
-%%% a 'nicer' look for 'high'res-printers gives
-if pixels_per_inch > 500:
-  fill z1..{dir-125}z3'{dir35}..{se}z2l--z2r--(z1+(eps,0))--cycle;
-  fill z1..{dir35}z4'{dir-125}..{se}z2r--z2l--(z1-(eps,0))--cycle;   % ***
-else :
-%%% but this causes 'strange path' on lower resolutions
-  fill z1..{dir-110}z3'{dir30}..{se}z2l--z2r--(z1+(eps,0))--cycle;
-  fill z1..{dir20}z4'{dir-120}..{se}z2r--z2l--(z1-(eps,0))--cycle;   % ***
-fi
-%{{{
-  currentpen:= pencircle; draw z1--(x2+1,y2-1);% draw (x3'+1,y3'+1)--z5';
-%}}}
-% add_mirror ((0,.5mw),(.5mw,0));                          % ***
-  add_mirror ((.5mw,-.5mw),(.5mw,.5mw));
-  add_mirror (origin, right);
-  shift_pic (xshift, 0);
-enddef;
-
-beginchar(114, 0, .5nhh#, .5nhh#); "doublesharp notehead";% -> ride cymbal
-  doublesharp (.95nhw,0.025nhw);
-  savepic;
-endchar;
-
-beginchar(115,0, .5nhh#, .5nhh#);"circled doublesharp notehead";%->crash cymbal
-  callpic;
-  pickup thin_pen;
-  draw fullcircle scaled nhw shifted (.5nhw,0);
-endchar;
-
-beginchar(116, 0, .5nhh#, .5nhh#); "triangle";% -> rattle
-  x1=y1=y2=0; x2=2x3=nhw; y3=.8h;
-  pickup med_pen;
-  draw z1--z2--z3--z1;
-endchar;
-
-beginchar(117, 0, .5nhh#, .5nhh#); "bongo cross";
-  pickup med_pen;
-  draw (0,0)--(nhw,0);
-  draw (0.5nhw,-0.5nhw) -- (0.5nhw,0.5nhw);
-endchar;
-
-beginchar(118, 0, .5nhh#, .5nhh#); "rhombus";% -> shaker
-  x1=x4=y2=y4=0; y1=-y3=-h; x2=x3=NHW;
-  fill z1--z2--z3--z4--cycle;
-endchar;
-
-beginchar(95, 0, .5nhh#, .5nhh#); "gregorian square";
-  x1=x4=0; x2=x3=gregwidth; y1=y2=-y3=-y4=.5gregwidth-lthick;
-  fill z1{dir 15}..z2--z3{dir 165}..z4--cycle;
-  shift_pic(0,-hlthick);
-  savepic;
-endchar;
-
-beginchar(96, 0, .5nhh#, .5nhh#); "gregorian square left";
-  callpic;
-  fill_square (med, 1.5nhh,(0, -1.5nhh));
-endchar;
-
-beginchar(97, 0, .5nhh#, .5nhh#); "gregorian square right";
-  callpic;
-  fill_square (med, 1.5nhh,(gregwidth-med, -1.5nhh));
-  savepic;
-endchar;
-
-beginchar(124, 0, .5nhh#, .5nhh#); "porrectus";
-  x1=x4=0; x2=x3=2.5*gregwidth; y1=-y4=.5gregwidth-lthick; y2=y1-nhh; y3=y4-nhh;
-  fill z1..{right}z2--z3{left}..z4--cycle; shift_pic(0,hlthick);
-  fill_square (med, 1.5nhh,(0, -1.5nhh));
-endchar;
-
-beginchar(125, 0, .5nhh#, .5nhh#); "quilisma";
-  qdecalage:=.12*gregwidth;
-  x1=x4=-0.2*gregwidth; x2=x3=1.2*gregwidth;
-  y1+qdecalage=y2-qdecalage=.5gregwidth-lthick;y1=-y3; y2=-y4;
-  fill z1--z2--z3--z4--cycle;
-  pickup med_pen;
-  
-  draw z4--(z1+0.4*(z1-z4));
-  draw (0.667z4+0.333z3)--((0.667z1+0.333z2)+0.4*(z1-z4));
-  draw (0.333z4+0.667z3)--((0.333z1+0.667z2)+0.4*(z1-z4));
-  draw z3--(z2+0.4*(z1-z4));
-  shift_pic(0,-hlthick);
-endchar;
-
-beginchar(126, 0, .5nhh#, .5nhh#); "mirrored gregorian square";
-  x1=x4=0; x2=x3=gregwidth; y1=y2=-y3=-y4=-.5gregwidth+lthick;
-  fill z1{dir -15}..z2--z3{dir -165}..z4--cycle;
-  shift_pic(0,+hlthick);
-endchar;
-
-
-
-%%%%%%%
-message ("<flags>");
-%%%%%%%
-
-flagw:=.8nhw;
-flagthick:=nhh;
-flagthin:=5thinwidth;
-
-def flagshape
-(expr contflag, width, height, flgthick, flgthin, shifty, flagsense) =
-  penpos1(flgthick+blacker, 90);   % .1
-  penpos2(3.25flgthin+blacker, 70);%
-  x1 = 0;                          %     .2
-  y1 = height+shifty-.5flgthick;   %
-  x2 = 3/8width;                   %         .3
-  y2 = y1-.45flgthick;             %
-  x3 = width-flgthin/2;            %      .4(.4)
-  y3 = y1-1.5flgthick;
-
-  if contflag=1:  x4 = x3-.4width; y4 = shifty;
-  else:           x4 = x3; y4 = 2.5flagthick-2flgthick; fi
-  if flagsense>0: penpos3(1.15flgthin, 35);
-  else:           penpos3(.8flgthin, 0); fi
-
-  penstroke z1e..z2e..z3e{down}..z4;
-%{{{
-  currentpen:= pencircle; draw lft z1..z2..z3{down}..z4;
-%}}}
-  penlabels(1,2,3,4)
-enddef;
-
-def mirror_flag(expr sense)= if sense<0: mirror((0,h/2),(1,h/2));fi enddef;
-
-def cflag (expr sense) =
-  flagshape(1, flagw, 3nhh, flagthick, flagthin, 0, sense);
-  mirror_flag(sense);
-  savepic;
-enddef;
-
-def ccflag (expr sense) =
-  flagshape(5, flagw, 2.25nhh, 2/3flagthick, flagthin, flagthick, sense);
-  save_elempic;
-  clearxy;
-  flagshape(1, flagw, 2.5nhh, 2/3flagthick, flagthin, 0, sense);
-  savepic;
-  mirror_flag(sense);
-enddef;
-
-def addflag (expr sense, shifty) =
-  call_add_save_elempic (0, shifty*.75flagthick);
-  mirror_flag(sense);
-enddef;
-
-def cccflag (expr sense) = addflag(sense, 1) enddef;
-def ccccflag (expr sense) = addflag(sense, 2) enddef;
-def cccccflag (expr sense) = addflag(sense, 3) enddef;
-
-beginchar(40, 0, 3.25nhh#, 0); "8th flag up";
-  cflag(1);
-  shift_pic (0, .5nhh+.5);
-endchar;
-
-beginchar(12, 0, 3.25nhh#, 0); "acciacaturra stem up";
-  callpic;
-  pickup med_pen;
-  x1=-.25nhw; y1=.2h; x2=1.1nhw; y2=y1+.6(x2-x1);
-  draw z1--z2;
-  shift_pic (0, .5nhh+.5);
-endchar;
-
-beginchar(41, 0, 3.25nhh#, 0); "16th flag up";
-  ccflag(1);
-  shift_pic (0, .25nhh);
-endchar;
-
-beginchar(42, 0, 4nhh#, 0); "32th flag up";
-  cccflag(1);
-  shift_pic (0, .25nhh);
-endchar;
-
-beginchar(43, 0, 4.75nhh#, 0); "64th flag up";
-  ccccflag(1);
-  shift_pic (0, .25nhh);
-endchar;
-
-beginchar(44, 0, 5.5nhh#, 0); "128th flag up";
-  cccccflag(1);
-  shift_pic (0, .25nhh);
-endchar;
-
-%%%
-% flags up should be wider
-%%%
-flagw:=nhw;
-
-beginchar(45, 0, 3.25nhh#, 0); "8th flag down";
-  cflag(-1);
-  shift_pic (0,-.5nhh-.5);
-endchar;
-
-beginchar(13, 0, 3.25nhh#, 0); "acciacaturra stem down";
-  callpic;
-  pickup med_pen;
-  x1=-.25nhw; y1=1.6nhh; x2=1.2nhw; y2=y1+.6(x2-x1);
-  draw z1--z2;
-  shift_pic (0,-.5nhh-.5);
-endchar;
-
-beginchar(46, 0, 3.25nhh#, 0); "16th flag down";
-  ccflag(-1);
-  shift_pic (0,-.25nhh);
-endchar;
-
-beginchar(47, 0, 4nhh#, 0); "32th flag down";
-  cccflag(-1);
-  shift_pic (0,-.25nhh);
-endchar;
-
-beginchar(48, 0, 4.75nhh#, 0); "64th flag down";
-  ccccflag(-1);
-  shift_pic (0,-.25nhh);
-endchar;
-
-beginchar(49, 0, 5.5nhh#, 0); "128th flag down";
-  cccccflag(-1);
-  shift_pic (0,-.25nhh);
-endchar;
-
-%%%%%%%
-message("<accidentals>");
-%%%%%%%
-
-def flat (expr reduction, shiftx, flatsense) =
-  fthick:= reduction*thick;
-  penpos4(4/3fthick,0);   % 1
-  penpos3(1/2fthick,-90); %
-  penpos6(4/7fthick,90);  %   6
-  x1 = x2 = x3 = x5 = fthick;     %  / \
-  y1 = 6fthick; y2 = .5y4;        % 2   4
-  y3l=-2fthick; y5 = y3r;         %    /
-  x4 = 3.6fthick; y4 = .1fthick;  % 3,5
-  y6r= 2fthick; x6 = .5(x2+x4);
-  t:= identity shifted (round(shiftx),0);
-  p:= (z1--z5) transformed t;
-  pickup penrazor scaled max(1,(2sind40*thin)) rotated 40;
-  draw p;
-  penstroke (z2..{right}z6e..z4e{sw+down}..{sw}z3e) transformed t;
-  if flatsense<0: mirror (z5 transformed t, z1 transformed t); fi
-  penlabels (1,2,3,4,5,6)
-enddef;
-
-beginchar(50, nhw#, 1.5nhh#, .5nhh#); "flat";
-  flat (1, 0, 1);
-  savepic;
-endchar;
-
-beginchar(51, 1.7nhw#, 1.5nhh#, .5nhh#); "doubleflat";
-  call_add_shift (.7nhw, 0);
-endchar;
-
-def sharp (expr reduction, zshift) =
-  sthick:= .5reduction*thick;
-  nx:= reduction*1.5nhh;
-  ny:= reduction*.8nhw;
-  y1 =-y7= nx-1.5sthick; y2 =-y8 = .5sthick-nx;
-  x1 = x2 = y3 = -y6 = ny-x7 = ny-x8 = 2sthick;
-  y4 =-y5 = y3 + 3sthick;
-  x3 = x5 = 0; x4 = x6 = ny;
-  pickup penrazor scaled max(1,thin) rotated angle(z4-z3);
-  draw z1--z2; draw z8--z7;
-  pickup penrazor scaled 3sthick rotated 90;
-  draw z3--z4; draw z5--z6;
-  shift_pic (zshift, 0);
-  labels (range 1 thru 8)
-enddef;
-
-beginchar(52, nhw#, 1.5nhh#, 1.5nhh#); "sharp";
-  sharp (1, 0);
-endchar;
-
-beginchar(53, nhw#, .5nhh#, .5nhh#); "doublesharp";
-  doublesharp (w, -.1nhw);
-endchar;
-
-def natural (expr reduction, zshift) =
-  ny:= .8nhw*reduction;
-  nthick:= 3/4reduction*thick;
-  x1 = x2 = x3 = nthick+.5thin;
-  x5 = x6 = x4 = ny-x1;
-  y1 = -y6 = 1.5nhh*reduction;
-  y2 = -y5 = 1.6nthick;
-  y4 = -y3 = y2+4/3nthick;
-  pickup penrazor scaled max(1,thin) rotated angle(z4-z2);
-  draw lft z1--bot lft(x3,y3-nthick);
-  draw top rt(x4,y4+nthick)--rt z6;
-  pickup penrazor scaled 2nthick rotated 90;
-  draw (x2-.5,y2)--(x4+.5,y4);
-  draw (x3-.5,y3)--(x5+.5,y5);
-  shift_pic (zshift, 0);
-  labels(1,2,3,4,5,6)
-enddef;
-
-beginchar(54, nhw#, 1.5nhh#, 1.5nhh#); "natural";
-  natural (1, 0);
-endchar;
-
-beginchar(90, apog_nhw#, nhh#, .5nhh#); "small flat";
-  flat (apog_fact, -.05nhw, 1);
-  savepic;
-endchar;
-
-beginchar(91, 1.65apog_nhw#, nhh#, .5nhh#); "small doubleflat";
-  call_add_shift (.7apog_fact*nhw,0);
-endchar;
-
-beginchar(92, apog_nhw#, nhh#, nhh#); "small sharp";
-  sharp (apog_fact, 0);
-endchar;
-
-beginchar(93, apog_nhw#, .5nhh#, .5nhh#); "small doublesharp";
-  doublesharp (w, -.075nhw);
-endchar;
-
-beginchar(94, apog_nhw#, nhh#, nhh#); "small natural";
-  natural (apog_fact, 0);
-endchar;
-
-%%%%%%%
-message ("<rests>");
-%%%%%%%
-
-beginchar(59, .5nhw#, 0, 0); "ddp";% doubledouble (4) pause
-  fill_square (.5nhw, 2nhh, (0, nhh));
-endchar;
-
-beginchar(58, .5nhw#, 0, 0); "dp";% double (2) pause
-  fill_square (.5nhw, nhh, (0, 2nhh));
-  savepic;
-endchar;
-
-beginchar(60, 5/4nhw#, .5nhh#, 0); "half rest";
-  fill_square (5/4nhw, .5nhh, (0, 0));
-  savepic;
-endchar;
-
-beginchar(10, 0, .5nhh#, 0); "half rest outside a staff";
-  callpic;
-  fill_square (2nhw, lthick, (-.375nhw, -hlthick));
-  savepic;
-endchar;
-
-beginchar(11, 0, 0, .5nhh#); "full rest outside a staff";
-  call_mirror(origin,right);
-endchar;
-
-beginchar(61, 5/4nhw#, 0, .5nhh#); "full rest";
-  fill_square (5/4nhw, .5nhh, (0, -.5nhh));
-endchar;
-
-beginchar(62, 0, 4nhh#, 0); "quarter rest";
-  rthin:= 1/8 nhh;           % .1
-  rthick:= 2 thick+rthin;    %       .2
-  alpha:= -50;               %    .3
-  penpos1(rthin, 90+alpha);  % .4
-  penpos5(rthin, alpha);     %       .5,10
-  penpos2(rthick, alpha);    %   .6
-  penpos4(rthick, alpha);    %
-  penpos3(3/4rthick, alpha); %       .7
-  penpos6(4/3thick, alpha);
-  penpos7(rthin, 45);
-  y1l = 4nhh - 1/2nhh;
-  x1l = 1/2nhh;
-  z2r = z1 +(nhh* right) rotated alpha;
-  z3  = 1/2[z2,z4];
-  z4  = (nhw,4nhh) scaled .55;
-  z5  = z4l+(nhh* right) rotated alpha;
-  x6l = x4l; y6r = 1.45nhh;
-  x7  = .9nhw; y7= nhh-1/8nhh;
-  z10 = z5r shifted (sqrt(2)*rthin/4,sqrt(2)*rthin/4);
-
-  pickup penrazor scaled rthin rotated 45;
-  draw z1--z2r; draw z4l--z10;
-  penstroke z2e..z3e..z4e;
-  penstroke z5e..z6e..z7e;
-  penlabels(1,2,3,4,5,6,7,10);
-  shift_pic (-.2nhw, 0);
-endchar;
-
-%%%
-%   Draw the crook needed for quaver rests and shorter.
-%   The crook extends left from the point z.i on the stem.
-%%%
-def crook(text i)=
-  forsuffixes $=i:
-  x3:=x.$-6.5fact; y3:=top y.$- 3fact;
-  x4:=x.$-6fact;   y4:=    y.$+.5fact;
-  draw z.${dir 240}..{dir 160}z3;
-  filldraw z3{dir 160}..z4{dir-20}..{dir 160}z3..cycle;
-  endfor
-enddef;
-
-beginchar(63, 0, 3.25nhh#, 0); "8th rest";
-  z1=(nhh,nhh);
-  z2-z1=whatever*dir 70;  %  Angle the stem at 70 degrees.
-%%%
-%   Define the scaling factor `fact' implicitly.
-%   This value will be used for the shorter rests as well.
-%%%
-  z2-z1=(5fact,1.7nhh);
-  pickup med_pen;
-  draw z1..z2;
-  crook(2);
-  shift_pic (-.35nhw, 0);
-  penlabels (1,2,3,4);
-endchar;
-
-beginchar(64, 0, 3.25nhh#, 0); "16th rest";
-  z1=(nhh,0);
-  z2-z1=whatever*dir 75;  %  Angle the stem at 75 degrees.
-  y2-y1=2.7nhh;
-  z5-z2=whatever*(z1-z2); y5=y2-nhh;
-  pickup med_pen;
-  draw z1..z2;
-  crook(2,5);
-  shift_pic (-.35nhw, 0);
-  penlabels (1,2,3,4,5);
-endchar;
-
-beginchar(65, 0, 4nhh#, 0); "32th rest";
-  z1=(nhh,0);
-  z2-z1=whatever*dir 80;  %  Angle the stem at 80 degrees.
-  y2-y1=3.7nhh;
-  z5-z2=whatever*(z1-z2); y5=y2-nhh;
-  z6-z2=whatever*(z1-z2); y6=y5-nhh;
-  pickup med_pen;
-  draw z1..z2;
-  crook(2,5,6);
-  shift_pic (-.35nhw, 0);
-  penlabels (1,2,3,4,5,6);
-endchar;
-
-beginchar(66, 0, 4.75nhh#, 0); "64th rest";
-  z1=(nhh,0);
-  z2-z1=whatever*dir 82;  %  Angle the stem at 82 degrees.
-  y2-y1=4.7nhh;
-  z5-z2=whatever*(z1-z2); y5=y2-nhh;
-  z6-z2=whatever*(z1-z2); y6=y5-nhh;
-  z7-z2=whatever*(z1-z2); y7=y6-nhh;
-  pickup med_pen;
-  draw z1..z2;
-  crook(2,5,6,7);
-  shift_pic (-.35nhw, 0);
-  penlabels (1,2,3,4,5,6,7);
-endchar;
-
-%%%%%%%
-message ("<clefs>");
-%%%%%%%
-
-def violin(expr reduction) =
-  gx:=reduction*-nhw;
-  gy:=reduction*nhh;
-  gthick:=1.5reduction*thick;
-  gthin:=.75reduction*med;
-
-  x1=31/24gx+w; x4=23/24gx+w;  x2=x10=3/4gx+w;  x3r=w; x8l=15/16gx+w;
-  x5=x11r=15/8gx+w;  x6=gx+w;  x7=5/8gx+w;  x9=5/4gx+w;
-  y1=5/8gy;  y2r=y5r=2gy;  y3=gy;  y4r=0;  y6=27/8gy;
-  y7l=5gy;  y8l=11/2gy;  y9=17/4gy;  y10=y11=-7/8gy;
-  penpos1(gthin,160);
-  penpos2(gthick,90);
-  penpos3(gthick,0);
-  penpos4(5/4gthin,-90);
-  penpos5(3/2gthick,110);
-  penpos6(17/16gthick,130);
-  penpos7(gthin,-140);
-  penpos8(5/4gthick,-80);
-  penpos9(3/8gthick,0);
-  penpos10(gthin,0);
-  penpos11(1/2gthick,180);
-  penstroke z1e{nw}..z2e..z3e..z4e..z5e{up+ne}..z6e..{up+nw}z7e
-            ..z8e{sw}..{down}z9e{down}..{down}z10e..z11e;
-%{{{
-  currentpen:= pencircle;
-  draw z1{nw}..z2..z3..z4..z5{up+ne}..z6..{up+nw}z7
-       ..z8{sw}..{down}z9{down}..{down}z10..z11;
-%}}}
-  fill_circle ((3(x2-x4)), (x11+11/40gy, y11));
-  penlabels(range 1 thru 11)
-enddef;
-
-%beginchar(71, 8/3nhw#, 5.5nhh#, 1.5nhh#); "G-clef";
-beginchar(71, 8/3nhw#, 4.5nhh#, 2.5nhh#); "G-clef";
-  violin(1);
-% shift_pic (-.2nhw, 0);    % T.59
-  shift_pic (-.2nhw, -nhh); % T.60
-endchar;
-
-%beginchar(72, 7/3nhw#, 3nhh#, 2nhh#); "small G-clef";
-beginchar(72, 7/3nhw#, 3nhh#, 3nhh#); "small G-clef";
-  violin(.8);
-% shift_pic (-.3nhw, 0);    %T.59
-  shift_pic (-.3nhw, -nhh); %T.60
-endchar;
-
-def bass (expr reduction) =
-  fx:=reduction*nhw;
-  fy:=reduction*nhh;
-  fthick:=reduction*thick;
-
-  x2=.8fx; y2=3nhh;
-  x1=x2r+.26fx; y1=y2;
-  x3=x2+.71fx; y3r=y2+1fy;
-  x4=x3+.71fx; y4=y2-.2fy;
-  x6=x2-6reduction*thinwidth; y6=y2-2.2fy;
-  x7=x4+.50fx; y7=y2+.38fy;
-
-  penpos2(.6fthick,180);
-  penpos3(.6fthick, 90);
-  penpos4(2fthick,0);
-  penpos6(.4fthick,-10);
-
-  fill_circle (.35fx, z7);
-  add_mirror ((0,y2), (1,y2));
-  fill_circle ((2(x2r-x1)), z1);
-
-  penstroke z2e{up}..{right}z3e{right}..{down}z4e{down}..{left+.1down}z6e;
-%{{{
-  currentpen:= pencircle;
-  draw z2{up}..{right}z3{right}..{down}z4{down}..{left+.1down}z6;
-%}}}
-  penlabels(1,2,3,4,6)
-enddef;
-
-beginchar(73, 8/3nhw#, 4nhh#, 0); "F-clef";
-  bass(1);
-% shift_pic (-.35nhw, 0);       % T.59
-  shift_pic (-.35nhw, -3nhh);   % T.60
-endchar;
-
-beginchar(74, 7/3nhw#, 4nhh#, 0); "small F-clef";
-  bass(.8);
-% shift_pic (-4/15nhw, 0);      % T.59
-  shift_pic (-4/15nhw, -3nhh);  % T.59
-endchar;
-
-def alt(expr reduction, yshift) =
-  nh:=h*reduction;
-  athick:=1/10nh;
-  ahigh:=1/2nh;
-  radius:=5/4thick*reduction;
-
-  x4=13/16nh+3thinwidth; x5=9/16nh;
-  x6=1/2nh; x9=x10=2/3nh; x11=17/32nh;
-  y4=yshift+31/50ahigh; y5=yshift+1/2ahigh;
-  y6=yshift; y9=yshift+1/9ahigh;
-  y10=yshift+ahigh; y11=yshift+11/14ahigh;
-  penpos4(athick,180);
-  penpos5(1/8athick,0);
-  penpos6(athick,0);
-  penpos9(1/3athick,90);
-  penpos10(1/3athick,-90);
-  penpos11(1/2athick,0);
-
-  penstroke z5e..{sw+down}z6e;
-  penstroke z5e{se+3down}..{right}z9e{right}..{up}z4e{up}
-            ..{left}z10e{left}..{sw+3down}z11e;
-  fill_circle (2radius, (z11l+(radius, -.05nhh)));
-  fill_square (athick, ahigh, (5/16nh-1/2athick,yshift));
-  fill_square (.25athick, ahigh, (x6l-.25athick,yshift));
-  add_mirror ((0,yshift),(1,yshift));
-  penlabels(4,5,6,9,10,11)
-enddef;
-
-beginchar(75, 8/3nhw#, 4nhh#, 0); "Alto clef";
-  alt(1, 2nhh);
-% shift_pic (-.45nhw, 0);     % T.59
-  shift_pic (-.45nhw, -2nhh); % T.60
-endchar;
-
-beginchar(76, 7/3nhw#, 4nhh#, 0); "small Alto clef";
-  alt(.8 ,2nhh);
-% shift_pic (-.3nhw, 0);      % T.59
-  shift_pic (-.3nhw, -2nhh);      % T.60
-endchar;
-
-beginchar(77, 8/3nhw#, 4nhh#, 0); "drum clef";
-  fill_square (.3nhw, .5h, (.85nhw,1nhh));
-  add_mirror ((w/2,0),(w/2,1));
-% shift_pic (.2nhw, 0);    % T.59
-  shift_pic (.2nhw, -2nhh); % T.60
-endchar;
-
-beginchar(103, 8/3nhw#, 4nhh#, nhh#); "oldstyle G-clef";
-  def penslopeI= (.35nhh/cosd45)+blacker,45 enddef;
-  def penslopeII= (.35nhh/cosd32.5)+blacker,32.5 enddef;
-  def penslopeIII= (.4nhh/cosd32.5)+blacker,32.5 enddef;
-  def penslopeIV= (max(1,lthick/cosd32.5)),122.5 enddef;
-
-  x1l=1.5nhw; x2l=x3l=x4r=x1l+2/5nhw;
-  x1l-x5l=x3r-x1l; x6l=x15r=x5l; x7r=x1=x14r; x8=x2;
-  y1l=y2l=1.45nhh; y3l=y4r;
-  y4l=0; y5=y3r; y6l=y15r; y7l=y8r=3nhh; y14r=y7r;
-  z15r-z14r=whatever*dir(180+32.5);
-  penpos1(penslopeI);
-  penpos2(penslopeI);   %   /7\    6(15)
-  penpos3(penslopeII);  %  6   8   7(14)
-  penpos4(penslopeIII); %  |
-  penpos5(penslopeII);  %  | 1-2
-  penpos6(penslopeII);  %  |   |
-  penpos7(penslopeII);  %  5   3
-  penpos8(.35nhh,90);   %   \4/
-  penpos14(penslopeIV);
-  penpos15(penslopeIV);
-  penstroke z1e--z2e--z3e;
-  fill unitsquare xscaled (x3r-x4l) yscaled lthick
-       shifted z4l rotatedaround (z4l,32.5);
-  penstroke z4e--z5e{dir85}..z6e;
-  penstroke z7e--z8e; penstroke z14e--z15e;
-
-  x9=x5l=x16-.25nhw; x10l=x1l; x11=x10-.1nhw; x12=x8;
-  x17l=x2r+.05nhw; x13r=x2l-.1nhw;
-  y9r=-nhh; y16l=y9l-.01nhh; y10=0;
-  y11=3.5nhh; y12r=y8r; y17r=y8r+.2nhh; y13r=4nhh;
-                                 %        13
-  penpos12(2lthick,90);          %       /  \
-  penpos17(3hlthick,180);        %     11    17
-  penpos13(.35nhh+blacker,-90);  %      |  12
-  penpos11(max(lthick,1),0);     %      |
-  penpos10(max(lthick,1),0);     %     10
-  penpos16(.475nhh+blacker,-90); %     /
-  penpos9(.5nhh+blacker,-90);    % 9-16
-
-  penstroke z12e..z17e{dir80}..z13e..{down}z11e..{down}z10e{down}..
-            {left}z16e..z9e;
-  shift_pic (-.25nhw,0);
-  penlabels (range 1 thru 12);
-  shift_pic (0, -nhh); % T.60
-endchar;
-
-beginchar(98, 8/3nhw#, 3.25nhh#, 0); "gregorian C clef";
-  x1=x4=0; x2=x3=gregwidth; y1=y2=-y3=-y4=.5gregwidth-lthick;
-  fill z1{dir 15}..z2--z3{dir 165}..z4--cycle;
-  save_elempic;
-  pickup med_pen; draw bot rt z1..{down}(-.01nhw,-.5nhh);
-  shift_pic(nhw,2.5nhh);
-  add_mirror ((0,2nhh),(1,2nhh));
-  savepic;
-  shift_pic (0,-2nhh);
-endchar;
-
-beginchar(122, 8/3nhw#, 4.25nhh#, 0); "gregorian F clef";
-  callpic;
-  add_elempic (.1nhw,2nhh);
-  fill_square (med, 1.5nhh, (.75nhw,.8nhh));
-  shift_pic (1/3nhw,-2nhh);
-endchar;
-
-%%%%%%%
-message ("<special signs>");
-%%%%%%%
-
-beginchar(14, 0, nhh#, 0); "song system limit up";
-  x1=y1=0; x2=1.5nhw; y2=nhh;
-  penpos1(thick, 90); penpos2(thin, 90);
-  penstroke z1e{right}..{dir80}z2e;
-%{{{
-  currentpen:=pencircle; draw z1{right}..{dir80}z2;
-%}}}
-  savepic;
-endchar;
-
-beginchar(15, 0, 0, nhh#); "song system limit down";
-  call_mirror (origin, right);
-endchar;
-
-beginchar(16, 0, 0, 0); "used for volta";
-  fill_square (lthick, 2.5nhh, (0,-.5nhh));
-endchar;
-
-beginchar(17, 0, 0, 0); "used for volta";
-  fill_square (lthick, 2.5nhh, (0,-2.5nhh));
-endchar;
-
-% 'polyrhythmik' {\meterfrac{3+2+3}8}, e.g. Bart\'ok
-beginchar(57, 2nhh#, 1.5nhh#, 0); "big plus sign";
-  pickup pencircle scaled .3nhh;
-  draw lft(.5nhh,.9nhh)..rt(1.5nhh,.9nhh);
-  draw bot(nhh,.4nhh)..top(nhh,1.4nhh);
-endchar;
-
-beginchar(79, 0, 4nhh#, 0); "caesura";% other breathmark
-  pickup penrazor scaled thick;
-  draw (.3nhw+thick, 3.4nhh)--(.7nhw+thick, 4.6nhh);
-endchar;
-
-beginchar(80, 0, 2.25nhh#, 0); "fermata up";
-  x1 = -.5nhw;  x2=.5(x1+x3); x3 = 1.5nhw;
-  y1 = y3 = nhh; y2 = 2.3nhh;
-  penpos1(thinwidth,165);
-  penpos2(.9beamht+thin,90);
-  penpos3(thinwidth,15);
-  penstroke z1e{dir75}..z2e..{dir-75}z3e;
-  fill_circle (beamht, (x2, y1+.5beamht));
-%{{{
-  currentpen:= pencircle; draw z1{dir 75}..z2..{dir-75}z3;
-  add_mirror ((x2, 0),(x2, 1));
-%}}}
-  savepic;
-  penlabels(1,2,3);
-endchar;
-
-beginchar(81, 0, 0, 2.25nhh#); "fermata down";
-  call_mirror (origin, right);
-endchar;
-
-beginchar(82, 5/3nhw#, 4nhh#, 0); "allabreve";
-  fit:= .025nhw;
-  2x2 = 2x4 = x1 + 1/2nhh = w;
-  x3r = 0; 2y1 = 3y2 = y4r = 3nhh;
-  y3r = 2nhh; x5 = w -1/2nhh; y5 = 3nhh -1/2nhh;
-  z6r = z5r + (-1/40nhh, 1/20nhh);
-  penpos1(max(1,med), 0);
-  penpos2(max(1,med), -90);
-  penpos3(1/4nhh+thick,180);
-  penpos4(max(1,med), 90);
-  penpos5(max(1,med), 0);
-  penpos6(1/4nhh+med,45);
-  penstroke z1e..z2e..z3e..z4e..z5e;
-  fill rt z1r..lft z1l..cycle;
-  fill_circle (.35nhw+blacker, (z6 + (-2fit, fit)));
-  shift_pic (.5nhh,0);
-  savepic;
-
-  pickup med_pen;
-  draw (4/5nhw+.5nhh, y2r-3/8nhh)--(4/5nhw+.5nhh, y4r+3/8nhh);
-  penlabels(1,2,3,4,5,6);
-  save_elempic;
-  shift_pic (0,-2nhh);
-endchar;
-
-beginchar(83, 5/3nhw#, 3.25nhh#, 0); "C";
-  callpic;
-  shift_pic (0,-2nhh);
-endchar;
-
-beginchar(84, 10/3nhw#, 3.25nhh#, 0); "reverseC";
-  callpic;
-  add_mirror ((11/6nhw,0),(11/6nhw,1));
-  shift_pic (0,-2nhh);
-endchar;
-
-beginchar(123, 5/3nhw#, 3.25nhh#, 0); "reverseallabreve";
-  add_elempic (0,0);
-  mirror ((13/12nhw,0),(13/12nhw,1));
-  shift_pic (0,-2nhh);
-endchar;
-
-beginchar(121, 0, 0, 0); "double thumb bracket";
-  mh:=0.625nhh;
-  fill_square (lthick, mh, origin);
-  fill_square (.55nhw, lthick, origin);
-  add_mirror ((0,mh),(1,mh));
-  shift_pic (-.75nhw, -mh);
-endchar;
-
-%%%%%%%
-message ("<repeat symbols>");
-%%%%%%%
-
-beginchar(55, 0, 4nhh#, 0); "repeat colons";
-  fill_circle (1/3nhw+blacker, (0, 3/2nhh));
-  add_mirror ((0, 2nhh),(1, 2nhh));
-  shift_pic(0,-2nhh);
-endchar;
-
-beginchar(78, 0, 4nhh#, 0); "due volte";
-  fill_circle ((1/3nhw+blacker),(-.75nhh,2.5nhh));
-  addto currentpicture also currentpicture rotatedaround ((0,2nhh), 180);
-  pickup penrazor scaled (1/3nhw+blacker);
-  draw (-nhh, nhh)--(nhh, 3nhh);
-endchar;
-
-beginchar(85, 0, 3.25nhh#, 0); "coda";
-  mh:=3nhh;
-  x2 = 2nhw-x4 = 1/6mh; y2 = y4 = 1/2mh;
-  x3 = x5 = nhw; y3 = mh-y5 = 5/6mh;
-  pickup thin_pen;
-  draw (0,mh/2)--(2nhw,mh/2); draw (nhw,0)--(nhw,mh);
-  savepic;
-  pickup coda_pen;
-  draw z2..z3..z4..z5..cycle;
-  shift_pic (-nhw, 0);
-  labels (1,2,3,4);
-endchar;
-
-beginchar(105, 0, 3.25nhh#, 0); "coda II";
-  mh:=3nhh;
-  callpic;
-  x2 = x5 = 1/6mh; y2 = y3 = 5/6mh;
-  x3 = x4 = 2nhw-x2; y4 = y5 = 1/6mh;
-  pickup coda_pen;
-  draw z2--z3--z4--z5--cycle;
-  shift_pic (-nhw, 0);
-  labels (1,2,3,4);
-endchar;
-
-beginchar(86, 0, 3.25nhh#, 0); "segno";
-  x1= .5nhw; y1 = 1.75nhh; x4=-.5x1; y4=.4nhh;
-  x5=.7x1; y5=y6=3.05nhh; x6=x5-x1;
-  z1'= (x1+1,y1);
-  penpos1'(.5nhh+blacker, 80);
-  penpos5(max(1,thin), -110);
-  penpos6(max(1,1.2thin), -70);
-  fill_circle (.5nhh, (x5-.2nhh,y5l-.13nhh));
-  fill_circle (thick+.1nhh, (x4, y4+.9nhh));
-  penstroke z1'e{dir170}..{ne}z6e..z5e;
-  pickup penrazor scaled max(1,thin);
-  draw z4--z1;
-  penlabels (1,5,6);
-  addto currentpicture also currentpicture rotatedaround (z1, 180);
-endchar;
-
-beginchar(110, 0, 5.5nhh#, 2nhh#); "segno II";
-  mw:=2.5nhh;
-  gamma:=36.9;
-  dist:=1nhh+.75beamht;
-  gthick:=beamht+blacker;
-
-  x1'=x3'=x7=x16=2x1=2x10=2x13=.5mw; x9=x14=x2; x3r=mw-.2nhh;
-  x11=x5; x15=x3; mw-x8=x12=1/3nhh;
-  y1'=dist; y3'=y1'-.5dist; y4'+dist=y9-2dist=y2; y10-2dist=y13+dist=y1;
-  y11=y5+2dist; y14=y2-dist; y8=y6-.1dist+2dist; y12=y3+.1dist-dist;
-  y15=y3-dist; y16r=-d; y7l=3.25nhh+2dist;
-  z1-z1'=z1'-z2=whatever*dir-gamma;
-  z3-z3'=whatever*dir-gamma; z2-z4=whatever*dir(-90-gamma);
-  z2-z4'=whatever*dir-90; z4-z4'=whatever*dir-gamma;
-  z5=z3 rotatedaround (z1',180); z6=z4 rotatedaround (z1',180);
-
-  penpos1(gthick, gamma); penpos2(gthick, gamma);
-  penpos3(max(1,thin),-90+gamma); penpos4(.9gthick,-180+gamma);
-  penpos5(max(1,thin),-90+gamma); penpos6(.9gthick,-180+gamma);
-  penpos7(.3gthick,-90-gamma); penpos8(.5gthick,-180+gamma);
-  penpos9(gthick, gamma); penpos10(gthick, gamma);
-  penpos11(.5gthick,-90+gamma); penpos12(.5gthick,-180+gamma);
-  penpos13(gthick, gamma); penpos14(gthick, gamma);
-  penpos15(.5gthick,-90+gamma); penpos16(.3gthick+1,-90-gamma);
-
-  penstroke z6e{dir(180-gamma)}..z5e..z1e---z2e..z3e..{dir(180-gamma)}z4e;
-  add_shift (0,2dist);
-  add_shift (0,-dist);
-  unfill (0,-nhh)--(mw,-nhh)--(mw,-d)--(0,-d)--cycle;
-  unfill (0,5nhh)--(mw,5nhh)--(mw,6nhh)--(0,6nhh)--cycle; cullit;
-
-  penstroke z9e---z10e..z11e..z7e..z8e;
-  penstroke z13e---z14e..z15e..z16e..z12e;
-
-  dotthick:=.65nhh+blacker; fit:=.15nhh;
-  fill_circle(dotthick,(x8-fit,y8-.5dotthick+fit+.02nhh));
-  fill_circle(dotthick,(x12+fit,y12+.5dotthick-fit-.02nhh));
-
-  pickup thin_pen;
-  draw (3/8mw,1/3nhh)--(3/8mw,4nhh+1/3nhh);
-  draw (5/8mw,-1/3nhh)--(5/8mw,4nhh-1/3nhh);
-  penlabels (range 1 thru 16);
-  shift_pic(-mw,0);
-endchar;
-
-%%%%%%%
-message ("<trills>");
-%%%%%%%
-
-beginchar (67, 0, nhh#, 0); "turn";
-  x1=2nhw-x6=.4nhw; y1r=h; y6=h-y1;
-  x2r=0; y2=.5h; x5=2nhw-x2; y5=h-y2;
-  x3=.44nhw; y3r=0; x4=2nhw-x3; y4=h-y3;
-  penpos1(med, 90);
-  penpos2(med, 180);
-  penpos3(thick,-40);
-  penpos4(thick,-40);
-  penpos5(med, 180);
-  penpos6(med, 90);
-  penstroke z1e..{down}z2e{down}..{right}z3e{right}
-            ..{right}z4e{right}..{down}z5e{down}..z6e;
-  fill_circle ((1/4nhh+thick), (x1,y1r-thick));
-  fill_circle ((1/4nhh+thick), (x6,y6l+thick));
-  shift_pic (-.5nhw, 0);
-  penlabels(1,2,3,4,5,6);
-  savepic;
-endchar;
-
-beginchar (68, 0, nhh#, 0); "backturn";
-  call_mirror ((.5nhw,0), (.5nhw,1));
-endchar;
-
-def setpar =
-  off:= .3nhw; x2=x1+off; x3=x2+off; x4=x3+off;
-  y1= y3=.75nhh-y2=.75nhh-y4=.15nhh;
-enddef;
-
-beginchar(87, 0, nhh#, 0); "shake";
-  x1=-.15nhw; setpar;
-  pickup pensquare xscaled (thick+.15nhh) yscaled med rotated 52;
-  draw z1--z2--z3--z4;
-  save_elempic;
-  add_elempic (2off,0);
-  savepic;
-endchar;
-
-beginchar(88, 0, nhh#, 0); "(long or double) shake";
-  callpic;
-  add_elempic (2*2off,0);
-  shift_pic (-.3nhw, 0);
-  save_elempic;
-endchar;
-
-beginchar(89, 0, nhh#, 0); "mordent";
-  callpic;
-  fill_square (med, 1.5nhh, (.5nhw,-.375nhh));
-endchar;
-
-beginchar(119, 0, nhh#, 0); "(long or double) mordent";
-  currentpicture:= elem_pic; savepic;
-  fill_square (med, 1.5nhh, (.5nhw,-.375nhh));
-endchar;
-
-beginchar(106, 0, 1.5nhh#, 0); "Pince with line";
-  callpic;
-  pickup med_pen;
-  draw (-.55nhw, 0)--(-.55nhw, h);
-endchar;
-
-beginchar(107, 0, 1.5nhh#, 0); "Pince with hook nw";
-  callpic;
-  x1=-.45nhw; setpar;
-  pickup med_pen;
-  z5=1.75[z3,z2]-(x3-x1,0); z6=z1 rotatedaround (z5,90);
-  draw (z1..z5{z2-z3}..{z3-z2}z6) shifted -(.5thick, .15nhh);
-endchar;
-
-beginchar(108, 0, nhh#, 0); "Pince with hook sw";
-  callpic;
-  x1=-.45nhw; setpar;
-  pickup med_pen;
-  z5=1.5[z2,z1]-.75(.5thick,.15nhh); z6=z2 rotatedaround (z5,-90);
-  draw (z1..z5{z1-z2}..{z2-z1}z6);
-endchar;
-
-beginchar(109, 0, 1.5nhh#, 0); "Pince with hook ne";
-  callpic;
-  x1=1.35nhw; setpar;
-  pickup med_pen;
-  z5=1.5[z1,z2]; z6=z1 rotatedaround (z5,-90);
-  draw (z1..z5{z2-z1}..{z1-z2}z6);
-endchar;
-
-beginchar(69, nhw#, .5nhh#, 0); "trille-element";
-  x1=-1; y1=y2=y3=.5h; x3=2x2=nhw;
-  pickup penrazor scaled 1.5thick rotated 50;
-  draw z1{ne}..{se}z2{se}..{ne}z3;
-endchar;
-
-beginchar(70, 0, nhh#, 0); "arpeggio-element";
-  x1=x2=x3=.2nhw-1; y1=0; y3=2y2=nhh+1;
-  pickup penrazor scaled (thick+.16nhh) rotated 45;
-  draw z1{ne}..{nw}z2{nw}..{ne}z3;
-  shift_pic (-nhw, 0);
-endchar;
-
-%%%%%%%
-message ("<pedal signs>");
-%%%%%%%
-
-def pedalstar (text rot)=
-  x4=-x1=min(.05nhh,0.35pt); y1=y4=0; x3=-x2=.14nhh;
-  y3=y2=2y5=2y6=.4nhh; x6=-x5=1.1x4;
-  p:=(z1..z5..z2..z3..z6..z4--cycle) shifted (0, .2nhh);
-  forsuffixes $=rot: fill p rotated $; endfor
-  pickup med_pen;
-  draw quartercircle scaled .4nhh;
-  add_mirror (origin, up);
-  add_mirror (origin, right);
-  labels (1,2,3,4);
-  shift_pic (.5nhw, .8nhh);
-enddef;
-
-beginchar(33, 0, 1.5nhh#, 0); "pedal (release) star I";
-  pedalstar (0,60);
-endchar;
-
-beginchar(104, 0, 1.5nhh#, 0); "pedal star II";
-  pedalstar (0,45,90);
-endchar;
-
-beginchar(34, 0, 1.5nhh#, 0); "pedal I";
-  mw:= 1.25nhw; mh:=1.7nhh;
-
-  x1=.425mw; y1=4/18mh;
-  x2=.2mw;   y2=4/18mh;
-  x3=x1;     y3r=0;
-  x4=.65mw;  y4=.35mh;
-  x5=.475mw; y5=.83mh;
-  penpos1(.75thin,0);       penpos4(.275nhh+thin,60);
-  penpos2(.15nhh+thin,135); penpos5(.025nhh+med,0);
-  penpos3(.025nhh+med,-90);
-
-  penstroke z1e{up}..z2e..z3e..z4e..{up+.5right}z5e;
-
-  fill lft z1l{up+ne}..{down+se}rt z1r{down+sw}..{up+nw}cycle;
-  fill rt z5l{up+ne}..{down+se}lft z5r{down+sw}..{up+nw}cycle;
-%{{{
-  currentpen:= pencircle; draw z1{up}..z2..z3..z4..{up+.5right}z5;
-%}}}
-
-  x6=mw-x12;        y6=.75mh;
-  x7=mw-x11;        y7=.65mh;
-  x8=.25mw;         y8=y10;
-  x9=x8+(x10-x8)/2; y9r=mh;
-  x10=.8mw;         y10=.9mh;
-  x11=.88mw;        y11=y7;
-  x12=.7mw;         y12=.7mh;
-  penpos6(thin,-80); penpos10(1.2med,90);
-  penpos7(.25nhh+thin,-110);     penpos11(.25nhh+thin,-70);
-  penpos8(med,90);          penpos12(thin,-100);
-  penpos9(.9med,90);
-
-  penstroke z6e..z7e..z8e..z9e..z10e..z11e..z12e;
-%{{{
-  currentpen:=pencircle; draw z6..z7..z8..z9..z10..z11..z12;
-%}}}
-  penlabels (range 1 thru 12);
-  savepic;
-  shift_pic (-.125nhw, 0);
-endchar;
-
-beginchar(35, 0, 1.5nhh#, 0); "pedal II";
-  callpic; %%% ->P
-  mw:=3nhw; mh:=1.7nhh;
-  fill_circle (.15mh, (.945mw-.15mh/2, .15mh/2));%%% ->.
-
-  x1=.5mw;   y1=.9mh;
-  x2=.77mw;  y2=.58mh;
-  x3=.815mw; y3=.2mh;
-  x4= x2;    y4r=0;
-  x5=.63mw;  y5=.22mh;
-  x6= x2;    y6=y2;
-  penpos1(.75med,90);       penpos4(.025nhh+med,-90);
-  penpos2(.1125nhh+med,30); penpos5(.1125nhh+thin,-135);
-  penpos3(.05nhh+med,0);    penpos6(med,100);
-
-  penstroke (z1e{right}..z2e..z3e..z4e..z5e{dir 110}..z6e);%%% ->d
-  fill lft z1l{ne}..{nw}rt z1r{sw}..{se}cycle;
-
-  x7=x5;        y7=y5;
-  x8=.55mw;     y8r=0;
-  x9=x1;        y9=.56mh;
-  x10=x11+.1mw; y10=y11+.1mh;
-  x11=.375mw;   y11r=0;
-  x12=.28mw;    y12=.25mh;
-  penpos7(thin,-75);         penpos10(1.2thin,-45);
-  penpos8(.05nhh+med,-90);   penpos11(.225nhh,-100);
-  penpos9(.0625nhh+thin,80); penpos12(thin,-125);
-
-  penstroke z7e..z8e..z9e & z9e{dir-30}..{dir-150}z10e..z11e;%%% ->e
-  penstroke z12e..z11e;
-  penlabels (range 1 thru 12);
-  shift_pic (-(.125nhw+.25nhw), 0);
-endchar;
-
-%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-%%%%%%%
-message ("<beam elements>");
-%%%%%%%
-
-pen beam_pen;
-beam_pen:= penrazor scaled beamht rotated 90;
-
-for LOOP=0 upto 9:
-  longueur:= 2;
-  for loop=0 upto 5:
-    beginchar(LOOP*6+loop+128, longueur, 0, 0);
-      pickup beam_pen;
-      draw origin--(lft w, w*(.05*(LOOP+1)));
-      savepic;
-    endchar;
-
-    beginchar(LOOP*6+loop+64+128, longueur, 0, 0);
-      call_mirror (origin,right);
-    endchar;
-
-    longueur:= 2*longueur;
-  endfor
-endfor;
-end
diff --git a/mf/musixsps.mf b/mf/musixsps.mf
deleted file mode 100644 (file)
index 26e350f..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-font_identifier := "music_special_symbols";
-
-% Here are two types of pianobrackets available, they are absolute compatible,
-% so choose this one you prefer (search for '%!!!')
-
-% free pos: 196-255
-
-mode_setup;
-
-font_size 20pt#;
-
-nhh#:=5pt#;
-nhw#:=6pt#;
-
-qqs#=.4pt#; %width of lines
-qqw#=10pt#; %length of horizontal stroke.
-
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth:=0.125pt;
-
-define_pixels(qqw,nhh,nhw);
-define_blacker_pixels(med,thick);
-
-qqs:=ceiling(qqs#*hppp); % the way rule widths are calculated
-
-pair sw;
-sw = down+left;
-
-path p;
-picture save_pic;
-
-pen line_pen;
-line_pen:= pencircle scaled qqs;
-
-%%%%%%%
-message ("<glissandi-elements>");
-%%%%%%%
-
-def glissando (expr theta)=
-  x1=-1; y1=0; z2=z1+(.5nhw,0); z3=z1+(nhw+1,0);
-  p:= z1{1.25up+right}..{1.25down+right}z2{1.25down+right}..{1.25up+right}z3;
-  pickup penrazor scaled (.075nhw+thick) rotated (theta+65);
-  draw p rotated theta;
-  labels (1,2,3);
-enddef;
-
-for slope=1 upto 8:
-
-  beginchar(slope-1, (cosd(10slope))*nhw#,(sind(10slope))*nhw#, 0);
-  " glissando element slope "&decimal (10slope)&" degree";
-    glissando (10slope);
-    save_pic:= currentpicture;
-  endchar;
-
-  beginchar(8+slope-1, (cosd(10slope))*nhw#, (sind(10slope))*nhw#, 0);
-  " glissando element slope "&decimal (-10slope)&" degree";
-    currentpicture:= save_pic reflectedabout (origin, right);
-  endchar;
-
-endfor;
-
-%%%%%%%
-message ("<guitar chords>");
-%%%%%%%
-
-def tabulatur (expr nd)=
-  hwidth:=1/5w;
-  x1=x2=y2=y3=0; x3=w; y1=-nd;
-  fill unitsquare xscaled (w+2thinwidth) yscaled (med+.2pt)
-       shifted(-thinwidth,0);
-  pickup pencircle scaled max(1,.2pt+blacker);
-  for v=1 upto 5 :
-    draw (z2--z3) shifted (0,v*-hwidth);
-  endfor;
-
-  for v=0 upto 5 :
-    draw (z1--z2) shifted (v*hwidth,0);
-  endfor;
-  labels (1,2,3);
-enddef;
-
-shift:=.15nhh;
-def Circle (expr nh)=
-  x1l=.1w; x2=x4=.5w; x3l=.9w;
-  y1=y3=.5nh+shift; y2=.1nh+shift; y4=.9nh+shift;
-  penpos1(med, 0);
-  penpos2(thinwidth,90);
-  penpos3(med,180);
-  penpos4(thinwidth, 270);
-  penstroke z1e..z2e..z3e..z4e..cycle;
-  pickup pencircle; draw z1..z2..z3..z4..cycle;
-enddef;
-
-def Cross (expr nh)=
-  x1=x3=.2w; x2=x4=.8w;
-  y1=y4=.2nh+shift; y2=y3=nh-.2nh+shift;
-  pickup pencircle scaled med;
-  draw z1--z2; draw z3--z4;
-  labels (1,2,3,4);
-enddef;
-
-beginchar(16, 3nhw#, 0, 0);" small grid";
-  tabulatur (108/25nhh);
-endchar;
-
-beginchar(17, 3/2nhw#, 0, 0); " small dot";
-  fill fullcircle scaled .54nhh shifted (w,-.36nhh);
-endchar;
-
-beginchar(18, 3nhw#, 0, 0); " small bar";
-  fill unitsquare xscaled w yscaled .24nhh shifted (0,-.48nhh);
-endchar;
-
-beginchar(19, 3/5nhw#, 0, 0); " small circle";
-  Circle (.72nhh);
-endchar;
-
-beginchar(20, 3/5nhw#, 0, 0); " small cross";
-  Cross (.72nhh);
-endchar;
-
-% the next seems to be senseless, but it isn't
-
-beginchar(28, 3/5nhw#, 0, 0); " small blank";
-endchar;
-
-%%%%%%%
-message ("<several lines>");
-%%%%%%%
-
-hooklength:=4.5pt;
-
-beginchar(21, 0, 0, 0);" bracket hook up";
-  pickup line_pen;
-  draw origin--(0, hooklength);
-endchar;
-
-beginchar(22, 0, 0, 0);" bracket hook down";
-  pickup line_pen;
-  draw origin--(0, -hooklength);
-endchar;
-
-beginchar(23, nhw#, 0, 0);" upper octaveline";
-  pickup line_pen;
-  draw (.33w, 1.1nhw)--(.66w, 1.1nhw);
-endchar;
-
-beginchar(24, 0, 0, 0);" final hook for upper octaveline";
-  pickup line_pen;
-  draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
-  draw (.33nhw, 1.1nhw)--(1.1nhw, 1.1nhw);
-endchar;
-
-beginchar(25, nhw#, 0, 0);" lower octaveline";
-  pickup line_pen;
-  draw (.33w, 0)--(.66w, 0);
-endchar;
-
-beginchar(26, 0, 0, 0);" final hook for lower octaveline";
-  pickup line_pen;
-  draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
-  draw (.33nhw,0)--(1.1nhw, 0);
-endchar;
-
-beginchar(27, .75nhw#, 0, 0);" used for \bracket";
-  pickup line_pen;
-  draw origin--(.5nhw, 0);
-endchar;
-
-beginchar(29, qqw#, 0, 0);" line ydim 0pt";
-  pickup line_pen;
-  draw origin--(w,0);
-endchar;
-
-% lines length xdim 10pt, ydim (-).25 to (-)5pt
-
-for j=1 upto 20:
-  beginchar(29+j, qqw#, 0, 0); " line ydim "&decimal .25j&"pt";
-    pickup line_pen;
-    draw origin--(w, .25pt*j);
-    save_pic:= currentpicture;
-  endchar;
-
-  beginchar(49+j, qqw#, 0, 0); " line ydim -"&decimal .25j&"pt";
-    currentpicture:= save_pic reflectedabout (origin, right);
-  endchar;
-endfor;
-
-%%%%%%%
-message ("<circles>");
-%%%%%%%
-
-for n:=1 upto 14:
-  beginchar(70+n-1, 0, 0, 0);
-  " fullcircle diameter "&decimal ((n+2)*2)&" pt";
-    diameter:=(n+2)*2pt;
-    pickup line_pen;
-    draw fullcircle scaled diameter;
-  endchar;
-endfor;
-
-%%%%%%%
-message ("<(de-)crescendi>");
-%%%%%%%
-
-widthstep:=nhw;
-crescendowidth:=.5nhh; % \Internote
-
-for n:=1 upto 32:
-  beginchar(84+n-1, 0, 3pt#, 3pt#);
-  " crescendo length "&decimal n&" noteheadwidths";
-    pickup line_pen;
-    draw (n*widthstep, crescendowidth+.0075n*crescendowidth)--(0,0);
-    addto currentpicture also currentpicture reflectedabout (origin,right);
-    save_pic:= currentpicture;
-  endchar;
-
-  beginchar(116+n-1, 0, 3pt#, 3pt#);
-  " decrescendo length "&decimal n&" noteheadwidths";
-    currentpicture:= save_pic reflectedabout(origin, up) shifted (n*widthstep,0);
-  endchar;
-endfor;
-
-%%%%%%%
-message ("<piano brackets>");
-%%%%%%%
-
-% lastbrace is adjustable (originally 99)
-
-firstbrace:=20;  % smallest brace is 2*20 pt (\simeq 14mm)
-lastbrace:=67;   % largest brace is 2*67 pt (\simeq 47mm)
-
-%%% from Stanislav Kneifl
-
-def drawpianobracket (expr height) =
-  u# := 1nhh#/5pt# * 1pt#;
-  v# := (height/40) * 1pt#;
-  define_pixels (u, v);
-%  beginchar (height-firstbrace, 1.25nhh#, 0, 0);
-  beginchar (height-firstbrace+148, 0, 0, 0);
-    z1 = origin;
-    z2 = (4.7u, 7v);
-    z3 = (3.6u, 16.5v);
-    z4 = (1.9u, 25v);
-    z5 = (2.28u, 32v);
-    z6 = (w, 40v);
-    penpos1 (max(1,0.1u), 125);
-    penpos2 (1.2u, 180);
-    penpos3 (3.2u, 195);
-    penpos4 (2.5u, 180);
-    penpos5 (1.14u, 180);
-    penpos6 (max(2,0.3u), 150);
-    penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
-    currenttransform := identity reflectedabout ((0,0),(1,0));
-    penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
-    currenttransform := identity;
-% inserted
-    currentpicture:=currentpicture shifted (round(-1.75nhh), 0);
-%
-  endchar;
-enddef;
-
-def bigbrace(expr v) =
-  beginchar (v-firstbrace+148, 0, 0, 0);
-  " brace vsize "&decimal round(2v*pt#)&"pt";
-    vwidth:=v*pt;
-    hwidth:=max(.1vwidth,3.25pt);
-    hwidth:=min(hwidth,6.5pt);
-    actwidth:=.035vwidth;
-    x1=.25nhw;  y1=vwidth;
-    x2l=-.8hwidth; y2=2/3vwidth;
-    x3r=.2hwidth; y3=1/3vwidth;
-    x4=-hwidth; y4=0;
-    penpos1(max(1,.25pt),-35);
-    penpos2(1.5med+actwidth,40);
-    penpos3(1.75med+actwidth,45);
-    penpos4(max(1,.2pt),-90);
-    penstroke z1e..z2e..z3e..{left+sw}z4e;
-    currentpen:= pencircle; draw z1..z2..z3..{left+sw}z4;
-    addto currentpicture also currentpicture reflectedabout (origin, right);
-    penlabels(1,2,3,4);
-    currentpicture:= currentpicture shifted (round(-.75nhh), 0);
-  endchar;
-enddef;
-
-%!!! comment the line 'bigbrace' and uncomment the line 'drawpianobracket'
-
-for v=firstbrace upto lastbrace :
-  bigbrace (v);
-%  drawpianobracket (v);
-endfor;
-
-end
diff --git a/mf/musixspx.mf b/mf/musixspx.mf
deleted file mode 100644 (file)
index 3b3f432..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-font_identifier := "music_special_symbols";
-
-% Here are two types of pianobrackets available, they are absolute compatible,
-% so choose this one you prefer (search for '%!!!')
-
-% free pos: 196-255
-
-mode_setup;
-
-font_size 20pt#;
-
-nhh#:=5pt#;
-nhw#:=6pt#;
-
-qqs#=.4pt#; %width of lines
-qqw#=10pt#; %length of horizontal stroke.
-
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth:=0.125pt;
-
-define_pixels(qqw,nhh,nhw);
-define_blacker_pixels(med,thick);
-
-qqs:=ceiling(qqs#*hppp); % the way rule widths are calculated
-
-pair sw;
-sw = down+left;
-
-path p;
-picture save_pic;
-
-pen line_pen;
-line_pen:= pencircle scaled qqs;
-
-%%%%%%%
-message ("<glissandi-elements>");
-%%%%%%%
-
-def glissando (expr theta)=
-  x1=-1; y1=0; z2=z1+(.5nhw,0); z3=z1+(nhw+1,0);
-  p:= z1{1.25up+right}..{1.25down+right}z2{1.25down+right}..{1.25up+right}z3;
-  pickup penrazor scaled (.075nhw+thick) rotated (theta+65);
-  draw p rotated theta;
-  labels (1,2,3);
-enddef;
-
-for slope=1 upto 8:
-
-  beginchar(slope-1, (cosd(10slope))*nhw#,(sind(10slope))*nhw#, 0);
-  " glissando element slope "&decimal (10slope)&" degree";
-    glissando (10slope);
-    save_pic:= currentpicture;
-  endchar;
-
-  beginchar(8+slope-1, (cosd(10slope))*nhw#, (sind(10slope))*nhw#, 0);
-  " glissando element slope "&decimal (-10slope)&" degree";
-    currentpicture:= save_pic reflectedabout (origin, right);
-  endchar;
-
-endfor;
-
-%%%%%%%
-message ("<guitar chords>");
-%%%%%%%
-
-def tabulatur (expr nd)=
-  hwidth:=1/5w;
-  x1=x2=y2=y3=0; x3=w; y1=-nd;
-  fill unitsquare xscaled (w+2thinwidth) yscaled (med+.2pt)
-       shifted(-thinwidth,0);
-  pickup pencircle scaled max(1,.2pt+blacker);
-  for v=1 upto 5 :
-    draw (z2--z3) shifted (0,v*-hwidth);
-  endfor;
-
-  for v=0 upto 5 :
-    draw (z1--z2) shifted (v*hwidth,0);
-  endfor;
-  labels (1,2,3);
-enddef;
-
-shift:=.15nhh;
-def Circle (expr nh)=
-  x1l=.1w; x2=x4=.5w; x3l=.9w;
-  y1=y3=.5nh+shift; y2=.1nh+shift; y4=.9nh+shift;
-  penpos1(med, 0);
-  penpos2(thinwidth,90);
-  penpos3(med,180);
-  penpos4(thinwidth, 270);
-  penstroke z1e..z2e..z3e..z4e..cycle;
-  pickup pencircle; draw z1..z2..z3..z4..cycle;
-enddef;
-
-def Cross (expr nh)=
-  x1=x3=.2w; x2=x4=.8w;
-  y1=y4=.2nh+shift; y2=y3=nh-.2nh+shift;
-  pickup pencircle scaled med;
-  draw z1--z2; draw z3--z4;
-  labels (1,2,3,4);
-enddef;
-
-beginchar(16, 3nhw#, 0, 0);" small grid";
-  tabulatur (108/25nhh);
-endchar;
-
-beginchar(17, 3/2nhw#, 0, 0); " small dot";
-  fill fullcircle scaled .54nhh shifted (w,-.36nhh);
-endchar;
-
-beginchar(18, 3nhw#, 0, 0); " small bar";
-  fill unitsquare xscaled w yscaled .24nhh shifted (0,-.48nhh);
-endchar;
-
-beginchar(19, 3/5nhw#, 0, 0); " small circle";
-  Circle (.72nhh);
-endchar;
-
-beginchar(20, 3/5nhw#, 0, 0); " small cross";
-  Cross (.72nhh);
-endchar;
-
-% the next seems to be senseless, but it isn't
-
-beginchar(28, 3/5nhw#, 0, 0); " small blank";
-endchar;
-
-%%%%%%%
-message ("<several lines>");
-%%%%%%%
-
-hooklength:=4.5pt;
-
-beginchar(21, 0, 0, 0);" bracket hook up";
-  pickup line_pen;
-  draw origin--(0, hooklength);
-endchar;
-
-beginchar(22, 0, 0, 0);" bracket hook down";
-  pickup line_pen;
-  draw origin--(0, -hooklength);
-endchar;
-
-beginchar(23, nhw#, 0, 0);" upper octaveline";
-  pickup line_pen;
-  draw (.33w, 1.1nhw)--(.66w, 1.1nhw);
-endchar;
-
-beginchar(24, 0, 0, 0);" final hook for upper octaveline";
-  pickup line_pen;
-  draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
-  draw (.33nhw, 1.1nhw)--(1.1nhw, 1.1nhw);
-endchar;
-
-beginchar(25, nhw#, 0, 0);" lower octaveline";
-  pickup line_pen;
-  draw (.33w, 0)--(.66w, 0);
-endchar;
-
-beginchar(26, 0, 0, 0);" final hook for lower octaveline";
-  pickup line_pen;
-  draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
-  draw (.33nhw,0)--(1.1nhw, 0);
-endchar;
-
-beginchar(27, .75nhw#, 0, 0);" used for \bracket";
-  pickup line_pen;
-  draw origin--(.5nhw, 0);
-endchar;
-
-beginchar(29, qqw#, 0, 0);" line ydim 0pt";
-  pickup line_pen;
-  draw origin--(w,0);
-endchar;
-
-% lines length xdim 10pt, ydim (-).25 to (-)5pt
-
-for j=1 upto 20:
-  beginchar(29+j, qqw#, 0, 0); " line ydim "&decimal .25j&"pt";
-    pickup line_pen;
-    draw origin--(w, .25pt*j);
-    save_pic:= currentpicture;
-  endchar;
-
-  beginchar(49+j, qqw#, 0, 0); " line ydim -"&decimal .25j&"pt";
-    currentpicture:= save_pic reflectedabout (origin, right);
-  endchar;
-endfor;
-
-%%%%%%%
-message ("<circles>");
-%%%%%%%
-
-for n:=1 upto 14:
-  beginchar(70+n-1, 0, 0, 0);
-  " fullcircle diameter "&decimal ((n+2)*2)&" pt";
-    diameter:=(n+2)*2pt;
-    pickup line_pen;
-    draw fullcircle scaled diameter;
-  endchar;
-endfor;
-
-%%%%%%%
-message ("<(de-)crescendi>");
-%%%%%%%
-
-widthstep:=nhw;
-crescendowidth:=.5nhh; % \Internote
-
-for n:=1 upto 32:
-  beginchar(84+n-1, 0, 3pt#, 3pt#);
-  " crescendo length "&decimal n&" noteheadwidths";
-    pickup line_pen;
-    draw (n*widthstep, crescendowidth+.0075n*crescendowidth)--(0,0);
-    addto currentpicture also currentpicture reflectedabout (origin,right);
-    save_pic:= currentpicture;
-  endchar;
-
-  beginchar(116+n-1, 0, 3pt#, 3pt#);
-  " decrescendo length "&decimal n&" noteheadwidths";
-    currentpicture:= save_pic reflectedabout(origin, up) shifted (n*widthstep,0);
-  endchar;
-endfor;
-
-%%%%%%%
-message ("<piano brackets>");
-%%%%%%%
-
-% lastbrace is adjustable (originally 99)
-
-firstbrace:=20;  % smallest brace is 2*20 pt (\simeq 14mm)
-lastbrace:=67+48;   % largest brace is 2*67 pt (\simeq 47mm)
-
-%%% from Stanislav Kneifl
-
-def drawpianobracket (expr height) =
-  u# := 1nhh#/5pt# * 1pt#;
-  v# := (height/40) * 1pt#;
-  define_pixels (u, v);
-%  beginchar (height-firstbrace, 1.25nhh#, 0, 0);
-  beginchar (height-firstbrace+148, 0, 0, 0);
-    z1 = origin;
-    z2 = (4.7u, 7v);
-    z3 = (3.6u, 16.5v);
-    z4 = (1.9u, 25v);
-    z5 = (2.28u, 32v);
-    z6 = (w, 40v);
-    penpos1 (max(1,0.1u), 125);
-    penpos2 (1.2u, 180);
-    penpos3 (3.2u, 195);
-    penpos4 (2.5u, 180);
-    penpos5 (1.14u, 180);
-    penpos6 (max(2,0.3u), 150);
-    penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
-    currenttransform := identity reflectedabout ((0,0),(1,0));
-    penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
-    currenttransform := identity;
-% inserted
-    currentpicture:=currentpicture shifted (round(-1.75nhh), 0);
-%
-  endchar;
-enddef;
-
-def bigbrace(expr v) =
-  beginchar (v-firstbrace+148, 0, 0, 0);
-  " brace vsize "&decimal round(2v*pt#)&"pt";
-    vwidth:=v*pt;
-    hwidth:=max(.1vwidth,3.25pt);
-    hwidth:=min(hwidth,6.5pt);
-    actwidth:=.035vwidth;
-    x1=.25nhw;  y1=vwidth;
-    x2l=-.8hwidth; y2=2/3vwidth;
-    x3r=.2hwidth; y3=1/3vwidth;
-    x4=-hwidth; y4=0;
-    penpos1(max(1,.25pt),-35);
-    penpos2(1.5med+actwidth,40);
-    penpos3(1.75med+actwidth,45);
-    penpos4(max(1,.2pt),-90);
-    penstroke z1e..z2e..z3e..{left+sw}z4e;
-    currentpen:= pencircle; draw z1..z2..z3..{left+sw}z4;
-    addto currentpicture also currentpicture reflectedabout (origin, right);
-    penlabels(1,2,3,4);
-    currentpicture:= currentpicture shifted (round(-.75nhh), 0);
-  endchar;
-enddef;
-
-%!!! comment the line 'bigbrace' and uncomment the line 'drawpianobracket'
-
-for v=firstbrace upto lastbrace :
-  bigbrace (v);
-%  drawpianobracket (v);
-endfor;
-
-end
diff --git a/mf/xdrawsl.mf b/mf/xdrawsl.mf
deleted file mode 100644 (file)
index fe8c5ec..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-%(c)
-
-min_bow:=  .5nhh;
-max_bow:= 1.5nhh;
-slope:=17.5/100;
-
-code=-1;
-
-for iht=1 upto 8:
-  for iwd=0 upto 15:
-    beginchar(incr code, 0, 0, 0);
-      mw#:=(minwidth+iwd*delwidth)*pt#;
-      define_pixels(mw);
-      x1 = y1= 0; x3= mw; y3= 2y2'= iht*delheight; x2'= .5x3;
-      mheight:=y3;
-      z2-z2'= whatever*dir(angle(z3-z1)+90);
-      my_bow:=min(max_bow, slope*mw);
-      my_bow:=max(my_bow, min_bow);
-      z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
-      (z1'-z2)=whatever*(z1-z2');
-      penpos1(.15thick,(angle(z3-z1)+90));
-      penpos2(thick,(angle(z3-z1)+90));
-      penpos3(.15thick,(angle(z3-z1)+90));
-      penstroke (flex(z1e,z2e,z3e));
-%{{{
-      currentpen:= pencircle;
-      draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
-%}}}
-      currentpicture:=currentpicture t;
-      p:=currentpicture;
-    endchar;
-
-    beginchar(code+128, 0, 0, 0);
-      currentpicture:=p T;
-    endchar;
-
-  endfor
-endfor
-end
diff --git a/mf/xdrawzl.mf b/mf/xdrawzl.mf
deleted file mode 100644 (file)
index 50ef6cf..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-%(c)
-
-min_bow:=  .4nhh;
-max_bow:= 1.75nhh;
-slope:= 10/100;
-
-code=-1;
-
-for i=1 upto numslurs:
-  beginchar(incr code, 0, 0, 0);
-    mw:=(minwidth+code*delwidth)*pt;
-    x3= -x1= .5mw; x2= y1= y3 = 0;
-    y2= max(min_bow, slope*mw);
-    y2:= min(y2, max_bow);
-    penpos1(.15thick,90); penpos2(thick,90); penpos3(.15thick,90);
-    penstroke (flex(z1e,z2e,z3e));
-    currentpen:= pencircle; draw (flex(z1,z2,z3));
-    p:=currentpicture;
-  endchar;
-
-  beginchar(code+54, 0, 0, 0);
-    currentpicture:=p reflectedabout (origin, right);
-  endchar;
-endfor
-end
diff --git a/mf/xgreg11.mf b/mf/xgreg11.mf
deleted file mode 100644 (file)
index e5f3dc4..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-font_identifier:="xgreg11";
-
-mode_setup;
-
-font_size 10.24pt#;
-
-nhh#:=2.56pt#;
-
-input xgreggen
diff --git a/mf/xgreg13.mf b/mf/xgreg13.mf
deleted file mode 100644 (file)
index 49a78be..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-font_identifier:="xgreg13";
-
-mode_setup;
-
-font_size 12.8pt#;
-
-nhh#:=3.2pt#;
-
-input xgreggen
diff --git a/mf/xgreg16.mf b/mf/xgreg16.mf
deleted file mode 100644 (file)
index bc5d554..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-font_identifier:="xgreg16";
-
-mode_setup;
-
-font_size 16pt#;
-
-nhh#:=4pt#;
-
-input xgreggen
diff --git a/mf/xgreg20.mf b/mf/xgreg20.mf
deleted file mode 100644 (file)
index f0ba509..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-font_identifier:="xgreg20";
-
-mode_setup;
-
-font_size 20pt#;
-nhh#:=5pt#;
-
-
-input xgreggen
diff --git a/mf/xgreg24.mf b/mf/xgreg24.mf
deleted file mode 100644 (file)
index 9f4dbfb..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-font_identifier:="xgreg24";
-
-mode_setup;
-
-font_size 24pt#;
-
-nhh#:=6pt#;
-
-input xgreggen
diff --git a/mf/xgreg25.mf b/mf/xgreg25.mf
deleted file mode 100644 (file)
index 529c7ec..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-
-font_identifier:="musix25";
-
-mode_setup;
-
-font_size 25pt#;
-
-nhh#:=6.25pt#;
-nhw#:=7.5pt#;
-gregwidth#:=0.5*sqrt(2)*nhw#;
-
-thin#:=1/50designsize;
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth := 0.15pt;
-beamht#:=0.48nhh#;
-
-define_pixels(nhh,nhw,beamht,gregwidth);
-define_blacker_pixels(thin,med,thick);
-
-pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
-ne = up+right; se = down+right; sw = down+left; nw = up+left;
-
-font_x_height nhh#;
-font_quad nhw#;
-
-input musixgen
diff --git a/mf/xgreg29.mf b/mf/xgreg29.mf
deleted file mode 100644 (file)
index 3a2293e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-font_identifier:="xgreg29";
-
-mode_setup;
-
-font_size 29pt#;
-
-nhh#:=7.2pt#;
-
-input xgreggen
diff --git a/mf/xgreggen.mf b/mf/xgreggen.mf
deleted file mode 100644 (file)
index 43f14ec..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%  this is xgreggen.mf (c)
-%
-%  Version T.67 [January 97]
-%
-
-nhw#:=1.2*nhh#;
-
-thin#:=1/50designsize;
-med#:=1/33designsize;
-thick#:=1/16designsize;
-
-thinwidth := 0.125pt;
-beamht#:=0.48nhh#;
-%gregwidth#:=0.5*sqrt(2)*nhh#;
-gregwidth#:=0.6*nhh#;
-smallgreg:=0.5;
-
-define_pixels(nhh,nhw,beamht,gregwidth);
-define_blacker_pixels(thin,med,thick);
-
-pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
-ne = up+right; se = down+right; sw = down+left; nw = up+left;
-
-font_x_height nhh#;
-font_quad nhw#;
-
-pair pone, ptwo;
-transform t;
-path p;
-
-hlthick=.2pt;
-lthick=.4pt;
-
-greglangle:=18; gregrlangle:=180+greglangle;
-greguangle:=26; gregruangle:=180+greguangle;
-orisuangle:=40; orisruangle:=180+orisuangle;
-
-diamwidth:=.96 gregwidth; greg_min_diam:=gregwidth-diamwidth;
-diamheight:=1.33 gregwidth;
-deminutae:=0.66; gregwidth_dem:=gregwidth*deminutae;
-aucta_fact:=0.33gregwidth;
-shave:=.3gregwidth;
-
-pen line_pen, med_pen, coda_pen, thin_pen;
-med_pen:= pencircle scaled med;
-line_pen:= pencircle scaled lthick;
-coda_pen:= pencircle xscaled 1.25thick yscaled max(1,.75med);
-thin_pen:= pencircle scaled max(1,.25pt);
-
-picture save_pic, elem_pic;
-
-%%%%%%%%%%%%%%%
-% basic def's %
-%%%%%%%%%%%%%%%
-
-def savepic = save_pic:= currentpicture enddef;
-def save_elempic = elem_pic:= currentpicture enddef;
-def callpic = currentpicture:= save_pic enddef;
-
-def mirror (expr pone, ptwo) =
-  currentpicture:=currentpicture reflectedabout(round(pone),round(ptwo))
-enddef;
-
-def add_mirror (expr pone, ptwo) =
-  addto currentpicture also currentpicture
-        reflectedabout (round(pone), round(ptwo))
-enddef;
-
-def call_mirror (expr pone, ptwo) = callpic; mirror (pone, ptwo) enddef;
-
-def add_shift (expr pone, ptwo) =
-  addto currentpicture also currentpicture shifted (pone, ptwo)
-enddef;
-
-def call_add_shift (expr pone, ptwo) =
-  callpic; add_shift (pone, ptwo)
-enddef;
-
-def add_elempic (expr pone, ptwo) =
-  addto currentpicture also elem_pic shifted (pone, ptwo)
-enddef;
-
-def call_add_save_elempic (expr pone, ptwo) =
-  callpic; add_elempic(pone, ptwo); savepic
-enddef;
-
-def shift_pic (expr pone, ptwo) =
-  currentpicture:=currentpicture shifted (round(pone),round(ptwo))
-enddef;
-
-def fill_circle (expr diameter, zshift) =
-  fill fullcircle scaled diameter shifted zshift
-enddef;
-
-def fill_square (expr xwidth, ywidth, zshift) =
-  fill unitsquare xscaled xwidth yscaled ywidth shifted zshift
-enddef;
-
-%
-
-% eobasicdefs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-%%%%%%%
-message ("<noteheads>");
-%%%%%%%
-
-NHW=nhw+hlthick;
-
-beginchar(0, gregwidth#, .5nhh#, .5nhh#); "dummy square";
-endchar;
-beginchar(18, smallgreg*gregwidth#, .5nhh#, .5nhh#); "small dummy square";
-endchar;
-
-beginchar(1, 0, .5nhh#, .5nhh#); "filled diamond";
- x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4=0.5gregwidth;
- y1=y3=0; y2=-y4=0.5diamheight;
- pickup pencircle scaled lthick;
- fill z1--z2--z3--z4--cycle;
- draw z1--z2--z3--z4--cycle;
- penlabels (1,2,3,4);
-endchar;
-
-beginchar(2, 0, .5nhh#, .5nhh#); "filled diamond aucta";
- x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4=0.5gregwidth;
- y1=y3=0; y2=-y4=0.5diamheight;
- x5=x1+hlthick; y5=1.5y4;
- pickup pencircle scaled lthick;
- fill z1--z2--z3{sw+down}..{left+0.3up}z5--z5{right}..z4--cycle;
- draw z1--z2--z3{sw+down}..{left+0.3up}z5--z5{right}..z4--cycle;
- penlabels (1,2,3,4,5);
-endchar;
-
-beginchar(3, 0, .5nhh#, .5nhh#); "apostropha";
- x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4+0.1gregwidth=0.5gregwidth;
- y1=y3=0; y2=0.5gregwidth+0.5greg_min_diam-hlthick;
- y4=-y2-0.2gregwidth;
- pickup pencircle scaled lthick;
- fill z1--z2--z3{left+1.5down}..{left+0.6down}z4--z4{right+2up}..{left+0.1up}cycle;
- draw z1--z2--z3{left+1.5down}..{left+0.6down}z4--z4{right+2up}..{left+0.1up}cycle;
- penlabels (1,2,3,4);
-endchar;
-
-beginchar(4, 0, .5nhh#, .5nhh#); "filled diamond deminutae";
- x1:=0.5greg_min_diam*deminutae+hlthick;
- x3=gregwidth_dem-x1; x2=x4=0.5gregwidth_dem;
- y1=y3=0; y2=-y4=0.5diamheight*deminutae;
- pickup pencircle scaled lthick;
- fill z1--z2--z3--z4--cycle;
- draw z1--z2--z3--z4--cycle;
- penlabels (1,2,3,4);
-endchar;
-
-beginchar(5, 0, .5nhh#, .5nhh#); "gregorian punctum";
-  x1=x4=hlthick; x2=x3=gregwidth+hlthick; y1=y2=-y3=-y4=.5gregwidth-hlthick;
-  pickup pencircle scaled lthick;
-  fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
-  draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
-  shift_pic(0,-hlthick);
-  savepic;
- penlabels (1,2,3,4);
-endchar;
-
-beginchar(13, 0, .5nhh#, .5nhh#); "mirrored gregorian punctum";
-  callpic;
-  mirror(origin, right);
-endchar;
-
-beginchar(6, 0, .5nhh#, .5nhh#); "gregorian virga left";
-  callpic;
-  fill_square (lthick, 1.5nhh,(0, -1.5nhh));
-endchar;
-
-beginchar(7, 0, .5nhh#, .5nhh#); "gregorian virga right";
-  callpic;
-  fill_square (lthick, 1.5nhh,(gregwidth, -1.5nhh));
-endchar;
-
-beginchar(8, 0, .5nhh#, .5nhh#); "gregorian punctum aucta down";
-  x1=x4=hlthick; x2=x3=gregwidth+hlthick;
-  y1=y2+aucta_fact=-y3-aucta_fact=-y4=.5gregwidth-hlthick;
-  pickup pencircle scaled lthick;
-  fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
-  draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
-  shift_pic(0,-hlthick);
-  savepic;
- penlabels (1,2,3,4);
-endchar;
-
-beginchar(9, 0, .5nhh#, .5nhh#); "gregorian punctum aucta up";
-callpic;
-mirror(origin,right);
-endchar;
-
-beginchar(10, 0, .5nhh#, .5nhh#); "oriscus";
-  x1=x4=hlthick; x2=x3=gregwidth+hlthick; y1=y2=-y3=-y4=.5gregwidth-hlthick;
-  pickup pencircle scaled lthick;
-  fill z1{dir orisuangle}..{dir orisuangle}z2--z3{dir orisruangle}..{dir orisruangle}z4--cycle;
-  draw z1{dir orisuangle}..{dir orisuangle}z2--z3{dir orisruangle}..{dir orisruangle}z4--cycle;
- penlabels (1,2,3,4);
-endchar;
-
-beginchar(11, 0, .5nhh#, .5nhh#); "apostropha aucta";
- x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4=0.5gregwidth;
- y1=y3=0; y2=0.5gregwidth+0.5greg_min_diam-hlthick;
- y4=-y2-0.2gregwidth; y5=y4; x5=x1;
- pickup pencircle scaled lthick;
- fill z1--z2--z3{left+1.5down}..{left+0.6down}z4..z5--z5{right}..{left+0.1up}cycle;
- draw z1--z2--z3{left+1.5down}..{left+0.6down}z4..z5--z5{right}..{left+0.1up}cycle;
- penlabels (1,2,3,4,5);
-endchar;
-
-beginchar(12, 0, .5nhh#, .5nhh#); "small gregorian punctum";
-  x1=x4=hlthick; x2=x3=smallgreg*gregwidth+hlthick;
-  y1=y2=-y3=-y4=.5smallgreg*gregwidth-hlthick;
-  pickup pencircle scaled lthick;
-  fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
-  draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
-  shift_pic(0,-hlthick);
-  savepic;
-endchar;
-
-beginchar(14, 0, .5nhh#, .5nhh#); "mirrored small gregorian punctum";
-  callpic;
-  mirror(origin, right);
-endchar;
-
-beginchar(15, gregwidth#, .5nhh#, .5nhh#); "podatus bottom";
-  fill_square(gregwidth+lthick, gregwidth, (0, -0.5gregwidth));
-endchar;
-
-beginchar(16, gregwidth#, .5nhh#, .5nhh#); "small podatus bottom";
-  fill_square(gregwidth+lthick, gregwidth-shave, (0, -0.5gregwidth));
-endchar;
-
-beginchar(17, 0, .5nhh#, .5nhh#); "gregorian punctum shaved bottom";
-  x1=x4=hlthick; x2=x3=gregwidth+hlthick; y1=y2=-y3+shave=-y4+shave=.5gregwidth-hlthick;
-  pickup pencircle scaled lthick;
-  fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
-  draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
-  shift_pic(0,-hlthick);
-  savepic;
- penlabels (1,2,3,4);
-endchar;
-
-def square (expr mw)=
-  fill_square (sqrt(2)*.5mw, max(1,thin), origin) rotated -45;
-  fill_square (sqrt(2)*.5mw, .15nhw, (0,-.15nhw)) rotated 45;
-  save_elempic;
-  mirror (origin,up);
-  mirror (origin,left);
-  shift_pic (mw+.5,0);
-  add_elempic(0,0);
-%  mirror (origin,right);% I've seen this too, somewhere ...
-enddef;
-
-beginchar(118, 0, .5nhh#, .5nhh#); "deep porrectus";
-  x1=x4=0; x2=x3=3*gregwidth+lthick;
-  y1=-y4=.5gregwidth-lthick; y2=y1-2nhh; y3=y4-2nhh;
-  z5=z1+(0,0.3gregwidth);
-  fill z5..{right+0.4down}z2--z3{left+0.4up}..z4--cycle; shift_pic(0,hlthick);
-  fill_square (med, 1.5nhh,(0, -2nhh));
- penlabels (1,2,3,4,5);
-endchar;
-
-beginchar(119, 0, .5nhh#, .5nhh#); "low porrectus";
-  x1=x4=0; x2=x3=3*gregwidth+lthick;
-  y1=-y4=.5gregwidth-lthick; y2=y1-1.5nhh; y3=y4-1.5nhh;
-  z5=z1+(0,0.2gregwidth);
-  fill z1..{right+0.4down}z2--z3{left+0.4up}..z4--cycle; shift_pic(0,hlthick);
-  fill_square (med, 1.5nhh,(0, -2nhh));
- penlabels (1,2,3,4,5);
-endchar;
-
-beginchar(120, 0, .5nhh#, .5nhh#); "porrectus";
-  x1=x4=0; x2=x3=3*gregwidth+lthick;
-  y1=-y4=.5gregwidth-lthick; y2=y1-nhh; y3=y4-nhh;
-  z5=z1+(0,0.1gregwidth);
-  fill z5..{right}z2--z3{left}..z4--cycle; shift_pic(0,hlthick);
-  fill_square (med, 1.5nhh,(0, -1.5nhh));
- penlabels (1,2,3,4,5);
-endchar;
-
-beginchar(121, 0, .5nhh#, .5nhh#); "soft porrectus";
-  x1=x4=0; x2=x3=3*gregwidth+lthick;
-  y1=-y4=.5gregwidth-lthick; y2=y1-0.5nhh; y3=y4-0.5nhh;
-  z5=z1+(0,0.1gregwidth);
-  fill z5..{right}z2--z3{left}..z4--cycle; shift_pic(0,hlthick);
-  fill_square (med, 1.5nhh,(0, -1.5nhh));
- penlabels (1,2,3,4,5);
-endchar;
-
-def quilisma(expr ymidtop, ymidbot) =
-  ydiff:=0.15gregwidth;
-  qdecalage:=.2*gregwidth;
-  ydepth:=0.25gregwidth;
-  x1=x14=-qdecalage+hlthick;
-  x7=x8=gregwidth+hlthick;
-  y1+ydiff-0.5ydepth=ymidtop=y7-ydiff-0.5ydepth;
-  y14+ydiff-0.5ydepth=ymidbot=y8-ydiff-0.5ydepth;
-  3x3=2x1+x7; 3x5=x1+2x7;
-  3y3=2y1+y7; 3y5=y1+2y7;
-  2x2=x1+x3; 2x4=x3+x5; 2x6=x5+x7;
-  2y2=y1+y3-2ydepth; 2y4=y3+y5-2ydepth; 2y6=y5+y7-2ydepth;
-  3x12=2x14+x8; 3x10=x14+2x8;
-  3y12=2y14+y8; 3y10=y14+2y8;
-  2x13=x14+x12; 2x11=x12+x10; 2x9=x10+x8;
-  2y13=y14+y12-2ydepth; 2y11=y12+y10-2ydepth; 2y9=y10+y8-2ydepth;
-
-  pickup line_pen;
-
-  draw z1{down+0.1right}..z2..z3..z4..z5..z6..{up+0.1right}z7--z8{down}..z9..z10..z11..z12..z13..{up+0.1left}z14--cycle;
-  fill z1{down+0.1right}..z2..z3..z4..z5..z6..{up+0.1right}z7--z8{down}..z9..z10..z11..z12..z13..{up+0.1left}z14--cycle;
-  shift_pic(0,-hlthick);
-enddef;
-
-beginchar(125, 0, .5nhh#, .5nhh#); "quilisma";
-  quilisma(0.5gregwidth-hlthick, -0.5gregwidth+hlthick);
-endchar;
-
-beginchar(126, 0, .5nhh#, .5nhh#); "bottom quilisma";
-  quilisma(0.5gregwidth-hlthick-0.8shave, -0.5gregwidth+hlthick);
-endchar;
-
-%%%%%%%
-message ("<clefs>");
-%%%%%%%
-keygregwidth:=0.5*sqrt(2)*nhw;
-
-beginchar(98, 8/3nhw#, 3.25nhh#, 0); "gregorian C clef";
-  x1=x4=0; x2=x3=keygregwidth; y1=y2=-y3=-y4=.5keygregwidth-lthick;
-  fill z1{dir 15}..z2--z3{dir 165}..z4--cycle;
-  save_elempic;
-  pickup med_pen; draw bot rt z1..{down}(-.01nhw,-.5nhh);
-  shift_pic(nhw,2.5nhh);
-  add_mirror ((0,2nhh),(1,2nhh));
-  savepic;
-  shift_pic (0,-2nhh);
-endchar;
-
-beginchar(122, 8/3nhw#, 4.25nhh#, 0); "gregorian F clef";
-  callpic;
-  add_elempic (.1nhw+0.5med,2nhh);
-  fill_square (med, 1.5nhh, (.75nhw,.8nhh));
-  shift_pic (1/3nhw,-2nhh);
-endchar;
-
-end
diff --git a/mf/xhsld16.mf b/mf/xhsld16.mf
deleted file mode 100644 (file)
index 5c71998..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-font_identifier:="xhsld16";
-mode_setup;
-font_size 16pt#;
-thick#:=1pt#;
-stepwidth#:=1/8designsize;% -> \internote
-define_pixels(stepwidth);
-define_blacker_pixels(thick);
-picture save_pic;
-numheights:=16;
-numlengths:=8;%(20-90pt)
-
-code=-1;
-for j=1 upto numlengths:
-  slength#:=(j+1)*10pt#;
-  define_pixels(slength);
-
-  for i=1 upto numheights:
-    beginchar(incr code, slength#, 0, 0);
-      x1=y1=0;x3=slength;y3=2y1'= i*stepwidth;
-      x1'=.5x3;z3'-z1'=whatever*dir(angle(z3-z1)+90);
-      if x3> y3:y3'=0;else:x3'=slength;fi
-      z2=.5[z3',z1'];
-      penpos1(thick,90);
-      penpos2(2/3thick,(angle(z3-z1)+90));
-      penpos3(.15thick,(angle(z3-z1)+90));
-      penstroke z1e..z2e..z3e;
-      pickup pencircle; draw z1..z2..z3;% draw z1--z3; draw z1'--z3';
-      save_pic:=currentpicture;
-    endchar;
-
-    beginchar(128+code, slength#, 0, 0);
-      currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
-    endchar;
-  endfor
-
-endfor
-end
diff --git a/mf/xhsld20.mf b/mf/xhsld20.mf
deleted file mode 100644 (file)
index e91a790..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-font_identifier:="xhsld20";
-mode_setup;
-font_size 20pt#;
-thick#:=1pt#;
-stepwidth#:=1/8designsize;% -> \internote
-define_pixels(stepwidth);
-define_blacker_pixels(thick);
-picture save_pic;
-numheights:=16;
-numlengths:=8;%(20-90pt)
-
-code=-1;
-for j=1 upto numlengths:
-  slength#:=(j+1)*10pt#;
-  define_pixels(slength);
-
-  for i=1 upto numheights:
-    beginchar(incr code, slength#, 0, 0);
-      x1=y1=0;x3=slength;y3=2y1'= i*stepwidth;
-      x1'=.5x3;z3'-z1'=whatever*dir(angle(z3-z1)+90);
-      if x3> y3:y3'=0;else:x3'=slength;fi
-      z2=.5[z3',z1'];
-      penpos1(thick,90);
-      penpos2(2/3thick,(angle(z3-z1)+90));
-      penpos3(.15thick,(angle(z3-z1)+90));
-      penstroke z1e..z2e..z3e;
-      pickup pencircle; draw z1..z2..z3;% draw z1--z3; draw z1'--z3';
-      save_pic:=currentpicture;
-    endchar;
-
-    beginchar(128+code, slength#, 0, 0);
-      currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
-    endchar;
-  endfor
-
-endfor
-end
diff --git a/mf/xhslu16.mf b/mf/xhslu16.mf
deleted file mode 100644 (file)
index b2e3e7d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-font_identifier:="xhslu16";
-mode_setup;
-font_size 16pt#;
-thick#:=1pt#;
-stepwidth#:=1/8designsize;% -> \internote
-define_pixels(stepwidth);
-define_blacker_pixels(thick);
-picture save_pic;
-numheights:=16;
-numlengths:=8;%(20-90pt)
-
-code=-1;
-for j=1 upto numlengths:
-  slength#:=(j+1)*10pt#;
-  define_pixels(slength);
-
-  for i=1 upto numheights:
-    beginchar(incr code, slength#, 0, 0);
-      x1=y1=0;x3=slength;y3=2y1'=-i*stepwidth;
-      x1'=.5x3;z3'-z1'=whatever*dir(angle(z3-z1)+90);
-      if x3>-y3:y3'=0;else:x3'=slength;fi
-      z2=.5[z3',z1'];
-      penpos1(thick,90);
-      penpos2(2/3thick,(angle(z3-z1)+90));
-      penpos3(.15thick,(angle(z3-z1)+90));
-      penstroke z1e..z2e..z3e;
-      pickup pencircle; draw z1..z2..z3;% draw z1--z3; draw z1'--z3';
-      save_pic:=currentpicture;
-    endchar;
-
-    beginchar(128+code, slength#, 0, 0);
-      currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
-    endchar;
-  endfor
-
-endfor
-end
diff --git a/mf/xhslu20.mf b/mf/xhslu20.mf
deleted file mode 100644 (file)
index d41801d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-font_identifier:="xhslu20";
-mode_setup;
-font_size 20pt#;
-thick#:=1pt#;
-stepwidth#:=1/8designsize;% -> \internote
-define_pixels(stepwidth);
-define_blacker_pixels(thick);
-picture save_pic;
-numheights:=16;
-numlengths:=8;%(20-90pt)
-
-code=-1;
-for j=1 upto numlengths:
-  slength#:=(j+1)*10pt#;
-  define_pixels(slength);
-
-  for i=1 upto numheights:
-    beginchar(incr code, slength#, 0, 0);
-      x1=y1=0;x3=slength;y3=2y1'=-i*stepwidth;
-      x1'=.5x3;z3'-z1'=whatever*dir(angle(z3-z1)+90);
-      if x3>-y3:y3'=0;else:x3'=slength;fi
-      z2=.5[z3',z1'];
-      penpos1(thick,90);
-      penpos2(2/3thick,(angle(z3-z1)+90));
-      penpos3(.15thick,(angle(z3-z1)+90));
-      penstroke z1e..z2e..z3e;
-      pickup pencircle; draw z1..z2..z3;% draw z1--z3; draw z1'--z3';
-      save_pic:=currentpicture;
-    endchar;
-
-    beginchar(128+code, slength#, 0, 0);
-      currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
-    endchar;
-  endfor
-
-endfor
-end
diff --git a/mf/xsld11.mf b/mf/xsld11.mf
deleted file mode 100644 (file)
index 4b9142a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xsld11";
-mode_setup;
-font_size 10.24pt#;
-thick#:=1pt#;
-internote#:=1.28pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
-def T= rotated 180 shifted (0,-mheight) enddef;
-
-input xslgen;
diff --git a/mf/xsld13.mf b/mf/xsld13.mf
deleted file mode 100644 (file)
index c612d42..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xsld13";
-mode_setup;
-font_size 12.8pt#;
-thick#:=1pt#;
-internote#:=1.6pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
-def T= rotated 180 shifted (0,-mheight) enddef;
-
-input xslgen;
diff --git a/mf/xsld16.mf b/mf/xsld16.mf
deleted file mode 100644 (file)
index 38720a7..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xsld16";
-mode_setup;
-font_size 16pt#;
-thick#:=1pt#;
-internote#:=2pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
-def T= rotated 180 shifted (0,-mheight) enddef;
-
-input xslgen;
diff --git a/mf/xsld20.mf b/mf/xsld20.mf
deleted file mode 100644 (file)
index c36089f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xsld20";
-mode_setup;
-font_size 20pt#;
-thick#:=1pt#;
-internote#:=2.5pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
-def T= rotated 180 shifted (0,-mheight) enddef;
-
-input xslgen;
diff --git a/mf/xsld24.mf b/mf/xsld24.mf
deleted file mode 100644 (file)
index 5a03c91..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xsld24";
-mode_setup;
-font_size 24pt#;
-thick#:=1pt#;
-internote#:=3pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
-def T= rotated 180 shifted (0,-mheight) enddef;
-
-input xslgen;
diff --git a/mf/xsld29.mf b/mf/xsld29.mf
deleted file mode 100644 (file)
index 766cb83..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xsld29";
-mode_setup;
-font_size 28.8pt#;
-thick#:=1pt#;
-internote#:=3.6pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
-def T= rotated 180 shifted (0,-mheight) enddef;
-
-input xslgen;
diff --git a/mf/xslgen.mf b/mf/xslgen.mf
deleted file mode 100644 (file)
index 8df8742..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-min_bow:= internote;
-max_bow:=3internote;
-slope:=17.5/100;
-
-code=-1;
-
-for iht=1 upto 8:
-  for iwd=0 upto 15:
-    beginchar(incr code, 0, 0, 0);
-      mw#:=(minwidth+iwd*delwidth)*pt#;
-      define_pixels(mw);
-      x1 = y1= 0; x3= mw; y3= 2y2'= iht*internote; x2'= .5x3;
-      mheight:=y3;
-      z2-z2'= whatever*dir(angle(z3-z1)+90);
-      my_bow:=min(max_bow, slope*mw);
-      my_bow:=max(my_bow, min_bow);
-      z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
-      (z1'-z2)=whatever*(z1-z2');
-      penpos1(.15thick,(angle(z3-z1)+90));
-      penpos2(thick,(angle(z3-z1)+90));
-      penpos3(.15thick,(angle(z3-z1)+90));
-      penstroke (flex(z1e,z2e,z3e));
-%{{{
-      currentpen:= pencircle;
-      draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
-%}}}
-      currentpicture:=currentpicture t;
-      p:=currentpicture;
-    endchar;
-
-    beginchar(code+128, 0, 0, 0);
-      currentpicture:=p T;
-    endchar;
-
-  endfor
-endfor
-end
diff --git a/mf/xslhd.mf b/mf/xslhd.mf
deleted file mode 100644 (file)
index 5ae5fdc..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-thick#:=1pt#;
-stepwidth#:=designsize/8;
-define_pixels(stepwidth);
-define_blacker_pixels(thick);
-picture save_pic;
-numheights:=16;
-numlengths:=8;%(12-96pt)
-
-code=-1;
-for j=1 upto numlengths:
-  slength#:=j*12pt#;
-  define_pixels(slength);
-
-  for i=1 upto numheights:
-    beginchar(incr code, slength#, 0, 0);
-      x1=y1=0;x2=slength;y2= i*stepwidth;
-      penpos1(thick,90);
-      penpos2(max(1,.15thick),min(2angle(z2-z1)+90,180));
-      fill z1r{dir(1)}..{dir(min(2angle(z2-z1),90)-1)}z2r--
-           z2l{dir(min(2angle(z2-z1)-180,-90))}..z1l{left}--cycle;
-      save_pic:=currentpicture;
-    endchar;
-
-    beginchar(128+code, slength#, 0, 0);
-      currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
-    endchar;
-  endfor
-
-endfor
-end
-
diff --git a/mf/xslhd11.mf b/mf/xslhd11.mf
deleted file mode 100644 (file)
index 215a47f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-font_identifier:="xslhd11";
-mode_setup;
-font_size 10.24pt#;
-input xslhd;
-
diff --git a/mf/xslhd13.mf b/mf/xslhd13.mf
deleted file mode 100644 (file)
index 930c0ae..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-font_identifier:="xslhd13";
-mode_setup;
-font_size 12.8pt#;
-input xslhd;
diff --git a/mf/xslhd16.mf b/mf/xslhd16.mf
deleted file mode 100644 (file)
index aacbd5a..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-font_identifier:="xslhd16";
-mode_setup;
-font_size 16pt#;
-input xslhd;
-
diff --git a/mf/xslhd20.mf b/mf/xslhd20.mf
deleted file mode 100644 (file)
index d0bb66a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-font_identifier:="xslhd20";
-mode_setup;
-font_size 20pt#;
-input xslhd;
diff --git a/mf/xslhd24.mf b/mf/xslhd24.mf
deleted file mode 100644 (file)
index 650eba1..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-font_identifier:="xslhd24";
-mode_setup;
-font_size 24pt#;
-input xslhd;
diff --git a/mf/xslhd29.mf b/mf/xslhd29.mf
deleted file mode 100644 (file)
index db52074..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-font_identifier:="xslhd24";
-mode_setup;
-font_size 28.8pt#;
-input xslhd;
diff --git a/mf/xslhu.mf b/mf/xslhu.mf
deleted file mode 100644 (file)
index c52ceac..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-thick#:=1pt#;
-stepwidth#:=designsize/8;
-define_pixels(stepwidth);
-define_blacker_pixels(thick);
-picture save_pic;
-numheights:=16;
-numlengths:=8;%(12-96pt)
-
-code=-1;
-for j=1 upto numlengths:
-  slength#:=j*12pt#;
-  define_pixels(slength);
-
-  for i=1 upto numheights:
-    beginchar(incr code, slength#, 0, 0);
-      x1=y1=0;x2=slength;y2=-i*stepwidth;
-      penpos1(thick,90);
-      penpos2(max(1,.15thick),min(2angle(z2-z1)+90,180));
-      fill z1r{dir(1)}..{dir(min(2angle(z2-z1),90)-1)}z2r--
-           z2l{dir(min(2angle(z2-z1)-180,-90))}..z1l{left}--cycle;
-      save_pic:=currentpicture;
-    endchar;
-
-    beginchar(128+code, slength#, 0, 0);
-      currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
-    endchar;
-  endfor
-
-endfor
-end
diff --git a/mf/xslhu11.mf b/mf/xslhu11.mf
deleted file mode 100644 (file)
index f1b0c69..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-font_identifier:="xslhu11";
-mode_setup;
-font_size 10.24pt#;
-input xslhu.mf
diff --git a/mf/xslhu13.mf b/mf/xslhu13.mf
deleted file mode 100644 (file)
index 162c503..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-font_identifier:="xslhu13";
-mode_setup;
-font_size 12.8pt#;
-input xslhu.mf
diff --git a/mf/xslhu16.mf b/mf/xslhu16.mf
deleted file mode 100644 (file)
index 6cfc184..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-font_identifier:="xslhu16";
-mode_setup;
-font_size 16pt#;
-input xslhu.mf
-
diff --git a/mf/xslhu20.mf b/mf/xslhu20.mf
deleted file mode 100644 (file)
index 94c6f00..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-font_identifier:="xslhu20";
-mode_setup;
-font_size 20pt#;
-input xslhu.mf
diff --git a/mf/xslhu24.mf b/mf/xslhu24.mf
deleted file mode 100644 (file)
index 399813c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-font_identifier:="xslhu24";
-mode_setup;
-font_size 24pt#;
-input xslhu.mf
diff --git a/mf/xslhu29.mf b/mf/xslhu29.mf
deleted file mode 100644 (file)
index f5155ab..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-font_identifier:="xslhu29";
-mode_setup;
-font_size 28.8pt#;
-input xslhu.mf
diff --git a/mf/xslhz20.mf b/mf/xslhz20.mf
deleted file mode 100644 (file)
index 23f015d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-font_identifier:="xslhz20";
-mode_setup;
-font_size 20pt#;
-thick#:=1pt#;
-stepwidth#:=4pt#;
-define_pixels(stepwidth);
-define_blacker_pixels(thick);
-picture pic;
-
-slope=1/100;
-
-for i=1 upto 100:
-  beginchar((i-1),0,0,0);
-    x3=-x1=.5i*stepwidth; x2=y1=y3=0; y2=slope*i*stepwidth;
-    penpos1(thick,90); penpos2(thick,90); penpos3(thick,90);
-    penstroke z1e..z2e..z3e;
-    pic:= currentpicture;
-  endchar;
-
-  beginchar((128+i-1),0,0,0);
-    currentpicture:= pic reflectedabout(origin,right);
-  endchar;
-endfor
-end
diff --git a/mf/xslu11.mf b/mf/xslu11.mf
deleted file mode 100644 (file)
index 0a11e60..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xslu11";
-mode_setup;
-font_size 10.24pt#;
-thick#:=1pt#;
-internote#:=1.28pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= rotated 180 shifted (.5mw, mheight) enddef;
-def T= rotated 180 shifted (0,mheight) enddef;
-
-input xslgen;
diff --git a/mf/xslu13.mf b/mf/xslu13.mf
deleted file mode 100644 (file)
index b9f9fb1..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xslu13";
-mode_setup;
-font_size 12.8pt#;
-thick#:=1pt#;
-internote#:=1.6pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= rotated 180 shifted (.5mw, mheight) enddef;
-def T= rotated 180 shifted (0,mheight) enddef;
-
-input xslgen;
diff --git a/mf/xslu16.mf b/mf/xslu16.mf
deleted file mode 100644 (file)
index 37d07d9..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xslu16";
-mode_setup;
-font_size 16pt#;
-thick#:=1pt#;
-internote#:=2pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= rotated 180 shifted (.5mw, mheight) enddef;
-def T= rotated 180 shifted (0,mheight) enddef;
-
-input xslgen;
diff --git a/mf/xslu20.mf b/mf/xslu20.mf
deleted file mode 100644 (file)
index 0a741c0..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xslu20";
-mode_setup;
-font_size 20pt#;
-thick#:=1pt#;
-internote#:=2.5pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= rotated 180 shifted (.5mw, mheight) enddef;
-def T= rotated 180 shifted (0,mheight) enddef;
-
-input xslgen;
diff --git a/mf/xslu24.mf b/mf/xslu24.mf
deleted file mode 100644 (file)
index f7ce9d6..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xslu24";
-mode_setup;
-font_size 24pt#;
-thick#:=1pt#;
-internote#:=3pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= rotated 180 shifted (.5mw, mheight) enddef;
-def T= rotated 180 shifted (0,mheight) enddef;
-
-input xslgen;
diff --git a/mf/xslu29.mf b/mf/xslu29.mf
deleted file mode 100644 (file)
index 6838343..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-font_identifier:="xslu29";
-mode_setup;
-font_size 28.8pt#;
-thick#:=1pt#;
-internote#:=3.6pt#;
-define_pixels(internote);
-define_blacker_pixels(thick);
-
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-maxwidth:=minwidth+15delwidth;
-fontdimen 5: maxwidth;
-
-picture p;
-
-def t= rotated 180 shifted (.5mw, mheight) enddef;
-def T= rotated 180 shifted (0,mheight) enddef;
-
-input xslgen;
diff --git a/mf/xslz20.mf b/mf/xslz20.mf
deleted file mode 100644 (file)
index f335e12..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-font_identifier:="xslz20";
-mode_setup;
-font_size 20pt#;
-thick#:=1pt#;
-nhh#:=5pt#;
-define_pixels(nhh);
-define_blacker_pixels(thick);
-minwidth:=8pt#;
-delwidth:=4pt#;
-
-numslurs:=54;
-maxwidth:=minwidth+(numslurs-1)*delwidth;
-
-fontdimen 5: maxwidth;
-
-picture p;
-
-min_bow:=  .4nhh;
-max_bow:= 1.75nhh;
-slope:= 10/100;
-
-code=-1;
-
-for i=1 upto numslurs:
-
-  beginchar(incr code, 0, 0, 0);
-    mw:=(minwidth+code*delwidth)*pt;
-    x3= -x1= .5mw; x2= y1= y3 = 0;
-    y2= max(min_bow, slope*mw);
-    y2:= min(y2, max_bow);
-    penpos1(.15thick,90); penpos2(thick,90); penpos3(.15thick,90);
-    penstroke (flex(z1e,z2e,z3e));
-    currentpen:= pencircle; draw (flex(z1,z2,z3));
-    p:=currentpicture;
-  endchar;
-
-  beginchar(code+54, 0, 0, 0);
-    currentpicture:=p reflectedabout (origin, right);
-  endchar;
-
-endfor
-end
diff --git a/mf/xtie20.mf b/mf/xtie20.mf
deleted file mode 100644 (file)
index 99f2454..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-font_identifier:="xtie20";
-mode_setup;
-font_size 20pt#;
-thick#:=1pt#;
-stepwidth#:=4pt#;
-define_pixels(stepwidth);
-define_blacker_pixels(thick);
-picture pic;
-
-slope=.009;
-
-for i=1 upto 100:
-  beginchar((i-1),0,0,0);
-    x3=-x1=.5i*stepwidth; x2=y1=y3=0; y2=slope*i*stepwidth;
-    penpos1(thick,90); penpos2(thick,90); penpos3(thick,90);
-    penstroke z1e..z2e..z3e;
-    pic:= currentpicture;
-  endchar;
-
-  beginchar((128+i-1),0,0,0);
-    currentpicture:= pic reflectedabout(origin,right);
-  endchar;
-endfor
-end