]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 0.0.66 release/0.0.66
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 28 May 1997 11:22:39 +0000 (13:22 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 28 May 1997 11:22:39 +0000 (13:22 +0200)
28 files changed:
.version
ANNOUNCE
AUTHORS.text
Documentation/INSTALL.pod
Documentation/faq.pod
Documentation/gnu-music.pod
Documentation/index.pod
Documentation/lilyliterature.pod
INSTALL.text
NEWS
TODO
bin/make_website
flower/.version
flower/NEWS
flower/include/varray.hh
init/table_sixteen.ini
lily/.version
lily/beam.cc
lily/include/p-score.hh
lily/p-score.cc
lily/score-elem.cc
lily/slur.cc
lily/spanner.cc
lily/stem.cc
make/lilypond.lsm
make/lilypond.spec
tex/dimen.tex
tex/lilyponddefs.tex

index fa58dc3090eb878dd5e554cf271f91e53b5c2303..e8e755d92b41c4f79456d2f2c7c782c0679f6a1e 100644 (file)
--- a/.version
+++ b/.version
@@ -1,6 +1,6 @@
 TOPLEVEL_MAJOR_VERSION = 0
 TOPLEVEL_MINOR_VERSION = 0
-TOPLEVEL_PATCH_LEVEL = 65
+TOPLEVEL_PATCH_LEVEL = 66
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
index 42e9686124d1204fb631a6ca4b1f9e0829389b32..09c2e51cc13d8dc3d10dabd2a5d110e1f50a69eb 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,3 +1,4 @@
+[DRAFT]
 
        Announcing
                        
@@ -45,7 +46,7 @@ WHAT IS NEEDED?
 
 for compilation you need
 
-       Unix. (Win32 is known to work, too)
+       Unix. (windows32 is known to work, too)
        GNU C++ v2.7 or better, with libg++ installed.
        GNU make. 
        Flex (2.5.1 or better). 
@@ -73,7 +74,6 @@ general n-plet (triplet, quadruplets, etc.), lyrics, transposition
 dynamics (both absolute and hairpin style) clef changes, meter
 changes, cadenza-mode, key changes, repeat bars
 
-
 [Kudos to the FSF, all linux hackers, and --of course-- especially
 GrandMaster Linus T, for the OS and The Announce :-]
 
index e516153369b9fc762a4f4f9c78fb943877416978..672b6556be8bd8f8f18bce113837b332c745c3b8 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.65                        1
+19/May/97                LilyPond 0.0.66                        1
 
 
index cd096c78181da68af09436df7cae0abf7dc9c8dd..000411ef181e061af7a076ddf8e29d36a0ad369b 100644 (file)
@@ -23,10 +23,10 @@ For compilation you need.
 
 =item *
 
-Unix. 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 Linux,
+AIX, Digital Unix and Solaris.
 
-If you have the Cygnus WIN32 port of the GNU utils, it will
+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.
 
 =item *
@@ -59,6 +59,7 @@ Perl.  Most scripts are written in Perl. The documentation was created
 with the perl's Plain Old Documentation.
 
 =item *
+
 (GNU) find
 
 =back
@@ -258,7 +259,7 @@ F<Variables.make>
 
 Windows NT:
 
-you need the cygnus win32 gnu port development stuff; have a look
+you need the cygnus windows32 gnu port development stuff; have a look
 at http://www.cygnus.com/gnu-win32.
 
 to make GNU LilyPond under, brr, aargh, well, simply type:
@@ -270,9 +271,14 @@ to make GNU LilyPond under, brr, aargh, well, simply type:
 
 GNU LilyPond (pl 0.0.39) is known to compile on the following platforms:
 
+Unix:
+
        * linux 2.0.x, g++ 2.7.2[.1]
        * aix 4.1, g++ 2.7.2
-       * windows-nt 4.0, cygnus gnu-win32 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]
 
 =head1 AUTHORS
index 395a411fa2b50040936d00777c3813dd0cc238cf..2935fe4a02af9b6e04f0378f20eb8df324f78e62 100644 (file)
@@ -106,6 +106,8 @@ manner in which Request (the basic building blocks of mudela) are
 translated into printable items is complex: it is not always possible
 to associate one Request with one Item or Spanner.
 
+As a further notice, we want to move away from TeX (and perhaps
+output PostScript or render to an X window too)
 
 =head2 Miscellaneous
 
@@ -194,7 +196,7 @@ LD_LIBRARY_PATH to a directory containing F<libflower.so>
 
 Q: I want a DOS/NT/W95 port.
 
