]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.1.62
authorfred <fred>
Sun, 24 Mar 2002 20:11:32 +0000 (20:11 +0000)
committerfred <fred>
Sun, 24 Mar 2002 20:11:32 +0000 (20:11 +0000)
Documentation/INSTALL.pod
Documentation/index.pod
Documentation/topweb.pod [new file with mode: 0644]
NEWS
lily/break.cc
lily/include/spring-spacer.hh
lily/separating-group-spanner.cc
lily/spring-spacer.cc
lily/stem-info.cc

index a52cccadc72c41a74842d2618e3887a29c5b94eb..093db58f920638b2bcaf40ee91f94c8e94b0dad8 100644 (file)
@@ -173,11 +173,15 @@ Set the directory where TeX and Metafont live
 
 =item B<--enable-tex-dir>
 
-Set then directory TeX input is in (detected as a subdir of tex-prefix)
+Set then directory TeX input is in (detected as a subdir of
+tex-prefix).  This should be a directory that is reachable both for
+tex and latex.  On my system the best choice would be
+F</usr/lib/texmf/texmf/tex/generic//>.
 
 =item B<--enable-mf-dir>
 
-Set the directory mf input is in (idem)
+Set the directory mf input is in (idem).   On my system the best
+choice would be F</usr/lib/texmf/texmf/fonts/source/public/>.
 
 =item B<--enable-config>
 
@@ -273,11 +277,15 @@ Please refer to the man page for more information.
 
 =head1 REDHAT LINUX
 
-RedHat Linux users should be able to get a RPM. A spec file is in
-F<make/out/lilypond.spec>. You should be able to create an rpm as a
-normal user. Be sure you have a F<~/.rpmrc>, and edit the RPM-dir in
-F<Variables.make>. (If you create the RPM as a normal user the
-permissions will not be set correctly, unfortunately)
+RedHat Linux users can compile an RPM. A spec file is in
+F<make/out/lilypond.spec>.  You should install a gif file called
+F<lelie_icon.gif> along with the sources.  You can generate this gif
+file by typing
+
+     make gifs
+
+in the directory F<Documentation>.
+
 
 
 =head1 DEBIAN GNU/LINUX
index 573226533c2a8883c96c183a78c1f3eb8540ee6c..8b6ddc24d73590d67a879213cc9edf8d6a5825f0 100644 (file)
@@ -1,58 +1,13 @@
 =head1 NAME
 
-The Homepage of LilyPond -- the GNU Project music typesetter
+The Documentation of LilyPond -- the GNU Project music typesetter
 
 =head1 DESCRIPTION
 
-LilyPond is the GNU Project music typesetter.  It generates visual or
-auditive output from a music definition file: it can typeset formatted
-sheet music to a TeX file and play (mechanical) performances to a MIDI
-file.
-
-This is not a Fanmail/Hype page. These pages were entirely created from
-the LilyPond package-sources. 
-
 Note: These pages are created from the latest B<development snapshots>
 of LilyPond.  You can look at the bottom if you want to know which
 version this was.
 
-=head2 Mirrors
-
-=over 4
-
-=item http://sca.uwaterloo.ca/lilypond/
-
-Eric Praetzel was kind enough to provide a mirror of both the website
-and the ftp site.  
-
-=back
-
-=head2 Examples
-
-=over 4
-
-=item *
-<a href=examples_output.html
->
-short examples of what LilyPond can do: MIDI, PS, .gif and input.
-</a
->
-
-=item *
-<a href=mutopiaexamples_output.html 
->
-examples of what LilyPond can do
-with real music: MIDI, PS, .gif and input 
-</a
->
-
-=back
-
-=head2 NEWS! 
-
-This is what the latest version brings:
-
-top_of_NEWS
 
 =head2 Documentation: Introduction
 
@@ -139,7 +94,7 @@ The lilypond logo (medium size, format: .gif)
 =item *
 <a href=../tex/out-www/index.html
 >
-PS documents about LilyPond
+TeX documents about LilyPond
 </a
 >
 
@@ -187,7 +142,7 @@ The coding standards of the lilypond project.
 =item *
 <a href=docxx/index.html
 >
-The DOC++ documentation of the C++ sources.
+The DOC++ documentation of the C++ sources. [temporarily disabled]
 </a
 >
 
