]> 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_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
 
 # 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 *
 
 
 =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
 
 =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 *
 
 
 =item *
 
@@ -64,8 +63,6 @@ with the perl's Plain Old Documentation.
 
 =back
 
 
 =back
 
-
-
 =head1 CONFIGURING and COMPILING
 
 to install GNU LilyPond, simply type:
 =head1 CONFIGURING and COMPILING
 
 to install GNU LilyPond, simply type:
@@ -119,7 +116,7 @@ other options include:
 
 =item --enable-shared
 
 
 =item --enable-shared
 
-Make a shared library (linux, solaris (?) only ) 
+Make a shared library (gnu/linux, solaris (?) only ) 
 
 =item  --enable-printing
 
 
 =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
 to make GNU LilyPond under, brr, aargh, well, simply type:
 
        bash configure
-       make win32
+       make windows32
 
 =head1 PLATFORMS
 
 
 =head1 PLATFORMS
 
@@ -273,13 +270,14 @@ GNU LilyPond (pl 0.0.39) is known to compile on the following platforms:
 
 Unix:
 
 
 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
        * 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)
 
 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
 
 
 =head1 AUTHORS
 
index 2935fe4a02af9b6e04f0378f20eb8df324f78e62..873b66b85053a0832671b2c1ab03022bc4eb0037 100644 (file)
@@ -16,6 +16,17 @@ clean" after installing it
 
 If the problem persists, then please mail me.
 
 
 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
 
 
 =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.
 
 
 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). 
 
 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
 
 
 =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.
 
 
 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
 
 
 =head1 DOCUMENTATION
 
+
 =item *
 <a href=INSTALL.html
 >
 =item *
 <a href=INSTALL.html
 >
@@ -113,13 +113,6 @@ The lilypond logo (medium size, format: .gif)
 </a
 >
 
 </a
 >
 
-=item *
-<a href=example_output.html
->
-examples: MIDI, PS, .gif and input.
-</a
->
-
 
 =item *
 <a href=TODO.txt
 
 =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
 =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
 
 
 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>]
 
 
 [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
 
 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
 
 
 =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,
 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.
 
 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
 =head2 Identifiers
 
 =head2 Hierarchical structures
@@ -238,7 +248,7 @@ error for this reason.
 
        [c8 e8(] [)g8 <c'8] e'8>
                                % NO nesting!
 
        [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
 
 
 =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
        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
 
             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.
             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.
 
 
        +\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
        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)
 
        --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
        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
 
 
 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:
 
 
        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
                * 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)
 
        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
 
 
 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
 pl 66
        - make_website --jpeg, --png and --gif
        - win32 -> windows32
@@ -11,6 +37,7 @@ pl 66
 
 ******
 may 26
 
 ******
 may 26
+
 pl 65
        - bf pathfind /root/file
        - massive Score_elem rewrite:
 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
 
 
 IMPORTANT
-       * add mi2mu example output (.midi.ly and .gif) to website
 
        * piano staff
 
 
        * piano staff
 
@@ -22,8 +21,6 @@ IMPORTANT
 
        * decent TeX page layout
 
 
        * decent TeX page layout
 
-       * per staff item-widths [JCN]
-
        * script priority
 
        * a Hands on tutorial [HKN]
        * script priority
 
        * a Hands on tutorial [HKN]
@@ -109,11 +106,8 @@ PROJECTS
 PARSER
        * Duration -> Musical_duration, typedef Rational Duration?
 
 PARSER
        * Duration -> Musical_duration, typedef Rational Duration?
 
-**********************
 HKN buglist:
 
 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)
 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
 
 Onduidelijk wanneer wel en geen \ voor een woord. Maak liever
 verplichte regels
 
-****************
-
 
 BUGS
 
 BUGS
-       * RPM permissions -> redhat!
-
        * spurious Weird stem size warnings
 
        * staccato dot positions.
        * spurious Weird stem size warnings
 
        * staccato dot positions.
@@ -137,7 +127,9 @@ BUGS
        * lilypond - -> crash
 
        * standchen triool beam up/down
        * lilypond - -> crash
 
        * standchen triool beam up/down
-
+       
+       * (where are the) gcc compile warnings on linux
+       
 SEVERELY LACKING:
 
        * SPEED!
 SEVERELY LACKING:
 
        * SPEED!
@@ -153,8 +145,6 @@ FURTHER FOR ORCHESTRAL SCORE:
 
        * abbreviations c4=16
 
 
        * abbreviations c4=16
 
-       * doublebar "||", finishbar "|||" (or "||." ?)
-
 INPUTLANGUAGE
 
        * should have \require{package.ly} to read req'd packages.
 INPUTLANGUAGE
 
        * should have \require{package.ly} to read req'd packages.
@@ -183,6 +173,10 @@ PROJECTS
 
 SMALLISH 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.
 
        * 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;
 }
 
     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
 ###############################################################
 
 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,
                         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));
        }
        
        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 $base="lilypond/";
-local @examples=("wohltemperirt" ,"standchen", "scsii-menuetto", "rhythm", "collisions");
+local @examples=("wohltemperirt" ,"standchen", "toccata-fuga-E", "scsii-menuetto", "rhythm", "collisions");
 
 
 sub gen_html
 
 
 sub gen_html
@@ -134,7 +138,11 @@ sub gen_list
 {
     print "generating HTML list\n";
     open HTMLLIST, ">example_output.html";
 {
     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";
     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
 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
 ac_help="$ac_help
-  disable-checking       set runtime checks (assert calls)"
+  disable-checking        set runtime checks (assert calls)"
 ac_help="$ac_help
 ac_help="$ac_help
-  disable-debugging         set debug info "
+  disable-debugging       set debug info "
 ac_help="$ac_help
 ac_help="$ac_help
-  enable-optimise       use maximal speed optimisations"
+  enable-optimise         use maximal speed optimisations"
 ac_help="$ac_help
 ac_help="$ac_help
-  enable-profiling      compile with gprof support"
+  enable-profiling        compile with gprof support"
 ac_help="$ac_help
 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
 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
 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
 
 # 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
 # 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
 
     
 fi
 
     
-   
 # Check whether --enable-profiling or --disable-profiling was given.
 if test "${enable_profiling+set}" = set; then
   enableval="$enable_profiling"
 # 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
 
     
 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"
 # 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
 
   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"
 # 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
 
     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"
 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
 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
 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
 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 $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.
 
 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
 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
 #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
   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: 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 "$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
 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
   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
   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
   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
 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
 # 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
 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
 # 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
 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
 # 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
 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
 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
 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
 # 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
 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
 # 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
 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
 # 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
 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 $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"
     
 
     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 $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#^\./##')`
     
     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 $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#^\./##')`
     
     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
 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
 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
 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"
 #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
   :
 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
 
 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
 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"
 #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*
 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%@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
 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
 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
 
 
 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.
 
 dnl should cache result.
 dnl should  look in $prefix first.
 
-
 AC_DEFUN(AC_TEX_PREFIX, [
     
 
 AC_DEFUN(AC_TEX_PREFIX, [
     
 
@@ -74,6 +73,7 @@ dnl     AC_REQUIRE([AC_TEX_PREFIX])
    
 AC_INIT(flower/choleski.cc)
 
    
 AC_INIT(flower/choleski.cc)
 
+
 # if given here, these vars are initted at the checking point.
 printing_b=no
 checking_b=yes
 # 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,
 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,
     [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,
     [checking_b=$enableval] )
 
 AC_ARG_ENABLE(debugging,
-    [  disable-debugging         set debug info ],
+    [  disable-debugging       set debug info ],
     [debug_b=$enableval])
 
 AC_ARG_ENABLE(optimise,
     [debug_b=$enableval])
 
 AC_ARG_ENABLE(optimise,
-    [  enable-optimise       use maximal speed optimisations],
+    [  enable-optimise         use maximal speed optimisations],
     [optimise_b=$enableval])
     
     [optimise_b=$enableval])
     
-   
 AC_ARG_ENABLE(profiling, 
 AC_ARG_ENABLE(profiling, 
-    [  enable-profiling      compile with gprof support],
+    [  enable-profiling        compile with gprof support],
     [profile_b=$enableval])
     
     [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,
 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,
     [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] )
     [TEXDIR=$enableval],
     [TEXDIR=auto] )
+
 AC_ARG_ENABLE(mf-dir,
 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] )
 
     [MFDIR=$enableval],
     [MFDIR=auto] )
 
@@ -135,13 +140,21 @@ if test $checking_b = no; then
     DEFINES="$DEFINES -DNDEBUG=1"
 fi
 
     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"
 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
 CXXFLAGS=${CXXFLAGS:-""}       # we don't want -g -O junk
+
 AC_PROG_CXX
 AC_PROG_RANLIB
 AC_PROG_INSTALL
 AC_PROG_CXX
 AC_PROG_RANLIB
 AC_PROG_INSTALL
@@ -153,6 +166,8 @@ if test FIND = error; then
 fi
     
 AC_SUBST(CXX)
 fi
     
 AC_SUBST(CXX)
+AC_SUBST(ICFLAGS)
+AC_SUBST(ILDFLAGS)
 AC_SUBST(DEFINES)
 AC_SUBST(COMPILEINFO)
 AC_SUBST(AUTOHEADER)
 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();
     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 * );
 };
 
     virtual bool try_right_multiply(Matrix_storage * dest, Matrix_storage const * );
 };
 
