]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 0.1.41 release/0.1.41
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 19 Jan 1998 22:56:08 +0000 (23:56 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 19 Jan 1998 22:56:08 +0000 (23:56 +0100)
155 files changed:
.dstreamrc
ANNOUNCE
AUTHORS.text
BUGS
Documentation/INSTALL.pod
Documentation/faq.pod
Documentation/lilypond.pod
Documentation/links.pod
Documentation/mudela-course.doc
Documentation/mudela-man.doc
INSTALL.text
NEWS
TODO
VERSION
bin/clean-diaper.sh
bin/clean-embeds.sh [new file with mode: 0644]
bin/clean-fonts.sh
bin/flower.py [new file with mode: 0644]
bin/genheader.py
bin/make-docxx.sh
bin/make-patch.py
bin/make-website.py
bin/mf-deps.py
bin/mf-to-table.py
bin/ps-to-gifs.sh [changed mode: 0644->0755]
bin/release.py
bin/show-latest.pl
debian/changelog
debian/control
debian/copyright
debian/postinst
debian/postrm
debian/preinst
debian/rules
flower/NEWS
flower/VERSION
flower/choleski.cc
flower/directed-graph.cc
flower/flower-debug.cc
flower/include/cursor.tcc
flower/include/fproto.hh
flower/include/plist.hh
flower/include/string-convert.hh
flower/include/string.hh
flower/include/string.icc [new file with mode: 0644]
flower/interval.cc
flower/libc-extension.cc
flower/string-convert.cc
flower/string.cc
flower/stringutil.cc
flower/test/Makefile
flower/test/main.cc
flower/test/mat-test.cc
flower/test/pqtest.cc
flower/test/stringtest.cc
init/feta11.ly [new file with mode: 0644]
init/feta13.ly [new file with mode: 0644]
init/feta16.ly
init/feta19.ly [new file with mode: 0644]
init/feta20.ly
init/feta23.ly [new file with mode: 0644]
init/feta26.ly [new file with mode: 0644]
init/lily-init.ly
init/paper11.ly [new file with mode: 0644]
init/paper13.ly [new file with mode: 0644]
init/paper16.ly
init/paper20.ly
init/paper26.ly [new file with mode: 0644]
init/table11.ly [new file with mode: 0644]
init/table13.ly [new file with mode: 0644]
init/table16.ly
init/table20.ly
init/table26.ly [new file with mode: 0644]
input/font-body.ly [new file with mode: 0644]
input/font.ly
input/font11.ly [new file with mode: 0644]
input/font13.ly [new file with mode: 0644]
input/font16.ly [new file with mode: 0644]
input/font20.ly
input/font26.ly [new file with mode: 0644]
input/gallina.tex
input/scsii-menuetto.ly
input/scsii-menuetto.tex
input/sleur.ly
input/slurs.ly
input/standchen-16.tex
input/standchen-20.tex
input/standchen.ly
input/standje.ly [new file with mode: 0644]
lily/VERSION
lily/bar.cc
lily/beam.cc
lily/debug.cc
lily/include/axes.hh
lily/include/beam.hh
lily/include/break.hh
lily/include/midi-item.hh
lily/include/qlpsolve.hh
lily/main.cc
lily/midi-def.cc
lily/midi-item.cc
lily/paper-def.cc
lily/parser.y
lily/score.cc
lily/scores.cc
lily/slur.cc
lily/staff-sym.cc
lily/tex-beam.cc
lily/tex-slur.cc
lily/tie.cc
make/Variables.make
make/lelievijver.lsm
make/lilypond.lsm
make/lilypond.spec
make/lilypond.spec.in
mf/Makefile
mf/README
mf/TODO
mf/dimen.tex
mf/feta-autometric.mf
mf/feta-beams16.mf
mf/feta-beams26.mf [new file with mode: 0644]
mf/feta-black16.mf [new file with mode: 0644]
mf/feta-bolletjes.mf
mf/feta-generic.mf
mf/feta-klef.mf
mf/feta-nummer12.mf [new file with mode: 0644]
mf/feta-nummer3.mf [new file with mode: 0644]
mf/feta-nummer6.mf [new file with mode: 0644]
mf/feta-nummer7.mf [new file with mode: 0644]
mf/feta-sleur.mf
mf/feta-test16.mf
mf/feta-test20.mf
mf/feta11.mf [new file with mode: 0644]
mf/feta13.mf [new file with mode: 0644]
mf/feta16.mf
mf/feta19.mf [new file with mode: 0644]
mf/feta20.mf
mf/feta23.mf [new file with mode: 0644]
mf/feta26.mf [new file with mode: 0644]
mf/mf.dep [new file with mode: 0644]
mi2mu/include/mudela-item.hh
mi2mu/mudela-item.cc
tex/feta11.tex [new file with mode: 0644]
tex/feta13.tex [new file with mode: 0644]
tex/feta16.tex
tex/feta19.tex [new file with mode: 0644]
tex/feta20.tex
tex/feta23.tex [new file with mode: 0644]
tex/feta26.tex [new file with mode: 0644]
tex/fetdefs.tex
tex/lily-mf-defs.tex [new file with mode: 0644]
tex/lily-ps-defs.tex
tex/lilyponddefs.tex
tex/taupindefs.tex

index 69b2d30c72fec7f835ec71e93d8227f570d29a7d..03a97fa3a46e03572869341c1a81d2e77c9fc7ef 100644 (file)
@@ -37,7 +37,7 @@ Engraver_group_engraver 0
 Group_change_req       0
 Head_column            0
 Idealspacing           0
-Ineq_constrained_qp    0
+Ineq_constrained_qp    1
 Input_translator       0
 Item                   0
 Key_item               0
@@ -55,7 +55,7 @@ Note_performer                0
 Note_req               0
 Paper_col                      1
 Paper_score                    1
-Paper_def              0
+Paper_def              1
 Paperdef               0
 Performer              0
 Performer_group_performer      0
@@ -65,7 +65,7 @@ Rest_collision                0
 Rest_collision_engraver 0
 Rest_req               0
 Rhythmic_req           0
-Score                  0
+Score                  1
 Score_column           0
 Score_elem             0
 Score_engraver         0
index 6bdaf16333ced9ebd2dd66e71e3656ff1e5a2bb9..f21190a248c2225adad723283101b304a88a92d2 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -4,31 +4,27 @@ Subject: LilyPond 0.2 released - The GNU Project music typesetter
 GNU LilyPond - The GNU Project Music Typesetter
 
 
-``WHAT IS GNU LilyPond?''
+WHAT IS LilyPond?
 
 GNU LilyPond is the GNU Project Music typesetter: it reads a music
 definition file and outputs formatted sheet music to a TeX file or
 (mechanical) performances to MIDI files.
 
 
-WH?
+WHAT'S NEW SINCE VERSION 0.1?
 
-We want to create tools to produce production quality scores and parts
-of public domain music.
-
-
-WHAT'S NEW
-
-* LilyPond now includes a completely rewritten font: the Feta font.
-We did our best to copy the best symbol designs available and We're
-proud of the result.  We hope you agree, so go check it out!
+* LilyPond now includes a completely new music font: the Feta font.  
+  We were quite disappointed with available music fonts, so we rolled
+  our own.  We did our best to copy the best symbol designs available,
+  and we think that we've succeeded in doing so.  We're proud of the
+  result, and we hope you agree, so go check it out!
 
 * More elegant output due to 
 
        * better spacing
-       * better breaking
+       * better line breaking
        * better font design
-       * PostScript output for variable symbols.
+       * PostScript output for variable symbols
 
 * Lots of bugfixes
 
@@ -36,7 +32,7 @@ proud of the result.  We hope you agree, so go check it out!
 
 * Better MIDI importing
 
-* Easier to use due to better scripts and input format enhancements.
+* Easier to use due to better scripts and input format enhancements
 
 * MusixTeX not needed anymore
 
@@ -49,10 +45,11 @@ customizable notenames.
 MIDI output lets you check if you have entered the correct notes.
 MIDI to Mudela conversion through the mi2mu program.
 
-Multiple staffs in one score. Each staff can have a different meters.
-Multiple voices within one staff (up to four handled graciously);
-beams optionally shared between voices.  Multiple scores within one
-input file. Each score is output to a different file.
+Font size selectable (26pt, 20pt, 16pt staffsize) for each score.
+Multiple staffs in one score.  Each staff may have various different
+meters.  Multiple voices within one staff (up to four handled
+graciously); beams optionally shared between voices.  Multiple scores
+within one input file.  Each score is output to a different file.
 
 Beams, slurs, chords, super/subscripts (accents and text), 
 general n-plet (triplet, quadruplets, etc.), lyrics, transposition,
index ab8f2d8e3e0eb0853ecd651a23b0b00a3053df4c..ed25a63d4327294a2c4dac7f4603d9707e9a4a6c 100644 (file)
@@ -61,7 +61,7 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNT\bT\bT\bTR\bR\bR\bRI\bI\bI\bIB\bB\bB\bBU\bU\bU\bUT\bT\bT\bTO\bO\bO\bOR\bR\bR\bRS\bS
 
 
 
-5/Jan/98                 LilyPond 0.1.39                        1
+5/Jan/98                 LilyPond 0.1.41                        1
 
 
 
@@ -127,6 +127,6 @@ AUTHORS(1)            LilyPond documentation           AUTHORS(1)
 
 
 
-5/Jan/98                 LilyPond 0.1.39                        2
+5/Jan/98                 LilyPond 0.1.41                        2
 
 
diff --git a/BUGS b/BUGS
index 3f88eb3e3895f3149a133a40c014fd294dbfd21a..810766b46ed396d25b94e59c66651af9b86f0fe7 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1,6 +1,13 @@
 Document Really Ugly Bugs (coredumps, assert fails, etc)
 
 
+[GNU libc]
+
+The GNU extension memmem() is known to be buggy on linux libc 5.0.9
+and before. Glibc upto 2.0.5 also has problems with memmem (), but
+these should not affect LilyPond.
+
+
 [Linux Intel]
 
 LilyPond occasionally crashes while parsing the initialisation files.
index c15658f9176cd572bb4a16468c33bf5c7bcbd665..bca2cc23f911d77fae80b89fd64c37e059f040f0 100644 (file)
@@ -25,7 +25,7 @@ For compilation you need.
 =item *
 
 A GNU system: GNU LilyPond is known to run on these GNU systems:
-Linux, AIX, Digital Unix and Solaris.
+Linux, FreeBSD, AIX, Digital Unix and Solaris.
 
 If you have the Cygnus WINDOWS32 port of the GNU utils, it will even
 work in Windows NT/95, but we don't promise to support it.
@@ -62,7 +62,9 @@ TeX
 
 =item *
 
-A PostScript printer and/or viewer (such as Ghostscript). 
+A PostScript printer and/or viewer (such as Ghostscript) is strongly
+recommended.  Xdvi will show all embedded PostScript too if you have
+Ghostscript installed.
 
 =back
 
@@ -226,7 +228,11 @@ If you have done a successful C<make>, then a simple
 
        make install
 
-should do the trick. 
+should do the trick.
+
+If you are doing an upgrade, please remember to remove obsolete .pk
+and .tfm files of the fonts.  A script has been provided to do the
+work, see F<bin/clean-fonts.sh>.
 
 =head1 CAVEATS
 
@@ -308,8 +314,8 @@ is unpacked correctly, in particular the empty out directories
 Previous versions (before 0.1.39) used fonts from the TeX macro
 package "MusixTeX".  You can still use these, but they are not
 supported.  Since LilyPond's Feta font is much prettier, you'd be
-stupid to use them, but anyway, here are the installation instructions
-for those deprecated fonts.
+seriously misguided if you used them, but anyway, here are the 
+installation instructions for those deprecated fonts.
 
 
 [obsolete] I use the MusixTeX fonts those found in MusixTeX
index 15487142b09c9c37166d4ccc2528ba9594d09c9e..efe7fd548c829d611464aad33ea163fb93ddff1a 100644 (file)
@@ -4,7 +4,8 @@ FAQ - GNU LilyPond FAQs
 
 =head1 DESCRIPTION
 
-Some questions that have been answered before.
+Some questions that have been answered before. (note: relative paths
+are meant to be relative to the source directory)
 
 =head2 Installing
 
@@ -21,7 +22,8 @@ Q: Some of your neat scripts fail, what directories do you use:
 
 A: [This only applies if you don't do C<make install>, and develop out
 of the source directory]
-       
+I have a directory which contains all music related stuff,
+
        ~/something/
 
 which contains:
@@ -29,10 +31,14 @@ which contains:
          lilypond/     # the directory as unpacked from the tarball
          releases/     # directory for .tar.gz releases
          patches/      # directory for patches between different releases
-         test/
+         test/         # create tarballs and do diffs from this directory
        
 ~/something/lilypond/bin is in the PATH, and contains symlinks to the
-compiled executables.
+compiled executables.  For some of the scripts to work, you have to set
+
+       LILYPOND_SOURCEDIR=/home/myself/something/lilypond
+
+in the environment.
 
 If you don't use patches, you'd probably want to symlink
 
@@ -50,7 +56,7 @@ We're not sure on leaving out this feature. If you think this is a
 good idea, please let us know.
 
 Be warned we will I<not> allow you to leave out the C<#> if the note
-already has an accidental. We won't allow
+already has an accidental, or if the key has a C-sharp. We won't allow
 
        c# c    % no way! 
 
@@ -126,26 +132,6 @@ specify
 
        a()a()a
 
-Q: How do I place lyrics under I<each> of the staves in a score, as in
-choral music. I can work out how to put lyrics for each line all under
-the top line, or at the bottom but not between!
-        
-A: You change the order lyrics and staves.  You have to name all
-staves (lyric and melodic), otherwise they will end up in the same
-staff/lyricline
-
-       
-       \score {
-               < \melodic \type Staff = "treble" \trebleMelody
-                 \lyric \type Lyrics = "tlyrics" \trebtext
-                 \type Staff = "bass" \melodic \bassMelody        
-                 \lyric \type Lyrics = "blyrics" \basstext      
-               >
-               \paper {  }
-       }
-
-
-
 
 Q: I want to insert some TeX commands
 
@@ -159,11 +145,11 @@ As a further notice, we want to move away from TeX (and perhaps
 output PostScript or render to an X window too), so  using TeX will
 make sources non-portable at some time.
 
-=head2 Miscellaneous
+=head2 Do you support ...
 
 Q: Do you support pop songs (chords, single staff, lyrics)?
 
-A: Yes, see the F<twinkle-pop> example
+A: Yes, see the F<twinkle-pop> example.
 
 Q: Do you support guitar chord diagrams?
 
@@ -171,17 +157,58 @@ A: No, not yet. We ourselves don't play guitar, and don't know the
 fine points of this notation.  We would welcome anyone who could give
 this a try.
 
-Q: Do you support TAB notation
+Q: Do you support TAB notation?
 
 A: No. The same as for the previous question goes, but TAB is a lot
 more work than diagrams (TAB needs modification of Parser, Lexer,
 Staff, Notehead, Stem code and all the code that creates these graphic
 elements.)
 
+Q: Do you support multiple staff-sizes?
+
+A: Yes and no.  At this time you can choose between 16 or 20 pt
+staff-size (you can have other sizes, but you need to tinker with the
+fonts to get those).  The sizes can't be changed per staff (yet).
+Look at F<standchen.ly> for an example.
+
+
+=head2 How do I ....
+
 Q: How do I change the TeX layout?
 
 A: See F<lilyponddefs.tex>, it has some comments.
 
+Q: How do I place lyrics under I<each> of the staves in a score, as in
+choral music. I can work out how to put lyrics for each line all under
+the top line, or at the bottom but not between!
+        
+A: You change the order lyrics and staves.  You have to name all
+staves (lyric and melodic), otherwise they will end up in the same
+staff/lyricline
+
+       
+       \score {
+               < \melodic \type Staff = "treble" \trebleMelody
+                 \lyric \type Lyrics = "tlyrics" \trebtext
+                 \type Staff = "bass" \melodic \bassMelody        
+                 \lyric \type Lyrics = "blyrics" \basstext      
+               >
+               \paper {  }
+       }
+
+
+Q: How do I put more than one marking on a note.
+
+A: You can stack them 
+
+       c4^"a"^"b"
+
+or use spacing-notes to put markings at different horizontal positions 
+
+       < c1
+         { s4\ff s4^"text" s4-\marcato s4 }
+       >
+
 
 
 =head2 Development
@@ -220,6 +247,17 @@ A: Your best bet of getting me to include code, is to present it as a
 "fait accompli", ie., to send me a patch.
 
 
+Q: I made some code, how do I get you to include it?
+
+A: Send in a patch:
+
+       diff -urN old-file new-file > patch
+
+or 
+
+       diff -urN old-directory/ new-directory/ > patch 
+
+Alternatively, you can use bin/make-patch.py
 
 Q: How do I learn the C++ code?
 
@@ -258,7 +296,23 @@ saves us a I<lot> of trouble.
 
 =head2 Running
 
-Q: I don't get midi-output, even if I use B<-M>
+Q: There are lots of warning messages for the printing, all
+beginning with: 
+
+       dvilj4l: warning: Invalid keyword or value in \special -
+
+A: You should use dvips and ghostscript to print it: the slurs and
+beams are PS C<\special> commands
+
+
+Q: My symbols are all messed up after I upgraded, and I get
+dvi-checksum errors!
+
+A: We mucked with the fonts in the upgrade.  Remove I<all> previous
+fonts, including the .pk and .tfm fonts in F</var/lib/texmf>.  A
+script automating this has been included, see F<bin/clean-fonts.sh>
+
+Q: I don't get midi-output, even if I use B<-M>!
 
 A: Your \score should include a \midi block, eg.
 
index 26a6664150d5a40b5ac11abe29d02cd75d1bfd72..f735161a52e3d1508ed285d2a2b9d741fc96757c 100644 (file)
@@ -61,9 +61,15 @@ Add F<DIRECTORY> to the search path for input files.
 
 Make incompatible mudela version non-fatal.
 
-=item B<--postscript, -p>,
+=item B<--no-postscript, -P>,
 
-Try to use PostScript where possible.
+Don't generate embedded PostScript (or MetaFont) symbols, but resort to
+less beautiful fixed-size versions.
+
+LilyPond uses PostScript for variable symbols where possible.  (For some 
+of these symbols runtime MetaFont source will be genarated too.  These are 
+not used unless you also include the appropriate  TeX file too.  See 
+F<tex/fetdefs.tex>.)
 
 =back
 
@@ -142,8 +148,8 @@ Jan Nieuwenhuizen <jan@digicash.com>,  http://www.digicash.com/~jan.
 =head1 PROBLEMS
 
 
-There is an extensive list of todoes and bugs.  See F<TODO>.  In
-general, try to find out 
+There is an extensive list of todoes and bugs.  See F<TODO>.  If you
+have a problem you should try to find out
 
 =over 4
 
@@ -175,7 +181,8 @@ compile/configure options please).
 Send a description of the bug itself.
 
 =item *
-Send it to bug-gnu-music@gnu.org.
+Send it to bug-gnu-music@gnu.org (you don't have to subscribe
+to this mailinglist).
 
 =back
 
index 26a0026b5c7ba513430d6f83363676271fc77839..e6444f8ef5893150adfd8ac0d75b33dfd5c890da 100644 (file)
@@ -55,7 +55,9 @@ These development releases will also be at
 
 =item ftp://pcnov095.win.tue.nl/pub/lilypond/development
 
-=item ftp://alpha.gnu.org/gnu/lilypond/development
+=item ftp://sca.uwaterloo.ca/pub/lilypond
+
+=item [your mirror here]
 
 =back
 
index f6ab5083eb60a5247942ec8375b3908c283da72d..a24d2f382ae977d9661320182467d6e312b695dd 100644 (file)
 
 \section{Who is who}
 
-This document describes two different things
+This document describes various  things, but let's first point out the
+different parts of the package, and their names.
 \begin{description}
 \item[Mudela] A language for defining music.
-  
 \item[LilyPond] A package (the only one existing :-) which can 
   read a mudela file and interpret it. 
-  
-  The name ``LilyPond'' does not have much to do with the purpose of
-  the package, but we have a special emotional attachment with the
-  name.  (Of course we are not telling why we chose it; this is an
-  excercise for the reader, most of the vital clues are contained in
-  the documentation and the source code.  If you have guess, then let
-  me know)
+\item[Feta] A (Meta)Font of musical symbols.  LilyPond uses it to
+  render sheet music.
 \end{description}
 
 \section{Overview}
 
-
-Let's start with a very simple example, we will enter ``twinkle twinkle
-little star.''  We start with the most important part: the notes.
+Let's start with a very simple example, we will enter ``twinkle
+twinkle little star.''  We start with the most important part: the
+notes.
 
 Imagine being in a music-lesson, and that you made an error playing
 ``twinkle twinkle''.  Your teacher asks you to read out loud the
index 6dc1cd805f702dbd21d882edf33efaaa7aa4c70c..6895a30e1fa34725ddfafe6b21ac962f60ae2f43 100644 (file)
@@ -1,7 +1,16 @@
 % -*-latex-*-
 
 % this document should be run through the mudela-book script after lilypond
-% has been installed. 
+% has been installed.  The rules have been precooked into the
+% Documentation/Rules.make file; do 
+%
+%   make out/mudela-man.dvi
+%
+% or
+%
+%   mudela-book --outdir=out/ --outname=mudela-course.mudtex mudela-course.doc
+%   latex '\nonstopmode \input out/mudela-course.mudtex'
+
 
 \documentclass{article}
 \usepackage{a4wide}
index 12cb41dfd7cd556dc52bdb34fc0927a1b4532460..d0d7ea26261f6eb3b72b0e5d66e02cf7b5aa6162 100644 (file)
@@ -24,7 +24,8 @@ P\bP\bP\bPR\bR\bR\bRE\bE\bE\bER\bR\bR\bRE\bE\bE\bEQ\bQ\bQ\bQU\bU\bU\bUI\bI\bI\bIS\bS\bS\bSI\bI\bI\bIT\bT\bT\bTE\bE
        For compilation you need.
 
        +\bo    A GNU system: GNU LilyPond is known to run on these
-            GNU systems: Linux, AIX, Digital Unix and Solaris.
+            GNU systems: Linux, FreeBSD, AIX, Digital Unix and
+            Solaris.
 
             If you have the Cygnus WINDOWS32 port of the GNU
             utils, it will even work in Windows NT/95, but we
@@ -46,7 +47,9 @@ R\bR\bR\bRU\bU\bU\bUN\bN\bN\bNN\bN\bN\bNI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
        +\bo    TeX
 
        +\bo    A PostScript printer and/or viewer (such as
-            Ghostscript).
+            Ghostscript) is strongly recommended.  Xdvi will show
+            all embedded PostScript too if you have Ghostscript
+            installed.
 
 R\bR\bR\bRE\bE\bE\bEC\bC\bC\bCO\bO\bO\bOM\bM\bM\bMM\bM\bM\bME\bE\bE\bEN\bN\bN\bND\bD\bD\bDE\bE\bE\bED\bD\bD\bD
        Although not strictly necessary, these are recommended to
@@ -55,13 +58,10 @@ R\bR\bR\bRE\bE\bE\bEC\bC\bC\bCO\bO\bO\bOM\bM\bM\bMM\bM\bM\bME\bE\bE\bEN\bN\bN\bND\bD\bD\bDE\bE\bE\bED\bD\bD\bD
        +\bo    Perl-5.  Most documentation was created with the
             perl's Plain Old Documentation. (I use 5.003)
 
-       +\bo    Python.  Although perl is nice, python is better.  We
-            will shift towards python for build scripts
-
 
 
 
-5/Jan/98                 LilyPond 0.1.39                        1
+11/Jan/98                LilyPond 0.1.41                        1
 
 
 