@@ -226,12 +181,6 @@ B<download> LilyPond and other interesting links
 >
 
 
-=item *
-<a href=sconstat/stats.html
->
-Stats on this page. [temporarily out of order]
-</a
->
 
 =back
 
diff --git a/Documentation/topweb.pod b/Documentation/topweb.pod
new file mode 100644 (file)
index 0000000..e917dc6
--- /dev/null
@@ -0,0 +1,72 @@
+=head1 NAME
+
+The Homepage of LilyPond -- the GNU Project music typesetter
+
+=head1 DESCRIPTION
+
+LilyPond is the GNU Project music typesetter.  This program can print
+beautiful sheet music from a music definition file.  It can also play
+a play (mechanical) performances to a MIDI file.  Features include
+multiple staffs, meters, clefs, keys, lyrics, versatile
+input-language, cadenzas, beams, slurs, triplets.  It includes a nice
+font of musical symbols.
+
+This is not a Fanmail/Hype page. These pages were entirely created from
+the LilyPond package-sources. 
+
+Note: These pages are created from the latest B<development snapshots>
+of LilyPond.  You can look at the bottom if you want to know which
+version this was.
+
+=head2 Mirrors
+
+=over 4
+
+=item http://sca.uwaterloo.ca/lilypond/
+
+Eric Praetzel was kind enough to provide a mirror of both the website
+and the ftp site.  
+
+=back
+
+=head2 Examples
+
+=over 4
+
+=item *
+<a href=../input/out-www/index.html
+>
+short examples of what LilyPond can do: MIDI, PS, .gif and input.
+</a
+>
+
+=item *
+<a href=../mutopia/out-www/index.html
+>
+examples of what LilyPond can do
+with real music: MIDI, PS, .gif and input 
+</a
+>
+
+=back
+
+=head2 NEWS! 
+
+This is what the latest version brings:
+
+top_of_NEWS
+
+=head2 Documentation: Introduction
+
+=over 4
+
+=item *
+<a href=../Documentation/out-www/index.html
+>
+All of the LilyPond documentation.
+</a
+>
+
+
+
+=back
diff --git a/NEWS b/NEWS
index 51026e6884ac1f94c3dfce01c5d94300ca292ce6..cd3c31277ce804380740067454ca43512e88c42e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,59 @@
+pl 62
+       - no-touch hak.
+       - bfs: multi measure rests
+       - fixed the website.
+       - add extra space after breakable columns.
+
+
+pl 61.jcn8
+       - mudela relative octave feature: 
+         * Documentation/relative-octaves.pod
+         * \octave relative;
+         * lilypond -f for automatically finding new relative quote positions
+           (sorry, fully automated convert is too complex)
+         * mutopia/ltor.ly: octave quotes reduced from 511 to 59
+       - better conflily
+       - bf: abbreviation-beam-engraver: set beam::multiple_i_
+       - bf: open_abbrev_parens
+       - dotted/dashed slurs/ties
+       - fixed-up scsii-menuetto; use dotted-slurs
+       - slur_thickness runtime
+       - bf: typo lilyponddefs: elevendefs
+       - moved hard-coded slur parameters to runtime
+       - make-patch -r: diff against latest release
+       - allow semicolons after paper_identifier and \include
+       - params.ly: parameterised some paper vars
+       - bf: beam quantise for slope = 0
+       - interbeam (mult>3) open-up to paper-def to paper!
+       - "implemented" Paper-def::staffheight
+       - simplification + bf bezier clipping
+       - vandale fix
+       - moved doco from paper*ly to fonts.doc
+       - papers with expressions
+       - paper20.ly: rewrote precalculated values as expressions
+       - simple expressions in mudela (paper-body only)
+       - beam_thickness centralised and run-time...
+       - \nobreak
+       - bf: beamquantise: never sit if mult > 1
+       - bf: broken slur y-offset (not!)
+       - pagelength hack in tex/headers
+       - alignment of bracket (in span-score-bar.cc)
+       - boolean *break_b to continue break_penalty_i; maar nu...
+       - removed paper20 includes, \paper_twenty from examples
+       - dropped latex files
+       - renamed standje, standchen.
+       - parser accepts range of mudela-versions
+       - Mudela_version
+       - String_convert::split
+       - bf's: los-toros-oboe
+       - braindead Break_req with penalty; junked Disallow_break_req and 
+         Break_force_req 
+       
+pl 61.ag1
+       - implemented octave-shifted clefs.
+
+********
+
 pl 61
        - bf: mudela-book error msgs
        - don't dist feta-tables.
