]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 0.0.67 release/0.0.67
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 2 Jun 1997 10:57:42 +0000 (12:57 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 2 Jun 1997 10:57:42 +0000 (12:57 +0200)
163 files changed:
.version
AUTHORS.text
Documentation/INSTALL.pod
Documentation/faq.pod
Documentation/index.pod
Documentation/lilyliterature.pod
Documentation/mudela.pod
INSTALL.text
NEWS
TODO
bin/convert-mudela
bin/make_website
configure
configure.in
flower/include/full-storage.hh
flower/include/matrix-storage.hh
flower/include/virtual-methods.hh
init/symbol.ini
init/table_sixteen.ini
input/cadenza.ly
input/collisions.ly
input/coriolan-alto.ly
input/error.ly
input/header.ly
input/keys.ly
input/kortjakje.ly
input/pedal.ly
input/rhythm.ly
input/scales.ly
input/scripts.ly
input/scsii-menuetto.ly
input/slurs.ly
input/standchen.ly
input/toccata-fuga-E.ly
input/twinkle.ly
input/wohltemperirt.ly
lib/Makefile
lib/include/input.hh
lib/include/windhoos-suck-suck-suck-thank-you-cygnus.hh
lib/windhoos-suck-suck-suck-thank-you-cygnus.cc
lily/.version
lily/atom.cc [new file with mode: 0644]
lily/beam.cc
lily/bow.cc
lily/command-request.cc
lily/crescendo.cc
lily/general-script-def.cc [new file with mode: 0644]
lily/head-reg.cc
lily/include/atom.hh [new file with mode: 0644]
lily/include/bar-reg.hh
lily/include/bar.hh
lily/include/beam.hh
lily/include/bow.hh
lily/include/clef-item.hh
lily/include/clef-reg.hh
lily/include/collision-reg.hh
lily/include/collision.hh
lily/include/command-request.hh
lily/include/crescendo.hh
lily/include/dynamic-reg.hh
lily/include/elem-group.hh
lily/include/general-script-def.hh [new file with mode: 0644]
lily/include/grouping.hh
lily/include/head-reg.hh
lily/include/input-music.hh
lily/include/item.hh
lily/include/key-item.hh
lily/include/key-reg.hh
lily/include/lily-proto.hh
lily/include/local-key-item.hh
lily/include/local-key-reg.hh
lily/include/lyric-register.hh
lily/include/meter-reg.hh
lily/include/meter.hh
lily/include/minterval.hh [new file with mode: 0644]
lily/include/molecule.hh
lily/include/music.hh [new file with mode: 0644]
lily/include/musical-request.hh
lily/include/note-column-reg.hh
lily/include/note-column.hh
lily/include/note-head.hh
lily/include/parseconstruct.hh
lily/include/register-group.hh
lily/include/register.hh
lily/include/request.hh
lily/include/rest-collision-reg.hh
lily/include/rest-collision.hh
lily/include/rest-column.hh
lily/include/score-elem.hh
lily/include/scoreline.hh
lily/include/script-column.hh
lily/include/script-def.hh
lily/include/script-reg.hh
lily/include/script.hh
lily/include/slur-reg.hh
lily/include/slur.hh
lily/include/spanner-elem-group.hh
lily/include/spanner.hh
lily/include/staff-regs.hh
lily/include/staff-sym-reg.hh
lily/include/staff-sym.hh
lily/include/staffline.hh
lily/include/stem-beam-reg.hh
lily/include/stem.hh
lily/include/super-elem.hh
lily/include/swallow-reg.hh
lily/include/symbol.hh
lily/include/text-def.hh
lily/include/text-item.hh
lily/include/text-reg.hh
lily/include/text-spanner.hh
lily/include/tie-reg.hh
lily/include/tie.hh
lily/include/voice-element.hh
lily/include/voice-group-regs.hh
lily/include/voice-regs.hh
lily/include/voice.hh
lily/input-music.cc
lily/local-key-item.cc
lily/local-key-reg.cc
lily/lookup.cc
lily/midi-walker.cc
lily/molecule.cc
lily/music-list.cc [new file with mode: 0644]
lily/music.cc [new file with mode: 0644]
lily/musical-request.cc
lily/note.cc
lily/notehead.cc
lily/p-score.cc
lily/parser.y
lily/script-def.cc
lily/script-reg.cc
lily/script.cc
lily/slur-reg.cc
lily/slur.cc
lily/spanner-elem-group.cc
lily/staff-column.cc
lily/staff-side.cc
lily/staff-sym.cc
lily/stem-beam-reg.cc
lily/super-elem.cc
lily/template1.cc
lily/template2.cc
lily/template3.cc
lily/text-def.cc
lily/text-item.cc
lily/text-spanner.cc
lily/voice-element.cc
lily/voice.cc
make/Configure_variables.make.in
make/Files.make
make/Rules.make
make/Targets.make
make/Variables.make
make/lilypond.lsm
make/lilypond.spec
make/lilypond.spec.in
mi2mu/TODO
mi2mu/lily-stream.cc
mi2mu/main.cc
tex/dimen.tex
tex/lilyponddefs.tex
tex/taupindefs.tex [new file with mode: 0644]

index e8e755d92b41c4f79456d2f2c7c782c0679f6a1e..7d6ac5a0ec425cd84b1468bdb35734a0451fe099 100644 (file)
--- a/.version
+++ b/.version
@@ -1,6 +1,6 @@
 TOPLEVEL_MAJOR_VERSION = 0
 TOPLEVEL_MINOR_VERSION = 0
-TOPLEVEL_PATCH_LEVEL = 66
+TOPLEVEL_PATCH_LEVEL = 67
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
index 672b6556be8bd8f8f18bce113837b332c745c3b8..8a086d315e25519c28cc0873265e22db4246dfc6 100644 (file)
@@ -61,6 +61,6 @@ 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
 
 
 
-19/May/97                LilyPond 0.0.66                        1
+19/May/97                LilyPond 0.0.67                        1
 
 
index 000411ef181e061af7a076ddf8e29d36a0ad369b..23a464b0a4452fb9873a0e4d5a3381006337abf5 100644 (file)
@@ -23,17 +23,16 @@ For compilation you need.
 
 =item *
 
-A Unix system with GNU tools. GNU LilyPond is known to run on Linux,
-AIX, Digital Unix and Solaris.
+A Unix system with GNU tools. GNU LilyPond is known to run on these
+unices: Linux, AIX, Digital Unix and Solaris.
 
-If you have the Cygnus WINDOWS32 port of the GNU utils, it will
-even work in Lose NT/95, but don't promise to support it.
+If you have the Cygnus WINDOWS32 port of the GNU utils, it will even
+work in Windows NT/95, but don't promise to support it.
 
 =item *
 
 GNU C++ v2.7 or better, with libg++ installed.  Version 2.7.2
-or better recommended. I almost positive that it will not compile with
-AT&T CC.
+or better recommended. 
 
 =item *
 
@@ -64,8 +63,6 @@ with the perl's Plain Old Documentation.
 
 =back
 
-
-
 =head1 CONFIGURING and COMPILING
 
 to install GNU LilyPond, simply type:
@@ -119,7 +116,7 @@ other options include:
 
 =item --enable-shared
 
-Make a shared library (linux, solaris (?) only ) 
+Make a shared library (gnu/linux, solaris (?) only ) 
 
 =item  --enable-printing
 
@@ -265,7 +262,7 @@ at http://www.cygnus.com/gnu-win32.
 to make GNU LilyPond under, brr, aargh, well, simply type:
 
        bash configure
-       make win32
+       make windows32
 
 =head1 PLATFORMS
 
@@ -273,13 +270,14 @@ GNU LilyPond (pl 0.0.39) is known to compile on the following platforms:
 
 Unix:
 
-       * linux 2.0.x, g++ 2.7.2[.1]
+       * gnu/linux 2.0.x, g++ 2.7.2[.1]
        * aix 4.1, g++ 2.7.2
+       * solaris 2.5, g++ 2.7.2
 
 Other:
 
        * windows-nt 4.0, cygnus gnu-windows32 beta17.1 (~=g++ 2.7.2)
-       * linux 2.0.28 X to doze, gcc-go32 (~=g++ 2.7.2) [exec. untested]
+       * gnu/linux 2.0.28 X to doze, gcc-go32 (~=g++ 2.7.2) [exec. untested]
 
 =head1 AUTHORS
 
index 2935fe4a02af9b6e04f0378f20eb8df324f78e62..873b66b85053a0832671b2c1ab03022bc4eb0037 100644 (file)
@@ -16,6 +16,17 @@ clean" after installing it
 
 If the problem persists, then please mail me.
 
+Q: Some of your neat scripts fail, what directories do you use:
+
+A:
+       
+       ~/something
+         lilypond      # the directory as unpacked from the tarball
+         releases      # directory for .tar.gz releases
+         patches       # directory for patches between different releases
+
+~/something/lilypond/bin is in the PATH, and contains symlinks to the
+compiled executables.
 
 =head2 Language: mudela
 
@@ -196,7 +207,7 @@ LD_LIBRARY_PATH to a directory containing F<libflower.so>
 
 Q: I want a DOS/NT/W95 port.
 
-A.0: Reconsider.  Try Linux/GNU.  It's fun!
+A.0: Reconsider.  Try Linux.  It's fun!
 
 A.1: Currently (patchlevel 27), GNU LilyPond (and flowerLib) compiles, links
 and runs on windhoos-nt, using the cygnus gnu port (release b17.1). 
index d650acee2c1e2a54bc05bd78b6de6e2c2b2fa8a7..93ba7ed85760c1cb1fd3fb65e0e5599df408e09d 100644 (file)
@@ -6,20 +6,20 @@ Excuse me for this poor page. I don't really have time for doing this..
 
 =head1 DESCRIPTION
 
-Technically GNU LilyPond is a preprocessor which generates TeX
-(or LaTeX) output which contains information to typeset a musical
-score. Practically it is a typesetter, which only uses TeX as an
-output medium. (this is handy because there exist music fonts for TeX)
+GNU LilyPond is a program to typeset music: it generates TeX (or
+LaTeX) output from file input.
 
 As a bonus, you can also output a MIDI file of what you typed.
 
-It translates script files (mudela files or F<*.ly>'s) into TeX input.
-Typesetting music is a complex task, whereas the message that printed
-music conveys is usually a simple one. GNU LilyPond is a try at providing
-a simple interface for setting music.
+<a href=example_output.html
+>
+examples of what LilyPond can do: MIDI, PS, .gif and input.
+</a
+>
 
 =head1 DOCUMENTATION
 
+
 =item *
 <a href=INSTALL.html
 >
@@ -113,13 +113,6 @@ The lilypond logo (medium size, format: .gif)
 </a
 >
 
-=item *
-<a href=example_output.html
->
-examples: MIDI, PS, .gif and input.
-</a
->
-
 
 =item *
 <a href=TODO.txt
index d0a3ac3bd90e5e4e67901570a64e219e3adc887f..1d88a768757c75f5f2c2b34bee8e0e20c08694b2 100644 (file)
@@ -5,8 +5,8 @@ Lily literature -- reading on music engraving
 =head1 DESCRIPTION
 
 A list of resources on music printing/writing and engraving.  Please
-note that don't have access to most material (except a library copy of
-Chlapik)
+note that don't have access to most material (except Wanske and a 
+library copy of Chlapik)
 
 
 More on GNU Music: http://dept-info.labri.u-bordeaux.fr/~strandh/Gsharp
@@ -16,9 +16,12 @@ More on GNU Music: http://dept-info.labri.u-bordeaux.fr/~strandh/Gsharp
 
 [partly by Mark Basinski <basinski@arizona.edu>]
 
-Herbert Chlapik, Die Praxis des Notengraphikers. Doblinger, 1987.
+Chlapik, Herbert. ``Die Praxis des Notengraphikers''. Doblinger, 1987.
+ISBN 3-9000 035-96-2.
 
-Helene Wanske, ?, Schott-Verlag Mainz.
+Wanske, Helene.  ``Musiknotation --- Von der Syntax des Notenstichs
+zum EDV-gesteuerten-1 Notensatz'', Schott-Verlag, Mainz 1988.  ISBN
+3-7957-2886-x. 1) e(lektronischen) D(aten)v(erarbeitung).
 
 Maxwell Weaner and Walter Boelke, Standard Music Notation Practice,
 revised edition by Arnold Broido and Daniel Dorff. Music Publisher's
index 29c37bcc117e241442fa1644328518baf6045737..cc82896924e7e7c57508eeb5f5c7f9222e58501b 100644 (file)
@@ -53,7 +53,7 @@ A perl-script which tries to convert to newer versions
 
 =head2 Words
 
-Keywords are preceded by a backslash "\". They contain alphabetic
+Keywords are preceded by a backslash: '\'. They contain alphabetic
 characters only. 
 
 Identifiers in their normal form consist start with a alpha character,
@@ -74,6 +74,16 @@ Mudela uses the brace (C<{> and C<}>) for hierarchical structures. To
 aid the eye in reading, for chords the < and the > are used as
 nesting braces.
 
+=head2 Constants
+
+Please note that -.5 is no Real.
+
+       "I am a string"
+       -1.2e3          % a real
+       12              % an int
+
+
+       
 =head2 Identifiers
 
 =head2 Hierarchical structures
@@ -238,7 +248,7 @@ error for this reason.
 
        [c8 e8(] [)g8 <c'8] e'8>
                                % NO nesting!
-       [c8 c8 c8]2/3           % a triplet
+       [2/3 c8 c8 c8]1/1       % a triplet
 
 
 =head2 Slurs and Ties
index 1ed0bd2d3936e799d66e0e66b636e1a124ccfbc3..5f6c2a4ece7c079c14a2e7ee3129287b3e6abcff 100644 (file)
@@ -24,15 +24,15 @@ 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 Unix system with GNU tools. GNU LilyPond is known
-            to run on Linux, AIX, Digital Unix and Solaris.
+            to run on these unices: Linux, AIX, Digital Unix and
+            Solaris.
 
             If you have the Cygnus WINDOWS32 port of the GNU
-            utils, it will even work in Lose NT/95, but don't
+            utils, it will even work in Windows NT/95, but don't
             promise to support it.
 
        +\bo    GNU C++ v2.7 or better, with libg++ installed.
-            Version 2.7.2 or better recommended. I almost
-            positive that it will not compile with AT&T CC.
+            Version 2.7.2 or better recommended.
 
        +\bo    GNU make.
 
@@ -61,7 +61,7 @@ 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
 
 
 
-28/May/97                LilyPond 0.0.66                        1
+28/May/97                LilyPond 0.0.67                        1
 
 
 
@@ -116,7 +116,7 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
        other options include:
 
        --enable-shared
-           Make a shared library (linux, solaris (?) only )
+           Make a shared library (gnu/linux, solaris (?) only )
 
        --enable-printing
            Enable debugging print routines (lilypond -\b-\b-\b-d\bd\bd\bd option)
@@ -127,7 +127,7 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
 
-28/May/97                LilyPond 0.0.66                        2
+28/May/97                LilyPond 0.0.67                        2
 
 
 
@@ -193,7 +193,7 @@ R\bR\bR\bRU\bU\bU\bUN\bN\bN\bNN\bN\bN\bNI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
 
 
 
-28/May/97                LilyPond 0.0.66                        3
+28/May/97                LilyPond 0.0.67                        3
 
 
 
@@ -259,7 +259,7 @@ W\bW\bW\bWI\bI\bI\bIN\bN\bN\bND\bD\bD\bDO\bO\bO\bOZ\bZ\bZ\bZE\bE\bE\bE
 
 
 
-28/May/97                LilyPond 0.0.66                        4
+28/May/97                LilyPond 0.0.67                        4
 
 
 
@@ -274,7 +274,7 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
        to make GNU LilyPond under, brr, aargh, well, simply type:
 
                bash configure
-               make win32
+               make windows32
 
 
 P\bP\bP\bPL\bL\bL\bLA\bA\bA\bAT\bT\bT\bTF\bF\bF\bFO\bO\bO\bOR\bR\bR\bRM\bM\bM\bMS\bS\bS\bS
@@ -283,13 +283,14 @@ P\bP\bP\bPL\bL\bL\bLA\bA\bA\bAT\bT\bT\bTF\bF\bF\bFO\bO\bO\bOR\bR\bR\bRM\bM\bM\bMS\bS\bS\bS
 
        Unix:
 
-               * linux 2.0.x, g++ 2.7.2[.1]
+               * gnu/linux 2.0.x, g++ 2.7.2[.1]
                * aix 4.1, g++ 2.7.2
+               * solaris 2.5, g++ 2.7.2
 
        Other:
 
                * windows-nt 4.0, cygnus gnu-windows32 beta17.1 (~=g++ 2.7.2)
-               * linux 2.0.28 X to doze, gcc-go32 (~=g++ 2.7.2) [exec. untested]
+               * gnu/linux 2.0.28 X to doze, gcc-go32 (~=g++ 2.7.2) [exec. untested]
 
 
 A\bA\bA\bAU\bU\bU\bUT\bT\bT\bTH\bH\bH\bHO\bO\bO\bOR\bR\bR\bRS\bS\bS\bS
@@ -324,7 +325,6 @@ A\bA\bA\bAU\bU\bU\bUT\bT\bT\bTH\bH\bH\bHO\bO\bO\bOR\bR\bR\bRS\bS\bS\bS
 
 
 
-
-28/May/97                LilyPond 0.0.66                        5
+28/May/97                LilyPond 0.0.67                        5
 
 
diff --git a/NEWS b/NEWS
index cc0f07c3159f89286af350d16f69c68582e7dadd..d514afe7b5e7c5cafdd88f14ef0a40da72266e1a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,29 @@
+pl 67
+       - sketch of Music classes
+       - General_script_def as baseclass for Text_def and Script_def
+       - bf: clean lib/out/liblily.a
+       - bf: rests shorter than 1/4
+
+pl 66.jcn3
+       - bf: make uninstall
+       - conflily
+       - f: some pedaling
+       - plet hack removed :-( [ c c c ]2/3 -> [2/3 c c c ]1/1
+
+pl 66.jcn2
+       - bf: bar, Hilfslinie
+       - bf: configure for mingw32
+
+pl 66.jcn1
+       - WIN32 -> WINDOWS32, more win32->windows32
+       - some GNU/Linux changes
+       - cygnus b18 / mingw update
+       - doze compile; bf: p-score.cc compares
+       - reincluded toccata fixes
+       - small stuff: vi tags, typos, bibl
+
+******
+may 27
 pl 66
        - make_website --jpeg, --png and --gif
        - win32 -> windows32
@@ -11,6 +37,7 @@ pl 66
 
 ******
 may 26
+
 pl 65
        - bf pathfind /root/file
        - massive Score_elem rewrite:
diff --git a/TODO b/TODO
index 5af191f9f2e8aa5f77b86f8e9f78aebe4bf6540a..8d3e7c344fa67c2dc615fdd66114552b7162435f 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,7 +8,6 @@ grep for TODO and ugh/ugr
 
 
 IMPORTANT
-       * add mi2mu example output (.midi.ly and .gif) to website
 
        * piano staff
 
@@ -22,8 +21,6 @@ IMPORTANT
 
        * decent TeX page layout
 
-       * per staff item-widths [JCN]
-
        * script priority
 
        * a Hands on tutorial [HKN]
@@ -109,11 +106,8 @@ PROJECTS
 PARSER
        * Duration -> Musical_duration, typedef Rational Duration?
 
-**********************
 HKN buglist:
 
-noten staan vaak te dicht aan de rechterkant van de maatstreep.
-
 tekst staat erg ver van notenbalken af
 
 waarom geen ; achter dingen in \paper? (\textwidth 180\mm)
@@ -122,12 +116,8 @@ waarom geen ; achter dingen in \paper? (\textwidth 180\mm)
 Onduidelijk wanneer wel en geen \ voor een woord. Maak liever
 verplichte regels
 
-****************
-
 
 BUGS
-       * RPM permissions -> redhat!
-
        * spurious Weird stem size warnings
 
        * staccato dot positions.
@@ -137,7 +127,9 @@ BUGS
        * lilypond - -> crash
 
        * standchen triool beam up/down
-
+       
+       * (where are the) gcc compile warnings on linux
+       
 SEVERELY LACKING:
 
        * SPEED!
@@ -153,8 +145,6 @@ FURTHER FOR ORCHESTRAL SCORE:
 
        * abbreviations c4=16
 
-       * doublebar "||", finishbar "|||" (or "||." ?)
-
 INPUTLANGUAGE
 
        * should have \require{package.ly} to read req'd packages.
@@ -183,6 +173,10 @@ PROJECTS
 
 SMALLISH PROJECTS
 
+       * A range for context errors (eg. mark both { and }. )
+
+       * text in staff  (sharpsharp in staff, text below)
+
        * replace Score_elem member access by get()/set() methods, to enable
        future embedded code.
 
index d728b1fed361997a9342186db720b18ded52536a..00ad900cd52bf5437aaa6404585a2450423b20d6 100755 (executable)
@@ -62,6 +62,11 @@ sub convert_0_0_56_to_0_0_57
     s/\(([ \]\[|\t-\.>]|\\[<!>a-z]+)*\)/\~ $1/g;
 }
 
+sub convert_0_0_57_to_0_0_58
+{
+    s/\[ *([^\[\]]*)\] *([1-9]*) *\/ *([1-9]*)/[$2\/$3 $1]1\/1/g;
+}
+
 ###############################################################
 
 sub    last_conversion
@@ -97,7 +102,8 @@ my %minor_conversions = (50 => \&no_conv,
                         54 => \&convert_0_0_53_to_0_0_54,
                         55 => \&convert_0_0_54_to_0_0_55,
                         56 => \&convert_0_0_55_to_0_0_56,
-                        57 => \&convert_0_0_56_to_0_0_57
+                        57 => \&convert_0_0_56_to_0_0_57,
+                        58 => \&convert_0_0_57_to_0_0_58
                         );
  
 
index f5d540306ef229dc3819afc22defe3323b89d090..219fcbd5a2a354b1511be026851c48614618375d 100755 (executable)
@@ -58,16 +58,20 @@ sub my_system
        }
        
        my $ret =  ( system ($cmd));
