From: fred Date: Sun, 24 Mar 2002 19:56:52 +0000 (+0000) Subject: lilypond-0.0.76 X-Git-Tag: release/1.5.59~3937 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=161e5a0fead5bbafaa7cafc272f3a7fde8f090a5;p=lilypond.git lilypond-0.0.76 --- diff --git a/Documentation/mudela.pod b/Documentation/mudela.pod deleted file mode 100644 index 633c9b588d..0000000000 --- a/Documentation/mudela.pod +++ /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). - -[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, 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 and F): - -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 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) 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 ). 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{ - - } - -and instantiations: - - \TYPE{ } - -(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 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 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). 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 necessarrily nest, -they should attached to the note C<[ {c4 c4} ]> will generate a parse -error for this reason. - - [c8 e8(] [)g8 - % 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-major chord - -You can also put vertical music inside horizontal music: - - { 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 - -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 and C (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{ } - accompany = \music{ } - - % instantiate (=create tex, midi output) the score: - \score{ - \staff{ melodicregs melody } - \staff{ melodicregs accompany } - \midi{ } - \paper{ } - } - -=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 index 29b768c1e8..0000000000 --- a/bin/make_version +++ /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 index 89fafd7c24..0000000000 --- a/bin/make_website +++ /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 = ""; - -sub get_version -{ - my ($vstr)=(""); - open V, "$depth/.version"; - while () { - 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
Please take me
back to the index\n
- -This page was generated by make_website from lilypond-$lily_version by -

-


$username <$MAILADRESS>
-

" . `date` . " -

"; -} - - -# 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 "LilyPond examples\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 "

example file: $name

\n\n"; - - open IF, "$depth/input/$a.ly"; - input_record_separator IF "%}"; - - $desc = <IF>; - close IF; - - print HTMLLIST "$desc\n"; - - $inputf="$a.ly.txt"; - $giff="$a.gif"; - $jpegf="$a.jpeg"; - $pngf = "$a.png"; - $psf="$a.ps.gz"; - $midif="$a.midi"; - - print HTMLLIST ""; - } - print HTMLLIST ""; - close HTMLLIST; -} - -sub edit_html -{ - print STDERR "adding footer\n"; - - OUTER: - foreach $a (<*.html>) { - open H, "$a"; - my $sep=""; - input_record_separator H $sep; - my $file=""; - - while () { - 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 index 534fe34f59..0000000000 --- a/input/book.ly +++ /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 index 9a1e16453d..0000000000 --- a/input/book.tex +++ /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 index 11c1aa2d2c..0000000000 --- a/lily/calcideal.cc +++ /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 -*/ - -#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 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 index c2fec09918..0000000000 --- a/lily/linespace.cc +++ /dev/null @@ -1,388 +0,0 @@ -#include -#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; // 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 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 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 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 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 -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 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 -Spacing_problem::error_pcol_l_arr()const -{ - Array 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 <<","<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 index 28d1086e02..0000000000 --- a/lily/lyric-engraver.cc +++ /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 -*/ - -#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 index 1a880fa58c..0000000000 --- a/lily/midi-output.cc +++ /dev/null @@ -1,118 +0,0 @@ -/* - midioutput.cc -- implement Midi_output - - source file of the GNU LilyPond music typesetter - - (c) 1997 Han-Wen Nienhuys , Jan Nieuwenhuizen -*/ - -#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 index 48682ab497..0000000000 --- a/mf/Makefile +++ /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 -# Han-Wen Nienhuys -# - -# 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 index 98ec47cec3..0000000000 --- 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 - - - 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 index 1b73e01bd8..0000000000 --- a/mf/musexgen.mf +++ /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 (""); -%%%%%%% - -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 (""); -%%%%%%% -% 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 (""); -%%%%%%% -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 index fd70f02eca..0000000000 --- a/mf/musix11.mf +++ /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 index 918db5f01b..0000000000 --- a/mf/musix13.mf +++ /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 index 32dbddd36d..0000000000 --- a/mf/musix16.mf +++ /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 index 0bdebdf3f1..0000000000 --- a/mf/musix20.mf +++ /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 index 0b2dc46b71..0000000000 --- a/mf/musix24.mf +++ /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 index 529c7ec7ad..0000000000 --- a/mf/musix25.mf +++ /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 index 622aeae27f..0000000000 --- a/mf/musix29.mf +++ /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 index 622f8d763f..0000000000 --- a/mf/musixgen.mf +++ /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 (""); -%%%%%%% - -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(""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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(""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 index 26e350f0ee..0000000000 --- a/mf/musixsps.mf +++ /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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -% 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 index 3b3f432d9f..0000000000 --- a/mf/musixspx.mf +++ /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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -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 (""); -%%%%%%% - -% 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 index fe8c5ec0b8..0000000000 --- a/mf/xdrawsl.mf +++ /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 index 50ef6cfd6f..0000000000 --- a/mf/xdrawzl.mf +++ /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 index e5f3dc4b4c..0000000000 --- a/mf/xgreg11.mf +++ /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 index 49a78be6e7..0000000000 --- a/mf/xgreg13.mf +++ /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 index bc5d554686..0000000000 --- a/mf/xgreg16.mf +++ /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 index f0ba509ead..0000000000 --- a/mf/xgreg20.mf +++ /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 index 9f4dbfbd9b..0000000000 --- a/mf/xgreg24.mf +++ /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 index 529c7ec7ad..0000000000 --- a/mf/xgreg25.mf +++ /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 index 3a2293e7d4..0000000000 --- a/mf/xgreg29.mf +++ /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 index 43f14ec162..0000000000 --- a/mf/xgreggen.mf +++ /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 (""); -%%%%%%% - -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 (""); -%%%%%%% -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 index 5c719988e7..0000000000 --- a/mf/xhsld16.mf +++ /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 index e91a7902a0..0000000000 --- a/mf/xhsld20.mf +++ /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 index b2e3e7d6b0..0000000000 --- a/mf/xhslu16.mf +++ /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 index d41801dd5c..0000000000 --- a/mf/xhslu20.mf +++ /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 index 4b9142ae10..0000000000 --- a/mf/xsld11.mf +++ /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 index c612d42a63..0000000000 --- a/mf/xsld13.mf +++ /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 index 38720a75ac..0000000000 --- a/mf/xsld16.mf +++ /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 index c36089fcf9..0000000000 --- a/mf/xsld20.mf +++ /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 index 5a03c91cac..0000000000 --- a/mf/xsld24.mf +++ /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 index 766cb83ffc..0000000000 --- a/mf/xsld29.mf +++ /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 index 8df8742b77..0000000000 --- a/mf/xslgen.mf +++ /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 index 5ae5fdcdd0..0000000000 --- a/mf/xslhd.mf +++ /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 index 215a47fbee..0000000000 --- a/mf/xslhd11.mf +++ /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 index 930c0aef58..0000000000 --- a/mf/xslhd13.mf +++ /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 index aacbd5ac1a..0000000000 --- a/mf/xslhd16.mf +++ /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 index d0bb66a5d2..0000000000 --- a/mf/xslhd20.mf +++ /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 index 650eba1aa9..0000000000 --- a/mf/xslhd24.mf +++ /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 index db52074175..0000000000 --- a/mf/xslhd29.mf +++ /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 index c52ceacc8f..0000000000 --- a/mf/xslhu.mf +++ /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 index f1b0c69998..0000000000 --- a/mf/xslhu11.mf +++ /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 index 162c503770..0000000000 --- a/mf/xslhu13.mf +++ /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 index 6cfc184d8e..0000000000 --- a/mf/xslhu16.mf +++ /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 index 94c6f00d1b..0000000000 --- a/mf/xslhu20.mf +++ /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 index 399813c110..0000000000 --- a/mf/xslhu24.mf +++ /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 index f5155abdc7..0000000000 --- a/mf/xslhu29.mf +++ /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 index 23f015dc97..0000000000 --- a/mf/xslhz20.mf +++ /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 index 0a11e6012f..0000000000 --- a/mf/xslu11.mf +++ /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 index b9f9fb1720..0000000000 --- a/mf/xslu13.mf +++ /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 index 37d07d99ff..0000000000 --- a/mf/xslu16.mf +++ /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 index 0a741c0f54..0000000000 --- a/mf/xslu20.mf +++ /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 index f7ce9d6561..0000000000 --- a/mf/xslu24.mf +++ /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 index 68383431b3..0000000000 --- a/mf/xslu29.mf +++ /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 index f335e12bcf..0000000000 --- a/mf/xslz20.mf +++ /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 index 99f2454842..0000000000 --- a/mf/xtie20.mf +++ /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