-A.0: Reconsider.  Try Linux.  It's fun!
+A.0: Reconsider.  Try Linux/GNU.  It's fun!
 
 A.1: Currently (patchlevel 27), GNU LilyPond (and flowerLib) compiles, links
 and runs on windhoos-nt, using the cygnus gnu port (release b17.1). 
index 994dadac54fe2773bee0362da56b703a39dab53d..f0fe5fc7e5db2db6e93fb9209f31ef3955b4867e 100644 (file)
@@ -6,7 +6,7 @@ GNU Music project - manifesto
 
 Random ranting about the GNU Music project
 
-=head GOAL
+=head1 GOAL
 
 Provide the users with free software for:
 
index b90e3b463cc5c9d950055f87ca328773b26ea47f..d650acee2c1e2a54bc05bd78b6de6e2c2b2fa8a7 100644 (file)
@@ -102,21 +102,21 @@ errors
 =item *
 <a href=lelieblond.gif
 >
-The lilypond logo (Big)
+The lilypond logo (Big, format: .gif)
 </a
 >
 
 =item *
 <a href=lelie_logo.gif
 >
-The lilypond logo (in gif format, medium size)
+The lilypond logo (medium size, format: .gif)
 </a
 >
 
 =item *
 <a href=example_output.html
 >
-examples: MIDI, PS, GIF and input.
+examples: MIDI, PS, .gif and input.
 </a
 >
 
index 98f71e631e6940e334deccc9e2952d642df9b690..d0a3ac3bd90e5e4e67901570a64e219e3adc887f 100644 (file)
@@ -4,9 +4,13 @@ Lily literature -- reading on music engraving
 
 =head1 DESCRIPTION
 
-A list of resources on music printing/writing and engraving.
-Please note that don't have access to most material (except a library
-copy of Chlapik)
+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)
+
+
+More on GNU Music: http://dept-info.labri.u-bordeaux.fr/~strandh/Gsharp
+
 
 =head2 References
 
@@ -23,16 +27,16 @@ Association of the United States Inc., 1993.
 W.A. Hegazy and J. S. Gourlay. Optimal line breaking in music. In
 ``Document Manipulation and Typography'', J.C. van Vliet (ed) 1988.
 
-Ross, Ted. ``Teach yourself the art of music engraving and processing'' 
-(3rd edition). Hansen House, Miami Beach, FL.
+Ross, Ted. ``Teach yourself the art of music engraving and
+processing'' (3rd edition). Hansen House, Miami Beach, FL.
 
        Hansen House
        1820 West Ave.
        Miami, FL  33139
        (305) 532-5461
 
-[This is about I<engraving> i.e. professional music typesetting, and includes 
-some good spacing tables]
+[This is about I<engraving> i.e. professional music typesetting, and
+includes some good spacing tables]
  
 Read, Gardner. ``Modern Rhythmic Notation.'' Indiana University Press, 1978.
 
@@ -43,9 +47,7 @@ New York.
 as one is likely to get.]
 
 The University of Colorado Music Engraving page.
-http://www.cc.colorado.edu/cgi-bin/mfs/01/Dept/Musicpress/Welcome.html
-
-More on GNU Music: http://www.u-bordeaux.fr/~strandh
+http://www.cc.colorado.edu/cgi-bin/mfs/01/Dept/MU/Musicpress/Welcome.html
 
 =head2  Further reading
 
index 8de884cd9934f2d0a6781ada23bf9f54df593c31..1ed0bd2d3936e799d66e0e66b636e1a124ccfbc3 100644 (file)
@@ -23,12 +23,12 @@ I\bI\bI\bIM\bM\bM\bMP\bP\bP\bPO\bO\bO\bOR\bR\bR\bRT\bT\bT\bTA\bA\bA\bAN\bN\bN\bNT\bT\bT\bT
 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\bE\bES\bS\bS\bS
        For compilation you need.
 
-       +\bo    Unix. GNU LilyPond is known to run on Linux, AIX,
-            Digital Unix and Solaris
+       +\bo    A Unix system with GNU tools. GNU LilyPond is known
+            to run on Linux, AIX, Digital Unix and Solaris.
 
-            If you have the Cygnus WIN32 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 Lose NT/95, but don't
+            promise to support it.
 
        +\bo    GNU C++ v2.7 or better, with libg++ installed.
             Version 2.7.2 or better recommended. I almost
@@ -45,7 +45,7 @@ R\bR\bR\bRE\bE\bE\bEC\bC\bC\bCO\bO\bO\bOM\bM\bM\bMM\bM\bM\bME\bE\bE\bEN\bN\bN\bND\bD\bD\bDE\bE\bE\bED\bD\bD\bD
             documentation was created with the perl's Plain Old
             Documentation.
 