index 933cdbbb6ed4043ac4b5a75769b8d6577a0ef035..d7e9310acfbaedd7900caa8dc893e180bf7b45ec 100644 (file)
@@ -153,7 +153,7 @@ public:
     /**
       RTTI.
      */
     /**
       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++
  */
   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();\
 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)\
 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"
 
 \include "register.ini"
 \include "dynamic.ini"
index abcdeab3efe495133fee7906069897139ad232bd..58f2ef25a7010cb07ceb62a629cad50067a52251 100644 (file)
@@ -3,6 +3,7 @@
 % It has a lot of hard-wired stringconstants
 %
 
 % It has a lot of hard-wired stringconstants
 %
 
+
 table_sixteen= 
 \symboltables {
 
 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
            "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
            "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
 %}
 
 EndMudelaHeader
 %}
 
-\version "0.0.57";
+\version "0.0.58";
 
 
 cad = \melodic  {
 
 
 cad = \melodic  {
@@ -43,7 +43,7 @@ cad = \melodic  {
        \duration 16;   [d cis d e]
        f4~ [f e d c]
        'b4
        \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''; 
        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
 %}
  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 :-)
 %
 
 % (maybe even sooner :-)
 %
 
-\version "0.0.57";
+\version "0.0.58";
 
 alto = \melodic{ 
        
 
 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"
 
 
 \include "this-is-hopefully-a-nonexisting-file"
 
index af02e8ab9d0ba63a07f7df655e8f8dfca6efded3..9e01bf0d40d402380e963576ae66a24d1cba8bb1 100644 (file)
@@ -10,4 +10,4 @@
  Tested Features:
 EndMudelaHeader
 %}
  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
 %}
  Tested Features: local key, key, forced accidentals
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 
 blah = \melodic{
 
 
 blah = \melodic{
index 6cc689c326560da06b8246564a8f36853e5a6ff3..409fe49ebae43e81970f22509131473ffe1e8e10 100644 (file)
@@ -10,7 +10,7 @@
  Tested Features: example file with comments
 EndMudelaHeader
 %}
  Tested Features: example file with comments
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 
 % the % is a comment.
 
 
 % the % is a comment.
index 5e760771feb805479fe64862f9013acbfe1ff899..caa990543097606ba175224e13ecd5b37f39e86f 100644 (file)
@@ -24,7 +24,7 @@
 % \lbheel \lbheel \lfheel \lftoe
 % \rbheel \rbtoe \rfheel \rftoe
 
 % \lbheel \lbheel \lfheel \lftoe
 % \rbheel \rbtoe \rfheel \rftoe
 
-\version "0.0.57";
+\version "0.0.58";
 
 \score{
        \staff{ melodicregs
 
 \score{
        \staff{ melodicregs
index 042d9cddc0cc7e798f388c203a729b0a9187cb49..530fc74a98377136b0a1d644b33c64d7732b623a 100644 (file)
        unsynced bars
 EndMudelaHeader
 %}
        unsynced bars
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 %
 %      Ive' got rhythm!
 %
 % add any impressive examples here, please
 
 
 %
 %      Ive' got rhythm!
 %
 % add any impressive examples here, please
 
-\version "0.0.57";
+\version "0.0.58";
 
 ritme = \staff {
        melodicregs
 
 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!
        % 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
        \meter   2/8;
        c4                              |
        c4      c4      c4      c4
index 1a46c213370e7a86957aaf2fc3ee49cdc8c3add5..2ccad6c895d534f2be97b5ada1cc3ec9b174cbab 100644 (file)
@@ -2,7 +2,7 @@
 % scales with accents.
 %
 
 % scales with accents.
 %
 
-\version "0.0.57";
+\version "0.0.58";
 blah = \staff{  melodicregs
        \melodic {
                \meter 6/8;     
 blah = \staff{  melodicregs
        \melodic {
                \meter 6/8;     
@@ -19,30 +19,30 @@ blah = \staff{  melodicregs
                        c d 
                \duration  8 ;
        %ugr
                        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' ;
                \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
                \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
                 \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' ;   
                \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 ;
                \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
   \meter 4/4;
        
 c1
index 4890522195ecc1e4fba83841dba0dd68baa71afa..42b1fa1731b2865810c2bb5be2c7e44150adb361 100644 (file)
@@ -10,7 +10,7 @@
  Tested Features: scripts, text.
 EndMudelaHeader
 %}
  Tested Features: scripts, text.
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 
 blah = \staff{  melodicregs
 
 
 blah = \staff{  melodicregs
index b40697e5b672016dd5dc00c3ba324e0725752d44..9ff18deb972d4938fab51001a3cba315bffaee88 100644 (file)
@@ -12,7 +12,7 @@
 
 EndMudelaHeader
 %}
 
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 %% Stuff from MPP version
 % \lefttitle{Menuetto}
 % \tempo{Moderato}
 %% Stuff from MPP version
 % \lefttitle{Menuetto}
 % \tempo{Moderato}
index a97f5faa6c83c61cfb239248471ed6c3175e8538..cddf943902202b3860dcd7306cf46f334264cdca 100644 (file)
@@ -11,7 +11,7 @@
 EndMudelaHeader
 %}
 
 EndMudelaHeader
 %}
 
-\version "0.0.57";
+\version "0.0.58";
 
 \score{\staff{
        melodicregs 
 
 \score{\staff{
        melodicregs 
index 03b8a1e7c3348e1915ca4225da6832785b54281c..09bbcd241492c3978851d2cdb144d5696ba2084a 100644 (file)
@@ -12,9 +12,8 @@
 
 EndMudelaHeader
 %}
 
 EndMudelaHeader
 %}
-\version "0.0.57";
 
 
-\version "0.0.57";
+\version "0.0.58";
 
 commands = \melodic{
        \skip 2.*4;
 
 commands = \melodic{
        \skip 2.*4;
@@ -45,29 +44,29 @@ melodie = \melodic{
 %%4
        r < [ 'a cis > e < 'a cis > e < 'a cis ] > |
 %%5
 %%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
 %%6
-       [ g~ a g ]2/3 d'4 g r |
+       [2/3 g~ a g ]1/1 d'4 g r |
 
 %%7
 
 %%7
-       a4.^> g [ g~ f e ]2/3 |
+       a4.^> g [2/3 g~ f e ]1/1 |
 %%8
        f2 r4 |
 %%9
 
 %%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
        { 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
 %%12
-       [ g~   a g ]2/3 e'4. d' |
+       [2/3 g~   a g ]1/1 e'4. d' |
 %%13
 %%13
-       c'4. bes [ bes~   a g ]2/3 |
+       c'4. bes [2/3 bes~   a g ]1/1 |
 %%14
        a2 r 
 %%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; 
        { 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
        [ 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
 %%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
 %%22
        f!2. |
 %%23
@@ -95,17 +94,17 @@ melodie = \melodic{
 %%24
        [ d'8. a16 ] fis4. d |
 %%25
 %%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
 %%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
 %%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-. ] } > |
 %%30
        < { a4. [ a-. a-. a-. ] }
        { fis4. [ fis-.( fis-. )fis-. ] } > |
@@ -115,8 +114,8 @@ melodie = \melodic{
 %%32
        < a2 fis2 \pp > < a4 fis4 > |
 %%33
 %%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-. ] } > |
 %%34
        < { a4. [ a-. a-. a-. ] }
        { fis4. [ fis-.( fis-. )fis-. ] } > |
@@ -136,7 +135,7 @@ melodie = \melodic{
 %%40
        cis'2 r4 |
 %%41
 %%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
 %%42
        [ b8. cis'16 ] d'4^> b r |
 %%43
@@ -145,11 +144,11 @@ melodie = \melodic{
 %%44
        [ b8. \> cis'16 ] d'4^> b \! r |
 %%45
 %%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
 %%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";
        < 
 %%48
        \textstyle "italic";
        < 
@@ -343,16 +342,16 @@ tekstI = \lyric{
        _ _ _
        _ _ _
 % 5
        _ _ _
        _ _ _
 % 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
        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 _
        _ _ _ 
        _ _ _
        mir!2 _
        _ _ _ 
        _ _ _
@@ -360,7 +359,7 @@ tekstI = \lyric{
 % 17
        Fl\"us-8. ternd16 schlan-4. ke8 
        Wip-8. fel16 rau-4. schen8
 % 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.
        _ _ _ 
        _ _ _
        Licht;2.
        _ _ _ 
        _ _ _
@@ -368,7 +367,7 @@ tekstI = \lyric{
 % 23
        Des8. Ver-16 r\"a-4. ters8 
        feind-8. lich16 Lau-4. schen8
 % 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.
        _ _ _ 
        _ _ _
        nicht.2.
        _ _ _ 
        _ _ _
@@ -388,7 +387,7 @@ tekstI = \lyric{
        mich!2 _
        Be-8. bend16 harr' ich8 _8
        dir8. ent-16 ge- gen!8 _8
        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
        mich!2.
        _ _ _ _ _ _
 % 47
@@ -410,17 +409,17 @@ tekstII = \lyric{
        _ _ _
        _ _ _
 % 5
        _ _ _
        _ _ _
 % 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
        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 _
        _ _ _ 
        _ _ _
        mich.2 _
        _ _ _ 
        _ _ _
@@ -428,7 +427,7 @@ tekstII = \lyric{
 % 17
        Sie-8. ver-16 stehn4. des8
        Bus-8. ens16 Seh-4. nen,8
 % 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.
        _ _ _ 
        _ _ _
        schmerz,2.
        _ _ _ 
        _ _ _
@@ -436,7 +435,7 @@ tekstII = \lyric{
 % 23
        R\"uh-8. ren16 mit4. den8 
        Sil-8. ber-16 t\"o-4. nen8
 % 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.
        _ _ _ 
        _ _ _
        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;
 
 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 
        % 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
 }
        > |
        % 16
 }
@@ -46,8 +46,8 @@ toccata_left = \melodic{
        \clef bass;
        % 13
        <\multivoice
        \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
                { \stem -1; r4 < dis4 fis4 > < cis4 e4 > }
        > |
        % 16
@@ -76,19 +76,27 @@ fuga2_right = \melodic{
        % 15
        \octave c';
        <\multivoice
        % 15
        \octave c';
        <\multivoice
-               { \stem 1; b8 fis8 b4 }
+               { \stem 1; [b8 fis8] b4 }
                { \stem -1; fis2 }
        >
                { \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] }
        > |
        % 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
                { \stem -1; fis2.~  fis2.~  fis4 e2 }
        > |
        % 19
index df4cf9a0cd4201564be1b26fdeb7a2e3f2f1306f..8a1772795958cd5262b33b152319b2657129f764 100644 (file)
@@ -14,7 +14,7 @@
  Tested Features: lyrics
 EndMudelaHeader
 %}
  Tested Features: lyrics
 EndMudelaHeader
 %}
-\version "0.0.57";
+\version "0.0.58";
 
 melody = \melodic{
        \clef\violin;
 
 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
 
                                     % 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)
 #
 
 default: $(MAINTARGET)
 #
 
+localclean:
+       rm -f $(MAINTARGET)
+
 # generic targets and rules:
 #
 include ./$(depth)/make/Targets.make
 include ./$(depth)/make/Rules.make
 # generic targets and rules:
 #
 include ./$(depth)/make/Targets.make
 include ./$(depth)/make/Rules.make
-#
-
-# list of depend files:
-#
-
-#
 
 # auto dependencies:
 #
 
 # auto dependencies:
 #
index f87385c4280b384a92738e1021c964fbc9fb0f3f..e68940257c9cda1151063a8a49ac7c719703a161 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef INPUT_HH
 #define INPUT_HH
 
 #ifndef INPUT_HH
 #define INPUT_HH
 
+#include "proto.hh"
+
 /**
   Base class for anything that records its poisition in the parse file.
  */
 /**
   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
 //
 //
 // 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
 
 #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
 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
 //
 //
 // 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>
 
 #include <sys/types.h>
 #include <sys/mman.h>
@@ -100,4 +102,4 @@ munmap(caddr_t addr, size_t len)
 #endif // !HAVE_GET_OSFHANDLE //
 
 
 #endif // !HAVE_GET_OSFHANDLE //
 
 
-#endif // _WIN32 //
+#endif // _WINDOWS32 //
index de91678501b039c30e5e314d9c25f4b509fc4fe0..1f39e39a1d1e192381df5ccc6206aeafe1dafb22 100644 (file)
@@ -1,8 +1,7 @@
 MAJOR_VERSION = 0
 MINOR_VERSION = 0
 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
 
 # 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 "varray.hh"
-
 #include "proto.hh"
 #include "dimen.hh"
 #include "beam.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 "bow.hh"
 #include "paper-def.hh"
+#include "molecule.hh"
 #include "lookup.hh"
 
 Bow::Bow()
 #include "lookup.hh"
 
 Bow::Bow()
index 83cb258ffb32dc92972b3edee47ea348fc4afcb3..7a70fced2eeceb43564bbf9f2a6dcb14afa92f9e 100644 (file)
 #include "debug.hh"
 #include "musical-request.hh"
 
 #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
 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++) 
 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_;
 }
        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>
 */
 
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+#include "molecule.hh"
 #include "dimen.hh"
 #include "crescendo.hh"
 #include "lookup.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) 
 {
 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;
 
     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();
     virtual void pre_move_processing();
     virtual void post_move_processing();
     Bar_register();
-    NAME_MEMBERS(Bar_register);
+    NAME_MEMBERS();
 };
 
 #endif // BARREG_HH
 };
 
 #endif // BARREG_HH
index ea23bd07bccfdf5bbc74f537c699f901113e4d3b..eecc32f51fb0bc1c98ee583a6607bc0154f9dabc 100644 (file)
@@ -14,7 +14,7 @@ class Bar:public Item {
 public:
     String type;
     
 public:
     String type;
     
-    NAME_MEMBERS(Bar);
+    NAME_MEMBERS();
     Bar(String type);
 private:
     void do_print() const;
     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*);
     
     Beam();
     void add(Stem*);
     
@@ -35,7 +35,6 @@ public:
 protected:
     virtual Interval do_width()const;    
     virtual Offset center() const;
 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();
     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();
     Molecule*brew_molecule_p()const;
 public:
     Bow();
-    NAME_MEMBERS(Bow);
+    NAME_MEMBERS();
     Offset center() const;  
 };
 #endif // BOW_HH
     Offset center() const;  
 };
 #endif // BOW_HH
index d0e29994ef3720397ac3a58e7f03e7a05af3a0f4..23e346c083d49dfb3db49c066263bfd201b49582 100644 (file)
@@ -24,7 +24,7 @@ public:
     bool change;
 
     /* *************** */
     bool change;
 
     /* *************** */
-NAME_MEMBERS(Clef_item);
+NAME_MEMBERS();
     Clef_item();
     void read(Clef_register const&);
     void read(String);
     Clef_item();
     void read(Clef_register const&);
     void read(String);
index 28cbd4643ceab37383926995dceaf0728d265dd6..b78f3dd682a55096f758c1197a4f3524f4e5ec2e 100644 (file)
@@ -31,7 +31,7 @@ public:
     /* ************** */
    
     Clef_register();
     /* ************** */
    
     Clef_register();
-    NAME_MEMBERS(Clef_register);
+    NAME_MEMBERS();
    
 };
 #endif // CLEF_HH
    
 };
 #endif // CLEF_HH
index b0b3b6dc8a86a3b6d28f1c5920ec0fd77dc2992f..5eef92a9e96aed244cfa3c5c38badffb0b61768a 100644 (file)
@@ -20,6 +20,6 @@ protected:
     virtual void pre_move_processing();
 public:
     Collision_register();
     virtual void pre_move_processing();
 public:
     Collision_register();
-    NAME_MEMBERS(Collision_register);
+    NAME_MEMBERS();
 };
 #endif // COLLISION_REG_HH
 };
 #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_;
     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();
     
     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 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; }
     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 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  {
 /** 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;
 protected:
     SPANNER_CLONE(Crescendo)
     virtual Molecule*brew_molecule_p()const;
-    NAME_MEMBERS(Crescendo);
+    NAME_MEMBERS();
     
 private:
     
     
 private:
     
index 17f769053cd21063638f89d8adeb3940360f2c91..72823a79a1026c11cc5dea48cf260732a1b893dd 100644 (file)
@@ -23,7 +23,7 @@ class Dynamic_register : public Request_register {
 public:
     Dynamic_register();
     ~Dynamic_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);
 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&);
 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;
     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
 
 #ifndef GROUPING_HH
 #define GROUPING_HH
 
-#include "moment.hh"
-#include "interval.hh"
+#include "minterval.hh"
 #include "varray.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
 /** 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();
     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;
   */
 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 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;
     
     
     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 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);
     }
     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*);
     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;
     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;
     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&);
     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();
     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);
 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 Collision;
 struct Collision_register;
 struct Command_req;
+struct Command_script_req;
 struct Complex_music;
 struct Complex_walker;
 struct Cresc_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 Dynamic_req;
 struct Element_group;
 struct Feature;
+struct General_script_def;
 struct Group_change_req;
 struct Group_feature_req;
 struct Idealspacing;
 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 Mixed_qp;
 struct Molecule;
 struct Music_general_chord;
+struct Musical_script_req;
 struct Music_voice;
 struct Musical_req;
 struct My_lily_parser;
 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 Paper_def;
 struct Partial_measure_req;
 struct Plet;
-struct Plet_req;
 struct Pulk_voice;
 struct Pulk_voices;
 struct Rational;
 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 {
   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;
     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);
     /* *************** */
     
     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:
     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();
     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
 };
 
 #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:
     virtual void process_requests();
     virtual void post_move_processing();
 public:
-    NAME_MEMBERS(Lyric_register);
+    NAME_MEMBERS();
     Lyric_register();
 };
 #endif // LYRIC_REGISTER_HH
     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();
     virtual void pre_move_processing();
     virtual void post_move_processing();
     Meter_register();
-    NAME_MEMBERS(Meter_register);
+    NAME_MEMBERS();
 };
 #endif // METERREG_HH
 };
 #endif // METERREG_HH
index b923785256de98a892d66f16efc07181505dc434..7cd1d40ac315add00b2940cf17bb07f9e436f7fa 100644 (file)
@@ -23,7 +23,7 @@ protected:
     Molecule*brew_molecule_p() const;
 public:
     Meter(Array<Scalar> args) ;
     Molecule*brew_molecule_p() const;
 public:
     Meter(Array<Scalar> args) ;
-    NAME_MEMBERS(Meter);
+    NAME_MEMBERS();
 };
 #endif // METER_HH
 
 };
 #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 "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
 
 
 /** a group of individually translated symbols. You can add molecules
@@ -35,7 +14,7 @@ struct Molecule {
     /* *************** */
     
     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);
 
     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_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;
 
     /// 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:
     
 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; }
     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  {
 /** 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:
 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
 /** 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();
     virtual void post_move_processing();
 public:
     Note_column_register();
-    NAME_MEMBERS(Note_column_register);
+    NAME_MEMBERS();
 };
 #endif // NOTE_COLUMN_REG_HH
 };
 #endif // NOTE_COLUMN_REG_HH
index 32b1a18e11ba657e9a7a001a92831d9be9d6b03f..805b969bbc1f5d278474977b405109a0650f0c88 100644 (file)
@@ -33,7 +33,7 @@ public:
     int dir_i_;
    
         
     int dir_i_;
    
         
-    NAME_MEMBERS(Note_column);
+    NAME_MEMBERS();
     Note_column();
     void add(Note_head *);
     void add(Stem *);
     Note_column();
     void add(Note_head *);
     void add(Stem *);
index 4a1bf349eb5e1d0f06d100a129ff977b0ecfc949..c93c1ad205d278ede6df56cf27606983c34658ee 100644 (file)
@@ -20,7 +20,7 @@
 
 class Note_head : public Item {
 public:
 
 class Note_head : public Item {
 public:
-    NAME_MEMBERS(Note_head);
+    NAME_MEMBERS();
 
     bool rest_b_;
     int position_i_;
 
     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;
     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
     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);
 
 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);
 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);
     
      */
     virtual void terminate_register(Request_register * reg_l);
     
-   NAME_MEMBERS(Register_group_register);
+   NAME_MEMBERS();
     
     /**
       Remove #reg_l# from the list, and return it.
     
     /**
       Remove #reg_l# from the list, and return it.
index 641d0331125ac4fe56a5b2b0466f138fade583c4..8ede14b1d3fc3fc433310d1d610079ca871ae178 100644 (file)
@@ -111,7 +111,7 @@ public:
 
     Request_register();
     virtual ~Request_register(){}
 
     Request_register();
     virtual ~Request_register(){}
-    NAME_MEMBERS(Request_register);
+    NAME_MEMBERS();
     void print() const;
 };
 
     void print() const;
 };
 
index f045b36204aa810c2d3524ee4a62dd00848ab7d9..6d9343a0652440238d01b5960ef759eeafb3d0f3 100644 (file)
@@ -31,7 +31,7 @@ public:
     Request(Request const&);
     virtual ~Request(){}
 
     Request(Request const&);
     virtual ~Request(){}
 
-    NAME_MEMBERS(Request);
+    NAME_MEMBERS();
     virtual Request* clone() const { return new Request(*this); }
     void print()const ;
     
     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; }
        maybe checkout RTTI
      */
     virtual Barcheck_req *barcheck() { return 0; }
-    virtual Note_req *note() { return 0;}
     virtual Script_req *script() { 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 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; }
     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;}\
 
 #define REQUESTMETHODS(T,accessor)     \
 virtual T * accessor() { return this;}\
-NAME_MEMBERS(T);\
+NAME_MEMBERS();\
 VIRTUAL_COPY_CONS(T, Request)\
 virtual void do_print() const
 
 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
 #endif
index 39b0b2d10e5595c1c9f030241466ad0de58164f6..a1e13957351973723b5b537a57c25eaae421499b 100644 (file)
@@ -21,6 +21,6 @@ protected:
     virtual void pre_move_processing();
 public:
     Rest_collision_register();
     virtual void pre_move_processing();
 public:
     Rest_collision_register();
-    NAME_MEMBERS(Rest_collision_register);
+    NAME_MEMBERS();
 };
 #endif // REST_COLLISION_REG_HH
 };
 #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*);
 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*);
 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 *);
 public:
     int dir_i_;
     void add(Note_head *);
