From: Han-Wen Nienhuys Date: Fri, 12 Dec 1997 12:26:08 +0000 (+0100) Subject: release: 0.1.37 X-Git-Tag: release/0.1.37 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=38dcc7f0775e8332ebfadacb7b8fd931480a4cc9;p=lilypond.git release: 0.1.37 --- diff --git a/AUTHORS.text b/AUTHORS.text index 36f05e91fe..d3ff5f02c8 100644 --- a/AUTHORS.text +++ b/AUTHORS.text @@ -61,6 +61,6 @@ CCCCOOOONNNNTTTTRRRRIIIIBBBBUUUUTTTTOOOORRRRSS -25/Nov/97 LilyPond 0.1.36 1 +25/Nov/97 LilyPond 0.1.37 1 diff --git a/Documentation/lilypond.pod b/Documentation/lilypond.pod index 0dc1ea97ca..fdee220387 100644 --- a/Documentation/lilypond.pod +++ b/Documentation/lilypond.pod @@ -61,6 +61,10 @@ Add F to the search path for input files. Make incompatible mudela version non-fatal. +=item B<--postscript, -p>, + +Try to use PostScript where possible. + =back =head1 FEATURES diff --git a/Documentation/mudela-course.doc b/Documentation/mudela-course.doc index 09f2229bd8..f6ab5083eb 100644 --- a/Documentation/mudela-course.doc +++ b/Documentation/mudela-course.doc @@ -7,6 +7,7 @@ \usepackage{a4wide} \title{Mudela and LilyPond crash course} \author{Han-Wen Nienhuys} +\date{October 20, 1997} \def\file#1{{\texttt{#1}}} \begin{document} @@ -134,6 +135,8 @@ is used. The improved version reads thus +FIXME rewrite starting here. + \begin[verbatim]{mudela} \score { \melodic { % {...} is a voice diff --git a/Documentation/mudela-man.doc b/Documentation/mudela-man.doc index 498ba8b756..6dc1cd805f 100644 --- a/Documentation/mudela-man.doc +++ b/Documentation/mudela-man.doc @@ -7,6 +7,7 @@ \usepackage{a4wide} \title{GNU LilyPond input format 0.1} \author{Han-Wen Nienhuys} +\date{October 8, 1997} \begin{document} \maketitle diff --git a/INSTALL.text b/INSTALL.text index d5dfe08175..4fa1c20dfd 100644 --- a/INSTALL.text +++ b/INSTALL.text @@ -61,7 +61,7 @@ RRRRUUUUNNNNNNNNIIIINNNNGGGG -2/Dec/97 LilyPond 0.1.36 1 +2/Dec/97 LilyPond 0.1.37 1 @@ -127,7 +127,7 @@ CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRIIIINNNNGGGG a -2/Dec/97 LilyPond 0.1.36 2 +2/Dec/97 LilyPond 0.1.37 2 @@ -193,7 +193,7 @@ INSTALL(1) LilyPond documentation INSTALL(1) -2/Dec/97 LilyPond 0.1.36 3 +2/Dec/97 LilyPond 0.1.37 3 @@ -259,7 +259,7 @@ IIIINNNNSSSSTTTTAAAALLLLLLLLIIIINNNNGGGG -2/Dec/97 LilyPond 0.1.36 4 +2/Dec/97 LilyPond 0.1.37 4 @@ -325,7 +325,7 @@ RRRREEEEDDDDHHHHAAAATTTT LLLLIIIINNNNUUUUXXXX -2/Dec/97 LilyPond 0.1.36 5 +2/Dec/97 LilyPond 0.1.37 5 @@ -391,6 +391,6 @@ AAAAUUUUTTTTHHHHOOOORRRRSSSS -2/Dec/97 LilyPond 0.1.36 6 +2/Dec/97 LilyPond 0.1.37 6 diff --git a/NEWS b/NEWS index 6c64843b1e..5f13289344 100644 --- a/NEWS +++ b/NEWS @@ -1,11 +1,16 @@ -pl 36.jcn2 - - mf numerals beautify: 2, 5, 7 +pl 37 + - --postscript + - don't crash non-fitting grouping (thx, John) + - attach unended spanners to a column (thanks John) + - bf: unended tie + - bf: tie direction + - bf: unended slur -pl 36.jcn1 - - mf numerals: - * small numerals wider and fatter - * bf: no thinner lines than blot_diameter - * several bf's: dims and parameterisations +pl 36.jcn2 + - feta: small numerals + +******** +dec 9 pl 36 - bf: notehead collisions diff --git a/TODO b/TODO index 1d54876a95..4a10ab8b8c 100644 --- a/TODO +++ b/TODO @@ -7,10 +7,17 @@ Most of the items are marked in the code as well, with full explanation. grep for TODO and ugh/ugr 0.2: + * unended beam: [c4 + + * output naming: + - default to basename[-serialnumber].{midi,tex} + * handle ^C for tmp/file creation. * PS for beams. + * dots & rest collisions. + * add a screenshot to the website. :) * fix stdin input diff --git a/VERSION b/VERSION index 8bba2b5c9f..f9754fe8f7 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ TOPLEVEL_MAJOR_VERSION = 0 TOPLEVEL_MINOR_VERSION = 1 -TOPLEVEL_PATCH_LEVEL = 36 -TOPLEVEL_MY_PATCH_LEVEL = jcn2 +TOPLEVEL_PATCH_LEVEL = 37 +TOPLEVEL_MY_PATCH_LEVEL = # use the above to send patches, always empty for released version: # please don't move these comments up; the patch should fail if diff --git a/bin/make-website.pl b/bin/make-website.pl index 2f177c29b2..2159716e96 100644 --- a/bin/make-website.pl +++ b/bin/make-website.pl @@ -297,6 +297,7 @@ sub docxx_update print BANNER $ban; close BANNER; my_system("BANNEROPT=\"-B /tmp/lilybanner.html\" $depth/bin/out/make-docxx"); + unlink "/tmp/lilybanner.html"; } sub do_tar @@ -313,6 +314,12 @@ sub identify print STDERR "This is " . $id_str . "\n"; } +sub clean_tmp +{ + @a = ; + unlink @a; +} + sub main { identify; @@ -352,6 +359,7 @@ sub main edit_index; docxx_update; do_tar; + clean_tmp; } main; diff --git a/init/feta16.ly b/init/feta16.ly index 9dcbbef890..303b8a167b 100644 --- a/init/feta16.ly +++ b/init/feta16.ly @@ -1,5 +1,5 @@ % Creator: mf-to-table.py version 0.4 -% Automatically generated on Fri Dec 12 01:52:34 1997 +% Automatically generated on Fri Dec 12 11:29:20 1997 % Do not edit % input from out/feta16.log % name=\symboltables { diff --git a/init/feta20.ly b/init/feta20.ly index 6e5c7b2bef..44f58ca163 100644 --- a/init/feta20.ly +++ b/init/feta20.ly @@ -1,5 +1,5 @@ % Creator: mf-to-table.py version 0.4 -% Automatically generated on Fri Dec 12 01:52:57 1997 +% Automatically generated on Fri Dec 12 11:29:22 1997 % Do not edit % input from out/feta20.log % name=\symboltables { diff --git a/input/font.ly b/input/font.ly index c2f1d25ef4..f7fc274752 100644 --- a/input/font.ly +++ b/input/font.ly @@ -42,8 +42,10 @@ TestedFeatures = "This file tests the Feta music-font" \meter 4/4; \textstyle "finger"; c4^"1" d^"2" e^"3" f^"4" g^"5" - < bes4^"1" e_"2" c_"4" > - a'^"0" + + % Music for the Martians? + < bes4^"6" e_"7" c_"8" > + a'^"0"_"9" % ugh, \flageolet is like open, but maybe a perfect circle a^\open diff --git a/lily/VERSION b/lily/VERSION index 405b4d4906..fe8619c0cc 100644 --- a/lily/VERSION +++ b/lily/VERSION @@ -1,4 +1,4 @@ MAJOR_VERSION = 0 MINOR_VERSION = 1 -PATCH_LEVEL = 36 +PATCH_LEVEL = 37 MY_PATCH_LEVEL = diff --git a/lily/beam-grav.cc b/lily/beam-grav.cc index 6df1fc6e7f..c86597b17e 100644 --- a/lily/beam-grav.cc +++ b/lily/beam-grav.cc @@ -14,12 +14,14 @@ #include "grouping.hh" #include "text-spanner.hh" #include "text-def.hh" +#include "p-col.hh" Beam_engraver::Beam_engraver() { span_reqs_drul_[LEFT] = span_reqs_drul_[RIGHT] =0; beam_p_ =0; current_grouping_p_ =0; + plet_spanner_p_ =0; } bool @@ -53,15 +55,18 @@ Beam_engraver::do_process_requests() beam_p_ = new Beam; if (span_reqs_drul_[LEFT]->nplet) { - Text_spanner* t = new Text_spanner(); + plet_spanner_p_ = new Text_spanner(); Text_def *defp = new Text_def; - t->set_support (beam_p_); + plet_spanner_p_->set_support (beam_p_); + + // ugh + plet_spanner_p_->set_bounds (LEFT, get_staff_info ().command_pcol_l ()); + defp->align_i_ = 0; defp->text_str_ = span_reqs_drul_[LEFT]->nplet; defp->style_str_="italic"; - t->spec_p_ = defp; - announce_element (Score_elem_info (t,0)); - typeset_element (t); + plet_spanner_p_->spec_p_ = defp; + announce_element (Score_elem_info(plet_spanner_p_,0)); } announce_element (Score_elem_info (beam_p_, span_reqs_drul_[LEFT])); } @@ -70,19 +75,25 @@ Beam_engraver::do_process_requests() void Beam_engraver::do_pre_move_processing() { - if (beam_p_ && span_reqs_drul_[RIGHT]) { - Rhythmic_grouping const * rg_C = get_staff_info().rhythmic_C_; - rg_C->extend (current_grouping_p_->interval()); - beam_p_->set_grouping (*rg_C, *current_grouping_p_); - typeset_element (beam_p_); - beam_p_ = 0; - - delete current_grouping_p_; - current_grouping_p_ = 0; - - span_reqs_drul_[RIGHT] = - span_reqs_drul_[LEFT] = 0; - } + if (beam_p_ && span_reqs_drul_[RIGHT]) + { + Rhythmic_grouping const * rg_C = get_staff_info().rhythmic_C_; + rg_C->extend (current_grouping_p_->interval()); + beam_p_->set_grouping (*rg_C, *current_grouping_p_); + typeset_element (beam_p_); + beam_p_ = 0; + + delete current_grouping_p_; + current_grouping_p_ = 0; + + span_reqs_drul_[RIGHT] = + span_reqs_drul_[LEFT] = 0; + if (plet_spanner_p_) + { + typeset_element (plet_spanner_p_); + plet_spanner_p_ =0; + } + } } void @@ -114,11 +125,23 @@ Beam_engraver::acknowledge_element (Score_elem_info i) /* TODO: do something sensible if it doesn't fit in the beam. */ - current_grouping_p_->add_child (get_staff_info().time_C_->whole_in_measure_, - rhythmic_req->duration ()); - s->flag_i_ = rhythmic_req->duration_.durlog_i_; - beam_p_->add (s); -} + Moment start = get_staff_info().time_C_->whole_in_measure_; + if (!current_grouping_p_->child_fit_b (start)) + { + String s (_("please fix me: Stem at ") + + String(now_moment ()) + _(" does not fit in beam")); + if (i.req_l_) + i.req_l_->warning(s); + else + warning (s); + } + else + { + current_grouping_p_->add_child (start, rhythmic_req->duration ()); + s->flag_i_ = rhythmic_req->duration_.durlog_i_; + beam_p_->add (s); + } +} IMPLEMENT_IS_TYPE_B1(Beam_engraver, Engraver); ADD_THIS_TRANSLATOR(Beam_engraver); diff --git a/lily/directional-spanner.cc b/lily/directional-spanner.cc index 62ab05f8b4..c21d4a274b 100644 --- a/lily/directional-spanner.cc +++ b/lily/directional-spanner.cc @@ -10,7 +10,7 @@ void Directional_spanner::do_pre_processing() { if (!dir_) - set_default_dir(); + set_default_dir(); } Directional_spanner::Directional_spanner() diff --git a/lily/dynamic-grav.cc b/lily/dynamic-grav.cc index 62dec7ba99..b451af045e 100644 --- a/lily/dynamic-grav.cc +++ b/lily/dynamic-grav.cc @@ -132,12 +132,13 @@ Dynamic_engraver::do_removal_processing () if (cresc_p_) { typeset_element (cresc_p_ ); + + cresc_req_l_->warning (_("unended crescendo")); cresc_p_ =0; } if (to_end_cresc_p_) { typeset_element (to_end_cresc_p_); - cresc_req_l_->warning (_("unended crescendo")); to_end_cresc_p_ =0; } if (dynamic_p_) diff --git a/lily/grouping.cc b/lily/grouping.cc index 2c073adc63..dfc59748e8 100644 --- a/lily/grouping.cc +++ b/lily/grouping.cc @@ -262,7 +262,6 @@ void Rhythmic_grouping::add_child (Moment start, Moment len) { Moment stop = start+len; - assert (child_fit_b (start)); children.push (new Rhythmic_grouping (MInterval (start, stop))); } diff --git a/lily/include/beam-grav.hh b/lily/include/beam-grav.hh index 81b68adfc1..027fd92679 100644 --- a/lily/include/beam-grav.hh +++ b/lily/include/beam-grav.hh @@ -20,6 +20,7 @@ class Beam_engraver : public Engraver { Drul_array span_reqs_drul_; Beam *beam_p_; + Text_spanner *plet_spanner_p_; Rhythmic_grouping *current_grouping_p_; public: diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index 34059b4447..42be8366c2 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -211,6 +211,7 @@ struct Text_gob; struct Text_item ; struct Text_engraver; struct Text_req; +struct Text_spanner; struct Tie; struct Tie_engraver; struct Tie_req; diff --git a/lily/include/main.hh b/lily/include/main.hh index 94ab8c5511..13f3c8fb7b 100644 --- a/lily/include/main.hh +++ b/lily/include/main.hh @@ -22,6 +22,7 @@ extern Sources* source_l_g; extern bool only_midi; extern int exit_status_i_; extern bool experimental_features_global_b; +extern bool postscript_global_b; extern String default_out_fn; diff --git a/lily/include/slur-grav.hh b/lily/include/slur-grav.hh index ad57d2443d..3eb6e182dc 100644 --- a/lily/include/slur-grav.hh +++ b/lily/include/slur-grav.hh @@ -16,14 +16,15 @@ class Slur_engraver :public Engraver { Array slur_l_stack_; Array end_slur_l_arr_; Direction dir_; - /* *************** */ + protected: - virtual ~Slur_engraver(); + virtual bool do_try_request (Request*); virtual void do_process_requests(); virtual void acknowledge_element (Score_elem_info); virtual void do_pre_move_processing(); virtual void do_post_move_processing(); + virtual void do_removal_processing (); public: TRANSLATOR_CLONE(Slur_engraver); Slur_engraver(); diff --git a/lily/include/slur.hh b/lily/include/slur.hh index 083c073e75..07b9093f9c 100644 --- a/lily/include/slur.hh +++ b/lily/include/slur.hh @@ -17,15 +17,17 @@ */ class Slur : public Bow { public: - Link_array encompass_arr_; - void add (Note_column*); + Link_array encompass_arr_; + void add (Note_column*); protected: - virtual void set_default_dir(); - virtual void do_post_processing(); - virtual void do_substitute_dependency (Score_elem*, Score_elem*); - virtual void do_pre_processing(); - SCORE_ELEM_CLONE(Slur); - DECLARE_MY_RUNTIME_TYPEINFO; + virtual void set_default_dir(); + virtual void do_post_processing(); + virtual void do_add_processing (); + virtual void do_pre_processing (); + virtual void do_substitute_dependency (Score_elem*, Score_elem*); + + SCORE_ELEM_CLONE(Slur); + DECLARE_MY_RUNTIME_TYPEINFO; }; #endif // SLUR_HH diff --git a/lily/lookup.cc b/lily/lookup.cc index d2e4c12d90..8fa2679722 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -159,7 +159,7 @@ Lookup::streepje (int type) const Atom Lookup::hairpin (Real &wid, bool decresc) const { - bool embedded_b = experimental_features_global_b; + bool embedded_b = postscript_global_b; String embed; Atom ret; if (embedded_b) @@ -173,6 +173,12 @@ Lookup::hairpin (Real &wid, bool decresc) const } else { + if (wid > 32 * 6 PT) + { + warning (_("Crescendo too long (") + print_dimen (wid) + +_( ") shrinking (ugh)")); + wid = 32*6 PT; + } int idx = int (rint (wid / 6 PT)); if (!idx) idx ++; wid = idx*6 PT; @@ -182,7 +188,6 @@ Lookup::hairpin (Real &wid, bool decresc) const Array a; a.push (idx); ret.tex_ = substitute_args (ret.tex_, a); - } ret.dim_.x() = Interval (0,wid); diff --git a/lily/main.cc b/lily/main.cc index f88d3a20af..897c84daaa 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -24,6 +24,7 @@ static bool version_ignore_b = false; Sources* source_l_g = 0; bool only_midi = false; bool experimental_features_global_b = false; +bool postscript_global_b = false; int exit_status_i_; void destill_inname (String &name_str_r); @@ -37,6 +38,7 @@ Long_option_init theopts[] = { {1, "init", 'i'}, {1, "include", 'I'}, {0, "midi", 'M'}, + {0, "postscript", 'p'}, {0, "ignore-version", 'V'}, {0,0,0} }; @@ -58,6 +60,7 @@ usage() " -t, --test switch on experimental features\n" " -M, --midi produce midi output only\n" " -V, --ignore-version ignore mudela version\n" + " -p, --postscript try to use PostScript\n" "\n" "GNU LilyPond was compiled with the following settings:\n") #ifdef NDEBUG @@ -187,6 +190,9 @@ main (int argc, char **argv) case 'V': version_ignore_b = true; break; + case 'p': + postscript_global_b = true; + break; case 'd': set_debug (true); break; diff --git a/lily/p-score.cc b/lily/p-score.cc index 39ada58c3b..4ca78c5993 100644 --- a/lily/p-score.cc +++ b/lily/p-score.cc @@ -211,6 +211,8 @@ Paper_score::tex_output () if (experimental_features_global_b) tex_out << "\\turnOnExperimentalFeatures%\n"; + if (postscript_global_b) + tex_out << "\\turnOnPostScript%\n"; super_elem_l_->output_all (); tex_out << "\n\\EndLilyPondOutput"; outputter_l_ = 0; diff --git a/lily/score-elem.cc b/lily/score-elem.cc index 3592033847..beb8797ac9 100644 --- a/lily/score-elem.cc +++ b/lily/score-elem.cc @@ -135,11 +135,11 @@ void Score_elem::calcalute_dependencies (int final, int busy, Score_elem_method_pointer funcptr) { - if (status_i_ >= final) + if (status_i_ >= final) return; - assert (status_i_!= busy); - status_i_= busy; + assert (status_i_!= busy); + status_i_= busy; for (int i=0; i < dependency_size(); i++) dependency (i)->calcalute_dependencies (final, busy, funcptr); @@ -157,10 +157,10 @@ Score_elem::calcalute_dependencies (int final, int busy, void Score_elem::do_brew_molecule () { - if (transparent_b_) + if (transparent_b_) return ; - Molecule *output= brew_molecule_p (); - pscore_l_->outputter_l_->output_molecule (output, absolute_offset ()); + Molecule *output= brew_molecule_p (); + pscore_l_->outputter_l_->output_molecule (output, absolute_offset ()); } /* @@ -330,9 +330,9 @@ Score_elem::handle_prebroken_dependencies() else { new_arr.push (it_l->broken_to_drul_[LEFT]); - old_arr.push (0); - old_arr.push (0); - new_arr.push (it_l->broken_to_drul_[RIGHT]); + old_arr.push (0); + old_arr.push (0); + new_arr.push (it_l->broken_to_drul_[RIGHT]); } } diff --git a/lily/score-grav.cc b/lily/score-grav.cc index c08afae18e..e624ac88fe 100644 --- a/lily/score-grav.cc +++ b/lily/score-grav.cc @@ -127,7 +127,21 @@ Score_engraver::typeset_all() { Score_elem * elem_p = elem_p_arr_[i]; if (elem_p->spanner()) - pscore_p_->typeset_unbroken_spanner (elem_p->spanner()); + { + Spanner *s = elem_p->spanner (); + pscore_p_->typeset_unbroken_spanner (s); + + /* + do something sensible if spanner not + spanned on 2 items. + */ + Direction d = LEFT; + do { + if (!s->spanned_drul_[d]) + s->set_bounds(d, command_column_l_); + } while ((d *= -1) != LEFT); + + } else { Item *item_p = elem_p->item(); diff --git a/lily/slur-grav.cc b/lily/slur-grav.cc index 25b53201be..732c4bd91d 100644 --- a/lily/slur-grav.cc +++ b/lily/slur-grav.cc @@ -1,5 +1,5 @@ /* - slur-reg.cc -- implement Slur_engraver + slur-grav.cc -- implement Slur_engraver (c) 1997 Han-Wen Nienhuys */ @@ -36,6 +36,20 @@ Slur_engraver::acknowledge_element (Score_elem_info info) } } +void +Slur_engraver::do_removal_processing () +{ + for (int i = 0; i < slur_l_stack_.size(); i++) + { + typeset_element (slur_l_stack_[i]); + } + slur_l_stack_.clear (); + for (int i=0; i < requests_arr_.size(); i++) + { + requests_arr_[i]->warning (_("unterminated slur")); + } +} + /* abracadabra */ @@ -94,13 +108,6 @@ Slur_engraver::do_post_move_processing() { new_slur_req_l_arr_.clear(); } -Slur_engraver::~Slur_engraver() -{ - for (int i=0; i < requests_arr_.size(); i++) - { - requests_arr_[i]->warning (_("unterminated slur")); - } -} IMPLEMENT_IS_TYPE_B1(Slur_engraver,Engraver); ADD_THIS_TRANSLATOR(Slur_engraver); diff --git a/lily/slur.cc b/lily/slur.cc index aadb9d44b9..2597c5e032 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -47,12 +47,18 @@ Slur::set_default_dir() } void -Slur::do_pre_processing() +Slur::do_add_processing() { set_bounds(LEFT, encompass_arr_[0]); - set_bounds(RIGHT, encompass_arr_.top()); + if (encompass_arr_.size () > 1) + set_bounds(RIGHT, encompass_arr_.top()); } +void +Slur::do_pre_processing () +{ + // don't set directions +} void Slur::do_substitute_dependency (Score_elem*o, Score_elem*n) diff --git a/lily/tie.cc b/lily/tie.cc index f7ad34fea4..9418bfb997 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -18,6 +18,7 @@ Tie::set_head (Direction d, Note_head * head_l) { assert (!head_l_drul_[d]); head_l_drul_[d] = head_l; + set_bounds (d, head_l); add_dependency (head_l); } @@ -29,11 +30,16 @@ Tie::Tie() same_pitch_b_ =false; } + +/* + ugh: direction of the Tie is more complicated. See [Ross] p136 and further + */ void Tie::set_default_dir() { - int m= (head_l_drul_[LEFT]->position_i_ + head_l_drul_[RIGHT]->position_i_) /2; - dir_ = (m < 5)? DOWN : UP; // UGH + int m= (head_l_drul_[LEFT]->position_i_ + + head_l_drul_[RIGHT]->position_i_) /2; + dir_ = (m < 0)? DOWN : UP; } void @@ -42,8 +48,13 @@ Tie::do_add_processing() if (!(head_l_drul_[LEFT] && head_l_drul_[RIGHT])) warning (_("Lonely tie.. ")); - set_bounds(LEFT,head_l_drul_[LEFT]); - set_bounds(RIGHT,head_l_drul_[RIGHT]); + Direction d = LEFT; + Drul_array new_head_drul = head_l_drul_; + do { + if (!head_l_drul_[d]) + new_head_drul[d] = head_l_drul_[(Direction)-d]; + } while ((d *= -1) != LEFT); + head_l_drul_ = new_head_drul; } void diff --git a/make/lelievijver.lsm b/make/lelievijver.lsm index 84b6782611..73b14ff867 100644 --- a/make/lelievijver.lsm +++ b/make/lelievijver.lsm @@ -1,7 +1,7 @@ Begin3 Titel: LilyPond -Versie: 0.1.36 -Inschrijf datum: 06DEC97 +Versie: 0.1.37 +Inschrijf datum: 12DEC97 Beschrijving: LilyPond is de muziek typesetter van het GNU Project. Het programma genereert muziek in zichtbare of hoorbare vorm uit uit een muzikale definitie file: @@ -16,8 +16,8 @@ Auteur: hanwen@stack.nl (Han-Wen Nienhuys) jan@digicash.com (Jan Nieuwenhuizen) Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys) Voornaamste plek: sunsite.unc.edu /pub/Linux/apps - 395k lilypond-0.1.36.tar.gz + 395k lilypond-0.1.37.tar.gz Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/ - 395k lilypond-0.1.36.tar.gz + 395k lilypond-0.1.37.tar.gz Copi"eer politie: GPL End diff --git a/make/lilypond.lsm b/make/lilypond.lsm index b84e8ddacb..c57843175c 100644 --- a/make/lilypond.lsm +++ b/make/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 0.1.36 -Entered-date: 06DEC97 +Version: 0.1.37 +Entered-date: 12DEC97 Description: LilyPond is the GNU Project music typesetter. The program generates visual or auditive output from a music definition file: it can typeset formatted sheet music @@ -14,8 +14,8 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys) jan@digicash.com (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 460k lilypond-0.1.36.tar.gz + 460k lilypond-0.1.37.tar.gz Original-site: pcnov095.win.tue.nl /pub/lilypond/development/ - 460k lilypond-0.1.36.tar.gz + 460k lilypond-0.1.37.tar.gz Copying-policy: GPL End diff --git a/make/lilypond.spec b/make/lilypond.spec index d118d7867c..e738cfb37f 100644 --- a/make/lilypond.spec +++ b/make/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 0.1.36 +Version: 0.1.37 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.36.tar.gz +Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.37.tar.gz Summary: A program for typesetting music. URL: http://www.stack.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys @@ -33,7 +33,7 @@ make -C Documentation gifs make prefix="$RPM_BUILD_ROOT/usr" install %files %doc Documentation/out/AUTHORS.text Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/convert-mudela.text Documentation/out/faq.text Documentation/out/gnu-music.text Documentation/out/index.text Documentation/out/internals.text Documentation/out/language.text Documentation/out/lilypond.text Documentation/out/links.text Documentation/out/literature.text Documentation/out/mi2mu.text Documentation/out/mudela-book.text Documentation/out/mutopia.text Documentation/out/other-packages.text BUGS TODO NEWS DEDICATION ANNOUNCE README -%doc input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/font.ly input/font20.ly input/gallina.ly input/gallina.tex input/gourlay.ly input/header.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scripts.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/sleur.ly input/slurs.ly input/standchen-16.ly input/standchen-16.tex input/standchen-20.ly input/standchen-20.tex input/standchen.ly input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly input/wtk1-fugue1.ly input/wtk1-fugue2.ly input/wtk1-prelude1.ly Documentation/mudela-course.doc Documentation/mudela-man.doc +%doc input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/font.ly input/font20.ly input/gallina.ly input/gallina.tex input/gourlay.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scripts.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/sleur.ly input/slurs.ly input/standchen-16.ly input/standchen-16.tex input/standchen-20.ly input/standchen-20.tex input/standchen.ly input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly input/wtk1-fugue1.ly input/wtk1-fugue2.ly input/wtk1-prelude1.ly Documentation/mudela-course.doc Documentation/mudela-man.doc %doc Documentation/out/lelie_logo.gif /usr/bin/convert-mudela /usr/bin/mudela-book diff --git a/mf/Makefile b/mf/Makefile index 053730775f..68ebc72621 100644 --- a/mf/Makefile +++ b/mf/Makefile @@ -12,7 +12,7 @@ include ./$(depth)/make/Include.make # TEXFILES = $(wildcard *.tex) MFFILES = $(wildcard *.mf) -EXTRA_DISTFILES = $(MFFILES) $(TEXFILES) TODO +EXTRA_DISTFILES = $(MFFILES) $(TEXFILES) TODO README # FONT_FILES = $(wildcard *[0-9].mf) diff --git a/mf/README b/mf/README new file mode 100644 index 0000000000..9724af42b2 --- /dev/null +++ b/mf/README @@ -0,0 +1,42 @@ + +This is a font of music symbols. All MF sources are original. The +symbols are modelled after various editions of music, notably + + - Baerenreiter + - Hofmeister + - Breitkopf + - Durand & C'ie + +The best references on Music engraving are [Wanske] and [Ross], some +of their insights have also been used. Although a matter of taste, +I'd say that Baerenreiter has the finest typography of all. + +Traditional engraving uses a set of 9 standardised sizes for Staffs +(running from 0 to 8). + +I tried measuring those (helped by a magnifying glass), and I get the +staffsizes in the following table. One should note that these are +estimates, so I think there could be a measuring error of ~ .5 pt. +Moreover [Ross] states that not all engravers use exactly those sizes. + +Staffsize Numbers Name + +26.2pt No. 0 +22.6pt No. 1 Giant/English +21.3pt No. 2 Giant/English +19.9pt No. 3 Regular, Ordinary, Common +19.1pt No. 4 Peter +17.1pt No. 5 Large middle +15.9pt No. 6 Small middle +13.7pt No. 7 Cadenza +11.1pt No. 8 Pearl + + +This table is partially taken from [Ross]. Most music is set in No.3, +but the papersizes usually are bigger than standard printer paper +(such as A4). + +[Ross] states that the dies (the stamps to make the symbols) come in +12 different sizes. + + diff --git a/mf/TODO b/mf/TODO index 05a4bd9e4a..73738e3a3a 100644 --- a/mf/TODO +++ b/mf/TODO @@ -6,14 +6,11 @@ - lo-res fixes. - work out sizes of character fonts. - more symbols - * some scripts: + * some scripts: flageolet * piano pedals, * trills * maxima notehead * coda signs. - * 0 - 9: - - 4/6pt slanted ? - - large(3/4staff) - 128th flags - include important spacing dims in fetalog diff --git a/mf/feta-schrift.mf b/mf/feta-schrift.mf index 37d551b925..f97a635d11 100644 --- a/mf/feta-schrift.mf +++ b/mf/feta-schrift.mf @@ -171,9 +171,7 @@ fet_endchar; % % The down marcato char (not very much used). % Contrary to what some MF/TeX `gurus' believe -% it is *point*-symmetric with the "up" version; (at least [Chlapik] and -% and [Wanske] agree with us) -% +% it is *point*-symmetric with the "up" version fet_beginchar("marcato down", "dmarcato", "dmarcato") draw_marcato; xy_mirror_char; diff --git a/tex/feta16.tex b/tex/feta16.tex index c3d377ccba..6bfa5aad53 100644 --- a/tex/feta16.tex +++ b/tex/feta16.tex @@ -1,5 +1,5 @@ % Creator: mf-to-table.py version 0.4 -% Automatically generated on Fri Dec 12 01:52:34 1997 +% Automatically generated on Fri Dec 12 11:29:20 1997 % Do not edit % input from out/feta16.log % name diff --git a/tex/feta20.tex b/tex/feta20.tex index 7f21a92877..5f4b5a3f40 100644 --- a/tex/feta20.tex +++ b/tex/feta20.tex @@ -1,5 +1,5 @@ % Creator: mf-to-table.py version 0.4 -% Automatically generated on Fri Dec 12 01:52:57 1997 +% Automatically generated on Fri Dec 12 11:29:22 1997 % Do not edit % input from out/feta20.log % name diff --git a/tex/fetdefs.tex b/tex/fetdefs.tex index 0301959589..85d4121aec 100644 --- a/tex/fetdefs.tex +++ b/tex/fetdefs.tex @@ -66,7 +66,6 @@ -\def\turnOnExperimentalFeatures{ % % WARNING: don't leave blank lines in the PS-code; they are @@ -74,6 +73,13 @@ % +\def\turnOnPostScript{ +\def\embeddedps##1{ + % + % This sets CTM so that you get to the currentpoint + % by executing a 0 0 moveto + \special{ps: @beginspecial @setspecial ##1 @endspecial} +} \special{ps: /draw_decresc { @@ -99,8 +105,9 @@ } def } +} - +\def\turnOnExperimentalFeatures{ % draw a slur in embedded postscript \special{ps: /xbow 1 3 div def @@ -164,12 +171,7 @@ } \def\embeddedtex#1{#1} -\def\embeddedps#1{ - % - % This sets CTM so that you get to the currentpoint - % by executing a 0 0 moveto - \special{ps: @beginspecial @setspecial #1 @endspecial} -} + \def\embeddedmf#1{ \edef\embedid{feta-sleur-\number\embedcount} \immediate\openout\embedfile=\embedid.mf