-       +\bo (GNU) find
+       +\b   (GNU) find
 
 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\ba\ba\ban\bn\bn\bnd\bd\bd\bd C\bC\bC\bCO\bO\bO\bOM\bM\bM\bMP\bP\bP\bPI\bI\bI\bIL\bL\bL\bLI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
        to install GNU LilyPond, simply type:
@@ -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
 
 
 
-26/May/97                LilyPond 0.0.65                        1
+28/May/97                LilyPond 0.0.66                        1
 
 
 
@@ -127,7 +127,7 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
 
-26/May/97                LilyPond 0.0.65                        2
+28/May/97                LilyPond 0.0.66                        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
 
 
 
-26/May/97                LilyPond 0.0.65                        3
+28/May/97                LilyPond 0.0.66                        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
 
 
 
-26/May/97                LilyPond 0.0.65                        4
+28/May/97                LilyPond 0.0.66                        4
 
 
 
@@ -268,8 +268,8 @@ W\bW\bW\bWI\bI\bI\bIN\bN\bN\bND\bD\bD\bDO\bO\bO\bOZ\bZ\bZ\bZE\bE\bE\bE
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
-       you need the cygnus win32 gnu port development stuff; have
-       a look at http://www.cygnus.com/gnu-win32.
+       you need the cygnus windows32 gnu port development stuff;
+       have a look at http://www.cygnus.com/gnu-win32.
 
        to make GNU LilyPond under, brr, aargh, well, simply type:
 
@@ -281,9 +281,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
        GNU LilyPond (pl 0.0.39) is known to compile on the
        following platforms:
 
+       Unix:
+
                * linux 2.0.x, g++ 2.7.2[.1]
                * aix 4.1, g++ 2.7.2
-               * windows-nt 4.0, cygnus gnu-win32 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]
 
 
@@ -320,11 +325,6 @@ A\bA\bA\bAU\bU\bU\bUT\bT\bT\bTH\bH\bH\bHO\bO\bO\bOR\bR\bR\bRS\bS\bS\bS
 
 
 
-
-
-
-
-
-26/May/97                LilyPond 0.0.65                        5
+28/May/97                LilyPond 0.0.66                        5
 
 
diff --git a/NEWS b/NEWS
index a77e57c09e4731f042bc365c44930123d4b9dfd2..cc0f07c3159f89286af350d16f69c68582e7dadd 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,16 @@
+pl 66
+       - make_website --jpeg, --png and --gif
+       - win32 -> windows32
+       - bf: Score_elem::TeXstring assert fail
+       - bf: headswap with stemdown
+       - bf: broken tie
+       - bf: broken slur
+       - bf: accidental dims
+       - bf: measure bar width
+       
+
+******
+may 26
 pl 65
        - bf pathfind /root/file
        - massive Score_elem rewrite:
diff --git a/TODO b/TODO
index 9e657cd02c113f7a42196d0834a5b5ab7b2fa475..5af191f9f2e8aa5f77b86f8e9f78aebe4bf6540a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -22,7 +22,7 @@ IMPORTANT
 
        * decent TeX page layout
 
-       * per-pstaff item-widths [JCN]
+       * per staff item-widths [JCN]
 
        * script priority
 
@@ -59,11 +59,11 @@ PROJECTS
        - trill
        - bracket
 
-       * Rewrite Beam and Rhythmic_grouping (hairy)
+       * Rewrite Stem, Beam and Rhythmic_grouping (hairy)
        - [c8. c32 c32]
        - interbeam height
        - doc on Rhythmic_grouping
-       - general shaving
+       - general shaving on Beam and Stem
        - use plet grouping
        - abbreviations [c2 c2]1/2
        - separate visual from rhythmic info even more
@@ -124,7 +124,10 @@ verplichte regels
 
 ****************
 
+
 BUGS
+       * RPM permissions -> redhat!
+
        * spurious Weird stem size warnings
 
        * staccato dot positions.
@@ -133,8 +136,6 @@ BUGS
 
        * lilypond - -> crash
 
-       * chlapik balk ruimte 
-
        * standchen triool beam up/down
 
 SEVERELY LACKING:
@@ -182,9 +183,7 @@ PROJECTS
 
 SMALLISH PROJECTS
 
-       * handle do_substitute_dependency in more derived classes.
-
-       * replace member access by get()/set() methods, to enable
+       * replace Score_elem member access by get()/set() methods, to enable
        future embedded code.
 
        * --fast/--draft: leave out constraints
@@ -206,7 +205,7 @@ SMALLISH PROJECTS
 
        * adaptive accidental spacing.
 
-       * Score_elem invible_b_ flag
+       * Score_elem invisible_b_ flag
        
        * unix style paths for LILYINCLUDE env
 