-    NAME_MEMBERS(Rest_column);
+    NAME_MEMBERS();
     void translate_y(Real dy);
     Rest_column();
 protected:
     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 "parray.hh"
 #include "lily-proto.hh"
 #include "offset.hh"
-#include "molecule.hh"
 #include "virtual-methods.hh"
 #include "directed-graph.hh"
 
 #include "virtual-methods.hh"
 #include "directed-graph.hh"
 
@@ -66,7 +65,7 @@ public:
 
     virtual ~Score_elem();
     Score_elem();
 
     virtual ~Score_elem();
     Score_elem();
-    NAME_MEMBERS(Score_elem);    
+    NAME_MEMBERS();    
     virtual bool is_type_b(const char *);
     
     Interval width() const;
     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;    
     
     /* *************** */
     virtual String TeX_string() const;    
     
     /* *************** */
-    NAME_MEMBERS(Line_of_score);
+    NAME_MEMBERS();
     Line_of_score();
     
     void add_line(Spanner_elem_group *);
     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_;
 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*);
    
     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"
 #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.  */
 
 /** 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_;
 
     /// 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_;
 
     /// 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;
     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
 
 #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:
     /* *************** */
     bool acceptable_elem_b(Score_elem*);
 public:
-    NAME_MEMBERS(Script_register);
+    NAME_MEMBERS();
     Script_register();
 protected:
     virtual bool try_request(Request*);
     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 {
   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_;
     
     
     int pos_i_;
     
-    Script_def *specs_l_;
+    General_script_def *specs_l_;
     Stem *stem_l_;
 
     /* *************** */
     Stem *stem_l_;
 
     /* *************** */
@@ -32,7 +28,7 @@ protected:
     virtual void do_pre_processing();
     virtual Interval do_width() const;
 private:
     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;
     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*);
     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:
     virtual void pre_move_processing();
     virtual void post_move_processing();
 public:
-    NAME_MEMBERS(Slur_register);
+    Slur_reg();
+    NAME_MEMBERS();
 };
 
 #endif // SLURREG_HH
 };
 
 #endif // SLURREG_HH
index 98cf4334f20bd200270cb092b28e654c344e2f15..5731317866b33e30843c8ffb8f4ba440114b4cff 100644 (file)
@@ -21,12 +21,11 @@ public:
     void add(Note_column*);
 protected:
     virtual void set_default_dir();
     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)
     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
 };
 
 #endif // SLUR_HH
index a23819ac6d8d64bf6239ebd42e2cacd78e537b77..0d91319b63e8397e2e88fc65d7e1e7e73c2930cc 100644 (file)
 class Spanner_elem_group : public Spanner, public Element_group {
     
 protected:
 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)
     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
 };
 #endif // SPANNER_ELEM_GROUP_HH
index 074a555da2c7ab2e02dab150b57b2a6d1f4f4805..84c85f3e98f3ca6d43d3e1346950a84bd19829be 100644 (file)
@@ -38,7 +38,7 @@ public:
     PCol *left_col_l_, *right_col_l_;
     
     /* *************** */
     PCol *left_col_l_, *right_col_l_;
     
     /* *************** */
-    NAME_MEMBERS(Spanner);
+    NAME_MEMBERS();
     virtual Spanner* spanner() { return this; }    
     Spanner();
     bool broken_b() const;
     virtual Spanner* spanner() { return this; }    
     Spanner();
     bool broken_b() const;