@@ -70,6 +70,9 @@ R\bR\bR\bRE\bE\bE\bEC\bC\bC\bCO\bO\bO\bOM\bM\bM\bMM\bM\bM\bME\bE\bE\bEN\bN\bN\bND\bD\bD\bDE\bE\bE\bED\bD\bD\bD
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
+       +\bo    Python.  Although perl is nice, python is better.  We
+            will shift towards python for build scripts
+
        +\bo    GNU find
 
        +\bo    A fast computer (a full page of music typically takes
@@ -122,12 +125,9 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNF\bF\bF\bFI\bI\bI\bIG\bG\bG\bGU\bU\bU\bUR\bR\bR\bRI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG a\b
 
                configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
 
-       Since GNU LilyPond currently is beta, you are advised to
-       also use
 
 
-
-5/Jan/98                 LilyPond 0.1.39                        2
+11/Jan/98                LilyPond 0.1.41                        2
 
 
 
@@ -136,6 +136,9 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNF\bF\bF\bFI\bI\bI\bIG\bG\bG\bGU\bU\bU\bUR\bR\bR\bRI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG a\b
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
+       Since GNU LilyPond currently is beta, you are advised to
+       also use
+
                --enable-debugging
                --enable-checking
 
@@ -188,12 +191,9 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
        source-tree, by overriding the setting for the output
        directory.
 
-       Example: on my system, I do debugging and lots compiling.
-       For this I use the configuration as follows:
-
 
 
-5/Jan/98                 LilyPond 0.1.39                        3
+11/Jan/98                LilyPond 0.1.41                        3
 
 
 
@@ -202,6 +202,9 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
+       Example: on my system, I do debugging and lots compiling.
+       For this I use the configuration as follows:
+
                configure --prefix=~ --enable-debugging --enable-printing --enable-checking
                make all
 
@@ -226,6 +229,10 @@ I\bI\bI\bIN\bN\bN\bNS\bS\bS\bST\bT\bT\bTA\bA\bA\bAL\bL\bL\bLL\bL\bL\bLI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
 
        should do the trick.
 
+       If you are doing an upgrade, please remember to remove
+       obsolete .pk and .tfm files of the fonts.  A script has
+       been provided to do the work, see _\bb_\bi_\bn_\b/_\bc_\bl_\be_\ba_\bn_\b-_\bf_\bo_\bn_\bt_\bs_\b._\bs_\bh.
+
 C\bC\bC\bCA\bA\bA\bAV\bV\bV\bVE\bE\bE\bEA\bA\bA\bAT\bT\bT\bTS\bS\bS\bS
        +\bo    The -O2 option to gcc triggers a gcc bug on DEC Alpha
             in dstream.cc. You should turn off this flag for this
@@ -243,6 +250,24 @@ E\bE\bE\bEX\bX\bX\bXA\bA\bA\bAM\bM\bM\bMP\bP\bP\bPL\bL\bL\bLE\bE\bE\bE
 
        This is what the output looks like over here:
 
+
+
+
+
+
+
+
+
+
+11/Jan/98                LilyPond 0.1.41                        4
+
+
+
+
+
+INSTALL(1)            LilyPond documentation           INSTALL(1)
+
+
                GNU LilyPond 0.0.78 #4/FlowerLib 1.1.24 #0
                Parsing ... [/home/hw/share/lilypond/init//
                        <..etc..>
@@ -257,17 +282,6 @@ E\bE\bE\bEX\bX\bX\bXA\bA\bA\bAM\bM\bM\bMP\bP\bP\bPL\bL\bL\bLE\bE\bE\bE
                hw:~/musix/spacer$ xdvi someinput&
                [1] 855
 
-
-
-5/Jan/98                 LilyPond 0.1.39                        4
-
-
-
-
-
-INSTALL(1)            LilyPond documentation           INSTALL(1)
-
-
        Check out the input files, some of them have comments
        Please refer to the man page for more information.
 
@@ -305,34 +319,33 @@ M\bM\bM\bMU\bU\bU\bUS\bS\bS\bSI\bI\bI\bIX\bX\bX\bXT\bT\bT\bTE\bE\bE\bEX\bX\bX\bX
        Previous versions (before 0.1.39) used fonts from the TeX
        macro package "MusixTeX".  You can still use these, but
        they are not supported.  Since LilyPond's Feta font is
-       much prettier, you'd be stupid to use them, but anyway,
-       here are the installation instructions for those
-       deprecated fonts.
-
-       [obsolete] I use the MusixTeX fonts those found in
-       MusixTeX T.73. Beware, the clef symbol seems to have
-       changed its position in some versions, (notably Egler's,
-       a.k.a. OpusTeX). The MusixTeX fonts are included in
-       MusixTeX (T73 or better), which can be had from any CTAN
-       site, e.g. at
+       much prettier, you'd be seriously misguided if you used
+       them, but anyway, here are the installation instructions
+       for those deprecated fonts.
 
-       ftp://ftp.shsu.edu/tex-archive/macros/musixtex/taupin
 
-       ftp://ftp.tex.ac.uk/tex-archive/macros/musixtex/taupin
 
-       ftp://ftp.dante.de/tex-archive/macros/musixtex/taupin
+11/Jan/98                LilyPond 0.1.41                        5
 
 
 
 
-5/Jan/98                 LilyPond 0.1.39                        5
 
+INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
+       [obsolete] I use the MusixTeX fonts those found in
+       MusixTeX T.73. Beware, the clef symbol seems to have
+       changed its position in some versions, (notably Egler's,
+       a.k.a. OpusTeX). The MusixTeX fonts are included in
+       MusixTeX (T73 or better), which can be had from any CTAN
+       site, e.g. at
 
+       ftp://ftp.shsu.edu/tex-archive/macros/musixtex/taupin
 
-INSTALL(1)            LilyPond documentation           INSTALL(1)
+       ftp://ftp.tex.ac.uk/tex-archive/macros/musixtex/taupin
 
+       ftp://ftp.dante.de/tex-archive/macros/musixtex/taupin
 
        You only need the contents of the _\bm_\bf_\b/ subdirectory of the
        package. The primary site of the Taupin version is
@@ -378,19 +391,6 @@ A\bA\bA\bAU\bU\bU\bUT\bT\bT\bTH\bH\bH\bHO\bO\bO\bOR\bR\bR\bRS\bS\bS\bS
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-5/Jan/98                 LilyPond 0.1.39                        6
+11/Jan/98                LilyPond 0.1.41                        6
 
 
diff --git a/NEWS b/NEWS
index bb0e37a02ddda0a0a69fb287f47ad90cf22cf8be..b00a6f01e37128a11be406571a2fe032633d7ab6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,49 @@
+pl 41
+       - warn for score with multiple Music blocks
+       - bf: \plet (MB)
+       - \textsharp in 16pt
+       - malloc frobnifying
+       - more fontsizes: 26pt, 11pt, 13pt
+       - \textstyle "bold"
+       - .rpm: remove old fonts
+
+pl 40.jcn2
+       - bf: typo scores.cc
+       - bfs: non-default base constructor calls
+       - bfs: virtual destructors
+       - standje.ly: the real standchen (first bit)
+       - gcc 2.8 compile
+       - nicer scsii-menuetto
+
+pl 40.jcn1
+       - bf: breaking of :| bar
+       - bf: lyric substitution of _ -> ' ' flower/libc-ext:memmem
+       - no slope=0 beams between stafflines
+       - bf: tex without lily-ps-defs
+       - bf: embedded mf shift: added '%' to \embeddedps
+       - doos compile
+
+******
+jan 12
+pl 40
+       - some doco fixes
+       - debian diffs (AF)
+
+pl 39.jcn2
+       - bf: bit smarter atan() for feta-sleur (thanks wendy)
+       - bf: y quantise of multiple down beams (typo)
+       - minor doc fixes
+       - bf: distribute mfdeps and moved from mf/out/mfdeps to mf/mf.dep
+       - some changes to ANNOUNCE
+       - fixes for simple slur/tie placement
+       - embedded MF fonts identified by parameters -> reusable runtime fonts
+       - clean-embeds.sh
+       - runtime MF beams: feta-beum.mf
+       - bf: enable switching PS off
+       - updated runtime MF feta-sleur.mf with new PS slur algorithm
+
+******
+jan 5 1998
 pl 39
        - 0.2 ANNOUNCE sketch
        - unix style paths for LILYINCLUDE env
diff --git a/TODO b/TODO
index a9b64f1dd997fedd30a03bd079ff674c391982e3..f62af6ca905ef31f5153a3577a48817c8e6a523e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -7,8 +7,9 @@ Most of the items are marked in the code as well, with full explanation.
 grep for TODO and ugh/ugr
 
 0.2:
+       * forced breakpoints
 
-       * beam quanting
+       * --metafont
 
        * disable spaces in TeX stuff
 
@@ -78,6 +79,8 @@ STUFF
 
        * Fix profiling. gprof bugreport?
 
+       * GS: /undefined in draw_beam after XDVI magnification.
+
 PROJECTS
 
        * Unicode support?
@@ -180,6 +183,7 @@ languages:
        * Documentation
        - Doc Mutopia (Music To The People) 
        - Doc (C) stuff of sheet music
+       - a better format?  SGML?  TeX?  Info?
        - a tutorial
 
        * TeX spanners , use texbeam.cc as an example (smallish)
diff --git a/VERSION b/VERSION
index 1cb7a136d909c97250e67f527ad7788239b1777f..11280fe443032637a2848cec9cfe8a358e7fc375 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 TOPLEVEL_MAJOR_VERSION = 0
 TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 39
+TOPLEVEL_PATCH_LEVEL = 41
 TOPLEVEL_MY_PATCH_LEVEL = 
 
 # use the above to send patches, always empty for released version:
index e02b17ddf9a490f2eb2af23f24916452b47c98df..06be9040aebea8577292f8494176d7923ae0fee9 100644 (file)
@@ -8,8 +8,8 @@ rm -vf `grep -li "%Creator: dvipsk" *.ps`
 rm -vf `grep -li "Creator: GNU LilyPond" *.midi`
 rm -vf `grep -li "Creator: ly2dvi" *.tex`
 rm -vf `find -name 'core'`
-rm -vf `find -name *.orig`
-rm -vf `find -name *.rej`
+rm -vf `find -name '*.orig'`
+rm -vf `find -name '*.rej'`
 
     
 # docxx mess
diff --git a/bin/clean-embeds.sh b/bin/clean-embeds.sh
new file mode 100644 (file)
index 0000000..1b53f85
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+rm -f feta-sleur-[0-9x\-]*.mf
+rm -f feta-sleur-[0-9x\-]*.log
+rm -f feta-beum-[0-9x\-]*.mf
+rm -f feta-beum-[0-9x\-]*.log
+rm -f feta-embed.aux
+rm -f missfont.log
+clean-fonts sleur
+clean-fonts beum
index 07814d664e66d6e67ae658804f2c289070330019..3421ca41e8133144ff836bd1a2f9807d65acfd44 100644 (file)
@@ -6,10 +6,27 @@ case  $# in
 1)
     WHAT=$1;;
 esac
+
+if [ X$LILYPOND_SOURCEDIR = X ];
+then
+    LILYPOND_SOURCEDIR=..
+fi
+
+if [ -d /var/lib/texmf ]; then
+    TEXDIR=/var/lib/texmf
+elif [ -d /var/texfonts ]; then
+    TEXDIR=/var/texfonts
+else
+    TEXDIR=/var/
+fi
+
+#if [ -f $LILYPOND_SOURCEDIR/config.status ]; then
+#TEXDIR=`awk -F % '/TEXPREFIX/ {print $3}' $LILYPOND_SOURCEDIR/config.status`
+
     
 # remove possibly stale .pk/.tfm files 
 echo> /tmp/cleaning-font-dummy
-FILES=`find /var/lib/texmf/ -name "feta*$WHAT*"`
+FILES=`find $TEXDIR -name "feta*$WHAT*tfm" -or -name "feta*$WHAT*pk"`
 
 echo removing $FILES
 rm  $FILES /tmp/cleaning-font-dummy
diff --git a/bin/flower.py b/bin/flower.py
new file mode 100644 (file)
index 0000000..5625599
--- /dev/null
@@ -0,0 +1,35 @@
+#!@PYTHON@
+
+# 
+# flower.py -- python flower lib
+# 
+# source file of the GNU LilyPond music typesetter
+# 
+# (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+# 
+
+class File:
+    """silly wrapper for Python file object."""
+    def __init__ (self,nm, mode='r'):
+       if nm:
+           self.file_ = open (nm, mode);
+       elif mode == 'w':
+           self.file_ = sys.stdout
+       else:
+           self.file_ = sys.stdin
+           
+       self.eof_ = 0;
+    def readline (self):
+       l=  self.file_.readline ();
+       if not l:
+           self.eof_ = 1;
+       return l;
+    def write (self, str):
+       self.file_.write (str)
+    def eof (self):
+       return self.eof_
+    def close (self):
+       self.file_.close ()
+    def __del__ (self):
+       self.close ();
+
index 07bd45077264f5db842bef0c9e984d7292a4f04d..4a68b3b80d32c320b145a07342fb400c47255ede 100644 (file)
@@ -111,11 +111,14 @@ def do_file(nm):
 
 
 def extension(ext,nm):
-    ext = '\.' + ext
+    ext = '\\.' + ext
     return regex.search(ext, nm) <> -1
 
+def c_extension(nm):
+    return extension('hh',nm) or extension('cc',nm) \
+          or extension('icc', nm) or extension('tcc',nm)
 def select_commentification(nm):
-    if extension('hh',nm) or extension('cc',nm):
+    if c_extension (nm):
        return c_commentify
     elif extension('py',nm) or extension('pl',nm) or extension('sh',nm):
        return  sh_commentify
@@ -125,7 +128,7 @@ def select_commentification(nm):
        raise 'help'
 
 for nm in files:
-    if extension('hh', nm): 
+    if extension('hh', nm) or extension('icc', nm) or  extension('tcc', nm)
        my_options.add_hdr_def = 1
     if my_options.commentify == None:
        my_options.commentify = select_commentification(nm)
index 17abe50efb5b4999a06f35c2fd38b751521841cc..ba04446924c754cfa11e1e4a5d353559d1f38d06 100644 (file)
@@ -5,4 +5,4 @@ then
 fi
 p1=`find $LILYTOP -name '*.hh' |egrep -v out/` 
 p2=`find $LILYTOP -name '*.cc' |egrep -v out/`
-doc++ -d docxx/ -S -k -p $p1 $p2
+doc++ -d docxx/ -S -k -p $BANNEROPT $p1 $p2
index 30e870f16cd6a42302a51ad76d14f59b4c7b8796..360d5d70a4a0429ad16d9b59b32c46b490f74cc7 100644 (file)
@@ -1,10 +1,23 @@
 #!@PYTHON@
+
+import sys
+import os
+
+lilypath =''
+try:
+    lilypath = os.environ['LILYPOND_SOURCEDIR'] + '/'
+except IndexError:
+    lilypath = os.environ['HOME'] + 'musix/current'
+lilypath = lilypath + '/bin/'
+sys.path.append(lilypath)
+
+
 from lilypython import *
 import getopt
 import pipes
 
 
-mp_version = '2'
+mp_version = '0.3'
 
 class Options:
     def __init__(self):
index 52bc1493780a158df41b2122bda7f9081fd1116d..e0f8480ac123a083c79eef264cb7efdb20b3af0c 100644 (file)
  The WWW site is my test-suite for LilyPond, I usually don't
  distribute versions that fail to complete this script """
 
+import sys
+import os
+
+lilypath =''
+try:
+    lilypath = os.environ['LILYPOND_SOURCEDIR'] + '/'
+except IndexError:
+    lilypath = os.environ['HOME'] + 'musix/current'
+lilypath = lilypath + '/bin/'
+sys.path.append(lilypath)
 from lilypython import *
 import __main__
 import glob
 
 depth = ''
 makewebsite_id = "<!make_website!>";
-id_str = "make-website 0.6";
+id_str = "make-website 0.7";
 tar = "tar";
 make = "make";
 mailaddress = "unknown"
@@ -79,7 +90,7 @@ examples=["twinkle-pop",
                 "gallina",
                 "twinkle", 
                 "collisions",
-                "font",
+                "font16",
                 "font20",
                 #"scales", 
                 "rhythm", 
index c17e5d949a61e8155921f82f6a46682ba277a28a..6d022fff456d06ae96db00d0ca37b6992744f6af 100644 (file)
@@ -22,9 +22,15 @@ from regsub import * ;
 import sys;
 import os;
 
+
+version = "0.2"
 input_re = compile('^[ \t]*input *\([^;]+\);')
 postfixes = ['log', 'dvi', '2602gf', 'tfm']
 
+def identify ():
+    return "mf-deps.py %s" % version
+
+
 
 def print_one(x):
     print x
@@ -73,7 +79,7 @@ class Targetdeps:
 
        return reduce(line_concat, dependencies)
 
-
+print "# Automatically generated by %s\n" % identify ()
 
 for file in sys.argv[1:]: # skip programname
     t = Targetdeps(file)
index 08ded81adf8c3bffff10c4a9bf7c2cc78570ecf2..927ccbbeb18a4b235a7f364ce4590f62500834ef 100644 (file)
@@ -15,36 +15,12 @@ import regsub
 import os
 import sys
 import time
+from flower import *
 
 begin_autometric_re = regex.compile('@{')
 end_autometric_re = regex.compile('@}')
 autometric_re = regex.compile('@{\(.*\)@}')
-version = '0.4'
-
-class File:
-    """silly wrapper for Python file object."""
-    def __init__(self,nm, mode='r'):
-       if nm:
-           self.file_ = open(nm, mode);
-       elif mode == 'w':
-           self.file_ = sys.stdout
-       else:
-           self.file_ = sys.stdin
-           
-       self.eof_ = 0;
-    def readline(self):
-       l=  self.file_.readline();
-       if not l:
-           self.eof_ = 1;
-       return l;
-    def write(self, str):
-       self.file_.write(str)
-    def eof(self):
-       return self.eof_
-    def close(self):
-       self.file_.close()
-    def __del__(self):
-       self.close();
+version = '0.5'
 
 class Feta_file(File):
     """Read Feta metrics from a metafont log-file."""
@@ -181,8 +157,8 @@ class Log_reader:
        self.texfile = Indentable_file(texfile_nm, 'w')
 
 
-       headerstr = '%% Creator: %s\n%% Automatically generated on %s\n%% Do not edit' % \
-                  (program_id(), today_str())
+       headerstr = '%% Creator: %s\n%% Automatically generated on\n%% Do not edit' % \
+                  (program_id() )
 
        self.lyfile.write(headerstr)
        self.texfile.write(headerstr)
old mode 100644 (file)
new mode 100755 (executable)
index 604e1779f0dccbe3d306a09ebba463eb1902300c..26519263e256eb1128aa28f1e9a0bacba4bd3238 100644 (file)
@@ -1,5 +1,16 @@
 #!@PYTHON@
 
+import sys
+import os
+
+lilypath =''
+try:
+    lilypath = os.environ['LILYPOND_SOURCEDIR'] + '/'
+except IndexError:
+    lilypath = os.environ['HOME'] + 'musix/current'
+lilypath = lilypath + '/bin/'
+sys.path.append(lilypath)
+
 from lilypython import *
 
 os.chdir(lilydirs.topdir)
index a75250b54f288b869c722bff1ffd82d10f60ced3..1c3d14dd0e9818c43f912dc21e552d1b0391697c 100644 (file)
@@ -2,7 +2,7 @@
 # -*-Perl-*-
 
 
-$reldir="/home/hw/musix/releases";
+$reldir="/home/hanwen/musix/releases";
 
 use FileHandle;
 use Getopt::Long;
index 0158a62afed18282d8758fa647fb61a044aba651..dcc446cf8f988aaf30d348428088cef52897bb7b 100644 (file)
@@ -1,3 +1,48 @@
+lilypond (0.1.39-2) unstable; urgency=low
+
+  * debian/control:
+     - Description: Remove the note about installing musixtex or
+       musixtex-fonts.
+     - Added "Conflicts: musixtex-fonts".
+
+ -- Anthony Fok <foka@debian.org>  Tue,  6 Jan 1998 02:42:56 -0700
+
+lilypond (0.1.39-1) unstable; urgency=low
+
+  * New upstream LilyPond '98 "New Year Gift" release.
+  * debian/control:
+     - No longer Recommends: "musixtex" or "musixtex-fonts" because
+       LilyPond no longer needs them.
+     - Therefore, Section: is changed from "contrib/tex" to "tex".
+       LilyPond can finally go into the main distribution.  Hurray!
+  * debian/rules: Now also dh_installdocs ANNOUNCE-0.1 and ONEWS.
+  * preinst, postinst, postrm: Added #DEBHELPER#.
+  * preinst, postrm: Changed #!/bin/bash to #!/bin/sh.
+
+ -- Anthony Fok <foka@debian.org>  Mon,  5 Jan 1998 18:42:30 -0700
+
+lilypond (0.1.38-1) unstable; urgency=low
+
+  * New upstream Xmas release.
+  * Applied patch patch-0.1.38.jcn1 from Jan Nieuwenhuizen.
+  * Have fun, Merry Christmas and a Happy 1998. -- Han-Wen Nienhuys
+
+ -- Anthony Fok <foka@debian.org>  Wed, 24 Dec 1997 16:38:14 -0700
+
+lilypond (0.1.37-1) unstable; urgency=low
+
+  * New upstream release
+  * Minor modifications to debian/rules due to changes in
+    debhelper 0.32.
+
+ -- Anthony Fok <foka@debian.org>  Fri, 12 Dec 1997 11:11:12 -0700
+
+lilypond (0.1.36-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Anthony Fok <foka@debian.org>  Tue,  9 Dec 1997 18:33:50 -0700
+
 lilypond (0.1.35-1) unstable; urgency=low
 
   * New upstream release
index 13de513c092d34281f4a630706387cc9f00fe3b1..5da70c7c8699125aed0b31f13c48c65d306ee6d7 100644 (file)
@@ -1,5 +1,5 @@
 Source: lilypond
-Section: contrib/tex
+Section: tex
 Priority: optional
 Maintainer: Anthony Fok <foka@debian.org>
 Standards-Version: 2.3.0.1
@@ -7,15 +7,13 @@ Standards-Version: 2.3.0.1
 Package: lilypond
 Architecture: any
 Depends: ${shlibs:Depends}
-Recommends: tetex-base, musixtex | musixtex-fonts
+Recommends: tetex-base
+Conflicts: musixtex-fonts
 Description: A music typesetting program.
  GNU LilyPond is a program which converts a music-script (mudela) into TeX
  output, or MIDI to produce multi-staff scores. Features include multiple
  meters, clefs, keys, lyrics, versatile input-language, cadenzas beams,
  slurs, triplets, multiple voices.
- .
- Note: LilyPond uses the fonts from MusiXTeX.  Please install the package
-       musixtex or musixtex-fonts when you install lilypond.
  .
   URL: http://www.stack.nl/~hanwen/lilypond/
   Authors: Han-Wen Nienhuys <hanwen@stack.nl>
index b5489572beb1fee73446315b1387678132bde127..613a8d39673305e233aa0317b8048150d095b2cd 100644 (file)
@@ -1,8 +1,9 @@
-This package was debianized by Anthony Fok foka@debian.org on
+This package was debianized by Anthony Fok <foka@debian.org> on
 Wed,  6 Aug 1997 04:30:28 -0600
 
 It was downloaded from
-    ftp://pcnov095.win.tue.nl/pub/lilypond/development/lilypond-0.1.35.tar.gz
+    ftp://pcnov095.win.tue.nl/pub/lilypond/development/
+        lilypond-0.1.39.tar.gz
 
 It is also available from:
     ftp://alpha.gnu.org/gnu/
@@ -16,7 +17,7 @@ Authors:
  
 Copyright:
 
-  GNU LilyPond is Copyright (C) 1996,1997 
+  GNU LilyPond is Copyright (C) 1996-1998
   Jan Nieuwenhuizen & Han-Wen Nienhuys
 
     This program is free software; you can redistribute it and/or modify
index 2e1f5e0d0c28c438a5cefb0b28aa1c83301a8418..ddcc40e520b5c30d13717e82680d15c09212c67b 100644 (file)
@@ -4,7 +4,7 @@
 #
 #   by Anthony Fok <foka@debian.org>
 #   Initial release:  Sun, 26 Oct 1997 03:23:00 -0700
-#     Last modified:  Sun, 23 Nov 1997 03:04:16 -0700
+#     Last modified:  Mon,  5 Jan 1998 18:36:51 -0700
 
 use strict;
 use File::Copy;
@@ -238,3 +238,7 @@ check_specialmap();
 
 print " $pkg_name configuration completed.\n";
 print " Please read /usr/doc/$package/README.Debian to get started.\n";
+
+print << `EOF`
+#DEBHELPER#
+EOF
index 86d5a9353591c3a3a6e65250d5179462cc24db6a..e3d606b1e69cd3ce32bc77ab69c89ee7f2c47b44 100644 (file)
@@ -1,16 +1,20 @@
-#!/bin/bash -e
+#!/bin/sh
 #
 # postrm script for the Debian GNU/Linux lilypond package
 #   by Anthony Fok <foka@debian.org>
 #   This is free software; see the GNU General Public Licence
 #   version 2 or later for copying conditions.  There is NO warranty.
-#   Last modified:  Mon, 10 Nov 1997 22:44:37 -0700
+#   Last modified:  Mon,  5 Jan 1998 18:38:11 -0700
+
+set -e
 
 package=lilypond
 font_supplier=public
 font_typeface=lilypond
 std_TEXMF=/usr/lib/texmf
 
+#DEBHELPER#
+
 if [ "`which kpsetool`" ]; then
     TEXMF=`kpsetool -v '$TEXMF'`
 fi
index 71a9d645e6ba646c252da4c31c98ea7b6fba921c..fff81f284cfb5734a53d4ea66b7884bf5402ffbc 100644 (file)
@@ -1,16 +1,20 @@
-#!/bin/bash -e
+#!/bin/sh
 #
 # preinst script for the Debian GNU/Linux lilypond package
 #   by Anthony Fok <foka@debian.org>
 #   This is free software; see the GNU General Public Licence
 #   version 2 or later for copying conditions.  There is NO warranty.
-#   Last modified:  Tue, 11 Nov 1997 01:25:15 -0700
+#   Last modified:  Mon,  5 Jan 1998 18:39:30 -0700
+
+set -e
 
 package=lilypond
 font_supplier=public
 font_typeface=lilypond
 std_TEXMF=/usr/lib/texmf
 
+#DEBHELPER#
+
 if [ "`which kpsetool`" ]; then
     TEXMF=`kpsetool -v '$TEXMF'`
 fi
index 722ba550ac29787f40d55d778651178d6573f800..f0d60cfc7c1f689bb896a3b4aae03e1a6520c58e 100644 (file)
@@ -44,7 +44,8 @@ binary-arch: build
        dh_installdirs usr/lib/texmf/doc
        $(MAKE) prefix=`pwd`/debian/tmp/usr install
        ln -fs ../../../doc/lilypond debian/tmp/usr/lib/texmf/doc/lilypond
-       dh_installdocs BUGS TODO NEWS DEDICATION ANNOUNCE README \
+       dh_installdocs ANNOUNCE ANNOUNCE-0.1 README NEWS ONEWS DEDICATION \
+               BUGS TODO \
                Documentation/out/*.text Documentation/*.doc \
                Documentation/lelie_logo.xpm bin/ly2dvi.sh
        dh_installexamples input/*.ly input/*.tex
@@ -57,7 +58,9 @@ binary-arch: build
        dh_compress
        dh_fixperms
        dh_suidregister
-       dh_installdebfiles
+       dh_installdeb
+       dh_shlibdeps
+       dh_gencontrol
 #      dh_makeshlibs
        dh_du
        dh_md5sums
index f7db23a49c5d9d0984ec8f8080b6a1339342d6d2..0629855834ed4c0845ea06116c43149cc019e2f1 100644 (file)
@@ -1,3 +1,13 @@
+pl 34.jcn2
+       - memmem optimise
+
+pl 35
+       - bf: libc-extension: memmem
+
+pl 34
+       - string.icc
+       - String_convert::precision_str: double to string with fixed precision
+
 pl 33
        - String naming
        - unix style paths
index 636df4b25f7e370a0076cc4fdd6938eb4e328c13..fb9bbfb6d6b439b6cc22c3b0bc75063611da2b81 100644 (file)
@@ -1,6 +1,6 @@
 MAJOR_VERSION = 1
 MINOR_VERSION = 1
-PATCH_LEVEL = 33
+PATCH_LEVEL = 35
 # use to send patches, always empty for released version:
 MY_PATCH_LEVEL = # include separator: "-1" or ".a"
 #
index 187fb26901c61ee0865144b5c3d94704c37cf0e5..989a042603ec9f7baf65951435e2b5e888cd5e50 100644 (file)
@@ -24,23 +24,23 @@ Choleski_decomposition::full_matrix_solve (Vector &out, Vector const &rhs) const
   // forward substitution
   for (int i=0; i < n; i++) 
     {
-       Real sum (0.0);
-       for (int j=0; j < i; j++)
-           sum += y (j) * L(i,j);
-       y (i) = (rhs (i) - sum)/L(i,i);
+      Real sum (0.0);
+      for (int j=0; j < i; j++)
+       sum += y (j) * L(i,j);
+      y (i) = (rhs (i) - sum)/L(i,i);
     }
   
   for (int i=0; i < n; i++)
-       y (i) /= D(i);
+    y (i) /= D(i);
 
   // backward subst
   Vector &x (out);             // using input as return val.
   for (int i=n-1; i >= 0; i--) 
     {
-       Real sum (0.0);
-       for (int j=i+1; j < n; j++)
-           sum += L(j,i)*x (j);
-       x (i) = (y (i) - sum)/L(i,i);
+      Real sum (0.0);
+      for (int j=i+1; j < n; j++)
+       sum += L(j,i)*x (j);
+      x (i) = (y (i) - sum)/L(i,i);
     }
 }
 
@@ -51,7 +51,7 @@ Choleski_decomposition::band_matrix_solve (Vector &out, Vector const &rhs) const
   int b = L.band_i();
   assert (n == L.dim());
 
-    out.set_dim (n);
+  out.set_dim (n);
   
   Vector y;
   y.set_dim (n);
@@ -59,22 +59,22 @@ Choleski_decomposition::band_matrix_solve (Vector &out, Vector const &rhs) const
   // forward substitution
   for (int i=0; i < n; i++) 
     {
-       Real sum (0.0);
-       for (int j= 0 >? i - b; j < i; j++)
-           sum += y (j) * L(i,j);
-       y (i) = (rhs (i) - sum)/L(i,i);
+      Real sum (0.0);
+      for (int j= 0 >? i - b; j < i; j++)
+       sum += y (j) * L(i,j);
+      y (i) = (rhs (i) - sum)/L(i,i);
     }
   for (int i=0; i < n; i++)
-       y (i) /= D(i);
+    y (i) /= D(i);
 
   // backward subst
   Vector &x (out);             // using input as return val.
   for (int i=n-1; i >= 0; i--) 
     {
-       Real sum (0.0);
-       for (int j=i+1; j <= i + b&&j < n ; j++)
-           sum += L(j,i)*x (j);
-       x (i) = (y (i) - sum)/L(i,i);
+      Real sum (0.0);
+      for (int j=i+1; j <= i + b&&j < n ; j++)
+       sum += L(j,i)*x (j);
+      x (i) = (y (i) - sum)/L(i,i);
     }
 }
 
@@ -83,10 +83,10 @@ Choleski_decomposition::solve (Vector &x, Vector const &rhs) const
 {
   if (L.band_b()) 
     {
-       band_matrix_solve (x,rhs);
+      band_matrix_solve (x,rhs);
     }
   else
-       full_matrix_solve (x,rhs);
+    full_matrix_solve (x,rhs);
 }
 
 Vector
@@ -101,23 +101,23 @@ void
 Choleski_decomposition::full_matrix_decompose (Matrix const & P)
 {
  
-   int n = P.dim();
+  int n = P.dim();
   L.unit();
   for (int k= 0; k < n; k++) 
     {
-       for (int j = 0; j < k; j++)
-         {
-           Real sum (0.0);
-           for (int l=0; l < j; l++)
-               sum += L(k,l)*L(j,l)*D(l);
-           L(k,j) = (P(k,j) - sum)/D(j);
-         }
-       Real sum=0.0;
+      for (int j = 0; j < k; j++)
+       {
+         Real sum (0.0);
+         for (int l=0; l < j; l++)
+           sum += L(k,l)*L(j,l)*D(l);
+         L(k,j) = (P(k,j) - sum)/D(j);
+       }
+      Real sum=0.0;
        
-       for (int l=0; l < k; l++)
-           sum += sqr (L(k,l))*D(l);
-       Real d = P(k,k) - sum;
-       D(k) = d;
+      for (int l=0; l < k; l++)
+       sum += sqr (L(k,l))*D(l);
+      Real d = P(k,k) - sum;
+      D(k) = d;
     }
 
 }
@@ -131,19 +131,19 @@ Choleski_decomposition::band_matrix_decompose (Matrix const &P)
   
   for (int i= 0; i < n; i++) 
     {
-       for (int j = 0 >? i - b; j < i; j++)
-         {
-           Real sum (0.0);
-           for (int l=0 >? i - b; l < j; l++)
-               sum += L(i,l)*L(j,l)*D(l);
-           L(i,j) = (P(i,j) - sum)/D(j);
-         }
-       Real sum=0.0;
+      for (int j = 0 >? i - b; j < i; j++)
+       {
+         Real sum (0.0);
+         for (int l=0 >? i - b; l < j; l++)
+           sum += L(i,l)*L(j,l)*D(l);
+         L(i,j) = (P(i,j) - sum)/D(j);
+       }
+      Real sum=0.0;
        
-       for (int l=0 >? i - b; l < i; l++)
-           sum += sqr (L(i,l))*D(l);
-       Real d = P(i,i) - sum;
-       D(i) = d;
+      for (int l=0 >? i - b; l < i; l++)
+       sum += sqr (L(i,l))*D(l);
+      Real d = P(i,i) - sum;
+      D(i) = d;
     }
   L.try_set_band();
   assert (L.band_i() == P.band_i ());
@@ -157,15 +157,15 @@ Choleski_decomposition::band_matrix_decompose (Matrix const &P)
    */
 
 Choleski_decomposition::Choleski_decomposition (Matrix const & P)
-   : L(P.dim()), D(P.dim ())
+  : L(P.dim()), D(P.dim ())
 { 
 #ifdef PARANOID
   assert ((P-P.transposed()).norm ()/P.norm () < EPS);
 #endif
   if  (P.band_b()) 
-       band_matrix_decompose (P);
+    band_matrix_decompose (P);
   else
-       full_matrix_decompose (P);
+    full_matrix_decompose (P);
  
 
 #ifdef PARANOID
@@ -190,10 +190,10 @@ Choleski_decomposition::inverse() const
   Vector inv (n);
   for (int i = 0; i < n; i++) 
     {
-       e_i.set_unit (i);
-       solve (inv, e_i);
-       for (int j = 0 ; j<n; j++)
-           invm (i,j) = inv (j);
+      e_i.set_unit (i);
+      solve (inv, e_i);
+      for (int j = 0 ; j<n; j++)
+       invm (i,j) = inv (j);
     }
   
 #ifdef PARANOID
index b13203e4fa19ca307eb39f7e9c2afd6bb9c3f592..50dafedf13e92cb801bb1aa3a519f9942700e41f 100644 (file)
@@ -38,7 +38,7 @@ void
 Directed_graph_node::copy_edges_out (Directed_graph_node const &s)
 {
   for (int i=0; i < s.edge_out_l_arr_.size(); i++)
-       add (s.edge_out_l_arr_[i]);
+    add (s.edge_out_l_arr_[i]);
 }
 
 void
@@ -47,11 +47,11 @@ Directed_graph_node::OK() const
 #ifndef NDEBUG
   for (int i=0; i < edge_out_l_arr_.size(); i++) 
     {
-       assert (edge_out_l_arr_[i]->
-              edge_in_l_arr_.find_l (this));
+      assert (edge_out_l_arr_[i]->
+             edge_in_l_arr_.find_l (this));
     }
   for (int i=0; i < edge_in_l_arr_.size(); i++)
-       assert (edge_in_l_arr_[i]->contains_b (this));
+    assert (edge_in_l_arr_[i]->contains_b (this));
 #endif
 }
 
@@ -87,10 +87,10 @@ Directed_graph_node::remove_edge_out (Directed_graph_node *d_l)
   PARANOID_OK();
   for (int i=0; i < edge_out_l_arr_.size();) 
     {
-       if (edge_out_l_arr_[i]== d_l)
-           remove_edge_out_idx (i);
-       else
-           i++;
+      if (edge_out_l_arr_[i]== d_l)
+       remove_edge_out_idx (i);
+      else
+       i++;
     }
   PARANOID_OK();
 }
@@ -112,21 +112,21 @@ void
 Directed_graph_node::unlink()
 {
 #ifdef PARANOID
-       PARANOID_OK();
+  PARANOID_OK();
 
-       Link_array<Directed_graph_node> t = edge_out_l_arr_;
-       t.concat (edge_in_l_arr_);
+  Link_array<Directed_graph_node> t = edge_out_l_arr_;
+  t.concat (edge_in_l_arr_);
 #endif
 
-       while (edge_out_l_arr_.size())
-           remove_edge_out_idx (0);
+  while (edge_out_l_arr_.size())
+    remove_edge_out_idx (0);
        
-       while (edge_in_l_arr_.size())
-           remove_edge_in (edge_in_l_arr_[0]);
+  while (edge_in_l_arr_.size())
+    remove_edge_in (edge_in_l_arr_[0]);
 
 #ifdef PARANOID
-       for (int i =0; i < t.size(); i++)
-           t[i]->OK();
+  for (int i =0; i < t.size(); i++)
+    t[i]->OK();
 #endif
 }
 
@@ -141,7 +141,7 @@ Directed_graph_node::add (Directed_graph_node* dep_l)
 {
   PARANOID_OK();
   if (!dep_l)
-       return ;
+    return ;
   dep_l->edge_in_l_arr_.push (this);
   edge_out_l_arr_.push (dep_l);
   PARANOID_OK();
index 5728b8a95c84695a014c1d397f312254bd2a3c88..f3131c8254f8f287dfa53df7c0ad5189515cc78d 100644 (file)
@@ -14,7 +14,7 @@ void set_flower_debug (Dstream&ds, bool b)
 {
 #ifdef NPRINT
   if (b)
-       cout << _("Debug printout disabled, see the installation guide.") << endl;
+    cout << _("Debug printout disabled.  Compiled with NPRINT.") << endl;
 #endif
 
   flower_check_debug = b;
index 84c60d836a0a7a9308cbb4a9c341eaf2fc503193..ea204e1dc6bb19aab4f2e574a882800fae27310a 100644 (file)
@@ -79,7 +79,7 @@ template<class T>
 int
 Cursor<T>::operator-(Cursor<T> rhs) const
 {
-  assert (rhs.list == list);
+  assert (&rhs.list_ == &list_);
   int dif = 0;
 
   // search from *this on further up (positive difference)
index e09f03e3c1411a925f91924199c28e720d41320f..694f63fed6175beef690c37c011d1ea63fa8874a 100644 (file)
@@ -44,6 +44,7 @@ struct Directed_graph_node;
 struct Getopt_long;
 struct Matrix;
 struct String_data;
+struct FlowerString;
 struct String_handle;
 struct String_convert;
 struct String;
index f30c98ca5af0d0b3ab888e453372c4710aab1f36..03432c927e8945d661e7fbf4034b5f6a2e5c0a2b 100644 (file)
@@ -55,7 +55,7 @@ class Pointer_list : public Link_list<T> {
     
 public:
   void junk();
-  Pointer_list (Pointer_list const &) { set_empty(); }
+  Pointer_list (Pointer_list const& l) : Link_list<T> (l) { set_empty(); }
   Pointer_list() { }
   ~Pointer_list() { junk (); }
 };
index 1d3f5d0300130f72326f1e9ee8037410c7e19d06..72149f78ec3c4969034abce31b335f9cd5183aad 100644 (file)
@@ -36,6 +36,7 @@ public:
     static String i2dec_str (int i, int length_i, char ch);
     static String rational_str (Rational);
     static String pointer_str (void const *);
+    static String precision_str (double x, int n);
     static String i64_str (I64, char const * fmt = 0);
 };
 
index 067ea3358e029d1e11a455502d2eeb03a01714ec..fcec32ae89953e4b0776ce91ecbf1d02a036d7c5 100644 (file)
 
 #include "string-handle.hh"
 
-/**
+/*
   technically incorrect, but lets keep it here: this is a
   catch all place for this stuff.
   */
   
 #include "international.hh"
 
+/* Libg++ also has a String class.  Programming errors can lead to
+  confusion about which String is in use.  Uncomment the following if you have 
+  unexplained crashes after mucking with String
+  */
+
+//  #define String FlowerString
+
 /** 
  
   Intuitive string class. provides 
@@ -62,13 +69,13 @@ class String
 protected:
   String_handle strh_; 
 
-  bool null_terminated();
+  bool null_terminated ();
     
 public:
 
   /** init to empty string. This is needed because other
     constructors are provided.*/
-  String() {  }                  
+  String  ();
   String (Rational);
 
   /// String s = "abc";
@@ -84,12 +91,12 @@ public:
   String (bool);
 
   ///  return a "new"-ed copy of contents
-  Byte* copy_byte_p() const; //  return a "new"-ed copy of contents
+  Byte* copy_byte_p () const; //  return a "new"-ed copy of contents
 
-  char const* ch_C() const;
-  Byte const* byte_C() const;
-  char* ch_l();
-  Byte* byte_l();
+  char const* ch_C () const;
+  Byte const* byte_C () const;
+  char* ch_l ();
+  Byte* byte_l ();
 
   String &operator =(String const & source);
 
@@ -97,21 +104,25 @@ public:
   void operator += (char const* s) { strh_ += s; }
   void operator += (String s);
 
-  bool empty_b () const;
+  bool empty_b  () const;
 #if 0
   /** is the string empty?
 
     Ugh-ugh-thank-you-cygnus.  W32 barfs on this
    */
-  operator bool () const;
+  operator bool  () const;
   {
-    return length_i (); 
+    return length_i  (); 
   }
 #endif
   void append (String);
   void prepend (String);
 
-  char operator [](int n) const { return strh_[n]; }
+  /**
+    Return a char.  UNSAFE because it may change strlen () result
+   */
+  char &operator [](int n);
+  char operator [](int n) const;
 
   /// return n leftmost chars
   String left_str (int n) const;
@@ -120,13 +131,13 @@ public:
   String right_str (int n) const;
 
   /// return uppercase of *this
-  String upper_str() const;
+  String upper_str () const;
 
   /// return lowercase of *this
-  String lower_str() const;
+  String lower_str () const;
 
   /// return the "esrever" of *this
-  String reversed_str() const;
+  String reversed_str () const;
 
 
   /// return a piece starting at index_i (first char = index_i 0), length n
@@ -152,32 +163,41 @@ public:
   int index_i (String) const;
   int index_any_i (String) const;
 
-  void to_upper();
-  void to_lower();
+  void to_upper ();
+  void to_lower ();
   /// provide Stream output
   void print_on (ostream& os) const;
 
   /// the length of the string
-  int length_i() const;
+  int length_i () const;
 
   // ***** depreciated
-  int len() const {
-    return length_i();
+  int len () const {
+    return length_i ();
   }
 
   /// convert to an integer
-  int value_i() const;
+  int value_i () const;
 
   /// convert to a double
-  double value_f() const;
+  double value_f () const;
 };
 
 #include "compare.hh"
-
 INSTANTIATE_COMPARE(String const &, String::compare_i);
 
+#ifdef STRING_UTILS_INLINED
+#ifndef INLINE
+#define INLINE inline
+#endif
+#include "string.icc"
+/* we should be resetting INLINE. oh well. */
+#endif
+
+
 // because char const* also has an operator ==, this is for safety:
-inline bool operator==(String s1, char const* s2){
+inline bool operator==(String s1, char const* s2)
+{
   return s1 == String (s2);
 }
 inline bool operator==(char const* s1, String s2)
@@ -206,4 +226,6 @@ operator << (ostream& os, String d)
   return os;
 }
 
+
+
 #endif
diff --git a/flower/include/string.icc b/flower/include/string.icc
new file mode 100644 (file)
index 0000000..8a03288
--- /dev/null
@@ -0,0 +1,35 @@
+/*   
+  string.icc -- implement String inlines
+  
+  source file of the Flower Library
+  
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  
+ */
+
+#ifndef STRING_ICC
+#define STRING_ICC
+
+
+INLINE 
+char &
+String::operator [](int n)
+{
+  return (char &) strh_[n]; 
+}
+
+INLINE 
+char 
+String::operator [](int n) const
+{
+  return strh_[n]; 
+}
+
+INLINE 
+String::String () 
+{
+}
+
+
+
+#endif /* STRING_ICC */
index 433ca727aa0a1454f2687ce6ee0217e591f07557..f425bfd2951c22244d831b6d0870d9e59128faa5 100644 (file)
@@ -6,10 +6,12 @@
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+
 #include "interval.hh"
 #include "real.hh"
 #include "interval.tcc"
 
+
 template INTERVAL__INSTANTIATE(Real);
 
 Real
index b380b1fd2d90671ac2a7e1b5d731ad6a139e484f..d8a9fcd6e4594796ce08bac04d55fb2d6f31e581 100644 (file)
 char* 
 strnlwr (char* start_l ,int n)
 {
-    char * p = start_l + n;
-    while (--p >= start_l) 
+  char * p = start_l + n;
+  while (--p >= start_l) 
     {
-       *p = tolower (*p);    /* a macro on some compilers */
+      *p = tolower (*p);    /* a macro on some compilers */
     }
-    return start_l;
+  return start_l;
 }
 
 char* 
 strnupr (char* start_l, int n)
 {
-    char * p = start_l + n;
-    while (--p >= start_l) 
+  char * p = start_l + n;
+  while (--p >= start_l) 
     {
-       *p = toupper (*p);    /* a macro on some compilers */
+      *p = toupper (*p);    /* a macro on some compilers */
     }
-    return start_l;
+  return start_l;
 }
 
 #if !HAVE_MEMMEM
 
 /** locate a substring. #memmem# finds the first occurrence of
-  #needle# in #haystack#
-  */
+  #needle# in #haystack#.  This is not ANSI-C.
 
-char *
-memmem (Byte const * haystack, int haystack_len,
-       Byte const *needle,int needle_len)
+  The prototype is not in accordance with the Linux Programmer's
+  Manual v1.15, but it is with /usr/include/string.h   */
+
+Byte *
+memmem (Byte const *needle,int needle_len,
+       Byte const *haystack, int haystack_len)
 {
-    Byte const * end_haystack = haystack + haystack_len - needle_len;
-    Byte const * end_needle = needle + needle_len ;
+  Byte const * end_haystack = haystack + haystack_len - needle_len + 1;
+  Byte const * end_needle = needle + needle_len ;
 
-    /* Ahhh ... Some minimal lowlevel stuff. This *is* nice; Varation
-       is the spice of life */
-    while (haystack < end_haystack) 
+  /* Ahhh ... Some minimal lowlevel stuff. This *is* nice; Varation
+     is the spice of life */
+  while (haystack < end_haystack) 
     {
-       Byte const *subneedle_l = needle;
-       Byte const *subhaystack_l = haystack;
-       while (subneedle_l < end_needle) 
+      Byte const *subneedle_l = needle;
+      Byte const *subhaystack_l = haystack;
+      while (subneedle_l < end_needle) 
        {
-           if (*subneedle_l++ != *subhaystack_l++)
-               goto next;      // yeah. I should be prosecuted.
+         if (*subneedle_l++ != *subhaystack_l++)
+           {
+             haystack ++;
+             continue;
+           }
        }
        
-       // completed the needle. Gotcha.
-       return (char*) haystack;
-    next:
-       haystack++;
+      // completed the needle. Gotcha.
+      return (Byte *) haystack;
     }
-    return 0;
+  return 0;
 }
+
 #endif
 
 Byte *
 memrchr (Byte const * p, int n, char c)
 {
-    const    Byte * q = p+n;
-    while (q > p) 
+  const    Byte * q = p+n;
+  while (q > p) 
     {
-       if (*--q == c)
-           return (Byte*)q;
+      if (*--q == c)
+       return (Byte*)q;
     }
-    return 0;
+  return 0;
 }
 
 
@@ -85,34 +89,34 @@ template<class T>
 inline void
 my_swap (T &t1, T &t2, T &tmp)
 {
-    tmp = t1;
-    t1 = t2;
-    t2 = tmp;
+  tmp = t1;
+  t1 = t2;
+  t2 = tmp;
 }
 
 Byte*
 strrev (Byte* byte_l, int length_i)
 {
-    Byte tmp_byte;
+  Byte tmp_byte;
   
-    Byte* left_l = byte_l;
-    Byte* right_l = byte_l + length_i;
+  Byte* left_l = byte_l;
+  Byte* right_l = byte_l + length_i;
 
-    while (right_l > left_l) 
+  while (right_l > left_l) 
     {
-       my_swap (*right_l-- , *left_l++ , tmp_byte);
+      my_swap (*right_l-- , *left_l++ , tmp_byte);
     }
-    return byte_l;
+  return byte_l;
 }
 
 #if ! HAVE_SNPRINTF
 int snprintf (char *str, size_t,
-              char const *format, ...)
+             char const *format, ...)
 {
-    va_list ap;
-    va_start (ap, format);
-    int i = vsprintf (str, format, ap);
-    va_end (ap);
-    return i;
+  va_list ap;
+  va_start (ap, format);
+  int i = vsprintf (str, format, ap);
+  va_end (ap);
+  return i;
 }
 #endif
index a8f661904890af4daa967368a604fc8565f96c2f..23ab488cf3d776e80496dbf9351abd1e61dd5850 100644 (file)
@@ -221,7 +221,7 @@ String_convert::double_str (double f, char const* fmt)
 }
 
 /**
-  Make a string from a single character.
+Make a string from a single character.
 
   @param
   #n# is a repetition count, default value is 1
@@ -261,3 +261,41 @@ String_convert::pointer_str (void const *l)
   snprintf (buffer, STRING_BUFFER_LEN, "%p", l);     // assume radix 10
   return String (buffer);
 }
+
+/**
+  Convert a double to a string.
+
+  @param
+  #n# is the number of nonzero digits
+ */
+String
+String_convert::precision_str (double x, int n)
+{
+  String format = "%." + String (0 >? n - 1) + "e";
+  String str = double_str (abs (x), format.ch_C ());
+
+  int exp = str.right_str (3).value_i ();
+  str = str.left_str (str.len () - 4);
+
+  while (str[str.len () - 1] == '0')
+    str = str.left_str (str.len () - 1);
+  if (str[str.len () - 1] == '.')
+    str = str.left_str (str.len () - 1);
+
+  if (exp == 0)
+    return (sign (x) > 0 ? str : "-" + str);
+
+  str = str.left_str (1) + str.cut (2, INT_MAX);
+  int dot = 1 + exp;
+  if (dot <= 0)
+    str = "0." + String ('0', -dot) + str;
+  else if (dot >= str.len ())
+    str += String ('0', dot - str.len ());
+  else if (( dot > 0) && (dot < str.len ()))
+    str = str.left_str (dot) + '.' + str.cut (dot, INT_MAX);
+  else
+    assert (0);
+
+  return (sign (x) > 0 ? str : "-" + str);
+}
+
index 2076a2a19b52886b71ccb95d57bada8b4dadf8aa..504ba9811be61876f4e24226512138f2c83ad28a 100644 (file)
@@ -170,7 +170,7 @@ String::index_last_i (char const c) const
     return -1;
 
   char const* me = strh_.ch_C();
-  char const* p = memrchr (me, length_i(), c);
+  char const* p = memrchr ((Byte*)me, length_i(), c);
   if (p)
     return p - me;
   return -1;
@@ -216,7 +216,7 @@ String::index_i (char c) const
 }
 
 /**
-  find the substring.
+  find a substring.
 
   @return
 1  index of leftmost occurrence of #searchfor#
@@ -225,8 +225,9 @@ int
 String::index_i (String searchfor) const
 {
   char const* me = strh_.ch_C();
-  char const* p = (char const *) memmem (
-                                        me, length_i(), searchfor.ch_C(), searchfor.length_i ());
+
+  char const* p =     (char const *) 
+    memmem (me, length_i(), searchfor.ch_C(), searchfor.length_i ());
   
   if (p)
     return p - me;
@@ -369,4 +370,3 @@ String::value_f() const
   return String_convert::dec2_f (*this);
 }
 
-
index d1db31b1606df025f6eed01048ebc47ec19d4082..f8332672f01c481e0c72ea99fd88b1d822a3c32f 100644 (file)
@@ -1,19 +1,14 @@
 /*
   stringutil.cc -- generate non-inline members. 
 
+  This should be in a separate file, because one can include the .icc
+  only once.
+
   source file of the LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-*/
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl> */
 
 #ifdef STRING_DEBUG 
-#include <sys/types.h>
-#include <memory.h>
-void* 
-mymemmove (void* dest, void const* src, size_t n)
-{
-       return memcpy (dest, src, n); // wohltempererit: 69006
-}
 #define memmove mymemmove
 #endif
 
@@ -29,5 +24,17 @@ mymemmove (void* dest, void const* src, size_t n)
 
 #include "string-handle.hh"
 #include "string-data.hh"
+#include "string.hh"
 #include "string-data.icc"
 #include "string-handle.icc"
+#include "string.icc"
+
+#ifdef STRING_DEBUG
+#include <sys/types.h>
+#include <memory.h>
+void* 
+mymemmove (void* dest, void const* src, size_t n)
+{
+       return memcpy (dest, src, n); 
+}
+#endif
index 207bcd10ce470ee7e9d8d8c3c82315dccc8e6628..eccb972ad33aaf45c55bff1d9708b65bce6ce887 100644 (file)
@@ -36,7 +36,7 @@ EXTRA_DISTFILES = result
 #
 
 MODULE_LIBDEPS=check-flower-deps
-MODULE_LIBES = -lflower
+MODULE_LIBES = -lflower 
 #
 
 
index 85c4cbce27397d97e13705fbe209eb0166d31fc3..5d2e6db18fd7d4abe572b3cde7c46b22ead6c422 100644 (file)
@@ -5,16 +5,16 @@ Array< fptr > *test_arr_p;
 
 void reg_test (fptr f)
 {
-    if (!test_arr_p)
-       test_arr_p = new Array<fptr>;
-    test_arr_p->push(f);
+  if (!test_arr_p)
+    test_arr_p = new Array<fptr>;
+  test_arr_p->push(f);
 }
 
 int
 main()
 {
-    if (test_arr_p) {
-       for (int i=0; i < test_arr_p->size(); i++)
-           (*test_arr_p)[i] ();
-    }
+  if (test_arr_p) {
+    for (int i=0; i < test_arr_p->size(); i++)
+      (*test_arr_p)[i] ();
+  }
 }
index 8fdc7d794ebe3af24a0095e89452aac5524c8daa..1ad7af49cebbfdb99ee03ba07f19ca260df2aa3c 100644 (file)
 void
 matrix()
 {
-    int N=10;
-    Matrix m(N,N), q(N,N);
-    Vector v(N);
+  int N=10;
+  Matrix m(N,N), q(N,N);
+  Vector v(N);
 
-    for (int i=0; i < N; i++) {
-       v(i) =i;
-       for (int j=0; j < N; j++) {
-           m(i,j) = i+j;
-           q(i,j) = (abs(i-j) > 3) ?0 :i-j;
-       }
+  for (int i=0; i < N; i++) {
+    v(i) =i;
+    for (int j=0; j < N; j++) {
+      m(i,j) = i+j;
+      q(i,j) = (abs(i-j) > 3) ?0 :i-j;
     }
+  }
 
-    cout << "v: " << String(v);
-    cout << "m: " <<  String(m );
-    cout << "q: " <<  String(q);
-    cout << "m*q; " <<  String(m*q);
-    cout << "m*m: " <<  String(m*m);
-    m.OK();
-    cout << "m: " <<  String(m);
-    cout << "q.band " << q.band_i() << endl; 
-    q.try_set_band();
-    cout << "q(B): " << q;
-    q.OK();
-    Matrix sum(q+q);
-    cout << "q + q " << sum;
-    q.OK();
-    cout << "q*q: " << q*q;
-    q.OK();
+  cout << "v: " << String(v);
+  cout << "m: " <<  String(m );
+  cout << "q: " <<  String(q);
+  cout << "m*q; " <<  String(m*q);
+  cout << "m*m: " <<  String(m*m);
+  m.OK();
+  cout << "m: " <<  String(m);
+  cout << "q.band " << q.band_i() << endl; 
+  q.try_set_band();
+  cout << "q(B): " << q;
+  q.OK();
+  Matrix sum(q+q);
+  cout << "q + q " << sum;
+  q.OK();
+  cout << "q*q: " << q*q;
+  q.OK();
 
-    Matrix hilbert(N,N), h2(hilbert);
-    for (int i=0; i < N; i++) {
-       for (int j=0; j < N; j++) {
-           hilbert(i,j) = 1/Real(i+j+1);
-            h2 (i,j) = (abs(i-j) > 3) ?0 : hilbert(i,j);
-       }
+  Matrix hilbert(N,N), h2(hilbert);
+  for (int i=0; i < N; i++) {
+    for (int j=0; j < N; j++) {
+      hilbert(i,j) = 1/Real(i+j+1);
+      h2 (i,j) = (abs(i-j) > 3) ?0 : hilbert(i,j);
     }
-    h2.try_set_band();
-    Choleski_decomposition ch(h2);
-    cout << "red Hilbert  " <<  h2;
-    cout << "choleski " << ch.L;
-    Matrix T =ch.L.transposed();
-    cout << "L^T " <<  T;
-    cout << "L * L^T" << ch.L * T;
-    cout << "H2^{-1} * H2" << h2 * ch.inverse();
+  }
+  h2.try_set_band();
+  Choleski_decomposition ch(h2);
+  cout << "red Hilbert  " <<  h2;
+  cout << "choleski " << ch.L;
+  Matrix T =ch.L.transposed();
+  cout << "L^T " <<  T;
+  cout << "L * L^T" << ch.L * T;
+  cout << "H2^{-1} * H2" << h2 * ch.inverse();
 }
 
 ADD_TEST(matrix);
index 0e086ab0ef6117534d1dfc739f7fe89a19bdbf2e..66838d41802372f8955919195b08ea5cdb48c424 100644 (file)
@@ -4,23 +4,23 @@
 
 int compare(int i, int j)
 {
-    return i-j;
+  return i-j;
 }
 
 void
 pqtest()
 {
-    PQueue<int> pq;
+  PQueue<int> pq;
 
-    for (int i=0; i < 10; i++) {
-       int r = rand()/10000;
-       pq.insert(r);
-       cout << "adding: " << r<< endl;
-    }
-    while (pq.size()) {
-       cout << "getting : "<< flush;
-       cout << pq.get() << "\n";
-    }
+  for (int i=0; i < 10; i++) {
+    int r = rand()/10000;
+    pq.insert(r);
+    cout << "adding: " << r<< endl;
+  }
+  while (pq.size()) {
+    cout << "getting : "<< flush;
+    cout << pq.get() << "\n";
+  }
 }
 
 ADD_TEST(pqtest);
index 163b3bbb9c8632167f7098a288ab52324a32c955..79ec1e443a7f5a7c9fcb6540858093b50e679ce6 100644 (file)
 void
 ctors()
 {
-    cout << "constructors"<<endl;
-
+  cout << "constructors"<<endl;
+  {
     String str( "hai" );
-    String def;
-    String fromi(10);
-    String fromc('c');
-    String fromf(1.32e-2, "%g");
-
     cout << str << endl;
-    cout << def << endl;
+  }
+  {
+    String fromi(10);
     cout << fromi<< endl;
+  }
+  {String fromf(1.32e-2, "%g");
+  cout << fromf<< endl;
+  }
+  {
+    String def;
+    cout << def << endl;
+  }
+  {
+    String fromc('c');
     cout << fromc<< endl;       
-    cout << fromf<< endl;
+  }
 }
-
 void
 cmp()
 {
-    Array<String> a;
-    a.push("abcd");
-    a.push("zxy");
-    a.push("abc");
-    a.push("");
-    a.sort(String::compare_i);
-    cout << "compares: "<<endl;
-    for (int i=0; i < a.size(); i++)
-       cout << a[i] << endl;
+  Array<String> a;
+  a.push("abcd");
+  a.push("zxy");
+  a.push("abc");
+  a.push("");
+  a.sort(String::compare_i);
+  cout << "compares: "<<endl;
+  for (int i=0; i < a.size(); i++)
+    cout << a[i] << endl;
 }
 
 
 void
 searching()
 {
-    String hay = "foobarbazblub";
-
-    char c =   'b';
-    String cstr =c;
-    String set = "bar";
-    cout << "hay = \"" << hay << "\" len="<< hay.length_i()<<endl;
-    cout << "index_i('"<< c<<"') " << c << "= " << hay.index_i(c) <<endl;
-    cout << "last_index_i('"<< c<<"') " << c << "= " << hay.index_last_i(c) <<endl;    
-//    cout << "last index of cstr " << c << ": " << hay.index_last_i(cstr) <<endl;    
-//    cout << "index_last_i(\""<<set<<"\"): " << hay.index_last_i(set) <<endl;
-    cout << "index_i(\""<<set<<"\"): " << hay.index_i(set) <<endl;    
-    cout << "index_any(\"" << set << "\"): " << cstr << ": " << hay.index_any_i(cstr) <<endl;
+  String hay = "foobarbazblub";
+
+  char c =   'b';
+  String cstr =c;
+  String set = "bar";
+  cout << "hay = \"" << hay << "\" len="<< hay.length_i()<<endl;
+  cout << "index_i('"<< c<<"') " << c << "= " << hay.index_i(c) <<endl;
+  cout << "last_index_i('"<< c<<"') " << c << "= " << hay.index_last_i(c) <<endl;    
+  //    cout << "last index of cstr " << c << ": " << hay.index_last_i(cstr) <<endl;    
+  //    cout << "index_last_i(\""<<set<<"\"): " << hay.index_last_i(set) <<endl;
+  cout << "index_i(\""<<set<<"\"): " << hay.index_i(set) <<endl;    
+  cout << "index_any(\"" << set << "\"): " << cstr << ": " << hay.index_any_i(cstr) <<endl;
 
     
     
@@ -64,66 +70,66 @@ searching()
 void
 kutenpeer()
 {
-    String str( "hai" );
-    for (int i=-1; i < str.length_i()+2; i++) {
-       cout<<" left_str(" << i<<"): " << str.left_str( i ) << endl;
-       cout<<" right_str( "<<i<<"): " << str.right_str( i ) << endl;
-    }
-    str = "blonde haren";
-    cout << str<<endl;
-    cout << "mid(2,6)="<<str.mid_str(2,6)<<endl;
-    cout << "nomid(2,6)="<<str.nomid_str(2,6)<<endl;
+  String str( "hai" );
+  for (int i=-1; i < str.length_i()+2; i++) {
+    cout<<" left_str(" << i<<"): " << str.left_str( i ) << endl;
+    cout<<" right_str( "<<i<<"): " << str.right_str( i ) << endl;
+  }
+  str = "blonde haren";
+  cout << str<<endl;
+  cout << "mid(2,6)="<<str.cut(2,6)<<endl;
+  cout << "nomid(2,6)="<<str.nomid_str(2,6)<<endl;
 }
 
 bool
 test_empty_b( String str )
 {
-    cout << "`" << str << "' is ";
+  cout << "`" << str << "' is ";
 
-    if ( str == String( "" ) ) {
-        cout << "empty" << endl;
-       return true;
-    }
+  if ( str == String( "" ) ) {
+    cout << "empty" << endl;
+    return true;
+  }
 
-    cout << "not empty" << endl;
-    return false;
+  cout << "not empty" << endl;
+  return false;
 }
 
 void
 stringtest()
 {
-    ctors();
-    cmp();
-    searching();
-    kutenpeer();
-    String str( "hai" );
-    cout <<  str << endl;
-    cout << "left" << endl;
-    str += " daar";
-    cout << str << endl;
-
-//    str = String( "Hallo" ) + " daaR" + '!'; // no go on doze-s gcc2.7.2?
-    str = String( "Hallo" ) + " daaR" + "!";
-    cout << str << endl;
-
-    cout << "up: " << str.upper_str() << " down: " << str.lower_str()<<endl;
+  ctors();
+  cmp();
+  searching();
+  kutenpeer();
+  String str( "hai" );
+  cout <<  str << endl;
+  cout << "left" << endl;
+  str += " daar";
+  cout << str << endl;
+
+  //    str = String( "Hallo" ) + " daaR" + '!'; // no go on doze-s gcc2.7.2?
+  str = String( "Hallo" ) + " daaR" + "!";
+  cout << str << endl;
+
+  cout << "up: " << str.upper_str() << " down: " << str.lower_str()<<endl;
     
-    if ( test_empty_b( str ) )
-       cout << "failed";
+  if ( test_empty_b( str ) )
+    cout << "failed";
 
-    String fn = "";
-    if ( !test_empty_b( fn ) )
-       cout << "failed";
+  String fn = "";
+  if ( !test_empty_b( fn ) )
+    cout << "failed";
 
     
-    fn = "";
-    fn += "";
-    delete fn.copy_byte_p();
-    delete str.copy_byte_p();
-
-    cout << String_convert::bin2hex_str( String( (char)0xff ) ) << endl;
-    cout << "-1:" << String_convert::i2hex_str( -1, 2, '0' );
-    cout << endl;
+  fn = "";
+  fn += "";
+  delete fn.copy_byte_p();
+  delete str.copy_byte_p();
+
+  cout << String_convert::bin2hex_str( String( (char)0xff ) ) << endl;
+  cout << "-1:" << String_convert::i2hex_str( -1, 2, '0' );
+  cout << endl;
 
 }
 
diff --git a/init/feta11.ly b/init/feta11.ly
new file mode 100644 (file)
index 0000000..0ecd6c7
--- /dev/null
@@ -0,0 +1,79 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta11.log
+% name=\symboltables {
+    "rests"     = \table {
+        "0"    "\\wholerest"   -0.00\pt        4.13\pt -1.72\pt        0.00\pt 
+        "1"    "\\halfrest"    -0.00\pt        4.13\pt -0.00\pt        1.72\pt 
+        "0o"   "\\outsidewholerest"    -1.72\pt        5.84\pt -1.72\pt        0.28\pt 
+        "1o"   "\\outsidehalfrest"     -1.72\pt        5.84\pt -0.28\pt        1.72\pt 
+        "2"    "\\quartrest"   -0.00\pt        2.97\pt 2.06\pt 9.90\pt 
+        "3"    "\\eighthrest"  -0.00\pt        3.67\pt 2.75\pt 7.81\pt 
+        "4"    "\\sixteenthrest"       -0.00\pt        4.27\pt -0.00\pt        7.81\pt 
+        "5"    "\\thirtysecondrest"    -0.00\pt        4.81\pt -0.00\pt        10.56\pt        
+        "6"    "\\sixtyfourthrest"     -0.00\pt        5.16\pt -0.00\pt        13.31\pt        
+        "7"    "\\hundredtwentyeighthrest"     -0.00\pt        5.75\pt -0.00\pt        16.06\pt        
+        }
+    "accidentals"       = \table {
+        "1"    "\\sharp"       -0.00\pt        3.03\pt -4.13\pt        4.13\pt 
+        "0"    "\\natural"     -0.00\pt        1.83\pt -4.13\pt        4.13\pt 
+        "-1"   "\\flat"        -0.33\pt        2.20\pt -1.38\pt        5.50\pt 
+        "-2"   "\\flatflat"    -0.33\pt        3.99\pt -1.38\pt        5.50\pt 
+        "2"    "\\sharpsharp"  -0.00\pt        2.75\pt -1.38\pt        1.38\pt 
+        }
+    "dots"      = \table {
+        "dot"  "\\dot" -0.00\pt        1.24\pt -0.62\pt        0.62\pt 
+        "repeatcolon"  "\\repeatcolon" -0.00\pt        1.24\pt -1.38\pt        1.38\pt 
+        }
+    "balls"     = \table {
+        "-1"   "\\brevisball"  -0.00\pt        5.50\pt -1.51\pt        1.51\pt 
+        "-1l"  "\\brevisledger"        -1.38\pt        6.88\pt -0.28\pt        0.28\pt 
+        "-2"   "\\longaball"   -0.00\pt        5.50\pt -1.51\pt        1.51\pt 
+        "-2l"  "\\longaledger" -1.38\pt        6.88\pt -0.28\pt        0.28\pt 
+        "0"    "\\wholeball"   -0.00\pt        5.45\pt -1.51\pt        1.51\pt 
+        "0l"   "\\wholeledger" -1.36\pt        6.81\pt -0.28\pt        0.28\pt 
+        "1"    "\\halfball"    -0.00\pt        3.79\pt -1.51\pt        1.51\pt 
+        "1l"   "\\halfledger"  -0.95\pt        4.74\pt -0.28\pt        0.28\pt 
+        "2"    "\\quartball"   -0.00\pt        3.63\pt -1.51\pt        1.51\pt 
+        "2l"   "\\quartledger" -0.91\pt        4.54\pt -0.28\pt        0.28\pt 
+        }
+    "scripts"   = \table {
+        "ufermata"     "\\ufermata"    -3.64\pt        3.64\pt -0.21\pt        3.99\pt 
+        "dfermata"     "\\dfermata"    -3.64\pt        3.64\pt -3.99\pt        0.21\pt 
+        "sforzato"     "\\sforzatoaccent"      -2.47\pt        2.47\pt -1.38\pt        1.38\pt 
+        "staccato"     "\\staccato"    -0.41\pt        0.41\pt -0.41\pt        0.41\pt 
+        "ustaccatissimo"       "\\ustaccatissimo"      -0.55\pt        0.55\pt -0.20\pt        2.75\pt 
+        "dstaccatissimo"       "\\dstaccatissimo"      -0.55\pt        0.55\pt -2.75\pt        0.20\pt 
+        "tenuto"       "\\tenuto"      -2.47\pt        2.47\pt -0.17\pt        0.17\pt 
+        "umarcato"     "\\umarcato"    -1.38\pt        1.38\pt -0.00\pt        3.03\pt 
+        "dmarcato"     "\\dmarcato"    -1.38\pt        1.38\pt -3.03\pt        0.00\pt 
+        "open" "\\ouvert"      -1.10\pt        1.10\pt -1.38\pt        1.38\pt 
+        "stopped"      "\\plusstop"    -1.51\pt        1.51\pt -1.51\pt        1.51\pt 
+        "upbow"        "\\upbow"       -1.79\pt        1.79\pt -0.00\pt        5.72\pt 
+        "downbow"      "\\downbow"     -2.06\pt        2.06\pt -0.00\pt        3.67\pt 
+        "turn" "\\turn"        -3.01\pt        3.01\pt -1.46\pt        1.46\pt 
+        "trill"        "\\trill"       -2.75\pt        2.75\pt -0.00\pt        6.19\pt 
+        "pedalheel"    "\\pedalheel"   -1.38\pt        1.38\pt -1.38\pt        1.83\pt 
+        "pedaltoe"     "\\pedaltoe"    -1.38\pt        1.38\pt -0.00\pt        4.13\pt 
+        "flageolet"    "\\flageolet"   -1.47\pt        1.47\pt -1.47\pt        1.47\pt 
+        }
+    "flags"     = \table {
+        "u3"   "\\eighthflag"  -0.14\pt        3.39\pt -8.43\pt        0.14\pt 
+        "u4"   "\\sixteenthflag"       -0.14\pt        3.39\pt -9.80\pt        0.14\pt 
+        "u5"   "\\thirtysecondflag"    -0.14\pt        3.39\pt -11.87\pt       0.14\pt 
+        "u6"   "\\sixtyfourthflag"     -0.14\pt        3.39\pt -14.62\pt       0.14\pt 
+        "d3"   "\\deighthflag" -0.14\pt        3.76\pt -0.14\pt        8.02\pt 
+        "d4"   "\\dsixteenthflag"      -0.14\pt        3.76\pt -0.14\pt        8.43\pt 
+        "d5"   "\\dthirtysecondflag"   -0.14\pt        3.76\pt -0.14\pt        10.77\pt        
+        "d6"   "\\dsixtyfourthflag"    -0.14\pt        3.76\pt -0.14\pt        12.14\pt        
+        }
+    "clefs"     = \table {
+        "alto" "\\altoclef"    -2.75\pt        10.24\pt        -5.50\pt        5.50\pt 
+        "alto_change"  "\\caltoclef"   -2.20\pt        8.19\pt -4.40\pt        4.40\pt 
+        "bass" "\\bassclef"    -1.38\pt        9.90\pt -6.88\pt        2.75\pt 
+        "bass_change"  "\\cbassclef"   -1.10\pt        7.92\pt -5.50\pt        2.20\pt 
+        "violin"       "\\violinclef"  -2.40\pt        10.28\pt        -8.25\pt        13.75\pt        
+        "violin_change"        "\\cviolinclef" -2.08\pt        8.06\pt -6.60\pt        11.00\pt        
+        }
+    %  } % $name
diff --git a/init/feta13.ly b/init/feta13.ly
new file mode 100644 (file)
index 0000000..2cec681
--- /dev/null
@@ -0,0 +1,79 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta13.log
+% name=\symboltables {
+    "rests"     = \table {
+        "0"    "\\wholerest"   -0.00\pt        4.88\pt -2.03\pt        0.00\pt 
+        "1"    "\\halfrest"    -0.00\pt        4.88\pt -0.00\pt        2.03\pt 
+        "0o"   "\\outsidewholerest"    -2.03\pt        6.91\pt -2.03\pt        0.33\pt 
+        "1o"   "\\outsidehalfrest"     -2.03\pt        6.91\pt -0.33\pt        2.03\pt 
+        "2"    "\\quartrest"   -0.00\pt        3.51\pt 2.44\pt 11.70\pt        
+        "3"    "\\eighthrest"  -0.00\pt        4.33\pt 3.25\pt 9.24\pt 
+        "4"    "\\sixteenthrest"       -0.00\pt        5.04\pt -0.00\pt        9.24\pt 
+        "5"    "\\thirtysecondrest"    -0.00\pt        5.69\pt -0.00\pt        12.49\pt        
+        "6"    "\\sixtyfourthrest"     -0.00\pt        6.10\pt -0.00\pt        15.74\pt        
+        "7"    "\\hundredtwentyeighthrest"     -0.00\pt        6.79\pt -0.00\pt        18.99\pt        
+        }
+    "accidentals"       = \table {
+        "1"    "\\sharp"       -0.00\pt        3.58\pt -4.88\pt        4.88\pt 
+        "0"    "\\natural"     -0.00\pt        2.17\pt -4.88\pt        4.88\pt 
+        "-1"   "\\flat"        -0.39\pt        2.60\pt -1.63\pt        6.50\pt 
+        "-2"   "\\flatflat"    -0.39\pt        4.71\pt -1.63\pt        6.50\pt 
+        "2"    "\\sharpsharp"  -0.00\pt        3.25\pt -1.63\pt        1.63\pt 
+        }
+    "dots"      = \table {
+        "dot"  "\\dot" -0.00\pt        1.46\pt -0.73\pt        0.73\pt 
+        "repeatcolon"  "\\repeatcolon" -0.00\pt        1.46\pt -1.63\pt        1.63\pt 
+        }
+    "balls"     = \table {
+        "-1"   "\\brevisball"  -0.00\pt        6.50\pt -1.79\pt        1.79\pt 
+        "-1l"  "\\brevisledger"        -1.63\pt        8.13\pt -0.33\pt        0.33\pt 
+        "-2"   "\\longaball"   -0.00\pt        6.50\pt -1.79\pt        1.79\pt 
+        "-2l"  "\\longaledger" -1.63\pt        8.13\pt -0.33\pt        0.33\pt 
+        "0"    "\\wholeball"   -0.00\pt        6.44\pt -1.79\pt        1.79\pt 
+        "0l"   "\\wholeledger" -1.61\pt        8.04\pt -0.33\pt        0.33\pt 
+        "1"    "\\halfball"    -0.00\pt        4.48\pt -1.79\pt        1.79\pt 
+        "1l"   "\\halfledger"  -1.12\pt        5.60\pt -0.33\pt        0.33\pt 
+        "2"    "\\quartball"   -0.00\pt        4.29\pt -1.79\pt        1.79\pt 
+        "2l"   "\\quartledger" -1.07\pt        5.37\pt -0.33\pt        0.33\pt 
+        }
+    "scripts"   = \table {
+        "ufermata"     "\\ufermata"    -4.31\pt        4.31\pt -0.24\pt        4.71\pt 
+        "dfermata"     "\\dfermata"    -4.31\pt        4.31\pt -4.71\pt        0.24\pt 
+        "sforzato"     "\\sforzatoaccent"      -2.92\pt        2.92\pt -1.63\pt        1.63\pt 
+        "staccato"     "\\staccato"    -0.49\pt        0.49\pt -0.49\pt        0.49\pt 
+        "ustaccatissimo"       "\\ustaccatissimo"      -0.65\pt        0.65\pt -0.20\pt        3.25\pt 
+        "dstaccatissimo"       "\\dstaccatissimo"      -0.65\pt        0.65\pt -3.25\pt        0.20\pt 
+        "tenuto"       "\\tenuto"      -2.92\pt        2.92\pt -0.20\pt        0.20\pt 
+        "umarcato"     "\\umarcato"    -1.63\pt        1.63\pt -0.00\pt        3.58\pt 
+        "dmarcato"     "\\dmarcato"    -1.63\pt        1.63\pt -3.58\pt        0.00\pt 
+        "open" "\\ouvert"      -1.30\pt        1.30\pt -1.63\pt        1.63\pt 
+        "stopped"      "\\plusstop"    -1.79\pt        1.79\pt -1.79\pt        1.79\pt 
+        "upbow"        "\\upbow"       -2.11\pt        2.11\pt -0.00\pt        6.76\pt 
+        "downbow"      "\\downbow"     -2.44\pt        2.44\pt -0.00\pt        4.33\pt 
+        "turn" "\\turn"        -3.55\pt        3.55\pt -1.72\pt        1.72\pt 
+        "trill"        "\\trill"       -3.25\pt        3.25\pt -0.00\pt        7.31\pt 
+        "pedalheel"    "\\pedalheel"   -1.63\pt        1.63\pt -1.63\pt        2.17\pt 
+        "pedaltoe"     "\\pedaltoe"    -1.63\pt        1.63\pt -0.00\pt        4.88\pt 
+        "flageolet"    "\\flageolet"   -1.73\pt        1.73\pt -1.73\pt        1.73\pt 
+        }
+    "flags"     = \table {
+        "u3"   "\\eighthflag"  -0.16\pt        4.01\pt -9.96\pt        0.16\pt 
+        "u4"   "\\sixteenthflag"       -0.16\pt        4.01\pt -11.59\pt       0.16\pt 
+        "u5"   "\\thirtysecondflag"    -0.16\pt        4.01\pt -14.02\pt       0.16\pt 
+        "u6"   "\\sixtyfourthflag"     -0.16\pt        4.01\pt -17.27\pt       0.16\pt 
+        "d3"   "\\deighthflag" -0.16\pt        4.44\pt -0.16\pt        9.47\pt 
+        "d4"   "\\dsixteenthflag"      -0.16\pt        4.44\pt -0.16\pt        9.96\pt 
+        "d5"   "\\dthirtysecondflag"   -0.16\pt        4.44\pt -0.16\pt        12.72\pt        
+        "d6"   "\\dsixtyfourthflag"    -0.16\pt        4.44\pt -0.16\pt        14.35\pt        
+        }
+    "clefs"     = \table {
+        "alto" "\\altoclef"    -3.25\pt        12.10\pt        -6.50\pt        6.50\pt 
+        "alto_change"  "\\caltoclef"   -2.60\pt        9.68\pt -5.20\pt        5.20\pt 
+        "bass" "\\bassclef"    -1.63\pt        11.70\pt        -8.13\pt        3.25\pt 
+        "bass_change"  "\\cbassclef"   -1.30\pt        9.36\pt -6.50\pt        2.60\pt 
+        "violin"       "\\violinclef"  -2.83\pt        12.15\pt        -9.75\pt        16.25\pt        
+        "violin_change"        "\\cviolinclef" -2.46\pt        9.52\pt -7.80\pt        13.00\pt        
+        }
+    %  } % $name
index 8cee634ab2b4b9a5902315033c0efb60c86a4dd9..520fde4b340c8c5c247773605f6aa428c7e0b8e1 100644 (file)
@@ -1,5 +1,5 @@
-% Creator: mf-to-table.py version 0.4
-% Automatically generated on Mon Jan  5 15:23:51 1998
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
 % Do not edit
 % input from out/feta16.log
 % name=\symboltables {
diff --git a/init/feta19.ly b/init/feta19.ly
new file mode 100644 (file)
index 0000000..1b8d266
--- /dev/null
@@ -0,0 +1,79 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta19.log
+% name=\symboltables {
+    "rests"     = \table {
+        "0"    "\\wholerest"   -0.00\pt        7.13\pt -2.97\pt        0.00\pt 
+        "1"    "\\halfrest"    -0.00\pt        7.13\pt -0.00\pt        2.97\pt 
+        "0o"   "\\outsidewholerest"    -2.97\pt        10.09\pt        -2.97\pt        0.48\pt 
+        "1o"   "\\outsidehalfrest"     -2.97\pt        10.09\pt        -0.48\pt        2.97\pt 
+        "2"    "\\quartrest"   -0.00\pt        5.13\pt 3.56\pt 17.10\pt        
+        "3"    "\\eighthrest"  -0.00\pt        6.33\pt 4.75\pt 13.50\pt        
+        "4"    "\\sixteenthrest"       -0.00\pt        7.37\pt -0.00\pt        13.50\pt        
+        "5"    "\\thirtysecondrest"    -0.00\pt        8.32\pt -0.00\pt        18.25\pt        
+        "6"    "\\sixtyfourthrest"     -0.00\pt        8.92\pt -0.00\pt        23.00\pt        
+        "7"    "\\hundredtwentyeighthrest"     -0.00\pt        9.93\pt -0.00\pt        27.75\pt        
+        }
+    "accidentals"       = \table {
+        "1"    "\\sharp"       -0.00\pt        5.23\pt -7.13\pt        7.13\pt 
+        "0"    "\\natural"     -0.00\pt        3.17\pt -7.13\pt        7.13\pt 
+        "-1"   "\\flat"        -0.57\pt        3.80\pt -2.38\pt        9.50\pt 
+        "-2"   "\\flatflat"    -0.57\pt        6.89\pt -2.38\pt        9.50\pt 
+        "2"    "\\sharpsharp"  -0.00\pt        4.75\pt -2.38\pt        2.38\pt 
+        }
+    "dots"      = \table {
+        "dot"  "\\dot" -0.00\pt        2.14\pt -1.07\pt        1.07\pt 
+        "repeatcolon"  "\\repeatcolon" -0.00\pt        2.14\pt -2.38\pt        2.38\pt 
+        }
+    "balls"     = \table {
+        "-1"   "\\brevisball"  -0.00\pt        9.50\pt -2.61\pt        2.61\pt 
+        "-1l"  "\\brevisledger"        -2.38\pt        11.88\pt        -0.48\pt        0.48\pt 
+        "-2"   "\\longaball"   -0.00\pt        9.50\pt -2.61\pt        2.61\pt 
+        "-2l"  "\\longaledger" -2.38\pt        11.88\pt        -0.48\pt        0.48\pt 
+        "0"    "\\wholeball"   -0.00\pt        9.41\pt -2.61\pt        2.61\pt 
+        "0l"   "\\wholeledger" -2.35\pt        11.76\pt        -0.48\pt        0.48\pt 
+        "1"    "\\halfball"    -0.00\pt        6.54\pt -2.61\pt        2.61\pt 
+        "1l"   "\\halfledger"  -1.64\pt        8.18\pt -0.48\pt        0.48\pt 
+        "2"    "\\quartball"   -0.00\pt        6.27\pt -2.61\pt        2.61\pt 
+        "2l"   "\\quartledger" -1.57\pt        7.84\pt -0.48\pt        0.48\pt 
+        }
+    "scripts"   = \table {
+        "ufermata"     "\\ufermata"    -6.29\pt        6.29\pt -0.36\pt        6.89\pt 
+        "dfermata"     "\\dfermata"    -6.29\pt        6.29\pt -6.89\pt        0.36\pt 
+        "sforzato"     "\\sforzatoaccent"      -4.27\pt        4.27\pt -2.38\pt        2.38\pt 
+        "staccato"     "\\staccato"    -0.71\pt        0.71\pt -0.71\pt        0.71\pt 
+        "ustaccatissimo"       "\\ustaccatissimo"      -0.95\pt        0.95\pt -0.20\pt        4.75\pt 
+        "dstaccatissimo"       "\\dstaccatissimo"      -0.95\pt        0.95\pt -4.75\pt        0.20\pt 
+        "tenuto"       "\\tenuto"      -4.27\pt        4.27\pt -0.29\pt        0.29\pt 
+        "umarcato"     "\\umarcato"    -2.38\pt        2.38\pt -0.00\pt        5.23\pt 
+        "dmarcato"     "\\dmarcato"    -2.38\pt        2.38\pt -5.23\pt        0.00\pt 
+        "open" "\\ouvert"      -1.90\pt        1.90\pt -2.38\pt        2.38\pt 
+        "stopped"      "\\plusstop"    -2.61\pt        2.61\pt -2.61\pt        2.61\pt 
+        "upbow"        "\\upbow"       -3.09\pt        3.09\pt -0.00\pt        9.88\pt 
+        "downbow"      "\\downbow"     -3.56\pt        3.56\pt -0.00\pt        6.33\pt 
+        "turn" "\\turn"        -5.20\pt        5.20\pt -2.51\pt        2.51\pt 
+        "trill"        "\\trill"       -4.75\pt        4.75\pt -0.00\pt        10.69\pt        
+        "pedalheel"    "\\pedalheel"   -2.38\pt        2.38\pt -2.38\pt        3.17\pt 
+        "pedaltoe"     "\\pedaltoe"    -2.38\pt        2.38\pt -0.00\pt        7.13\pt 
+        "flageolet"    "\\flageolet"   -2.53\pt        2.53\pt -2.53\pt        2.53\pt 
+        }
+    "flags"     = \table {
+        "u3"   "\\eighthflag"  -0.24\pt        5.86\pt -14.56\pt       0.24\pt 
+        "u4"   "\\sixteenthflag"       -0.24\pt        5.86\pt -16.93\pt       0.24\pt 
+        "u5"   "\\thirtysecondflag"    -0.24\pt        5.86\pt -20.50\pt       0.24\pt 
+        "u6"   "\\sixtyfourthflag"     -0.24\pt        5.86\pt -25.25\pt       0.24\pt 
+        "d3"   "\\deighthflag" -0.24\pt        6.49\pt -0.24\pt        13.85\pt        
+        "d4"   "\\dsixteenthflag"      -0.24\pt        6.49\pt -0.24\pt        14.56\pt        
+        "d5"   "\\dthirtysecondflag"   -0.24\pt        6.49\pt -0.24\pt        18.60\pt        
+        "d6"   "\\dsixtyfourthflag"    -0.24\pt        6.49\pt -0.24\pt        20.97\pt        
+        }
+    "clefs"     = \table {
+        "alto" "\\altoclef"    -4.75\pt        17.68\pt        -9.50\pt        9.50\pt 
+        "alto_change"  "\\caltoclef"   -3.80\pt        14.14\pt        -7.60\pt        7.60\pt 
+        "bass" "\\bassclef"    -2.38\pt        17.10\pt        -11.88\pt       4.75\pt 
+        "bass_change"  "\\cbassclef"   -1.90\pt        13.68\pt        -9.50\pt        3.80\pt 
+        "violin"       "\\violinclef"  -4.14\pt        17.75\pt        -14.25\pt       23.75\pt        
+        "violin_change"        "\\cviolinclef" -3.60\pt        13.92\pt        -11.40\pt       19.00\pt        
+        }
+    %  } % $name
index af554f556aa3ebfc087a10ef29cd130e8cbb5660..dcf020e14576bd1c780127b938aa2f9876590c7f 100644 (file)
@@ -1,5 +1,5 @@
-% Creator: mf-to-table.py version 0.4
-% Automatically generated on Mon Jan  5 15:23:56 1998
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
 % Do not edit
 % input from out/feta20.log
 % name=\symboltables {
diff --git a/init/feta23.ly b/init/feta23.ly
new file mode 100644 (file)
index 0000000..bdebc4e
--- /dev/null
@@ -0,0 +1,79 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta23.log
+% name=\symboltables {
+    "rests"     = \table {
+        "0"    "\\wholerest"   -0.00\pt        8.44\pt -3.52\pt        0.00\pt 
+        "1"    "\\halfrest"    -0.00\pt        8.44\pt -0.00\pt        3.52\pt 
+        "0o"   "\\outsidewholerest"    -3.52\pt        11.95\pt        -3.52\pt        0.56\pt 
+        "1o"   "\\outsidehalfrest"     -3.52\pt        11.95\pt        -0.56\pt        3.52\pt 
+        "2"    "\\quartrest"   -0.00\pt        6.08\pt 4.22\pt 20.25\pt        
+        "3"    "\\eighthrest"  -0.00\pt        7.50\pt 5.63\pt 15.98\pt        
+        "4"    "\\sixteenthrest"       -0.00\pt        8.73\pt -0.00\pt        15.98\pt        
+        "5"    "\\thirtysecondrest"    -0.00\pt        9.85\pt -0.00\pt        21.61\pt        
+        "6"    "\\sixtyfourthrest"     -0.00\pt        10.56\pt        -0.00\pt        27.23\pt        
+        "7"    "\\hundredtwentyeighthrest"     -0.00\pt        11.75\pt        -0.00\pt        32.86\pt        
+        }
+    "accidentals"       = \table {
+        "1"    "\\sharp"       -0.00\pt        6.19\pt -8.44\pt        8.44\pt 
+        "0"    "\\natural"     -0.00\pt        3.75\pt -8.44\pt        8.44\pt 
+        "-1"   "\\flat"        -0.68\pt        4.50\pt -2.81\pt        11.25\pt        
+        "-2"   "\\flatflat"    -0.68\pt        8.16\pt -2.81\pt        11.25\pt        
+        "2"    "\\sharpsharp"  -0.00\pt        5.63\pt -2.81\pt        2.81\pt 
+        }
+    "dots"      = \table {
+        "dot"  "\\dot" -0.00\pt        2.53\pt -1.27\pt        1.27\pt 
+        "repeatcolon"  "\\repeatcolon" -0.00\pt        2.53\pt -2.81\pt        2.81\pt 
+        }
+    "balls"     = \table {
+        "-1"   "\\brevisball"  -0.00\pt        11.25\pt        -3.09\pt        3.09\pt 
+        "-1l"  "\\brevisledger"        -2.81\pt        14.06\pt        -0.56\pt        0.56\pt 
+        "-2"   "\\longaball"   -0.00\pt        11.25\pt        -3.09\pt        3.09\pt 
+        "-2l"  "\\longaledger" -2.81\pt        14.06\pt        -0.56\pt        0.56\pt 
+        "0"    "\\wholeball"   -0.00\pt        11.14\pt        -3.09\pt        3.09\pt 
+        "0l"   "\\wholeledger" -2.78\pt        13.92\pt        -0.56\pt        0.56\pt 
+        "1"    "\\halfball"    -0.00\pt        7.75\pt -3.09\pt        3.09\pt 
+        "1l"   "\\halfledger"  -1.94\pt        9.69\pt -0.56\pt        0.56\pt 
+        "2"    "\\quartball"   -0.00\pt        7.43\pt -3.09\pt        3.09\pt 
+        "2l"   "\\quartledger" -1.86\pt        9.29\pt -0.56\pt        0.56\pt 
+        }
+    "scripts"   = \table {
+        "ufermata"     "\\ufermata"    -7.45\pt        7.45\pt -0.42\pt        8.16\pt 
+        "dfermata"     "\\dfermata"    -7.45\pt        7.45\pt -8.16\pt        0.42\pt 
+        "sforzato"     "\\sforzatoaccent"      -5.06\pt        5.06\pt -2.81\pt        2.81\pt 
+        "staccato"     "\\staccato"    -0.84\pt        0.84\pt -0.84\pt        0.84\pt 
+        "ustaccatissimo"       "\\ustaccatissimo"      -1.13\pt        1.13\pt -0.20\pt        5.63\pt 
+        "dstaccatissimo"       "\\dstaccatissimo"      -1.13\pt        1.13\pt -5.63\pt        0.20\pt 
+        "tenuto"       "\\tenuto"      -5.06\pt        5.06\pt -0.34\pt        0.34\pt 
+        "umarcato"     "\\umarcato"    -2.81\pt        2.81\pt -0.00\pt        6.19\pt 
+        "dmarcato"     "\\dmarcato"    -2.81\pt        2.81\pt -6.19\pt        0.00\pt 
+        "open" "\\ouvert"      -2.25\pt        2.25\pt -2.81\pt        2.81\pt 
+        "stopped"      "\\plusstop"    -3.09\pt        3.09\pt -3.09\pt        3.09\pt 
+        "upbow"        "\\upbow"       -3.66\pt        3.66\pt -0.00\pt        11.70\pt        
+        "downbow"      "\\downbow"     -4.22\pt        4.22\pt -0.00\pt        7.50\pt 
+        "turn" "\\turn"        -6.15\pt        6.15\pt -2.98\pt        2.98\pt 
+        "trill"        "\\trill"       -5.63\pt        5.63\pt -0.00\pt        12.66\pt        
+        "pedalheel"    "\\pedalheel"   -2.81\pt        2.81\pt -2.81\pt        3.75\pt 
+        "pedaltoe"     "\\pedaltoe"    -2.81\pt        2.81\pt -0.00\pt        8.44\pt 
+        "flageolet"    "\\flageolet"   -3.00\pt        3.00\pt -3.00\pt        3.00\pt 
+        }
+    "flags"     = \table {
+        "u3"   "\\eighthflag"  -0.28\pt        6.94\pt -17.24\pt       0.28\pt 
+        "u4"   "\\sixteenthflag"       -0.28\pt        6.94\pt -20.05\pt       0.28\pt 
+        "u5"   "\\thirtysecondflag"    -0.28\pt        6.94\pt -24.27\pt       0.28\pt 
+        "u6"   "\\sixtyfourthflag"     -0.28\pt        6.94\pt -29.90\pt       0.28\pt 
+        "d3"   "\\deighthflag" -0.28\pt        7.68\pt -0.28\pt        16.40\pt        
+        "d4"   "\\dsixteenthflag"      -0.28\pt        7.68\pt -0.28\pt        17.24\pt        
+        "d5"   "\\dthirtysecondflag"   -0.28\pt        7.68\pt -0.28\pt        22.02\pt        
+        "d6"   "\\dsixtyfourthflag"    -0.28\pt        7.68\pt -0.28\pt        24.83\pt        
+        }
+    "clefs"     = \table {
+        "alto" "\\altoclef"    -5.63\pt        20.94\pt        -11.25\pt       11.25\pt        
+        "alto_change"  "\\caltoclef"   -4.50\pt        16.75\pt        -9.00\pt        9.00\pt 
+        "bass" "\\bassclef"    -2.81\pt        20.25\pt        -14.06\pt       5.63\pt 
+        "bass_change"  "\\cbassclef"   -2.25\pt        16.20\pt        -11.25\pt       4.50\pt 
+        "violin"       "\\violinclef"  -4.90\pt        21.02\pt        -16.88\pt       28.12\pt        
+        "violin_change"        "\\cviolinclef" -4.26\pt        16.48\pt        -13.50\pt       22.50\pt        
+        }
+    %  } % $name
diff --git a/init/feta26.ly b/init/feta26.ly
new file mode 100644 (file)
index 0000000..ac95129
--- /dev/null
@@ -0,0 +1,79 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta26.log
+% name=\symboltables {
+    "rests"     = \table {
+        "0"    "\\wholerest"   -0.00\pt        9.75\pt -4.06\pt        0.00\pt 
+        "1"    "\\halfrest"    -0.00\pt        9.75\pt -0.00\pt        4.06\pt 
+        "0o"   "\\outsidewholerest"    -4.06\pt        13.81\pt        -4.06\pt        0.65\pt 
+        "1o"   "\\outsidehalfrest"     -4.06\pt        13.81\pt        -0.65\pt        4.06\pt 
+        "2"    "\\quartrest"   -0.00\pt        7.02\pt 4.88\pt 23.40\pt        
+        "3"    "\\eighthrest"  -0.00\pt        8.67\pt 6.50\pt 18.47\pt        
+        "4"    "\\sixteenthrest"       -0.00\pt        10.08\pt        -0.00\pt        18.47\pt        
+        "5"    "\\thirtysecondrest"    -0.00\pt        11.38\pt        -0.00\pt        24.97\pt        
+        "6"    "\\sixtyfourthrest"     -0.00\pt        12.20\pt        -0.00\pt        31.47\pt        
+        "7"    "\\hundredtwentyeighthrest"     -0.00\pt        13.58\pt        -0.00\pt        37.97\pt        
+        }
+    "accidentals"       = \table {
+        "1"    "\\sharp"       -0.00\pt        7.15\pt -9.75\pt        9.75\pt 
+        "0"    "\\natural"     -0.00\pt        4.33\pt -9.75\pt        9.75\pt 
+        "-1"   "\\flat"        -0.78\pt        5.20\pt -3.25\pt        13.00\pt        
+        "-2"   "\\flatflat"    -0.78\pt        9.42\pt -3.25\pt        13.00\pt        
+        "2"    "\\sharpsharp"  -0.00\pt        6.50\pt -3.25\pt        3.25\pt 
+        }
+    "dots"      = \table {
+        "dot"  "\\dot" -0.00\pt        2.92\pt -1.46\pt        1.46\pt 
+        "repeatcolon"  "\\repeatcolon" -0.00\pt        2.92\pt -3.25\pt        3.25\pt 
+        }
+    "balls"     = \table {
+        "-1"   "\\brevisball"  -0.00\pt        13.00\pt        -3.58\pt        3.58\pt 
+        "-1l"  "\\brevisledger"        -3.25\pt        16.25\pt        -0.65\pt        0.65\pt 
+        "-2"   "\\longaball"   -0.00\pt        13.00\pt        -3.58\pt        3.58\pt 
+        "-2l"  "\\longaledger" -3.25\pt        16.25\pt        -0.65\pt        0.65\pt 
+        "0"    "\\wholeball"   -0.00\pt        12.87\pt        -3.58\pt        3.58\pt 
+        "0l"   "\\wholeledger" -3.22\pt        16.09\pt        -0.65\pt        0.65\pt 
+        "1"    "\\halfball"    -0.00\pt        8.95\pt -3.58\pt        3.58\pt 
+        "1l"   "\\halfledger"  -2.24\pt        11.19\pt        -0.65\pt        0.65\pt 
+        "2"    "\\quartball"   -0.00\pt        8.59\pt -3.58\pt        3.58\pt 
+        "2l"   "\\quartledger" -2.15\pt        10.73\pt        -0.65\pt        0.65\pt 
+        }
+    "scripts"   = \table {
+        "ufermata"     "\\ufermata"    -8.61\pt        8.61\pt -0.49\pt        9.43\pt 
+        "dfermata"     "\\dfermata"    -8.61\pt        8.61\pt -9.43\pt        0.49\pt 
+        "sforzato"     "\\sforzatoaccent"      -5.85\pt        5.85\pt -3.25\pt        3.25\pt 
+        "staccato"     "\\staccato"    -0.98\pt        0.98\pt -0.98\pt        0.98\pt 
+        "ustaccatissimo"       "\\ustaccatissimo"      -1.30\pt        1.30\pt -0.20\pt        6.50\pt 
+        "dstaccatissimo"       "\\dstaccatissimo"      -1.30\pt        1.30\pt -6.50\pt        0.20\pt 
+        "tenuto"       "\\tenuto"      -5.85\pt        5.85\pt -0.39\pt        0.39\pt 
+        "umarcato"     "\\umarcato"    -3.25\pt        3.25\pt -0.00\pt        7.15\pt 
+        "dmarcato"     "\\dmarcato"    -3.25\pt        3.25\pt -7.15\pt        0.00\pt 
+        "open" "\\ouvert"      -2.60\pt        2.60\pt -3.25\pt        3.25\pt 
+        "stopped"      "\\plusstop"    -3.58\pt        3.58\pt -3.58\pt        3.58\pt 
+        "upbow"        "\\upbow"       -4.23\pt        4.23\pt -0.00\pt        13.52\pt        
+        "downbow"      "\\downbow"     -4.88\pt        4.88\pt -0.00\pt        8.67\pt 
+        "turn" "\\turn"        -7.11\pt        7.11\pt -3.44\pt        3.44\pt 
+        "trill"        "\\trill"       -6.50\pt        6.50\pt -0.00\pt        14.62\pt        
+        "pedalheel"    "\\pedalheel"   -3.25\pt        3.25\pt -3.25\pt        4.33\pt 
+        "pedaltoe"     "\\pedaltoe"    -3.25\pt        3.25\pt -0.00\pt        9.75\pt 
+        "flageolet"    "\\flageolet"   -3.47\pt        3.47\pt -3.47\pt        3.47\pt 
+        }
+    "flags"     = \table {
+        "u3"   "\\eighthflag"  -0.33\pt        8.02\pt -19.92\pt       0.33\pt 
+        "u4"   "\\sixteenthflag"       -0.33\pt        8.02\pt -23.17\pt       0.33\pt 
+        "u5"   "\\thirtysecondflag"    -0.33\pt        8.02\pt -28.05\pt       0.33\pt 
+        "u6"   "\\sixtyfourthflag"     -0.33\pt        8.02\pt -34.55\pt       0.33\pt 
+        "d3"   "\\deighthflag" -0.33\pt        8.88\pt -0.33\pt        18.95\pt        
+        "d4"   "\\dsixteenthflag"      -0.33\pt        8.88\pt -0.33\pt        19.92\pt        
+        "d5"   "\\dthirtysecondflag"   -0.33\pt        8.88\pt -0.33\pt        25.45\pt        
+        "d6"   "\\dsixtyfourthflag"    -0.33\pt        8.88\pt -0.33\pt        28.70\pt        
+        }
+    "clefs"     = \table {
+        "alto" "\\altoclef"    -6.50\pt        24.19\pt        -13.00\pt       13.00\pt        
+        "alto_change"  "\\caltoclef"   -5.20\pt        19.36\pt        -10.40\pt       10.40\pt        
+        "bass" "\\bassclef"    -3.25\pt        23.40\pt        -16.25\pt       6.50\pt 
+        "bass_change"  "\\cbassclef"   -2.60\pt        18.72\pt        -13.00\pt       5.20\pt 
+        "violin"       "\\violinclef"  -5.66\pt        24.29\pt        -19.50\pt       32.50\pt        
+        "violin_change"        "\\cviolinclef" -4.92\pt        19.04\pt        -15.60\pt       26.00\pt        
+        }
+    %  } % $name
index b47910ac6984743041d96a2175248e2ac2d21aa1..8b19863c64e07d670e62f3eb3ee7aebc8a7308cf 100644 (file)
@@ -14,7 +14,6 @@ Gourlay = 1.0
 Wordwrap = 0.0
 
 \include "paper16.ly"
-\include "paper20.ly"
 
 default_paper = \paper{
        \paper_sixteen
diff --git a/init/paper11.ly b/init/paper11.ly
new file mode 100644 (file)
index 0000000..9eb5614
--- /dev/null
@@ -0,0 +1,37 @@
+% paper20.ly
+
+\include "table11.ly"
+
+paper_eleven = \paper {
+       linewidth = 15.0 \cm;
+       rulethickness = 0.25\pt;
+       barsize = 11.0 \pt;
+       interline = 2.75\pt;
+       notewidth = 7.15\pt; % ugh see table20 for sizes
+       wholewidth = 10.44\pt;
+       unitspace = 22.\pt;
+%      basicspace = 4.\pt;
+%      geometric = 1.414;
+       geometric = 0.;
+       basicspace = 9.\pt;
+
+       arithmetic_basicspace = 2.;
+        arithmetic_multiplier = 7.\pt;
+       
+       %
+       % three beams span two interlines, including stafflines:
+       % 2 interbeam + beam_thickness = 2 interline - staffline_thickness
+       % ( beam_thickness = 0.48 interline for now...)
+       % interbeam = interline - (beam_thickness + staffline_thickness) / 2
+       % interbeam = 3.6;
+       % ugh: interline *in fact* is rule_thickness + "interline"?
+       interbeam = 3.9;
+
+       gourlay_energybound = 100000.;
+       gourlay_maxmeasures = 12.;
+       
+       castingalgorithm = \Gourlay;
+       \symboltables { \table_eleven }
+\include "engraver.ly"
+}
+
diff --git a/init/paper13.ly b/init/paper13.ly
new file mode 100644 (file)
index 0000000..e693d20
--- /dev/null
@@ -0,0 +1,37 @@
+% paper20.ly
+
+\include "table13.ly"
+
+paper_thirteen = \paper {
+       linewidth = 15.0 \cm;
+       rulethickness = 0.25\pt;
+       barsize = 13.0 \pt;
+       interline = 3.25\pt;
+       notewidth = 7.15\pt; % ugh see table20 for sizes
+       wholewidth = 10.44\pt;
+       unitspace = 22.\pt;
+%      basicspace = 4.\pt;
+%      geometric = 1.414;
+       geometric = 0.;
+       basicspace = 9.\pt;
+
+       arithmetic_basicspace = 2.;
+        arithmetic_multiplier = 7.\pt;
+       
+       %
+       % three beams span two interlines, including stafflines:
+       % 2 interbeam + beam_thickness = 2 interline - staffline_thickness
+       % ( beam_thickness = 0.48 interline for now...)
+       % interbeam = interline - (beam_thickness + staffline_thickness) / 2
+       % interbeam = 3.6;
+       % ugh: interline *in fact* is rule_thickness + "interline"?
+       interbeam = 3.9;
+
+       gourlay_energybound = 100000.;
+       gourlay_maxmeasures = 12.;
+       
+       castingalgorithm = \Gourlay;
+       \symboltables { \table_thirteen }
+       \include "engraver.ly"
+}
+
index 98ee62688de10b0728ac4a71b4ea97936d09f601..06aa523fa2ac90798d911e853e0f5918dacd9606 100644 (file)
@@ -13,8 +13,8 @@ paper sizes.
 %}
 paper_sixteen = \paper {
        linewidth = 15.5 \cm;
-       rule_thickness = 0.4\pt;
-       bar_size = 16.0 \pt;
+       rulethickness = 0.4\pt;
+       barsize = 16.0 \pt;
        interline = 4.\pt;
        notewidth = 5.93\pt; % ugh, see table16 for sizes
        wholewidth = 8.64\pt;
index e4bd6bfb00c8fbf46b32e9a7849e6b9f87831bce..8e30c48c1a1e6af13e6e7ebdea7c8b70c713310a 100644 (file)
@@ -4,8 +4,8 @@
 
 paper_twenty = \paper {
        linewidth = 15.0 \cm;
-       rule_thickness = 0.4\pt;
-       bar_size = 20.0 \pt;
+       rulethickness = 0.4\pt;
+       barsize = 20.0 \pt;
        interline = 5.\pt;
        notewidth = 7.15\pt; % ugh see table20 for sizes
        wholewidth = 10.44\pt;
diff --git a/init/paper26.ly b/init/paper26.ly
new file mode 100644 (file)
index 0000000..4651188
--- /dev/null
@@ -0,0 +1,37 @@
+% paper20.ly
+
+\include "table26.ly"
+
+paper_twentysix = \paper {
+       linewidth = 15.0 \cm;
+       rulethickness = 0.5\pt;
+       barsize = 26.0 \pt;
+       interline = 6.5\pt;
+       notewidth = 7.15\pt; % ugh see table20 for sizes
+       wholewidth = 10.44\pt;
+       unitspace = 22.\pt;
+%      basicspace = 4.\pt;
+%      geometric = 1.414;
+       geometric = 0.;
+       basicspace = 9.\pt;
+
+       arithmetic_basicspace = 2.;
+        arithmetic_multiplier = 7.\pt;
+       
+       %
+       % three beams span two interlines, including stafflines:
+       % 2 interbeam + beam_thickness = 2 interline - staffline_thickness
+       % ( beam_thickness = 0.48 interline for now...)
+       % interbeam = interline - (beam_thickness + staffline_thickness) / 2
+       % interbeam = 3.6;
+       % ugh: interline *in fact* is rule_thickness + "interline"?
+       interbeam = 3.9;
+
+       gourlay_energybound = 100000.;
+       gourlay_maxmeasures = 12.;
+       
+       castingalgorithm = \Gourlay;
+       \symboltables { \table_twentysix }
+\include "engraver.ly"
+}
+
diff --git a/init/table11.ly b/init/table11.ly
new file mode 100644 (file)
index 0000000..ba026be
--- /dev/null
@@ -0,0 +1,74 @@
+% table26.ly
+%
+% spacing info for LilyPond. Do not edit this.
+% It has a lot of hard-wired stringconstants
+%
+
+table_eleven  = \symboltables {
+
+   \texid      "\input lilyponddefs \musixelevendefs"
+
+    % index TeXstring,         xmin xmax ymin ymax
+
+     "style" = \table {
+               "roman" "\settext{%}"   0.0\pt  7.5\pt  0.0\pt  10.0\pt
+               "italic"        "\setitalic{%}" 0.0\pt  0.0\pt  0.0\pt  10.0\pt
+               "dynamic"       "\setdynamic{%}"        0.0\pt  0.0\pt  0.0\pt  10.0\pt
+               "finger"        "\setfinger{%}" 0.0\pt  0.0\pt  0.0\pt  5.0\pt
+     }
+
+     "dynamics" = \table {
+
+       "mf" "\dynmf"
+       "fff" "\dynfff"
+       "ff" "\dynff"
+       "f" "\dynf"
+
+       "mp" "\dynmp"
+       "p" "\dynp"
+       "pp" "\dynpp"
+       "ppp" "\dynppp"
+       "fp" "\dynfp"
+       "sf" "\dynsf"
+       "sfz" "\dynsfz"
+
+       }
+     "align" = \table {
+               "-1"    "\leftalign{%}"
+               "0"     "\centeralign{%}"
+               "1"     "\rightalign{%}"
+       }
+
+
+
+
+    "bars" = \table {
+       "empty" "\emptybar"
+       ""      ""                      0.0\pt  0.0\pt  0.0\pt  16.0\pt
+       "|"     "\maatstreep{%}"        0.0\pt  0.64\pt         0.0\pt  20.0\pt
+       "||"    "\doublebar{%}"         0.0\pt  5.0\pt  0.0\pt  20.0\pt
+       "|."    "\finishbar{%}"         -5.0\pt 0.0\pt  0.0\pt  20.0\pt
+       ".|"    "\startbar{%}"          0.0\pt  4.0\pt  0.0\pt  20.0\pt
+       ":|"    "\repeatbar"            -10.0\pt        0.0\pt  0.0\pt  20.0\pt
+       "|:"    "\startrepeat"          0.0\pt  10.0\pt 0.0\pt  20.0\pt
+       ":|:"   "\repeatbarstartrepeat" 0.0\pt 20.0\pt  0.0\pt  20.0\pt
+    }
+
+    "meters" = \table {
+       "C"     "\fourfourmeter"                0.0\pt  10.0\pt -5.0\pt 5.0\pt
+       "C2"    "\allabreve"            0.0\pt  10.0\pt -5.0\pt 5.0\pt
+    }
+
+    % dims ignored for this table
+    "param" = \table {
+        "brace"    "\pianobrace{%}"    0.0\pt  0.0\pt  32.0\pt 96.0\pt  
+        "meter"        "\generalmeter{%}{%}"   0.0\pt  10.0\pt -5.0\pt 5.0\pt
+        "stem" "\stem{%}{%}"
+        "fill" "\hbox{}"
+        "rule" "\rulesym{%}{%}"
+     }
+
+    % ugh what's our outdir called?
+    \include "feta11.ly"
+}
+
diff --git a/init/table13.ly b/init/table13.ly
new file mode 100644 (file)
index 0000000..1969e39
--- /dev/null
@@ -0,0 +1,74 @@
+% table26.ly
+%
+% spacing info for LilyPond. Do not edit this.
+% It has a lot of hard-wired stringconstants
+%
+
+table_thirteen  = \symboltables {
+
+   \texid      "\input lilyponddefs \musixthirteendefs"
+
+    % index TeXstring,         xmin xmax ymin ymax
+
+     "style" = \table {
+               "roman" "\settext{%}"   0.0\pt  7.5\pt  0.0\pt  10.0\pt
+               "italic"        "\setitalic{%}" 0.0\pt  0.0\pt  0.0\pt  10.0\pt
+               "dynamic"       "\setdynamic{%}"        0.0\pt  0.0\pt  0.0\pt  10.0\pt
+               "finger"        "\setfinger{%}" 0.0\pt  0.0\pt  0.0\pt  5.0\pt
+     }
+
+     "dynamics" = \table {
+
+       "mf" "\dynmf"
+       "fff" "\dynfff"
+       "ff" "\dynff"
+       "f" "\dynf"
+
+       "mp" "\dynmp"
+       "p" "\dynp"
+       "pp" "\dynpp"
+       "ppp" "\dynppp"
+       "fp" "\dynfp"
+       "sf" "\dynsf"
+       "sfz" "\dynsfz"
+
+       }
+     "align" = \table {
+               "-1"    "\leftalign{%}"
+               "0"     "\centeralign{%}"
+               "1"     "\rightalign{%}"
+       }
+
+
+
+
+    "bars" = \table {
+       "empty" "\emptybar"
+       ""      ""                      0.0\pt  0.0\pt  0.0\pt  16.0\pt
+       "|"     "\maatstreep{%}"        0.0\pt  0.64\pt         0.0\pt  20.0\pt
+       "||"    "\doublebar{%}"         0.0\pt  5.0\pt  0.0\pt  20.0\pt
+       "|."    "\finishbar{%}"         -5.0\pt 0.0\pt  0.0\pt  20.0\pt
+       ".|"    "\startbar{%}"          0.0\pt  4.0\pt  0.0\pt  20.0\pt
+       ":|"    "\repeatbar"            -10.0\pt        0.0\pt  0.0\pt  20.0\pt
+       "|:"    "\startrepeat"          0.0\pt  10.0\pt 0.0\pt  20.0\pt
+       ":|:"   "\repeatbarstartrepeat" 0.0\pt 20.0\pt  0.0\pt  20.0\pt
+    }
+
+    "meters" = \table {
+       "C"     "\fourfourmeter"                0.0\pt  10.0\pt -5.0\pt 5.0\pt
+       "C2"    "\allabreve"            0.0\pt  10.0\pt -5.0\pt 5.0\pt
+    }
+
+    % dims ignored for this table
+    "param" = \table {
+        "brace"    "\pianobrace{%}"    0.0\pt  0.0\pt  32.0\pt 96.0\pt  
+        "meter"        "\generalmeter{%}{%}"   0.0\pt  10.0\pt -5.0\pt 5.0\pt
+        "stem" "\stem{%}{%}"
+        "fill" "\hbox{}"
+        "rule" "\rulesym{%}{%}"
+     }
+
+    % ugh what's our outdir called?
+    \include "feta13.ly"
+}
+
index 5940ed8b2f1de6ac4fe7b7140e1ebf1d3a8e9e93..415cfa8353b90163758b95bcfaf0c9b48bbd6d6d 100644 (file)
@@ -11,6 +11,7 @@ table_sixteen=
    % index TeXstring,  xmin xmax ymin ymax
 
      "style" = \table {
+               "bold"  "\setbold{%}"   0.0\pt  7.50\pt 0.0\pt  8.0\pt
                "roman" "\settext{%}"   0.0\pt  7.50\pt 0.0\pt  8.0\pt
                "italic"        "\setitalic{%}" 0.0\pt  0.0\pt  0.0\pt  8.0\pt
                "dynamic"       "\setdynamic{%}"        0.0\pt  0.0\pt  0.0\pt  8.0\pt
@@ -63,6 +64,7 @@ table_sixteen=
 %      "brace" "\pianobrace{%}"        0.0\pt  0.0\pt  0.0\pt  0.0\pt
        "brace" "\pianobrace{%}"        0.0\pt  0.0\pt  32.0\pt 80.0\pt
        "meter" "\generalmeter{%}{%}"   0.0\pt  10.0\pt -8.0\pt 8.0\pt
+       "rule" "\rulesym{%}{%}"
        "stem"  "\stem{%}{%}"
        "fill"  "\hbox{}"
        % ugh. 8pt
index 6742e056301caef27b0fd2db93aad31ce47d68bf..b641adb469482a77cc21fe79007ce268a2f1d83e 100644 (file)
@@ -67,7 +67,8 @@ table_twenty =
     % dims ignored for this table
     "param" = \table {
 %       "brace"    "\pianobrace{%}"    0.0\pt  0.0\pt  0.0\pt  0.0\pt
-        "brace"    "\pianobrace{%}"    0.0\pt  0.0\pt  40.0\pt 100.0\pt         
+       "rule" "\rulesym{%}{%}"
+       "brace"    "\pianobrace{%}"     0.0\pt  0.0\pt  40.0\pt 100.0\pt         
         "meter"        "\generalmeter{%}{%}"   0.0\pt  10.0\pt -5.0\pt 5.0\pt
         "stem" "\stem{%}{%}"
         "fill" "\hbox{}"
diff --git a/init/table26.ly b/init/table26.ly
new file mode 100644 (file)
index 0000000..047015c
--- /dev/null
@@ -0,0 +1,74 @@
+% table26.ly
+%
+% spacing info for LilyPond. Do not edit this.
+% It has a lot of hard-wired stringconstants
+%
+
+table_twentysix  = \symboltables {
+
+   \texid      "\input lilyponddefs \musixtwentysixdefs"
+
+    % index TeXstring,         xmin xmax ymin ymax
+
+     "style" = \table {
+               "roman" "\settext{%}"   0.0\pt  7.5\pt  0.0\pt  10.0\pt
+               "italic"        "\setitalic{%}" 0.0\pt  0.0\pt  0.0\pt  10.0\pt
+               "dynamic"       "\setdynamic{%}"        0.0\pt  0.0\pt  0.0\pt  10.0\pt
+               "finger"        "\setfinger{%}" 0.0\pt  0.0\pt  0.0\pt  5.0\pt
+     }
+
+     "dynamics" = \table {
+
+       "mf" "\dynmf"
+       "fff" "\dynfff"
+       "ff" "\dynff"
+       "f" "\dynf"
+
+       "mp" "\dynmp"
+       "p" "\dynp"
+       "pp" "\dynpp"
+       "ppp" "\dynppp"
+       "fp" "\dynfp"
+       "sf" "\dynsf"
+       "sfz" "\dynsfz"
+
+       }
+     "align" = \table {
+               "-1"    "\leftalign{%}"
+               "0"     "\centeralign{%}"
+               "1"     "\rightalign{%}"
+       }
+
+
+
+
+    "bars" = \table {
+       "empty" "\emptybar"
+       ""      ""                      0.0\pt  0.0\pt  0.0\pt  16.0\pt
+       "|"     "\maatstreep{%}"        0.0\pt  0.64\pt         0.0\pt  20.0\pt
+       "||"    "\doublebar{%}"         0.0\pt  5.0\pt  0.0\pt  20.0\pt
+       "|."    "\finishbar{%}"         -5.0\pt 0.0\pt  0.0\pt  20.0\pt
+       ".|"    "\startbar{%}"          0.0\pt  4.0\pt  0.0\pt  20.0\pt
+       ":|"    "\repeatbar"            -10.0\pt        0.0\pt  0.0\pt  20.0\pt
+       "|:"    "\startrepeat"          0.0\pt  10.0\pt 0.0\pt  20.0\pt
+       ":|:"   "\repeatbarstartrepeat" 0.0\pt 20.0\pt  0.0\pt  20.0\pt
+    }
+
+    "meters" = \table {
+       "C"     "\fourfourmeter"                0.0\pt  10.0\pt -5.0\pt 5.0\pt
+       "C2"    "\allabreve"            0.0\pt  10.0\pt -5.0\pt 5.0\pt
+    }
+
+    % dims ignored for this table
+    "param" = \table {
+        "brace"    "\pianobrace{%}"    0.0\pt  0.0\pt  32.0\pt 96.0\pt  
+        "meter"        "\generalmeter{%}{%}"   0.0\pt  10.0\pt -5.0\pt 5.0\pt
+        "stem" "\stem{%}{%}"
+        "fill" "\hbox{}"
+        "rule" "\rulesym{%}{%}"
+     }
+
+    % ugh what's our outdir called?
+    \include "feta26.ly"
+}
+
diff --git a/input/font-body.ly b/input/font-body.ly
new file mode 100644 (file)
index 0000000..cfb563d
--- /dev/null
@@ -0,0 +1,72 @@
+\version "0.1.7";
+FontBody=      \melodic{ 
+               \octave c';
+               \bar "|:";
+               \meter 4/4;
+               \multi 2  < { \stemup e'\longa a\breve | }
+               { \stemdown
+               c1 \clef "bass"; ''b \clef "violin"; c' a'
+               c2 \clef "alto"; g c' \clef "violin"; a'
+               } >
+               \stemboth
+               c4 g c' a' \bar ":|";
+               a\ppp-\upbow a\pp-\downbow a\p^\turn a\mp^\fermata |
+               a\mf_\fermata a\f-\stopped a\ff-\open a\fff^\trill|
+               a\fp a4.\sf a4.\sfz | % a\fz a\rf
+               [c8 c] [a' a']
+               [c a'] [a' c] |
+               [c \< d e f] [as' ges' f' e']
+               [cis' dis' c' des'] [cisis' disis' \! ceses' deses'] |
+               \clef "bass";
+                 r1 r2 r4 r8 r16 r32 r64 r128 r128 |
+               \multi 2 < { \stemup r2 r2} {\stemdown c c }>
+               \multi 2 < { \stemup ''c1 } {\stemdown r1}>             
+               \stemboth
+               \clef "violin";
+               e8_. g'8-> e16^^ g'16_^ 
+               e32 _| g'32^| g''32-\ltoe g''32-\lheel
+               e64 g'64 c4... |
+
+               \octave c'';
+               \meter 4/4;
+               \textstyle "finger";
+               c4^"1" d^"2" e^"3" f^"4" g^"5"
+               
+               % Music to the Martians!
+               < bes4^"6" e_"7" c_"8" >
+               a^"0"_"9"
+               
+               a'^\flageolet
+               \textstyle "roman";
+%{             % default abbreviations
+               c4 c4: c4:32 c4: c4 c2.
+               'a1
+               'a1:32
+               'c4:8 c': 'c4:16 c':
+%              [ 'c8:16 'c 'c 'c ] [ a a a a ]
+%              [ 'c 'f 'b e ] 
+%              [ 'c16:32 'c 'c 'c ] [ a16:32 a a a ]
+%%             % there's still some hairy beam bugfixing todo
+%%             [ c'8:16 g d 'a ]
+%%             [ c'16:32 g d 'a ]
+%%             [ 'c8:32 'f 'b e ]
+               [:32 c16 e]
+               [:32 c16 e]
+               [:16 c8 e]
+               [:16 e4 g]
+               [:16 e2 g]
+               [:16 e1 g]
+%}
+               \meter 1/2; a2 |
+               \meter 3/2; < a1.
+               { s4 \ppp \< s4 \! s4 \fff  s4 \> s4 \! s4\ppp} >
+               |
+               \meter 2/4; a2 |
+               \meter 5/4; a1.. |
+               \meter 6/8; a2. |
+               \meter 7/8; a2.. |
+               \meter 9/8; a1... |
+               \meter 12/8; a1. |
+               \meter 12/4;
+               r1. r2. r4. r8. r16. r32. r64. r64. |
+               }
index f1f1e8a00690a94f8bf0e4a716d6e2c2307bb5c2..7ec3ada7238a2fd966da20d07c414f6a6d674aae 100644 (file)
@@ -9,78 +9,8 @@ description = "This file tests the Feta music font";
 
 \version "0.1.7";
 
+\include "font-body.ly";
 \score{
-       \melodic{ 
-               \octave c';
-               \bar "|:";
-               \meter 4/4;
-               \multi 2  < { \stemup e'\longa a\breve | }
-               { \stemdown
-               c1 \clef "bass"; ''b \clef "violin"; c' a'
-               c2 \clef "alto"; g c' \clef "violin"; a'
-               } >
-               \stemboth
-               c4 g c' a' \bar ":|";
-               a\ppp-\upbow a\pp-\downbow a\p^\turn a\mp^\fermata |
-               a\mf_\fermata a\f-\stopped a\ff-\open a\fff^\trill|
-               a\fp a4.\sf a4.\sfz | % a\fz a\rf
-               [c8 c] [a' a']
-               [c a'] [a' c] |
-               [c \< d e f] [as' ges' f' e']
-               [cis' dis' c' des'] [cisis' disis' \! ceses' deses'] |
-               \clef "bass";
-                 r1 r2 r4 r8 r16 r32 r64 r128 r128 |
-               \multi 2 < { \stemup r2 r2} {\stemdown c c }>
-               \multi 2 < { \stemup ''c1 } {\stemdown r1}>             
-               \stemboth
-               \clef "violin";
-               e8_. g'8-> e16^^ g'16_^ 
-               e32 _| g'32^| g''32-\ltoe g''32-\lheel
-               e64 g'64 c4... |
-
-               \octave c'';
-               \meter 4/4;
-               \textstyle "finger";
-               c4^"1" d^"2" e^"3" f^"4" g^"5"
-               
-               % Music to the Martians!
-               < bes4^"6" e_"7" c_"8" >
-               a^"0"_"9"
-               
-               a'^\flageolet
-               \textstyle "roman";
-%{             % default abbreviations
-               c4 c4: c4:32 c4: c4 c2.
-               'a1
-               'a1:32
-               'c4:8 c': 'c4:16 c':
-%              [ 'c8:16 'c 'c 'c ] [ a a a a ]
-%              [ 'c 'f 'b e ] 
-%              [ 'c16:32 'c 'c 'c ] [ a16:32 a a a ]
-%%             % there's still some hairy beam bugfixing todo
-%%             [ c'8:16 g d 'a ]
-%%             [ c'16:32 g d 'a ]
-%%             [ 'c8:32 'f 'b e ]
-               [:32 c16 e]
-               [:32 c16 e]
-               [:16 c8 e]
-               [:16 e4 g]
-               [:16 e2 g]
-               [:16 e1 g]
-%}
-               \meter 1/2; a2 |
-               \meter 3/2; < a1.
-               { s4 \ppp \< s4 \! s4 \fff  s4 \> s4 \! s4\ppp} >
-               |
-               \meter 2/4; a2 |
-               \meter 5/4; a1.. |
-               \meter 6/8; a2. |
-               \meter 7/8; a2.. |
-               \meter 9/8; a1... |
-               \meter 12/8; a1. |
-               \meter 12/4;
-               r1. r2. r4. r8. r16. r32. r64. r64. |
-               }
        \paper{ 
            % don't change this.
            % otherwise 16pt and 20pt layouts differ.
diff --git a/input/font11.ly b/input/font11.ly
new file mode 100644 (file)
index 0000000..9530ebe
--- /dev/null
@@ -0,0 +1,22 @@
+
+\header{
+title= "The Feta Font";
+subtitle = "proofsheet"; 
+enteredby =     "jcn & hwn";
+copyright =     "public domain";
+description = "This file tests the Feta music font, 11pt";
+% "(Feta definitively is not an abbreviation of Font-En-TjA)";
+}
+
+
+\include "paper11.ly"
+\include "font-body.ly"
+\score{
+       \FontBody
+       \paper{
+           \paper_eleven
+           linewidth = 17.5 \cm;
+           gourlay_maxmeasures =5.;
+       }
+}
+
diff --git a/input/font13.ly b/input/font13.ly
new file mode 100644 (file)
index 0000000..d4e2d4d
--- /dev/null
@@ -0,0 +1,22 @@
+
+\header{
+title= "The Feta Font";
+subtitle = "proofsheet"; 
+enteredby =     "jcn & hwn";
+copyright =     "public domain";
+description = "This file tests the Feta music font, 11pt";
+% "(Feta definitively is not an abbreviation of Font-En-TjA)";
+}
+
+
+\include "paper13.ly"
+\include "font-body.ly"
+\score{
+       \FontBody
+       \paper{
+           \paper_thirteen
+           linewidth = 17.5 \cm;
+           gourlay_maxmeasures =5.;
+       }
+}
+
diff --git a/input/font16.ly b/input/font16.ly
new file mode 100644 (file)
index 0000000..42b4cfe
--- /dev/null
@@ -0,0 +1,22 @@
+\header{
+title= "The Feta Font";
+subtitle = "proofsheet"; 
+enteredby =     "jcn & hwn";
+copyright =     "public domain";
+description = "This file tests the Feta music font";
+% "(Feta definitively is not an abbreviation of Font-En-TjA)";
+}
+
+\version "0.1.7";
+\include "font-body.ly"
+
+\score{
+       \FontBody
+       \paper{ 
+           % don't change this.
+           % otherwise 16pt and 20pt layouts differ.
+           linewidth = 12.5 \cm;
+           gourlay_maxmeasures =5.;
+       }
+}
+
index c83989e8e0762b0de4350df550011b4a06476773..e78f752bd460bc213d6a51cf0630263bca3db7aa 100644 (file)
@@ -1,16 +1,20 @@
-%       "This file is a stub to fool make-website"
-
 \header{
 title= "The Feta font";
 subtitle = "proofsheet"; 
 enteredby =     "jcn";
 copyright =     "public domain";
-description = "This file tests the Feta music-font";
+description = "This file tests the Feta music-font in the 20pt version";
 TestedFeatures =        
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-
-
-
-
+\include "paper20.ly"
+\include "font-body.ly"
+\score{
+       \FontBody
+       \paper{
+           \paper_twenty
+           linewidth = 17.5 \cm;
+           gourlay_maxmeasures =5.;
+       }
+       }
diff --git a/input/font26.ly b/input/font26.ly
new file mode 100644 (file)
index 0000000..535383d
--- /dev/null
@@ -0,0 +1,20 @@
+\header{
+title= "The Feta Font";
+subtitle = "proofsheet"; 
+enteredby =     "jcn & hwn";
+copyright =     "public domain";
+description = "This file tests the Feta music font";
+% "(Feta definitively is not an abbreviation of Font-En-TjA)";
+}
+
+\include "paper26.ly";
+\include "font-body.ly"
+\score{
+       \FontBody
+       \paper{
+           \paper_twentysix
+           linewidth = 17.5 \cm;
+           gourlay_maxmeasures =5.;
+       }
+}
+
index 01d95b9f79681469f7dd622f477bc1f8625df322..21bbf4dbd4b950e99fb589a075369d31af1cc976 100644 (file)
@@ -8,7 +8,6 @@
 \addtolength{\topmargin}{-1cm}
 \setlength{\textwidth}{15cm}
 \input lilyponddefs
-\musixsixteendefs
 \input titledefs
 \begin{document}
 
index febd0720e60f75d64a8de632a845be94f957cc9b..363390eb8c4060d2698b7117f05ce3829b04f915 100644 (file)
@@ -6,7 +6,7 @@ instrument = "Menuetto I";              % duh
 description =   "Cello suite transcribed for Viola";
 source =        "?";
 opus =  "BWV 1008 no. 5";
-composer =      "Johann Sebastian Bach (1685-1750)";
+composer =      "Johann Sebastian Bach(1685-1750)";
 enteredby =     "JCN";
 copyright =     "public domain";
 }
@@ -22,13 +22,13 @@ copyright =  "public domain";
 % \tempo{Moderato}
 % \metron{4=120}
 %
-% \key\F               % \key is F ( f-major )
+% \key\F               % \key is F( f-major )
 %
 % \slope{30}           % Fool MusiXTeX into 30 / 10 steeper beam
 %              % because piece is set very tightly
 
 IImenuetto = \melodic{
-       \property Voice.beamslopedamping = \infinity
+%      \property Voice.beamslopedamping = \infinity
        \clef"alto";
        \property Staff.instrument = cello
        \meter 3/4;
@@ -40,19 +40,30 @@ IImenuetto = \melodic{
 %%2
        \textstyle "finger";            % ugh.
        
-       < [ bes8^"1"( e8 c8_"2"_"4" >
-               )a8 bes8-. g8-. ] a4-.^"4" |
-
+       \multi 2 < 
+               { \stemup; [ bes8^"1"( )a8 bes8-. g8-. ] a4-.^"4" }
+               
+               { \stemdown; < e8_"2" c8_"4" > }
+       > |
+       \stemboth;
 %%3
-       \property Voice.beamslopedamping = \normal
+%      \property Voice.beamslopedamping = \normal
        < d4 'bes4-. > g4-. [ f8-. e8-. ] |
-       \property Voice.beamslopedamping = \infinity
+%      \property Voice.beamslopedamping = \infinity
 %%4
-       < [ f8( 'a > e8 )d8 cis8-. 'b8-. 'a8-. ]
+       \multi 2 < 
+               { \stemup; [ f8( e8 )d8 cis8-. 'b8-. 'a8-. ] }
+               { \stemdown; 'a }
+       > |
+       \stemboth;
 %%5
        < a2 f2 d2 > bes!4-. |
 %%6
-       < [ bes8 e8 > a8 bes8-. g8-. ]
+       \multi 2 < 
+               { \stemup; [ bes8 a8 bes8-. g8-. ] }
+               { \stemdown; e8 }
+       >
+       \stemboth;
        c'!4-. |
 %%7
        < a4-. f4>
@@ -60,58 +71,83 @@ IImenuetto = \melodic{
        < e'4-.-\downbow g4 'g4 > |
 %%8
        < cis'2.-\upbow e2. 'a2. > 
-               \bar ":|:";
+       \bar ":|:";
 %%9
        \clef "violin";
        < e'2 a2 \f >
-       \property Voice.beamslopedamping = \normal
+%      \property Voice.beamslopedamping = \normal
        [ d'8( e'16 )f'16 ] |
-       \property Voice.beamslopedamping = \infinity
+%      \property Voice.beamslopedamping = \infinity
 %%10
-       < [ e'8( g8 > d' cis'_"2" )e' a ()  g8 ] |
+       \multi 2 < 
+               { \stemup; [ e'8( d' cis'_"2" )e' a( )g8 ] }
+               { \stemdown; g8 }
+       > |
+       \stemboth;
 %%11
-       \multi 2 <  
-               {\stemup a4()  d'4 cis'4-. }
-               { \stemdown f2 e4 } > |
-       \stemboth
+       \multi 2 <
+               { \stemup; a4( )d'4 cis'4-. }
+               { \stemdown; f2 e4 } 
+       > |
+       \stemboth;
 %%12
-       % oeps: slur gets attached at d8 iso g'8!
-%      < [ g'8^"4"( d8 > f' e' )f' d'^"3"()   c' ] |
-       % wrong still...
-       < { [ g'8^"4"( f' e' )f' d'^"3"()   c' ] } { [ d8 ] } > |
+       \multi 2 < 
+               { \stemup; [ g'8^"4"( f' e' )f' d'^"3"( ) c' ] } 
+               { \stemdown; d8 }
+       > |
+       \stemboth;
 %%13
        \clef "alto";
        \multi 2 <
-                { \stemup bes2 c'4 }
-                { \stemdown g4()  f4 e4 }% ugh
+               
+               { \stemup; bes2 c'4 }
+               { \stemdown; g4( )f4 e4 }% ugh
        > |
-       \stemboth
+       \stemboth;
 %%14
-       < [ a8 f8 > g8 a8 f8 ] < d'4-\upbow e4 'bes4 > |
+       \multi 2 < 
+               { \stemup; [ a8 g8 a8 f8 ] } 
+               { \stemdown; f8 }
+       >
+       \stemboth;
+       < d'4-\upbow e4 'bes4 > |
 %%15
-       < c'4-\downbow f4 'a4 > [ bes8()  a8 g8 a8 ] |
+       < c'4-\downbow f4 'a4 > [ bes8( )a8 g8 a8 ] |
 %%16
        [ f( e8 )f a8-. g8-. bes8-. ] |
 %%17
        < a2^"0"^\trill fis2_"3" > bes4 |
 %%18
-       < { [ c'8 ()  bes8 c' a8 ] } es8 > fis4^\trill |
+       \multi 2 < 
+               { \stemup; [ c'8( )bes8 c' a8 ] } 
+               { \stemdown; es8 }
+       >
+       \stemboth;
+       fis4^\trill |
 %%19
        < d'4-\downbow g4 'bes4 > < c'4-\upbow g4 c4 > < [ bes8 d8 > a8 ] |
 %%20
-       < { [ c'8 ( bes8 a8 )bes g()  bes8 ] }  d8  g8  > |
+       \multi 2 < 
+               { \stemup; [ c'8( bes8 a8 )bes g( )bes8 ] }
+               { \stemdown; < d8  g8  > }
+       > |
+       \stemboth;
 %%21
        \multi 2 <  
-               {\stemup  d'4( \stemup )cis'4 d'4 }  
-               { \stemdown g2 f4 }
+               { \stemup; d'4( )cis'4 d'4 }  
+               { \stemdown; g2 f4 }
        > |
-       \stemboth
+       \stemboth;
 %%22
-       < { [ g8 ()  f8 g8 e8 ] }  cis8  > < f4 d4 > |
+       \multi 2 < 
+               { \stemup; [ g8( )f8 g8 e8 ] f4 }
+               { \stemdown; cis8 d4 }
+       > |
+       \stemboth;
 %%23
-       \property Voice.beamslopedamping = \normal
+%      \property Voice.beamslopedamping = \normal
        [ 'g8 g8 ] < e4.^\trill 'a4. > d8-\upbow |
-       \property Voice.beamslopedamping = \infinity
+%      \property Voice.beamslopedamping = \infinity
 %%24
        \textstyle "roman";             % ugh
        < d2.^"fine" 'a2. 'd2._"3 mins."> 
@@ -124,6 +160,11 @@ IImenuetto = \melodic{
        }
        \paper{
                linewidth= 150.0\mm;
+               % how does this work?
+               % why does space not have dim?
+               arithmetic_basicspace = 3.2;
+               % how can multiplier have dim?
+               arithmetic_mulitplier = 9.\pt;
                \output "scsii-menuetto.out";
        }
        \midi{ 
index be358aa0634b3255066f1582a299b8b150f6502a..d6628ae59ffbee55f7805472912a5e71b5237c41 100644 (file)
@@ -5,7 +5,6 @@
 \advance\textwidth30mm
 \begin{document}
 \input lilyponddefs
-\musixsixteendefs
 \input titledefs
 \def\interscoreline{\vskip6pt}
 \title{Solo Cello Suites\normalsize\\[2ex]Suite II}
index c712abda2cdc3883f083674af9b2730260d27e8a..bcb6e45846f080e25b3db265ab5d156d379a3560 100644 (file)
@@ -5,16 +5,37 @@ TestedFeatures =       "This file tests Feta embedded slurs"
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-%{ remember to:
-rm `find /var/lib/texmf -name "feta-sleur-*"`
-%}
-
 \version "0.1.7";
 
+shortlong = \melodic{
+       c4()c( c c  |
+       c c c c |
+       c c c c |
+       c c c )c |
+}
+
+dirs = \melodic {
+       \octave c';
+       c'1() g' () c () g () c |
+}
+
+complex = \melodic{
+       \octave c';
+       'c16( 'e( 'g( 'b( d( f( a( c'~ )))))))c4 c4 |
+       \octave c''';
+       'c16( a( f( d( 'b( 'g( 'e( 'c~ )))))))c4 c4 |
+}
+
+beum = \melodic{
+       [c8 c] c4 c4 c4 |
+}
+
 \score{
        \melodic{ 
-               \octave c'
-               ;c'1() g' () c () g () c 
+               \shortlong
+               \dirs
+               \complex
+               \beum
        }
        \paper{ }
 }
index 26ff241da3835b1ef0a30d2c9938ff3df2d4901d..caf87a3f4c1b4271146fcd5218427a5baeb155b2 100644 (file)
@@ -4,6 +4,7 @@
 \score{
        \melodic{\octave c';
                \duration "last";
+
                'c4 ~ 'c c'' ~ c'' ~ g ~ c ~
                d ~ e ~ f ~ g ~
                a ~ b ~ 'c ~ c
                < { c ~ d }
                  { e ~ f }
                >
-       \multi 2 <
-       { \stemup c'8 ~g ~e( ~c~ [c'~ g' e' )c'] c'' ~ c'' c~c }
-       { \stemdown c (e g )c'~( [b a g )d]     r2 } 
-       >
+%      \multi 2 <
+%      { \stemup c'8 ~g ~e( ~c~ [c'~ g' e' )c'] c'' ~ c'' c~c }
+%      { \stemdown c (e g )c'~( [b a g )d]     r2 } 
+%      >
+
+       {
+%              \octave c';
+%              'c16( 'e( 'g( 'b( d( f( a( c'~ )))))))c4 c4 |
+%              \octave c''';
+%              'c16( a( f( d( 'b( 'g( 'e( 'c~ )))))))c4 c4 |
+%              \octave c';
+%              c'1() g' () c () g () c |
 
+               c4()c( c c  |
+               c c c c |
+               c c c c |
+               c c c )c |
+       }
+       }
        }
 }
index 9ad6f3a77dd5e41f20916d7c9e13c081487b8a3b..e22d627ae92b50bedc31ba38dbab0b1e2ddde8aa 100644 (file)
@@ -7,7 +7,6 @@
 \input titledefs
 %\pagestyle{empty}
 \begin{document}
-\musixsixteendefs
 \def\interscoreline{\vskip3mm}
 \title{St\"andchen\normalsize\\[2ex](Serenade)}
 \composer{Franz Schubert (1797-1828)}
index 9d0f09b67d7ba0dd13dcbb9218240c4a0adb3183..d295d2f83473cd1b4999935c8f78df1416783213 100644 (file)
@@ -10,7 +10,6 @@
 \pagestyle{empty}
 \begin{document}
 \input lilyponddefs
-\musixtwentydefs
 \input titledefs
 \def\interscoreline{\vskip3mm}
 \title{St\"andchen\normalsize\\[2ex](Serenade)}
index 739d06d3bee98a90e33673cc1630e6067eeb55f0..04cbe817cb02c470b56247ecb57fd284f1e1d1f7 100644 (file)
@@ -13,6 +13,7 @@ copyright =    "public domain";
 multiple \paper{}s in one \score 
 %}
 
+\include "paper20.ly"
 \version "0.1.7";
 
 commands = \melodic{
diff --git a/input/standje.ly b/input/standje.ly
new file mode 100644 (file)
index 0000000..5d3481e
--- /dev/null
@@ -0,0 +1,201 @@
+\header{
+filename =      "standchen.ly";
+title =         "St\"andchen (Serenade) \"Leise flehen meine Lieder\"";
+opus =  "D. 957 No. 4";
+composer =      "Franz Schubert (1797-1828)"
+        "Text by Ludwig Rellstab (1799-1860)";
+enteredby =     "JCN";
+copyright =     "public domain";
+} 
+
+%{
+ Tested Features: multivoice, accents, lyrics, chords, piano music,
+multiple \paper{}s in one \score 
+%}
+
+\version "0.1.7";
+
+$vocal_verse1 = \melodic{
+       \octave c';
+       % ugh: treble/bass
+%      \clef treble;
+       \clef violin;
+       % ugh: '3' of plet should hang over middle note
+       % ugh: barcheck fails if i write 'g8' below:
+%      [2/3 g8( )as]1/1 \plet 2/3; g8 \plet 1/1; c'4. g8 |
+       % anyway, for typping this plet stuff sucks
+       [2/3 g8( )as]1/1 \plet 2/3; g \plet 1/1; c'4. g8 |
+       [2/3 f8( )g]1/1 \plet 2/3; f \plet 1/1; c'4 f8 r |
+       g4.-> f8 [2/3 f( )es]1/1 \plet 2/3; d \plet 1/1; |
+       es2 r4 |
+       % ugh: a whole should be a measure
+       %r1 |
+       r2. |
+       r2. |
+       [2/3 g8( )as]1/1 \plet 2/3; g \plet 1/1; es'4. g8 |
+       [2/3 f8( )g]1/1 \plet 2/3; f \plet 1/1; d'4. c'8 |
+       bes4. as8 [2/3 as( )g]1/1 \plet 2/3; f \plet 1/1; |
+       g2 r4 |
+       r2. |
+       r2. |
+       g8. b16 es'4. d'8 |
+       c'8. g16 es4. c8 |
+       %  [as32\grace( bes32\grace] )
+       [2/3 as8( )g]1/1 \plet 2/3; as \plet 1/1; c'4. as8 |
+       g2. |
+       %[f32\grace( g] )
+       [2/3 f8( )e]1/1 \plet 2/3; f \plet 1/1; as4. f8 |
+       es!2. |
+       g8. b16 es'4. d'8 |
+       c'8. g16 e4. c8 |
+       % [a32\grace b] )
+       [2/3 a!8( ) gis]1/1 \plet 2/3; a \plet 1/1; c'4. a8 |
+       g!2. |
+       [2/3 d'8\f cis']1/1 \plet 2/3; d \plet 1/1; f'4. b8 |
+       c'2. |
+       r2. |
+       r2. |
+}
+
+$lyric_verse1 = \lyric{
+% 5
+       [2/3 Lei-4 se8 ]1/1 fleh-4. en8  |
+       [2/3 mei-4 ne8 ]1/1 Lie-4 der8 _8 |
+       Durch4. die8 [2/3 Nacht4 zu8 ]1/1  |
+       dir;2 _4 |
+       _4 _ _ |
+       _ _ _ |
+% 11
+       [2/3 In4 den8 ]1/1 stil-4. len8 |
+       [2/3 Hainr4 her-8 ]1/1 nie-4. der,8 |
+       Lieb4. chen,8 [2/3 komm4 zu8 ]1/1 |
+       mir!2 _4 |
+       _4 _ _  |
+       _ _ _ |
+% 17
+       Fl\"us-8. ternd16 schlan-4. ke8 |
+       Wip-8. fel16 rau-4. schen8 |
+       [2/3 In4 des8 ]1/1 Mon-4. des8 |
+       Licht;2. |
+       _4 _ _  |
+       _4 _ _ |
+% 23
+       Des8. Ver-16 r\"a-4. ters8 |
+       feind-8. lich16 Lau-4. schen8 |
+       [2/3 F\"urch-4 te,8 ]1/1 Hol-4. de,8 |
+       nicht,2. |
+       [2/3 f\"urch-4 te,8 ]1/1 Hol-4. de,8 |
+       nicht.2. |
+       _4 _ _ 
+       _ _ _
+}
+       
+$treble_intro = \melodic{
+       \octave c';
+       \clef violin;
+       % ugh: i'd like to type this!
+        %r8 [<'g-. c-.> <c-. es-.> <'g-. c-.> <c-. es-.> <'g-. c-.>] |
+        r8 <['g-. c-.> <c-. es-.> <'g-. c-.> <c-. es-.> <'g-. c-.]> |
+       r8 <['as-. c-.> <c-. es-.> <'as-. c-.> <c-. es-.> <'as-. c-.]> |
+       r8 <['as-. c-.> <c-. d-.> <'as-. c-.> <c-. d-.> <'as-. c-.]> |
+       r8 <['g-. 'b-.> <'b-. d-.> <'g-. 'b-.> <'b-. d-.> <'g-. 'b-.]> |
+       
+}
+
+$treble_verse1 = \melodic{
+       \octave c';
+       \clef violin;
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['f c> <c d> <'f c> <c d> <'f c]> |
+       r8 <['f 'g b> <'g b d> <'f 'g b> <'g b d> <'f 'g b]> |
+       r8 <['es 'g c> <'g c es> <'es 'g c> <'g c es> <'es 'g c]> |
+       <g'4.( b> <)f'8 d'> <[2/3 f' d'> <es' c'> <d' b]1/1> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+       r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+}
+
+$bass_intro = \melodic{
+       \octave c;
+       \clef bass;
+       <'c2 c> r4 |
+       <''as2 'as> r4 |
+       <''f2 'f> r4 |
+       <''g2 g> r4 |
+}
+
+$bass_verse1 = \melodic{
+       \octave c;
+       \clef bass;
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+       <'c2 c> r4 |
+}
+               
+               
+global= \melodic {\meter 3/4; \key bes es as; }
+
+               
+\score{
+       \melodic<
+               \type Lyrics { \skip 4 * 12; \$lyric_verse1 }
+               \type Staff 
+               { \skip 4 * 12; \$vocal_verse1 }
+               
+               % i want a (grand) staff!!!
+               
+               \type Grandstaff < 
+                       < { \$treble_intro \$treble_verse1 }
+                         \global 
+                       >
+                       < \global
+                         { \$bass_intro \$bass_verse1 }
+                       >
+               >
+       >
+       \paper{
+               % how does this work?
+               % previously we had the clear 'ideal whole note space' setting?
+               arithmetic_multiplier = 6.\pt;
+               % ugh: the *first* (intro) line may only have four measures...
+               gourlay_maxmeasures = 4.;
+       }
+}
+
index 15ba649ddb43b0684be87010433fca8c335a70ce..0c90d98cb4c53b3cc43223d9d7695792b0b65e83 100644 (file)
@@ -1,4 +1,4 @@
 MAJOR_VERSION = 0
 MINOR_VERSION = 1
-PATCH_LEVEL = 39
+PATCH_LEVEL = 41
 MY_PATCH_LEVEL =
index 14b5310099aaa015c4c2db148fc6e8c4bb8c7c3d..87a654100e60e44775ee585c2b6f9947016adb43 100644 (file)
@@ -36,7 +36,7 @@ Bar::brew_molecule_p() const
 {    
   Paper_def *p = paper();
   Atom s = p->lookup_l()->bar (type_str_, 
-                              p->get_var ("bar_size"));
+                              p->get_var ("barsize"));
   
   Molecule*output = new Molecule (Atom (s));
   return output;
index 450c12db14a1e75758bf77c692e14b196574103e..ebda7c1ccd0eafb4c00d1291289aeb7ec88c38c7 100644 (file)
@@ -317,28 +317,34 @@ Beam::quantise_left_y (Beam::Pos pos, bool extend_b)
   Real staffline_thickness = paper ()->rule_thickness ();
   Real beam_thickness = 0.48 * (interline_f - staffline_thickness);
 
-  const int QUANTS = 6;
-  Real qy[QUANTS] = {
+  const int QUANTS = 7;
+  Real qy[QUANTS] = 
+  {
     0,
     beam_thickness / 2,
     beam_thickness,
     interline_f / 2 + beam_thickness / 2 + staffline_thickness / 2,
     interline_f,
     interline_f + beam_thickness / 2,
+    interline_f + beam_thickness
   };
   /* 
    ugh, using i triggers gcc 2.7.2.1 internal compiler error (far down):
    for (int i = 0; i < QUANTS; i++)
    */
+  
+  // fixme!
   for (int ii = 0; ii < QUANTS; ii++)
-    qy[ii] -= beam_thickness / 2;
-  Pos qpos[QUANTS] = {
+    qy[ii] -= 0.5 *beam_thickness;
+  Pos qpos[QUANTS] = 
+  {
     HANG,
     STRADDLE,
     SIT,
     INTER,
     HANG,
-    STRADDLE
+    STRADDLE,
+    SIT
   };
 
   // y-values traditionally use internote dimension
@@ -384,7 +390,7 @@ Beam::quantise_left_y (Beam::Pos pos, bool extend_b)
   if (extend_b)
     left_y_ = (dir_ > 0 ? upper_y : lower_y);
   else
-    left_y_ = (upper_y - left_y_ < y - lower_y ? upper_y : lower_y);
+    left_y_ = (upper_y - y < y - lower_y ? upper_y : lower_y);
 }
 
 void
@@ -436,6 +442,8 @@ Beam::set_stemlens ()
       for (int j=0; j < stems_.size (); j++)
        {
          Stem *s = stems_[j];
+         if (s->transparent_b_)
+           continue;
 
          Real x = s->hpos_f () - x0;
          s->set_stemend (left_y_ + slope_f_ * x);
index d4082d494b8d16a70221eab65fe4905ddc588bb7..39b40c77641298d113f3c785c62e0596cbbf9209 100644 (file)
@@ -1,3 +1,12 @@
+/*   
+  debug.cc --  implement debugging routines
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1996,98 Han-Wen Nienhuys <hanwen@stack.nl>
+  
+ */
+#include <malloc.h>
 #include <fstream.h>
 #include <signal.h>
 #include <std/new.h>
@@ -6,7 +15,7 @@
 #include "dstream.hh"
 #include "flower-debug.hh"
 #include "moment.hh"
-
+#include "main.hh"
 Dstream *monitor=0;
 ostream * nulldev =0;
 
@@ -60,9 +69,42 @@ debug_init()
 
 bool check_debug=false;
 
+
+bool check_malloc_b = false;
+
+// #define MEMORY_PARANOID
+
+#ifdef MEMORY_PARANOID
+
+
+void *
+operator new (size_t size)
+{
+  void *result;
+  result = malloc (size);
+  if (check_malloc_b)
+    memfrob (result, size);
+  return result;
+}
+
+
+void 
+operator delete (void *p)
+{
+  if (!p)
+    return ;
+  if (check_malloc_b)
+    memfrob (p, 8);            // ugh.  Need the blocksize.   8 is sysdependant
+
+  free (p);
+}
+#endif // MEMORY_PARANOID
+
 void
 set_debug (bool b)
 {
   check_debug =b;
   set_flower_debug (*monitor, check_debug);
+  check_malloc_b = experimental_features_global_b;
 }
+
index 3e0284b68d3927a27a501f321dc85cbc9daa2b19..b273f6b1020a9fb89d332b6f4c69a6f8573ea082 100644 (file)
@@ -16,7 +16,7 @@ enum Axis {
     NO_AXES=2,
 };
 
-class String;
+#include "string.hh"           // ugh
 
 String axis_name_str (Axis);
 
index 1b9710034c06b92664e819b6c5ae6fac121ecc40..3729be625cf2c3a656294e3488b9baddaf1d41cb 100644 (file)
   beam and that point in the correct direction */
 class Beam:  public Directional_spanner {
 public:
+  /** The beams (especially at small slopes) should be prevented to
+    conflict with the stafflines.  This necessitates some quantisation
+    of start and end posititons of the beam.
+    */
   enum Pos { NONE, SIT = 1, STRADDLE = 2, HANG = 4, INTER = 8 };
-  // ugh, silly C++
-  enum Quantise { NUN, NORMAL, TRADITIONAL };
+  // ugh, silly C++ (Pos::NONE vs Quantise::NONE)  
+  enum Quantise { NUNE, NORMAL, TRADITIONAL };
 
   Link_array<Stem> stems_;
   /// the slope of the beam in posns / point (dimension)   
index 851aa726cfd7543752fe4b1fc31a1efe150ffb46..dcc3f639083471f5bcacb322c369278a7e4d0f54 100644 (file)
@@ -14,6 +14,7 @@
 #include "colhpos.hh"
 
 
+
 /**
   Statistics for the number of columns calced.
  */
index c422e04db8d655094a37aa95b24405c5407bab1d..4df2a4744bcedf0b0fa2e7135ce75e712b0d5e3d 100644 (file)
@@ -20,6 +20,7 @@
 struct Midi_item {
     DECLARE_MY_RUNTIME_TYPEINFO;
     Midi_item (Audio_item* audio_item_l); 
+    virtual ~Midi_item ();
     static String i2varint_str (int i);
     void output (Midi_stream* midi_stream_l) const;
     virtual String str() const = 0;
index 9098a0223888245c8fa0b0397f8fe966b573dd33..6c018c5a9f5e1cacae7debfbae57e542bebe8d87 100644 (file)
   */
 
 class Active_constraints {
-    friend class Inactive_iter;
+  friend class Inactive_iter;
     
 
-    Matrix A,H;
-    Array<int> active;
-    Array<int> inactive;               // actually this is a set, not an array.
-    Ineq_constrained_qp const *opt;
+  Matrix A,H;
+  Array<int> active;
+  Array<int> inactive;         // actually this is a set, not an array.
+  Ineq_constrained_qp const *opt;
 
 public:
-    String status() const;
+  String status() const;
     
-    Vector vec (int k) const { return opt->cons[k]; }
-    Real rhs (int k) const { return opt->consrhs[k]; }
+  Vector vec (int k) const { return opt->cons[k]; }
+  Real rhs (int k) const { return opt->consrhs[k]; }
     
 
-    /** drop constraint. drop constraint k from the active set. k is the index of the
+  /** drop constraint. drop constraint k from the active set. k is the index of the
     constraint in #active#
     
     */
-    void drop (int k);
+  void drop (int k);
     
 
-    /** add constraint j.
+  /** add constraint j.
     add constraint j to the active set j is the index of the
     constraint in #inactive#   
     */
-    void add (int j);
+  void add (int j);
 
-    /// exchange in and out.
-    void exchange (int in, int out) { add (in); drop (out); }
+  /// exchange in and out.
+  void exchange (int in, int out) { add (in); drop (out); }
     
 
-    Vector find_active_optimum (Vector g);
+  Vector find_active_optimum (Vector g);
 
-    /// get lagrange multipliers.
-    Vector get_lagrange (Vector v);
+  /// get lagrange multipliers.
+  Vector get_lagrange (Vector v);
 
-    Active_constraints (Ineq_constrained_qp const *op);
-    /** construct: no constraints active, n vars. Put the equalities
-     into the constraints.  */
+  Active_constraints (Ineq_constrained_qp const *op);
+  /** construct: no constraints active, n vars. Put the equalities
+    into the constraints.  */
 
-    /// check invariants
-    void OK();
+  /// check invariants
+  void OK();
 };
 
 
@@ -76,16 +76,16 @@ public:
     loop through the inactive constraints.
   */
 class Inactive_iter {
-    int j;
-    Active_constraints const* ac;
+  int j;
+  Active_constraints const* ac;
 public:
-    Inactive_iter (Active_constraints const &c) { ac=&c; j=0; }
-    int idx() const { return j; }
-    void operator ++(int) { j++; }
-    int constraint_id() const { return ac->inactive[j]; }
-    Vector vec() const { return ac->vec (constraint_id ()); }
-    Real rhs() const { return ac->rhs (constraint_id ()); }
-    bool ok() const { return j < ac->inactive.size (); }
+  Inactive_iter (Active_constraints const &c) { ac=&c; j=0; }
+  int idx() const { return j; }
+  void operator ++(int) { j++; }
+  int constraint_id() const { return ac->inactive[j]; }
+  Vector vec() const { return ac->vec (constraint_id ()); }
+  Real rhs() const { return ac->rhs (constraint_id ()); }
+  bool ok() const { return j < ac->inactive.size (); }
 };
 
 #endif // QLPSOLVE_HH
index 4bed727ec5f7809b5b79642e53dcf969f2afb92e..17d1997dc534adcbce0afbe88ccab3201171983e 100644 (file)
@@ -38,7 +38,7 @@ Long_option_init theopts[] = {
   {0, "debug", 'd'},
   {1, "init", 'i'},
   {1, "include", 'I'},
-  {0, "no-midi", 'M'},
+  {0, "no-paper", 'M'},
   {0, "no-postscript", 'P'},
   {0, "ignore-version", 'V'},
   {0,0,0}
index 480e0a7969576ac21bd8192e81da1fe48f7f5359..e7da659d1982c1270d1beea7466ae6a78a961b8a 100644 (file)
@@ -62,7 +62,7 @@ Midi_def::print() const
 #ifndef NPRINT
   Music_output_def::print ();
   DOUT << "Midi {";
-  DOUT << "4/min: " << Real (60) / (whole_in_seconds_mom_ * 4);
+  DOUT << "4/min: " << Moment (60) / (whole_in_seconds_mom_ * Moment (4));
   DOUT << "}\n";
 #endif
 }
index 18736a92db2d8bcaa7846b37cd5755540d347a06..a23919f50944d169853102cefd347188d60e75f7 100644 (file)
@@ -265,7 +265,11 @@ Midi_instrument::Midi_instrument (int channel_i, String instrument_str)
   instrument_str_.to_lower();
   channel_i_ = channel_i;
 }
-                                    
+
+Midi_item::~Midi_item ()
+{
+}
+
 String
 Midi_instrument::str() const
 {
index 052f0c48d926b373a7b1510dd189bd6aafda0758..c3568f1b4d695ac13ab5102437ad2e03704c0c2e 100644 (file)
@@ -116,7 +116,7 @@ Paper_def::interline_f() const
 Real
 Paper_def::rule_thickness() const
 {
-  return get_var ("rule_thickness");
+  return get_var ("rulethickness");
 }
 
 Real
@@ -164,9 +164,9 @@ String
 Paper_def::TeX_output_settings_str () const
 {
   String s("\n ");
-  s +=  lookup_p_->texsetting + "%(Tex id)\n";
   for (Assoc_iter<String,Real> i (*real_vars_p_); i.ok(); i++)
     s += String ("\\def\\mudelapaper") + i.key () + "{" + i.val () + "}\n";
+  s +=  lookup_p_->texsetting + "%(Tex id)\n";
   return s;
 }
 
index b4f85ba14c008c6e22334586dc59eab41fababa2..051fb72c50cb5804fda24deb383f80616c2cc209 100644 (file)
@@ -429,6 +429,8 @@ score_body:         {
                $$->header_p_ = $2;
        }
        | score_body Music      {
+               if ($$->music_p_)
+                       $2->warning ("More than one music block");      
                $$->music_p_ = $2;
        }
        | score_body output_def {
@@ -542,6 +544,7 @@ Voice:
 Voice_body:
        /**/            {
                $$ = new Voice;
+               $$->set_spot (THIS->here_input ());
        }
        | Voice_body Music              {
                $$->add ($2);
@@ -587,6 +590,7 @@ translator_change:
                t-> change_to_id_str_ = *$4;
 
                $$ = t;
+               $$->set_spot (THIS->here_input ());
                delete $2;
                delete $4;
        }
@@ -599,6 +603,7 @@ property_def:
                t-> var_str_ = *$4;
                t-> value_ = *$6;
                $$ = t;
+               $$->set_spot (THIS->here_input ());
                delete $2;
                delete $4;
                delete $6;
@@ -623,6 +628,7 @@ Chord_body:
        /**/    {
                $$ = new Chord;
                $$-> multi_level_i_ = 1;
+               $$->set_spot (THIS->here_input ());
        }
        | Chord_body Music {
                $$->add ($2);
@@ -633,6 +639,7 @@ transposed_music:
        TRANSPOSE steno_melodic_req Music {
                $$ = $3;
                $$ -> transpose ($2);
+
                delete $2;
        }
        ;
@@ -963,7 +970,8 @@ pre_request:
 
 voice_command:
        PLET     INT '/' INT {
-               THIS->default_duration_.set_plet ($2,$4);
+               THIS->plet_.type_i_ = $4;
+               THIS->plet_.iso_i_ = $2;
        }
        | DURATION STRING {
                THIS->set_duration_mode (*$2);
index a32773e433ff667968fcafc0d7125b97c759a1d8..97203dec9cd7a1fc7aeddca23d83e58bcdfea161 100644 (file)
@@ -22,6 +22,7 @@
 
 
 Score::Score()
+    : Input()
 {
   header_p_ = 0;
   music_p_ = 0;
index a5081a25b3e17ee5db4558a330e453b4a7bb9f94..5badc05fb00bb0f2e53c445c417aa8a17b361675 100644 (file)
@@ -25,7 +25,8 @@ do_scores()
 {
   for (int i=0; i < global_score_array.size(); i++)
     {
-      Score *&is_p = global_score_array[i];
+//      Score *&is_p = global_score_array[i];
+      Score* is_p = global_score_array[i];
       if (!is_p->header_p_)
        is_p->header_p_ = new Header;
       
index c7be481d4ce4005260fa327d50bad95e77be4a67..cc2471bec7f5f20f74b259658e77071ef19285aa 100644 (file)
@@ -86,7 +86,23 @@ Slur::do_post_processing()
   encompass_arr_.sort (Note_column_compare);
   if (!dir_)
     set_default_dir();
-  Real inter_f = paper()->internote_f ();
+  Real interline_f = paper ()->interline_f ();
+  Real inter_f = interline_f / 2;
+
+  /* 
+   [OSU]: slur and tie placement
+
+   slurs:
+   * x = centre of head (upside-down: inner raakpunt stem) - d * gap
+
+   * y = length < 5ss : horizontal raakpunt + d * 0.25 ss
+     y = length >= 5ss : y next interline - d * 0.25 ss
+     --> height <= 5 length ?? we use <= 3 length, now...
+
+   * suggested gap = ss / 5;
+   */
+  // jcn: 1/5 seems so small?
+  Real gap_f = interline_f / 2; // 5;
   
   Drul_array<Note_column*> extrema;
   extrema[LEFT] = encompass_arr_[0];
@@ -103,10 +119,16 @@ Slur::do_post_processing()
            *(spanned_drul_[d]->width ().length () -0.5*nw_f);
        }
       else if (extrema[d]->stem_l_ && !extrema[d]->stem_l_->transparent_b_) 
-       dy_f_drul_[d] = (int)rint (extrema[d]->stem_l_->height()[dir_]);
+        {
+         dy_f_drul_[d] = (int)rint (extrema[d]->stem_l_->height()[dir_]);
+         /* normal slur from notehead centre to notehead centre, minus gap */
+         dx_f_drul_[d] += -d * gap_f;
+       }
       else 
-       dy_f_drul_[d] = (int)rint (extrema[d]->head_positions_interval()[dir_])* inter_f;
-      dy_f_drul_[d] += dir_ * inter_f;
+        {
+         dy_f_drul_[d] = (int)rint (extrema[d]->head_positions_interval()[dir_])* inter_f;
+       }
+      dy_f_drul_[d] += dir_ * interline_f;
     }
   while ((d *= -1) != LEFT);
 }
index 4cd214b79bc36015a4ea9b5c9bd75220f1c293c7..ea4576e59bcbca41c382fb6d175c8b4584e4a8e6 100644 (file)
@@ -42,7 +42,7 @@ Molecule*
 Staff_symbol::brew_molecule_p() const
 {
   Paper_def * p = paper();
-  Atom rule  = p->lookup_l ()->rule_symbol (p->get_var ("rule_thickness"), 
+  Atom rule  = p->lookup_l ()->rule_symbol (p->get_var ("rulethickness"), 
                                            width ().length ());
   Real height = (no_lines_i_-1) * inter_note_f();
   Molecule * m = new Molecule;
index d756461a6ff784f8e979605f3fd3de83fe9d4316..f13ab2e94d9e91f803c4971cf4f83b673f43ec7a 100644 (file)
@@ -19,6 +19,8 @@
 #include "debug.hh"
 #include "lookup.hh"
 #include "misc.hh"
+#include "paper-def.hh"
+#include "string-convert.hh"
 #include "main.hh"
 
 Atom
@@ -42,7 +44,7 @@ Lookup::beam_element (int sidx, int widx, Real slope) const
 Atom
 Lookup::rule_symbol (Real height, Real width) const
 {
-  Atom bs=(*symtables_p_)("beamslopes")->lookup ("horizontal");
+  Atom bs=(*symtables_p_)("param")->lookup ("rule");
   Array<String> args;
   args.push (print_dimen (height));
   args.push (print_dimen (width));
@@ -55,24 +57,51 @@ Lookup::rule_symbol (Real height, Real width) const
 Atom 
 Lookup::beam(Real &slope, Real width, Real y_thick) const
 {
-  if (postscript_global_b)
-    {
-      return ps_beam (slope, width, y_thick);
-    }
-  else
-    return tex_beam(slope, width);
+  Atom a( postscript_global_b
+         ? ps_beam (slope, width, y_thick)
+         : tex_beam (slope, width));
+  
+  Real slope_y =slope * width; 
+  Real min_y = (0 <? slope_y )- y_thick/2;
+  Real max_y = (0 >? slope_y) + y_thick/2;
+  
+  a.dim_[X_AXIS] = Interval(0, width);
+  a.dim_[Y_AXIS] = Interval(min_y, max_y);
+  return a;
 }
 
 Atom
-Lookup::ps_beam (Real  slope, Real width, Real y_thickness)const
+Lookup::ps_beam (Real slope, Real width, Real y_thickness)const
 {
-  Atom ret;
-  String ps(String (width) + " "+ String(slope) 
-           + " " + String(y_thickness) + " draw_beam");
-  ret.tex_ = String("\\embeddedps{" + ps + "}");
-  ret.dim_[X_AXIS] = Interval(0, width);
-  ret.dim_[Y_AXIS] = Interval(0, slope * width + y_thickness);
-  return ret;
+  String ps = "\\embeddedps{\n";
+  ps += String (width) + " "+ String (slope) + " " + String (y_thickness)
+    + " draw_beam}";
+
+  /* 
+   beam parts are rarely wider than 100pt: 
+   precision of 4 yields maximum (half beam spanning half a page)
+   error of: 1%% * 3*72pt === 0.2pt = 0.07mm
+   */
+  String width_str = String_convert::precision_str (width, 4);
+  String slope_str = String_convert::precision_str (slope, 4);
+  String thick_str = String_convert::precision_str (y_thickness, 3);
+  String name = "feta-beum-" + width_str + "-" + slope_str + "-" + thick_str;
+
+  int i;
+  while ((i = name.index_i ('.')) != -1)
+    name[i]=  'x';
+
+
+  String mf = "\\embeddedmf{" + name + "}{\n";
+  mf += "input feta-beum;\n";
+  mf += "drawbeam(" + width_str + "," + slope_str + "," + thick_str + ");\n";
+  mf += "end.\n";
+  mf += "}\n";
+
+  Atom s;
+  s.tex_ = ps + mf;
+  
+  return s;
 }
 
 Atom
@@ -129,8 +158,6 @@ Lookup::tex_beam (Real &slope, Real width) const
 
   Atom ret;
   ret.tex_ = m.TeX_string();
-  ret.dim_.y() = Interval (0,width*slope);
-  ret.dim_.x() = Interval (0,width);
 
   return ret;
 }
index eb140c476853b1de5e86a2d232996baef293ecfd..b0c67cf95b695076f114a93d64a7cff0c8871e21 100644 (file)
@@ -127,7 +127,6 @@ Lookup::half_slur (int dy, Real &dx, Direction dir, int xpart) const
   assert (idx < 256);
   f+=String ("{") + String (idx) + "}";
 
-
   s.tex_ = f;
 
   return s;
@@ -143,12 +142,28 @@ Lookup::ps_slur (Real dy , Real dx, Real dir) const
     + String_convert::double_str (dir) +
     " draw_slur}";
 
-  String mf = "\\embeddedmf{\n";
+  /*
+   slurs are rarely wider than 100pt: 
+   precision of 3 yields maximum (slur spanning page)
+   error of: 1%% * 6*72pt === 0.4pt = 0.14 mm
+   */
+  String dx_str = String_convert::precision_str (dx, 4);
+  String dy_str = String_convert::precision_str (dy, 3);
+  String dir_str = String_convert::int_str ((int)dir);
+  String name = "feta-sleur-" + dx_str + "-" + dy_str + "-" + dir_str;
+  int i = name.index_i ('.');
+  while (i != -1)
+    {
+      *(name.ch_l () + i) = 'x';
+      i = name.index_i ('.');
+    }
+
+  String mf = "\\embeddedmf{" + name + "}{\n";
+  mf += "staffsize\\#:=" 
+    + String_convert::int_str ((int)paper_l_->get_var ("barsize"), "%d")
+    + "pt\\#;\n";
   mf += "input feta-sleur;\n";
-  mf += "draw_slur((0,0),";
-  mf += "(" + String_convert::double_str (dx) + "," 
-    + String_convert::double_str (dy) + "),";
-  mf += String_convert::double_str (dir) + ");\n";
+  mf += "drawslur(" + dx_str + "," + dy_str + "," + dir_str + ");\n";
   mf += "end.\n";
   mf += "}\n";
 
index a181bedde3361eca34c04eb94e19fed8fa749610..fb929047e6eb2f572d5670c0a7b443fdea11c840 100644 (file)
@@ -60,15 +60,29 @@ Tie::do_add_processing()
 void
 Tie::do_post_processing()
 {
-  Real nw_f = paper()->note_width ();
-  Real space_f = paper()->interline_f ();
+  Real nw_f = paper ()->note_width ();
+  Real interline_f = paper ()->interline_f ();
   assert (head_l_drul_[LEFT] || head_l_drul_[RIGHT]);
 
+  /* 
+   [OSU]: slur and tie placement
+
+   ties:
+   * x = inner raakpunt - d * gap
+
+   * y = length < 5ss : horizontal raakpunt
+     y = length >= 5ss : y next interline - d * 0.25 ss
+     --> height <= 5 length ?? we use <= 3 length, now...
+
+   * suggested gap = ss / 5;
+   */
+  // jcn: 1/5 seems so small?
+  Real gap_f = interline_f / 2; // 5;
+
   Direction d = LEFT;
   do
     {
-      dy_f_drul_[d] =  
-       .5 *space_f * (head_l_drul_[d] 
+      dy_f_drul_[d] = .5 * interline_f * (head_l_drul_[d] 
                       ? head_l_drul_[d]->position_i_
                       : head_l_drul_[(Direction)-d]->position_i_);
     }
@@ -78,23 +92,25 @@ Tie::do_post_processing()
     {
       if (head_l_drul_[d] && head_l_drul_[d]->extremal_i_)
        {
-         dy_f_drul_[d] += dir_ * space_f;
-         dx_f_drul_[d] += d * 0.25 * nw_f;
+         /* normal tie between noteheads, with gap of space */
+         dx_f_drul_[d] += -d * (0.5 * nw_f + gap_f);
+         /* attach to outer 3/4 end of head */
+         dy_f_drul_[d] += dir_ * 0.25 * interline_f;
        }
       else if (head_l_drul_[d])
-       dx_f_drul_[d] += d*0.5 * nw_f;
+       {
+         dx_f_drul_[d] += d*0.5 * nw_f;
+       }
       else
        {
          dy_f_drul_[d] = dy_f_drul_[(Direction) -d];
-         dx_f_drul_[d] = -d *(spanned_drul_[d]->width ().length () 
-                              -0.5* nw_f);
+         dx_f_drul_[d] = -d * (spanned_drul_[d]->width ().length () 
+                               -0.5 * nw_f);
        }
     }
   while ((d *= -1) != LEFT);
 }
 
-
-
 void
 Tie::do_substitute_dependency (Score_elem*o, Score_elem*n)
 {
index 83a4a29e0359e7b7506b4d2e4950afbda68f5189..0d2d6795b5b9022c18170d999dd5f352ccc44936 100644 (file)
@@ -146,9 +146,9 @@ CFLAGS = $(ICFLAGS) $(DEFINES) $(INCLUDES) $(USER_CFLAGS) $(EXTRA_CFLAGS)
 # huh, but still, no warnings even provoced with linux's gcc 2.7.2.1?
 
 # -pipe makes it go faster, but is not supported on all platforms. 
+# EXTRA_CXXFLAGS= -fno-rtti -fno-exceptions -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wconversion
 EXTRA_CXXFLAGS= -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wconversion
 
-
 CXXFLAGS = $(CFLAGS) $(USER_CXXFLAGS) $(EXTRA_CXXFLAGS) $(MODULE_CXXFLAGS)
 INCLUDES = -Iinclude -I$(outdir) -I$(include-lib) -I$(libout) -I$(include-flower) -I$(flowerout) 
 CXX_OUTPUT_OPTION = $< -o $@
index 999574b2971007282416c1da8a9dd8baad61dc17..99db45d95621880d1eb1f804dc47356e01995e9c 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Titel: LilyPond
-Versie: 0.1.39
-Inschrijf datum: 05JAN98
+Versie: 0.1.41
+Inschrijf datum: 19JAN98
 Beschrijving: LilyPond is de muziek typesetter van het GNU Project.  
                Het programma genereert muziek in zichtbare of 
                hoorbare vorm uit uit een muzikale definitie file: 
@@ -16,8 +16,8 @@ Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
        jan@digicash.com (Jan Nieuwenhuizen)
 Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys)
 Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
-       395k lilypond-0.1.39.tar.gz 
+       395k lilypond-0.1.41.tar.gz 
 Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
-       395k lilypond-0.1.39.tar.gz 
+       395k lilypond-0.1.41.tar.gz 
 Copi"eer politie: GPL
 End
index 1461f9666e0087d87e23b1d606d34eaaee936b1b..38a1ff5d743ee8b379e59d42db7628063a6856a3 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 0.1.39
-Entered-date: 05JAN98
+Version: 0.1.41
+Entered-date: 19JAN98
 Description: LilyPond is the GNU Project music typesetter.  The program
                generates visual or auditive output from a music 
                definition file: it can typeset formatted sheet music 
@@ -15,8 +15,8 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys)
        jan@digicash.com (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       470k lilypond-0.1.39.tar.gz 
+       470k lilypond-0.1.41.tar.gz 
 Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
-       470k lilypond-0.1.39.tar.gz 
+       470k lilypond-0.1.41.tar.gz 
 Copying-policy: GPL
 End
index b4f4b9e0b7273321ec85ca6d3a64ffa3f8f5c090..1ba3275d60e1a7259ce74064ae418f3b155b4914 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 0.1.39
+Version: 0.1.41
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.39.tar.gz
+Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.41.tar.gz
 Summary: A program for typesetting music.
 URL: http://www.stack.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@stack.nl>
@@ -31,7 +31,7 @@ make -C Documentation gifs
 make prefix="$RPM_BUILD_ROOT/usr" install
 %files
 %doc Documentation/out/AUTHORS.text Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/convert-mudela.text Documentation/out/faq.text Documentation/out/gnu-music.text Documentation/out/index.text Documentation/out/internals.text Documentation/out/language.text Documentation/out/lilypond.text Documentation/out/links.text Documentation/out/literature.text Documentation/out/mi2mu.text Documentation/out/mudela-book.text Documentation/out/mutopia.text Documentation/out/other-packages.text BUGS TODO NEWS DEDICATION ANNOUNCE README
-%doc input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/font.ly input/font20.ly input/gallina.ly input/gallina.tex input/gourlay.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scripts.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/sleur.ly input/slurs.ly input/spacing.ly input/standchen-16.ly input/standchen-16.tex input/standchen-20.ly input/standchen-20.tex input/standchen.ly input/stem.ly input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly input/wtk1-fugue1.ly input/wtk1-fugue2.ly input/wtk1-prelude1.ly Documentation/mudela-course.doc Documentation/mudela-man.doc 
+%doc input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/font-body.ly input/font.ly input/font11.ly input/font13.ly input/font16.ly input/font20.ly input/font26.ly input/gallina.ly input/gallina.tex input/gourlay.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scripts.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/sleur.ly input/slurs.ly input/spacing.ly input/standchen-16.ly input/standchen-16.tex input/standchen-20.ly input/standchen-20.tex input/standchen.ly input/standje.ly input/stem.ly input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly input/wtk1-fugue1.ly input/wtk1-fugue2.ly input/wtk1-prelude1.ly Documentation/mudela-course.doc Documentation/mudela-man.doc 
 %doc Documentation/out/lelie_logo.gif
 /usr/bin/convert-mudela
 /usr/bin/mudela-book
@@ -48,4 +48,5 @@ make prefix="$RPM_BUILD_ROOT/usr" install
 %post
 
 texhash                # takes some time...
+rm `find /var/lib/texmf -name 'feta*pk' -or -name 'feta*tfm'`
 
index 9f9ac9b447a23baafbc65440448015ac9247afb4..799b8758b809516ecf188ead420cd2dc6b81ee72 100644 (file)
@@ -48,4 +48,5 @@ make prefix="$RPM_BUILD_ROOT/usr" install
 %post
 
 texhash                # takes some time...
+rm `find /var/lib/texmf -name 'feta*pk' -or -name 'feta*tfm'`
 
index 68ebc72621657f0008ae6bf1197b2905cb12e90b..00b46f2f99312eb24aae464f6dd1c3ec1a469fa3 100644 (file)
@@ -12,7 +12,8 @@ include ./$(depth)/make/Include.make
 # 
 TEXFILES = $(wildcard *.tex)
 MFFILES = $(wildcard *.mf)
-EXTRA_DISTFILES = $(MFFILES) $(TEXFILES) TODO README
+MFDEPS = mf.dep
+EXTRA_DISTFILES = $(MFFILES) $(TEXFILES) $(MFDEPS) TODO README
 #
 
 FONT_FILES = $(wildcard *[0-9].mf)
@@ -27,7 +28,7 @@ TEXTABLES = $(addprefix $(texout)/, $(FET_FILES:.mf=.tex))
 all: $(LYTABLES) $(TEXTABLES)
 
 localclean:
-       rm -f $(LYTABLES) $(TEXTABLES) $(outdir)/mfdeps
+       rm -f $(LYTABLES) $(TEXTABLES) $(MFDEPS)
 
 $(outdir)/%.dvi: %.mf
        mf $<
@@ -41,7 +42,7 @@ $(outdir)/%.log: %.mf
        rm $(basename $< ).*gf
 
 $(lyout)/%.ly $(texout)/%.tex: $(outdir)/%.log
-       $(depth)/bin/$(outdir)/mf-to-table --ly $(lyout)/$(<F:.log=.ly) --tex $(texout)/$(<F:.log=.tex) $<
+       $(PYTHON) $(depth)/bin/mf-to-table.py --ly $(lyout)/$(<F:.log=.ly) --tex $(texout)/$(<F:.log=.tex) $<
 
 localinstall:
        $(INSTALL) -d $(MFDIR)/public/lilypond
@@ -51,16 +52,13 @@ localuninstall:
        for i in $(MFFILES) ; do rm -f $(MFDIR)/lilypond/$$i; done
        -rmdir $(MFDIR)/public/lilypond/
 
-$(outdir)/mfdeps: $(FONT_FILES)
+$(MFDEPS): $(FONT_FILES)
 # do something silly to avoid barfs if python not installed.
        echo > $@
-       $(depth)/bin/$(outdir)/mf-deps  $^ >> $@
+       $(PYTHON) $(depth)/bin/mf-deps.py  $^ >> $@
 
 # dependencies:
 #
-include $(outdir)/mfdeps
+include $(MFDEPS)
 #
 
-
-
-
index 9724af42b2c3e04735be3a6f75b779703373abe8..bbbfa3a02179038482e643a27445ad8a39c95a24 100644 (file)
--- a/mf/README
+++ b/mf/README
@@ -34,7 +34,8 @@ Staffsize     Numbers         Name
 
 This table is partially taken from [Ross].  Most music is set in No.3,
 but the papersizes usually are bigger than standard printer paper
-(such as A4).
+(such as A4).  If you plot these, you'll notice that the sizes (With
+exception of 26) almost (but not quite) form a arithmetic progression.
 
 [Ross] states that the dies (the stamps to make the symbols) come in
 12 different sizes.
diff --git a/mf/TODO b/mf/TODO
index b1e9c59a826b8c904cbc8b911fb5e13fecc669f0..4607752e699b1f7cf7d1e22bf320c3e378cebda5 100644 (file)
--- a/mf/TODO
+++ b/mf/TODO
@@ -13,3 +13,4 @@
        - 128th flags
        - include important spacing dims in fetalog 
 
+       - more sizes, see readme
index b900b40e55f7e8f4b4ad9d5b9b8cff7413318192..8ab57c66f6b99c360f7bbac6c8d0f160128918ce 100644 (file)
@@ -4,7 +4,7 @@
 
 \font\black=black
 %\font\taupin=musix16
-%\font\fet=font-en-tja16
+
 %\font\vet=vette-beams16
 %\font\slurs=xslhd16
 %\font\specfont=musixspx
index 3b1b79868475f6a97c4cb07bd918551a8657525d..8d53d521501998d98836d8ff7bc69bd448046afe 100644 (file)
@@ -43,8 +43,6 @@ enddef;
 def hround_pixels(expr sharped) = hround(sharped * hppp) enddef;
 def vround_pixels(expr sharped) = vround(sharped * vppp) enddef;
 
-
-
 def tand(expr alpha) = 
        (sind alpha/cosd alpha)
        enddef;
index 62eff2731584be0658c440b2beec62e46fe69bcf..27968efe985dd814c14d49da4938b57e6e096b6d 100644 (file)
@@ -1,8 +1,6 @@
 % vette-beams16.mf
 % part of LilyPond's pretty-but-neat music font
 
-% font_identifier:="font-en-tja16";
-% font_size 16pt#;
 font_identifier:="vette-beams16";
 font_size 16;
 mode_setup;
diff --git a/mf/feta-beams26.mf b/mf/feta-beams26.mf
new file mode 100644 (file)
index 0000000..4cb1def
--- /dev/null
@@ -0,0 +1,14 @@
+% (this was vette-beams16.mf)
+% part of LilyPond's pretty-but-neat music font
+
+%
+%
+
+font_identifier:="feta-beams26";
+font_size 26;
+mode_setup;
+
+staffsize#:=26pt#;
+
+input feta-watzieik;
+end.
diff --git a/mf/feta-black16.mf b/mf/feta-black16.mf
new file mode 100644 (file)
index 0000000..beb6b07
--- /dev/null
@@ -0,0 +1,22 @@
+% feta-test16
+% part of LilyPond's pretty-but-neat music font
+
+
+input feta-autometric;
+fet_beginfont("feta-test", 16);
+staffsize#:=16pt#;
+test:=1;
+
+% smoked cheese
+test := -1;
+
+
+% dem piksels.
+%test := 1;
+
+input feta-generic;
+
+fet_endfont("feta");
+
+end.
+
index 69f7eb9af25cdf6c97d744eba69455faad7e820a..402de0420c4b65c2d2db569078dacc77f45dde67 100644 (file)
@@ -56,7 +56,10 @@ def draw_brevis(expr brevwid) =
                -- z4l -- z4r -- z3r{left} .. z2r{up} -- cycle;
 
        addto currentpicture also currentpicture yscaled -1;
-       addto currentpicture also currentpicture reflectedabout(z4r, z4l);
+       show z4r; show z4l;
+       addto currentpicture also currentpicture 
+               shifted (-x4r,0) xscaled -1 shifted (x4l,0);
+
 enddef;
 
 save uitsteek;
index 98390a6713c99a38675d9ec7faca27abfe4be7bd..9891168c1ef37785ddbe27667644155f22d5a424 100644 (file)
@@ -28,7 +28,7 @@ else:
 %      input feta-bolletjes;   
 %      input feta-banier;
 %      input feta-eindelijk;
-%      input feta-klef;
+       input feta-klef;
 %      input feta-toevallig;
-       input feta-schrift;
+%      input feta-schrift;
 fi
index d65822695ec1212b6c617a3596cdef6efdc54a18..2cf10ca78826931f26477ad0b9fa28e8029fbd18 100644 (file)
@@ -176,7 +176,6 @@ fet_endchar;
 %
 % Inspired by Baerenreiter
 % 
-% FIXME top should be thinner at z8,
 % FIXME bulb should curve (see bass clef)
 % FIXME start (inside) should be little thinner
 % FIXME parametrise.
@@ -260,7 +259,7 @@ def draw_gclef (expr exact_center, reduction)=
 
        center - z10= whatever * downstroke_dir;
        center - z11 =  whatever * downstroke_dir;
-
+       center - z14 = .8 (center - z11);
        penpos1(thinnib, inner_start_angle);
        penpos2(thickness, 90);
        penpos3(thinnib, -90 + inner_thick_end);
@@ -272,10 +271,10 @@ def draw_gclef (expr exact_center, reduction)=
        penpos9(1.4 thickness, -80);  % ugh
        penpos10(whatever, downstroke_angle + 10);
        penpos11(thinnib, downstroke_angle + 90);
+       penpos14(thinnib, downstroke_angle + 90);
        penpos12(thinnib, -90);
        penpos13(3 thinnib, 180);
 
-       
        filldraw z2l{right}   .. z3l.. z4l{left} .. z5l{up}  .. z7l{up} 
                %.. z8l 
                .. tension 1.2 
@@ -297,7 +296,7 @@ def draw_gclef (expr exact_center, reduction)=
        draw_bulb(-1,  z13l, lft z13r, 6/14 reduced_il, 1.0);
 
        pickup pencircle scaled (thinpen);
-       draw z10 --- z11 .. z12{left};
+       draw z10 --- z14 .. z11  .. tension 0.85 ..  z12{left};
 
        penlabels(range 1 thru 15);
 enddef;
diff --git a/mf/feta-nummer12.mf b/mf/feta-nummer12.mf
new file mode 100644 (file)
index 0000000..fe599fd
--- /dev/null
@@ -0,0 +1,9 @@
+% feta-nummer10.mf
+% part of LilyPond's pretty-but-neat music font
+
+size:=12;
+
+input feta-nummer-generic;
+
+end.
+
diff --git a/mf/feta-nummer3.mf b/mf/feta-nummer3.mf
new file mode 100644 (file)
index 0000000..d9c7964
--- /dev/null
@@ -0,0 +1,10 @@
+% feta-nummer4.mf
+% part of LilyPond's pretty-but-neat music font
+
+% size:=4;
+size:=16*3/15;
+
+input feta-nummer-generic.mf;
+
+end.
+
diff --git a/mf/feta-nummer6.mf b/mf/feta-nummer6.mf
new file mode 100644 (file)
index 0000000..3daff78
--- /dev/null
@@ -0,0 +1,10 @@
+% feta-nummer5.mf
+% part of LilyPond's pretty-but-neat music font
+
+% size:=5;
+size:=20*6/15;
+
+input feta-nummer-generic.mf;
+
+end.
+
diff --git a/mf/feta-nummer7.mf b/mf/feta-nummer7.mf
new file mode 100644 (file)
index 0000000..a098d0f
--- /dev/null
@@ -0,0 +1,10 @@
+% feta-nummer5.mf
+% part of LilyPond's pretty-but-neat music font
+
+% size:=5;
+size:=26*4/15;
+
+input feta-nummer-generic.mf;
+
+end.
+
index 8c411fb3820b4f70df4a2da0a430d3236cc0dc6a..8ee650e9ade74c18a70ea1c293095573165d2b5a 100644 (file)
@@ -1,61 +1,85 @@
-% feta-sleur.mf 
+% 
+% feta-sleur.mf --  implement runtime MF slurs
+% 
+% source file of LilyPond's pretty-but-neat music font
+% 
+% (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+% & Han-Wen Nienhuys <hanwen@stack.nl>
+% 
+
 mode_setup;
-thin:=.2pt;
-thick:=5thin;
-ybow:=.2;
-abow:=1.5;
 
-def draw_slur(expr a,b,d) =
-       beginchar(0,0,0,0) "Embedded mf";
-               % huh, factor 8?
-               z1=8a;
-               z2=8b;
-               save alpha; alpha=angle(z2-z1);
-               save len; len=length(z2-z1);
-               z3=(0,0);
-               z4=(len/2,len*ybow*d);
-               z5=(len,0);
-               save beta; beta=abow*angle(z4-z3);
-               penpos3(thin,90+beta);
-               penpos4(thick,90);
-               penpos5(thin,90-beta);
-               pickup pencircle;
-               path boogje;
-               boogje = z3l{dir(beta)}..z4l{right}..z5l{dir(-beta)}
-                       ..z5r{dir(180-beta)}..z4r{left}
-                       ..z3r{dir(180+beta)}..cycle;
-               penlabels(1,2,3,4,5);
-               boogje := boogje rotated alpha;
-               % silly mo*tex convenction
-%              boogje := boogje shifted ((x1-x2)/2,0);
-               fill boogje;
-               endchar;
-       enddef;
+% staffsize#=16pt#;
+
+pi:=3.14159;
 
-def sign(expr a) =
-       ((abs(a))/(a))
+def atan(expr x) = 
+       (angle(1,x)*pi/180)
        enddef;
 
-def xdraw_slur(expr a,b,d) =
+%breapth, width, depth, height
+
+% urgh
+% having mf would be nice if only from a "use the source" point of view.
+%
+% getslurcontrol:
+%        slurhtlimit 90 div /slur_alpha exch def
+%        slurratio 60 div slur_alpha div  /slur_beta  exch def
+%        slur_beta mul 1 atan slur_alpha mul
+%
+% draw_slur:
+%        slur_b getslurcontrol 
+%        slur_dir mul /slur_ht exch def
+%        slur_b getslurcontrol /slur_indent exch def       
+%
+
+interline#:=staffsize#/4;
+stafflinethickness#:=0.1interline#;
+sleur_pen#:=stafflinethickness#;
+slurheightlimit#:=staffsize#/2;
+% staffrulethickness 1.5 mul  /slur_thick exch def
+slurthick#:=3/2stafflinethickness#;
+
+define_pixels(staffsize,interline,stafflinethickness);
+define_pixels(sleur_pen,slurheightlimit,slurthick);
+
+sluralpha:=slurheightlimit#*pi/2;
+% slurratio:=1/3;
+slurratio:=0.3333;
+slurbeta:=3/4*pi*slurratio/sluralpha;
+
+def drawslur(expr dxs,dys,d) =
        beginchar(0,0,0,0) "Embedded mf";
-               % huh, factor 8?
-               z1=8a;
-               z3=8b;
-               save alpha; alpha=angle(z3-z1);
-               z2=(1/2[x1,x3],1/2[y1,y3])+d*ybow*(x3-x1)*dir(alpha+90);
-               save beta; beta=d*sign(y3-y1)*abow*angle(z2-z1)-alpha;
-%              message "d: "&decimal d;
-%              message "dy: "& decimal sign(y3-y1);
-%              message "alpha: "&decimal alpha;
-%              message "beta: "&decimal beta;
-               penpos1(thin,alpha+beta+90);
-               penpos2(thick,alpha+90);
-               penpos3(thin,alpha-beta+90);
-               pickup pencircle;
-               fill z1l{dir(alpha+beta)}..z2l{dir(alpha)}
-                       ..z3l{dir(alpha-beta)}..z3r{dir(180+alpha-beta)}
-                       ..z2r{dir(180+alpha)}..z1r{dir(180+alpha+beta)}
-                       ..cycle;
-               penlabels(1,2,3);
+               dx#:=dxs*1pt#;
+               dy#:=dys*1pt#;
+               define_pixels(dx,dy);
+               b#:=length(dx#,dy#);
+%              message "sluralpha: "&decimal (sluralpha);
+%              message "slurbeta: "&decimal (slurbeta);
+%              message "s*b: "&decimal (slurbeta*b#);
+%              indent#:=sluralpha*atan(slurbeta*b#);
+               % ugh: huh? 2/5
+               indent#:=2/5*sluralpha*atan(slurbeta*b#);
+               define_pixels(b,indent);
+               height:=indent*d;
+               z1=(0,0);
+               z2=(b,0);
+               z3=(indent,height);
+               z4=(b-indent,height);
+               z5=z4-(0,d*slurthick);
+               z6=z3-(0,d*slurthick);
+               path boogje;
+               boogje=z1..controls z3 and z4..z2..controls z5 and z6..cycle;
+               boogje:=boogje rotated angle(dxs,dys);
+               pickup pencircle scaled sleur_pen;
+               filldraw boogje;
+               show z1;
+               show z2;
+               show z3;
+               show z4;
+               show z5;
+               show z6;
                endchar;
        enddef;
+
+% draw_slur(10,10,1);
index c7c8db872b5b42620c4c56a499e50de7ae344355..3d2ed3cea24a5753346a70045d28856d0e9be4d3 100644 (file)
@@ -1,9 +1,6 @@
 % feta-test16
 % part of LilyPond's pretty-but-neat music font
 
-% font_identifier:="font-en-tja16";
-% font_size 16pt#;
-
 input feta-autometric;
 fet_beginfont("feta-test", 16);
 staffsize#:=16pt#;
@@ -18,7 +15,7 @@ test:=1;
 
 input feta-generic;
 
-fet_endfont("font-en-tja");
+fet_endfont("feta");
 
 end.
 
index b70e54a4f6e536232487fde486e6c787d5b457b4..72f9a877588dac4f8e082b495ae661e7931c8033 100644 (file)
@@ -1,8 +1,6 @@
 % feta-test20
 % part of LilyPond's pretty-but-neat music font
 
-% font_identifier:="font-en-tja20";
-% font_size 20pt#;
 
 input feta-autometric;
 fet_beginfont("feta-test", 20);
@@ -18,7 +16,7 @@ test:=1;
 
 input feta-generic;
 
-fet_endfont("font-en-tja");
+fet_endfont("feta");
 
 end.
 
diff --git a/mf/feta11.mf b/mf/feta11.mf
new file mode 100644 (file)
index 0000000..95785f3
--- /dev/null
@@ -0,0 +1,16 @@
+% feta16.mf
+% part of LilyPond's pretty-but-neat music font
+
+
+input feta-autometric;
+fet_beginfont("feta", 11);
+staffsize#:=11pt#;
+test:=0;
+
+
+input feta-generic;
+
+fet_endfont("feta");
+
+end.
+
diff --git a/mf/feta13.mf b/mf/feta13.mf
new file mode 100644 (file)
index 0000000..161d9d9
--- /dev/null
@@ -0,0 +1,16 @@
+% feta16.mf
+% part of LilyPond's pretty-but-neat music font
+
+
+input feta-autometric;
+fet_beginfont("feta", 13);
+staffsize#:=13pt#;
+test:=0;
+
+
+input feta-generic;
+
+fet_endfont("feta");
+
+end.
+
index bcc8c41c7f47ac781f31c701a41baa027bbb8c48..8d7d9538abe2b8c198cb7853d14970299043ec8c 100644 (file)
@@ -1,9 +1,6 @@
-% font-en-tja16.mf
+% feta16.mf
 % part of LilyPond's pretty-but-neat music font
 
-% font_identifier:="font-en-tja16";
-% font_size 16pt#;
-
 input feta-autometric;
 fet_beginfont("feta", 16);
 staffsize#:=16pt#;
diff --git a/mf/feta19.mf b/mf/feta19.mf
new file mode 100644 (file)
index 0000000..ef9a48c
--- /dev/null
@@ -0,0 +1,18 @@
+% feta16.mf
+% part of LilyPond's pretty-but-neat music font
+
+% font_identifier:="feta16";
+% font_size 16pt#;
+
+input feta-autometric;
+fet_beginfont("feta", 19);
+staffsize#:=19pt#;
+test:=0;
+
+
+input feta-generic;
+
+fet_endfont("feta");
+
+end.
+
index f4cbfaa95f9010a8a8cce9a27c48d9f7bb0a4000..e2dfa7dd066f7e56e6eed91f7cd1ff9c3e1be903 100644 (file)
@@ -1,4 +1,4 @@
-% font-en-tja20.mf
+% feta20.mf
 % part of LilyPond's pretty-but-neat music font
 
 staffsize#:=20pt#;
diff --git a/mf/feta23.mf b/mf/feta23.mf
new file mode 100644 (file)
index 0000000..b4dcaea
--- /dev/null
@@ -0,0 +1,18 @@
+% feta16.mf
+% part of LilyPond's pretty-but-neat music font
+
+% font_identifier:="feta16";
+% font_size 16pt#;
+
+input feta-autometric;
+fet_beginfont("feta", 22.5);
+staffsize#:=22.5pt#;
+test:=0;
+
+
+input feta-generic;
+
+fet_endfont("feta");
+
+end.
+
diff --git a/mf/feta26.mf b/mf/feta26.mf
new file mode 100644 (file)
index 0000000..add32d8
--- /dev/null
@@ -0,0 +1,16 @@
+% feta16.mf
+% part of LilyPond's pretty-but-neat music font
+
+input feta-autometric;
+fet_beginfont("feta", 26);
+staffsize#:=26pt#;
+test:=0;
+
+
+input feta-generic;
+
+fet_endfont("feta");
+
+end.
+
+
diff --git a/mf/mf.dep b/mf/mf.dep
new file mode 100644 (file)
index 0000000..590fb52
--- /dev/null
+++ b/mf/mf.dep
@@ -0,0 +1,99 @@
+
+# Automatically generated by mf-deps.py 0.2
+
+out/feta-beams16.log: feta-beams16.mf feta-watzieik.mf feta-params.mf
+out/feta-beams16.dvi: feta-beams16.mf feta-watzieik.mf feta-params.mf
+out/feta-beams16.2602gf: feta-beams16.mf feta-watzieik.mf feta-params.mf
+out/feta-beams16.tfm: feta-beams16.mf feta-watzieik.mf feta-params.mf
+out/feta-beams20.log: feta-beams20.mf feta-watzieik.mf feta-params.mf
+out/feta-beams20.dvi: feta-beams20.mf feta-watzieik.mf feta-params.mf
+out/feta-beams20.2602gf: feta-beams20.mf feta-watzieik.mf feta-params.mf
+out/feta-beams20.tfm: feta-beams20.mf feta-watzieik.mf feta-params.mf
+out/feta-beams26.log: feta-beams26.mf feta-watzieik.mf feta-params.mf
+out/feta-beams26.dvi: feta-beams26.mf feta-watzieik.mf feta-params.mf
+out/feta-beams26.2602gf: feta-beams26.mf feta-watzieik.mf feta-params.mf
+out/feta-beams26.tfm: feta-beams26.mf feta-watzieik.mf feta-params.mf
+out/feta-black16.log: feta-black16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-black16.dvi: feta-black16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-black16.2602gf: feta-black16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-black16.tfm: feta-black16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-braces16.log: feta-braces16.mf feta-beugel.mf feta-macros.mf feta-params.mf
+out/feta-braces16.dvi: feta-braces16.mf feta-beugel.mf feta-macros.mf feta-params.mf
+out/feta-braces16.2602gf: feta-braces16.mf feta-beugel.mf feta-macros.mf feta-params.mf
+out/feta-braces16.tfm: feta-braces16.mf feta-beugel.mf feta-macros.mf feta-params.mf
+out/feta-braces20.log: feta-braces20.mf feta-beugel.mf feta-macros.mf feta-params.mf
+out/feta-braces20.dvi: feta-braces20.mf feta-beugel.mf feta-macros.mf feta-params.mf
+out/feta-braces20.2602gf: feta-braces20.mf feta-beugel.mf feta-macros.mf feta-params.mf
+out/feta-braces20.tfm: feta-braces20.mf feta-beugel.mf feta-macros.mf feta-params.mf
+out/feta-din10.log: feta-din10.mf feta-autometric.mf feta-ital-f.mf feta-ital-p.mf feta-ital-m.mf feta-ital-r.mf feta-ital-s.mf feta-ital-z.mf
+out/feta-din10.dvi: feta-din10.mf feta-autometric.mf feta-ital-f.mf feta-ital-p.mf feta-ital-m.mf feta-ital-r.mf feta-ital-s.mf feta-ital-z.mf
+out/feta-din10.2602gf: feta-din10.mf feta-autometric.mf feta-ital-f.mf feta-ital-p.mf feta-ital-m.mf feta-ital-r.mf feta-ital-s.mf feta-ital-z.mf
+out/feta-din10.tfm: feta-din10.mf feta-autometric.mf feta-ital-f.mf feta-ital-p.mf feta-ital-m.mf feta-ital-r.mf feta-ital-s.mf feta-ital-z.mf
+out/feta-nummer10.log: feta-nummer10.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer10.dvi: feta-nummer10.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer10.2602gf: feta-nummer10.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer10.tfm: feta-nummer10.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer12.log: feta-nummer12.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer12.dvi: feta-nummer12.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer12.2602gf: feta-nummer12.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer12.tfm: feta-nummer12.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer3.log: feta-nummer3.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer3.dvi: feta-nummer3.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer3.2602gf: feta-nummer3.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer3.tfm: feta-nummer3.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer4.log: feta-nummer4.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer4.dvi: feta-nummer4.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer4.2602gf: feta-nummer4.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer4.tfm: feta-nummer4.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer5.log: feta-nummer5.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer5.dvi: feta-nummer5.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer5.2602gf: feta-nummer5.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer5.tfm: feta-nummer5.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer6.log: feta-nummer6.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer6.dvi: feta-nummer6.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer6.2602gf: feta-nummer6.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer6.tfm: feta-nummer6.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer7.log: feta-nummer7.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer7.dvi: feta-nummer7.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer7.2602gf: feta-nummer7.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer7.tfm: feta-nummer7.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer8.log: feta-nummer8.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer8.dvi: feta-nummer8.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer8.2602gf: feta-nummer8.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-nummer8.tfm: feta-nummer8.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf
+out/feta-test16.log: feta-test16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-test16.dvi: feta-test16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-test16.2602gf: feta-test16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-test16.tfm: feta-test16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-test20.log: feta-test20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-test20.dvi: feta-test20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-test20.2602gf: feta-test20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta-test20.tfm: feta-test20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta11.log: feta11.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta11.dvi: feta11.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta11.2602gf: feta11.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta11.tfm: feta11.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta13.log: feta13.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta13.dvi: feta13.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta13.2602gf: feta13.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta13.tfm: feta13.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta16.log: feta16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta16.dvi: feta16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta16.2602gf: feta16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta16.tfm: feta16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta19.log: feta19.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta19.dvi: feta19.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta19.2602gf: feta19.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta19.tfm: feta19.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta20.log: feta20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta20.dvi: feta20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta20.2602gf: feta20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta20.tfm: feta20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta23.log: feta23.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta23.dvi: feta23.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta23.2602gf: feta23.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta23.tfm: feta23.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta26.log: feta26.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta26.dvi: feta26.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta26.2602gf: feta26.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
+out/feta26.tfm: feta26.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf
index 9423959b6dd9eef453b72718fcdb47c9be81140b..76754ebc80d04c4460cc4c631dad23a066fe3a40 100644 (file)
@@ -22,6 +22,7 @@ class Mudela_item
 {
 public:
     Mudela_item (Mudela_column* mudela_column_l);
+    virtual ~Mudela_item ();
     
     virtual Moment at_mom();
     virtual Moment duration_mom();
index b4b1d46b290daec0a48c6e1b73ef57fb30d5913b..d70200e3c5bd00ad682bd00c16acad43cec0b616 100644 (file)
@@ -17,6 +17,10 @@ Mudela_item::Mudela_item (Mudela_column* mudela_column_l)
   mudela_column_l_ = mudela_column_l;
 }
 
+Mudela_item::~Mudela_item ()
+{
+}
+
 Moment
 Mudela_item::at_mom ()
 {
diff --git a/tex/feta11.tex b/tex/feta11.tex
new file mode 100644 (file)
index 0000000..cc41d5b
--- /dev/null
@@ -0,0 +1,78 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta11.log
+% name
+% rests
+\fetdef\wholerest{0}
+\fetdef\halfrest{1}
+\fetdef\outsidewholerest{2}
+\fetdef\outsidehalfrest{3}
+\fetdef\quartrest{4}
+\fetdef\eighthrest{5}
+\fetdef\sixteenthrest{6}
+\fetdef\thirtysecondrest{7}
+\fetdef\sixtyfourthrest{8}
+\fetdef\hundredtwentyeighthrest{9}
+
+% accidentals
+\fetdef\sharp{10}
+\fetdef\natural{11}
+\fetdef\flat{12}
+\fetdef\flatflat{13}
+\fetdef\sharpsharp{14}
+
+% dots
+\fetdef\dot{15}
+\fetdef\repeatcolon{16}
+
+% balls
+\fetdef\brevisball{17}
+\fetdef\brevisledger{18}
+\fetdef\longaball{19}
+\fetdef\longaledger{20}
+\fetdef\wholeball{21}
+\fetdef\wholeledger{22}
+\fetdef\halfball{23}
+\fetdef\halfledger{24}
+\fetdef\quartball{25}
+\fetdef\quartledger{26}
+
+% scripts
+\fetdef\ufermata{27}
+\fetdef\dfermata{28}
+\fetdef\sforzatoaccent{29}
+\fetdef\staccato{30}
+\fetdef\ustaccatissimo{31}
+\fetdef\dstaccatissimo{32}
+\fetdef\tenuto{33}
+\fetdef\umarcato{34}
+\fetdef\dmarcato{35}
+\fetdef\ouvert{36}
+\fetdef\plusstop{37}
+\fetdef\upbow{38}
+\fetdef\downbow{39}
+\fetdef\turn{40}
+\fetdef\trill{41}
+\fetdef\pedalheel{42}
+\fetdef\pedaltoe{43}
+\fetdef\flageolet{44}
+
+% flags
+\fetdef\eighthflag{45}
+\fetdef\sixteenthflag{46}
+\fetdef\thirtysecondflag{47}
+\fetdef\sixtyfourthflag{48}
+\fetdef\deighthflag{49}
+\fetdef\dsixteenthflag{50}
+\fetdef\dthirtysecondflag{51}
+\fetdef\dsixtyfourthflag{52}
+
+% clefs
+\fetdef\altoclef{53}
+\fetdef\caltoclef{54}
+\fetdef\bassclef{55}
+\fetdef\cbassclef{56}
+\fetdef\violinclef{57}
+\fetdef\cviolinclef{58}
+
diff --git a/tex/feta13.tex b/tex/feta13.tex
new file mode 100644 (file)
index 0000000..7241274
--- /dev/null
@@ -0,0 +1,78 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta13.log
+% name
+% rests
+\fetdef\wholerest{0}
+\fetdef\halfrest{1}
+\fetdef\outsidewholerest{2}
+\fetdef\outsidehalfrest{3}
+\fetdef\quartrest{4}
+\fetdef\eighthrest{5}
+\fetdef\sixteenthrest{6}
+\fetdef\thirtysecondrest{7}
+\fetdef\sixtyfourthrest{8}
+\fetdef\hundredtwentyeighthrest{9}
+
+% accidentals
+\fetdef\sharp{10}
+\fetdef\natural{11}
+\fetdef\flat{12}
+\fetdef\flatflat{13}
+\fetdef\sharpsharp{14}
+
+% dots
+\fetdef\dot{15}
+\fetdef\repeatcolon{16}
+
+% balls
+\fetdef\brevisball{17}
+\fetdef\brevisledger{18}
+\fetdef\longaball{19}
+\fetdef\longaledger{20}
+\fetdef\wholeball{21}
+\fetdef\wholeledger{22}
+\fetdef\halfball{23}
+\fetdef\halfledger{24}
+\fetdef\quartball{25}
+\fetdef\quartledger{26}
+
+% scripts
+\fetdef\ufermata{27}
+\fetdef\dfermata{28}
+\fetdef\sforzatoaccent{29}
+\fetdef\staccato{30}
+\fetdef\ustaccatissimo{31}
+\fetdef\dstaccatissimo{32}
+\fetdef\tenuto{33}
+\fetdef\umarcato{34}
+\fetdef\dmarcato{35}
+\fetdef\ouvert{36}
+\fetdef\plusstop{37}
+\fetdef\upbow{38}
+\fetdef\downbow{39}
+\fetdef\turn{40}
+\fetdef\trill{41}
+\fetdef\pedalheel{42}
+\fetdef\pedaltoe{43}
+\fetdef\flageolet{44}
+
+% flags
+\fetdef\eighthflag{45}
+\fetdef\sixteenthflag{46}
+\fetdef\thirtysecondflag{47}
+\fetdef\sixtyfourthflag{48}
+\fetdef\deighthflag{49}
+\fetdef\dsixteenthflag{50}
+\fetdef\dthirtysecondflag{51}
+\fetdef\dsixtyfourthflag{52}
+
+% clefs
+\fetdef\altoclef{53}
+\fetdef\caltoclef{54}
+\fetdef\bassclef{55}
+\fetdef\cbassclef{56}
+\fetdef\violinclef{57}
+\fetdef\cviolinclef{58}
+
index c7d3d1096032f32f8ec3bcad3c22a9acf4ddc430..db0adac5e9105a006c0318cbf72c79a14c2a1d70 100644 (file)
@@ -1,5 +1,5 @@
-% Creator: mf-to-table.py version 0.4
-% Automatically generated on Mon Jan  5 15:23:51 1998
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
 % Do not edit
 % input from out/feta16.log
 % name
diff --git a/tex/feta19.tex b/tex/feta19.tex
new file mode 100644 (file)
index 0000000..992b3bf
--- /dev/null
@@ -0,0 +1,78 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta19.log
+% name
+% rests
+\fetdef\wholerest{0}
+\fetdef\halfrest{1}
+\fetdef\outsidewholerest{2}
+\fetdef\outsidehalfrest{3}
+\fetdef\quartrest{4}
+\fetdef\eighthrest{5}
+\fetdef\sixteenthrest{6}
+\fetdef\thirtysecondrest{7}
+\fetdef\sixtyfourthrest{8}
+\fetdef\hundredtwentyeighthrest{9}
+
+% accidentals
+\fetdef\sharp{10}
+\fetdef\natural{11}
+\fetdef\flat{12}
+\fetdef\flatflat{13}
+\fetdef\sharpsharp{14}
+
+% dots
+\fetdef\dot{15}
+\fetdef\repeatcolon{16}
+
+% balls
+\fetdef\brevisball{17}
+\fetdef\brevisledger{18}
+\fetdef\longaball{19}
+\fetdef\longaledger{20}
+\fetdef\wholeball{21}
+\fetdef\wholeledger{22}
+\fetdef\halfball{23}
+\fetdef\halfledger{24}
+\fetdef\quartball{25}
+\fetdef\quartledger{26}
+
+% scripts
+\fetdef\ufermata{27}
+\fetdef\dfermata{28}
+\fetdef\sforzatoaccent{29}
+\fetdef\staccato{30}
+\fetdef\ustaccatissimo{31}
+\fetdef\dstaccatissimo{32}
+\fetdef\tenuto{33}
+\fetdef\umarcato{34}
+\fetdef\dmarcato{35}
+\fetdef\ouvert{36}
+\fetdef\plusstop{37}
+\fetdef\upbow{38}
+\fetdef\downbow{39}
+\fetdef\turn{40}
+\fetdef\trill{41}
+\fetdef\pedalheel{42}
+\fetdef\pedaltoe{43}
+\fetdef\flageolet{44}
+
+% flags
+\fetdef\eighthflag{45}
+\fetdef\sixteenthflag{46}
+\fetdef\thirtysecondflag{47}
+\fetdef\sixtyfourthflag{48}
+\fetdef\deighthflag{49}
+\fetdef\dsixteenthflag{50}
+\fetdef\dthirtysecondflag{51}
+\fetdef\dsixtyfourthflag{52}
+
+% clefs
+\fetdef\altoclef{53}
+\fetdef\caltoclef{54}
+\fetdef\bassclef{55}
+\fetdef\cbassclef{56}
+\fetdef\violinclef{57}
+\fetdef\cviolinclef{58}
+
index f45420f5c0b896d8aaffcfbc726df896084d7e59..7b3b459a2ad3018e077b16cf92ca1162c830fd88 100644 (file)
@@ -1,5 +1,5 @@
-% Creator: mf-to-table.py version 0.4
-% Automatically generated on Mon Jan  5 15:23:56 1998
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
 % Do not edit
 % input from out/feta20.log
 % name
diff --git a/tex/feta23.tex b/tex/feta23.tex
new file mode 100644 (file)
index 0000000..031ebf9
--- /dev/null
@@ -0,0 +1,78 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta23.log
+% name
+% rests
+\fetdef\wholerest{0}
+\fetdef\halfrest{1}
+\fetdef\outsidewholerest{2}
+\fetdef\outsidehalfrest{3}
+\fetdef\quartrest{4}
+\fetdef\eighthrest{5}
+\fetdef\sixteenthrest{6}
+\fetdef\thirtysecondrest{7}
+\fetdef\sixtyfourthrest{8}
+\fetdef\hundredtwentyeighthrest{9}
+
+% accidentals
+\fetdef\sharp{10}
+\fetdef\natural{11}
+\fetdef\flat{12}
+\fetdef\flatflat{13}
+\fetdef\sharpsharp{14}
+
+% dots
+\fetdef\dot{15}
+\fetdef\repeatcolon{16}
+
+% balls
+\fetdef\brevisball{17}
+\fetdef\brevisledger{18}
+\fetdef\longaball{19}
+\fetdef\longaledger{20}
+\fetdef\wholeball{21}
+\fetdef\wholeledger{22}
+\fetdef\halfball{23}
+\fetdef\halfledger{24}
+\fetdef\quartball{25}
+\fetdef\quartledger{26}
+
+% scripts
+\fetdef\ufermata{27}
+\fetdef\dfermata{28}
+\fetdef\sforzatoaccent{29}
+\fetdef\staccato{30}
+\fetdef\ustaccatissimo{31}
+\fetdef\dstaccatissimo{32}
+\fetdef\tenuto{33}
+\fetdef\umarcato{34}
+\fetdef\dmarcato{35}
+\fetdef\ouvert{36}
+\fetdef\plusstop{37}
+\fetdef\upbow{38}
+\fetdef\downbow{39}
+\fetdef\turn{40}
+\fetdef\trill{41}
+\fetdef\pedalheel{42}
+\fetdef\pedaltoe{43}
+\fetdef\flageolet{44}
+
+% flags
+\fetdef\eighthflag{45}
+\fetdef\sixteenthflag{46}
+\fetdef\thirtysecondflag{47}
+\fetdef\sixtyfourthflag{48}
+\fetdef\deighthflag{49}
+\fetdef\dsixteenthflag{50}
+\fetdef\dthirtysecondflag{51}
+\fetdef\dsixtyfourthflag{52}
+
+% clefs
+\fetdef\altoclef{53}
+\fetdef\caltoclef{54}
+\fetdef\bassclef{55}
+\fetdef\cbassclef{56}
+\fetdef\violinclef{57}
+\fetdef\cviolinclef{58}
+
diff --git a/tex/feta26.tex b/tex/feta26.tex
new file mode 100644 (file)
index 0000000..a8d47ee
--- /dev/null
@@ -0,0 +1,78 @@
+% Creator: mf-to-table.py version 0.5
+% Automatically generated on
+% Do not edit
+% input from out/feta26.log
+% name
+% rests
+\fetdef\wholerest{0}
+\fetdef\halfrest{1}
+\fetdef\outsidewholerest{2}
+\fetdef\outsidehalfrest{3}
+\fetdef\quartrest{4}
+\fetdef\eighthrest{5}
+\fetdef\sixteenthrest{6}
+\fetdef\thirtysecondrest{7}
+\fetdef\sixtyfourthrest{8}
+\fetdef\hundredtwentyeighthrest{9}
+
+% accidentals
+\fetdef\sharp{10}
+\fetdef\natural{11}
+\fetdef\flat{12}
+\fetdef\flatflat{13}
+\fetdef\sharpsharp{14}
+
+% dots
+\fetdef\dot{15}
+\fetdef\repeatcolon{16}
+
+% balls
+\fetdef\brevisball{17}
+\fetdef\brevisledger{18}
+\fetdef\longaball{19}
+\fetdef\longaledger{20}
+\fetdef\wholeball{21}
+\fetdef\wholeledger{22}
+\fetdef\halfball{23}
+\fetdef\halfledger{24}
+\fetdef\quartball{25}
+\fetdef\quartledger{26}
+
+% scripts
+\fetdef\ufermata{27}
+\fetdef\dfermata{28}
+\fetdef\sforzatoaccent{29}
+\fetdef\staccato{30}
+\fetdef\ustaccatissimo{31}
+\fetdef\dstaccatissimo{32}
+\fetdef\tenuto{33}
+\fetdef\umarcato{34}
+\fetdef\dmarcato{35}
+\fetdef\ouvert{36}
+\fetdef\plusstop{37}
+\fetdef\upbow{38}
+\fetdef\downbow{39}
+\fetdef\turn{40}
+\fetdef\trill{41}
+\fetdef\pedalheel{42}
+\fetdef\pedaltoe{43}
+\fetdef\flageolet{44}
+
+% flags
+\fetdef\eighthflag{45}
+\fetdef\sixteenthflag{46}
+\fetdef\thirtysecondflag{47}
+\fetdef\sixtyfourthflag{48}
+\fetdef\deighthflag{49}
+\fetdef\dsixteenthflag{50}
+\fetdef\dthirtysecondflag{51}
+\fetdef\dsixtyfourthflag{52}
+
+% clefs
+\fetdef\altoclef{53}
+\fetdef\caltoclef{54}
+\fetdef\bassclef{55}
+\fetdef\cbassclef{56}
+\fetdef\violinclef{57}
+\fetdef\cviolinclef{58}
+
index ab31cb344f4df2d76e45abb21035a9828d014a95..0552dd37ae603a96ba87f2a3e09087b66491fbcc 100644 (file)
@@ -1,40 +1,61 @@
 % fetdefs.tex
-% encapsulating tex backend for auto-generated font-en-tja definitions
+% encapsulating tex backend for auto-generated feta definitions
 
 \def\fetsixteendefs{
-        \font\fontentja=feta16
+        \font\feta=feta16
         \font\vetfont=feta-beams16
         \font\fetanummer=feta-nummer8
         \font\dynfont=feta-din10 scaled \magstep1
         \font\bracefont=feta-braces16
         \font\fingerfont=feta-nummer4
-        \interlinedist=4pt
 }
 \def\fettwentydefs{
-        \interlinedist=5pt
-        \font\fontentja=feta20
+        \font\feta=feta20
         \font\vetfont=feta-beams20
         \font\fetanummer=feta-nummer10
         \font\dynfont=feta-din10 scaled \magstep2
         \font\bracefont=feta-braces20
         \font\fingerfont=feta-nummer5
 }
+\def\fettwentysixdefs{
+        \font\feta=feta26
+        \font\vetfont=feta-beams26
+        \font\fetanummer=feta-nummer12
+        \font\dynfont=feta-din10 scaled \magstep3
+        \font\bracefont=feta-braces16
+        \font\fingerfont=feta-nummer7
+}
+\def\fetthirteendefs{
+      \font\feta=feta13
+        \font\vetfont=feta-beams26
+        \font\fetanummer=feta-nummer5
+        \font\dynfont=feta-din10 scaled \magstep0
+        \font\bracefont=feta-braces16
+        \font\fingerfont=feta-nummer3
+}
+\def\fetelevendefs{
+        \font\feta=feta11
+        \font\vetfont=feta-beams26
+        \font\fetanummer=feta-nummer5
+        \font\dynfont=feta-din10 %scaled \magstep-1
+        \font\bracefont=feta-braces16
+        \font\fingerfont=feta-nummer3
+}
+
 
 \def\sixteenfonts{\fetsixteendefs\cmrsixteen}
 \def\twentyfonts{\fettwentydefs\cmrtwenty}
-
+\def\twentysixfonts{\fettwentysixdefs\cmrtwenty}
+\def\elevenfonts{\fetelevendefs\cmreleven}
+\def\thirteenfonts{\fetthirteendefs\cmrthirteen}
 \def\fetdef#1#2{\def#1{%
         \hbox{\fetchar{#2}}}}
 
-\def\fetchar#1{\fontentja\char#1}
+\def\fetchar#1{\feta\char#1}
 
 %\input feta16
 \input feta20
 
-\def\beamslope#1#2{{\count0=#2\advance\count0 by#1
-        \advance\count0by128
-        {\vetfont\char\count0}}}
-
 % stacked numbers; overrules def in lilyponddefs
 % widest num should be .40 balkheight
 % oeps: \meter 12/8;
 
 \def\pianobrace#1{{\bracefont\char #1}}
 
-\newcount\embedcount\embedcount=0
-\newwrite\checkexists
-\newwrite\embedfile
-\def\inputifexists#1{%
-        \openin\checkexists #1
-        \ifeof\checkexists
-                 \closein\checkexists
-        \else
-                \closein\checkexists
-                \input #1
-        \fi
-}
-\def\embedcountid{feta-embed}
-\inputifexists{\embedcountid.aux}
-%
-% let's not overwrite -- and be sure to create new
-\def\storeembedcount{%
-        \immediate\openout\embedfile=\embedcountid.aux
-        \immediate\write\embedfile{\embedcount=\the\embedcount}
-        \immediate\closeout\embedfile
-}
-
-
-
+\def\embeddedtex#1{}
+\def\embeddedps#1{}
+\def\embeddedmf#1#2{}
+\def\embedclose{}
 
 \input lily-ps-defs
-\def\embeddedtex#1{#1}
-
-\def\embeddedmf#1{
-        \edef\embedid{feta-sleur-\number\embedcount}
-        \immediate\openout\embedfile=\embedid.mf
-        \global\advance\embedcount by 1
-
-% should write ``automatically generated.''
-%        \immediate\write\embedfile{\def\
-%       
-%      }
 
-        \immediate\write\embedfile{#1}
-
-        \immediate\closeout\embedfile
-        \font\expandafter\embedid\expandafter=\embedid
-        \embedid\char0
-}
-
-\def\notex{\def\embeddedtex##1{}}
-\def\nopostscript{\def\embeddedps##1{}}
-\def\nometafont{\def\embeddedmf##1{}}
-
-% dat heb je handig gedaan, lieverd!
-\nometafont
-%\nopostscript
-\notex
+% uncomment to use runtime MF
+%
+% \input lily-mf-defs
 
 \def\EndLilyPondOutput{
-        \storeembedcount
+        \embedclose
         \csname bye\endcsname
 }
 
diff --git a/tex/lily-mf-defs.tex b/tex/lily-mf-defs.tex
new file mode 100644 (file)
index 0000000..b30ba9f
--- /dev/null
@@ -0,0 +1,39 @@
+\newcount\embedcount\embedcount=0
+\newwrite\checkexists
+\newwrite\embedfile
+\def\inputifexists#1{%
+        \openin\checkexists #1
+        \ifeof\checkexists
+                 \closein\checkexists
+        \else
+                \closein\checkexists
+                \input #1
+        \fi
+}
+
+\def\embedcountid{feta-embed}
+\inputifexists{\embedcountid.aux}
+%
+% let's not overwrite -- and be sure to create new
+\def\embedclose{%
+        \immediate\openout\embedfile=\embedcountid.aux
+        \immediate\write\embedfile{\embedcount=\the\embedcount}
+        \immediate\closeout\embedfile
+}
+
+
+% let's keep embedcount to see how many embedded mf's clutter your system
+\def\embeddedmf#1#2{%
+        \edef\embedid{#1}%
+        \immediate\openout\embedfile=\embedid.mf%
+        \global\advance\embedcount by 1%
+       \immediate\write\embedfile{\%Automatically generated by TeX (fetdefs.tex
+)}%
+       \immediate\write\embedfile{\%Do not edit}%
+        \immediate\write\embedfile{#2}%
+        \immediate\closeout\embedfile%
+        \font\expandafter\embedid\expandafter=\embedid%
+        \embedid\char0%
+}
+
index 9b0ed425a54167bd9bd607b2f59cf58793ee77ac..92d9825afe4b35a6b99f419ec5cb10b6cb7e688d 100644 (file)
 1 setlinecap
 /draw_beam
 {
-        /beam_thick exch def
+        2 div /beam_thick exch def
         /beam_slope exch def
         /beam_wd exch def
         beam_slope beam_wd mul /beam_ht exch def
-        0 0 moveto 
+        0 beam_thick neg moveto 
         beam_wd beam_ht rlineto 
-        0 beam_thick rlineto
-        0 beam_thick  lineto
+        0 beam_thick 2 mul rlineto
+        0 beam_thick lineto
         closepath fill
 } bind def
 % PS helper: convert (0.2pt) to the token 0.2
@@ -125,7 +125,6 @@ def
         slur_indent slur_ht
         slur_b slur_indent sub slur_ht
         slur_b 0
- %      pstack
         rcurveto        
  %
         slur_indent neg slur_ht slur_dir slur_thick mul  sub
index 02116e998cb90bc0a0d2772a4abcbe7ec328a334..8a03396e189ab912022e661a179eeeefa159fc40 100644 (file)
@@ -64,9 +64,6 @@
 % set fonts and primary dimensions
 % ugh
 \def\musixtwentydefs{
-        \staffheight=20pt
-        \notewidth=7.15pt
-        \noteheight=5pt
         \twentyfonts
         \musixcalc
 }
@@ -77,6 +74,8 @@
         \font\musicmathfont=cmsy10
         \font\normaltextfont=cmr10 %\textfont is a primitive
         \font\smalltextfont=cmr8
+        \font\boldfont=cmbx10
+        \font\textmusic=cmmi12
 }
 \def\cmrsixteen{
         \font\smalltextfont=cmr6
         \font\meterfont=cmbx12
         \font\italicfont=cmti8
         \font\textmusic=cmmi10
+        \font\boldfont=cmbx8
+}
+\def\cmreleven{
+        \font\smalltextfont=cmr5
+        \font\normaltextfont=cmr6
+        \font\meterfont=cmbx8
+        \font\italicfont=cmti6
+        \font\textmusic=cmmi8
+        \font\boldfont=cmbx6
+}
+
+\def\cmrthirteen{
+        \font\smalltextfont=cmr6
+        \font\normaltextfont=cmr7
+        \font\meterfont=cmbx9
+        \font\italicfont=cmti7
+        \font\textmusic=cmmi9
+        \font\boldfont=cmbx7
 }
 \def\musixsixteendefs{
-        \staffheight=16pt
-        \notewidth=5.93pt
-        \noteheight=4pt
         \sixteenfonts
         \musixcalc
 }
+\def\musixtwentysixdefs{
+        \twentysixfonts
+        \musixcalc
+}
+\def\musixthirteendefs{
+        \thirteenfonts
+        \musixcalc
+}
+\def\musixelevendefs{
+        \elevendefs
+        \musixcalc
+}
 
 \def\textsharp{\raise.4ex\hbox{\textmusic\char"5D}}
 \def\textnatural{\raise.4ex\hbox{\textmusic\char"5C}}
-\def\textflat{\raise.2ex\hbox{\mus\char"5B}}
+\def\textflat{\raise.2ex\hbox{\textmusic\char"5B}}
 
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % do derivative calcs
 
-% FIXME: should read from TFM/AFM/fetalog
-%
-
 % this has to be synced with the font definition
 \def\musixcalc{
+        \staffheight=\mudelapaperbarsize pt
+        \interlinedist=\staffheight
+        \divide\interlinedist by 4
+        \notewidth=\mudelapapernotewidth pt
+
         \smallspace=.3\interlinedist
         \interstaffrule=\staffheight
         \divide\interstaffrule by 4
-
-        %  [D.K.Roush & J.S.Gourlay] say this should be 0.072
-        % We know better
-        \staffrulethickness=0.1\interlinedist
+        \staffrulethickness=\mudelapaperrulethickness pt
         \stemthickness=\staffrulethickness
 }
 
 \def\startbar#1{\leftalign{\thickbar{#1}\kern\smallspace\thinbar{#1}}}
 \def\finishbar#1{\rightalign{\thinbar{#1}\kern\smallspace\thickbar{#1}}}
 
-\def\slurcharh#1{{\slurhfont\char#1}}
-\def\slurcharu#1{{\slurufont\char#1}}
-\def\slurchard#1{{\slurdfont\char#1}}
-\def\hslurcharh#1{{\hslurhfont\char#1}}
-\def\hslurcharu#1{{\hslurufont\char#1}}
-\def\hslurchard#1{{\hslurdfont\char#1}}
 
 \def\stem#1#2{\hbox{\kern -.5\stemthickness
         \vrule width\stemthickness height#2 depth-#1}}
 }
 
 
-\def\brace#1{\count0=148\advance\count0 by #1\musicdraw\char\count0}
-\def\crescendosym#1{\count0=84\advance\count0 by #1\musicdraw\char\count0}
-\def\decrescendosym#1{\count0=116\advance\count0 by #1\musicdraw\char\count0}
 \def\rulesym#1#2{\dimen0=#1%
         \vrule height .5\dimen0 depth .5\dimen0 width #2}
 \def\settext#1{\normaltextfont #1}
 \def\setitalic#1{\italicfont #1}
+\def\setbold#1{\boldfont #1}
 \def\setdynamic#1{\dynfont #1}
 \def\setfinger#1{\fingerfont #1}
 
index a6aa7c70fb0a329e8cda9f52d4b9886814c647aa..3c5921c4f161009b87189d29d99bafaee85bae2f 100644 (file)
 %         \musicfnt\char\count0}}
 
 
+
+\def\beamslope#1#2{{\count0=#2\advance\count0 by#1
+        \advance\count0by128
+        {\vetfont\char\count0}}}
+
+\def\slurcharh#1{{\slurhfont\char#1}}
+\def\slurcharu#1{{\slurufont\char#1}}
+\def\slurchard#1{{\slurdfont\char#1}}
+\def\hslurcharh#1{{\hslurhfont\char#1}}
+\def\hslurcharu#1{{\hslurufont\char#1}}
+\def\hslurchard#1{{\hslurdfont\char#1}}
+\def\brace#1{\count0=148\advance\count0 by #1\musicdraw\char\count0}
+\def\crescendosym#1{\count0=84\advance\count0 by #1\musicdraw\char\count0}
+\def\decrescendosym#1{\count0=116\advance\count0 by #1\musicdraw\char\count0}