@@ -261,7 +260,6 @@ SMALLISH PROJECTS
 
        * detect -pipe
 
-
 DOC
        * Score_elem structure.
 
@@ -287,7 +285,8 @@ FUTURE
 
        * guitar chord
 
-       * Junk Staff_column, and find the requests while walking the Voices.?
+       * Junk Staff_column, and find the requests while walking the
+       Voices.?
 
        * better beamslope calculation: QLP for beams?
 
@@ -299,12 +298,10 @@ FUTURE
 
        * volta
 
-       * piano staff
-
-       * vertical spanner
-
 IDEAS
-       * derive PCol from Score_elem?
+       * check out CORBA for Score_elems?
+
+       * derive PCol from Score_elem? More in Score_elems? Spacing?
 
        * scoping in Lexer: do general id- assignments in mudela.
 
index ce8c6bb7936407ecbfd0538dd462eaa2b95a30f3..f5d540306ef229dc3819afc22defe3323b89d090 100755 (executable)
@@ -2,9 +2,11 @@
 # stupid script to generate WWW site.
 
 use FileHandle;
+use Getopt::Long;
 my $lily_version;
 my $footstr;
 my $mw_id = "<!make_website!>";
+
 sub get_version
 {
     my ($vstr)=("");
@@ -49,8 +51,14 @@ sub my_system
 {
     my (@cmds) = @_;
     foreach $cmd (@cmds) {
+       my ($ignoreret)=0;
+       if ( $cmd  =~ /^-/ ) {
+           $ignoreret = 1;
+           $cmd = substr ($cmd, 1);
+       }
+       
        my $ret =  ( system ($cmd));
-       if ($ret) {
+       if (!$ignoreret && $ret) {
            print STDERR "\nmake_website: failed on command \`$cmd\' (status $ret)\n";
            exit 2;
        }
@@ -68,6 +76,25 @@ sub gen_html
     my_system "make -kC .. html";
 }
 
+sub ps_to_gif 
+{
+    my ($a)=@_;
+    if (! -f "$a.ps" ) {
+       my_system("gunzip -c $a.ps.gz > $a.ps");
+    }
+    my_system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $a.ps -c quit |pnmscale 0.5| ppmtogif > $a.gif";
+}
+
+
+sub ps_to_jpeg
+{ 
+    my ($a)=@_;
+    my $in = "$a.ps";
+    
+    my_system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $in -c quit |pnmscale 0.5| cjpeg -grayscale > $a.jpeg";
+}
+
 sub gen_examples
 {
     print "generating examples: \n";
@@ -82,19 +109,22 @@ sub gen_examples
        if ( ! -f "$a.ly.txt" ) {
            my_system "ln $depth/input/$a.ly ./$a.ly.txt";
        }
-       if ( ! -f "$a.ps.gz" ) {
+       if (! -f "$a.dvi" ) {
            my_system "lilypond $a;",
-           "$tex",
-           "dvips -o $a.ps $texfile;";
-
+           "$tex", "-mv $texfile.dvi $a.dvi";
+       }  
+       if ( ! -f "$a.ps.gz" && ! -f "$a.ps" ) {
+           my_system "dvips -o $a.ps $a.dvi";
        }
 
-       my_system "mv lelie.midi $a.midi; "     if ( -f "lelie.midi" );
+       my_system "mv lelie.midi $a.midi; " if ( -f "lelie.midi" );
 
        # generate the pixmap at twice the size, then rescale (for antialiasing)
        if ( ! -f "$a.gif" ) {
-           my_system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $a.ps -c quit |pnmscale 0.5| ppmtogif > $a.gif",
-            "gzip $a.ps";
+           ps_to_gif($a);
+       }
+       if ( ! -f "$a.ps.gz" ) {
+           my_system "gzip -f $a.ps";
        }   
     }
 }
@@ -119,20 +149,28 @@ sub gen_list
 
        $inputf="$a.ly.txt";
        $giff="$a.gif";
+       $jpegf="$a.jpeg";
+       $pngf = "$a.png";
        $psf="$a.ps.gz";
        $midif="$a.midi";
        
-       print HTMLLIST "<ul>
-<li><a href=$inputf> The input file</a>
-<li><a href=$giff>The output (gif)</a>
-<li><a href=$psf>The output (PS)</a>\n";
+       print HTMLLIST "<ul>";
+
+       print HTMLLIST "<li><a href=$inputf> The input file</a>"
+           if ( -f $inputf );
        
-       print HTMLLIST "<li><a href=$midif>The output (MIDI)</a>\n"
+       print HTMLLIST "<li><a href=$giff>The output (picture)</a>"     
+           if ( -f $giff );
+
+       print HTMLLIST "<li><a href=$psf>The output (PS)</a>\n"
+           if ( -f $psf );
+               
+       print HTMLLIST "<li><a href=$midif>The output (MIDI)</a>\n" 
            if ( -f $midif );
        print HTMLLIST "</ul>";
     }
     print HTMLLIST "</BODY></HTML>";
-       close HTMLLIST;
+    close HTMLLIST;
 }
 
 sub edit_html
@@ -159,13 +197,14 @@ sub edit_html
        my $subst =  $footstr;
        $subst .= $back if (! $a =~ /index.html/ );
        $file =~ s/$sep/$subst$sep/g ;
-       
+       $file =~ s/\.gif/\.$image/g;
        open H, ">$a";
        print H $mw_id;
        print H $file;
        close H;
     }
 }