index 34138fadf215aa0c79f7b77fc3f0f3155ebb7110..8f7bba348536db18b765590a93e45fac5ad37c40 100644 (file)
@@ -29,7 +29,7 @@ protected:
 public:
     
     /* *************** */
 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);
     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();
     Moment last_mom_;
 public:
     Staff_sym_register();
-    NAME_MEMBERS(Staff_sym_register);
+    NAME_MEMBERS();
 protected:
     virtual void process_requests();
     ~Staff_sym_register();
 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);
 
 
     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;
     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:
 
     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:
     /* *************** */
     int default_dir_i_;
 public:
     /* *************** */
-    NAME_MEMBERS(Stem_beam_register);
+    NAME_MEMBERS();
     Stem_beam_register();
 
 protected:
     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);
 
     /// ensure that this Stem also encompasses the Notehead #n#
     void add(Note_head*n);
 
-    NAME_MEMBERS(Stem);
+    NAME_MEMBERS();
 
     Real hpos_f()const;
     
 
     Real hpos_f()const;
     
index db813471482083fb6d16244bfeaf553e6f6d8ede..e51e1181df1b73a893bc4f26d859f47847841bc0 100644 (file)
@@ -26,7 +26,7 @@ protected:
     virtual void handle_broken_dependencies();
 
     virtual void do_add_processing();
     virtual void handle_broken_dependencies();
 
     virtual void do_add_processing();
-    NAME_MEMBERS(Super_elem);
+    NAME_MEMBERS();
 };
 
 #endif // SUPER_ELEM_HH
 };
 
 #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:
     bool acceptable_request_b(Request*) const;
     bool try_request(Request*) ;
 public:
-    NAME_MEMBERS(Swallow_register);
+    NAME_MEMBERS();
 };
 #endif // SWALLOW_REG_HH
 };
 #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
 
 #ifndef SYMBOL_HH
 #define SYMBOL_HH
 
@@ -14,4 +22,24 @@ struct Symbol {
     String str()const;         // for printing.
 };
 
     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
 #endif
index 0d792590c68f59a8235049d82fa6fc13cb88e9b9..0cc584f742287c582b6fed21647d406d7ade8575 100644 (file)
@@ -7,11 +7,16 @@
 #ifndef TEXT_DEF_HH
 #define TEXT_DEF_HH
 
 #ifndef TEXT_DEF_HH
 #define TEXT_DEF_HH
 
+#include "general-script-def.hh"
 #include "string.hh"
 #include "lily-proto.hh"
 #include "input.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?
 public:
     /**
       centered , or aligned?
@@ -19,17 +24,16 @@ public:
       -1 = raggedright, 0 = center, 1 = raggedleft
      */
     int align_i_;
       -1 = raggedright, 0 = center, 1 = raggedleft
      */
     int align_i_;
-    Paper_def* pdef_l_;
+
     String text_str_;
     String style_str_;
     
     /* *************** */
     virtual ~Text_def() {};
     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;
     Text_def();
     virtual void print() const;
-    Atom create_atom() const;
-    Interval width() const;
+    Interval width(Paper_def*) const;
 };
 
 #endif // TEXT_DEF_HH
 };
 
 #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:
     void init(Text_def* tdef_l); 
  
 public:
-    Text_def * tdef_l();
-    Text_def const* tdef_c_l();
+
     int pos_i_;
 
     /// do I have width?
     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();
     virtual ~Text_item();
-    NAME_MEMBERS(Text_item);
+    NAME_MEMBERS();
 
 protected:
 
 protected:
-    Text_def* tdef_p_;
+    General_script_def * tdef_p_;
 
     virtual void set_default_index();
     virtual Molecule* brew_molecule_p() const;
 
     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();
     virtual void acknowledge_element(Score_elem_info);
 public:
     Text_register();
-    NAME_MEMBERS(Text_register);
+    NAME_MEMBERS();
 };
 
 #endif // TEXTREG_HH
 };
 
 #endif // TEXTREG_HH
index a91d8d96910d3c49e1afe7cb4400ab4645823360..c7e6ca9a9275999db5847d9696f8e0593beb94fb 100644 (file)
 class Text_spanner : public Spanner {
 public:
     Directional_spanner * support;
 class Text_spanner : public Spanner {
 public:
     Directional_spanner * support;
-    Text_def spec;
+    General_script_def * spec_p_;
     Offset text_off_;
     Offset text_off_;
-    NAME_MEMBERS(Text_spanner);
+    NAME_MEMBERS();
 
     void set_support(Directional_spanner*);
     Text_spanner();
 protected:
     SPANNER_CLONE(Text_spanner)
 
     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();
     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();
     virtual void set_feature(Feature);
 public:
     Tie_register();
-    NAME_MEMBERS(Tie_register);
+    NAME_MEMBERS();
 };
 
 #endif // TIE_REG_HH
 };
 
 #endif // TIE_REG_HH
index 81c356dd7fe7346a48e832c7e2e51114c26e20c9..dc3b812f5ede3a2c143a34a8c7aa2c30ce196150 100644 (file)
@@ -28,7 +28,7 @@ public:
     void set_head(int, Note_head*head_l);
 
     Tie();
     void set_head(int, Note_head*head_l);
 
     Tie();
-    NAME_MEMBERS(Tie);
+    NAME_MEMBERS();
     SPANNER_CLONE(Tie)
 };
 #endif // TIE_HH
     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*);
     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 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
 };
 
 #endif // VOICE-ELEMENT_HH
index 243965a1919996b30d57bf9cbb57b859543fd728..187b6c147e1485ce0b9ce2dd27bcb8daded59e7c 100644 (file)
@@ -36,7 +36,7 @@ public:
     Array<Voice_registers*> voice_reg_l_arr_;
     /* *************** */
     
     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 *);
     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*);
     /* *************** */
 
     Voice_registers(Voice*, Input_register const*);
-    NAME_MEMBERS(Voice_registers);
+    NAME_MEMBERS();
 
 protected:
     virtual void pre_move_processing();
 
 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
 
 #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*);
     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 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
 };
 
 #endif
index 840b180c34f22330b6d894efbb7ee3e5a078f763..2d4527c44a917d6c8001c0439af9bf0479f88076 100644 (file)
@@ -5,23 +5,6 @@
 #include "command-request.hh"
 #include "voice-element.hh"
 
 #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
 {
 void
 Simple_music::transpose(Melodic_req const &d)const
 {
@@ -73,17 +56,6 @@ Simple_music::print() const
     mtor << "}\n";
 #endif
 }
     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);
 }
     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
 /* *************************************************************** */
 
 void
@@ -167,8 +123,6 @@ Music_voice::add_elt(Voice_element*v)
     c = elts.bottom();
     Simple_music *s = c->simple();
     s->add(v);             
     c = elts.bottom();
     Simple_music *s = c->simple();
     s->add(v);             
-
-    check_plet(v);
 }
 
 Moment
 }
 
 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);
     Simple_music*vs = new Simple_music;
     vs->add(v);
     elts.bottom().add(vs);
-
-    check_plet(v);
 }
 
 void
 }
 
 void
index 50aba0bf41c127ff8e21e424283ff0841e10b470..d53299c9e9c57735c59eb7a5fbbd8dc9b789c6f8 100644 (file)
@@ -23,7 +23,7 @@ Local_key_item::Local_key_item(int i)
 }
 
 void
 }
 
 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);
 {
     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()
 {
 void
 Local_key_register::pre_move_processing()
 {
+    Local_key_item *key_item_p = 0;
     if (mel_l_arr_.size()) {
     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];
        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];
            Note_req * note_l = mel_l_arr_[i];
+
            if (tied_l_arr_.find_l(support_l) && 
            if (tied_l_arr_.find_l(support_l) && 
-               !forced_l_arr_.find_l(support_l))
+               !note_l->forceacc_b_)
                continue;
            
                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);
            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_);
        }
            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);
     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_;
 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();
 
        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 =
     } 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;
     }
     
        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");
     
     
     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++ )  {
     }
 
     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();
        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"
 #include "interval.hh"
 #include "dimen.hh"
 #include "string.hh"
@@ -7,41 +14,6 @@
 #include "debug.hh"
 #include "tex.hh"
 
 #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();
 }
     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;
 }
 
     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)
 /* *************** */
 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_ &&
 }
 
 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);
 }
 
 IMPLEMENT_STATIC_NAME(Script_req);
@@ -312,6 +294,12 @@ Script_req::do_print() const
     scriptdef_p_->print();
 }
 
     scriptdef_p_->print();
 }
 
+void
+Musical_script_req::do_print() const
+{}
+
+IMPLEMENT_STATIC_NAME(Musical_script_req);
+
 
 Script_req::~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_);
 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()
     return b1 && b2;
 }
 Text_req::~Text_req()
@@ -451,3 +439,5 @@ Span_dynamic_req::do_print()const
 }
 
 IMPLEMENT_STATIC_NAME(Tie_req);
 }
 
 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 "musical-request.hh"
 #include "command-request.hh"
 #include "voice.hh"
-
+#include "script.hh"
 #include "identifier.hh"
 #include "varray.hh"
 #include "text-def.hh"
 #include "identifier.hh"
 #include "varray.hh"
 #include "text-def.hh"
 #include "voice-element.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)
 {
 String *
 get_scriptdef(char c)
 {
@@ -58,7 +48,9 @@ get_scriptdef(char c)
 Request*
 get_script_req(int d , Script_def*def)
 {
 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;
 }
 
     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" 
 #include "misc.hh"
 #include "note-head.hh"
 #include "dimen.hh" 
@@ -20,12 +28,18 @@ Note_head::Note_head(int ss)
     rest_b_ = false;
 }
 
     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_;
 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_;
 }
     
     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());
 
     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++;
        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);
     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;
        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());
   
     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++;
        if (start->breakable_b() && !start->line_l_ )
            ret.push(start);
        start++;
index 539148422c187db7f6763b3bba4b635485bc8343..532380bc10b63d74210cc3959ed3bd0b306edb24 100644 (file)
@@ -1,7 +1,7 @@
 %{ // -*-Fundamental-*-
 #include <iostream.h>
 
 %{ // -*-Fundamental-*-
 #include <iostream.h>
 
-#define MUDELA_VERSION "0.0.57"
+#define MUDELA_VERSION "0.0.58"
 
 #include "script-def.hh"
 #include "symtable.hh"
 
 #include "script-def.hh"
 #include "symtable.hh"
@@ -174,7 +174,8 @@ yylex(YYSTYPE *s,  void * v_l)
 
 
 %type <box>    box
 
 
 %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
 %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);
        }
                $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:
        ;
 
 post_request:
@@ -737,6 +734,7 @@ pure_post_request:
                $$->set_spot( THIS->here_input());
        }
        ;
                $$->set_spot( THIS->here_input());
        }
        ;
