From b3a75d750e4787c6ad1b0ded513cf056d75c9fdf Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 20:11:32 +0000 Subject: [PATCH] lilypond-0.1.62 --- Documentation/INSTALL.pod | 22 ++++++---- Documentation/index.pod | 57 ++----------------------- Documentation/topweb.pod | 72 ++++++++++++++++++++++++++++++++ NEWS | 56 +++++++++++++++++++++++++ lily/break.cc | 15 ++++--- lily/include/spring-spacer.hh | 4 +- lily/separating-group-spanner.cc | 13 ++++-- lily/spring-spacer.cc | 7 +++- lily/stem-info.cc | 35 +++++++--------- 9 files changed, 190 insertions(+), 91 deletions(-) create mode 100644 Documentation/topweb.pod diff --git a/Documentation/INSTALL.pod b/Documentation/INSTALL.pod index a52cccadc7..093db58f92 100644 --- a/Documentation/INSTALL.pod +++ b/Documentation/INSTALL.pod @@ -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. =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. =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. 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. (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. You should install a gif file called +F along with the sources. You can generate this gif +file by typing + + make gifs + +in the directory F. + =head1 DEBIAN GNU/LINUX diff --git a/Documentation/index.pod b/Documentation/index.pod index 573226533c..8b6ddc24d7 100644 --- a/Documentation/index.pod +++ b/Documentation/index.pod @@ -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 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 * - -short examples of what LilyPond can do: MIDI, PS, .gif and input. - - -=item * - -examples of what LilyPond can do -with real music: MIDI, PS, .gif and input - - -=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 * -PS documents about LilyPond +TeX documents about LilyPond @@ -187,7 +142,7 @@ The coding standards of the lilypond project. =item * -The DOC++ documentation of the C++ sources. +The DOC++ documentation of the C++ sources. [temporarily disabled] @@ -226,12 +181,6 @@ B LilyPond and other interesting links > -=item * - -Stats on this page. [temporarily out of order] - =back diff --git a/Documentation/topweb.pod b/Documentation/topweb.pod new file mode 100644 index 0000000000..e917dc6780 --- /dev/null +++ b/Documentation/topweb.pod @@ -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 +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 * + +short examples of what LilyPond can do: MIDI, PS, .gif and input. + + +=item * + +examples of what LilyPond can do +with real music: MIDI, PS, .gif and input + + +=back + +=head2 NEWS! + +This is what the latest version brings: + +top_of_NEWS + +=head2 Documentation: Introduction + +=over 4 + +=item * + +All of the LilyPond documentation. + + + + +=back diff --git a/NEWS b/NEWS index 51026e6884..cd3c31277c 100644 --- 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. diff --git a/lily/break.cc b/lily/break.cc index f25ac5e32f..42db7970f5 100644 --- a/lily/break.cc +++ b/lily/break.cc @@ -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; diff --git a/lily/include/spring-spacer.hh b/lily/include/spring-spacer.hh index ea94a97c68..609fb666d6 100644 --- a/lily/include/spring-spacer.hh +++ b/lily/include/spring-spacer.hh @@ -45,6 +45,7 @@ class Spring_spacer : public Line_spacer { friend class Durations_iter; + Pointer_list ideal_p_list_; Array 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); diff --git a/lily/separating-group-spanner.cc b/lily/separating-group-spanner.cc index 3361dadc55..7ff3fca481 100644 --- a/lily/separating-group-spanner.cc +++ b/lily/separating-group-spanner.cc @@ -10,6 +10,7 @@ #include "separating-group-spanner.hh" #include "single-malt-grouping-item.hh" #include "p-col.hh" +#include "paper-def.hh" Array 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); } } diff --git a/lily/spring-spacer.cc b/lily/spring-spacer.cc index ac4b00b623..3855777a58 100644 --- a/lily/spring-spacer.cc +++ b/lily/spring-spacer.cc @@ -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(); } diff --git a/lily/stem-info.cc b/lily/stem-info.cc index 11990ea3e7..d109e96e80 100644 --- a/lily/stem-info.cc +++ b/lily/stem-info.cc @@ -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_; } -- 2.39.5