+
 sub copy_files
 {  
     print "copying files\n";
@@ -175,6 +214,20 @@ sub copy_files
     "cp ../lelie*gif .";
 }
 
+sub set_images
+{
+    for $a (<*.gif>) {
+       if ($opt_png) {
+           my_system "gif2png -d $a";
+       }
+       if ($opt_jpeg) {
+           my $b=$a;
+           $b =~ s/.gif/.jpeg/;
+           my_system "cjpeg -o $b $a";
+       }
+    }
+}
+
 sub docxx_update
 {
     my_system "make -C $depth doc++";
@@ -184,12 +237,23 @@ sub do_tar
 {
      print "tarring.\n";
      my_system
-        " tar vhcf website.tar *.html *.gif *.ps.gz *.txt *.midi docxx/*;",
+        " tar vhcf website.tar *.html *.$image *.ps.gz *.txt *.midi docxx/*;",
         "gzip -f9 website.tar;";
 }
-
+sub identify
+{
+    print STDERR "make_website 0.1\n";
+    
+}
 sub main
 {
+    identify;
+    GetOptions("jpeg", "gif", "png");
+
+    local $image="gif" ;
+    $image = "png" if ($opt_png);
+    $image = "jpeg" if ($opt_jpeg);
+    
     $depth = "../";
     my $cwd;
     chomp($cwd = `pwd`);
@@ -207,10 +271,13 @@ sub main
 
     gen_html;
     gen_examples;
-    gen_list;
     copy_files;
+    set_images;
+    gen_list;
     edit_html;
+
     docxx_update;
     do_tar;
 }
+
 main;
index 1234aa46c797fba720c835d2a77c671da9ce0328..e275cb9db01289e92108214ffd7953f7611f9dea 100644 (file)
@@ -1,6 +1,6 @@
 MAJOR_VERSION = 1
 MINOR_VERSION = 1
-PATCH_LEVEL = 18
+PATCH_LEVEL = 19
 # use to send patches, always empty for released version:
 MY_PATCH_LEVEL = # include separator: "-1" or ".a"
 #
index 23867797db55d4e4a73bf9b3c5611c7621cc354f..050b1356d8ca0e8ca9be8b62ffa7969be41054fb 100644 (file)
@@ -1,4 +1,6 @@
 version 1.1:
+pl 19
+       - Array::reverse()
 
 pl 18
        - Path::find("/usr/..") fix
index 105d96ac27efa58382fcae315b2a1806ef5c0aaa..5fe5fa39434bc85f17cdee8a833584dd38241e32 100644 (file)
@@ -200,6 +200,11 @@ public:
        arrcpy(r.thearray, thearray  + lower, s);
        return r;
     }
+    void reverse() {
+       int h = size_/2;
+       for (int i =0,j = size_-1; i < h; i++,j--)
+           swap(i,j);
+    }
 };
 
 #endif