+
 pure_post_request_choice:
        close_request_parens    { 
                $$ = THIS->get_parens_request($1); 
 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     {
 */
 steno_melodic_req:
        NOTENAME_ID     {
-               $$ = $1->clone()->melodic();
+               $$ = $1->clone()->musical()->melodic();
                $$->octave_i_ += THIS->default_octave_i_;
        }
        | steno_melodic_req POST_QUOTES         {  
                $$->octave_i_ += THIS->default_octave_i_;
        }
        | steno_melodic_req POST_QUOTES         {  
@@ -801,8 +799,9 @@ dynamic_req:
        ;
 
 close_plet_parens:
        ;
 
 close_plet_parens:
-       ']' {
+       ']' INT '/' INT {
                $$ = ']';
                $$ = ']';
+               THIS->default_duration_.set_plet($2,$4);
        }
        ;
 
        }
        ;
 
@@ -816,6 +815,8 @@ close_request_parens:
        | ']'   { 
                $$ = ']';
        }
        | ']'   { 
                $$ = ']';
        }
+       | close_plet_parens {
+       }
        | E_SMALLER {
                $$ = '<';
        }
        | 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   {
                $$ = '!';
 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          {
 
 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;
        }       
        ;
                delete $1;
        }       
        ;
@@ -1014,7 +1025,7 @@ pitch_list:                       {
                $$ = new Array<Melodic_req*>;
        }
        | pitch_list NOTENAME_ID        {
                $$ = 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 "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 ;
 {
     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;
 }
 
     priority_i_ =0;
 }
 
+
 void
 Script_def::print() const
 {
     mtor << "Script_def{ idx: " << symidx 
         << " direction, stem: " << rel_stem_dir_i_ << " staff : " << staff_dir_i_ << "}\n";
 }
 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 &&
     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)
 {
 bool
 Script_register::try_request(Request *r_l)
 {
-    if (!r_l->script())
+    if (!r_l->musical() || ! r_l->musical()->musicalscript())
        return false ;
        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;
     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_;
 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;
     stem_l_ = 0;
     pos_i_ = 0;
-    symdir_i_=1;
     dir_i_ =rq->dir_i_;
 }
     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()
 {
 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 {
     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()
 {
     }
 }
 
 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
 {
 }
 
 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
 }
 
 void
@@ -75,7 +59,7 @@ Script::do_pre_processing()
 {
     if (!dir_i_)
        set_default_dir();
 {
     if (!dir_i_)
        set_default_dir();
-    set_symdir();
+
 }
 
 void
 }
 
 void
@@ -89,15 +73,16 @@ Script::brew_molecule_p() const
 {
     Real dy = paper()->internote_f();
     
 {
     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;
 }
     out->translate(Offset(0,dy * pos_i_));
     return out;
 }
+
 IMPLEMENT_STATIC_NAME(Script);
 
 int 
 Script::compare(Script  *const&l1, Script *const&l2) 
 {
 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)
 {
 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)
 {
 }
 
 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;
 
        return false;
 
-    new_slur_req_l_arr_.push(req_l->slur());
+    new_slur_req_l_arr_.push(mus_l->slur());
     return true;
 }
 
     return true;
 }
 
index 57f6ab649f43a9cc2203a591fe0de6e59d112afc..3250dc26c9012bf7434f032cfa903518578ad697 100644 (file)
@@ -53,18 +53,6 @@ Slur::do_pre_processing()
     left_col_l_ = encompass_arr_[0]->pcol_l_;    
 }
 
     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)
 
 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"
 
 #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);
 
 
 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 {
                !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()) {
            if (j->musical()) {
+               
                Musical_req*m = 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;
            }
                if(m->skip())
                    continue;
            }
index 562b6c3d277b4adbd8a44fd238a3431e0d02a2d9..3491b2f20d0949987bed0530bf007ccd92f591e2 100644 (file)
@@ -6,6 +6,7 @@
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+#include "interval.hh"
 #include "paper-def.hh"
 #include "dimen.hh"
 #include "staff-side.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 "staff-sym.hh"
 #include "lookup.hh"
 #include "paper-def.hh"
+#include "molecule.hh"
 #include "debug.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)
 {
 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;
        
            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;
        
            return false;
        
-       beam_req_l_ = req_l->beam();
+       beam_req_l_ = mus_l->beam();
        return true;
     }
     
        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 (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;
 
            return false;
 
-       stem_req_l_ = req_l->stem();
+       stem_req_l_ = mus_l->stem();
        return true;
     }
     return false;
        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();
            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->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);
            }
             
                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() &&
        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);
     }
        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 "super-elem.hh"
 #include "scoreline.hh"
 #include "p-score.hh"
+#include "string.hh"
 
 String
 Super_elem::TeX_string()const
 
 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 "spanner.hh"
 #include "scoreline.hh" 
 #include "staffline.hh"
-
 #include "pcursor.tcc"
 #include "plist.tcc"
 
 #include "pcursor.tcc"
 #include "plist.tcc"
 
index d9d3f99cdafa6ef085d4c301409e37a0029c5cbc..1115253ce5749bfcf29754a644b456b05d69c793 100644 (file)
@@ -6,6 +6,7 @@
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+#include "music.hh"
 #include "symbol.hh"
 #include "voice.hh"
 #include "voice-element.hh"
 #include "symbol.hh"
 #include "voice.hh"
 #include "voice-element.hh"
@@ -25,3 +26,4 @@ IPL_instantiate(Voice_element);
 IPL_instantiate(Voice);
 
 
 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"
 #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"
 #include "debug.hh"
 #include "lookup.hh"
 #include "paper-def.hh"
@@ -6,9 +14,9 @@
 #include "dimen.hh"
 
 Interval
 #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);
 
     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
 Text_def::Text_def()
 {   
     align_i_ = 1;                      // right
-    pdef_l_ = 0;
     style_str_ = "roman";
 }
 bool
     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
 {
     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
 }
 
 void
@@ -42,3 +49,4 @@ Text_def::print() const
     mtor << "Text `" << text_str_ << "\', style " <<
        style_str_ << "align " << align_i_ << '\n';
 }
     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"
 
 #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;
 {
     dir_i_ = d;
     fat_b_ = false;
-    tdef_p_ = new Text_def(*tdef_l);
+    tdef_p_ = tdef_l->clone();
     pos_i_ =0;
 }
 
     pos_i_ =0;
 }
 
-Text_def*
-Text_item::tdef_l()
-{
-    return tdef_p_;
-}
-
 Text_item::~Text_item()
 {
     delete tdef_p_;
 Text_item::~Text_item()
 {
     delete tdef_p_;
@@ -36,7 +30,8 @@ Text_item::~Text_item()
 void
 Text_item::set_default_index()
 {
 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
 }
 
 void
@@ -44,7 +39,6 @@ Text_item::do_pre_processing()
 {
     if (!dir_i_)
        dir_i_ = -1;
 {
     if (!dir_i_)
        dir_i_ = -1;
-    tdef_p_->pdef_l_ = paper();
 }
 
 void
 }
 
 void
@@ -57,11 +51,12 @@ Text_item::do_post_processing()
 Molecule*
 Text_item::brew_molecule_p() const
 {
 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.
     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 "text-def.hh"
 #include "debug.hh"
 #include "paper-def.hh"
-
+#include "symbol.hh"
 
 
 void
 
 
 void
@@ -27,6 +27,7 @@ Text_spanner::set_support(Directional_spanner*d)
 
 Text_spanner::Text_spanner()
 {
 
 Text_spanner::Text_spanner()
 {
+    spec_p_ = 0;
     support = 0;
 }
 
     support = 0;
 }
 
@@ -35,27 +36,20 @@ IMPLEMENT_STATIC_NAME(Text_spanner);
 void
 Text_spanner::do_print() const
 {
 void
 Text_spanner::do_print() const
 {
-    spec.print();
+    spec_p_->print();
 }
 
 void
 Text_spanner::do_post_processing()
 {
 }
 
 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
 {
 }
 
 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;
     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_);
     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
 }
 
 Interval
@@ -86,3 +79,8 @@ Text_spanner::do_substitute_dependency(Score_elem* o, Score_elem*n)
        support = (Directional_spanner*) n->spanner();
 }
 
        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());
 
 }
        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)
 
 void
 Voice_element::set_default_group(String s)