-       if (!$ignoreret && $ret) {
-           print STDERR "\nmake_website: failed on command \`$cmd\' (status $ret)\n";
-           exit 2;
+       if ($ret) {
+           if ($ignoreret) {
+               print STDERR "ignoring failed command \`$cmd\' (status $ret)\n";
+           }else {
+               print STDERR "\nmake_website: failed on command \`$cmd\' (status $ret)\n";
+               exit 2;
+           }
        }
     }
 }
 
 
 local $base="lilypond/";
-local @examples=("wohltemperirt" ,"standchen", "scsii-menuetto", "rhythm", "collisions");
+local @examples=("wohltemperirt" ,"standchen", "toccata-fuga-E", "scsii-menuetto", "rhythm", "collisions");
 
 
 sub gen_html
@@ -134,7 +138,11 @@ sub gen_list
 {
     print "generating HTML list\n";
     open HTMLLIST, ">example_output.html";
-    print HTMLLIST "<html><body><title>LilyPond examples</title>\n";
+    print HTMLLIST "<html><body><title>LilyPond examples</title>\n
+These example files are taken from the LilyPond distribution.\n
+LilyPond currently only outputs TeX and MIDI. The pictures and\n
+ PostScript files were generated using TeX, Ghostscript and some graphics tools. \n
+The GIF files have been scaled to eliminate aliasing.";
     foreach $a (@examples) {
        $name=$a;
        print HTMLLIST "<h1>example file: $name</h1>\n<XMP>\n";
index 9db40e5757a0664d541167a1b4db236b0d4e00b5..c333bafab2212ee58651d53d70465de4c7540602 100755 (executable)
--- a/configure
+++ b/configure
@@ -12,21 +12,23 @@ ac_help=
 ac_default_prefix=/usr/local
 # Any additions from configure.in:
 ac_help="$ac_help
-  enable-printing        turn on debug printing"
+  enable-printing         turn on debug printing"
 ac_help="$ac_help
-  disable-checking       set runtime checks (assert calls)"
+  disable-checking        set runtime checks (assert calls)"
 ac_help="$ac_help
-  disable-debugging         set debug info "
+  disable-debugging       set debug info "
 ac_help="$ac_help
-  enable-optimise       use maximal speed optimisations"
+  enable-optimise         use maximal speed optimisations"
 ac_help="$ac_help
-  enable-profiling      compile with gprof support"
+  enable-profiling        compile with gprof support"
 ac_help="$ac_help
-  tex-prefix=DIR  set the tex-directory to find TeX subdirectories. (default: PREFIX)"
+  mingw-prefix=DIR        set the mingw32 directory (standalone windows32 exes)"
 ac_help="$ac_help
-  tex-dir=DIR  set the directory to put LilyPond  TeX files in. "
+  tex-prefix=DIR          set the tex-directory to find TeX subdirectories. (default: PREFIX)"
 ac_help="$ac_help
-  mf-dir=DIR  set the directory to put LilyPond MetaFont files in."
+  tex-dir=DIR             set the directory to put LilyPond  TeX files in. "
+ac_help="$ac_help
+  mf-dir=DIR              set the directory to put LilyPond MetaFont files in."
 
 # Initialize some variables set by options.
 # The variables have the same names as the options, with
@@ -535,6 +537,7 @@ fi
 
 
 
+
 # if given here, these vars are initted at the checking point.
 printing_b=no
 checking_b=yes
@@ -579,7 +582,6 @@ if test "${enable_optimise+set}" = set; then
 fi
 
     
-   
 # Check whether --enable-profiling or --disable-profiling was given.
 if test "${enable_profiling+set}" = set; then
   enableval="$enable_profiling"
@@ -587,6 +589,15 @@ if test "${enable_profiling+set}" = set; then
 fi
 
     
+# Check whether --enable-mingw32 or --disable-mingw32 was given.
+if test "${enable_mingw32+set}" = set; then
+  enableval="$enable_mingw32"
+  MINGWPREFIX=$enableval
+else
+  MINGWPREFIX=$enableval
+fi
+
+    
 # Check whether --enable-tex-prefix or --disable-tex-prefix was given.
 if test "${enable_tex_prefix+set}" = set; then
   enableval="$enable_tex_prefix"
@@ -604,6 +615,7 @@ else
   TEXDIR=auto 
 fi
 
+
 # Check whether --enable-mf-dir or --disable-mf-dir was given.
 if test "${enable_mf_dir+set}" = set; then
   enableval="$enable_mf_dir"
@@ -629,18 +641,26 @@ if test $checking_b = no; then
     DEFINES="$DEFINES -DNDEBUG=1"
 fi
 
+# however, C++ support in mingw32 v 0.1.4 is still flaky
+if test $MINGWPREFIX != no; then // huh?
+    ICFLAGS="-I$MINGWPREFIX/include"
+    ILDFLAGS="-$MINGWPREFIX/lib"
+fi
+
 if test $optimise_b = yes; then
     DEFINES="$DEFINES -O2 -DSTRING_UTILS_INLINED"
 fi
 
 AUTOHEADER="This file was automatically generated by configure"
+CPPFLAGS=${CPPFLAGS:-""}       # we don't want -g -O junk
 CXXFLAGS=${CXXFLAGS:-""}       # we don't want -g -O junk
+
 for ac_prog in $CCC c++ g++ gcc CC cxx cc++
 do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:644: checking for $ac_word" >&5
+echo "configure:664: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -671,7 +691,7 @@ test -n "$CXX" || CXX="gcc"
 
 
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:675: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:695: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
 
 ac_ext=C
 # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -681,11 +701,11 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L
 cross_compiling=$ac_cv_prog_cxx_cross
 
 cat > conftest.$ac_ext <<EOF
-#line 685 "configure"
+#line 705 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cxx_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -705,12 +725,12 @@ if test $ac_cv_prog_cxx_works = no; then
   { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:709: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:729: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
 cross_compiling=$ac_cv_prog_cxx_cross
 
 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:714: checking whether we are using GNU C++" >&5
+echo "configure:734: checking whether we are using GNU C++" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -719,7 +739,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:723: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gxx=yes
 else
   ac_cv_prog_gxx=no
@@ -734,7 +754,7 @@ if test $ac_cv_prog_gxx = yes; then
   ac_save_CXXFLAGS="$CXXFLAGS"
   CXXFLAGS=
   echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:738: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:758: checking whether ${CXX-g++} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -764,7 +784,7 @@ fi
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:768: checking for $ac_word" >&5
+echo "configure:788: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -820,7 +840,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:824: checking for a BSD compatible install" >&5
+echo "configure:844: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -874,7 +894,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:878: checking for $ac_word" >&5
+echo "configure:898: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -919,12 +939,14 @@ fi
 
 
 
+
+
 for ac_prog in bison
 do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:928: checking for $ac_word" >&5
+echo "configure:950: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -958,7 +980,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:962: checking for $ac_word" >&5
+echo "configure:984: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -992,7 +1014,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:996: checking for $ac_word" >&5
+echo "configure:1018: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1026,7 +1048,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1030: checking for $ac_word" >&5
+echo "configure:1052: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_PODMAN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1062,7 +1084,7 @@ if test "x$TEXPREFIX" = xauto ; then
     
 
     echo $ac_n "checking TeX/MF root dir directory""... $ac_c" 1>&6
-echo "configure:1066: checking TeX/MF root dir directory" >&5    
+echo "configure:1088: checking TeX/MF root dir directory" >&5    
 
     find_root_prefix="$prefix"
     
@@ -1100,7 +1122,7 @@ if test "x$TEXDIR" = xauto ; then
     
     
     echo $ac_n "checking TeX input directory""... $ac_c" 1>&6
-echo "configure:1104: checking TeX input directory" >&5    
+echo "configure:1126: checking TeX input directory" >&5    
     find_dirdir=`(cd $find_texprefix; 
       $FIND ./ -type d -a -name tex -print |sort|head -1|sed 's#^\./##')`
     
@@ -1122,7 +1144,7 @@ if test "x$MFDIR" = xauto; then
     
     
     echo $ac_n "checking MF input directory""... $ac_c" 1>&6
-echo "configure:1126: checking MF input directory" >&5    
+echo "configure:1148: checking MF input directory" >&5    
     find_dirdir=`(cd $find_texprefix; 
       $FIND ./ -type d -a -name source -print |sort|head -1|sed 's#^\./##')`
     
@@ -1178,7 +1200,7 @@ else
 fi
 
 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:1182: checking how to run the C++ preprocessor" >&5
+echo "configure:1204: checking how to run the C++ preprocessor" >&5
 if test -z "$CXXCPP"; then
 if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1191,12 +1213,12 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L
 cross_compiling=$ac_cv_prog_cxx_cross
   CXXCPP="${CXX-g++} -E"
   cat > conftest.$ac_ext <<EOF
-#line 1195 "configure"
+#line 1217 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1216,17 +1238,17 @@ echo "$ac_t""$CXXCPP" 1>&6
 
 ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1220: checking for FlexLexer.h" >&5
+echo "configure:1242: checking for FlexLexer.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1225 "configure"
+#line 1247 "configure"
 #include "confdefs.h"
 #include <FlexLexer.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1230: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1398,6 +1420,8 @@ s%@RANLIB@%$RANLIB%g
 s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
 s%@INSTALL_DATA@%$INSTALL_DATA%g
 s%@FIND@%$FIND%g
+s%@ICFLAGS@%$ICFLAGS%g
+s%@ILDFLAGS@%$ILDFLAGS%g
 s%@DEFINES@%$DEFINES%g
 s%@COMPILEINFO@%$COMPILEINFO%g
 s%@AUTOHEADER@%$AUTOHEADER%g
@@ -1626,7 +1650,7 @@ fi
 eval "DIR_DATADIR=$datadir"
 DIR_DATADIR="$DIR_DATADIR/lilypond"
 echo $ac_n "checking ""... $ac_c" 1>&6
-echo "configure:1630: checking " >&5
+echo "configure:1654: checking " >&5
 
 cat << EOF > lib/out/config.hh
 
index 81a99752ddf50a307233c3abec994aa9a2c0a9e6..570f8866d2d53345905f5d5901794967b561dcca 100644 (file)
@@ -4,7 +4,6 @@ dnl  Process this file with autoconf to produce a configure script.
 dnl should cache result.
 dnl should  look in $prefix first.
 
-
 AC_DEFUN(AC_TEX_PREFIX, [
     
 
@@ -74,6 +73,7 @@ dnl     AC_REQUIRE([AC_TEX_PREFIX])
    
 AC_INIT(flower/choleski.cc)
 
+
 # if given here, these vars are initted at the checking point.
 printing_b=no
 checking_b=yes
@@ -84,38 +84,43 @@ profile_b=no
 AC_LANG_CPLUSPLUS
 
 AC_ARG_ENABLE(printing,
-    [  enable-printing        turn on debug printing],
+    [  enable-printing         turn on debug printing],
     [printing_b=$enableval])
 
        
 AC_ARG_ENABLE(checking,
-    [  disable-checking       set runtime checks (assert calls)],
+    [  disable-checking        set runtime checks (assert calls)],
     [checking_b=$enableval] )
 
 AC_ARG_ENABLE(debugging,
-    [  disable-debugging         set debug info ],
+    [  disable-debugging       set debug info ],
     [debug_b=$enableval])
 
 AC_ARG_ENABLE(optimise,
-    [  enable-optimise       use maximal speed optimisations],
+    [  enable-optimise         use maximal speed optimisations],
     [optimise_b=$enableval])
     
-   
 AC_ARG_ENABLE(profiling, 
-    [  enable-profiling      compile with gprof support],
+    [  enable-profiling        compile with gprof support],
     [profile_b=$enableval])
     
+AC_ARG_ENABLE(mingw32,
+    [  mingw-prefix=DIR        set the mingw32 directory (standalone windows32 exes)],
+    [MINGWPREFIX=$enableval],
+    [MINGWPREFIX=$enableval])
+    
 AC_ARG_ENABLE(tex-prefix,
-    [  tex-prefix=DIR  set the tex-directory to find TeX subdirectories. (default: PREFIX)],
+    [  tex-prefix=DIR          set the tex-directory to find TeX subdirectories. (default: PREFIX)],
     [TEXPREFIX=$enableval],
     [TEXPREFIX=auto] )
     
 AC_ARG_ENABLE(tex-dir,
-    [  tex-dir=DIR  set the directory to put LilyPond  TeX files in. ],
+    [  tex-dir=DIR             set the directory to put LilyPond  TeX files in. ],
     [TEXDIR=$enableval],
     [TEXDIR=auto] )
+
 AC_ARG_ENABLE(mf-dir,
-    [  mf-dir=DIR  set the directory to put LilyPond MetaFont files in.],
+    [  mf-dir=DIR              set the directory to put LilyPond MetaFont files in.],
     [MFDIR=$enableval],
     [MFDIR=auto] )
 
@@ -135,13 +140,21 @@ if test $checking_b = no; then
     DEFINES="$DEFINES -DNDEBUG=1"
 fi
 
+# however, C++ support in mingw32 v 0.1.4 is still flaky
+if test $MINGWPREFIX != no; then // huh?
+    ICFLAGS="-I$MINGWPREFIX/include"
+    ILDFLAGS="-$MINGWPREFIX/lib"
+fi
+
 if test $optimise_b = yes; then
     DEFINES="$DEFINES -O2 -DSTRING_UTILS_INLINED"
 fi
 
 dnl COMPILEINFO="$HOST $host $TARGET $target"
 AUTOHEADER="This file was automatically generated by configure"
+CPPFLAGS=${CPPFLAGS:-""}       # we don't want -g -O junk
 CXXFLAGS=${CXXFLAGS:-""}       # we don't want -g -O junk
+
 AC_PROG_CXX
 AC_PROG_RANLIB
 AC_PROG_INSTALL
@@ -153,6 +166,8 @@ if test FIND = error; then
 fi
     
 AC_SUBST(CXX)
+AC_SUBST(ICFLAGS)
+AC_SUBST(ILDFLAGS)
 AC_SUBST(DEFINES)
 AC_SUBST(COMPILEINFO)
 AC_SUBST(AUTOHEADER)
index e40941564554a39fc635c9384a015dc8b97aa7a1..bcd778a9949b355deb343474e0d6285bd0a70444 100644 (file)
@@ -99,7 +99,7 @@ public:
     virtual bool trans_ok(int i, int j) const;
     virtual void trans_next(int &i, int &j) const;
     virtual Matrix_storage * clone();
-    NAME_MEMBERS(Full_storage);
+    NAME_MEMBERS();
     virtual bool try_right_multiply(Matrix_storage * dest, Matrix_storage const * );
 };
 
index 933cdbbb6ed4043ac4b5a75769b8d6577a0ef035..d7e9310acfbaedd7900caa8dc893e180bf7b45ec 100644 (file)
@@ -153,7 +153,7 @@ public:
     /**
       RTTI.
      */
-    NAME_MEMBERS(Matrix_storage);
+    NAME_MEMBERS();
 };
 
 
index e5c807e8a97f2769c11f58cda627d62eb9a5d3e9..fa6b5df9d448131f0bc1ef71c4c2cfe05a465742 100644 (file)
@@ -14,9 +14,9 @@
   The static_name() can *not* be inlined (this might have the effect that 
   s->name() != S::static_name(). Overlapping strings need not be merged in C++
  */
-#define NAME_MEMBERS(c)        \
+#define NAME_MEMBERS() \
 static char const *static_name();\
-virtual char const *name() const{ return c::static_name(); } \
+virtual char const *name() const{ return static_name(); } \
 int a_stupid_nonexistent_function_to_allow_the_semicolon_come_out()
 
 #define IMPLEMENT_STATIC_NAME(c)\
index 898ca8f4195ba42b5c4cbe8f9ada0a4239700fef..9bab84d8af97ad432d33b00aaa8913316e2e96f5 100644 (file)
@@ -1,4 +1,4 @@
-\version "0.0.57";
+\version "0.0.58";
 
 \include "register.ini"
 \include "dynamic.ini"
index abcdeab3efe495133fee7906069897139ad232bd..58f2ef25a7010cb07ceb62a629cad50067a52251 100644 (file)
@@ -3,6 +3,7 @@
 % It has a lot of hard-wired stringconstants
 %
 
+
 table_sixteen= 
 \symboltables {
 
@@ -26,9 +27,7 @@ table_sixteen=
            "upbow" "\upbow"                    -1\pt 6\pt      0\pt 5\pt
            "downbow" "\downbow"                0\pt 5\pt       0\pt 7.5\pt
            "back" "\backorfront"               0\pt 6\pt       0\pt 3\pt
-           "-front" "\backorfront"             -3\pt 5\pt      0\pt 3\pt
-% oeps, segfault
-%          "heel" "\heel"                      0\pt 6\pt       -.5\pt 2\pt
+           "-front" "\backorfront"             0\pt 6\pt       0\pt 3\pt
            "heel" "\heel"                      0\pt 6\pt       -1\pt 5\pt
            "toe" "\toe"                        0\pt 6\pt       -1\pt 5\pt
            "bheel" "\bheel"                    0\pt 6\pt       -1\pt 5\pt
index 158ee16b149dd468dc1fafcf63b1b674e7da02f2..d8d758be8bf520f91dfda6520acf1f8437a9643e 100644 (file)
@@ -10,7 +10,7 @@
 EndMudelaHeader
 %}
 
-\version "0.0.57";
+\version "0.0.58";
 
 
 cad = \melodic  {
@@ -43,7 +43,7 @@ cad = \melodic  {
        \duration 16;   [d cis d e]
        f4~ [f e d c]
        'b4
-       \octave c'; [d'8 c'8 a8]2/3
+       \octave c'; [2/3 d'8 c'8 a8]1/1
        g2
                \bar \empty ;
        [g c e g] [c' e g c']\octave c''; 
index 14df3bc58fa0432a43e34859c9c905a8780f22d9..65057eb7849322b37032cf32040a299e98e0babe 100644 (file)
@@ -10,7 +10,7 @@
  Tested Features:test the Collision resolution 
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 
 
index 4afddd66144afac67e605cfc147bd437ee4fb36f..87b22fc1bafed637af624b373ddb9e779c548a34 100644 (file)
@@ -16,7 +16,7 @@ EndMudelaHeader
 % (maybe even sooner :-)
 %
 
-\version "0.0.57";
+\version "0.0.58";
 
 alto = \melodic{ 
        
index c68205f0bee61e676379e5177e24bab0765a2b4e..118dba144d4c62ad673f7c6b0915f39e559ddf80 100644 (file)
@@ -1,4 +1,4 @@
-\version "0.0.57";
+\version "0.0.58";
 
 \include "this-is-hopefully-a-nonexisting-file"
 
index af02e8ab9d0ba63a07f7df655e8f8dfca6efded3..9e01bf0d40d402380e963576ae66a24d1cba8bb1 100644 (file)
@@ -10,4 +10,4 @@
  Tested Features:
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
index f46fc86f3afffc1f78f55c6ad3f6cff821f617b5..076ea00fe7459bf463f2acd65a4832059935a164 100644 (file)
@@ -10,7 +10,7 @@
  Tested Features: local key, key, forced accidentals
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 
 blah = \melodic{
index 6cc689c326560da06b8246564a8f36853e5a6ff3..409fe49ebae43e81970f22509131473ffe1e8e10 100644 (file)
@@ -10,7 +10,7 @@
  Tested Features: example file with comments
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 
 % the % is a comment.
index 5e760771feb805479fe64862f9013acbfe1ff899..caa990543097606ba175224e13ecd5b37f39e86f 100644 (file)
@@ -24,7 +24,7 @@
 % \lbheel \lbheel \lfheel \lftoe
 % \rbheel \rbtoe \rfheel \rftoe
 
-\version "0.0.57";
+\version "0.0.58";
 
 \score{
        \staff{ melodicregs
index 042d9cddc0cc7e798f388c203a729b0a9187cb49..530fc74a98377136b0a1d644b33c64d7732b623a 100644 (file)
        unsynced bars
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 %
 %      Ive' got rhythm!
 %
 % add any impressive examples here, please
 
-\version "0.0.57";
+\version "0.0.58";
 
 ritme = \staff {
        melodicregs
@@ -35,7 +35,7 @@ ritme = \staff {
        % divide measure in 5 equal parts. Usually it 2+3 or 3+2
        \grouping  16*5 ;       
        [c8 c16 c8 ]                            |       % watch THIS!
-        [c16 c16 c16 c16]5/4 |
+        [5/4 c16 c16 c16 c16]1/1 |
        \meter   2/8;
        c4                              |
        c4      c4      c4      c4
index 1a46c213370e7a86957aaf2fc3ee49cdc8c3add5..2ccad6c895d534f2be97b5ada1cc3ec9b174cbab 100644 (file)
@@ -2,7 +2,7 @@
 % scales with accents.
 %
 
-\version "0.0.57";
+\version "0.0.58";
 blah = \staff{  melodicregs
        \melodic {
                \meter 6/8;     
@@ -19,30 +19,30 @@ blah = \staff{  melodicregs
                        c d 
                \duration  8 ;
        %ugr
-                |[ a \< a a a a a a  \! a a \ff \> ]6/9 
+                |[6/9 a \< a a a a a a  \! a a \ff \> ]1/1 
                \octave  c' ;
-                |[ a  a a a a a a a \! a ]6/9 
+                |[6/9 a  a a a a a a a \! a ]1/1 
                \octave  c'' ; 
 
                 ['c->-.-\fermata \< 'g->-.-\fermata d->-.-\fermata a->-.-\fermata
                e'->-.-\fermata b'-. f''-. c'''->-.-\fermata \! g'''->-.-\fermata \> ]6/9
-                [g'''->-.-\fermata c'''->-.-\fermata f''->-.-\fermata b'->-.-\fermata e'->-.-\fermata a->-.-\fermata d->-.-\fermata 'g->-.-\fermata \! 'c->-.-\fermata ]6/9
+                [6/9 g'''->-.-\fermata c'''->-.-\fermata f''->-.-\fermata b'->-.-\fermata e'->-.-\fermata a->-.-\fermata d->-.-\fermata 'g->-.-\fermata \! 'c->-.-\fermata ]1/1
                 \octave c;
                ['c->-.-\fermata \< 'g->-.-\fermata d->-.-\fermata a->-.-\fermata
                e'->-.-\fermata b'-. f''-. c'''->-.-\fermata \! g'''->-.-\fermata \> ]6/9
-                [g'''->-.-\fermata c'''->-.-\fermata f''->-.-\fermata b'->-.-\fermata e'->-.-\fermata a->-.-\fermata d->-.-\fermata 'g->-.-\fermata \! 'c->-.-\fermata ]6/9
+                [6/9 g'''->-.-\fermata c'''->-.-\fermata f''->-.-\fermata b'->-.-\fermata e'->-.-\fermata a->-.-\fermata d->-.-\fermata 'g->-.-\fermata \! 'c->-.-\fermata ]1/1
                \octave  c' ;
                \octave  c' ;   
-                [ c g d' ]2/3 
-                [ d' g c ]2/3  
-                [ f c' g' ]2/3 
-                [ g' c' f ]2/3  
+                [2/3 c g d' ]1/1 
+                [2/3 d' g c ]1/1  
+                [2/3 f c' g' ]1/1 
+                [2/3 g' c' f ]1/1  
                \octave  c ;
-                [ c g d' ]2/3 
-                [ d' g c ]2/3  
-                [ f c' g' ]2/3 
-                [ g' c' f ]2/3 
-                [ g' c' f ]2/3 
+                [2/3 c g d' ]1/1 
+                [2/3 d' g c ]1/1  
+                [2/3 f c' g' ]1/1 
+                [2/3 g' c' f ]1/1 
+                [2/3 g' c' f ]1/1 
   \meter 4/4;
        
 c1
index 4890522195ecc1e4fba83841dba0dd68baa71afa..42b1fa1731b2865810c2bb5be2c7e44150adb361 100644 (file)
@@ -10,7 +10,7 @@
  Tested Features: scripts, text.
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 
 blah = \staff{  melodicregs
index b40697e5b672016dd5dc00c3ba324e0725752d44..9ff18deb972d4938fab51001a3cba315bffaee88 100644 (file)
@@ -12,7 +12,7 @@
 
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 %% Stuff from MPP version
 % \lefttitle{Menuetto}
 % \tempo{Moderato}
index a97f5faa6c83c61cfb239248471ed6c3175e8538..cddf943902202b3860dcd7306cf46f334264cdca 100644 (file)
@@ -11,7 +11,7 @@
 EndMudelaHeader
 %}
 
-\version "0.0.57";
+\version "0.0.58";
 
 \score{\staff{
        melodicregs 
index 03b8a1e7c3348e1915ca4225da6832785b54281c..09bbcd241492c3978851d2cdb144d5696ba2084a 100644 (file)
@@ -12,9 +12,8 @@
 
 EndMudelaHeader
 %}
-\version "0.0.57";
 
-\version "0.0.57";
+\version "0.0.58";
 
 commands = \melodic{
        \skip 2.*4;
@@ -45,29 +44,29 @@ melodie = \melodic{
 %%4
        r < [ 'a cis > e < 'a cis > e < 'a cis ] > |
 %%5
-       [ a~ bes a ]2/3 d'4. a |
+       [2/3 a~ bes a ]1/1 d'4. a |
 %%6
-       [ g~ a g ]2/3 d'4 g r |
+       [2/3 g~ a g ]1/1 d'4 g r |
 
 %%7
-       a4.^> g [ g~ f e ]2/3 |
+       a4.^> g [2/3 g~ f e ]1/1 |
 %%8
        f2 r4 |
 %%9
 
-       < { a'4.~  g' [ g'( f' )e' ]2/3 }
+       < { a'4.~  g' [2/3 g'( f' )e' ]1/1 }
        { cis'4. e'_"dolce" \plet 2/3; e' \plet 1/1; } > |
 %%10
        < f'2. d'2. > |
 %%11
-       [ a ~  bes a ]2/3 f'4. a |
+       [2/3 a ~  bes a ]1/1 f'4. a |
 %%12
-       [ g~   a g ]2/3 e'4. d' |
+       [2/3 g~   a g ]1/1 e'4. d' |
 %%13
-       c'4. bes [ bes~   a g ]2/3 |
+       c'4. bes [2/3 bes~   a g ]1/1 |
 %%14
        a2 r 
-       < { d'~  c'4. g [ bes a g ]2/3 }
+       < { d'~  c'4. g [2/3 bes a g ]1/1 }
        { f \p ~  e4._"dolce" bes 
                \plet 2/3; g
                \plet 1/1; 
@@ -82,12 +81,12 @@ melodie = \melodic{
        [ d'8. a16 ] f4. d |
 %%19
 %#%    c'\grace\stemup
-       [ bes ~   a bes ]2/3 d'4. bes |
+       [2/3 bes ~   a bes ]1/1 d'4. bes |
 %%20
        a2. |
 %%21
 %#%    a\grace
-       [ g~  fis g ]2/3 bes4.^> g |
+       [2/3 g~  fis g ]1/1 bes4.^> g |
 %%22
        f!2. |
 %%23
@@ -95,17 +94,17 @@ melodie = \melodic{
 %%24
        [ d'8. a16 ] fis4. d |
 %%25
-       [ b \mf~   ais b ]2/3 d'4. b |
+       [2/3 b \mf~   ais b ]1/1 d'4. b |
 %%26
        < a2. fis2. > |
 %%27
-       [ e' \f~  dis' e' ]2/3 g'4. cis' |
+       [2/3 e' \f~  dis' e' ]1/1 g'4. cis' |
 %%28
        < d'2. fis2. > |
 %#%\volta1
 %%29
-       < { bes2( [ d'8.~ )g16 ] }
-       { g2 \mf [ bes8. bes16 ] } > |
+       < { bes2( [ d'8.~ )bes16 ] }
+       { g2 \mf [ bes8. g16 ] } > |
 %%30
        < { a4. [ a-. a-. a-. ] }
        { fis4. [ fis-.( fis-. )fis-. ] } > |
@@ -115,8 +114,8 @@ melodie = \melodic{
 %%32
        < a2 fis2 \pp > < a4 fis4 > |
 %%33
-       < { b2( [ d'8.~  g16 ] }
-       { g2 [ b8. b16 ] } > |
+       < { b2( [ d'8.~ )b16 ] }
+       { g2 [ b8. g16 ] } > |
 %%34
        < { a4. [ a-. a-. a-. ] }
        { fis4. [ fis-.( fis-. )fis-. ] } > |
@@ -136,7 +135,7 @@ melodie = \melodic{
 %%40
        cis'2 r4 |
 %%41
-       < fis'4. \> cis'4. \f > e' [ e'~  d' \! cis' ]2/3 |
+       < fis'4. \> cis'4. \f > e' [2/3 e'~  d' \! cis' ]1/1 |
 %%42
        [ b8. cis'16 ] d'4^> b r |
 %%43
@@ -145,11 +144,11 @@ melodie = \melodic{
 %%44
        [ b8. \> cis'16 ] d'4^> b \! r |
 %%45
-       [ b \p ~  ais b ]2/3 d'4. b |
+       [2/3 b \p ~  ais b ]1/1 d'4. b |
 %%46
        <a!2. fis2. > |
 %%47
-       [ e' \f~  dis' e' ]2/3 g'4.^> cis' |
+       [2/3 e' \f~  dis' e' ]1/1 g'4.^> cis' |
 %%48
        \textstyle "italic";
        < 
@@ -343,16 +342,16 @@ tekstI = \lyric{
        _ _ _
        _ _ _
 % 5
-       [ Lei- se8 ]2/3 fleh-4. en8 
-       [ mei- ne8 ]2/3 Lie- der8 _8
-       Durch4. die8 [ Nacht zu8 ]2/3 
+       [2/3 Lei- se8 ]1/1 fleh-4. en8 
+       [2/3 mei- ne8 ]1/1 Lie- der8 _8
+       Durch4. die8 [2/3 Nacht zu8 ]1/1 
        dir;2 _    
        _ _ _ 
        _ _ _
 % 11
-       [ In den8 ]2/3 stil-4. len8 
-       [ Hain her-8 ]2/3 nie-4. der,8
-       Lieb4. chen,8 [ komm zu8 ]2/3 
+       [2/3 In den8 ]1/1 stil-4. len8 
+       [2/3 Hain her-8 ]1/1 nie-4. der,8
+       Lieb4. chen,8 [2/3 komm zu8 ]1/1 
        mir!2 _
        _ _ _ 
        _ _ _
@@ -360,7 +359,7 @@ tekstI = \lyric{
 % 17
        Fl\"us-8. ternd16 schlan-4. ke8 
        Wip-8. fel16 rau-4. schen8
-       [ In des8 ]2/3 Mon-4. des8 
+       [2/3 In des8 ]1/1 Mon-4. des8 
        Licht;2.
        _ _ _ 
        _ _ _
@@ -368,7 +367,7 @@ tekstI = \lyric{
 % 23
        Des8. Ver-16 r\"a-4. ters8 
        feind-8. lich16 Lau-4. schen8
-       [ F\"urch- te,8 ]2/3 Hol-4. de,8 
+       [2/3 F\"urch- te,8 ]1/1 Hol-4. de,8 
        nicht.2.
        _ _ _ 
        _ _ _
@@ -388,7 +387,7 @@ tekstI = \lyric{
        mich!2 _
        Be-8. bend16 harr' ich8 _8
        dir8. ent-16 ge- gen!8 _8
-       [ Komm, be-8 ]2/3 gl\"u4. cke8 
+       [2/3 Komm, be-8 ]1/1 gl\"u4. cke8 
        mich!2.
        _ _ _ _ _ _
 % 47
@@ -410,17 +409,17 @@ tekstII = \lyric{
        _ _ _
        _ _ _
 % 5
-       [ H\"orst die8 ]2/3 Nach-4. ti-8 
-       [ gal- len8 ]2/3 schla- gen?8 _8
-       Ach!4. sie8 [ fleh- en8 ]2/3 
+       [2/3 H\"orst die8 ]1/1 Nach-4. ti-8 
+       [2/3 gal- len8 ]1/1 schla- gen?8 _8
+       Ach!4. sie8 [2/3 fleh- en8 ]1/1 
        dich,2 _
        _ _ _ 
        _ _ _
 
 % 11
-       [ Mit der8 ]2/3 T\"o-4. ne8
-       [ s\"u\ss- en8 ]2/3 Kla-4. gen8
-       Fleh-4. en8 [ sie f\"ur8 ]2/3
+       [2/3 Mit der8 ]1/1 T\"o-4. ne8
+       [2/3 s\"u\ss- en8 ]1/1 Kla-4. gen8
+       Fleh-4. en8 [2/3 sie f\"ur8 ]1/1
        mich.2 _
        _ _ _ 
        _ _ _
@@ -428,7 +427,7 @@ tekstII = \lyric{
 % 17
        Sie-8. ver-16 stehn4. des8
        Bus-8. ens16 Seh-4. nen,8
-       [ Ken- nen8 ]2/3 Lieb-4. es-8 
+       [2/3 Ken- nen8 ]1/1 Lieb-4. es-8 
        schmerz,2.
        _ _ _ 
        _ _ _
@@ -436,7 +435,7 @@ tekstII = \lyric{
 % 23
        R\"uh-8. ren16 mit4. den8 
        Sil-8. ber-16 t\"o-4. nen8
-       [ Jed- es8 ]2/3 wei-4. che8 
+       [2/3 Jed- es8 ]1/1 wei-4. che8 
        Herz.2.
        _ _ _ 
        _ _ _
index dade648ae5386936bcf74ef59875278f9a4e4b73..19c862d90e48dad59b875db9d2041c7f22d73274 100644 (file)
@@ -20,7 +20,7 @@ EndMudelaHeader
 %}
 
 
-\version "0.0.57";
+\version "0.0.58";
 
 toccata_commands = \melodic{
        \meter 4/4;
@@ -33,9 +33,9 @@ toccata_right = \melodic{
        % 13 -- how to type -- where to split -- this more neatly ?
        \octave c';
        <\multivoice 
-               { \stem 1; \hshift 1; r4 dis'4 e'4.-. e'8~  e'4 [d'8 fis'8] gis'4 [gis'8 fis'16 e'16] | fis'4~  [fis'8 e'16 dis'16] e'4 r8 e'8 }
-               { \stem 1; r4 bis4 cis'4-. cis'4 | ais'4~  [ais'16 gis'16 ais'16 b'16] dis'4 cis'4~  [cis'8 dis'16 ais16] bis4 cis'4 r8 b8 }
-               { \stem -1; r4 < gis4 fis4 dis4 > gis4-. gis4 | ais4. cis'8 gis2 | fis4 gis4 gis4 r8 e8 }
+               { \stem 1; r4 dis'4 e'4.-. e'8( | \hshift 1; )e'4 [d'8 fis'8] \hshift 0; gis'4 [gis'8 fis'16 e'16] | fis'4~  [fis'8 e'16 dis'16] e'4 r8 e'8 }
+               { \stem 1; \hshift 1; r4 bis4 cis'4-. cis'4 | \hshift 0; a'4~  [a'16 gis'16 a'16 b'16] \hshift 1; dis'4 cis'4~  [cis'8 dis'16 a16] bis4 cis'4 r8 b8 }
+               { \stem -1; r4 < gis4 fis4 dis4 > gis4-. gis4 | a4. cis'8 gis2 | fis4 gis4 gis4 r8 e8 }
        > |
        % 16
 }
@@ -46,8 +46,8 @@ toccata_left = \melodic{
        \clef bass;
        % 13
        <\multivoice
-               { \stem 1; bis2 cis'4-. cis'4~  [cis'8 ais'8 d'8 cis'8] [bis8 gis8] cis'4 | dis'2 cis'4 r8 cis'8 }
-               { \stem 1; \hshift 1; r4 gis4. gis8~  gis4 | \stem -1; \hshift 0; ais4. fis8 gis4. ais8~  ais4 gis4-. gis4 r8 gis8 }
+               { \stem 1; bis2 cis'4-. cis'4~  [cis'8 a8 d'8 cis'8] [bis8 gis8] cis'4 | dis'2 cis'4 r8 cis'8 }
+               { \stem 1; \hshift 1; r4 gis4. gis8~  gis4 | \stem -1; \hshift 0; a4. fis8 gis4. a8~  a4 gis4-. gis4 r8 gis8 }
                { \stem -1; r4 < dis4 fis4 > < cis4 e4 > }
        > |
        % 16
@@ -76,19 +76,27 @@ fuga2_right = \melodic{
        % 15
        \octave c';
        <\multivoice
-               { \stem 1; b8 fis8 b4 }
+               { \stem 1; [b8 fis8] b4 }
                { \stem -1; fis2 }
        >
-       <% \multivoice % heu?
-               { e'4 }
-               { cis'4 }
-               { ais4 }
-               { fis4 }
+       %{ this chord is usually set like this:
+            |
+            x|| 
+             x||
+              x|
+           |x
+           |
+       %}
+       < \multivoice
+               { \stem 1; \hshift 0; e'4 }
+               { \stem 1; \hshift 1; cis'4 }
+               { \stem 1; \hshift 2; ais4 }
+               { \stem -1; fis4 }
        > |
        % 16
        <\multivoice
                { \stem 1; dis'2 dis'4 | cis'2 cis'4 | b4~  [b8 cis'8 dis'8 e'8] }
-               { \stem 1; \hshift 1; b8 fis8 b2~  [b8 a16 g16] a2 | a4 gis2 }
+               { \stem 1; \hshift 1; [b8 fis8] b2~  [b8 a16 g16] a2 | a4 gis2 }
                { \stem -1; fis2.~  fis2.~  fis4 e2 }
        > |
        % 19
index df4cf9a0cd4201564be1b26fdeb7a2e3f2f1306f..8a1772795958cd5262b33b152319b2657129f764 100644 (file)
@@ -14,7 +14,7 @@
  Tested Features: lyrics
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 melody = \melodic{
        \clef\violin;
index 6b15eaae4c8727298e9fb889f24ae9b70e975821..eb6b0278f6d73379a060b63cfe932b684eadd1b4 100644 (file)
@@ -14,7 +14,7 @@
 
 %}
 
-\version "0.0.57";
+\version "0.0.58";
 
                                     % should add \need{dutch.ini} for
                                     % correct parsing of note names
index b156a10b1a42204f6e0fc3e7df9c0954b075c8d9..280af9ce067401caefb248da93b8d2710d2d0744 100644 (file)
@@ -55,16 +55,13 @@ MAINTARGET = $(outdir)/$(LIBRARY)# huh?
 default: $(MAINTARGET)
 #
 
+localclean:
+       rm -f $(MAINTARGET)
+
 # generic targets and rules:
 #
 include ./$(depth)/make/Targets.make
 include ./$(depth)/make/Rules.make
-#
-
-# list of depend files:
-#
-
-#
 
 # auto dependencies:
 #
index f87385c4280b384a92738e1021c964fbc9fb0f3f..e68940257c9cda1151063a8a49ac7c719703a161 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef INPUT_HH
 #define INPUT_HH
 
+#include "proto.hh"
+
 /**
   Base class for anything that records its poisition in the parse file.
  */
index 540be2168235b68dc4b2cef1c53d7b5b7109b5ca..cabfd3c5c49ee50e61491847052bc7ed11792823 100644 (file)
@@ -1,7 +1,9 @@
 //
 // windhoos-suck-suck-suck-thank-you-cygnus.hh
 //
-#ifdef _WIN32
+// mmap() should work now (cygnus beta 18), but let's keep it here
+// for people using old cygnus releases
+#if 0 //def _WINDOWS32
 #ifndef WINDHOOS_SUCK_SUCK_SUCK_HH
 #define WINDHOOS_SUCK_SUCK_SUCK_HH
 
@@ -10,4 +12,4 @@ caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset
 int munmap(caddr_t addr, size_t len);
 
 #endif // WINDHOOS_SUCK_SUCK_SUCK_HH
-#endif // _WIN32 //
+#endif // _WINDOWS32 //
index 15db908eab614e6d9c4c99906c0f120a97a9c88d..b2681e482635fa094fc6f5d0b9a2d20954c7d757 100644 (file)
@@ -1,7 +1,9 @@
 //
 // windhoos.cc
 //
-#ifdef _WIN32
+// mmap() should work now (cygnus beta 18), but let's keep it here
+// for people using old cygnus releases
+#if 0 // def _WINDOWS32
 
 #include <sys/types.h>
 #include <sys/mman.h>
@@ -100,4 +102,4 @@ munmap(caddr_t addr, size_t len)
 #endif // !HAVE_GET_OSFHANDLE //
 
 
-#endif // _WIN32 //
+#endif // _WINDOWS32 //
index de91678501b039c30e5e314d9c25f4b509fc4fe0..1f39e39a1d1e192381df5ccc6206aeafe1dafb22 100644 (file)
@@ -1,8 +1,7 @@
 MAJOR_VERSION = 0
 MINOR_VERSION = 0
-PATCH_LEVEL = 66
-
+PATCH_LEVEL = 67
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
-MY_PATCH_LEVEL = 
+MY_PATCH_LEVEL =
diff --git a/lily/atom.cc b/lily/atom.cc
new file mode 100644 (file)
index 0000000..0ca9649
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+  atom.cc -- implement Atom
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+#include "symbol.hh"
+#include "tex.hh"
+#include "interval.hh"
+#include "dimen.hh"
+#include "string.hh"
+#include "varray.hh"
+#include "debug.hh"
+
+
+
+void
+Atom::print() const
+{
+    mtor << "texstring: " <<sym.tex<<"\n";    
+}
+
+Box
+Atom::extent() const
+{
+    Box b( sym.dim);
+    b.translate(off);
+    return b;
+}
+
+Atom::Atom(Symbol s)
+{
+    sym=s;
+}
+
+
+String
+Atom::TeX_string() const
+{
+    /* infinity checks. */
+    assert( abs(off.x) < 100 CM);
+    assert( abs(off.y) < 100 CM);
+    
+    // whugh.. Hard coded...
+    String s("\\placebox{%}{%}{%}");
+    Array<String> a;
+    a.push(print_dimen(off.y));
+    a.push(print_dimen(off.x));
+    a.push(sym.tex);
+    return substitute_args(s, a);
+}
index 9fcd49f705344d72828136542b1e0999a6378200..3d16d96518d54b2d0416a069e46324c4880d6d01 100644 (file)
@@ -13,7 +13,6 @@
 */
 
 #include "varray.hh"
-
 #include "proto.hh"
 #include "dimen.hh"
 #include "beam.hh"
@@ -52,11 +51,6 @@ Stem_info::Stem_info(Stem const *s)
 
 
 /* *************** */
-void
-Beam::do_break_at(PCol*l, PCol*r)
-{
-    assert (l->line_l_ == r->line_l_);
-}
 
 
 
index 2de418ebdf8b2f3672d7e43749a9116befa283c6..e24f79d067c16ccd46d52bd6816b2d084a03c87e 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "bow.hh"
 #include "paper-def.hh"
+#include "molecule.hh"
 #include "lookup.hh"
 
 Bow::Bow()
index 83cb258ffb32dc92972b3edee47ea348fc4afcb3..7a70fced2eeceb43564bbf9f2a6dcb14afa92f9e 100644 (file)
 #include "debug.hh"
 #include "musical-request.hh"
 
-
+void
+Command_script_req::do_print() const
+{}
+IMPLEMENT_STATIC_NAME(Command_script_req);
 IMPLEMENT_STATIC_NAME(Cadenza_req);
 
 void
@@ -193,7 +196,7 @@ Key_change_req::Key_change_req()
 Key_change_req::Key_change_req(Key_change_req const&c)
 {
        for (int i=0; i < c.melodic_p_arr_.size(); i++) 
-               melodic_p_arr_.push( c.melodic_p_arr_[i]->clone()->melodic() );
+               melodic_p_arr_.push( c.melodic_p_arr_[i]->clone()->musical()->melodic() );
        minor_b_ = c.minor_b_;
        multi_octave_b_ = c.multi_octave_b_;
 }
index 98317f85e2fa3b1f7540ad28c1f1a2370cc94a2e..4ca1196b091090d27deeccf8d6d7cad9422bb0d3 100644 (file)
@@ -6,6 +6,7 @@
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+#include "molecule.hh"
 #include "dimen.hh"
 #include "crescendo.hh"
 #include "lookup.hh"
diff --git a/lily/general-script-def.cc b/lily/general-script-def.cc
new file mode 100644 (file)
index 0000000..e35a56c
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+  general-script-def.cc -- implement General_script_def
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#include "general-script-def.hh"
+#include "debug.hh"
+#include "symbol.hh"
+int
+General_script_def::staff_dir_i()const
+{
+    return -1;
+}
+int
+General_script_def::rel_stem_dir_i()const
+{
+    return 0;
+}
+int
+General_script_def::priority_i()const
+{
+    return 1000;
+}
+
+bool
+General_script_def::inside_b()const
+{
+    return false;
+}
+
+bool
+General_script_def::equal_b(General_script_def const&g)const
+{
+    if (name() != g.name())
+       return false;
+
+    return do_equal_b(g);
+}
+
+bool
+General_script_def::do_equal_b(General_script_def const&)const
+{
+    return true;
+}
+
+
+void
+General_script_def::print() const
+{
+    mtor << name() << "{";
+    do_print();
+    mtor << "}";
+}
+
+void
+General_script_def::do_print() const
+{
+}
+
+Atom
+General_script_def::get_atom(Paper_def*, int)const
+{
+    Symbol s;
+    return Atom(s);
+}
+IMPLEMENT_STATIC_NAME(General_script_def);
index b704f1803e4825c02fc69222075c67c76e16c2c4..8a144ad142e6d9d97d7351f4ed9a5eb7a59ae324 100644 (file)
@@ -19,8 +19,8 @@ Note_head_register::Note_head_register()
 bool
 Note_head_register::try_request(Request *req_l) 
 {
-    if (req_l->note() || req_l->rest())
-       note_req_l_=req_l->rhythmic();
+    if (req_l->musical() && (req_l->musical()->note() || req_l->musical()->rest()))
+       note_req_l_=req_l->musical()->rhythmic();
     else
        return false;
 
diff --git a/lily/include/atom.hh b/lily/include/atom.hh
new file mode 100644 (file)
index 0000000..5e9f260
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+  atom.hh -- declare 
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef ATOM_HH
+#define ATOM_HH
+
+#include "symbol.hh"
+#error
+
+
+#endif // ATOM_HH
index 5879cb948bbbf5f17e297ec0d57bf3cb514c09b6..f871915a01ccc69eddd23d590c2724a53a597933 100644 (file)
@@ -25,7 +25,7 @@ public:
     virtual void pre_move_processing();
     virtual void post_move_processing();
     Bar_register();
-    NAME_MEMBERS(Bar_register);
+    NAME_MEMBERS();
 };
 
 #endif // BARREG_HH
index ea23bd07bccfdf5bbc74f537c699f901113e4d3b..eecc32f51fb0bc1c98ee583a6607bc0154f9dabc 100644 (file)
@@ -14,7 +14,7 @@ class Bar:public Item {
 public:
     String type;
     
-    NAME_MEMBERS(Bar);
+    NAME_MEMBERS();
     Bar(String type);
 private:
     void do_print() const;
index d9c7a0a9b0ebd5de824c9ab2544a244aea7c6e47..d1e28ee4f683b36674f128a5fa15b7ba59812a68 100644 (file)
@@ -24,7 +24,7 @@ public:
    
 
     /* *************** */
-    NAME_MEMBERS(Beam);
+    NAME_MEMBERS();
     Beam();
     void add(Stem*);
     
@@ -35,7 +35,6 @@ public:
 protected:
     virtual Interval do_width()const;    
     virtual Offset center() const;
-    virtual void do_break_at(PCol *,  PCol *);
     virtual void set_default_dir();
     virtual void do_pre_processing();
     virtual void do_post_processing();
index 76330c079c44121a0e5005438d63c1a6c8c6bbc5..c69214a542655da347f3601a6d98ae9023854bcd 100644 (file)
@@ -25,7 +25,7 @@ protected:
     Molecule*brew_molecule_p()const;
 public:
     Bow();
-    NAME_MEMBERS(Bow);
+    NAME_MEMBERS();
     Offset center() const;  
 };
 #endif // BOW_HH
index d0e29994ef3720397ac3a58e7f03e7a05af3a0f4..23e346c083d49dfb3db49c066263bfd201b49582 100644 (file)
@@ -24,7 +24,7 @@ public:
     bool change;
 
     /* *************** */
-NAME_MEMBERS(Clef_item);
+NAME_MEMBERS();
     Clef_item();
     void read(Clef_register const&);
     void read(String);
index 28cbd4643ceab37383926995dceaf0728d265dd6..b78f3dd682a55096f758c1197a4f3524f4e5ec2e 100644 (file)
@@ -31,7 +31,7 @@ public:
     /* ************** */
    
     Clef_register();
-    NAME_MEMBERS(Clef_register);
+    NAME_MEMBERS();
    
 };
 #endif // CLEF_HH
index b0b3b6dc8a86a3b6d28f1c5920ec0fd77dc2992f..5eef92a9e96aed244cfa3c5c38badffb0b61768a 100644 (file)
@@ -20,6 +20,6 @@ protected:
     virtual void pre_move_processing();
 public:
     Collision_register();
-    NAME_MEMBERS(Collision_register);
+    NAME_MEMBERS();
 };
 #endif // COLLISION_REG_HH
index be8d6bd506d05b6e3242f49cde47cf4dffbad917..62cee06041d52a641664141ef1250eb34335a5ab 100644 (file)
@@ -23,7 +23,7 @@ protected:
     virtual void do_pre_processing();
 public:
     Link_array<Note_column> clash_l_arr_;
-    NAME_MEMBERS(Collision);
+    NAME_MEMBERS();
     void add (Note_column*ncol_l);
     Collision();
     
index d1b99f9a6cdc94b45c72fe91581a58d7f503ff1d..c4676c76af8455d2e314e9c8f4890d23af4a4763 100644 (file)
@@ -21,7 +21,6 @@ public:
     virtual Terminate_voice_req *terminate() {return 0;}
     virtual Group_change_req * groupchange() { return 0;}
     virtual Group_feature_req * groupfeature() { return 0; }
-  
     virtual Measure_grouping_req * measuregrouping() { return 0; }
     virtual Clef_change_req * clefchange() { return 0; }
     virtual Key_change_req * keychange() { return 0; }
@@ -30,9 +29,17 @@ public:
     virtual Bar_req *bar() { return 0; }
     virtual Cadenza_req *cadenza() { return 0; }
     virtual Timing_req*timing() {  return 0; }
+    virtual Command_script_req*commandscript() { return 0;}
 };
 
 
+class Command_script_req : public Command_req,  public Script_req {
+public:
+    REQUESTMETHODS(Command_script_req, commandscript);
+};
+
+
+
 /** Baseclass for meter/partial req. It has to be handled by
   Staff_{walker,column} baseclass.  */
 class Timing_req  : public Command_req  {
index 72ff2c1d1be9034755663bf43ee39f121eda1880..56a3e1a9212599941eb1212fa4550513c370a69e 100644 (file)
@@ -28,7 +28,7 @@ public:
 protected:
     SPANNER_CLONE(Crescendo)
     virtual Molecule*brew_molecule_p()const;
-    NAME_MEMBERS(Crescendo);
+    NAME_MEMBERS();
     
 private:
     
index 17f769053cd21063638f89d8adeb3940360f2c91..72823a79a1026c11cc5dea48cf260732a1b893dd 100644 (file)
@@ -23,7 +23,7 @@ class Dynamic_register : public Request_register {
 public:
     Dynamic_register();
     ~Dynamic_register();
-    NAME_MEMBERS(Dynamic_register);
+    NAME_MEMBERS();
 protected:
     virtual void acknowledge_element(Score_elem_info);
     virtual bool try_request(Request *req_l);
index 0e544adbc0f06b22070451cab33c8a559e19b966..c0a23ccbcb826a1bfd6f3e0f67530a55643394d7 100644 (file)
@@ -28,7 +28,7 @@ protected:
 public:
     Element_group();
     Element_group(Element_group const&);
-    NAME_MEMBERS(Element_group);
+    NAME_MEMBERS();
     virtual void translate(Offset);
     virtual void add_element(Score_elem*);
     virtual String TeX_string()const;
diff --git a/lily/include/general-script-def.hh b/lily/include/general-script-def.hh
new file mode 100644 (file)
index 0000000..c7c7207
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+  general-script-def.hh -- declare General_script_def
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef GENERAL_SCRIPT_DEF_HH
+#define GENERAL_SCRIPT_DEF_HH
+
+#include "lily-proto.hh"
+#include "input.hh"
+#include "virtual-methods.hh"
+/**
+  Definition of anything that is put aside staff/notes.
+ */
+class General_script_def : public Input {
+public:
+    VIRTUAL_COPY_CONS(General_script_def,General_script_def)
+    NAME_MEMBERS();
+    virtual int staff_dir_i()const;
+    void print() const;
+    virtual int rel_stem_dir_i()const;
+    virtual int priority_i()const;
+    virtual bool inside_b()const;
+    virtual Atom get_atom(Paper_def* p, int dir_i_)const;
+    bool equal_b(General_script_def const&)const;
+    virtual ~General_script_def() {}
+    
+protected:
+    virtual bool do_equal_b(General_script_def const &)const;
+    virtual void do_print()const;
+};
+
+#endif // GENERAL_SCRIPT_DEF_HH
index 428978249e19b391d52b322d45950218570cbba6..583f5d452984f8279ba5c2fb7a45d71c5e9be8dd 100644 (file)
@@ -7,12 +7,9 @@
 #ifndef GROUPING_HH
 #define GROUPING_HH
 
-#include "moment.hh"
-#include "interval.hh"
+#include "minterval.hh"
 #include "varray.hh"
 
-typedef Interval_t<Moment> MInterval;
-
 /** data structure which represents rhythmic units   this is a tree. It groupes notes according to rules
 
   TODO Documentation. Unhairing
index 5e47743db1b5fbfa0e588e1c589de66fba61eb87..82487b688202d71ece28cea1456f5523a1b0687d 100644 (file)
@@ -19,7 +19,7 @@ struct Note_head_register : Request_register {
     virtual void process_requests();
     virtual void pre_move_processing();
     virtual void post_move_processing();
-    NAME_MEMBERS(Note_head_register);
+    NAME_MEMBERS();
 };
 
 
index 52fb65435259015e738c5898944d251a9aa06003..31c60c2fc81ccb89cd30971185f12e59cd3f2388 100644 (file)
@@ -29,14 +29,11 @@ struct Voice_list : public Link_list<Voice*> {
   */
 struct Input_music {
     virtual Voice_list convert()const=0;
-    void check_plet(Voice_element* velt_l);
     virtual Moment length()const=0;
     virtual void translate_time(Moment dt)=0;
     virtual ~Input_music(){}
     virtual void print() const =0;
     virtual void set_default_group(String)=0;
-    virtual bool find_plet_start_b(char c, Moment& moment_r) = 0;
-    virtual void set_plet_backwards(Moment& now_moment_r, Moment until_moment, int num_i, int den_i) = 0;
     virtual void transpose(Melodic_req const&) const =0;
     
     
@@ -58,8 +55,6 @@ struct Simple_music : Input_music {
     virtual Voice_list convert()const;
     virtual void translate_time(Moment dt);
     virtual void print() const;
-    virtual bool find_plet_start_b(char c, Moment& moment_r);
-    virtual void set_plet_backwards(Moment& now_moment_r, Moment until_moment, int num_i, int den_i);
     virtual Input_music *clone() const {
        return new Simple_music(*this);
     }
@@ -76,8 +71,6 @@ struct Complex_music : Input_music {
     Complex_music(Complex_music const &);
     virtual void print() const ;
     void concatenate(Complex_music*);
-    virtual bool find_plet_start_b(char c, Moment& moment_r);
-    virtual void set_plet_backwards(Moment& now_moment_r, Moment until_moment, int num_i, int den_i);
 };
 
 
index 3c030d122c68275e56df7bc134a00283c9c324c3..4ddc3ebd6c9ceaeadf13b5ce55590760b4466b4c 100644 (file)
@@ -31,7 +31,7 @@ public:
     virtual Item *item() { return this; }
     Item();
     Real hpos_f() const;
-    NAME_MEMBERS(Item);
+    NAME_MEMBERS();
     virtual Line_of_score * line_l() const;
 protected:
     virtual void do_print()const;
index 1e2207beab86ed24fe3ded572eaae9ba01413ab4..4b4c347eef9b47cfc24bf3137e2114e43521c2d9 100644 (file)
@@ -19,7 +19,7 @@ struct Key_item : Item {
 
     
     /* *************** */
-NAME_MEMBERS(Key_item);
+NAME_MEMBERS();
     Key_item(int cposition);
     void add(int pitch, int acc);
     void read(const Key_register&);
index b6e21224d927ca25a0f3d0e0b0c3165b56d79a43..bfa5fd05141d3bf8d36684a6f114ce2d98da05b8 100644 (file)
@@ -27,7 +27,7 @@ struct Key_register : Request_register {
     virtual void post_move_processing();
     virtual void acknowledge_element(Score_elem_info);
     Key_register();
-    NAME_MEMBERS(Key_register);
+    NAME_MEMBERS();
 private:
     
     void read_req(Key_change_req * r);
index 7df7542482fd9ee7e681ab6b0533e2df99b36ebd..b54fd5623e178e18ff6741b507eef93def350942 100644 (file)
@@ -33,6 +33,7 @@ struct Colinfo;
 struct Collision;
 struct Collision_register;
 struct Command_req;
+struct Command_script_req;
 struct Complex_music;
 struct Complex_walker;
 struct Cresc_req;
@@ -44,6 +45,7 @@ struct Dynamic;
 struct Dynamic_req;
 struct Element_group;
 struct Feature;
+struct General_script_def;
 struct Group_change_req;
 struct Group_feature_req;
 struct Idealspacing;
@@ -90,6 +92,7 @@ struct Midi_walker;
 struct Mixed_qp;
 struct Molecule;
 struct Music_general_chord;
+struct Musical_script_req;
 struct Music_voice;
 struct Musical_req;
 struct My_lily_parser;
@@ -106,7 +109,6 @@ struct PScore;
 struct Paper_def;
 struct Partial_measure_req;
 struct Plet;
-struct Plet_req;
 struct Pulk_voice;
 struct Pulk_voices;
 struct Rational;
index 24f48e3115ccc3957e9f6646df219f2447d9fc50..a80e44196e602fcecf3316554a1cfde471f0c611 100644 (file)
@@ -23,7 +23,7 @@ struct Local_acc {
   update item if Items are removed
  */
 struct Local_key_item : Item {
-    NAME_MEMBERS(Local_key_item);
+    NAME_MEMBERS();
     Array<Local_acc> accs;
     Link_array<Item> support_items_;
     int c0_position;
@@ -31,7 +31,7 @@ struct Local_key_item : Item {
     /* *************** */
     
     Local_key_item(int c0position);
-    void add(Item*);
+    void add_support(Item*);
     void add(int oct, int pitch, int acc);
     void add(Melodic_req*);
 public:
index e1278019170a656920823b1d059b15ac4add8603..98abf99ccd4232e27e6eb70c5988005243fe303b 100644 (file)
@@ -24,7 +24,7 @@ struct Local_key_register : Request_register {
     virtual void acknowledge_element(Score_elem_info);
     virtual void pre_move_processing();
     Local_key_register();
-    NAME_MEMBERS(Local_key_register);
+    NAME_MEMBERS();
 };
 
 #endif // LOCALKEYREG_HH
index 304bf5c6cf66d2e7db86250e241e90485f442eec..083654e66f9df87f8308fc1adfac0b741e8e4128 100644 (file)
@@ -21,7 +21,7 @@ class Lyric_register : public Request_register {
     virtual void process_requests();
     virtual void post_move_processing();
 public:
-    NAME_MEMBERS(Lyric_register);
+    NAME_MEMBERS();
     Lyric_register();
 };
 #endif // LYRIC_REGISTER_HH
index 300c72da9fe617d2ac40a4c8037f1277636bc39c..5930ea08d9739a0a533f1c739e226156c992f5e1 100644 (file)
@@ -24,6 +24,6 @@ public:
     virtual void pre_move_processing();
     virtual void post_move_processing();
     Meter_register();
-    NAME_MEMBERS(Meter_register);
+    NAME_MEMBERS();
 };
 #endif // METERREG_HH
index b923785256de98a892d66f16efc07181505dc434..7cd1d40ac315add00b2940cf17bb07f9e436f7fa 100644 (file)
@@ -23,7 +23,7 @@ protected:
     Molecule*brew_molecule_p() const;
 public:
     Meter(Array<Scalar> args) ;
-    NAME_MEMBERS(Meter);
+    NAME_MEMBERS();
 };
 #endif // METER_HH
 
diff --git a/lily/include/minterval.hh b/lily/include/minterval.hh
new file mode 100644 (file)
index 0000000..f1c1e16
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+  minterval.hh -- declare MInterval
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef MINTERVAL_HH
+#define MINTERVAL_HH
+
+#include "interval.hh"
+#include "moment.hh"
+
+typedef Interval_t<Moment> MInterval;
+
+#endif // MINTERVAL_HH
index 0ccb399a03a1de60ad2f8224e6cb0089e3cc6bbf..37021a214ee9e0f335e01dc1ab40ef470e5b10af 100644 (file)
@@ -4,27 +4,6 @@
 #include "lily-proto.hh"
 #include "plist.hh"
 #include "boxes.hh"
-#include "symbol.hh"
-
-/// a symbol which can be translated, and freely copied
-struct Atom {
-    Offset off;
-    Symbol sym;
-
-    /* *************** */
-    
-    void translate(Offset o) {
-       off += o;
-    }
-    
-    /// how big is #this#?
-    Box extent() const;
-    Atom(Symbol s);
-
-    void print() const;
-
-    String TeX_string() const;
-};
 
 
 /** a group of individually translated symbols. You can add molecules
@@ -35,7 +14,7 @@ struct Molecule {
     /* *************** */
     
     Molecule() { }
-    Molecule(Atom a) { add(a) ; }
+    Molecule(Atom const &a) { add(a) ;}
 
     void add_right(const Molecule &m);
     void add_left(const Molecule &m);
@@ -43,7 +22,7 @@ struct Molecule {
     void add_bottom(const Molecule &m);
     void add(Molecule const &m);
     void translate(Offset);
-    void add(Atom a) { ats.bottom().add(new Atom(a)); }
+    void add(Atom const & a) ;
     /// how big is #this#? 
     Box extent() const;
 
diff --git a/lily/include/music.hh b/lily/include/music.hh
new file mode 100644 (file)
index 0000000..06fbcd7
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+  music.hh -- declare Music
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+
+#ifndef MUSIC_HH
+#define MUSIC_HH
+
+#include "plist.hh"
+#include "virtual-methods.hh"
+#include "input.hh"
+#include "minterval.hh"
+#include "lily-proto.hh"
+
+class Music:public Input {
+public:
+    virtual MInterval time_int()const;
+    virtual ~Music(){}
+    void print() const;
+    virtual void transpose(Melodic_req const *);
+    virtual void translate(Moment dt);
+    VIRTUAL_COPY_CONS(Music,Music)
+    NAME_MEMBERS();
+    Music();
+protected:
+    virtual void do_print() const;
+  
+};
+
+class Music_list : public Music {
+public:
+    Music_list(Music_list const&);    
+    Music_list();
+    NAME_MEMBERS();
+    VIRTUAL_COPY_CONS(Music_list,Music)
+    virtual void add(Music*);
+    virtual void transpose(Melodic_req const *);
+protected:
+    Pointer_list<Music*> music_p_list_;
+    virtual void do_print() const;
+};
+
+
+class Chord : public Music_list {
+public:
+    NAME_MEMBERS();
+    VIRTUAL_COPY_CONS(Chord,Music)
+    virtual void translate(Moment dt);
+    virtual MInterval time_int()const;
+};
+
+
+class MVoice : public Music_list {
+public:
+    NAME_MEMBERS();
+    VIRTUAL_COPY_CONS(MVoice, Music)
+    virtual void translate(Moment dt);
+    virtual MInterval time_int()const;
+};
+
+#endif // MUSIC_HH
+
+
+
index ae4a9359395c680cff56e74a6209ce0a55677f0d..84d1da4440af959466a76d975394890db6edd941 100644 (file)
 class Musical_req  : public virtual Request  {
 public:
     
+    virtual Lyric_req* lreq_l() { return 0; }
+    virtual Note_req *note() { return 0;}
+    virtual Stem_req *stem() { return 0;}
+    virtual Melodic_req *melodic() { return 0; }
+    virtual Slur_req *slur() { return 0 ; }
+    virtual Beam_req *beam() { return 0 ; }
+    virtual Rhythmic_req*rhythmic() { return 0; }
+    virtual Musical_script_req*musicalscript() { return 0; }
     virtual Skip_req* skip() { return 0; }
     virtual Dynamic_req* dynamic() { return 0; }
     virtual Absolute_dynamic_req * absdynamic() { return 0; }
@@ -167,21 +175,6 @@ public:
   
 };
 
-/** 
- request for backward plet generation.
-
- ugr. Place in hierarchy?
- */
-class Plet_req  : public virtual Request  {
-public:
-     char type_c_;
-     int dur_i_;
-     int type_i_;
-     Plet_req();
-     REQUESTMETHODS(Plet_req,plet);
-};
-
 /** Start / stop a beam at this note.  if #nplet# is set, the staff
 will try to put an appropriate number over the beam */
 class Beam_req  : public Span_req  {
@@ -209,23 +202,12 @@ public:
 
 };
 
-
-/** Put a script above or below this ``note''. eg upbow, downbow. Why
-  a request? These symbols may conflict with slurs and brackets, so
-  this also a request */
-class Script_req  : public Musical_req  {
+class Musical_script_req : public Musical_req,  public Script_req {
 public:
-    int dir_i_;
-    Script_def *scriptdef_p_;
-
-    /* *************** */
-    static int compare(const Script_req &, const Script_req &);
-    Script_req(int d, Script_def*);
-    REQUESTMETHODS(Script_req,script);
-    ~Script_req();
-    Script_req(Script_req const&);
+    REQUESTMETHODS(Musical_script_req, musicalscript);
 };
 
+
 /** A helper in the hierarchy. Each dynamic is bound to one note ( a
     crescendo spanning multiple notes is thought to be made of two
     "dynamics": a start and a stop).  Dynamic changes can occur in a
index 7925621e65a3117aa41da5eef21c6599e3729506..45b8d4d4fb3c0d3f77693d233c5fc5f69db8e9a8 100644 (file)
@@ -32,6 +32,6 @@ protected:
     virtual void post_move_processing();
 public:
     Note_column_register();
-    NAME_MEMBERS(Note_column_register);
+    NAME_MEMBERS();
 };
 #endif // NOTE_COLUMN_REG_HH
index 32b1a18e11ba657e9a7a001a92831d9be9d6b03f..805b969bbc1f5d278474977b405109a0650f0c88 100644 (file)
@@ -33,7 +33,7 @@ public:
     int dir_i_;
    
         
-    NAME_MEMBERS(Note_column);
+    NAME_MEMBERS();
     Note_column();
     void add(Note_head *);
     void add(Stem *);
index 4a1bf349eb5e1d0f06d100a129ff977b0ecfc949..c93c1ad205d278ede6df56cf27606983c34658ee 100644 (file)
@@ -20,7 +20,7 @@
 
 class Note_head : public Item {
 public:
-    NAME_MEMBERS(Note_head);
+    NAME_MEMBERS();
 
     bool rest_b_;
     int position_i_;
@@ -45,6 +45,7 @@ public:
     static int compare(Note_head * const &a, Note_head *const &b) ;
 protected:
     virtual    void do_print()const;
+    virtual void do_pre_processing();
     virtual    Molecule* brew_molecule_p()const;
 };
 #endif // NOTEHEAD_HH
index 4bab4e9083456c2b1ac83d80920df6c6bda037ab..205971988089f0c6ddbc592bcc7694b46d44842c 100644 (file)
@@ -11,7 +11,6 @@
 
 String * get_scriptdef(char c);
 Request* get_script_req(char);
-Request* get_plet_request( char c, int dur_i, int type_i ); 
 Request*get_script_req(int d , Script_def*def);
 Request*get_text_req(int d , Text_def*def);
 Request* get_stemdir_req(int);
index 5e91ae4621137ea659bd9df79a0aee57febc4cca..9d13c292f9680cc379e460e145eab152c84e0fa5 100644 (file)
@@ -33,7 +33,7 @@ public:
      */
     virtual void terminate_register(Request_register * reg_l);
     
-   NAME_MEMBERS(Register_group_register);
+   NAME_MEMBERS();
     
     /**
       Remove #reg_l# from the list, and return it.
index 641d0331125ac4fe56a5b2b0466f138fade583c4..8ede14b1d3fc3fc433310d1d610079ca871ae178 100644 (file)
@@ -111,7 +111,7 @@ public:
 
     Request_register();
     virtual ~Request_register(){}
-    NAME_MEMBERS(Request_register);
+    NAME_MEMBERS();
     void print() const;
 };
 
index f045b36204aa810c2d3524ee4a62dd00848ab7d9..6d9343a0652440238d01b5960ef759eeafb3d0f3 100644 (file)
@@ -31,7 +31,7 @@ public:
     Request(Request const&);
     virtual ~Request(){}
 
-    NAME_MEMBERS(Request);
+    NAME_MEMBERS();
     virtual Request* clone() const { return new Request(*this); }
     void print()const ;
     
@@ -42,19 +42,11 @@ public:
        maybe checkout RTTI
      */
     virtual Barcheck_req *barcheck() { return 0; }
-    virtual Note_req *note() { return 0;}
     virtual Script_req *script() { return 0;}
-    virtual Stem_req *stem() { return 0;}
     virtual Text_req*text() { return 0; }
     virtual Rest_req *rest() { return 0; }
     virtual Span_req *span() { return 0; }
-    virtual Beam_req *beam() { return 0 ; }
-    virtual Plet_req* plet() { return 0; }
-    virtual Slur_req *slur() { return 0 ; }
-    virtual Rhythmic_req*rhythmic() { return 0; }
-    virtual Lyric_req* lreq_l() { return 0; }
-    virtual Melodic_req *melodic() { return 0; }
-     virtual Spacing_req * spacing() { return 0; }
+    virtual Spacing_req * spacing() { return 0; }
     virtual Blank_req * blank() { return 0; }
     virtual Musical_req *musical() { return 0; }
     virtual Command_req * command() { return 0; }
@@ -64,8 +56,27 @@ protected:
 
 #define REQUESTMETHODS(T,accessor)     \
 virtual T * accessor() { return this;}\
-NAME_MEMBERS(T);\
+NAME_MEMBERS();\
 VIRTUAL_COPY_CONS(T, Request)\
 virtual void do_print() const
 
+
+
+/** Put a script above or below this ``note'' or bar. eg upbow, downbow. Why
+  a request? These symbols may conflict with slurs and brackets, so
+  this also a request */
+class Script_req  : public virtual Request { 
+public:
+    int dir_i_;
+    General_script_def *scriptdef_p_;
+
+    /* *************** */
+    static int compare(const Script_req &, const Script_req &);
+    Script_req();
+    REQUESTMETHODS(Script_req,script);
+    ~Script_req();
+    Script_req(Script_req const&);
+};
+
+    
 #endif
index 39b0b2d10e5595c1c9f030241466ad0de58164f6..a1e13957351973723b5b537a57c25eaae421499b 100644 (file)
@@ -21,6 +21,6 @@ protected:
     virtual void pre_move_processing();
 public:
     Rest_collision_register();
-    NAME_MEMBERS(Rest_collision_register);
+    NAME_MEMBERS();
 };
 #endif // REST_COLLISION_REG_HH
index d470e4178e265bdbfdbb0c0d7a2d37b933a95732..8482d66882d15900bd1f6490bb6e4dd27920d33f 100644 (file)
@@ -19,7 +19,7 @@ class Rest_collision : public Item {
 public:
     void add(Rest_column*);
     void add(Collision*);
-    NAME_MEMBERS(Rest_collision);
+    NAME_MEMBERS();
 protected:
     virtual void do_post_processing();
     virtual void do_substitute_dependency(Score_elem*,Score_elem*);
index 803e00a294035a4d3b30b0db72298f47da2c4794..4e54241d019a5d842087913ec5dd1ad6aa4a5910 100644 (file)
@@ -21,7 +21,7 @@ class Rest_column : public Script_column {
 public:
     int dir_i_;
     void add(Note_head *);
-    NAME_MEMBERS(Rest_column);
+    NAME_MEMBERS();
     void translate_y(Real dy);
     Rest_column();
 protected:
index 463c8e23520b7851888d32c293ff3f65cbee9aee..d567f8ef02d25f1fbc4eeed9ab378f9aabc0f654 100644 (file)
@@ -10,7 +10,6 @@
 #include "parray.hh"
 #include "lily-proto.hh"
 #include "offset.hh"
-#include "molecule.hh"
 #include "virtual-methods.hh"
 #include "directed-graph.hh"
 
@@ -66,7 +65,7 @@ public:
 
     virtual ~Score_elem();
     Score_elem();
-    NAME_MEMBERS(Score_elem);    
+    NAME_MEMBERS();    
     virtual bool is_type_b(const char *);
     
     Interval width() const;
index 688d95b5642ee556b873f207f4db4c31e66dfdcf..1aa02fa7dd8b778d59f72a3f974b0a1d6bff18cf 100644 (file)
@@ -20,7 +20,7 @@ public:
     virtual String TeX_string() const;    
     
     /* *************** */
-    NAME_MEMBERS(Line_of_score);
+    NAME_MEMBERS();
     Line_of_score();
     
     void add_line(Spanner_elem_group *);
index 22564d480524dab4153aab693a616d945650f3e3..3b94feda7a926677fafddee4df78530586b583ac 100644 (file)
@@ -24,7 +24,7 @@ protected:
 public:
     Link_array<Script> script_l_arr_;
     Link_array<Item> support_l_arr_;
-    NAME_MEMBERS(Script_column);
+    NAME_MEMBERS();
    
     void add(Script *);
     void add_support(Item*);
index d45e459d84fe1b3bd619a927ec23bec4ebeaaac1..8313abad46b48475d1f201b2dc09a5ece2e231f8 100644 (file)
@@ -7,10 +7,15 @@
 #ifndef SCRIPTDEF_HH
 #define SCRIPTDEF_HH
 #include "string.hh"
+#include "general-script-def.hh"
 
 /** The characteristics of a certain kind of accent. It is not the
   accent itself.  */
-struct Script_def {
+class Script_def : public General_script_def {
+    /// invert if below staff?
+    bool invertsym_b_;
+    String symidx;
+    
 
     /// on the other side of the stem?
     int rel_stem_dir_i_;
@@ -24,16 +29,26 @@ struct Script_def {
     /// follow the ball inside staff?
     bool inside_staff_b_;
 
-    /// invert if below staff?
-    bool invertsym_b_;
-    String symidx;
+public:
+    virtual int staff_dir_i()const;
+    virtual int rel_stem_dir_i()const;
+    virtual int priority_i()const;
+    virtual bool inside_b()const;
+    virtual Atom get_atom(Paper_def* p, int dir_i_)const;
+    NAME_MEMBERS();
 
-    /* *************** */
-    int compare(Script_def const &);
+    virtual bool do_equal_b(General_script_def const &)const;
     void print() const;
-    Script_def(String, bool, int, int ,bool);
+    Script_def();
+    void set_from_input(String, bool, int, int ,bool);
+protected:
+    VIRTUAL_COPY_CONS(Script_def,General_script_def)
+
 };
 
 
+
+
+
 #endif // SCRIPTDEF_HH
 
index d5a860f378e45139b281c545babfd8e7f3a9ebdf..7fa5294814d56a7e1ea9eed20431251469695c62 100644 (file)
@@ -18,7 +18,7 @@ class Script_register : public Request_register {
     /* *************** */
     bool acceptable_elem_b(Score_elem*);
 public:
-    NAME_MEMBERS(Script_register);
+    NAME_MEMBERS();
     Script_register();
 protected:
     virtual bool try_request(Request*);
index e55d252ff1a1b0e62c0f6363ad3262a76db76543..b48ea8ebd6f98d6671d1b413fd48a24363ff099e 100644 (file)
   Accents that are put over a note-group.
  */
 class Script : public Item, public Staff_side {
-     /**
-      Vertical dir of symbol. -1 means invert the symbol.
-     */
-    int symdir_i_;
     
     int pos_i_;
     
-    Script_def *specs_l_;
+    General_script_def *specs_l_;
     Stem *stem_l_;
 
     /* *************** */
@@ -32,7 +28,7 @@ protected:
     virtual void do_pre_processing();
     virtual Interval do_width() const;
 private:
-    void set_symdir();
+
     void set_default_dir();
     void set_default_index();
     Symbol symbol()const;
@@ -40,7 +36,7 @@ public:
     static int compare(Script  *const&, Script *const&) ;
     Script(Script_req*);
     void set_stem(Stem*);
-    NAME_MEMBERS(Script);
+    NAME_MEMBERS();
 
 };
 
index 9ac27e591680d1d9f1377e05004ae3462740c248..a18d7234b66641d75d784ff7da1ff0bf27b47f88 100644 (file)
@@ -27,7 +27,8 @@ protected:
     virtual void pre_move_processing();
     virtual void post_move_processing();
 public:
-    NAME_MEMBERS(Slur_register);
+    Slur_reg();
+    NAME_MEMBERS();
 };
 
 #endif // SLURREG_HH
index 98cf4334f20bd200270cb092b28e654c344e2f15..5731317866b33e30843c8ffb8f4ba440114b4cff 100644 (file)
@@ -21,12 +21,11 @@ public:
     void add(Note_column*);
 protected:
     virtual void set_default_dir();
-    virtual void do_break_at( PCol*, PCol*) ; 
     virtual void do_post_processing();
     virtual void do_substitute_dependency(Score_elem*, Score_elem*);
     virtual void do_pre_processing();
     SPANNER_CLONE(Slur)
-    NAME_MEMBERS(Slur);
+    NAME_MEMBERS();
 };
 
 #endif // SLUR_HH
index a23819ac6d8d64bf6239ebd42e2cacd78e537b77..0d91319b63e8397e2e88fc65d7e1e7e73c2930cc 100644 (file)
 class Spanner_elem_group : public Spanner, public Element_group {
     
 protected:
-    void do_break_at(PCol*,PCol*);
     virtual Interval do_width()const;
     virtual void do_print() const;
     SPANNER_CLONE(Spanner_elem_group)
-    NAME_MEMBERS(Spanner_elem_group);
+    NAME_MEMBERS();
 };
 #endif // SPANNER_ELEM_GROUP_HH
index 074a555da2c7ab2e02dab150b57b2a6d1f4f4805..84c85f3e98f3ca6d43d3e1346950a84bd19829be 100644 (file)
@@ -38,7 +38,7 @@ public:
     PCol *left_col_l_, *right_col_l_;
     
     /* *************** */
-    NAME_MEMBERS(Spanner);
+    NAME_MEMBERS();
     virtual Spanner* spanner() { return this; }    
     Spanner();
     bool broken_b() const;
index 34138fadf215aa0c79f7b77fc3f0f3155ebb7110..8f7bba348536db18b765590a93e45fac5ad37c40 100644 (file)
@@ -29,7 +29,7 @@ protected:
 public:
     
     /* *************** */
-    NAME_MEMBERS(Staff_registers);
+    NAME_MEMBERS();
     void change_group(Group_change_req * greq_l,
                      Voice_registers *voice_regs_l,
                      Voice_group_registers * old_group);
index b4c6f6617382ac6ecc846b82b737c8eb7b7f40b7..06303c0aa4a9eba5a8e2f574f8c3b6bd9c6b03d3 100644 (file)
@@ -20,7 +20,7 @@ class Staff_sym_register : public Request_register {
     Moment last_mom_;
 public:
     Staff_sym_register();
-    NAME_MEMBERS(Staff_sym_register);
+    NAME_MEMBERS();
 protected:
     virtual void process_requests();
     ~Staff_sym_register();
index c3a49dfc57a6620348efa23cb3c88f040623e7de..dc50a37e0aac6347a0350f41158def8cecf41acd 100644 (file)
@@ -23,7 +23,7 @@ public:
 
 
     void set_extent(PCol* p1, PCol* p2);
-    NAME_MEMBERS(Staff_symbol);
+    NAME_MEMBERS();
     Staff_symbol(int lines);
     Real inter_note_f()const;
     int steps_i()const;
index f059a1418fe59f2fbfee5c2c79457f96363188b0..9d9174e6889379d3083ff90676b0f0762b13b388 100644 (file)
@@ -14,7 +14,7 @@ struct Line_of_staff : public Spanner_elem_group{
 
     SPANNER_CLONE(Line_of_staff)
 public:
-    NAME_MEMBERS(Line_of_staff);
+    NAME_MEMBERS();
 
     /* *************** */
     /** 
index 77729ed1ac4dd368fad0e7d9dcc57a3e3ff93bc0..f6b1b5317eacc8d1527ca5ff899bb90dd7a25814 100644 (file)
@@ -25,7 +25,7 @@ class Stem_beam_register : public Request_register {
     int default_dir_i_;
 public:
     /* *************** */
-    NAME_MEMBERS(Stem_beam_register);
+    NAME_MEMBERS();
     Stem_beam_register();
 
 protected:
index dad7e1660fbf8b2b53cac21f52590f5e002e23f9..34cb868d56743d4ed22cb7685bfce8fa0c2f0206 100644 (file)
@@ -66,7 +66,7 @@ public:
     /// ensure that this Stem also encompasses the Notehead #n#
     void add(Note_head*n);
 
-    NAME_MEMBERS(Stem);
+    NAME_MEMBERS();
 
     Real hpos_f()const;
     
index db813471482083fb6d16244bfeaf553e6f6d8ede..e51e1181df1b73a893bc4f26d859f47847841bc0 100644 (file)
@@ -26,7 +26,7 @@ protected:
     virtual void handle_broken_dependencies();
 
     virtual void do_add_processing();
-    NAME_MEMBERS(Super_elem);
+    NAME_MEMBERS();
 };
 
 #endif // SUPER_ELEM_HH
index 2f110866eff2c912d706dd11a25ae1ea666ae8ea..391d0b6472975cd715c616ed3402fd046045229f 100644 (file)
@@ -21,6 +21,6 @@ protected:
     bool acceptable_request_b(Request*) const;
     bool try_request(Request*) ;
 public:
-    NAME_MEMBERS(Swallow_register);
+    NAME_MEMBERS();
 };
 #endif // SWALLOW_REG_HH
index 6e04d049cff068a9ec34244e5ef4af096236494b..96fbd7c9b89383a691f43e239ece5ea654b2935b 100644 (file)
@@ -1,3 +1,11 @@
+/*
+  symbol.hh -- declare Symbol, Atom
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #ifndef SYMBOL_HH
 #define SYMBOL_HH
 
@@ -14,4 +22,24 @@ struct Symbol {
     String str()const;         // for printing.
 };
 
+
+/// a symbol which can be translated, and freely copied
+struct Atom {
+    Offset off;
+    Symbol sym;
+
+    /* *************** */
+    
+    void translate(Offset o) {
+       off += o;
+    }
+    
+    /// how big is #this#?
+    Box extent() const;
+    Atom(Symbol s);
+
+    void print() const;
+
+    String TeX_string() const;
+};
 #endif
index 0d792590c68f59a8235049d82fa6fc13cb88e9b9..0cc584f742287c582b6fed21647d406d7ade8575 100644 (file)
@@ -7,11 +7,16 @@
 #ifndef TEXT_DEF_HH
 #define TEXT_DEF_HH
 
+#include "general-script-def.hh"
 #include "string.hh"
 #include "lily-proto.hh"
 #include "input.hh"
 
-class Text_def : public Input {
+class Text_def : public General_script_def {
+protected:
+    virtual Atom get_atom(Paper_def* p, int dir_i_)const;
+    NAME_MEMBERS();
+    VIRTUAL_COPY_CONS(Text_def,General_script_def)
 public:
     /**
       centered , or aligned?
@@ -19,17 +24,16 @@ public:
       -1 = raggedright, 0 = center, 1 = raggedleft
      */
     int align_i_;
-    Paper_def* pdef_l_;
+
     String text_str_;
     String style_str_;
     
     /* *************** */
     virtual ~Text_def() {};
-    bool compare(const Text_def&);
+    bool do_equal_b(const Text_def&)const;
     Text_def();
     virtual void print() const;
-    Atom create_atom() const;
-    Interval width() const;
+    Interval width(Paper_def*) const;
 };
 
 #endif // TEXT_DEF_HH
index 041db0f26e2bd751dbdf61e2119b77670f5955d2..16bffcd0d89f4ae4466a912f1e1dc8a0660ab3d0 100644 (file)
@@ -18,8 +18,7 @@ class Text_item : public Item ,public Staff_side{
     void init(Text_def* tdef_l); 
  
 public:
-    Text_def * tdef_l();
-    Text_def const* tdef_c_l();
+
     int pos_i_;
 
     /// do I have width?
@@ -27,12 +26,12 @@ public:
     
     /* ***************/
 
-    Text_item(Text_def*,int dir=0);
+    Text_item(General_script_def*,int dir=0);
     virtual ~Text_item();
-    NAME_MEMBERS(Text_item);
+    NAME_MEMBERS();
 
 protected:
-    Text_def* tdef_p_;
+    General_script_def * tdef_p_;
 
     virtual void set_default_index();
     virtual Molecule* brew_molecule_p() const;
index 3bab1d56393eb3fd575b3e2eaa14d9d81c46d939..c1f4929044e28725a36ce99bbc6cb33bea2bec3a 100644 (file)
@@ -23,7 +23,7 @@ protected:
     virtual void acknowledge_element(Score_elem_info);
 public:
     Text_register();
-    NAME_MEMBERS(Text_register);
+    NAME_MEMBERS();
 };
 
 #endif // TEXTREG_HH
index a91d8d96910d3c49e1afe7cb4400ab4645823360..c7e6ca9a9275999db5847d9696f8e0593beb94fb 100644 (file)
 class Text_spanner : public Spanner {
 public:
     Directional_spanner * support;
-    Text_def spec;
+    General_script_def * spec_p_;
     Offset text_off_;
-    NAME_MEMBERS(Text_spanner);
+    NAME_MEMBERS();
 
     void set_support(Directional_spanner*);
     Text_spanner();
 protected:
     SPANNER_CLONE(Text_spanner)
-
+    ~Text_spanner();
     virtual void do_substitute_dependency(Score_elem*,Score_elem*);
     virtual void do_pre_processing();
     virtual void do_post_processing();
index 9ad241ada1fe28a614ac73ceb890cb3af073996f..eb4772b50038f4d7422df88e3327d02d355f302c 100644 (file)
@@ -34,7 +34,7 @@ protected:
     virtual void set_feature(Feature);
 public:
     Tie_register();
-    NAME_MEMBERS(Tie_register);
+    NAME_MEMBERS();
 };
 
 #endif // TIE_REG_HH
index 81c356dd7fe7346a48e832c7e2e51114c26e20c9..dc3b812f5ede3a2c143a34a8c7aa2c30ce196150 100644 (file)
@@ -28,7 +28,7 @@ public:
     void set_head(int, Note_head*head_l);
 
     Tie();
-    NAME_MEMBERS(Tie);
+    NAME_MEMBERS();
     SPANNER_CLONE(Tie)
 };
 #endif // TIE_HH
index 00e72618c14127b66417edfb884f9035e86947b5..6bc85597afc764dd7d459e202b166e6366ba11ba 100644 (file)
@@ -33,10 +33,8 @@ public:
     Voice_element(Voice_element const & src );
 
     void add(Request*);
-    bool find_plet_start_b(char c, Moment& moment_r);
     void print ()const;
     void set_default_group(String id);
-    void set_plet_backwards(Moment& now_moment_r, Moment until_moment, int num_i, int den_i);
 };
 
 #endif // VOICE-ELEMENT_HH
index 243965a1919996b30d57bf9cbb57b859543fd728..187b6c147e1485ce0b9ce2dd27bcb8daded59e7c 100644 (file)
@@ -36,7 +36,7 @@ public:
     Array<Voice_registers*> voice_reg_l_arr_;
     /* *************** */
     
-    NAME_MEMBERS(Voice_group_registers);
+    NAME_MEMBERS();
     static bool static_acceptable_request_b(Request*);
     virtual void add(Request_register*);
     Voice_group_registers(String id, Input_register const *);
index c6e75b7505273194ca09125a3b1caaf1cecc4867..5f99de381f70e9e2906d5c80daf787acf5b18f7e 100644 (file)
@@ -20,7 +20,7 @@ public:
     /* *************** */
 
     Voice_registers(Voice*, Input_register const*);
-    NAME_MEMBERS(Voice_registers);
+    NAME_MEMBERS();
 
 protected:
     virtual void pre_move_processing();
index 85c41f72f68d55bd4bcc34f4be130732951e9201..a40142d56f49e19647c946a7bc5e90007889dd5f 100644 (file)
@@ -1,3 +1,11 @@
+/*
+  voice.hh -- declare Voice
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #ifndef VOICE_HH
 #define VOICE_HH
 
@@ -29,10 +37,8 @@ struct Voice {
     Moment last() const;
     void transpose(Melodic_req const &)const;
     void add(Voice_element*);
-    bool find_plet_start_b(char c, Moment& moment_r);
     void print() const;
     void set_default_group(String id);
-    void set_plet_backwards(Moment& now_moment_r, Moment until_moment, int num_i, int den_i);
 };
 
 #endif
index 840b180c34f22330b6d894efbb7ee3e5a078f763..2d4527c44a917d6c8001c0439af9bf0479f88076 100644 (file)
@@ -5,23 +5,6 @@
 #include "command-request.hh"
 #include "voice-element.hh"
 
-void
-Input_music::check_plet(Voice_element* velt_l)
-{
-    for (iter_top(velt_l->req_p_list_,i); i.ok(); i++)
-       if ( i->plet() ) {
-           Moment start_moment = 0;
-           if ( !find_plet_start_b( i->plet()->type_c_, start_moment ) ) {
-               i ->error( "begin of plet not found");
-               break;
-           }
-           Moment moment = 0;
-           set_plet_backwards( moment, start_moment, i->plet()->dur_i_, i->plet()->type_i_ );
-           i.del();
-           break;
-        }
-}
-
 void
 Simple_music::transpose(Melodic_req const &d)const
 {
@@ -73,17 +56,6 @@ Simple_music::print() const
     mtor << "}\n";
 #endif
 }
-bool
-Simple_music::find_plet_start_b(char c, Moment& moment_r)
-{
-    return voice_.find_plet_start_b(c, moment_r);
-}
-void 
-Simple_music::set_plet_backwards(Moment& now_moment_r, Moment until_moment, 
-                                int num_i, int den_i)
-{
-    voice_.set_plet_backwards(now_moment_r, until_moment, num_i, den_i);
-}
 
 /* *************** */
 
@@ -128,22 +100,6 @@ Complex_music::set_default_group(String g)
     for (iter_top(elts,i); i.ok(); i++)
            i->set_default_group(g);
 }
-bool
-Complex_music::find_plet_start_b(char c, Moment& moment_r)
-{
-    for (iter_bot(elts,i); i.ok(); i--) {
-        if ( i->find_plet_start_b(c, moment_r) )
-           return true;
-    }
-    return false;
-}
-void 
-Complex_music::set_plet_backwards(Moment& now_moment_r, Moment until_moment, int num_i, int den_i)
-{
-    for (iter_bot(elts,i); i.ok(); i--) {
-       i->set_plet_backwards(now_moment_r, until_moment, num_i, den_i);
-    }
-}
 /* *************************************************************** */
 
 void
@@ -167,8 +123,6 @@ Music_voice::add_elt(Voice_element*v)
     c = elts.bottom();
     Simple_music *s = c->simple();
     s->add(v);             
-
-    check_plet(v);
 }
 
 Moment
@@ -214,8 +168,6 @@ Music_general_chord::add_elt(Voice_element*v)
     Simple_music*vs = new Simple_music;
     vs->add(v);
     elts.bottom().add(vs);
-
-    check_plet(v);
 }
 
 void
index 50aba0bf41c127ff8e21e424283ff0841e10b470..d53299c9e9c57735c59eb7a5fbbd8dc9b789c6f8 100644 (file)
@@ -23,7 +23,7 @@ Local_key_item::Local_key_item(int i)
 }
 
 void
-Local_key_item::add(Item*head_l)
+Local_key_item::add_support(Item*head_l)
 {
     support_items_.push(head_l);
     add_dependency(head_l);
index 9569ab10a49d16fd4108fd545ea3366d41c5c0c0..8ce3577f6cfa00355d5ac12962210cecb0e266ae 100644 (file)
@@ -23,26 +23,39 @@ Local_key_register::Local_key_register()
 void
 Local_key_register::pre_move_processing()
 {
+    Local_key_item *key_item_p = 0;
     if (mel_l_arr_.size()) {
-       Local_key_item *key_item_p = 0;
        for (int i=0; i  < mel_l_arr_.size(); i++) {
            Item * support_l = support_l_arr_[i];
-
            Note_req * note_l = mel_l_arr_[i];
+
            if (tied_l_arr_.find_l(support_l) && 
-               !forced_l_arr_.find_l(support_l))
+               !note_l->forceacc_b_)
                continue;
            
+           if( !note_l->forceacc_b_ &&
+               local_key_.oct(note_l->octave_i_).acc(note_l->notename_i_)
+               == note_l->accidental_i_) 
+               continue;
+               
+               
+
            if (!key_item_p)
                key_item_p = new Local_key_item(*get_staff_info().c0_position_i_l_);
            key_item_p->add(note_l);
-           key_item_p->add(support_l);
+           key_item_p->add_support(support_l);
            local_key_.oct(note_l->octave_i_)
                .set(note_l->notename_i_, note_l->accidental_i_);
        }
-       if (key_item_p)
-           typeset_element(key_item_p);
+       
+    }
+    if (key_item_p) {
+       for(int i=0; i < support_l_arr_.size(); i++)
+           key_item_p->add_support(support_l_arr_[i]);
+       
+       typeset_element(key_item_p);
     }
+    
     mel_l_arr_.set_size(0);
     tied_l_arr_.set_size(0);
     support_l_arr_.set_size(0);
@@ -53,18 +66,13 @@ void
 Local_key_register::acknowledge_element(Score_elem_info info)
 {    
     Score_elem * elem_l = info.elem_l_;
-    if (info.req_l_->note()) {
-       Note_req * note_l = info.req_l_->note();
+    if (info.req_l_->musical() && info.req_l_->musical()->note()) {
+       Note_req * note_l = info.req_l_->musical()->note();
        Item * item_l = info.elem_l_->item();
 
-       if( note_l->forceacc_b_ ||
-           local_key_.oct(note_l->octave_i_).acc(note_l->notename_i_)
-           != note_l->accidental_i_) {
-           mel_l_arr_.push(note_l );
-           support_l_arr_.push(item_l);
-           if (note_l->forceacc_b_)
-               forced_l_arr_.push(item_l);
-       }
+       mel_l_arr_.push(note_l );
+       support_l_arr_.push(item_l);
+       
     } else if (info.req_l_->command()
               && info.req_l_->command()->keychange()) { 
        Key_register * key_reg_l =
index bc6af68d60112c5fc50df91e5750bd66e9398680..dae5ad37b5117dd7cb23d99932f80a4851277bf5 100644 (file)
@@ -248,7 +248,7 @@ Lookup::vbrace(Real &y) const
        y = 67 *2 PT;
     }
     
-    int idx = (y/2.0 - 20 ) + 148;
+    int idx = int(rint((y/2.0 - 20 ) + 148));
     
     Symbol s = (*symtables_)("param")->lookup("brace");
     
index f8b3de1738690b7e107c76924ba72c116ab62dbd..b6d25ea43aa64056c9ae3480f05c0e914a1e57b9 100644 (file)
@@ -106,7 +106,10 @@ Midi_walker::process_requests()
     }
 
     for ( int i = 0; i < ptr()->musicalreq_l_arr_.size(); i++ )  {
-       Rhythmic_req *n = ptr()->musicalreq_l_arr_[i]->rhythmic();
+       Musical_req *m = ptr()->musicalreq_l_arr_[i]->musical();
+       if (!m)
+           return;
+       Rhythmic_req *n = m->rhythmic();
        if ( !n)
            continue;
        Note_req * note_l = n->note();
index ff047f2c771f89a4bbce7469a21b76f3cfc2105a..c39082ab929cf7d8ddbf4c15ffc0fe594f7bcba7 100644 (file)
@@ -1,4 +1,11 @@
-#include "varray.hh"
+/*
+  molecule.cc -- implement Molecule
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #include "interval.hh"
 #include "dimen.hh"
 #include "string.hh"
@@ -7,41 +14,6 @@
 #include "debug.hh"
 #include "tex.hh"
 
-void
-Atom::print() const
-{
-    mtor << "texstring: " <<sym.tex<<"\n";    
-}
-
-Box
-Atom::extent() const
-{
-    Box b( sym.dim);
-    b.translate(off);
-    return b;
-}
-
-Atom::Atom(Symbol s)
-{
-    sym=s;
-}
-
-
-String
-Atom::TeX_string() const
-{
-    /* infinity checks. */
-    assert( abs(off.x) < 100 CM);
-    assert( abs(off.y) < 100 CM);
-    
-    // whugh.. Hard coded...
-    String s("\\placebox{%}{%}{%}");
-    Array<String> a;
-    a.push(print_dimen(off.y));
-    a.push(print_dimen(off.x));
-    a.push(sym.tex);
-    return substitute_args(s, a);
-}
 
 /* *************** */
 
@@ -148,3 +120,9 @@ Molecule::print() const
     for (iter_top(ats,c); c.ok(); c++)
        c->print();
 }
+
+void
+Molecule::add(Atom const &a)
+{
+    ats.bottom().add(new Atom(a)); 
+}
diff --git a/lily/music-list.cc b/lily/music-list.cc
new file mode 100644 (file)
index 0000000..3d8f965
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+  music-list.cc -- implement Music_list, 
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#include "music.hh"
+#include "debug.hh"
+
+Music_list::Music_list(Music_list const&s)
+{
+    for (iter(s.music_p_list_.top(), i); i.ok(); i++)
+       add(i->clone());
+}
+
+
+IMPLEMENT_STATIC_NAME(Music_list);
+
+void
+Music_list::add(Music*mus_p)
+{
+    music_p_list_.bottom().add(mus_p);
+}
+
+void
+Music_list::transpose(Melodic_req const*m)
+{
+  for (iter(music_p_list_.top(), i); i.ok(); i++)
+      i->transpose(m);
+}
+
+void
+Music_list::do_print() const
+{
+    for (iter(music_p_list_.top(), i); i.ok(); i++)
+       i->print();
+}
+
+IMPLEMENT_STATIC_NAME(Chord);
+
+void
+Chord::translate(Moment dt)
+{
+    for (iter(music_p_list_.top(), i); i.ok(); i++)
+       i->translate(dt);
+}
+
+MInterval
+Chord::time_int()const
+{
+    MInterval m;
+    for (iter(music_p_list_.top(), i); i.ok(); i++)
+       m.unite(i->time_int());
+    return m;
+}
+
+MInterval
+MVoice::time_int() const
+{
+    Moment last=0;
+    for (iter(music_p_list_.top(), i); i.ok(); i++)
+       last += i->time_int().length();
+    return MInterval (0,last);
+}
+
+void
+MVoice::translate(Moment dt)
+{
+    for (iter(music_p_list_.top(), i); i.ok(); i++)
+       i->translate(dt);
+}
+
+IMPLEMENT_STATIC_NAME(MVoice);
diff --git a/lily/music.cc b/lily/music.cc
new file mode 100644 (file)
index 0000000..155c7e3
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+  music.cc -- implement Music
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#include "music.hh"
+#include "debug.hh"
+
+MInterval
+Music::time_int() const
+{
+    return MInterval(0,0);
+}
+void
+Music::print()const
+{
+    #ifndef NPRINT
+    mtor << name() << "{" ;
+    do_print();
+    mtor << "}\n";
+    #endif
+}
+void
+Music::transpose(Melodic_req const*)
+{
+    
+}
+
+void
+Music::translate(Moment )
+{
+}
+
+void
+Music::do_print()const
+{
+}
+
+IMPLEMENT_STATIC_NAME(Music);
+
+
+    
+Music::Music(){}
index f442db5f9b8cbb833668a5068dac1345cefb405d..bee66ea3272282fb78ba5e9f5b7fcf41f19ee523 100644 (file)
@@ -164,23 +164,6 @@ Melodic_req::pitch() const
     return  pitch_byte_a[ notename_i_ % 7 ] + accidental_i_ + octave_i_ * 12;
 }
 
-Plet_req::Plet_req()
-{
-    type_c_ = ']';
-    dur_i_ = 1;
-    type_i_ = 1;
-}
-
-IMPLEMENT_STATIC_NAME(Plet_req);
-
-void
-Plet_req::do_print() const
-{
-#ifndef NPRINT
-    mtor << "plet: " << type_c_ << ": " << dur_i_ << "/" << type_i_;
-#endif
-}
-
 /* *************** */
 int
 Rhythmic_req::compare(Rhythmic_req const &r1, Rhythmic_req const &r2)
@@ -283,24 +266,23 @@ Span_req::Span_req()
 }
 
 /* *************** */
-Script_req::Script_req(int d , Script_def*def)
+Script_req::Script_req(Script_req const&s)
 {
-    dir_i_ = d;
-    scriptdef_p_ = def;
+    dir_i_ = s.dir_i_;
+    scriptdef_p_ = s.scriptdef_p_ ? s.scriptdef_p_->clone() : 0;
 }
 
 int
 Script_req::compare(Script_req const &d1, Script_req const &d2)
 {
     return d1.dir_i_ == d2.dir_i_ &&
-       d1.scriptdef_p_->compare(*d2.scriptdef_p_);
+       d1.scriptdef_p_->equal_b(*d2.scriptdef_p_);
 }
 
-Script_req::Script_req(Script_req const &s)
-    : Request( s )
+Script_req::Script_req()
 {
-    dir_i_ = s.dir_i_;
-    scriptdef_p_ = new Script_def(*s.scriptdef_p_);
+    dir_i_ = 0;
+    scriptdef_p_ = 0;
 }
 
 IMPLEMENT_STATIC_NAME(Script_req);
@@ -312,6 +294,12 @@ Script_req::do_print() const
     scriptdef_p_->print();
 }
 
+void
+Musical_script_req::do_print() const
+{}
+
+IMPLEMENT_STATIC_NAME(Musical_script_req);
+
 
 Script_req::~Script_req()
 {
@@ -322,7 +310,7 @@ int
 Text_req:: compare(Text_req const &r1, Text_req const &r2)
 {
     bool b1 = (r1.dir_i_ == r2.dir_i_);
-    bool b2 = (r1.tdef_p_ ->compare(*r2.tdef_p_));
+    bool b2 = (r1.tdef_p_ ->equal_b(*r2.tdef_p_));
     return b1 && b2;
 }
 Text_req::~Text_req()
@@ -451,3 +439,5 @@ Span_dynamic_req::do_print()const
 }
 
 IMPLEMENT_STATIC_NAME(Tie_req);
+
+
index 6b0062095823c7aca3ce0e10d5235dea1f692cb3..e0c974aa9a41786db1fae90e00f63d21ed9c336a 100644 (file)
@@ -9,7 +9,7 @@
 #include "musical-request.hh"
 #include "command-request.hh"
 #include "voice.hh"
-
+#include "script.hh"
 #include "identifier.hh"
 #include "varray.hh"
 #include "text-def.hh"
 #include "voice-element.hh"
 
 
-Request*
-get_plet_request( char c, int dur_i, int type_i )
-{
-    Plet_req* plet_req_p = new Plet_req;
-    plet_req_p->dur_i_ = dur_i;
-    plet_req_p->type_i_ = type_i;
-    plet_req_p->type_c_ = c;
-    return plet_req_p;
-}
-
 String *
 get_scriptdef(char c)
 {
@@ -58,7 +48,9 @@ get_scriptdef(char c)
 Request*
 get_script_req(int d , Script_def*def)
 {
-    Script_req* script_req_p = new Script_req(d, def);
+    Musical_script_req* script_req_p = new Musical_script_req;
+    script_req_p->dir_i_ =d;
+    script_req_p->scriptdef_p_=def;
     return script_req_p;
 }
 
index ccfffcc2b5d014e40e8a05cc0d8cc34a10cdd24a..0e55a26a7f6558316f6a727ab161b41f3b596e5b 100644 (file)
@@ -1,3 +1,11 @@
+/*
+  notehead.cc -- implement Note_head
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #include "misc.hh"
 #include "note-head.hh"
 #include "dimen.hh" 
@@ -20,12 +28,18 @@ Note_head::Note_head(int ss)
     rest_b_ = false;
 }
 
+void
+Note_head::do_pre_processing()
+{
+   // 8 ball looks the same as 4 ball:
+    if (balltype_i_ > 4 && !rest_b_)
+       balltype_i_ = 4;
+}
+
 void
 Note_head::set_rhythmic(Rhythmic_req*r_req_l)
 {
     balltype_i_ = r_req_l->duration_.type_i_;
-    if (balltype_i_ > 4)
-       balltype_i_ = 4;
     dots_i_ = r_req_l->duration_.dots_i_;
 }
     
index 6bec375634935a8ca488ffef4f8804a79468318b..d6c4a63940af6cbffa170dbf530fa3aadf85e987 100644 (file)
@@ -243,8 +243,11 @@ PScore::breakable_col_range(PCol*l,PCol*r)const
 
     PCursor<PCol*> start(l ? find_col(l)+1 : cols.top() );
     PCursor<PCol*> stop(r ? find_col(r) : cols.bottom());
-  
-    while ( start < stop ) {
+
+    /*
+      ugh! windows-suck-suck-suck.
+     */
+    while ( PCursor<PCol*>::compare(start,stop) < 0 ) {
        if (start->breakable_b())
            ret.push(start);
        start++;
@@ -260,7 +263,11 @@ PScore::col_range(PCol*l,PCol*r)const
     PCursor<PCol*> start(l ? find_col(l)+1 : cols.top() );
     PCursor<PCol*> stop(r ? find_col(r) : cols.bottom());
     ret.push(l);
-    while ( start < stop )
+    
+    /*
+      ugh! windows-suck-suck-suck.
+     */
+    while ( PCursor<PCol*>::compare(start,stop) < 0 )
        ret.push(start++);
     ret.push(r);
     return ret;
@@ -274,7 +281,10 @@ PScore::broken_col_range(PCol*l,PCol*r)const
     PCursor<PCol*> start(l ? find_col(l)+1 : cols.top() );
     PCursor<PCol*> stop(r ? find_col(r) : cols.bottom());
   
-    while ( start < stop ) {
+    /*
+      ugh! windows-suck-suck-suck.
+      */
+    while ( PCursor<PCol*>::compare(start,stop) < 0 ) {
        if (start->breakable_b() && !start->line_l_ )
            ret.push(start);
        start++;
index 539148422c187db7f6763b3bba4b635485bc8343..532380bc10b63d74210cc3959ed3bd0b306edb24 100644 (file)
@@ -1,7 +1,7 @@
 %{ // -*-Fundamental-*-
 #include <iostream.h>
 
-#define MUDELA_VERSION "0.0.57"
+#define MUDELA_VERSION "0.0.58"
 
 #include "script-def.hh"
 #include "symtable.hh"
@@ -174,7 +174,8 @@ yylex(YYSTYPE *s,  void * v_l)
 
 
 %type <box>    box
-%type <c>      open_request_parens close_request_parens close_plet_parens
+%type <c>      open_request_parens close_request_parens
+%type <c>      open_plet_parens close_plet_parens
 %type <chord>  music_chord music_chord_body  init_music_chord
 %type <el>     voice_elt full_element lyrics_elt command_elt
 %type <i>      int
@@ -718,10 +719,6 @@ post_requests:
                $2->set_spot( THIS->here_input());
                THIS->post_reqs.push($2);
        }
-       | post_requests close_plet_parens INT '/' INT { 
-               THIS->post_reqs.push( THIS->get_parens_request($2) ); 
-               THIS->post_reqs.push( get_plet_request( $2, $3, $5 ) ); 
-       }
        ;
 
 post_request:
@@ -737,6 +734,7 @@ pure_post_request:
                $$->set_spot( THIS->here_input());
        }
        ;
+
 pure_post_request_choice:
        close_request_parens    { 
                $$ = THIS->get_parens_request($1); 
@@ -753,7 +751,7 @@ pure_post_request_choice:
 */
 steno_melodic_req:
        NOTENAME_ID     {
-               $$ = $1->clone()->melodic();
+               $$ = $1->clone()->musical()->melodic();
                $$->octave_i_ += THIS->default_octave_i_;
        }
        | steno_melodic_req POST_QUOTES         {  
@@ -801,8 +799,9 @@ dynamic_req:
        ;
 
 close_plet_parens:
-       ']' {
+       ']' INT '/' INT {
                $$ = ']';
+               THIS->default_duration_.set_plet($2,$4);
        }
        ;
 
@@ -816,6 +815,8 @@ close_request_parens:
        | ']'   { 
                $$ = ']';
        }
+       | close_plet_parens {
+       }
        | E_SMALLER {
                $$ = '<';
        }
@@ -824,6 +825,13 @@ close_request_parens:
        }
        ;
   
+open_plet_parens:
+       '[' INT '/' INT {
+               $$ = '[';
+               THIS->default_duration_.set_plet($2,$4);
+       }
+       ;
+
 open_request_parens:
        E_EXCLAMATION   {
                $$ = '!';
@@ -834,6 +842,8 @@ open_request_parens:
        | '['   {
                $$='[';
        }
+       | open_plet_parens {
+       }
        ;
 
 
@@ -844,7 +854,8 @@ script_definition:
 
 script_body:
        STRING int int int int          {
-               $$ = new Script_def(*$1,$2, $3,$4,$5);
+               $$ = new Script_def;
+               $$->set_from_input(*$1,$2, $3,$4,$5);
                delete $1;
        }       
        ;
@@ -1014,7 +1025,7 @@ pitch_list:                       {
                $$ = new Array<Melodic_req*>;
        }
        | pitch_list NOTENAME_ID        {
-               $$->push($2->clone()->melodic());
+               $$->push($2->clone()->musical()->melodic());
        }
        ;
 
index 2ec888ef6525ef3b60e75fe0d90cfab51848f253..7d1b09d4afda0cea635f0dd0e5616d04b0d7b921 100644 (file)
@@ -1,7 +1,29 @@
+/*
+  script-def.cc -- implement 
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #include "debug.hh"
 #include "script-def.hh"
+#include "symbol.hh"
+#include "paper-def.hh"
+#include "lookup.hh"
+
+Script_def::Script_def()
+{
+    inside_staff_b_ = false;
+    symidx = "unknown" ;
+    rel_stem_dir_i_ =0;
+    staff_dir_i_ = -1;
+    invertsym_b_ = 0;
+    priority_i_ =0;
+}
 
-Script_def::Script_def(String idx,  bool follow, int stem, int staff ,bool invert)
+void
+Script_def::set_from_input(String idx,  bool follow, int stem, int staff ,bool invert)
 {
     inside_staff_b_ = follow;
     symidx = idx ;
@@ -11,17 +33,59 @@ Script_def::Script_def(String idx,  bool follow, int stem, int staff ,bool inver
     priority_i_ =0;
 }
 
+
 void
 Script_def::print() const
 {
     mtor << "Script_def{ idx: " << symidx 
         << " direction, stem: " << rel_stem_dir_i_ << " staff : " << staff_dir_i_ << "}\n";
 }
-int
-Script_def::compare(Script_def const & c)
+
+bool
+Script_def::do_equal_b(General_script_def const &g)const 
 {
+    Script_def const & c = (Script_def const&) g;
     return !(symidx == c.symidx &&
-       rel_stem_dir_i_ == c.rel_stem_dir_i_&&
-       staff_dir_i_ == c.staff_dir_i_&&
-       invertsym_b_ == c.invertsym_b_);
+            rel_stem_dir_i_ == c.rel_stem_dir_i_&&
+            staff_dir_i_ == c.staff_dir_i_&&
+            invertsym_b_ == c.invertsym_b_);
+}
+
+int
+Script_def::staff_dir_i() const
+{
+    return staff_dir_i_; 
+}
+
+int
+Script_def::rel_stem_dir_i() const
+{
+    return rel_stem_dir_i_; 
+}
+
+bool
+Script_def::inside_b() const
+{
+    return inside_staff_b_; 
+}
+
+Atom
+Script_def::get_atom(Paper_def *p , int d)const
+{
+    String preidx_str ="";
+    if (invertsym_b_&& d < 0) 
+       preidx_str = "-";
+
+    return p->lookup_l()->script(preidx_str + symidx);
+}
+
+IMPLEMENT_STATIC_NAME(Script_def);
+
+int
+Script_def::priority_i()const
+{
+    return priority_i_;
 }
+       
+    
+    
index be12028c178d038a54c09b620fb29963e141ecd6..b73a6a5fe2a8d1b33809aeb2b7ab44fc3f375f44 100644 (file)
@@ -19,8 +19,9 @@ Script_register::Script_register()
 bool
 Script_register::try_request(Request *r_l)
 {
-    if (!r_l->script())
+    if (!r_l->musical() || ! r_l->musical()->musicalscript())
        return false ;
+    
     for (int i=0; i < script_req_l_arr_.size(); i++)
        if ( !Script_req::compare(*script_req_l_arr_[i], *r_l->script())) {
            return true;
index 9ade2eddef3aec40666fda512842fe41928822f7..578a8853208b72cbf353320ee99a73c73f5664e9 100644 (file)
@@ -26,48 +26,32 @@ Script::set_stem(Stem*st_l)
 Script::Script(Script_req* rq)
 {    
     specs_l_ = rq->scriptdef_p_;
-    inside_staff_b_ = specs_l_->inside_staff_b_;
+    inside_staff_b_ = specs_l_->inside_b();
     stem_l_ = 0;
     pos_i_ = 0;
-    symdir_i_=1;
     dir_i_ =rq->dir_i_;
 }
-
-void
-Script::set_symdir()
-{
-    if (specs_l_->invertsym_b_)
-       symdir_i_ = (dir_i_ < 0) ? -1:1;
-}
-
 void
 Script::set_default_dir()
 {
-    int s_i=specs_l_->rel_stem_dir_i_;
+    int s_i=specs_l_->rel_stem_dir_i();
     if (s_i && stem_l_)
        dir_i_ = stem_l_->dir_i_ * s_i;
     else {
-       dir_i_ =specs_l_->staff_dir_i_;
+       dir_i_ =specs_l_->staff_dir_i();
     }
 }
 
 void
 Script::set_default_index()
 {
-    pos_i_ = get_position_i(symbol().dim.y);
+    pos_i_ = get_position_i(specs_l_->get_atom(paper(), dir_i_).extent().y);
 }
 
 Interval
 Script::do_width() const
 {
-    return symbol().dim.x;
-}
-
-Symbol
-Script::symbol()const
-{
-    String preidx_str = (symdir_i_ < 0) ?"-" :"";
-    return paper()->lookup_l()->script(preidx_str + specs_l_->symidx);
+    return specs_l_->get_atom(paper(), dir_i_).extent().x;
 }
 
 void
@@ -75,7 +59,7 @@ Script::do_pre_processing()
 {
     if (!dir_i_)
        set_default_dir();
-    set_symdir();
+
 }
 
 void
@@ -89,15 +73,16 @@ Script::brew_molecule_p() const
 {
     Real dy = paper()->internote_f();
     
-    Molecule*out = new Molecule(Atom(symbol()));
+    Molecule*out = new Molecule(specs_l_->get_atom(paper(), dir_i_));
     out->translate(Offset(0,dy * pos_i_));
     return out;
 }
+
 IMPLEMENT_STATIC_NAME(Script);
 
 int 
 Script::compare(Script  *const&l1, Script *const&l2) 
 {
-    return l1->specs_l_->priority_i_ - l2->specs_l_->priority_i_;
+    return l1->specs_l_->priority_i() - l2->specs_l_->priority_i();
 }
     
index d08488e371b00bacadef5e4f566d140d6fe371e1..992889d94ea04ce7e1609e4e833583aa9df59148 100644 (file)
 bool
 Slur_register::acceptable_request_b(Request*req_l)
 {
-    return req_l->musical() && req_l->musical()->slur();
+   Musical_req *mus_l = req_l->musical();
+    
+    return mus_l && mus_l->slur();
 }
 
 bool
 Slur_register::try_request(Request *req_l)
 {
-    if(!req_l->slur())
+    Musical_req *mus_l = req_l->musical();
+    if(!mus_l || !mus_l->slur())
        return false;
 
-    new_slur_req_l_arr_.push(req_l->slur());
+    new_slur_req_l_arr_.push(mus_l->slur());
     return true;
 }
 
index 57f6ab649f43a9cc2203a591fe0de6e59d112afc..3250dc26c9012bf7434f032cfa903518578ad697 100644 (file)
@@ -53,18 +53,6 @@ Slur::do_pre_processing()
     left_col_l_ = encompass_arr_[0]->pcol_l_;    
 }
 
-void
-Slur::do_break_at(PCol*l, PCol*r) 
-{
-    assert(l->line_l_ == r->line_l_);
-
-    Array<Note_column*> old_encompass_arr = encompass_arr_;
-    encompass_arr_.set_size(0);
-    for (int i =0; i < old_encompass_arr.size(); i++) {
-       if (old_encompass_arr[i]->pcol_l_->line_l_==l->line_l_)
-           encompass_arr_.push(old_encompass_arr[i]);
-    }
-}
 
 void
 Slur::do_substitute_dependency(Score_elem*o, Score_elem*n)
index 1baf0a61b1d87b7be70c4d88b32c2179964257e3..26b5f9fd33c59f5b4c774ec3472ed8e03d3cddde 100644 (file)
@@ -9,18 +9,6 @@
 #include "p-col.hh"
 #include "spanner-elem-group.hh"
 
-void
-Spanner_elem_group::do_break_at(PCol*c1, PCol*c2 )
-{
-    Line_of_score * line_C = c1->line_l_;
-    Array<Score_elem*>  old_elems=elem_l_arr_;
-    elem_l_arr_.set_size(0);
-    for (int i=0; i < old_elems.size(); i++) {
-       if (old_elems[i]->line_l() == line_C) {
-           add_element(old_elems[i]);
-       }
-    }
-}
 
 IMPLEMENT_STATIC_NAME(Spanner_elem_group);
 
index 750dd9d00d029bfaa7faaa7ac1de64071b27cc2b..55871e0761b46c68c377eee33fb196ebf21e958a 100644 (file)
@@ -51,11 +51,12 @@ Staff_column::add_reqs(Array<Request*> req_l_arr)
                !c_l->measuregrouping())
                setup_one_request(j);   
        } else {
-           if (j->rhythmic()) {
-               req_col_l_->musical_column_l_->add_duration(j->rhythmic()->duration());
-           }
            if (j->musical()) {
+               
                Musical_req*m = j->musical();
+               if (m->rhythmic()) {
+                   req_col_l_->musical_column_l_->add_duration(m->rhythmic()->duration());
+               }
                if(m->skip())
                    continue;
            }
index 562b6c3d277b4adbd8a44fd238a3431e0d02a2d9..3491b2f20d0949987bed0530bf007ccd92f591e2 100644 (file)
@@ -6,6 +6,7 @@
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+#include "interval.hh"
 #include "paper-def.hh"
 #include "dimen.hh"
 #include "staff-side.hh"
index ea17b178f62c49da223f8ea9171747f99bde65a5..8624878496e3adf96219882f7f74cc5a4b7185b5 100644 (file)
@@ -8,6 +8,7 @@
 #include "staff-sym.hh"
 #include "lookup.hh"
 #include "paper-def.hh"
+#include "molecule.hh"
 #include "debug.hh"
 
 
index 9fed099da21f9b9644129ce99591380edee52a8a..8f85238abf0525a700a3d97211b1289370adc441 100644 (file)
@@ -28,26 +28,37 @@ Stem_beam_register::Stem_beam_register()
 bool
 Stem_beam_register::try_request(Request*req_l)
 {
-    if ( req_l->beam() ) {
-       if (bool(beam_p_ ) == bool(req_l->beam()->spantype == Span_req::START))
+    
+    Musical_req* mus_l = req_l->musical();
+    /* Debiele puntkomma's. Laat je er eentje per ongeluk achter een
+      if(..) staan, lijkt het net op een luis in gcc.
+
+      (ofwel Python rules)
+      */
+    if (!mus_l)
+       return false;
+
+
+    if ( mus_l->beam() ) {
+       if (bool(beam_p_ ) == bool(mus_l->beam()->spantype == Span_req::START))
            return false;
        
-       if (beam_req_l_ && Beam_req::compare(*beam_req_l_ , *req_l->beam()))
+       if (beam_req_l_ && Beam_req::compare(*beam_req_l_ , *mus_l->beam()))
            return false;
        
-       beam_req_l_ = req_l->beam();
+       beam_req_l_ = mus_l->beam();
        return true;
     }
     
-    if ( req_l->stem() ) {
+    if ( mus_l->stem() ) {
        if (current_grouping && !current_grouping->child_fit_b(
            get_staff_info().time_C_->whole_in_measure_))
            return false;
 
-       if (stem_req_l_ && Stem_req::compare(*stem_req_l_, *req_l->stem()))
+       if (stem_req_l_ && Stem_req::compare(*stem_req_l_, *mus_l->stem()))
            return false;
 
-       stem_req_l_ = req_l->stem();
+       stem_req_l_ = mus_l->stem();
        return true;
     }
     return false;
@@ -67,10 +78,12 @@ Stem_beam_register::process_requests()
            current_grouping = new Rhythmic_grouping;
            if (beam_req_l_->nplet) {
                Text_spanner* t = new Text_spanner();
+               Text_def *defp = new Text_def;
                t->set_support(beam_p_);
-               t->spec.align_i_ = 0;
-               t->spec.text_str_ = beam_req_l_->nplet;
-               t->spec.style_str_="italic";
+               defp->align_i_ = 0;
+               defp->text_str_ = beam_req_l_->nplet;
+               defp->style_str_="italic";
+               t->spec_p_  = defp;
                typeset_element(t);
            }
             
@@ -107,7 +120,8 @@ Stem_beam_register::acknowledge_element(Score_elem_info info)
        return;
 
     if (info.elem_l_->name() == Note_head::static_name() &&
-       stem_req_l_->duration() == info.req_l_->rhythmic()->duration()){
+       stem_req_l_->duration() 
+       == info.req_l_->musical()->rhythmic()->duration()){
        Note_head * n_l= (Note_head*)info.elem_l_->item();
        stem_p_->add(n_l);
     }
index 4db5cff606ead52c77a32384b37bae8a5b5c174f..792f97f503fa9e2a120fcfe0adfbcf666361d00b 100644 (file)
@@ -9,6 +9,7 @@
 #include "super-elem.hh"
 #include "scoreline.hh"
 #include "p-score.hh"
+#include "string.hh"
 
 String
 Super_elem::TeX_string()const
index 875c711482dad64f786ed64ecf779b7f427ed191..676fb4b7fbfbd111234d93848a1216b93daf0acb 100644 (file)
@@ -15,7 +15,6 @@
 #include "spanner.hh"
 #include "scoreline.hh" 
 #include "staffline.hh"
-
 #include "pcursor.tcc"
 #include "plist.tcc"
 
index d9d3f99cdafa6ef085d4c301409e37a0029c5cbc..1115253ce5749bfcf29754a644b456b05d69c793 100644 (file)
@@ -6,6 +6,7 @@
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+#include "music.hh"
 #include "symbol.hh"
 #include "voice.hh"
 #include "voice-element.hh"
@@ -25,3 +26,4 @@ IPL_instantiate(Voice_element);
 IPL_instantiate(Voice);
 
 
+IPL_instantiate(Music);
index 50208175e56ada7fd86c8fca7dba5cd193d3612b..42a48125f0231e4639f72a4fffcc7226ea570c24 100644 (file)
@@ -1,3 +1,12 @@
+/*
+  template3.cc -- instantiate Atom
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#include "symbol.hh"
 #include "request.hh"
 #include "input-score.hh"
 #include "input-staff.hh"
index a601d4367ca031b03dd8870b668a47bc4ac95f1b..a9e95ef68d4fc2bd424dccac193de3422482f8e7 100644 (file)
@@ -1,3 +1,11 @@
+/*
+  text-def.cc -- implement Text_def
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #include "debug.hh"
 #include "lookup.hh"
 #include "paper-def.hh"
@@ -6,9 +14,9 @@
 #include "dimen.hh"
 
 Interval
-Text_def::width() const
+Text_def::width(Paper_def * p) const
 {
-    Atom a = create_atom();
+    Atom a = get_atom(p,0);
 
     Real guess_width_f = text_str_.length_i() * a.sym.dim.x.length(); // ugh
     Interval i(0, guess_width_f);
@@ -20,20 +28,19 @@ Text_def::width() const
 Text_def::Text_def()
 {   
     align_i_ = 1;                      // right
-    pdef_l_ = 0;
     style_str_ = "roman";
 }
 bool
-Text_def::compare(Text_def const &def)
+Text_def::do_equal_b(Text_def const &def)const
 {
     return align_i_ == def.align_i_ && text_str_ == def.text_str_
        && style_str_ == def.style_str_;
 }
 
 Atom
-Text_def::create_atom() const
+Text_def::get_atom(Paper_def *p, int ) const
 {
-    return pdef_l_->lookup_l()->text(style_str_, text_str_, -align_i_);
+    return p->lookup_l()->text(style_str_, text_str_, -align_i_);
 }
 
 void
@@ -42,3 +49,4 @@ Text_def::print() const
     mtor << "Text `" << text_str_ << "\', style " <<
        style_str_ << "align " << align_i_ << '\n';
 }
+IMPLEMENT_STATIC_NAME(Text_def);
index cc6f7f9b1313a28a447444df9db12179488cd0e4..9d661f405f2153bdff6dd3f5b7e0d26b3f888297 100644 (file)
 #include "molecule.hh"
 #include "lookup.hh"
 
-Text_item::Text_item(Text_def *tdef_l, int d)
+Text_item::Text_item(General_script_def*tdef_l, int d)
 {
     dir_i_ = d;
     fat_b_ = false;
-    tdef_p_ = new Text_def(*tdef_l);
+    tdef_p_ = tdef_l->clone();
     pos_i_ =0;
 }
 
-Text_def*
-Text_item::tdef_l()
-{
-    return tdef_p_;
-}
-
 Text_item::~Text_item()
 {
     delete tdef_p_;
@@ -36,7 +30,8 @@ Text_item::~Text_item()
 void
 Text_item::set_default_index()
 {
-    pos_i_  = get_position_i(tdef_p_->create_atom().extent().y );
+    pos_i_  = get_position_i(
+       tdef_p_->get_atom(paper(), dir_i_).extent().y );
 }
 
 void
@@ -44,7 +39,6 @@ Text_item::do_pre_processing()
 {
     if (!dir_i_)
        dir_i_ = -1;
-    tdef_p_->pdef_l_ = paper();
 }
 
 void
@@ -57,11 +51,12 @@ Text_item::do_post_processing()
 Molecule*
 Text_item::brew_molecule_p() const
 {
-    Atom a(tdef_p_->create_atom());
-
-    if ( fat_b_)
-       a.sym.dim.x = tdef_p_->width();
+    Atom a(tdef_p_->get_atom(paper(), dir_i_));
 
+/*
+  if ( fat_b_)
+       a.sym.dim.x = tdef_p_->width(paper());
+       */
     Molecule* mol_p = new Molecule(a);
 
     if(dir_i_<0 )              // should do something better anyway.
index 6883dab0b0d4bcd7fb2a74d5f70846eb7ff78a68..ceaacd8793109ca0c0d0cc159516d86c89637ca4 100644 (file)
@@ -12,7 +12,7 @@
 #include "text-def.hh"
 #include "debug.hh"
 #include "paper-def.hh"
-
+#include "symbol.hh"
 
 
 void
@@ -27,6 +27,7 @@ Text_spanner::set_support(Directional_spanner*d)
 
 Text_spanner::Text_spanner()
 {
+    spec_p_ = 0;
     support = 0;
 }
 
@@ -35,27 +36,20 @@ IMPLEMENT_STATIC_NAME(Text_spanner);
 void
 Text_spanner::do_print() const
 {
-    spec.print();
+    spec_p_->print();
 }
 
 void
 Text_spanner::do_post_processing()
 {
-    switch(spec.align_i_) {
-    case 0:
-       text_off_ = support->center() +
-           Offset(0,support->dir_i_ * paper()->internote_f() * 4); // todo
-       break;
-    default:
-       assert(false);
-       break;
-    }    
+    text_off_ = support->center() +
+       Offset(0,support->dir_i_ * paper()->internote_f() * 4); // todo
 }
 
 Molecule*
 Text_spanner::brew_molecule_p() const
 {
-    Atom tsym (spec.create_atom());
+    Atom tsym (spec_p_->get_atom(paper(),0));
     tsym.translate(text_off_);
 
     Molecule*output = new Molecule;
@@ -69,7 +63,6 @@ Text_spanner::do_pre_processing()
     right_col_l_ = support->right_col_l_;
     left_col_l_ = support->left_col_l_;
     assert(left_col_l_ && right_col_l_);
-    spec.pdef_l_ = paper();
 }
 
 Interval
@@ -86,3 +79,8 @@ Text_spanner::do_substitute_dependency(Score_elem* o, Score_elem*n)
        support = (Directional_spanner*) n->spanner();
 }
 
+
+Text_spanner::~Text_spanner()
+{
+    delete spec_p_;
+}
index cb806831a464855b514a17a35f5d103e413547f9..f08aa773ef1b80e0c3b79b7ba33b6fd575cb087a 100644 (file)
@@ -69,17 +69,6 @@ Voice_element::Voice_element(Voice_element const&src)
        add(i->clone());
 
 }
-bool
-Voice_element::find_plet_start_b(char c, Moment& moment_r)// b unused?
-{
-    assert( c == ']' );
-    moment_r += duration_;
-    for ( PCursor<Request*> i( req_p_list_.top() ); i.ok(); i++ ) {
-       if (i->beam() && i->beam()->spantype == Span_req::START )
-           return true;
-    }
-    return false;
-}
 
 void
 Voice_element::set_default_group(String s)
@@ -92,20 +81,3 @@ Voice_element::set_default_group(String s)
     add(greq);
 }
 
-void
-Voice_element::set_plet_backwards(Moment& now_moment_r,
-                                 Moment until_moment, int num_i, int den_i)
-{
-    now_moment_r += duration_;
-    if ( now_moment_r > until_moment )
-       return;
-    for ( PCursor<Request*> i( req_p_list_.top() ); i.ok(); i++ ) {
-       if (i->beam() && i->beam()->spantype == Span_req::START )
-           i->beam()->nplet = den_i;
-       if (i->rhythmic()) {
-           i->rhythmic()->duration_.plet_.type_i_ = den_i;
-           i->rhythmic()->duration_.plet_.iso_i_  = num_i;
-           
-       }
-    }
-}
index 536715d0cb216adcd0c7fd09362ab5a4a31bbfaa..f248f3aa0e5bf931dcd722530e03806f75396971 100644 (file)
@@ -29,26 +29,6 @@ Voice::set_default_group(String s)
     elts_.top()->set_default_group(s);
 }
 
-bool
-Voice::find_plet_start_b(char c, Moment& moment_r)
-{
-    for (iter_bot(elts_, i); i.ok(); i--)
-       if ( i->find_plet_start_b(c, moment_r) )
-           return true;
-    return false;
-}
-
-void 
-Voice::set_plet_backwards(Moment& now_moment_r, Moment until_moment,
-                         int num_i, int den_i)
-{
-    for (iter_bot(elts_, i); i.ok(); i--) 
-       if ( now_moment_r <= until_moment ) 
-           i->set_plet_backwards(now_moment_r, until_moment, num_i, den_i);
-       else
-           return;
-}
-
 Voice::Voice(Voice const&src)
 {
     for (iter_top(src.elts_, i); i.ok(); i++)
index 1eb674778820c75168fe95f3bed8941743fcb124..3a4b0fe668a3384009a8bf867a371a7b850a5429 100644 (file)
@@ -3,9 +3,12 @@
 # @configure_input@
 
 INSTALL = @INSTALL@
-USER_CXXFLAGS = @CXXFLAGS@ @CPPFLAGS@
+USER_CXXFLAGS =
+USER_LDFLAGS =
 
 CXX = @CXX@
+ICFLAGS = @ICFLAGS@
+ILDFLAGS = @ILDFLAGS@
 libdir = @libdir@
 prefix = @prefix@
 TEXPREFIX = @TEXPREFIX@
index 476aa2b46280aa58cee6459400294a983b28a93c..ee10f993718f491ded00698642db0d7fce525280 100644 (file)
@@ -32,4 +32,4 @@ DEPFILES = $(wildcard $(depdir)/*.dep)
 
 build = $(outdir)/.build
 
-all-tag-sources=$(CCFILES) $(HHFILES)
+all-tag-sources=$(CCFILES) $(HHFILES) $(TCCFILES)
index 36986881e580fcd73ddac99cede9dd40e134144e..d9e51b11c0f9440be6c3978ff85b48fb2b7d84ea 100644 (file)
@@ -76,3 +76,5 @@ $(depth)/%.text: check-doc-deps
        rm -f $@
        ln `find ${depth}/Documentation -name $@|head -1` .
 
+$(outdir)/%.xpm: %.gif
+       giftopnm $< | ppmtoxpm > $@
index 4c29b154a8c55464e92dd53252e3bb217cb54c90..d196e1679f0a6caa91c01b0a1ad477e480e5afa8 100644 (file)
@@ -100,17 +100,19 @@ config:
 dummydep: $(DUMMYDEPS)
 #
 
-# value of $(OSTYPE) on windhoos; "make $OSTYPE" if you use bash :-)
+# value of $(OSTYPE) on windhoos...; "make $OSTYPE" if you use bash :-)
 #
-win32: 
-       $(MAKE) -C . CXX=g++ 
+win32:  windows32 # win/lose?
+#
+windows32:
+       $(MAKE) -C . "CXX=g++ -D_WINDOWS32"
 #
 
 # xcompile to doze:
 #
 doze:  dos
 dos: 
-       $(MAKE) -C . CXX="gcc-go32 -I/usr/i386-go32/include -I/usr/i386-go32/include/g++ -D_WIN32 -Dcaddr_t=char* -DMAP_SHARED=0"
+       $(MAKE) -C . CXX="gcc-go32 -I/usr/i386-go32/include -I/usr/i386-go32/include/g++ -D_WINDOWS32 -Dcaddr_t=char* -DMAP_SHARED=0"
 #
 
 # target help:
@@ -123,7 +125,7 @@ help:
        @echo " all clean config dist distclean doc doc++"
        @echo " exe help lib moduledist TAGS"
        @echo " dos:    xcomplile to dos"
-       @echo " win32:  native cygnus-win32 compile" 
+       @echo " windows32: native cygnus-gnu compile" 
 #
 
 doc:
@@ -165,7 +167,8 @@ endif
 
 TAGS:$(all-tag-sources)
 ifdef all-tag-sources
-       -etags -CT $(all-tag-sources) /dev/null
+       -etags -CT $(all-tag-sources) $(ERROR_LOG)
+       -ctags -CT $(all-tag-sources) $(ERROR_LOG)
 endif
 ifdef SUBDIRS
        set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i TAGS ; done
@@ -220,9 +223,9 @@ $(LIBLILY): dummy
 
 # RedHat rpm package:
 #
-rpm:
+rpm: $(doc-dir)/$(outdir)/lelie_icon.xpm
        -cp $(depth)/lilypond-$(TOPLEVEL_VERSION).tar.gz $(rpm-sources)
-       -cp $(doc-dir)/*.gif $(rpm-sources)
+       -cp $< $(rpm-sources)
        $(MAKE) -C $(make-dir) spec
        rpm -ba $(makeout)/lilypond.spec
 #
@@ -232,7 +235,7 @@ installexe:
        $(INSTALL) -m 755 $(EXECUTABLES) $(bindir)
 
 uninstallexe:
-       for a in $(EXECUTABLES); do rm -f $(bindir)/`basename $a`; done
+       for a in $(EXECUTABLES); do rm -f $(bindir)/`basename $$a`; done
 
 ifneq ($(DEPFILES),)
 include $(DEPFILES)
index 9ddf1d56916c1641c381a58ffd0657de9092256b..fb024505012be0835252fb303bf51c5af92bd36b 100644 (file)
@@ -118,7 +118,7 @@ LIBLILY = $(depth)/lib/$(outdir)/$(LIB_PREFIX)lily$(LIB_SUFFIX)
 # compile and link options:
 #
 ARFLAGS = ru
-CFLAGS = $(DEFINES) $(INCLUDES) $(USER_CFLAGS) $(EXTRA_CFLAGS)
+CFLAGS = $(ICFLAGS) $(DEFINES) $(INCLUDES) $(USER_CFLAGS) $(EXTRA_CFLAGS)
 
 # added two warnings that are treated by cygwin32's gcc 2.7.2 as errors.
 # huh, but still, no warnings even provoced with linux's gcc 2.7.2.1?
@@ -130,7 +130,7 @@ EXTRA_CXXFLAGS= -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wconversio
 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 $@
-LDFLAGS = $(EXTRA_LDFLAGS) $(MODULE_LDFLAGS) -L$(depth)/lib/out -L$(depth)/flower/out
+LDFLAGS = $(ILDFLAGS) $(USER_LDFLAGS) $(EXTRA_LDFLAGS) $(MODULE_LDFLAGS) -L$(depth)/lib/out -L$(depth)/flower/out
 LOADLIBES = $(EXTRA_LIBES) $(MODULE_LIBES) -lg++ # need lg++ for win32, really!
 #
 
index 4450e5f0fc7bdb5223271b881df63eaec1370adf..be276478704f331dab0f2fa58a124567f00fa1a1 100644 (file)
@@ -2,8 +2,8 @@
 
 Begin3
 Title: LilyPond
-Version: 0.0.66
-Entered-date: 05/28/97
+Version: 0.0.67
+Entered-date: 05/29/97
 Description: 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
@@ -13,7 +13,7 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys)
        jan@digicash.com (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: pcnov095.win.tue.nl /pub/lilypond/  
-       300k lilypond-0.0.66.tar.gz
+       300k lilypond-0.0.67.tar.gz
 Alternate-site: 
 Original-site: 
 Platform: unix/win32, GNU C++
index 6b06b219e6cb5bea6d554eeeb76d3bc29550f720..1c1010ca7f36b49cea175594c88bafaecf4b37da 100644 (file)
@@ -1,13 +1,13 @@
 Name: lilypond
-Version: 0.0.66
+Version: 0.0.67
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.66.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.67.tar.gz
 Summary: A preprocessor to make TeX typeset music.
 URL: http://www.stack.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@stack.nl>
-Icon: lelie_icon.gif
+Icon: lelie_icon.xpm
 Buildroot: /tmp/lilypond_build
 
 %description
@@ -39,7 +39,6 @@ make prefix="$RPM_BUILD_ROOT/usr" install
 /usr/lib/texmf/texmf/tex/lilypond/
 /usr/lib/texmf/texmf/fonts/source/lilypond/
 /usr/share/lilypond/
-
 %post
-echo please run texhash to update TeX directory listings
+echo please run texhash to update TeX directory listings 1>&2
 
index 994215d0f3bdcc1aedbd707503a8203a5860a39d..9eb34ddb3c2175984110dddbeeea001b7a58fb9d 100644 (file)
@@ -7,7 +7,7 @@ Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-@TOPLEVEL_VERSION@.tar.gz
 Summary: A preprocessor to make TeX typeset music.
 URL: http://www.stack.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@stack.nl>
-Icon: lelie_icon.gif
+Icon: lelie_icon.xpm
 Buildroot: /tmp/lilypond_build
 
 %description
@@ -39,7 +39,6 @@ make prefix="$RPM_BUILD_ROOT/usr" install
 /usr/lib/texmf/texmf/tex/lilypond/
 /usr/lib/texmf/texmf/fonts/source/lilypond/
 /usr/share/lilypond/
-
 %post
-echo please run texhash to update TeX directory listings
+echo please run texhash to update TeX directory listings 1>&2
 
index 5fb343a0cae4c4df9b17703ec107f3a39daca054..01de76df271305a61d83e14e57651fd8dcc47d17 100644 (file)
@@ -6,6 +6,10 @@ grep for TODO and ugh/ugr
 
 IMPORTANT
 
+       * remove silly #warning using midi_voice list
+
+       * add mi2mu example output (.midi.ly and .gif) to website
+
        * important? lily is important, go work on lily!
 
        * faq about mi2mu midi t1. ?
index 5bae914fec98c807448fd740fe7fae2188a9294e..8e6806564bdda46edaa95ccc0c5bca8f192c55c2 100644 (file)
@@ -107,7 +107,7 @@ Lily_stream::header()
     *os_p_ << "% from input file: ";
     *os_p_ << midi_parser_l_g->filename_str_;
     *os_p_ << "\n\n";    
-    *os_p_ << "\\version \"0.0.57\";\n";
+    *os_p_ << "\\version \"0.0.58\";\n";
 }
 /*
   snapnie: dit kan toch automaties? Zie ook dstream.
index 43951e41c28e7d5303582ee3cb9bb5ab6e3f1909..f447a181dbc21fbd1a3e868df4b5388a016a8391 100644 (file)
@@ -77,7 +77,7 @@ int
 main( int argc_i, char* argv_sz_a[] )
 {
        Long_option_init long_option_init_a[] = {
-               {0, "be-blonde", 'b'},
+               {0, "no-quantify", 'b'},
                {0, "debug", 'd'},
                {0, "help", 'h'},
                {0, "no-silly", 'n'},
index 35b7e4df4329a2e7ee90792d9eabe6ad06b8f3ab..093956cca99c9fba571c775a30ba694e738fce07 100644 (file)
@@ -1,7 +1,7 @@
 %
 % A tex file to help determine dims.
 %
-\font\musicfont=musixsps
+\font\musicfont=musix20
 \font\slurfont=xslu16
 \def\thefont{\musicfont}
 
index 5bc96a07a69374b45019bb89fe4b454d7ebb08bb..30d2d34c1af7d91ed1f67d2213866d0593c0779c 100644 (file)
@@ -13,7 +13,7 @@
         \def\SkipLilydefs{}
 \fi
 \SkipLilydefs
-% should use \endinput
+
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % macros to shorten other definitions
 \newdimen\smallspace
 \newdimen\interlinedist
 \newcount\n
-\newdimen\balkhoog
+\newdimen\balkheight
 \newdimen\notewidth
 \newdimen\noteheight
-\newdimen\notewidthhalf
-\newdimen\notewidthdouble
-\newdimen\notewidthquart
 \newdimen\staffrulethickness
 \newdimen\interstaffrule
-\newdimen\balkhalf
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % set fonts and primary dimensions
@@ -70,7 +66,7 @@
         \font\italicfont=cmti10
         \font\dynfont=cmbxti10 scaled \magstep1
         \font\mathfont=cmsy10
-        \balkhoog=20pt
+        \balkheight=20pt
         \notewidth=6pt
         \noteheight=5pt
         \staffrulethickness=0.4pt
@@ -92,7 +88,7 @@
         \font\dynfont=cmbxti12
         \font\musicdraw=musixsps
         \font\mathfont=cmsy8
-        \balkhoog=16pt
+        \balkheight=16pt
         \staffrulethickness=0.4pt
         \notewidth=5pt
         \noteheight=4pt
 \def\musixcalc{
         \interlinedist=\fontdimen5\musicfnt
         \smallspace=.3\interlinedist
-        \interstaffrule=\balkhoog
+        \interstaffrule=\balkheight
         \divide\interstaffrule by 4
-        \notewidthhalf=\notewidth
-        \notewidthquart=\notewidth
-        \notewidthdouble=\notewidth
-        \rationalmultiply \notewidthhalf*1/2
-        \rationalmultiply\notewidthquart*1/4
-        \multiply \notewidthdouble by 2
-        \balkhalf=\balkhoog
-         \rationalmultiply\balkhalf*1/2 
 }
 
 % dynamics take extra kerning
 \def\dynfff{\dynff\kdynf}
 
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% provide interface to musixtex fonts 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mdef\quartball{'007}
-\mdef\halfball{'010}
-\mdef\wholeball{'011}
-\mdef\halfrest{'074}
-\mdef\wholerest{'075}
-\mdef\quartrest{62}
-\mdef\eighthrest{63}
-\mdef\sixteenthrest{64}
-\mdef\thirtysecondrest{65}
-\mdef\sixtyfourthrest{66}
-\mdef\hundredtwentyeighthrest{67}
-\mdef\sharp{52}
-\mdef\flat{50}
-\mdef\natural{54}
-\mdef\sharpsharp{53}
-\mdef\flatflat{51}
-
-\mdef\singledot{'00}
-\mdef\doubledot{'01}
-\mdef\tripledot{'02}
-\mdef\mussepline{155}
-
-\mdef\violinclef{71}
-\mdef\bassclef{73}
-\mdef\altoclef{75}
-\mdef\cviolinclef{72}
-\mdef\cbassclef{74}
-\mdef\caltoclef{76}
-
-\mdef\deighthflag{45}
-\mdef\dsixteenthflag{46}
-\mdef\dthirtysecondflag{47}
-\mdef\dsixtyfourthflag{48}
-\mdef\dhundredtwentyeighthflag{49}
-
-% pointing up
-\mdef\ueighthflag{40}
-\mdef\usixteenthflag{41}
-\mdef\uthirtysecondflag{42}
-\mdef\usixtyfourthflag{43}
-\mdef\uhundredtwentyeighthflag{44}
-
-\maccentdef\repeatcolon{55}{2/1}
-\def\eighthflag{\topalign{\ueighthflag}}
-\def\sixteenthflag{\topalign{\usixteenthflag}}
-\def\thirtysecondflag{\topalign{\uthirtysecondflag}}
-\def\sixtyfourthflag{\topalign{\usixtyfourthflag}}
-\def\hundredtwentyeighthflag{\topalign{\uhundredtwentyeighthflag}}
-
-\def\cquartrest{\vertcenter\quartrest}
-\def\ceighthrest{\vertcenter\eighthrest}
-\def\csixteenthrest{\vertcenter\sixteenthrest}
-\def\cthirtysecondrest{\vertcenter\thirtysecondrest}
-\def\csixtyfourthrest{\vertcenter\sixtyfourthrest}
-\def\chundredtwentyeighthrest{\vertcenter\hundredtwentyeighthrest}
-
-\def\lsingledot{\kern-\notewidth\singledot}
-\def\ldoubledot{\kern-\notewidth\doubledot}
-\def\ltripledot{\kern-\notewidth\tripledot}
-
-\maccentdef\sforzato{30}{-3/2}
-\maccentdef\marcato{20}{-1/1}
-\maccentdef\imarcato{21}{1/1}
-\maccentdef\staccato{24}{-1/3}
-\maccentdef\istaccato{25}{1/3}
-\maccentdef\staccatissimo{28}{-5/5}
-\maccentdef\istaccatissimo{29}{2/5}
-\maccentdef\portato{18}{-6/5}
-\maccentdef\iportato{19}{3/5}
-\maccentdef\tenuto{26}{-1/1}
-\maccentdef\itenuto{27}{1/1}
-\maccentdef\fermata{80}{-1/1}
-\maccentdef\ifermata{81}{1/1}
-
-\mdef\spicato{28}
-\mdef\ispicato{29}
-\mdef\upbow{23}
-\mdef\downbow{22}
+\input taupindefs
 
 \mathdef\cup{91} % \cup
 \mathdef\wedge{94} % \wedge
 \mathdef\striepke{0} % heu?
 
 %% custom characters --- this should go: add to (meta!) font
-\def\myheel{\kern-.5ex\vbox{\cup}\kern-.5ex}
-\def\mytoe{\kern-.5ex\vbox{\wedge}\kern-.5ex}
-\def\mystriepke{\kern-1.1ex\vbox{\hbox{\kern-.05em\striepke}}\kern-1.1ex}
+% \def\myheel{\kern-.5ex\vbox{\cup}\kern-.5ex}
+% \def\mytoe{\kern-.5ex\vbox{\wedge}\kern-.5ex}
+\def\myheel{\vbox{\cup}}
+\def\mytoe{\vbox{\wedge}}
+% \def\mystriepke{\kern-1.1ex\vbox{\hbox{\kern-.05em\striepke}}\kern-1.1ex}
+\def\mystriepke{\kern-1.8ex\vbox{\hbox{\kern-.05em\striepke}}\kern-1.8ex}
 
 \def\heel{\vbox{\myheel}}
 \def\toe{\vbox{\mytoe}}
 
 \def\emptybar{}
 
-\def\thinbar{\vrule height\balkhoog width0.8pt} % TODO parametric.
-\def\thickbar{\vrule height\balkhoog width 2\smallspace}
+\def\thinbar{\vrule height\balkheight width 1.6\staffrulethickness} % TODO parametric.
+\def\thickbar{\vrule height\balkheight width 2\smallspace}
 \def\maatstreep{\thinbar}
 
 %? what-s wrong with rightalign?
 \def\hslurcharu#1{{\hslurufont\char#1}}
 \def\hslurchard#1{{\hslurdfont\char#1}}
 % stacked numbers
-\def\generalmeter#1#2{\botalign{\vbox to\balkhalf{\vss \meterfont#1}%
+\def\generalmeter#1#2{\botalign{\vbox to0.5\balkheight{\vss \meterfont#1}%
         \nointerlineskip
-        \vbox to \balkhalf{\vss\meterfont #2}}}
+        \vbox to 0.5\balkheight{\vss\meterfont #2}}}
 
 % stacked horizontal lines 
-\def\lines#1#2{%
+\def\lines#1#2#3{%
  \vbox{\kern-\interstaffrule
         \n=0\nointerlineskip%
         \loop\ifnum\n<#1\advance\n by1%
                 \kern\interstaffrule
                 \nointerlineskip
-                \vbox to 0pt{\hrule height \staffrulethickness width#2%
+                \vbox to 0pt{\hrule height #3 width#2%
                         \vss}\nointerlineskip
                 \repeat
         }}
 % Ugh. Need to redo this. Wish we had PS.
 %
 \def\toplines#1{ % why space needed here?
-        \topalign{\hbox{\kern-\notewidth\lines{#1}{\notewidthdouble}}}}
+        \topalign{\hbox{\kern-\notewidth\lines{#1}{1.6\notewidth}{1.6\staffrulethickness}}}}
 
 \def\botlines#1{ % idem ditto
-        \botalign{\hbox{\kern-\notewidth\lines{#1}{\notewidthdouble}}}}
+        \botalign{\hbox{\kern-\notewidth\lines{#1}{1.6\notewidth}{1.6\staffrulethickness}}}}
 
 %
 % a staffsymbol with #1 lines, width #2
 % bottom at baseline
-\def\linestafsym#1#2{\leftalign{\botalign{\lines{#1}{#2}}}}
+\def\linestafsym#1#2{\leftalign{\botalign{\lines{#1}{#2}{\staffrulethickness}}}}
 
 \def\stem#1#2{\vrule height#2 depth-#1}
 
diff --git a/tex/taupindefs.tex b/tex/taupindefs.tex
new file mode 100644 (file)
index 0000000..f1cda10
--- /dev/null
@@ -0,0 +1,82 @@
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% provide interface to musixtex fonts 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mdef\quartball{'007}
+\mdef\halfball{'010}
+\mdef\wholeball{'011}
+\mdef\halfrest{'074}
+\mdef\wholerest{'075}
+\mdef\quartrest{62}
+\mdef\eighthrest{63}
+\mdef\sixteenthrest{64}
+\mdef\thirtysecondrest{65}
+\mdef\sixtyfourthrest{66}
+\mdef\hundredtwentyeighthrest{67}
+\mdef\sharp{52}
+\mdef\flat{50}
+\mdef\natural{54}
+\mdef\sharpsharp{53}
+\mdef\flatflat{51}
+
+\mdef\singledot{'00}
+\mdef\doubledot{'01}
+\mdef\tripledot{'02}
+\mdef\mussepline{155}
+
+\mdef\violinclef{71}
+\mdef\bassclef{73}
+\mdef\altoclef{75}
+\mdef\cviolinclef{72}
+\mdef\cbassclef{74}
+\mdef\caltoclef{76}
+
+\mdef\deighthflag{45}
+\mdef\dsixteenthflag{46}
+\mdef\dthirtysecondflag{47}
+\mdef\dsixtyfourthflag{48}
+\mdef\dhundredtwentyeighthflag{49}
+
+% pointing up
+\mdef\ueighthflag{40}
+\mdef\usixteenthflag{41}
+\mdef\uthirtysecondflag{42}
+\mdef\usixtyfourthflag{43}
+\mdef\uhundredtwentyeighthflag{44}
+
+\maccentdef\repeatcolon{55}{2/1}
+\def\eighthflag{\topalign{\ueighthflag}}
+\def\sixteenthflag{\topalign{\usixteenthflag}}
+\def\thirtysecondflag{\topalign{\uthirtysecondflag}}
+\def\sixtyfourthflag{\topalign{\usixtyfourthflag}}
+\def\hundredtwentyeighthflag{\topalign{\uhundredtwentyeighthflag}}
+
+\def\cquartrest{\vertcenter\quartrest}
+\def\ceighthrest{\vertcenter\eighthrest}
+\def\csixteenthrest{\vertcenter\sixteenthrest}
+\def\cthirtysecondrest{\vertcenter\thirtysecondrest}
+\def\csixtyfourthrest{\vertcenter\sixtyfourthrest}
+\def\chundredtwentyeighthrest{\vertcenter\hundredtwentyeighthrest}
+
+\def\lsingledot{\kern-\notewidth\singledot}
+\def\ldoubledot{\kern-\notewidth\doubledot}
+\def\ltripledot{\kern-\notewidth\tripledot}
+
+\maccentdef\sforzato{30}{-3/2}
+\maccentdef\marcato{20}{-1/1}
+\maccentdef\imarcato{21}{1/1}
+\maccentdef\staccato{24}{-1/3}
+\maccentdef\istaccato{25}{1/3}
+\maccentdef\staccatissimo{28}{-5/5}
+\maccentdef\istaccatissimo{29}{2/5}
+\maccentdef\portato{18}{-6/5}
+\maccentdef\iportato{19}{3/5}
+\maccentdef\tenuto{26}{-1/1}
+\maccentdef\itenuto{27}{1/1}
+\maccentdef\fermata{80}{-1/1}
+\maccentdef\ifermata{81}{1/1}
+
+\mdef\spicato{28}
+\mdef\ispicato{29}
+\mdef\upbow{23}
+\mdef\downbow{22}