index 18cc2b5680ed02bb10ad49c7b5728b816968b71c..abcdeab3efe495133fee7906069897139ad232bd 100644 (file)
@@ -84,11 +84,11 @@ table_sixteen=
             "half"     "\hslurchar%{%}"
      }
      "accidentals" = \table {
-            "-2"       "\flatflat"     0\pt    10.2\pt -2.5\pt 7.5\pt
-            "-1"       "\flat"         0\pt    6\pt    -2.5\pt 7.5\pt
-            "0"        "\natural"      0\pt    6\pt    -7.5\pt 7.5\pt
-            "1"        "\sharp"                0\pt    6\pt    -7.5\pt 7.5\pt
-            "2"        "\sharpsharp"   0\pt    6\pt    -2.5\pt 7.5\pt
+            "-2"       "\flatflat"     0\pt    8.16\pt -2.5\pt 7.5\pt
+            "-1"       "\flat"         0\pt    4.8\pt  -2.5\pt 7.5\pt
+            "0"        "\natural"      0\pt    4.8\pt  -7.5\pt 7.5\pt
+            "1"        "\sharp"        0\pt    3.6\pt  -7.5\pt 7.5\pt
+            "2"        "\sharpsharp"   0\pt    4.8\pt  -2.5\pt 7.5\pt
      }
 
      "streepjes" = \table {
index b7c968121e75269fe617fb017b70adb501d22a0a..de91678501b039c30e5e314d9c25f4b509fc4fe0 100644 (file)
@@ -1,6 +1,6 @@
 MAJOR_VERSION = 0
 MINOR_VERSION = 0
-PATCH_LEVEL = 65
+PATCH_LEVEL = 66
 
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
index e838f90ea03c0c8adff09d26b4cd4ba0fdc8b2fd..9fcd49f705344d72828136542b1e0999a6378200 100644 (file)
@@ -46,7 +46,7 @@ Stem_info::Stem_info(Stem const *s)
     x = s->hpos_f();
     int dir = s->dir_i_;
     idealy  = dir * s->stem_end_f();
-    miny = dir * s->stem_start_f();
+    miny = dir * s->stem_start_f() + 2;        // ugh
     assert(miny <= idealy);
 }
 
index 5490345729eb3d7b42432b8aa675c3be36cef849..75b875c6169f4907f5db6ad0fb16875efef3a5d8 100644 (file)
@@ -60,6 +60,8 @@ public:
     PCursor<PCol *> find_col(PCol const *)const;
 
     Link_array<PCol> col_range(PCol *left_l, PCol *right_l) const;
+    Link_array<PCol> breakable_col_range(PCol*,PCol*) const;
+    Link_array<PCol> broken_col_range(PCol*,PCol*) const;
     
     /* MAIN ROUTINES */
     void process();
index bf91890d77dee78491daf405623a6000e9e3104c..6bec375634935a8ca488ffef4f8804a79468318b 100644 (file)
@@ -1,7 +1,7 @@
 /*
   p-score.cc -- implement PScore
 
-  source file of the LilyPond music typesetter
+  source file of the GNU LilyPond music typesetter
 
   (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 #include "lookup.hh"
 #include "spanner.hh"
 #include "paper-def.hh"
-#include "molecule.hh"
-#include "dimen.hh"
 #include "scoreline.hh"
 #include "p-score.hh"
 #include "tex-stream.hh"
-#include "item.hh"
 #include "break.hh"
 #include "p-col.hh"
 
@@ -238,7 +235,23 @@ PScore::process()
     *mlog << "\nPostprocessing elements..." << endl;
     postprocess();
 }
+/** Get all breakable columns between l and r, (not counting l and r).  */
+Link_array<PCol>
+PScore::breakable_col_range(PCol*l,PCol*r)const
+{
+    Link_array<PCol> ret;
+
+    PCursor<PCol*> start(l ? find_col(l)+1 : cols.top() );
+    PCursor<PCol*> stop(r ? find_col(r) : cols.bottom());
+  
+    while ( start < stop ) {
+       if (start->breakable_b())
+           ret.push(start);
+       start++;
+    }
 
+    return ret;
+}
 Link_array<PCol>
 PScore::col_range(PCol*l,PCol*r)const
 {
@@ -252,3 +265,20 @@ PScore::col_range(PCol*l,PCol*r)const
     ret.push(r);
     return ret;
 }
+
+Link_array<PCol>
+PScore::broken_col_range(PCol*l,PCol*r)const
+{
+    Link_array<PCol> ret;
+
+    PCursor<PCol*> start(l ? find_col(l)+1 : cols.top() );
+    PCursor<PCol*> stop(r ? find_col(r) : cols.bottom());
+  
+    while ( start < stop ) {
+       if (start->breakable_b() && !start->line_l_ )
+           ret.push(start);
+       start++;
+    }
+
+    return ret;
+}
index 218a8a7842d80930aad23e43f49ecfa2be6f837e..11ce7936aaaef79e7d6bc1591504237f2fd9acc8 100644 (file)
@@ -340,6 +340,9 @@ Score_elem::handle_broken_dependencies()
     remove_us_arr.uniq();
     for (int i=0;  i <remove_us_arr.size(); i++)
        remove_dependency(remove_us_arr[i]);
+
+    if (status < BROKEN)
+       status = BROKEN;
 }
 
 
index 9b6d75caf10793ce464b7998181fc3c82c33fd94..57f6ab649f43a9cc2203a591fe0de6e59d112afc 100644 (file)
@@ -79,20 +79,29 @@ Slur::do_substitute_dependency(Score_elem*o, Score_elem*n)
 }
 
 