@@ -92,20 +81,3 @@ Voice_element::set_default_group(String s)
     add(greq);
 }
 
     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);
 }
 
     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++)
 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@
 # @configure_input@
 
 INSTALL = @INSTALL@
-USER_CXXFLAGS = @CXXFLAGS@ @CPPFLAGS@
+USER_CXXFLAGS =
+USER_LDFLAGS =
 
 CXX = @CXX@
 
 CXX = @CXX@
+ICFLAGS = @ICFLAGS@
+ILDFLAGS = @ILDFLAGS@
 libdir = @libdir@
 prefix = @prefix@
 TEXPREFIX = @TEXPREFIX@
 libdir = @libdir@
 prefix = @prefix@
 TEXPREFIX = @TEXPREFIX@
index 476aa2b46280aa58cee6459400294a983b28a93c..ee10f993718f491ded00698642db0d7fce525280 100644 (file)
@@ -32,4 +32,4 @@ DEPFILES = $(wildcard $(depdir)/*.dep)
 
 build = $(outdir)/.build
 
 
 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` .
 
        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)
 #
 
 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: 
 #
 
 # 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:
 #
 
 # 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 " 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:
 #
 
 doc:
@@ -165,7 +167,8 @@ endif
 
 TAGS:$(all-tag-sources)
 ifdef all-tag-sources
 
 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
 endif
 ifdef SUBDIRS
        set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i TAGS ; done
@@ -220,9 +223,9 @@ $(LIBLILY): dummy
 
 # RedHat rpm package:
 #
 
 # RedHat rpm package:
 #
-rpm:
+rpm: $(doc-dir)/$(outdir)/lelie_icon.xpm
        -cp $(depth)/lilypond-$(TOPLEVEL_VERSION).tar.gz $(rpm-sources)
        -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
 #
        $(MAKE) -C $(make-dir) spec
        rpm -ba $(makeout)/lilypond.spec
 #
@@ -232,7 +235,7 @@ installexe:
        $(INSTALL) -m 755 $(EXECUTABLES) $(bindir)
 
 uninstallexe:
        $(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)
 
 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
 # 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?
 
 # 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 $@
 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!
 #
 
 LOADLIBES = $(EXTRA_LIBES) $(MODULE_LIBES) -lg++ # need lg++ for win32, really!
 #
 
index 4450e5f0fc7bdb5223271b881df63eaec1370adf..be276478704f331dab0f2fa58a124567f00fa1a1 100644 (file)
@@ -2,8 +2,8 @@
 
 Begin3
 Title: LilyPond
 
 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
 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/  
        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++
 Alternate-site: 
 Original-site: 
 Platform: unix/win32, GNU C++
index 6b06b219e6cb5bea6d554eeeb76d3bc29550f720..1c1010ca7f36b49cea175594c88bafaecf4b37da 100644 (file)
@@ -1,13 +1,13 @@
 Name: lilypond
 Name: lilypond
-Version: 0.0.66
+Version: 0.0.67
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
 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>
 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
 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/
 /usr/lib/texmf/texmf/tex/lilypond/
 /usr/lib/texmf/texmf/fonts/source/lilypond/
 /usr/share/lilypond/
-
 %post
 %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>
 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
 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/
 /usr/lib/texmf/texmf/tex/lilypond/
 /usr/lib/texmf/texmf/fonts/source/lilypond/
 /usr/share/lilypond/
-
 %post
 %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
 
 
 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. ?
        * 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_ << "% 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.
 }
 /*
   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[] = {
 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'},
                {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.
 %
 %
 % A tex file to help determine dims.
 %
-\font\musicfont=musixsps
+\font\musicfont=musix20
 \font\slurfont=xslu16
 \def\thefont{\musicfont}
 
 \font\slurfont=xslu16
 \def\thefont{\musicfont}
 
index 5bc96a07a69374b45019bb89fe4b454d7ebb08bb..30d2d34c1af7d91ed1f67d2213866d0593c0779c 100644 (file)
@@ -13,7 +13,7 @@
         \def\SkipLilydefs{}
 \fi
 \SkipLilydefs
         \def\SkipLilydefs{}
 \fi
 \SkipLilydefs
-% should use \endinput
+
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % macros to shorten other definitions
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % macros to shorten other definitions
 \newdimen\smallspace
 \newdimen\interlinedist
 \newcount\n
 \newdimen\smallspace
 \newdimen\interlinedist
 \newcount\n
-\newdimen\balkhoog
+\newdimen\balkheight
 \newdimen\notewidth
 \newdimen\noteheight
 \newdimen\notewidth
 \newdimen\noteheight
-\newdimen\notewidthhalf
-\newdimen\notewidthdouble
-\newdimen\notewidthquart
 \newdimen\staffrulethickness
 \newdimen\interstaffrule
 \newdimen\staffrulethickness
 \newdimen\interstaffrule
-\newdimen\balkhalf
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % set fonts and primary dimensions
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % set fonts and primary dimensions
@@ -70,7 +66,7 @@
         \font\italicfont=cmti10
         \font\dynfont=cmbxti10 scaled \magstep1
         \font\mathfont=cmsy10
         \font\italicfont=cmti10
         \font\dynfont=cmbxti10 scaled \magstep1
         \font\mathfont=cmsy10
-        \balkhoog=20pt
+        \balkheight=20pt
         \notewidth=6pt
         \noteheight=5pt
         \staffrulethickness=0.4pt
         \notewidth=6pt
         \noteheight=5pt
         \staffrulethickness=0.4pt
@@ -92,7 +88,7 @@
         \font\dynfont=cmbxti12
         \font\musicdraw=musixsps
         \font\mathfont=cmsy8
         \font\dynfont=cmbxti12
         \font\musicdraw=musixsps
         \font\mathfont=cmsy8
-        \balkhoog=16pt
+        \balkheight=16pt
         \staffrulethickness=0.4pt
         \notewidth=5pt
         \noteheight=4pt
         \staffrulethickness=0.4pt
         \notewidth=5pt
         \noteheight=4pt
 \def\musixcalc{
         \interlinedist=\fontdimen5\musicfnt
         \smallspace=.3\interlinedist
 \def\musixcalc{
         \interlinedist=\fontdimen5\musicfnt
         \smallspace=.3\interlinedist
-        \interstaffrule=\balkhoog
+        \interstaffrule=\balkheight
         \divide\interstaffrule by 4
         \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
 }
 
 % dynamics take extra kerning
 \def\dynfff{\dynff\kdynf}
 
 
 \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
 
 \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\heel{\vbox{\myheel}}
 \def\toe{\vbox{\mytoe}}
 
 \def\emptybar{}
 
 
 \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\maatstreep{\thinbar}
 
 %? what-s wrong with rightalign?
 \def\hslurcharu#1{{\hslurufont\char#1}}
 \def\hslurchard#1{{\hslurdfont\char#1}}
 % stacked numbers
 \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
         \nointerlineskip
-        \vbox to \balkhalf{\vss\meterfont #2}}}
+        \vbox to 0.5\balkheight{\vss\meterfont #2}}}
 
 % stacked horizontal lines 
 
 % 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{\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
         }}
                         \vss}\nointerlineskip
                 \repeat
         }}
 % Ugh. Need to redo this. Wish we had PS.
 %
 \def\toplines#1{ % why space needed here?
 % 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
 
 \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
 
 %
 % 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}
 
 
 \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}