index f25ac5e32f29d1c27a3819ffd888851440981b06..42db7970f51e5e5295634657435eaffac54bfab3 100644 (file)
@@ -9,15 +9,17 @@
 #include "score-column.hh"
 #include "break.hh"
 #include "paper-def.hh"
-#include "line-spacer.hh"
+#include "spring-spacer.hh"
 #include "debug.hh"
 #include "scoreline.hh"
 #include "p-score.hh"
 #include "p-col.hh"
 #include "cpu-timer.hh"
+#include "command-request.hh"
 
 String
-Col_stats::str () const {
+Col_stats::str () const
+{
   String s (count_i_);
   s += _ (" lines");
   if  (count_i_)
@@ -98,7 +100,7 @@ Break_algorithm::find_breaks () const
 Line_spacer*
 Break_algorithm::generate_spacing_problem (Line_of_cols curline, Interval line) const
 {
-  Line_spacer * sp= (*get_line_spacer) ();
+  Spring_spacer * sp= (Spring_spacer*) (*get_line_spacer) (); // ugh
 
   sp->paper_l_ = pscore_l_->paper_l_;
   sp->add_column (curline[0], true, line.min ());
@@ -106,7 +108,10 @@ Break_algorithm::generate_spacing_problem (Line_of_cols curline, Interval line)
     sp->add_column (curline[i]);
 
   if (line.length () > 0)
-    sp->add_column (curline.top (), true, line.max ());
+    {
+      sp->add_column (curline.top (), true, line[RIGHT]);
+      sp->energy_normalisation_f_  = sqr (line.length ());
+    }
   else
     sp->add_column (curline.top ());
 
@@ -138,7 +143,7 @@ Break_algorithm::feasible (Line_of_cols curline) const
   for (int i=0; i < curline.size (); i++)
     {
       if (i && i < curline.size () -1
-         && ((Score_column*)curline[i])->forced_break_b ())
+         && (((Score_column*)curline[i])->break_penalty_i () >= Break_req::FORCE))
        return false;
     }
   return true;
index ea94a97c6869b62f32e5eb95a22e601756752111..609fb666d6e6da6d4c18081bd0775678955edc67 100644 (file)
@@ -45,6 +45,7 @@
 
 class Spring_spacer : public Line_spacer {
   friend class Durations_iter;
+  
     
   Pointer_list<Idealspacing *> ideal_p_list_;
   Array<Colinfo> cols_;
@@ -83,7 +84,8 @@ class Spring_spacer : public Line_spacer {
   Real calculate_energy_f (Vector) const;
 public:
   static Line_spacer *constructor();
-
+  Real energy_normalisation_f_;
+  Spring_spacer ();
   virtual void solve (Col_hpositions*) const;
   virtual void lower_bound_solution (Col_hpositions*) const;
   virtual void add_column (Paper_column  *, bool fixed=false, Real fixpos=0.0);
index 3361dadc554300bd23a7556fb351c90b5910671f..7ff3fca4819139019ba59af15b914eeba64e6117 100644 (file)
@@ -10,6 +10,7 @@
 #include "separating-group-spanner.hh"
 #include "single-malt-grouping-item.hh"
 #include "p-col.hh"
+#include "paper-def.hh"
 
 Array<Rod>
 Separating_group_spanner::get_rods () const
@@ -22,9 +23,11 @@ Separating_group_spanner::get_rods () const
       bool lb =spacing_unit_l_arr_[i]->column_l ()->breakable_b_;
       if (lb)
        {
-         a.push (Rod ((Single_malt_grouping_item*)
+         Rod r((Single_malt_grouping_item*)
                       spacing_unit_l_arr_[i]->find_prebroken_piece (RIGHT),
-                      spacing_unit_l_arr_[i+1]));
+                      spacing_unit_l_arr_[i+1]);
+         r.distance_f_ += paper ()->interline_f () *1.5;
+         a.push (r);
        }
       bool rb=spacing_unit_l_arr_[i+1]->column_l ()->breakable_b_;
       if (rb)
@@ -35,10 +38,12 @@ Separating_group_spanner::get_rods () const
        }
       if (lb && rb)
        {
-         a.push (Rod ((Single_malt_grouping_item*)
+         Rod r((Single_malt_grouping_item*)
                       spacing_unit_l_arr_[i]->find_prebroken_piece (RIGHT),
                       (Single_malt_grouping_item*)
-                      spacing_unit_l_arr_[i+1]->find_prebroken_piece (LEFT)));
+                      spacing_unit_l_arr_[i+1]->find_prebroken_piece (LEFT));
+         r.distance_f_ += paper ()->interline_f () *1.5;
+         a.push (r);
        }
        
     }
index ac4b00b623d9118898dbb38ce321f5f38a254c1f..3855777a58411d0e884eea81d220460d5d44ce1c 100644 (file)
@@ -317,6 +317,11 @@ Spring_spacer::lower_bound_solution (Col_hpositions*positions) const
   positions->satisfies_constraints_b_ = check_constraints (solution_vec);
 }
 
+Spring_spacer::Spring_spacer ()
+{
+  energy_normalisation_f_ = 1.0;
+}
+
 void
 Spring_spacer::solve (Col_hpositions*positions) const
 {
@@ -340,7 +345,7 @@ Spring_spacer::solve (Col_hpositions*positions) const
          WARN << _("solution doesn't satisfy constraints.\n") ;
        }
       position_loose_cols (solution_vec);
-      positions->energy_f_ = calculate_energy_f (solution_vec);
+      positions->energy_f_ = calculate_energy_f (solution_vec) / energy_normalisation_f_;
       positions->config = solution_vec;
       positions->error_col_l_arr_ = error_pcol_l_arr();
     }