+static int 
+Note_column_compare(Note_column *const&n1 , Note_column* const&n2)
+{
+    return n1->pcol_l_->rank_i() - n2->pcol_l_->rank_i();
+}
+
 void
 Slur::do_post_processing()
 {
+    encompass_arr_.sort(Note_column_compare);
     if (!dir_i_)
        set_default_dir();
     Real inter_f = paper()->internote_f();
-    if (encompass_arr_[0]->stem_l_)
+    
+    if (encompass_arr_[0]->stem_l_) 
         left_pos_i_ = rint(encompass_arr_[0]->stem_l_->height()[dir_i_]/inter_f);
-    else
-        left_pos_i_ = 0;
+    else 
+        left_pos_i_ = rint ( encompass_arr_[0]->head_positions_interval()[dir_i_]);
+    
     if (encompass_arr_.top()->stem_l_)
         right_pos_i_ = rint(encompass_arr_.top()->stem_l_->height()[dir_i_]/inter_f);
-    else
-        right_pos_i_ = 0;
+    else 
+        right_pos_i_ = rint (encompass_arr_.top()->head_positions_interval()[dir_i_]);
 
     left_pos_i_ += dir_i_;
     right_pos_i_ += dir_i_;
index 4c8376ce5a650a303710f8d51ae0823a388cc48b..10ee753e1996544db1e6c4f3b08b510298b1b845 100644 (file)
@@ -17,7 +17,7 @@ void
 Spanner::do_print()const
 {
     if (broken_into_l_arr_.size())
-       mtor << "Spanner with broken pieces\n";
+       mtor << "with broken pieces\n";
 }
 
 void
@@ -25,35 +25,35 @@ Spanner::break_into_pieces()
 {
     PCol * left = left_col_l_;
     PCol * right = right_col_l_;
-    if (left->daddy_l_)
-       left = left->daddy_l_;
-    if (right->daddy_l_)
-       right = right->daddy_l_;
+    if(left->daddy_l_) left = left->daddy_l_;
+    if(right->daddy_l_) right = right->daddy_l_;
     
-    Link_array<PCol> all_cols = pscore_l_->col_range(left, right);
     
-    Line_of_score *line = left->line_l_;
-    if (!line) {
-       left  = left->postbreak_p_;
-       line = left->line_l_;
+    Link_array<PCol> break_cols = pscore_l_->broken_col_range(left,right);
+    Link_array<Spanner> broken_into_l_arr;
+
+    break_cols.insert(left,0);
+    break_cols.push(right);
+
+    for (int i=1; i < break_cols.size(); i++) {
+       Spanner* span_p = clone();
+       left = break_cols[i-1];
+       right = break_cols[i];
+       if (!right->line_l_)
+           right = right->prebreak_p_;
+       if (!left->line_l_)
+           left = left->postbreak_p_;
+
+       assert(left&&right && left->line_l_ == right->line_l_);
+
+       span_p->left_col_l_  = left;
+       span_p->right_col_l_ = right;
+       
+       pscore_l_->typeset_broken_spanner(span_p);
+       broken_into_l_arr.push( span_p );
     }
     
-    for (int i=1; i < all_cols.size(); i++) {
-       if (!all_cols[i]->line_l_) {
-
-           Spanner* span_p = clone();
-           right =  all_cols[i]->prebreak_p_;
-           assert(left&&right && left->line_l_ == right->line_l_);
-
-           span_p->left_col_l_  = left;
-           span_p->right_col_l_ = right;
-           left = all_cols[i]->postbreak_p_;
-           line = left->line_l_;
-           
-           pscore_l_->typeset_broken_spanner(span_p);
-           broken_into_l_arr_.push( span_p );
-       }
-    }
+    broken_into_l_arr_ = broken_into_l_arr;
 }
 
 void
index 33e86f657c8fbb50edc0369fab8be9dfe3513d19..3cd58198b3b34fb82aa332596696e555ee76cbd9 100644 (file)
@@ -112,7 +112,6 @@ Stem::chord_b() const
 }
 
 // if dir_i_ is set we return a fake value.
-
 int
 Stem::get_center_distance()
 {
@@ -173,12 +172,21 @@ Stem::set_default_extents()
        stem_xoffset_f_ = 0;
 }
 
+/*
+  TODO
+  
+  move into note_column.cc
+
+  */
 void
 Stem::set_noteheads()
 {
     if(!head_l_arr_.size())
        return;
     head_l_arr_.sort(Note_head::compare);
+    if (dir_i_ < 0) 
+       head_l_arr_.reverse();
+    
     head_l_arr_[0]->extremal_i_ = -1;
     head_l_arr_.top()->extremal_i_ = 1;
     int parity=1;
index 1bb08d53a4d66779ea2ab97c10da94cc0803cc40..4450e5f0fc7bdb5223271b881df63eaec1370adf 100644 (file)
@@ -2,8 +2,8 @@
 
 Begin3
 Title: LilyPond
-Version: 0.0.65
-Entered-date: 05/23/97
+Version: 0.0.66
+Entered-date: 05/28/97
 Description: LilyPond is a program which converts a music-script (mudela) into
 TeX output, or MIDI to produce multi-staff scores. Features include multiple
 meters, clefs, keys, lyrics, versatile input-language, cadenzas
@@ -13,7 +13,7 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys)
        jan@digicash.com (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: pcnov095.win.tue.nl /pub/lilypond/  
-       300k lilypond-0.0.65.tar.gz
+       300k lilypond-0.0.66.tar.gz
 Alternate-site: 
 Original-site: 
 Platform: unix/win32, GNU C++
index 5c296f9cb8d720a265de571144c5bf23e47be78e..6b06b219e6cb5bea6d554eeeb76d3bc29550f720 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 0.0.65
+Version: 0.0.66
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.65.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.66.tar.gz
 Summary: A preprocessor to make TeX typeset music.
 URL: http://www.stack.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@stack.nl>
index 6eae855c6725e91ee81382cb861f194b62591321..35b7e4df4329a2e7ee90792d9eabe6ad06b8f3ab 100644 (file)
@@ -1,3 +1,6 @@
+%
+% A tex file to help determine dims.
+%
 \font\musicfont=musixsps
 \font\slurfont=xslu16
 \def\thefont{\musicfont}
index a9db1f5fa27d747fc000965bfaffc15d49f12acd..5bc96a07a69374b45019bb89fe4b454d7ebb08bb 100644 (file)
@@ -49,6 +49,7 @@
 \newdimen\noteheight
 \newdimen\notewidthhalf
 \newdimen\notewidthdouble
+\newdimen\notewidthquart
 \newdimen\staffrulethickness
 \newdimen\interstaffrule
 \newdimen\balkhalf
         \interlinedist=\fontdimen5\musicfnt
         \smallspace=.3\interlinedist
         \interstaffrule=\balkhoog
-        \advance\interstaffrule by-\staffrulethickness
         \divide\interstaffrule by 4
-        \advance\interstaffrule by -\staffrulethickness
         \notewidthhalf=\notewidth
+        \notewidthquart=\notewidth
         \notewidthdouble=\notewidth
         \rationalmultiply \notewidthhalf*1/2
+        \rationalmultiply\notewidthquart*1/4
         \multiply \notewidthdouble by 2
-               \balkhalf=\balkhoog
- \rationalmultiply\balkhalf*1/2 
+        \balkhalf=\balkhoog
        \rationalmultiply\balkhalf*1/2 
 }
 
 % dynamics take extra kerning
 
 \def\emptybar{}
 
-\def\thinbar{\vrule height\balkhoog}
+\def\thinbar{\vrule height\balkhoog width0.8pt} % TODO parametric.
 \def\thickbar{\vrule height\balkhoog width 2\smallspace}
 \def\maatstreep{\thinbar}
 
 %? what-s wrong with rightalign?
 \def\finishbar{\rightalign{\thinbar\kern\smallspace\thickbar}}
 
-%%% \def\finishbar{\hss\rightalign{\thinbar\kern\smallspace\thickbar}}
-% \def\repeatstopbar{\rightalign{\repeatcolon\hskip2\smallspace\thinbar\hskip\smallspace\thickbar}}
-
 \def\repeatstopbar{\hss\rightalign{\repeatcolon\hskip2\smallspace\thinbar\hskip\smallspace\thickbar}}
 \def\repeatstartbar{\hbox{\thickbar\kern\smallspace\thinbar\kern2\smallspace\repeatcolon}}
 \def\repeatstopstart{\hbox{\repeatcolon\kern2\smallspace\thinbar\kern\smallspace\thickbar\kern\smallspace\thickbar\kern\smallspace\thinbar\kern2\smallspace\repeatcolon}}
         \n=0\nointerlineskip%
         \loop\ifnum\n<#1\advance\n by1%
                 \kern\interstaffrule
-                \hrule height \staffrulethickness width#2
+                \nointerlineskip
+                \vbox to 0pt{\hrule height \staffrulethickness width#2%
+                        \vss}\nointerlineskip
                 \repeat
         }}
 
+%%
+% Ugh. Need to redo this. Wish we had PS.
+%
 \def\toplines#1{ % why space needed here?
         \topalign{\hbox{\kern-\notewidth\lines{#1}{\notewidthdouble}}}}
+
 \def\botlines#1{ % idem ditto
         \botalign{\hbox{\kern-\notewidth\lines{#1}{\notewidthdouble}}}}