From: fred Date: Tue, 26 Mar 2002 23:21:19 +0000 (+0000) Subject: lilypond-1.3.46 X-Git-Tag: release/1.5.59~1658 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=e5e205c41621f62303a028b2359d205ecee65215;p=lilypond.git lilypond-1.3.46 --- diff --git a/input/bugs/accidental-collision.ly b/input/bugs/accidental-collision.ly new file mode 100644 index 0000000000..63fdaa347e --- /dev/null +++ b/input/bugs/accidental-collision.ly @@ -0,0 +1,13 @@ + + +\include "paper16.ly"; +\score { + \notes { + \relative c'' \context Voice \sequential { + + } + } + \paper{ + linewidth = 5.0\cm; + } +} diff --git a/input/bugs/direction.ly b/input/bugs/direction.ly index 47f6cd4ad5..8b13789179 100644 --- a/input/bugs/direction.ly +++ b/input/bugs/direction.ly @@ -1,18 +1 @@ -% -% urg ik dacht dat jij generic-properties en dir had gefikst? -% deze doet het wel in 1.3.37, voor je change + revert -% -\score{ -\context Voice=x \notes\relative c''{ -\property Voice.dynamicDirection = #-1 -\property Voice.verticalDirection = #1 -c\pp c c\< c \! c c \ff - -} -\paper{ -} -\midi{ -\tempo 1 = 60; -} -} diff --git a/input/bugs/p.ly b/input/bugs/p.ly index bf4bedc628..416e641c6e 100644 --- a/input/bugs/p.ly +++ b/input/bugs/p.ly @@ -1,31 +1,3 @@ -\header { - filename = "praeludium-fuga-E.ly"; - title = "praeludium and fuga in E-major"; - opus = "BWV 566"; - composer = "Johann Sebastian Bach (1685-1750)"; - enteredby = "JCN"; - copyright = "public domain"; -} -%{ - description - - Praeludium 3 bar excerpt, - 2nd fuga transposed subject -- 4 bar excerpt. - We try to imitate the Griepenkerl/Keller edition which - gives the best approximation to Bach's original layout - -%} -%{ - Tested Features: - purpose of this file is testing: - * real-life collisions - * multi-voice input --- splitting? - * organ staff... -%} - -\version "1.3.4"; - - praeludium_commands = \notes { \time 4/4; diff --git a/input/bugs/ps.ly b/input/bugs/ps.ly index db59c5ce54..026b97485c 100644 --- a/input/bugs/ps.ly +++ b/input/bugs/ps.ly @@ -5,7 +5,7 @@ \notes { a' b' c' d' } } -% \break + \break \context PianoStaff < \context Staff = i { diff --git a/input/bugs/staccato-quantisation.ly b/input/bugs/staccato-quantisation.ly new file mode 100644 index 0000000000..a8fd4cff1b --- /dev/null +++ b/input/bugs/staccato-quantisation.ly @@ -0,0 +1,4 @@ +\score { \notes \context Staff { +\stemup +f'-. g-. a-. b-. c-. d-. e-. +}} diff --git a/input/bugs/steep-beam.ly b/input/bugs/steep-beam.ly new file mode 100644 index 0000000000..ea7fe134aa --- /dev/null +++ b/input/bugs/steep-beam.ly @@ -0,0 +1,3 @@ + + +\score { \notes <{ [ r8 g''16 des'] [r8 c16 a] }>} diff --git a/lily/include/key-engraver.hh b/lily/include/key-engraver.hh index cbd80e8d42..f91f7eea8b 100644 --- a/lily/include/key-engraver.hh +++ b/lily/include/key-engraver.hh @@ -25,6 +25,10 @@ public: Key_engraver(); VIRTUAL_COPY_CONS(Translator); + + /* + TODO: move these into properties. + */ Key key_; Key_change_req * keyreq_l_; Key_item * item_p_; diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh index 0d81e99399..9ad0295ad7 100644 --- a/lily/include/note-column.hh +++ b/lily/include/note-column.hh @@ -31,7 +31,6 @@ public: Interval_t head_positions_interval() const; - // Interval width () const; void translate_rests(int dy); Note_head * first_head ()const; diff --git a/lily/include/rhythmic-head.hh b/lily/include/rhythmic-head.hh index bb34f17efe..4733d5f155 100644 --- a/lily/include/rhythmic-head.hh +++ b/lily/include/rhythmic-head.hh @@ -12,16 +12,14 @@ #include "item.hh" -/* - Why don't I have a - VIRTUAL_COPY_CONS (Score_element); - see also note-head, rest. - ? -*/ - class Rhythmic_head : public Item { public: + + /* + Typically not used, since Rhythmic_head is not breakable. + */ + VIRTUAL_COPY_CONS(Rhythmic_head); int balltype_i () const; void add_dots (Dots *); diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index ac97736344..6d01fb2b6d 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -94,13 +94,7 @@ Key_engraver::acknowledge_element (Score_element_info info) else if (dynamic_cast (info.elem_l_) && accidental_idx_arr_.size ()) { - bool def = (!item_p_); create_key (); - if (!def) - { - item_p_->set_elt_property ("visibility-lambda", - scm_eval (ly_symbol2scm ("all-visible"))); - } } } @@ -119,6 +113,10 @@ Key_engraver::do_pre_move_processing () { if (item_p_) { + if (keyreq_l_) + item_p_->set_elt_property ("visibility-lambda", + scm_eval (ly_symbol2scm ("all-visible"))); + typeset_element (item_p_); item_p_ = 0; } @@ -126,7 +124,7 @@ Key_engraver::do_pre_move_processing () /* - TODO Slightly hairy. + TODO. Use properties; and this is too hairy. */ void Key_engraver::read_req (Key_change_req const * r) diff --git a/lily/parser.yy b/lily/parser.yy index 39019cbe26..e5a7583522 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -487,9 +487,11 @@ score_block: } ; -score_body: { +score_body: + Music { $$ = new Score; $$->set_spot (THIS->here_input ()); + $$->music_p_ = $1; } | SCORE_IDENTIFIER { $$ = $1->access_content_Score (true); @@ -497,11 +499,6 @@ score_body: { | score_body mudela_header { $$->header_p_ = $2; } - | score_body Music { - if ($$->music_p_) - $2->warning (_ ("More than one music block")); - $$->music_p_ = $2; - } | score_body output_def { $$->add_output ($2); } diff --git a/lily/system-start-delimiter-engraver.cc b/lily/system-start-delimiter-engraver.cc index d8ec2aed2f..caa138477d 100644 --- a/lily/system-start-delimiter-engraver.cc +++ b/lily/system-start-delimiter-engraver.cc @@ -15,19 +15,14 @@ #include "paper-column.hh" #include "paper-def.hh" -/* - TODO: rename this to system-open-engraver (or whatever.) - - */ class System_start_delimiter_engraver : public Engraver { public: VIRTUAL_COPY_CONS(Translator); System_start_delimiter_engraver(); - Spanner * spanbar_; protected: - + Spanner * delim_; virtual void acknowledge_element (Score_element_info); virtual void do_creation_processing (); virtual void do_removal_processing (); @@ -35,22 +30,21 @@ protected: ADD_THIS_TRANSLATOR(System_start_delimiter_engraver); - void System_start_delimiter_engraver::acknowledge_element (Score_element_info inf) { if (dynamic_cast (inf.elem_l_)) { /* - don't add as Axis_group_interface (spanbar_).add_element (), + don't add as Axis_group_interface (delim_).add_element (), because that would set the parent as well */ - Group_interface (spanbar_).add_element (inf.elem_l_); + Group_interface (delim_).add_element (inf.elem_l_); } else if (System_start_delimiter * b = dynamic_cast (inf.elem_l_)) { SCM gl = b->get_elt_property ("glyph"); - SCM my_gl = get_property ("spanBarGlyph"); + SCM my_gl = delim_->get_elt_property ("glyph"); /* UGH UGH @@ -64,34 +58,39 @@ System_start_delimiter_engraver::acknowledge_element (Score_element_info inf) System_start_delimiter_engraver::System_start_delimiter_engraver() { - spanbar_ = 0; + delim_ = 0; } void System_start_delimiter_engraver::do_creation_processing() { - spanbar_ = new System_start_delimiter; - spanbar_->set_bound (LEFT, get_staff_info ().command_pcol_l ()); - announce_element (Score_element_info (spanbar_,0)); -} + delim_ = new System_start_delimiter; + delim_->set_bound (LEFT, get_staff_info ().command_pcol_l ()); -void -System_start_delimiter_engraver::do_removal_processing () -{ + /* + You can't override the glyph using \property, you must do it in + the predefined context (ie. \translator { ... } ) + */ SCM s = get_property ("systemStartDelimiterGlyph"); if (gh_symbol_p (s)) { - spanbar_->set_elt_property ("glyph", s); + delim_->set_elt_property ("glyph", s); } + announce_element (Score_element_info (delim_,0)); +} + +void +System_start_delimiter_engraver::do_removal_processing () +{ // ugh, should have naming without bracket SCM collapse = get_property ("bracketCollapseHeight"); if (gh_number_p (collapse)) - spanbar_->set_elt_property ("collapse-height", collapse); + delim_->set_elt_property ("collapse-height", collapse); else - spanbar_->set_elt_property ("collapse-height", gh_double2scm (1)); + delim_->set_elt_property ("collapse-height", gh_double2scm (1)); - spanbar_->set_bound (RIGHT, get_staff_info ().command_pcol_l ()); - typeset_element (spanbar_); + delim_->set_bound (RIGHT, get_staff_info ().command_pcol_l ()); + typeset_element (delim_); } diff --git a/lily/timing-engraver.cc b/lily/timing-engraver.cc index e64182a3a8..aa5a4e6973 100644 --- a/lily/timing-engraver.cc +++ b/lily/timing-engraver.cc @@ -36,6 +36,7 @@ Timing_engraver::do_try_music (Music*m) return Timing_translator::do_try_music (m); } + #if 0 String Timing_engraver::do_process_music () @@ -54,6 +55,9 @@ Timing_engraver::do_process_music () #endif +/* + TODO make properties of this. + */ String Timing_engraver::which_bar () {