index 11990ea3e7e08e3f69f4ef4201244cc46b15c73e..d109e96e8062e39faf03ae7958441fc4e21e0086 100644 (file)
@@ -28,8 +28,8 @@ Stem_info::Stem_info (Stem const *s)
   mult_i_ = s->mult_i_;
 
   /*
-    [todo] 
-    * get algorithm runtime
+    [TODO]
+    make this runtime
 
     Breitkopf + H\"artel:
     miny_f_ = interline + #beams * interbeam
@@ -45,18 +45,16 @@ Stem_info::Stem_info (Stem const *s)
 
   Real internote_f = s->paper ()->internote_f ();
   Real interline_f = 2.0 * internote_f;
-  Real interbeam_f = s->paper ()->interbeam_f ();
-  Real staffline_f = s->paper ()->rule_thickness ();
-  Real beam_f = 0.48 * (interline_f - staffline_f);
+  Real interbeam_f = s->paper ()->interbeam_f (mult_i_);
+  Real beam_f = s->paper ()->beam_thickness_f ();
          
-  if (check_debug && !monitor->silent_b ("Stem_info"))
-    {
+
+  {
       static int i = 1;
-      cout << "******" << i++ << "******" << endl;
-      cout << "begin_f: " << s->stem_begin_f () * dir_ << endl;
-      // urg urg urg
-      cout << "chord_f/i: " << s->chord_start_f () * dir_ / internote_f << endl;
-    }
+      DOUT << "******" << i++ << "******\n" 
+          << "begin_f: " << s->stem_begin_f () * dir_ 
+          << "\nchord_f/i: " << s->chord_start_f () * dir_ / internote_f << '\n';
+  }
 
   /*
     For simplicity, we'll assume dir = UP and correct if 
@@ -84,13 +82,12 @@ Stem_info::Stem_info (Stem const *s)
   idealy_f_ /= internote_f;
   miny_f_ /= internote_f;
 
-  if (check_debug && !monitor->silent_b ("Stem_info"))
-    {
-      cout << "dir_: " << dir_ << endl;
-      cout << "mult_i_: " << mult_i_ << endl;
-      cout << "idealy_f_: " << idealy_f_ << endl;
-      cout << "miny_f_: " << miny_f_ << endl;
-    }
+
+  DOUT << "dir_: " << dir_ << '\n';
+  DOUT << "mult_i_: " << mult_i_ << '\n';
+  DOUT << "idealy_f_: " << idealy_f_ << '\n';
+  DOUT << "miny_f_: " << miny_f_ << '\n';
+
 
   idealy_f_ = miny_f_ >? idealy_f_;
 }