]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.110 release/1.3.110
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 22 Nov 2000 21:14:22 +0000 (22:14 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 22 Nov 2000 21:14:22 +0000 (22:14 +0100)
============

* Fixed a mysterious typo in toplevel index.

* Enabled property-engraver.

* Cleanup in Auto-beam-engraver (still broken, because timings are off?)

* Collapsed all ``void Foo::create_grobs () { deprecated_process_music
(); }'' occurences, and reactivated some disabled code (note-name,
chord-name, custos, lyrics).  Reactivated Timing_translator using
process_music ().

1.3.109.h

130 files changed:
CHANGES
Documentation/topdocs/index.tely
VERSION
lily/align-interface.cc
lily/align-note-column-engraver.cc
lily/arpeggio.cc
lily/auto-beam-engraver.cc
lily/axis-group-engraver.cc
lily/axis-group-interface.cc
lily/bar-engraver.cc
lily/bar-number-engraver.cc
lily/bar.cc
lily/beam-engraver.cc
lily/beam.cc
lily/break-align-engraver.cc
lily/break-align-item.cc
lily/breathing-sign.cc
lily/chord-name.cc
lily/chord-tremolo-engraver.cc
lily/clef-item.cc
lily/collision.cc
lily/command-request.cc
lily/crescendo.cc
lily/custos-engraver.cc
lily/custos.cc
lily/dot-column-engraver.cc
lily/dot-column.cc
lily/dots.cc
lily/dynamic-engraver.cc
lily/extender-engraver.cc
lily/grace-align-item.cc
lily/grace-engraver-group.cc
lily/grace-performer-group.cc
lily/grace-position-engraver.cc
lily/grob.cc
lily/hara-kiri-group-spanner.cc
lily/hyphen-engraver.cc
lily/hyphen-spanner.cc
lily/include/command-request.hh
lily/include/custos.hh
lily/include/grace-engraver-group.hh
lily/include/grace-performer-group.hh
lily/include/grob.hh
lily/include/group-interface.hh
lily/include/line-group-group-engraver.hh
lily/include/lyric-engraver.hh [deleted file]
lily/include/lyric-phrasing-engraver.hh
lily/include/musical-request.hh
lily/include/score-engraver.hh
lily/include/score-performer.hh
lily/include/slur.hh
lily/include/timing-translator.hh
lily/include/translator-group.hh
lily/include/translator.hh
lily/include/transposed-music.hh
lily/key-engraver.cc
lily/key-item.cc
lily/line-group-group-engraver.cc
lily/line-of-score.cc
lily/local-key-engraver.cc
lily/local-key-item.cc
lily/lyric-extender.cc
lily/lyric-phrasing-engraver.cc
lily/mark-engraver.cc
lily/multi-measure-rest-engraver.cc
lily/multi-measure-rest.cc
lily/music-output-def.cc
lily/note-column.cc
lily/note-head.cc
lily/parser.yy
lily/piano-pedal-engraver.cc
lily/piano-pedal-performer.cc
lily/property-engraver.cc
lily/relative-octave-music.cc
lily/repeat-acknowledge-engraver.cc
lily/rest-collision.cc
lily/rest.cc
lily/rhythmic-head.cc
lily/score-engraver.cc
lily/score-performer.cc
lily/script-column.cc
lily/script-engraver.cc
lily/script.cc
lily/separating-group-spanner.cc
lily/separating-line-group-engraver.cc
lily/separation-item.cc
lily/side-position-interface.cc
lily/simple-spacer.cc
lily/slur-engraver.cc
lily/slur.cc
lily/spacing-engraver.cc
lily/spacing-spanner.cc
lily/span-bar.cc
lily/spanner.cc
lily/staff-performer.cc
lily/staff-symbol-engraver.cc
lily/staff-symbol-referencer.cc
lily/staff-symbol.cc
lily/stem-tremolo.cc
lily/stem.cc
lily/sustain-pedal.cc
lily/system-start-delimiter-engraver.cc
lily/system-start-delimiter.cc
lily/tempo-performer.cc
lily/text-item.cc
lily/text-spanner-engraver.cc
lily/text-spanner.cc
lily/tie-column.cc
lily/tie-engraver.cc
lily/tie-performer.cc
lily/tie.cc
lily/time-scaled-music.cc
lily/time-signature-engraver.cc
lily/time-signature.cc
lily/timing-engraver.cc
lily/timing-translator.cc
lily/translator-group.cc
lily/translator.cc
lily/transposed-music.cc
lily/tuplet-engraver.cc
lily/tuplet-spanner.cc
lily/vertical-align-engraver.cc
lily/volta-engraver.cc
lily/volta-spanner.cc
ly/engraver.ly
make/lilypond.spec.in
make/out/lilypond.lsm
make/out/lilypond.spec
scm/element-descriptions.scm
scm/slur.scm

diff --git a/CHANGES b/CHANGES
index 8b7d4ea524968dde604f163a66de3690aea02fe5..4b678c90888c0ff7af7f735da58ad27ff483810e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -7,16 +7,30 @@
 
 * Cleanup in Auto-beam-engraver (still broken, because timings are off?)
 
-1.3.109.jcn1
-============
-
 * Collapsed all ``void Foo::create_grobs () { deprecated_process_music
 (); }'' occurences, and reactivated some disabled code (note-name,
 chord-name, custos, lyrics).  Reactivated Timing_translator using
 process_music ().
 
-1.3.108.uu1
-===========
+1.3.109.hwn1
+============
+
+* unsmob_element -> unsmob_grob
+
+* Make a Slur::height callback, to prevent early brew_molecule
+call. This fixes cross-staff slurs.
+
+* Bugfix: custodes style must be symbol, not string.
+
+* do_creation_processing () -> initialize (), do_removal_processing ()
+-> finalize ().  Remove (do_)add_processing.
+
+* Move Relative_octave_music::last_pitch_ into SCM, junk
+Transposed_music::to_pitch_, junked Time_scaled_music::{den_i_,
+num_i_}, Rhythmic_req::duration_, Melodic_req::pitch_
+
+1.3.109
+=======
 
 * Bugfix: resurrected point-and-click. 
 
@@ -38,8 +52,8 @@ various XXXX functions as wrapper for do_XXX functions.
 {pre,post}_move_processing -> {stop,start}_translation_timestep,
 do_try_music -> try_music.
 
-1.3.107.jcn3
-============
+1.3.108
+=======
 
 * Dropped ly_lists_equal for gh_equal_
 
index f3c739c46d51f0dcd511297039e5d9fe438f778e..ce7638836551d9dc69e5ecc974d09f9c86d475ad 100644 (file)
@@ -73,15 +73,6 @@ examples} and @uref{long-examples.html,longer examples}. The
 examples include sound bites  in MIDI, pictures in PNG, printable scores
 in PostScript, and LilyPond input. Others use LilyPond too, and have put
 scores on the web. Head over to @uref{http://appel.lilypond.org/wiki/index.php?DownloadLilyPondScores}
-@uref{http://www.geocities.com/Vienna/Studio/1714/harpsichord.html,John
-Sankey}, harpsichordist to the internet, is typesetting the complete
-@uref{http://www.geocities.com/Vienna/Studio/1714/scarlattidwn.html,sonatas
-by Scarlatti}. Jeff Covey, guitar player and overall nice guy, is
-putting @uref{http://www4.smart.net/~jcovey/scores/,guitar music} on the
-net. The @uref{http://sca.uwaterloo.ca/Mutopia/,Mutopia project} is an
-archive of public domain sheet music under construction. Dirk Lattermann
-also put some works @uref{http://www.alqualonde.de/lilypond.html,on the
-web}.
 
 @html
 <a name="download-source">
diff --git a/VERSION b/VERSION
index 494ad675a7cc32e457ae3ea4dae8fd0eab9b6b08..8dbf13f805602e9c145ea6ed48fec969ea9262fb 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=109
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=110
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index dfb50d7d265296628458a0d1591069d289c58e35..db7963ad2150ebca75562e6d076449c294b51d3d 100644 (file)
@@ -21,7 +21,7 @@ MAKE_SCHEME_CALLBACK(Align_interface,alignment_callback,2);
 SCM
 Align_interface::alignment_callback (SCM element_smob, SCM axis)
 {
-  Grob * me = unsmob_element (element_smob);
+  Grob * me = unsmob_grob (element_smob);
   Axis ax = (Axis )gh_scm2int (axis);
   Grob * par = me->parent_l (ax);
   if (par && !to_boolean (par->get_grob_property ("alignment-done")))
index b3dc85e8595f1e708a1b21caea7f3a6cfe976b0d..5904c223e7420cdee41cf506c167f7358dd9fc94 100644 (file)
@@ -28,8 +28,8 @@ class Align_note_column_engraver: public Engraver
 
   virtual void create_grobs ();
   virtual void start_translation_timestep ();
-  virtual void do_creation_processing ();
-  virtual void do_removal_processing ();
+  virtual void initialize ();
+  virtual void finalize ();
   virtual void acknowledge_grob (Grob_info);
 public:
   VIRTUAL_COPY_CONS(Translator);
@@ -44,7 +44,7 @@ Align_note_column_engraver::Align_note_column_engraver()
 }
 
 void
-Align_note_column_engraver::do_creation_processing ()
+Align_note_column_engraver::initialize ()
 {
   align_item_p_ = new Item (get_property ("GraceAlignment"));
   Grace_align_item::set_interface (align_item_p_);
@@ -56,7 +56,7 @@ Align_note_column_engraver::do_creation_processing ()
 }
 
 void
-Align_note_column_engraver::do_removal_processing ()
+Align_note_column_engraver::finalize ()
 {
   SCM al = get_property ("graceAlignPosition");
   if (isdir_b (al))
index 8802cb71f3d90a76133f2c2ac323dc6434c0f756..ba1e4d28baf799490f2acf98abf78f204fff9f19 100644 (file)
@@ -26,12 +26,12 @@ MAKE_SCHEME_CALLBACK (Arpeggio, brew_molecule, 1);
 SCM 
 Arpeggio::brew_molecule (SCM smob) 
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   
   Grob * common = me;
   for (SCM s = me->get_grob_property ("stems"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob * stem =  unsmob_element (gh_car (s));
+      Grob * stem =  unsmob_grob (gh_car (s));
       common =  common->common_refpoint (Staff_symbol_referencer::staff_symbol_l (stem),
                                 Y_AXIS);
     }
@@ -49,7 +49,7 @@ Arpeggio::brew_molecule (SCM smob)
       
   for (SCM s = me->get_grob_property ("stems"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob * stem = unsmob_element (gh_car (s));
+      Grob * stem = unsmob_grob (gh_car (s));
       Grob * ss = Staff_symbol_referencer::staff_symbol_l (stem);
       Interval iv =Stem::head_positions (stem);
       iv *= Staff_symbol::staff_space (ss)/2.0;
@@ -90,7 +90,7 @@ MAKE_SCHEME_CALLBACK(Arpeggio, width_callback,2);
 SCM
 Arpeggio::width_callback (SCM smob, SCM axis)
 {
-  Grob * me = unsmob_element (smob);
+  Grob * me = unsmob_grob (smob);
   Axis a = (Axis)gh_scm2int (axis);
   assert (a == X_AXIS);
   Molecule arpeggio = Font_interface::get_default_font (me)->find_by_name ("scripts-arpeggio");
index 22561d0d24246c5ac7eb6d6245f80f955fc22d8f..d5af0fcf66dcdcd958ce2f1b7a25bce26b2d97d6 100644 (file)
@@ -33,7 +33,7 @@ public:
 protected:
   virtual void stop_translation_timestep ();
   virtual void start_translation_timestep ();
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void acknowledge_grob (Grob_info);
   virtual void create_grobs ();
 
@@ -181,7 +181,7 @@ Auto_beam_engraver::test_moment (Direction dir, Moment test_mom)
 void
 Auto_beam_engraver::consider_begin (Moment test_mom)
 {
-  SCM off = to_boolean (get_property ("noAutoBeaming"));
+  bool off = to_boolean (get_property ("noAutoBeaming"));
   if (!stem_l_arr_p_ && ! off)
     {
       bool b = test_moment (START, test_mom);
@@ -310,7 +310,7 @@ Auto_beam_engraver::stop_translation_timestep ()
 }
 
 void
-Auto_beam_engraver::do_removal_processing ()
+Auto_beam_engraver::finalize ()
 {
   /* finished beams may be typeset */
   typeset_beam ();
@@ -453,8 +453,8 @@ Auto_beam_engraver::create_grobs ()
     }
 
   /*
-    Ugh.
-    gcc: 2.95.3-2c (latest and greatest from Franz Sirl for ppc)
-    auto-beam-engraver.cc:459: warning: value computed is not used */
-  count_i_++;
+    count_i_++ -> 
+
+        auto-beam-engraver.cc:459: warning: value computed is not used (gcc: 2.96) */
+  count_i_ = count_i_ + 1;
 }
index 2c0e62a630c4b7d8a338f6db73346dfc2d0b5fe2..38142ee4e99279e364c154e9d1de2c3edc0ac9ca 100644 (file)
@@ -21,8 +21,8 @@ class Axis_group_engraver : public Engraver
 protected:
   Spanner *staffline_p_;
   Link_array<Grob> elts_;
-  virtual void do_creation_processing();
-  virtual void do_removal_processing();
+  virtual void initialize();
+  virtual void finalize();
   virtual void acknowledge_grob (Grob_info);
   virtual void create_grobs ();
   virtual Spanner* get_spanner_p () const;
@@ -40,13 +40,13 @@ Axis_group_engraver::Axis_group_engraver ()
 }
 
 void
-Axis_group_engraver::do_creation_processing ()
+Axis_group_engraver::initialize ()
 {
   staffline_p_ = get_spanner_p ();
   Axis_group_interface::set_interface (staffline_p_);
   Axis_group_interface::set_axes (staffline_p_, Y_AXIS, Y_AXIS);
 
-  Grob *  it = unsmob_element (get_property ("currentCommandColumn"));
+  Grob *  it = unsmob_grob (get_property ("currentCommandColumn"));
 
   staffline_p_->set_bound(LEFT,it);
 
@@ -60,7 +60,7 @@ Axis_group_engraver::get_spanner_p () const
 }
 
 void
-Axis_group_engraver::do_removal_processing ()
+Axis_group_engraver::finalize ()
 {
   String type = daddy_grav_l ()->type_str_ ;
   SCM dims = get_property ((type  + "VerticalExtent").ch_C());
@@ -82,7 +82,7 @@ Axis_group_engraver::do_removal_processing ()
       && gh_number_p (gh_cdr (dims)))
     staffline_p_->set_grob_property ("extra-extent-Y", dims);
 
-  Grob *  it = unsmob_element (get_property ("currentCommandColumn"));
+  Grob *  it = unsmob_grob (get_property ("currentCommandColumn"));
 
 
   staffline_p_->set_bound(RIGHT,it);
index 4c2b849aea96181b226157706cb32ff5000243fb..67beabd1c71556f641f5fc8eebe99be51d1a1705 100644 (file)
@@ -43,7 +43,7 @@ Axis_group_interface::relative_group_extent (Axis a, Grob *common, SCM elts)
   Interval r;
   for (SCM s = elts; gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob * se = unsmob_element (gh_car (s));
+      Grob * se = unsmob_grob (gh_car (s));
       Interval dims = se->extent (common, a);
       if (!dims.empty_b ())
        r.unite (dims);
@@ -55,14 +55,14 @@ MAKE_SCHEME_CALLBACK(Axis_group_interface,group_extent_callback,2);
 SCM
 Axis_group_interface::group_extent_callback (SCM element_smob, SCM scm_axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (scm_axis);
 
   Grob * common =(Grob*) me;
 
   for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob * se = unsmob_element (gh_car (s));
+      Grob * se = unsmob_grob (gh_car (s));
       common = se->common_refpoint (common, a);
     }
 
@@ -118,7 +118,7 @@ Axis_group_interface::get_children (Grob*me)
   
   for (SCM ep = me->get_grob_property ("elements"); gh_pair_p (ep); ep = gh_cdr (ep))
     {
-      Grob* e = unsmob_element (gh_car (ep));
+      Grob* e = unsmob_grob (gh_car (ep));
       if (e)
        childs.concat (Axis_group_interface::get_children (e));
     }
index d81996fd61634d87132ea2ab063e8478364073c8..32bd40368e2b6164b872028c577ddfea04349b87 100644 (file)
@@ -27,7 +27,7 @@ public:
   void request_bar (String type_str);
     
 protected:
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void stop_translation_timestep();
   virtual void create_grobs ();
 
@@ -59,7 +59,7 @@ Bar_engraver::create_bar ()
 }
 
 void
-Bar_engraver::do_removal_processing ()
+Bar_engraver::finalize ()
 {
   typeset_bar ();
 }
index 1b4646f14ca6f2fd39eee5b937cb8758c1fdeaf2..ce129ffd9b18e525fe368d29ae4bfffc5a426eaa 100644 (file)
@@ -26,7 +26,7 @@ protected:
 protected:
   virtual void stop_translation_timestep ();
   virtual void acknowledge_grob (Grob_info);
-  virtual void do_creation_processing ();
+  virtual void initialize ();
   virtual void create_grobs ();
   void create_items();
 
@@ -62,7 +62,7 @@ Bar_number_engraver::Bar_number_engraver ()
 }
 
 void
-Bar_number_engraver::do_creation_processing ()
+Bar_number_engraver::initialize ()
 {
   /*
     ugh: need to share code with mark_engraver
index 6923ad91800a09ad2b7da9afd40b790d7f33eb06..b74122d0725705f5c400b85d610512884c2fd4cb 100644 (file)
@@ -26,7 +26,7 @@ MAKE_SCHEME_CALLBACK(Bar,brew_molecule,1);
 SCM 
 Bar::brew_molecule (SCM smob) 
 {
-  Grob * me = unsmob_element (smob);
+  Grob * me = unsmob_grob (smob);
 
   SCM s = me->get_grob_property ("glyph");
   SCM barsiz_proc = me->get_grob_property ("barsize-procedure");
@@ -128,7 +128,7 @@ MAKE_SCHEME_CALLBACK(Bar,before_line_breaking ,1);
 SCM
 Bar::before_line_breaking  (SCM smob)
 {
-  Grob*me=unsmob_element (smob);
+  Grob*me=unsmob_grob (smob);
   Item * item = dynamic_cast<Item*> (me);
   
   SCM g = me->get_grob_property ("glyph");
@@ -192,7 +192,7 @@ MAKE_SCHEME_CALLBACK(Bar,get_staff_bar_size,1);
 SCM
 Bar::get_staff_bar_size (SCM smob) 
 {
-  Grob*me = unsmob_element (smob);
+  Grob*me = unsmob_grob (smob);
   Real ss = Staff_symbol_referencer::staff_space (me);
   SCM size = me->get_grob_property ("bar-size");
   if (gh_number_p (size))
index 6724ac8b4b29af33a307b121d7b67584f92085bc..80b812b9513ea096970d35db07ca834b03f1667e 100644 (file)
@@ -44,7 +44,7 @@ class Beam_engraver : public Engraver
 protected:
   virtual void stop_translation_timestep ();
   virtual void start_translation_timestep ();
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void create_grobs ();
   virtual void acknowledge_grob (Grob_info);
   virtual bool try_music (Music*);
@@ -211,7 +211,7 @@ Beam_engraver::stop_translation_timestep ()
 }
 
 void
-Beam_engraver::do_removal_processing ()
+Beam_engraver::finalize ()
 {
   typeset_beam ();
   if (beam_p_)
index 94dad6e6e56302e54fb0883f1f8c27453405c555..25f90cb6eb3e09ddbf428b817cfc2f5f2442d325 100644 (file)
@@ -55,7 +55,7 @@ Beam::get_multiplicity (Grob*me)
   int m = 0;
   for (SCM s = me->get_grob_property ("stems"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob * sc = unsmob_element (gh_car (s));
+      Grob * sc = unsmob_grob (gh_car (s));
 
       if (Stem::has_interface (sc))
        m = m >? Stem::beam_count (sc,LEFT) >? Stem::beam_count (sc,RIGHT);
@@ -75,7 +75,7 @@ MAKE_SCHEME_CALLBACK(Beam,before_line_breaking,1);
 SCM
 Beam::before_line_breaking (SCM smob)
 {
-  Grob * me =  unsmob_element (smob);
+  Grob * me =  unsmob_grob (smob);
 
   // Why?
   if (visible_stem_count (me) < 2)
@@ -274,7 +274,7 @@ MAKE_SCHEME_CALLBACK(Beam,after_line_breaking,1);
 SCM
 Beam::after_line_breaking (SCM smob)
 {
-  Grob * me =  unsmob_element (smob);
+  Grob * me =  unsmob_grob (smob);
 
   /* first, calculate y, dy */
   Real y, dy;
@@ -766,7 +766,7 @@ MAKE_SCHEME_CALLBACK(Beam,brew_molecule,1);
 SCM
 Beam::brew_molecule (SCM smob)
 {
-  Grob * me =unsmob_element (smob);
+  Grob * me =unsmob_grob (smob);
 
   Molecule mol;
   if (!gh_pair_p (me->get_grob_property ("stems")))
@@ -890,16 +890,16 @@ MAKE_SCHEME_CALLBACK(Beam,rest_collision_callback,2);
 SCM
 Beam::rest_collision_callback (SCM element_smob, SCM axis)
 {
-  Grob *rest = unsmob_element (element_smob);
+  Grob *rest = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   
   assert (a == Y_AXIS);
 
-  Grob * st = unsmob_element (rest->get_grob_property ("stem"));
+  Grob * st = unsmob_grob (rest->get_grob_property ("stem"));
   Grob * stem = st;
   if (!stem)
     return gh_double2scm (0.0);
-  Grob * beam = unsmob_element (stem->get_grob_property ("beam"));
+  Grob * beam = unsmob_grob (stem->get_grob_property ("beam"));
   if (!beam || !Beam::has_interface (beam) || !Beam::visible_stem_count (beam))
     return gh_double2scm (0.0);
 
index aee231f3cc06adf847017e0348ba03db42d5b13a..1fdf8ea46e58629552c8e077569568460aa5e623 100644 (file)
@@ -19,7 +19,7 @@ class Break_align_engraver : public Engraver
   Item *align_l_;
   Protected_scm column_alist_;
 protected:
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void acknowledge_grob(Grob_info i);
   virtual void stop_translation_timestep ();
   void add_column (SCM);
@@ -36,13 +36,13 @@ ADD_THIS_TRANSLATOR(Break_align_engraver);
 void
 Break_align_engraver::add_column (SCM smob)
 {
-  Grob * e = unsmob_element (smob);
+  Grob * e = unsmob_grob (smob);
   Break_align_interface::add_element (align_l_,e);
   typeset_grob (e);
 }
 
 void
-Break_align_engraver::do_removal_processing ()
+Break_align_engraver::finalize ()
 {
   column_alist_ = SCM_EOL;
 }
@@ -137,7 +137,7 @@ Break_align_engraver::acknowledge_grob (Grob_info inf)
 
       if (s != SCM_BOOL_F)
        {
-         Grob *e =  unsmob_element (gh_cdr(s));
+         Grob *e =  unsmob_grob (gh_cdr(s));
          group = dynamic_cast<Item*> (e);
        }
       else
index b900f601b7b0b790f4b8153043ae1964b7a746cf..38705e1d74ae19941a8c30f85b62de3e117dacee 100644 (file)
@@ -26,7 +26,7 @@ MAKE_SCHEME_CALLBACK(Break_align_interface,before_line_breaking,1);
 SCM
 Break_align_interface::before_line_breaking (SCM smob)
 {
-  Grob* me = unsmob_element (smob);
+  Grob* me = unsmob_grob (smob);
   do_alignment (me);
   return SCM_UNSPECIFIED;
 }
@@ -35,7 +35,7 @@ MAKE_SCHEME_CALLBACK(Break_align_interface,alignment_callback,2);
 SCM
 Break_align_interface::alignment_callback (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
 
   assert (a == X_AXIS);
@@ -53,7 +53,7 @@ MAKE_SCHEME_CALLBACK(Break_align_interface,self_align_callback,2);
 SCM
 Break_align_interface::self_align_callback (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   assert (a == X_AXIS);
   
index 2f131e5be85b45810197b5538ba17013c740d451..06be981cf17b23889f3d52f4c4d381a2c2623ce9 100644 (file)
@@ -24,7 +24,7 @@ MAKE_SCHEME_CALLBACK(Breathing_sign,brew_molecule,1);
 SCM 
 Breathing_sign::brew_molecule (SCM smob)
 {
-  Grob * me = unsmob_element (smob);
+  Grob * me = unsmob_grob (smob);
   Real space = Staff_symbol_referencer::staff_space (me);
 
   // todo: cfg'able.
@@ -38,7 +38,7 @@ MAKE_SCHEME_CALLBACK(Breathing_sign,offset_callback,2);
 SCM
 Breathing_sign::offset_callback (SCM element_smob, SCM )
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   
   Direction d = Directional_element_interface::get (me);
   if (!d)
index 804b3fb2c8019c004c71ab016e89a2fda210ff55..dd06b0bbdf76bdf767f67915dea053b215e51f0a 100644 (file)
@@ -20,7 +20,7 @@ MAKE_SCHEME_CALLBACK (Chord_name,after_line_breaking,1);
 SCM
 Chord_name::after_line_breaking (SCM smob)
 {
-  Item* me = dynamic_cast<Item*> (unsmob_element (smob));
+  Item* me = dynamic_cast<Item*> (unsmob_grob (smob));
   assert (me);
     
   SCM s = me->get_grob_property ("begin-of-line-visible");
@@ -42,7 +42,7 @@ MAKE_SCHEME_CALLBACK (Chord_name,brew_molecule,1);
 SCM
 Chord_name::brew_molecule (SCM smob) 
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   SCM style = me->get_grob_property ("style");
 
   if (!gh_symbol_p (style))
index 6296b225fc95fe98bcefd3ce295a510ed8655937..4c9a9e01a1d28045effaf18e617b3700f94101fc 100644 (file)
@@ -57,7 +57,7 @@ protected:
   Spanner * finished_beam_p_;
   
 protected:
-  virtual void do_removal_processing();
+  virtual void finalize();
   virtual bool try_music (Music*);
   virtual void acknowledge_grob (Grob_info);
   virtual void stop_translation_timestep();
@@ -111,7 +111,7 @@ Chord_tremolo_engraver::create_grobs ()
 
 
 void
-Chord_tremolo_engraver::do_removal_processing ()
+Chord_tremolo_engraver::finalize ()
 {
   typeset_beam ();
   if (beam_p_)
index 528fc7dbf7aca4dc2f4d869d3870a1ac6779071d..0481d0b74b3b7b5030ed3322a7879ecb0250e847 100644 (file)
@@ -20,7 +20,7 @@ MAKE_SCHEME_CALLBACK(Clef,before_line_breaking,1);
 SCM
 Clef::before_line_breaking (SCM smob)
 {
-  Item * s = dynamic_cast<Item*> (unsmob_element (smob));
+  Item * s = dynamic_cast<Item*> (unsmob_grob (smob));
 
   SCM glyph = s->get_grob_property ("glyph");
   
@@ -62,7 +62,7 @@ MAKE_SCHEME_CALLBACK(Clef,brew_molecule,1)
 SCM
 Clef::brew_molecule (SCM smob) 
 {
-  Grob * sc = unsmob_element (smob);
+  Grob * sc = unsmob_grob (smob);
   SCM glyph = sc->get_grob_property ("glyph");
   if (gh_string_p (glyph))
     {
index 8bd1bc186cb225e8abf6b403b6dfc4d9bd6ff3ba..8d5448b1287b2bfac2e4e9f2be0eb04fe6f95541 100644 (file)
@@ -18,7 +18,7 @@ MAKE_SCHEME_CALLBACK(Collision,force_shift_callback,2);
 SCM
 Collision::force_shift_callback (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   assert (a == X_AXIS);
   
@@ -26,7 +26,7 @@ Collision::force_shift_callback (SCM element_smob, SCM axis)
   /*
     ugh. the way DONE is done is not clean
    */
-  if (!unsmob_element (me->get_grob_property ("done")))
+  if (!unsmob_grob (me->get_grob_property ("done")))
     {
       me->set_grob_property ("done", me->self_scm ());
       do_shifts (me);
@@ -51,7 +51,7 @@ Collision::do_shifts(Grob* me)
   
   for (; gh_pair_p (hand); hand =gh_cdr (hand))
     {
-      Grob * s = unsmob_element (gh_caar (hand));
+      Grob * s = unsmob_grob (gh_caar (hand));
       Real amount = gh_scm2double (gh_cdar (hand));
       
       s->translate_axis (amount *wid, X_AXIS);
@@ -59,7 +59,7 @@ Collision::do_shifts(Grob* me)
     }
   for (; gh_pair_p (autos); autos =gh_cdr (autos))
     {
-      Grob * s = unsmob_element (gh_caar (autos));
+      Grob * s = unsmob_grob (gh_caar (autos));
       Real amount = gh_scm2double (gh_cdar (autos));
       
       if (!done.find_l (s))
@@ -84,7 +84,7 @@ Collision::automatic_shift (Grob *me)
     {
       SCM car = gh_car (s);
 
-      Grob * se = unsmob_element (car);
+      Grob * se = unsmob_grob (car);
       if (Note_column::has_interface (se))
        clash_groups[Note_column::dir (se)].push (se);
     }
@@ -209,7 +209,7 @@ Collision::forced_shift (Grob *me)
   SCM s = me->get_grob_property ("elements");
   for (; gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob * se = unsmob_element (gh_car (s));
+      Grob * se = unsmob_grob (gh_car (s));
 
       SCM force =  se->remove_grob_property ("force-hshift");
       if (gh_number_p (force))
index 0b615681a44bb9ebb011ed158a5f062d2b23bd14..d292d55027c5242b920d27ed7e0682b4cc067900 100644 (file)
@@ -33,7 +33,7 @@ Tempo_req::do_equal_b (Request const *r) const
 {
   Tempo_req const *t = dynamic_cast <Tempo_req const*> (r);
 
-  return t&& t->dur_.length_mom ()== dur_.length_mom ();
+  return t; //  && t->dur_.length_mom ()== dur_.length_mom ();
   // && metronome_i_ == t->metronome_i_;
 }
 
index c578c323c3ed8fe3a694a7697fd8407eceecb5a9..897f6861d64fbc94558c1cd474946b90fa211120 100644 (file)
@@ -20,7 +20,7 @@ MAKE_SCHEME_CALLBACK (Hairpin, brew_molecule, 1);
 SCM
 Hairpin::brew_molecule (SCM smob) 
 {
-  Grob *me= unsmob_element (smob);
+  Grob *me= unsmob_grob (smob);
   Spanner *span = dynamic_cast<Spanner*>(me);
 
   Real line = me->paper_l ()->get_var ("stafflinethickness");  
index 4f8cbcf5e32177ab908a2e6e72d41bb91c4f23fb..aed720a86fb33b1c89fe05426e508011bdb8ebd7 100644 (file)
@@ -28,7 +28,7 @@ public:
   virtual void acknowledge_grob(Grob_info);
   virtual void create_grobs ();
   virtual void stop_translation_timestep ();
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   VIRTUAL_COPY_CONS(Translator);
 
 private:
@@ -126,7 +126,7 @@ Custos_engraver::create_custos()
 }
 
 void
-Custos_engraver::do_removal_processing ()
+Custos_engraver::finalize ()
 {
   for (int i = custos_arr_.size (); i--;)
     {
index e71808590617b8e14ec91e86f6e0ca92bde94d8b..ef3399d7ec6199bfc3bdb048d28bc3326684a77c 100644 (file)
@@ -70,7 +70,8 @@
  *
  * (3) The thickness of the ledger line is fixed (limitation).
  */
-Molecule create_ledger_line (Interval x_extent, Grob *me) 
+Molecule
+Custos::create_ledger_line (Interval x_extent, Grob *me) 
 {
   Molecule line;
   Molecule slice = Font_interface::get_default_font (me)->find_by_name ("noteheads-ledgerending");
@@ -105,7 +106,8 @@ Molecule create_ledger_line (Interval x_extent, Grob *me)
   return line;
 }
 
-void add_streepjes(Grob* me,
+void
+Custos::add_streepjes(Grob* me,
                   int pos,
                   int interspaces,
                   Molecule* custos_p_)
@@ -139,7 +141,7 @@ MAKE_SCHEME_CALLBACK(Custos,brew_molecule,1);
 SCM
 Custos::brew_molecule (SCM smob)
 {
-  Item *me = (Item *)unsmob_element (smob);
+  Item *me = (Item *)unsmob_grob (smob);
   SCM scm_style = me->get_grob_property ("style");
 
   if (gh_symbol_p (scm_style))
index fa740047680db4f2b1a96660a2da9a67b1395c7c..ca52e1273a76792015984a616ea7ca890d725330 100644 (file)
@@ -46,7 +46,7 @@ Dot_column_engraver::stop_translation_timestep ()
 void
 Dot_column_engraver::acknowledge_grob (Grob_info info)
 {
-  Grob *d = unsmob_element (info.elem_l_->get_grob_property ("dot"));
+  Grob *d = unsmob_grob (info.elem_l_->get_grob_property ("dot"));
   if (d)
     {
       if (!dotcol_p_)
index 8c4e900eb3ec28aab585bd3ac0b78c718b86e0f5..014af080bf1f3f62e394fab62a6b8ff8a0eecf54 100644 (file)
@@ -50,7 +50,7 @@ MAKE_SCHEME_CALLBACK(Dot_column,force_shift_callback,2);
 SCM
 Dot_column::force_shift_callback (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   assert (a == Y_AXIS);
  me = me->parent_l (X_AXIS);
@@ -65,7 +65,7 @@ Dot_column::do_shifts (SCM l)
   Link_array<Grob> dots;
   while (gh_pair_p (l))
     {
-      dots.push (unsmob_element (gh_car (l)));
+      dots.push (unsmob_grob (gh_car (l)));
       l = gh_cdr (l);
     }
   
@@ -121,7 +121,7 @@ Dot_column::has_interface (Grob*m)
 void
 Dot_column::add_head (Grob * me, Grob *rh)
 {
-  Grob * d = unsmob_element (rh->get_grob_property ("dot"));
+  Grob * d = unsmob_grob (rh->get_grob_property ("dot"));
   if (d)
     {
       Side_position::add_support (me,rh);
index 1a695c1a123275183a08f0c5593b8f66b0c6ac3d..4dc6ab4877a7e373f86486a25ba8830e9ee2290c 100644 (file)
@@ -20,7 +20,7 @@ MAKE_SCHEME_CALLBACK(Dots,quantised_position_callback,2);
 SCM
 Dots::quantised_position_callback (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   assert (a == Y_AXIS);
     
@@ -42,7 +42,7 @@ MAKE_SCHEME_CALLBACK(Dots,brew_molecule,1);
 SCM  
 Dots::brew_molecule (SCM d)
 {
-  Grob *sc = unsmob_element (d);
+  Grob *sc = unsmob_grob (d);
   Molecule mol;
   
   SCM c = sc->get_grob_property ("dot-count");
index 278662636b3fe889ee930737c0248a47a4a42084..7b5b5361137a4c6cda6d40bab43e2268af44ec57 100644 (file)
@@ -54,7 +54,7 @@ public:
   Dynamic_engraver ();
   
 protected:
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void acknowledge_grob (Grob_info);
   virtual bool try_music (Music *req_l);
   virtual void stop_translation_timestep ();
@@ -205,7 +205,7 @@ Dynamic_engraver::create_grobs ()
       else
        {
          assert (!finished_cresc_p_);
-         Grob* cc = unsmob_element (get_property ("currentMusicalColumn"));
+         Grob* cc = unsmob_grob (get_property ("currentMusicalColumn"));
          
          cresc_p_->set_bound (RIGHT, cc);
 
@@ -268,7 +268,7 @@ Dynamic_engraver::create_grobs ()
            }
          cresc_p_->set_bound (LEFT, script_p_
                               ? script_p_
-                              : unsmob_element (get_property ("currentMusicalColumn")));
+                              : unsmob_grob (get_property ("currentMusicalColumn")));
          
          Axis_group_interface::add_element (line_spanner_, cresc_p_);
          announce_grob (cresc_p_, accepted_spanreqs_drul_[START]);
@@ -286,7 +286,7 @@ Dynamic_engraver::stop_translation_timestep ()
 }
 
 void
-Dynamic_engraver::do_removal_processing ()
+Dynamic_engraver::finalize ()
 {
   typeset_all ();
   if (line_spanner_)
@@ -310,7 +310,7 @@ Dynamic_engraver::typeset_all ()
     {
       finished_cresc_p_->set_bound (RIGHT, script_p_
                           ? script_p_
-                          : unsmob_element (get_property ("currentMusicalColumn")));
+                          : unsmob_grob (get_property ("currentMusicalColumn")));
                
       typeset_grob (finished_cresc_p_);
       finished_cresc_p_ =0;
index c82648d9f21d66826ec7ab139da14b4d0b4d2d11..a365c25d0d6dd4860e85fc1e8cca554dc9eaca50 100644 (file)
@@ -38,7 +38,7 @@ public:
 
 protected:
   virtual void acknowledge_grob (Grob_info);
-  virtual void do_removal_processing();
+  virtual void finalize();
   virtual bool try_music (Music*);
   virtual void stop_translation_timestep();
   virtual void start_translation_timestep ();
@@ -91,12 +91,12 @@ Extender_engraver::try_music (Music* r)
 }
 
 void
-Extender_engraver::do_removal_processing ()
+Extender_engraver::finalize ()
 {
   if (extender_p_)
     {
       req_l_->origin ()->warning (_ ("unterminated extender"));
-      extender_p_->set_bound(RIGHT, unsmob_element (get_property ("currentCommandColumn")));
+      extender_p_->set_bound(RIGHT, unsmob_grob (get_property ("currentCommandColumn")));
     }
 }
 
index f671784ac9416e6ec4773b9f3fd8aa996696d416..901953cce1b530a1413e0e86415502365b9d37e5 100644 (file)
@@ -17,7 +17,7 @@ MAKE_SCHEME_CALLBACK(Grace_align_item,before_line_breaking,1);
 SCM
 Grace_align_item::before_line_breaking (SCM smob)
 {
-  Grob*me = unsmob_element (smob);
+  Grob*me = unsmob_grob (smob);
 
   SCM space = me->get_grob_property ("horizontal-space");
   me->set_grob_property ("threshold",
index 1d62fabcde3edf779ad6e1a9277494656c4b6d37..0f484ae35a03545303da8f455f588fc92e391524 100644 (file)
@@ -38,9 +38,9 @@ Grace_engraver_group::finish ()
 }
 
 void
-Grace_engraver_group::do_removal_processing ()
+Grace_engraver_group::finalize ()
 {
-  Engraver_group_engraver::do_removal_processing ();
+  Engraver_group_engraver::finalize ();
 }
 
 void
@@ -118,9 +118,9 @@ Grace_engraver_group::pass_to_top_b (Music *m) const
 }
 
 void
-Grace_engraver_group::do_creation_processing ()
+Grace_engraver_group::initialize ()
 {
   calling_self_b_ = true;
-  Engraver_group_engraver::do_creation_processing ();
+  Engraver_group_engraver::initialize ();
   calling_self_b_ = false;  
 }
index 9791c35e05b9c2a88104455a39fff3c37697ac7a..e1fc4503a8c4359f27b40d5395f286811233d985 100644 (file)
@@ -39,9 +39,9 @@ Grace_performer_group::finish ()
 }
 
 void
-Grace_performer_group::do_removal_processing ()
+Grace_performer_group::finalize ()
 {
-  Performer_group_performer::do_removal_processing ();
+  Performer_group_performer::finalize ();
 }
 
 void
index 45778f035089c00b7204da8eaaaab7b7da57f277..1e1d4ec8c393205033b65e185a5d8c48eedc5e94 100644 (file)
@@ -97,7 +97,7 @@ Grace_position_engraver::stop_translation_timestep ()
       Axis_group_interface::add_element (last_musical_col_l_, align_l_);
     }
 
-  last_musical_col_l_ = dynamic_cast<Paper_column*>( unsmob_element (get_property ("currentMusicalColumn")));
+  last_musical_col_l_ = dynamic_cast<Paper_column*>( unsmob_grob (get_property ("currentMusicalColumn")));
 }
 
 void
index c36942d55f1997c19b629ae8ee31a3b59449df12..ac075aba96851424bac3e0a22e19562a18abb43c 100644 (file)
@@ -179,7 +179,7 @@ MAKE_SCHEME_CALLBACK(Grob,molecule_extent,2);
 SCM
 Grob::molecule_extent (SCM element_smob, SCM scm_axis)
 {
-  Grob *s = unsmob_element (element_smob);
+  Grob *s = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (scm_axis);
 
   Molecule *m = s->get_molecule ();
@@ -194,7 +194,7 @@ MAKE_SCHEME_CALLBACK(Grob,preset_extent,2);
 SCM
 Grob::preset_extent (SCM element_smob, SCM scm_axis)
 {
-  Grob *s = unsmob_element (element_smob);
+  Grob *s = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (scm_axis);
 
   SCM ext = s->get_grob_property ((a == X_AXIS)
@@ -237,7 +237,7 @@ Grob::calculate_dependencies (int final, int busy, SCM funcname)
 
   for (SCM d=  get_grob_property ("dependencies"); gh_pair_p (d); d = gh_cdr (d))
     {
-      unsmob_element (gh_car (d))
+      unsmob_grob (gh_car (d))
        ->calculate_dependencies (final, busy, funcname);
     }
 
@@ -257,10 +257,20 @@ Grob::get_molecule ()  const
   SCM mol = get_grob_property ("molecule");
   if (unsmob_molecule (mol))
     return unsmob_molecule (mol);
+
+  mol =  get_uncached_molecule ();
+  
+  Grob *me = (Grob*)this;
+  me->set_grob_property ("molecule", mol);
   
+  return unsmob_molecule (mol);  
+}
+SCM
+Grob::get_uncached_molecule ()const
+{
   SCM proc = get_grob_property ("molecule-callback");
 
-  mol = SCM_EOL;
+  SCM  mol = SCM_EOL;
   if (gh_procedure_p (proc)) 
     mol = gh_apply (proc, gh_list (this->self_scm (), SCM_UNDEFINED));
 
@@ -294,14 +304,9 @@ Grob::get_molecule ()  const
   if (m && to_boolean (get_grob_property ("transparent")))
     mol = Molecule (m->extent_box (), SCM_EOL).smobbed_copy ();
 
-  Grob *me = (Grob*)this;
-  me->set_grob_property ("molecule", mol);
-  
-  m = unsmob_molecule (mol);  
-  return m;
+  return mol;
 }
 
-
 /*
   
   VIRTUAL STUBS
@@ -347,7 +352,7 @@ SCM
 Grob::handle_broken_smobs (SCM src, SCM criterion)
 {
  again:
-  Grob *sc = unsmob_element (src);
+  Grob *sc = unsmob_grob (src);
   if (sc)
     {
       if (gh_number_p (criterion))
@@ -363,7 +368,7 @@ Grob::handle_broken_smobs (SCM src, SCM criterion)
       else
        {
          Line_of_score * line
-           = dynamic_cast<Line_of_score*> (unsmob_element (criterion));
+           = dynamic_cast<Line_of_score*> (unsmob_grob (criterion));
          if (sc->line_l () != line)
            {
              sc = sc->find_broken_piece (line);
@@ -647,7 +652,7 @@ Grob::common_refpoint (SCM elist, Axis a) const
   Grob * common = (Grob*) this;
   for (; gh_pair_p (elist); elist = gh_cdr (elist))
     {
-      Grob * s = unsmob_element (gh_car (elist));
+      Grob * s = unsmob_grob (gh_car (elist));
       if (s)
        common = common->common_refpoint (s, a);
     }
@@ -709,7 +714,7 @@ MAKE_SCHEME_CALLBACK(Grob,fixup_refpoint,1);
 SCM
 Grob::fixup_refpoint (SCM smob)
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   for (int a = X_AXIS; a < NO_AXES; a ++)
     {
       Axis ax = (Axis)a;
@@ -749,7 +754,7 @@ Grob::fixup_refpoint (SCM smob)
  ****************************************************/
 
 
-IMPLEMENT_UNSMOB(Grob, element);
+IMPLEMENT_UNSMOB(Grob, grob);
 IMPLEMENT_SMOBS(Grob);
 IMPLEMENT_DEFAULT_EQUAL_P(Grob);
 
@@ -801,7 +806,7 @@ Grob::do_derived_mark ()
 SCM
 ly_set_grob_property (SCM elt, SCM sym, SCM val)
 {
-  Grob * sc = unsmob_element (elt);
+  Grob * sc = unsmob_grob (elt);
 
   if (!gh_symbol_p (sym))
     {
@@ -827,7 +832,7 @@ ly_set_grob_property (SCM elt, SCM sym, SCM val)
 SCM
 ly_get_grob_property (SCM elt, SCM sym)
 {
-  Grob * sc = unsmob_element (elt);
+  Grob * sc = unsmob_grob (elt);
   
   if (sc)
     {
@@ -852,7 +857,7 @@ Grob::discretionary_processing()
 SCM
 spanner_get_bound (SCM slur, SCM dir)
 {
-  return dynamic_cast<Spanner*> (unsmob_element (slur))->get_bound (to_dir (dir))->self_scm ();
+  return dynamic_cast<Spanner*> (unsmob_grob (slur))->get_bound (to_dir (dir))->self_scm ();
 }
 
 
index 3c75ae45a3d22260f971ee4153fd305eabd8e7c0..ae50f446850f800cf90ba1d9785f4b4c705aac22 100644 (file)
@@ -18,7 +18,7 @@ MAKE_SCHEME_CALLBACK(Hara_kiri_group_spanner,y_extent,2);
 SCM
 Hara_kiri_group_spanner::y_extent (SCM element_smob, SCM scm_axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (scm_axis);
 
   assert (a == Y_AXIS);
@@ -55,7 +55,7 @@ MAKE_SCHEME_CALLBACK(Hara_kiri_group_spanner,force_hara_kiri_callback,2);
 SCM
 Hara_kiri_group_spanner::force_hara_kiri_callback (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   assert (a == Y_AXIS);
   consider_suicide (me);
@@ -67,7 +67,7 @@ MAKE_SCHEME_CALLBACK(Hara_kiri_group_spanner,force_hara_kiri_in_parent_callback,
 SCM
 Hara_kiri_group_spanner::force_hara_kiri_in_parent_callback (SCM element_smob, SCM axis)
 {
-  Grob *daughter = unsmob_element (element_smob);
+  Grob *daughter = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   assert (a == Y_AXIS);
   force_hara_kiri_callback (daughter->parent_l (a)->self_scm (), axis);
index 224a517b6ee31dca46ee8190b18839f2d85659b8..44eb9298053fe18fbb10a5f31fd674740caef1f1 100644 (file)
@@ -32,7 +32,7 @@ public:
 
 protected:
   virtual void acknowledge_grob (Grob_info);
-  virtual void do_removal_processing();
+  virtual void finalize();
   virtual bool try_music (Music*);
   virtual void stop_translation_timestep();
   virtual void start_translation_timestep ();
@@ -83,12 +83,12 @@ Hyphen_engraver::try_music (Music* r)
 }
 
 void
-Hyphen_engraver::do_removal_processing ()
+Hyphen_engraver::finalize ()
 {
   if (hyphen_p_)
     {
       req_l_->origin ()->warning (_ ("unterminated hyphen"));
-      hyphen_p_->set_bound(RIGHT, unsmob_element (get_property ("currentCommandColumn")));
+      hyphen_p_->set_bound(RIGHT, unsmob_grob (get_property ("currentCommandColumn")));
     }
 }
 
index b4a8e1738ad05a9cf57f451d760fb133607d82d4..6c0dd240ae409ed10560ce13a893c49b4581edcd 100644 (file)
@@ -24,7 +24,7 @@ MAKE_SCHEME_CALLBACK(Hyphen_spanner,brew_molecule,1)
 SCM 
 Hyphen_spanner::brew_molecule (SCM smob)
 {
-  Spanner * sp = dynamic_cast<Spanner*> (unsmob_element (smob));
+  Spanner * sp = dynamic_cast<Spanner*> (unsmob_grob (smob));
 
   Grob * common = sp;
   Direction d = LEFT;
index 5415808e58e8c03d3dca1b0accbe596694691c7b..b1a28f4350d17d32d0aed4af3d5b6ee60ba9c276 100644 (file)
@@ -37,9 +37,6 @@ public:
 class Tempo_req : public Request
 {
 public:
-  Duration dur_;
-
-
   Tempo_req();
 protected:
 
index 707df6ec4f53baaa2c701fbc2c5550a54cd285bd..028982f18f0dca6ff0c132bd97da20d20475059c 100644 (file)
@@ -15,6 +15,11 @@ struct Custos
 {
   DECLARE_SCHEME_CALLBACK(brew_molecule, (SCM ));
   static bool has_interface (Grob*);
+
+private:
+  static void add_streepjes(Grob* me, int pos, int interspaces, Molecule* custos_p_);
+  static Molecule create_ledger_line (Interval x_extent, Grob *me) ;
+
 };
 
 #endif // CUSTOS_HH
index aefbdf8437593be7841de331222b9f7ef85f036d..dfc0eb2ceb97849cf127d16c5d24f00161945daf 100644 (file)
@@ -23,13 +23,13 @@ public:
   VIRTUAL_COPY_CONS(Translator);
   Grace_engraver_group ();
 protected:
-  virtual void do_creation_processing ();
+  virtual void initialize ();
   virtual void announce_grob (Grob_info);
   virtual void start ();
   virtual void finish ();
   virtual void process ();
   virtual void each (Method_pointer);
-  virtual void do_removal_processing () ;
+  virtual void finalize () ;
   virtual void typeset_grob (Grob*);
   virtual bool try_music (Music *m);
 };
index d6805d514eaf4b8e317cb1cfecbdff25ecbfa2c1..be96df4ce1e749c9378675e2b8e44391c643a2d7 100644 (file)
@@ -27,7 +27,7 @@ protected:
   virtual void finish ();
   virtual void process ();
   virtual void each (Method_pointer);
-  virtual void do_removal_processing () ;
+  virtual void finalize () ;
   virtual void play_element (Audio_element*);
   virtual bool try_music (Music *m);
 };
index 96bf9be791ee5e6377eed2d4af76e842cb0dbc2f..86ef255b4f7cd93a7c8af6873890d844d8e36d8e 100644 (file)
@@ -104,6 +104,8 @@ public:
   virtual SCM do_derived_mark ();
 
   Molecule * get_molecule () const;
+  SCM get_uncached_molecule () const;
+  
   void suicide ();
   
   DECLARE_SCHEME_CALLBACK(preset_extent, (SCM smob, SCM axis));
@@ -172,7 +174,7 @@ public:
   DECLARE_SCHEME_CALLBACK(fixup_refpoint, (SCM));
 };
 
-Grob * unsmob_element (SCM);
+Grob * unsmob_grob (SCM);
 
 #endif // STAFFELEM_HH
 
index 88f608a7efa165987b86639ae409169c11922cb9..c9fcde7aeece72c79c033d1d0d95df5872a53439 100644 (file)
@@ -46,7 +46,7 @@ Pointer_group_interface__extract_elements (Grob const *elt, T *, const char* nam
   for (SCM s = elt->get_grob_property (name); gh_pair_p (s); s = gh_cdr (s))
     {
       SCM e = gh_car (s);
-      arr.push (dynamic_cast<T*> (unsmob_element (e)));
+      arr.push (dynamic_cast<T*> (unsmob_grob (e)));
     }
 
   arr.reverse ();
index 1c4d0e3b0f1df02f77d9383cfdebb6062b6b2e6a..4f8ca20aafd771df2e61f9035895bb62664811ad 100644 (file)
@@ -23,8 +23,8 @@ protected:
   Spanner *staffline_p_;   
 
   virtual void create_line_spanner ();
-  virtual void do_creation_processing();
-  virtual void do_removal_processing();
+  virtual void initialize();
+  virtual void finalize();
   virtual void typeset_grob (Grob*);
 public:
   VIRTUAL_COPY_CONS(Translator);
diff --git a/lily/include/lyric-engraver.hh b/lily/include/lyric-engraver.hh
deleted file mode 100644 (file)
index e69de29..0000000
index 263ae2404816573e1e7b7dd0ddf310d92b5ac878..f0e02bcfe79d4b90ee3fe3629ac6e5192132d901 100644 (file)
@@ -65,7 +65,7 @@ protected:
   virtual void acknowledge_grob(Grob_info);
   virtual void create_grobs ();
   virtual void stop_translation_timestep();
-  virtual void do_removal_processing ();  
+  virtual void finalize ();  
 private:
   void record_notehead(const String &context_id, Grob * notehead);
   void record_lyric(const String &context_id, Grob * lyric);
index a19a427aa6939600ab99b16b4f3103c51e847423..4b8eecd87728bc754ef3eb179deb1bfe44b67bda 100644 (file)
@@ -21,8 +21,6 @@
  */
 class Rhythmic_req  : public virtual Request  {
 public:
-  Duration duration_;
-
   bool do_equal_b (Request const*) const;
   void compress (Moment);
   virtual Moment length_mom () const;
@@ -76,8 +74,6 @@ protected:
 /// request which has some kind of pitch
 struct Melodic_req :virtual Request
 {
-  Pitch pitch_;
-
   static int compare (Melodic_req const&,Melodic_req const&);
   
 protected:
index 5cbe10b56c5fad1ad7b62470ddb2b03150572dca..56618c79347451d11ecc7202e2a7cce3772f3e23 100644 (file)
@@ -47,14 +47,14 @@ protected:
   /* Engraver_group_engraver interface */
 
   virtual bool try_music (Music*);
-  virtual void do_creation_processing();
-  virtual void do_removal_processing();
+  virtual void initialize();
+  virtual void finalize();
   virtual void announce_grob (Grob_info);
   virtual void do_announces();
   virtual void typeset_grob (Grob*elem_p);
 
   virtual void stop_translation_timestep();
-  virtual void do_add_processing ();
+
 };
 
 #endif // SCORE_GRAV_HH
index 4c71b7b8f797a3ffc748ecafae9384f65ce54a66..3abe6f1d99a0d77b23190a18c26f748166c533c8 100644 (file)
@@ -29,7 +29,7 @@ protected:
   virtual void prepare (Moment mom);
   virtual void process();
   virtual void start();
-  virtual void do_add_processing ();
+  virtual void initialize ();
   virtual void announce_element (Audio_element_info);
   virtual int get_tempo_i() const;
   virtual void play_element (Audio_element* p);
index 9c20697a3e6b0233d49a9af7e401661937efd53c..62c7f770cfe9aff6543b42f9f48f116e8c1fac07 100644 (file)
@@ -23,7 +23,7 @@ public:
   static Direction get_default_dir (Grob *me);
   DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM));
   DECLARE_SCHEME_CALLBACK (set_spacing_rods, (SCM ));
-
+  DECLARE_SCHEME_CALLBACK (height, (SCM,SCM));
 private:  
   static Real get_first_notecolumn_y (Grob *me, Direction dir);
   static Offset broken_trend_offset (Grob *me, Direction dir);
index d55de124be91d0d8e53582a3ee76b5a6f0b8e9ce..cdd9143900605debf0a2360149f1e53454a68097 100644 (file)
@@ -25,7 +25,7 @@ public:
   Music *check_;
 
 protected: 
-  virtual void do_creation_processing ();
+  virtual void initialize ();
   virtual bool try_music (Music *req_l);
   virtual void process_music ();
   virtual void stop_translation_timestep ();
index 411710343c4a27ed5bcdcca5e48275a6715b3a11..ebda8bdfec827f709854d1c518120ccac8fd2b95 100644 (file)
@@ -70,12 +70,11 @@ public:
   bool try_music_on_nongroup_children (Music *m);
   
   virtual void do_announces ();
-  virtual void do_add_processing ();
   virtual bool try_music (Music* req_l);       
   virtual void stop_translation_timestep();
   virtual void start_translation_timestep();   
-  virtual void do_creation_processing();
-  virtual void do_removal_processing();
+  virtual void initialize();
+  virtual void finalize();
   virtual void each (Method_pointer);
 
 };
index 7680a5d3944265f19f196f1929426aff79c24f6f..019ea273ef902988c09e707923631f265809694e 100644 (file)
@@ -39,7 +39,6 @@ public:
  
 
   void pre_move_processing();
-  void add_processing ();
   void announces();
   void post_move_processing();
   void removal_processing();
@@ -64,7 +63,6 @@ public:
   DECLARE_SMOBS(Translator, dummy);
 public:
 
-  virtual void do_add_processing ();
     /**
     try to fit the request in this engraver
 
@@ -78,8 +76,8 @@ public:
   virtual void stop_translation_timestep();
   virtual void start_translation_timestep();
   virtual void do_announces () ;
-  virtual void do_creation_processing() ;
-  virtual void do_removal_processing();
+  virtual void initialize() ;
+  virtual void finalize();
 };
 
 
index 1c3defee062ae404a8aa5b326f49df6a5f348bdf..55ff38ff8dcfb26358c5b9f979683cd59765ac0b 100644 (file)
@@ -16,9 +16,6 @@
 class Transposed_music : public Music_wrapper
 {
 public:
-  Pitch transpose_to_pitch_;
-
-
   Transposed_music (Music*, Pitch);
   
   VIRTUAL_COPY_CONS(Music);
index f37ef88881ad6e3cad64ddd62a2c3cfccefe80e5..35c4af6a35ebc509ab9f134ebd2eb9d28f3b9e71 100644 (file)
@@ -37,8 +37,8 @@ public:
   Protected_scm old_accs_;     // ugh. -> property
     
 protected:
-  virtual void do_creation_processing();
-  virtual void do_removal_processing ();
+  virtual void initialize();
+  virtual void finalize ();
   virtual bool try_music (Music *req_l);
   virtual void stop_translation_timestep();
   virtual void start_translation_timestep();
@@ -48,7 +48,7 @@ protected:
 
 
 void
-Key_engraver::do_removal_processing ()
+Key_engraver::finalize ()
 {
   old_accs_ = SCM_EOL;         // unprotect can not  be called from dtor.
 }
@@ -180,7 +180,7 @@ Key_engraver::start_translation_timestep ()
 }
 
 void
-Key_engraver::do_creation_processing ()
+Key_engraver::initialize ()
 {
   daddy_trans_l_->set_property ("keySignature", SCM_EOL);
   old_accs_ = SCM_EOL;
index b3fe56c1956d449afb892d4aeefa23eda6608332..a23b92eac8de35e824d4d4afc9bf24d1ab50d2c3 100644 (file)
@@ -76,7 +76,7 @@ MAKE_SCHEME_CALLBACK(Key_item,brew_molecule,1);
 SCM
 Key_item::brew_molecule (SCM smob)
 {
-  Grob*me =unsmob_element (smob);
+  Grob*me =unsmob_grob (smob);
 
 
   Real inter = Staff_symbol_referencer::staff_space (me)/2.0;
index 3bd6c2df5473f5652853c7f969e1fff90653cabd..8d0383c705fb0bfcb5fa4f05b93d50eb5894e729 100644 (file)
@@ -31,11 +31,11 @@ Line_group_engraver_group::typeset_grob (Grob *elem)
 
 
 void
-Line_group_engraver_group::do_removal_processing()
+Line_group_engraver_group::finalize()
 {
-  Engraver_group_engraver::do_removal_processing ();
+  Engraver_group_engraver::finalize ();
   Grob *  it
-    = unsmob_element (get_property (ly_symbol2scm ("currentCommandColumn")));
+    = unsmob_grob (get_property (ly_symbol2scm ("currentCommandColumn")));
 
   staffline_p_->set_bound(RIGHT,it);
   Engraver_group_engraver::typeset_grob (staffline_p_);
@@ -43,11 +43,11 @@ Line_group_engraver_group::do_removal_processing()
 }
 
 void
-Line_group_engraver_group::do_creation_processing()
+Line_group_engraver_group::initialize()
 {
   create_line_spanner ();
   Grob *  it
-    = unsmob_element (get_property (ly_symbol2scm ("currentCommandColumn"))); 
+    = unsmob_grob (get_property (ly_symbol2scm ("currentCommandColumn"))); 
   staffline_p_->set_bound(LEFT,it);
   
   Engraver::announce_grob (staffline_p_,0);
index 9121d4c0fbd24dfc9ec3718c69689d7b502cfc6e..99713d7d399bf152beec937dce29b1bba8624a5d 100644 (file)
@@ -61,7 +61,7 @@ Line_of_score::output_lines ()
   for (SCM s = get_grob_property ("all-elements");
        gh_pair_p (s); s = gh_cdr (s))
     {
-      unsmob_element (gh_car (s))->do_break_processing ();
+      unsmob_grob (gh_car (s))->do_break_processing ();
     }
   /*
     fixups must be done in broken line_of_scores, because new elements
@@ -88,7 +88,7 @@ Line_of_score::output_lines ()
   for (SCM s = get_grob_property ("all-elements");
        gh_pair_p (s); s = gh_cdr (s))
     {
-      unsmob_element (gh_car (s))->handle_broken_dependencies ();
+      unsmob_grob (gh_car (s))->handle_broken_dependencies ();
     }
   handle_broken_dependencies ();
 
@@ -113,7 +113,7 @@ Line_of_score::output_lines ()
       if (i < broken_into_l_arr_.size () - 1)
        {
          SCM lastcol =  gh_car (line_l->get_grob_property ("columns"));
-         Grob*  e = unsmob_element (lastcol);
+         Grob*  e = unsmob_grob (lastcol);
          SCM inter = e->get_grob_property ("between-system-string");
          if (gh_string_p (inter))
            {
@@ -229,7 +229,7 @@ Line_of_score::add_column (Paper_column*p)
 {
   Grob *me = this;
   SCM cs = me->get_grob_property ("columns");
-  Grob * prev =  gh_pair_p (cs) ? unsmob_element (gh_car (cs)) : 0;
+  Grob * prev =  gh_pair_p (cs) ? unsmob_grob (gh_car (cs)) : 0;
 
   p->rank_i_ = prev ? Paper_column::rank_i (prev) + 1 : 0; 
 
@@ -249,27 +249,27 @@ void
 Line_of_score::pre_processing ()
 {
   for (SCM s = get_grob_property ("all-elements"); gh_pair_p (s); s = gh_cdr (s))
-    unsmob_element (gh_car (s))->discretionary_processing ();
+    unsmob_grob (gh_car (s))->discretionary_processing ();
 
   if(verbose_global_b)
     progress_indication ( _f("Element count %d ",  element_count ()));
 
   
   for (SCM s = get_grob_property ("all-elements"); gh_pair_p (s); s = gh_cdr (s))
-    unsmob_element (gh_car (s))->handle_prebroken_dependencies ();
+    unsmob_grob (gh_car (s))->handle_prebroken_dependencies ();
   
   fixup_refpoints (get_grob_property ("all-elements"));
   
   for (SCM s = get_grob_property ("all-elements"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob* sc = unsmob_element (gh_car (s));
+      Grob* sc = unsmob_grob (gh_car (s));
       sc->calculate_dependencies (PRECALCED, PRECALCING, ly_symbol2scm ("before-line-breaking-callback"));
     }
   
   progress_indication ("\n" + _ ("Calculating column positions...") + " " );
   for (SCM s = get_grob_property ("all-elements"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob * e = unsmob_element (gh_car (s));
+      Grob * e = unsmob_grob (gh_car (s));
       SCM proc = e->get_grob_property ("spacing-procedure");
       if (gh_procedure_p (proc))
        gh_call1 (proc, e->self_scm ());
@@ -282,7 +282,7 @@ Line_of_score::post_processing (bool last_line)
   for (SCM s = get_grob_property ("all-elements");
        gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob* sc = unsmob_element (gh_car (s));
+      Grob* sc = unsmob_grob (gh_car (s));
       sc->calculate_dependencies (POSTCALCED, POSTCALCING,
                                  ly_symbol2scm ("after-line-breaking-callback"));
     }
@@ -306,7 +306,7 @@ Line_of_score::post_processing (bool last_line)
     (ugh. This is not very memory efficient.)  */
   for (SCM s = get_grob_property ("all-elements"); gh_pair_p (s); s = gh_cdr (s))
     {
-      unsmob_element (gh_car (s))->get_molecule ();
+      unsmob_grob (gh_car (s))->get_molecule ();
     }
   /*
     font defs;
@@ -328,7 +328,7 @@ Line_of_score::post_processing (bool last_line)
    */ 
   for (SCM s = get_grob_property ("all-elements"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob *sc = unsmob_element (gh_car (s));
+      Grob *sc = unsmob_grob (gh_car (s));
       Molecule *m = sc->get_molecule ();
       if (!m)
        continue;
@@ -373,7 +373,7 @@ Line_of_score::broken_col_range (Item const*l, Item const*r) const
   
   while (gh_pair_p (s) && gh_car (s) != l->self_scm ())
     {
-      Paper_column*c = dynamic_cast<Paper_column*> ( unsmob_element (gh_car (s)));
+      Paper_column*c = dynamic_cast<Paper_column*> ( unsmob_grob (gh_car (s)));
       if (Item::breakable_b (c) && !c->line_l_)
        ret.push (c);
 
index 899dc22996403c21ccdb434cd22508d0d20610fa..8156cecba00c3bcd1e91dc053353552d96735d4a 100644 (file)
@@ -34,9 +34,9 @@ protected:
   void deprecated_process_music();
   virtual void acknowledge_grob (Grob_info);
   virtual void stop_translation_timestep();
-  virtual void do_creation_processing ();
+  virtual void initialize ();
   virtual void create_grobs ();
-  virtual void do_removal_processing ();
+  virtual void finalize ();
 public:
 
   // todo -> property
@@ -65,7 +65,7 @@ Local_key_engraver::Local_key_engraver()
 }
 
 void
-Local_key_engraver::do_creation_processing ()
+Local_key_engraver::initialize ()
 {
   last_keysig_ = get_property ("keySignature");
   daddy_trans_l_->set_property ("localKeySignature",  last_keysig_);  
@@ -176,7 +176,7 @@ Local_key_engraver::create_grobs ()
 }
 
 void
-Local_key_engraver::do_removal_processing ()
+Local_key_engraver::finalize ()
 {
   // TODO: if grace ? signal accidentals to Local_key_engraver the 
 }
index 26ea3f2ec70320ec3068f15ec977eb88b151c82c..6fb078eda2fb14a918cc26e442bf81e815950292 100644 (file)
@@ -69,7 +69,7 @@ MAKE_SCHEME_CALLBACK(Local_key_item,brew_molecule,1);
 SCM
 Local_key_item::brew_molecule (SCM smob)
 {
-  Grob* me = unsmob_element (smob);
+  Grob* me = unsmob_grob (smob);
   
   Molecule mol;
 
index 3deeb0e24b6ee1d4655d5cbb38cdc11aa612e689..1e5e7555fce7375c2f0bf3e80b723c9f87c051ce 100644 (file)
@@ -20,7 +20,7 @@ MAKE_SCHEME_CALLBACK(Lyric_extender,brew_molecule,1)
 SCM 
 Lyric_extender::brew_molecule (SCM smob) 
 {
-  Spanner *sp = dynamic_cast<Spanner*> (unsmob_element (smob));
+  Spanner *sp = dynamic_cast<Spanner*> (unsmob_grob (smob));
 
   // ugh: refp
   Real leftext = sp->get_bound (LEFT)->extent (sp->get_bound (LEFT),
index 958655daad99358cddc329fb384260afcdd9a276..045d86ead8bc5624c52f1f78b349c936c565d2c2 100644 (file)
@@ -60,7 +60,7 @@ Lyric_phrasing_engraver::~Lyric_phrasing_engraver()
 }
 
 void
-Lyric_phrasing_engraver::do_removal_processing ()
+Lyric_phrasing_engraver::finalize ()
 {
   /*
     but do need to unprotect alist_, since Engravers are gc'd now.
index d70766eb9ce6260cf550d3870ebc3cea722b2d8c..2d498222d4a2e055f42847a9a26dd1ae7700a5c9 100644 (file)
@@ -39,7 +39,7 @@ protected:
   void create_items(Request*);
   virtual bool try_music (Music *req_l);
   virtual void start_translation_timestep ();
-  virtual void do_creation_processing ();
+  virtual void initialize ();
   virtual void create_grobs ();
   
 private:
@@ -57,7 +57,7 @@ Mark_engraver::Mark_engraver ()
 }
 
 void
-Mark_engraver::do_creation_processing ()
+Mark_engraver::initialize ()
 {
   daddy_trans_l_->set_property ("staffsFound", SCM_EOL); // ugh: sharing with barnumber grav.
 }
index f31b58d34f5c063a0c75e217222a78f664948a87..75f2bc58928b0d29ffdd48212097ccb36ab4fad6 100644 (file)
@@ -33,7 +33,7 @@ protected:
   virtual bool try_music (Music*);
   virtual void stop_translation_timestep ();
   virtual void start_translation_timestep ();
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void create_grobs ();
 
 private:
@@ -173,7 +173,7 @@ Multi_measure_rest_engraver::start_translation_timestep ()
 
 
 void
-Multi_measure_rest_engraver::do_removal_processing ()
+Multi_measure_rest_engraver::finalize ()
 {
   if (mmrest_p_)
     typeset_grob (mmrest_p_);
index 4eccf4074bb9b58dea62b16b5078f42f3b63b333..9cb9063a6b595637fcf7498da607863a40432a61 100644 (file)
@@ -40,7 +40,7 @@ MAKE_SCHEME_CALLBACK(Multi_measure_rest,brew_molecule,1);
 SCM
 Multi_measure_rest::brew_molecule (SCM smob) 
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   Spanner * sp = dynamic_cast<Spanner*> (me);
 
   SCM alist_chain = Font_interface::font_alist_chain (me);
@@ -170,7 +170,7 @@ MAKE_SCHEME_CALLBACK (Multi_measure_rest, set_spacing_rods,1);
 SCM
 Multi_measure_rest::set_spacing_rods (SCM smob)
 {
-  Grob*me = unsmob_element (smob);
+  Grob*me = unsmob_grob (smob);
 
   Spanner*sp = dynamic_cast<Spanner*> (me);
   if (!(sp->get_bound (LEFT) && sp->get_bound (RIGHT)))
index 098a86ab39ff04ce50d9438b1b40326c0eea31dc..976c41767d85452d4e3667bc64ad4ae0c16ad349 100644 (file)
@@ -73,8 +73,7 @@ Music_output_def::get_global_translator_p ()
 
   Translator_group * tg = t->instantiate (this);
   
-  tg->add_processing ();
-  tg->do_creation_processing ();
+  tg->initialize ();
   
   return dynamic_cast <Global_translator *> (tg);
 }
index 142b5ea769af60380a6cab8ccb026d0324ea126a..81f90310ba54e73674b7aca252165dbd4ad99e62 100644 (file)
@@ -20,7 +20,7 @@
 bool
 Note_column::rest_b (Grob*me) 
 {
-  return unsmob_element (me->get_grob_property ("rest"));
+  return unsmob_grob (me->get_grob_property ("rest"));
 }
 
 int
@@ -48,7 +48,7 @@ Item *
 Note_column::stem_l (Grob*me) 
 {
   SCM s = me->get_grob_property ("stem");
-  return  dynamic_cast<Item*>(unsmob_element (s));
+  return  dynamic_cast<Item*>(unsmob_grob (s));
 }
   
 Slice
@@ -61,7 +61,7 @@ Note_column::head_positions_interval(Grob *me)
   SCM h = me->get_grob_property ("note-heads");
   for (; gh_pair_p (h); h = gh_cdr (h))
     {
-      Grob *se = unsmob_element (gh_car (h));
+      Grob *se = unsmob_grob (gh_car (h));
       
       int j = int (Staff_symbol_referencer::position_f (se));
       iv.unite (Slice (j,j));
@@ -72,7 +72,7 @@ Note_column::head_positions_interval(Grob *me)
 Direction
 Note_column::dir (Grob*  me)
 {
-  Grob *stem = unsmob_element (me->get_grob_property ("stem"));
+  Grob *stem = unsmob_grob (me->get_grob_property ("stem"));
   if (stem && Stem::has_interface (stem))
     return Stem::get_direction (stem);
   else if (gh_pair_p (me->get_grob_property ("note-heads")))
@@ -111,7 +111,7 @@ Note_column::add_head (Grob*me,Grob *h)
 void
 Note_column::translate_rests (Grob*me,int dy_i)
 {
-  Grob * r = unsmob_element (me->get_grob_property ("rest"));
+  Grob * r = unsmob_grob (me->get_grob_property ("rest"));
   if (r)
     {
       r->translate_axis (dy_i * Staff_symbol_referencer::staff_space (r)/2.0, Y_AXIS);
index 7c399f9d85c4e034eda57d305cb72a7aeeeb6568..9af3c41f2a26d6636e7f323b7aca72602a53904b 100644 (file)
@@ -55,7 +55,7 @@ MAKE_SCHEME_CALLBACK(Note_head,brew_molecule,1);
 SCM
 Note_head::brew_molecule (SCM smob)  
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
 
   
   Real inter_f = Staff_symbol_referencer::staff_space (me)/2;
index 6f6b260081854f7136953215f49c5c6808a57c2c..50b08cb8e3cc61be132ffd733dac070cdb75f490 100644 (file)
@@ -604,8 +604,9 @@ music_output_def_body:
                        junk this ? there already is tempo stuff in
                        music.
                */
-               int m = gh_scm2int ( $2->get_mus_property ("metronome-count")); 
-               dynamic_cast<Midi_def*> ($$)->set_tempo ($2->dur_.length_mom (), m);
+               int m = gh_scm2int ( $2->get_mus_property ("metronome-count"));
+               Duration *d = unsmob_duration ($2->get_mus_property ("duration"));
+               dynamic_cast<Midi_def*> ($$)->set_tempo (d->length_mom (), m);
        }
        | music_output_def_body error {
 
index dd85bb6370ac370e1c26cc00c74288f37057a115..9d76fb4c5df0fb41468475d478823c8d2f5589f2 100644 (file)
@@ -31,7 +31,7 @@ public:
   Piano_pedal_engraver ();
   ~Piano_pedal_engraver ();
 protected:
-  virtual void do_creation_processing ();
+  virtual void initialize ();
   virtual bool try_music (Music*);
   virtual void stop_translation_timestep ();
   virtual void start_translation_timestep ();
@@ -58,7 +58,7 @@ Piano_pedal_engraver::Piano_pedal_engraver ()
   info_list_ = 0;
 }
 void
-Piano_pedal_engraver::do_creation_processing()
+Piano_pedal_engraver::initialize()
 {
   info_list_ = new Pedal_info[4];
   Pedal_info *p = info_list_;
index 0617db14f264ddf82f2a70a74519aefcb6eccd50..f5837a110b13ab63cceb991546c30d097d7f5416 100644 (file)
@@ -31,7 +31,7 @@ public:
   ~Piano_pedal_performer ();
   
 protected:
-  virtual void do_creation_processing ();
+  virtual void initialize ();
   virtual bool try_music (Music*);
   virtual void create_grobs ();
   virtual void stop_translation_timestep ();
@@ -55,7 +55,7 @@ Piano_pedal_performer::~Piano_pedal_performer()
 }
 
 void
-Piano_pedal_performer::do_creation_processing ()
+Piano_pedal_performer::initialize ()
 {
   info_alist_ = new Pedal_info[4];
   Pedal_info *p = info_alist_;
index de081a753d46edec26254e7742381fa71050ceb1..e327679c016ead5534f4add87c14c617fbc8be15 100644 (file)
@@ -28,8 +28,8 @@ class Property_engraver : public Engraver
 
 protected:
   virtual void acknowledge_grob (Grob_info ei);
-  virtual void do_creation_processing ();
-  virtual void do_removal_processing ();
+  virtual void initialize ();
+  virtual void finalize ();
 public:
   ~Property_engraver();
   Property_engraver();
@@ -43,7 +43,7 @@ Property_engraver::Property_engraver()
   prop_dict_ = 0;
 }
 void
-Property_engraver::do_removal_processing()
+Property_engraver::finalize()
 {
   
 }
@@ -55,7 +55,7 @@ Property_engraver::~Property_engraver ()
 }
 
 void
-Property_engraver::do_creation_processing ()
+Property_engraver::initialize ()
 {
   prop_dict_ = new Scheme_hash_table;
 
index 2c7480bdc9ec76ba8823bcb78f404990da0932e0..33a85917bc5e524c2131a9535b97cdeb60050a85 100644 (file)
 Pitch
 Relative_octave_music::to_relative_octave (Pitch)
 {
-  return last_pitch_;
+  return * unsmob_pitch (get_mus_property ("last-pitch"));
 }
 
 
 Relative_octave_music::Relative_octave_music(Music*p,Pitch def)
   : Music_wrapper (p)
 {
-  last_pitch_ = element ()->to_relative_octave (def);
+  set_mus_property ("last-pitch", element ()->to_relative_octave (def).smobbed_copy ());
   set_mus_property ("type", ly_symbol2scm ("relative-octave-music"));  
 }
 
index de7930f01eb7ed6a9eb1fb193222e868d4fb2020..2443dfd81a8611561a77f6770024f8b2078f0032 100644 (file)
@@ -30,13 +30,13 @@ public:
 
   virtual void start_translation_timestep ();
   virtual void process_music ();
-  virtual void do_creation_processing ();
+  virtual void initialize ();
 
   bool first_b_;
 };
 
 void
-Repeat_acknowledge_engraver::do_creation_processing ()
+Repeat_acknowledge_engraver::initialize ()
 {
   first_b_ = true;
   daddy_trans_l_->set_property ("repeatCommands", SCM_EOL);
index 6252f008666c8e413810fd396738f2a008eb60ac..a8f2b3ea907f7b2c151451c5bd418f0f549831dc 100644 (file)
@@ -23,11 +23,11 @@ MAKE_SCHEME_CALLBACK(Rest_collision,force_shift_callback,2);
 SCM
 Rest_collision::force_shift_callback (SCM element_smob, SCM axis)
 {
-  Grob *them = unsmob_element (element_smob);
+  Grob *them = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   assert (a == Y_AXIS);
 
-  Grob * rc = unsmob_element (them->get_grob_property ("rest-collision"));
+  Grob * rc = unsmob_grob (them->get_grob_property ("rest-collision"));
 
   if (rc)
     {
@@ -65,7 +65,7 @@ Rest_collision::add_column (Grob*me,Grob *p)
 static SCM
 head_characteristic (Grob * col)
 {
-  Grob * s = unsmob_element (col->get_grob_property ("rest"));
+  Grob * s = unsmob_grob (col->get_grob_property ("rest"));
 
   if (!s)
     return SCM_BOOL_F;
@@ -89,7 +89,7 @@ Rest_collision::do_shift (Grob *me, SCM elts)
   for (SCM s = elts; gh_pair_p (s); s = gh_cdr (s))
     {
       
-      Grob * e = unsmob_element (gh_car (s));
+      Grob * e = unsmob_grob (gh_car (s));
       if (!e)
        continue;
       
@@ -98,7 +98,7 @@ Rest_collision::do_shift (Grob *me, SCM elts)
       else
        commony= commony->common_refpoint  (e, Y_AXIS);
       
-      if (unsmob_element (e->get_grob_property ("rest")))
+      if (unsmob_grob (e->get_grob_property ("rest")))
        rests.push (e);
       else
        notes.push (e);
@@ -147,7 +147,7 @@ Rest_collision::do_shift (Grob *me, SCM elts)
          display_count = gh_scm2int (s);
          for (; i > display_count; i--)
            {
-             Grob* r = unsmob_element (rests[i-1]->get_grob_property ("rest"));
+             Grob* r = unsmob_grob (rests[i-1]->get_grob_property ("rest"));
              if (r)
                r->suicide ();
              rests[i-1]->suicide ();
@@ -198,7 +198,7 @@ Rest_collision::do_shift (Grob *me, SCM elts)
       // try to be opposite of noteheads. 
       Direction dir = - Note_column::dir (notes[0]);
 
-      Grob * r = unsmob_element (rcol->get_grob_property ("rest"));
+      Grob * r = unsmob_grob (rcol->get_grob_property ("rest"));
       Interval restdim = r->extent (r, Y_AXIS);        // ??
 
       if (restdim.empty_b ())
index b3e5668d35c303f28e7f8e1829cc46cf18d50178..149c45ba76f44fb908ef8c0db1076c8d0730c4bd 100644 (file)
@@ -19,14 +19,14 @@ MAKE_SCHEME_CALLBACK(Rest,after_line_breaking,1);
 SCM
 Rest::after_line_breaking (SCM smob)
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   int bt = gh_scm2int (me->get_grob_property ("duration-log"));
   if (bt == 0)
     {
       me->translate_axis (Staff_symbol_referencer::staff_space (me) , Y_AXIS);
     }
 
-  Grob * d = unsmob_element (me->get_grob_property ("dot"));
+  Grob * d = unsmob_grob (me->get_grob_property ("dot"));
   if (d && bt > 4) // UGH.
     {
       d->set_grob_property ("staff-position",
@@ -42,7 +42,7 @@ MAKE_SCHEME_CALLBACK(Rest,brew_molecule,1);
 SCM
 Rest::brew_internal_molecule (SCM smob)
 {
-  Grob* me = unsmob_element (smob);
+  Grob* me = unsmob_grob (smob);
   
   bool ledger_b =false;
 
index 65d762c3ea2ed6a7e32fe3da978534bac22c7068..d3ac1a48677b4c1c9550add9734712f4e73589be 100644 (file)
@@ -18,7 +18,7 @@ Item*
 Rhythmic_head::dots_l (Grob*me) 
 {
   SCM s = me->get_grob_property ("dot");
-  return dynamic_cast<Item*> (unsmob_element (s));
+  return dynamic_cast<Item*> (unsmob_grob (s));
 }
 
 int
@@ -33,7 +33,7 @@ Item*
 Rhythmic_head::stem_l (Grob*me) 
 {
   SCM s = me->get_grob_property ("stem");
-  return dynamic_cast<Item*> (unsmob_element (s));
+  return dynamic_cast<Item*> (unsmob_grob (s));
 }
 
 int
index 4db2759a19bab654bbabf2f317632496031f4965..9faf178ff691cc232ac04bebef6bbe93910d878f 100644 (file)
 #include "item.hh"
 #include "score-engraver.hh"
 #include "paper-score.hh"
-#include "musical-request.hh"
 #include "paper-column.hh"
 #include "command-request.hh"
 #include "paper-def.hh"
 #include "axis-group-interface.hh"
+#include "translator-def.hh"
 
 
 Score_engraver::Score_engraver()
@@ -76,8 +76,19 @@ Score_engraver::finish()
   use start/finish?
  */
 void
-Score_engraver::do_creation_processing ()
+Score_engraver::initialize ()
 {
+  unsmob_translator_def (definition_)->apply_property_operations (this);
+
+  assert (dynamic_cast<Paper_def *> (output_def_l_));
+  assert (!daddy_trans_l_);
+  pscore_p_ = new Paper_score;
+  pscore_p_->paper_l_ = dynamic_cast<Paper_def*>(output_def_l_);
+
+  SCM props = get_property (ly_symbol2scm ("LineOfScore"));
+
+  pscore_p_->typeset_line (new Line_of_score (props));
+  
   make_columns (Moment (0));
   scoreline_l_ = pscore_p_->line_l_;
 
@@ -85,14 +96,14 @@ Score_engraver::do_creation_processing ()
   
   command_column_l_->set_grob_property ("breakable", SCM_BOOL_T);
 
-  Engraver_group_engraver::do_creation_processing();
+  Engraver_group_engraver::initialize();
 }
 
 
 void
-Score_engraver::do_removal_processing()
+Score_engraver::finalize()
 {
-  Engraver_group_engraver::do_removal_processing();
+  Engraver_group_engraver::finalize();
   scoreline_l_->set_bound(RIGHT,command_column_l_);
   command_column_l_->set_grob_property ("breakable", SCM_BOOL_T);
   
@@ -105,7 +116,6 @@ void
 Score_engraver::process()
 {
   process_music();
-  
   announces();
   pre_move_processing();
   check_removal();
@@ -210,16 +220,6 @@ Score_engraver::set_columns (Paper_column *new_command_l,
       if (*current[i])
        {
          scoreline_l_->add_column ((*current[i]));
-#if 0
-         /*
-           TODO: delay this decision.
-          */
-         if (!Paper_column::used_b (*current[i]))
-           {
-             (*current[i])->suicide ();
-             *current[i]  =0;
-           }
-#endif
        }
       if (news[i])
        *current[i] = news[i];
@@ -285,17 +285,4 @@ Score_engraver::forbid_breaks ()
 
 ADD_THIS_TRANSLATOR(Score_engraver);
 
-void
-Score_engraver::do_add_processing ()
-{
-  Translator_group::do_add_processing ();
-  assert (dynamic_cast<Paper_def *> (output_def_l_));
-  assert (!daddy_trans_l_);
-  pscore_p_ = new Paper_score;
-  pscore_p_->paper_l_ = dynamic_cast<Paper_def*>(output_def_l_);
-
-  SCM props = get_property (ly_symbol2scm ("LineOfScore"));
-
-  pscore_p_->typeset_line (new Line_of_score (props));
-}
 
index 3479a17b469f07496593d2c66161d48d1c4477b1..317bc3ac9dbaadc7d218e04a736e2dda4d609485 100644 (file)
 #include "midi-stream.hh"
 #include "string-convert.hh"
 #include "debug.hh"
-#include "score.hh"
-#include "source-file.hh"
-#include "source.hh"
-#include "audio-staff.hh"
-
+#include "translator-def.hh"
 
 ADD_THIS_TRANSLATOR (Score_performer);
 
@@ -105,10 +101,12 @@ Score_performer::get_output_p ()
 }
 
 void
-Score_performer::do_add_processing ()
+Score_performer::initialize ()
 {
-  Translator_group::do_add_processing ();
+  unsmob_translator_def (definition_)->apply_property_operations (this);
   assert (dynamic_cast<Midi_def *> (output_def_l_));
   performance_p_ = new Performance;
-  performance_p_->midi_l_ = dynamic_cast<Midi_def*>(output_def_l_); 
+  performance_p_->midi_l_ = dynamic_cast<Midi_def*>(output_def_l_);
+
+  Translator_group::initialize ();
 }
index f72c1223195100f93eaed7a694557189591f76d8..da37ed12ff8ad50cde839f5b5736e7f49c26463e 100644 (file)
@@ -38,7 +38,7 @@ MAKE_SCHEME_CALLBACK(Script_column,before_line_breaking,1);
 SCM
 Script_column::before_line_breaking (SCM smob)
 {
-  Grob* me = unsmob_element (smob);
+  Grob* me = unsmob_grob (smob);
   Drul_array<Link_array<Grob> > arrs;
   Link_array<Grob> staff_sided 
     = Pointer_group_interface__extract_elements (me, (Grob*)0, "scripts");
index 6a1b4ad75e226d992226ce2b294e77b210c0b6a7..4f01800e3838b435910536cb6dc6888a0a2dd0b3 100644 (file)
@@ -21,7 +21,7 @@ public:
 
 protected:
   virtual bool try_music (Music*);
-  virtual void do_creation_processing ();
+  virtual void initialize ();
   virtual void stop_translation_timestep ();
   virtual void start_translation_timestep ();
   virtual void create_grobs ();
@@ -30,7 +30,7 @@ protected:
 
 
 void
-Script_engraver::do_creation_processing ()
+Script_engraver::initialize ()
 {
   script_req_l_arr_.clear();
 }
index 7143a308af9ce4e07e52467e3f0f2f505371da7d..c680f73d9306061e5b64929eaa4c0bf71a765156 100644 (file)
@@ -42,7 +42,7 @@ MAKE_SCHEME_CALLBACK(Script,after_line_breaking,1);
 SCM
 Script::after_line_breaking (SCM smob)
 {
-  Grob * me = unsmob_element (smob);
+  Grob * me = unsmob_grob (smob);
 
   Direction d = Side_position::get_direction (me);
   Side_position::set_direction (me,d);
@@ -55,7 +55,7 @@ MAKE_SCHEME_CALLBACK(Script,brew_molecule,1);
 SCM
 Script::brew_molecule (SCM smob)
 {
-  Grob *me= unsmob_element (smob);
+  Grob *me= unsmob_grob (smob);
 #if 0
    Direction dir = DOWN;
    SCM d = me->get_grob_property ("direction");
index 4ee5b7b07566e58402cbca9c5710c5e9067368aa..0610762f2d4fbec0287be76d27c2ad0942ea4077 100644 (file)
@@ -38,7 +38,7 @@ MAKE_SCHEME_CALLBACK(Separating_group_spanner,set_spacing_rods,1);
 SCM
 Separating_group_spanner::set_spacing_rods (SCM smob)
 {
-  Grob*me = unsmob_element (smob);
+  Grob*me = unsmob_grob (smob);
   
   for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s) && gh_pair_p (gh_cdr (s)); s = gh_cdr (s))
     {
@@ -48,8 +48,8 @@ Separating_group_spanner::set_spacing_rods (SCM smob)
       SCM elt = gh_cadr (s);
       SCM next_elt = gh_car (s);
 
-      Item *l = dynamic_cast<Item*> (unsmob_element (elt));
-      Item *r = dynamic_cast<Item*> (unsmob_element ( next_elt));
+      Item *l = dynamic_cast<Item*> (unsmob_grob (elt));
+      Item *r = dynamic_cast<Item*> (unsmob_grob ( next_elt));
 
       if (!r || !l)
        continue;
@@ -83,7 +83,7 @@ Separating_group_spanner::set_spacing_rods (SCM smob)
    */
   for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Item * it =dynamic_cast<Item*>(unsmob_element (gh_car (s)));
+      Item * it =dynamic_cast<Item*>(unsmob_grob (gh_car (s)));
       if (it && it->broken_b ())
        {
          it->find_prebroken_piece (LEFT) ->suicide ();
index bbbf47e54ba5e359e76258c515a97478f45825ef..024dd9b5f13dca1a6e2e26ecd39b3f5f786d3f94 100644 (file)
@@ -21,8 +21,8 @@ protected:
   Spanner * sep_span_p_;
   
   virtual void acknowledge_grob (Grob_info);
-  virtual void do_creation_processing ();
-  virtual void do_removal_processing ();
+  virtual void initialize ();
+  virtual void finalize ();
   virtual void stop_translation_timestep ();
 public:
   Separating_line_group_engraver ();
@@ -37,18 +37,18 @@ Separating_line_group_engraver::Separating_line_group_engraver ()
 }
 
 void
-Separating_line_group_engraver::do_creation_processing ()
+Separating_line_group_engraver::initialize ()
 {
   sep_span_p_ = new Spanner (get_property ("SeparatingGroupSpanner"));
   Separating_group_spanner::set_interface (sep_span_p_);
   announce_grob (sep_span_p_, 0);
-  sep_span_p_->set_bound (LEFT, unsmob_element (get_property ("currentCommandColumn")));
+  sep_span_p_->set_bound (LEFT, unsmob_grob (get_property ("currentCommandColumn")));
 }
 
 void
-Separating_line_group_engraver::do_removal_processing ()
+Separating_line_group_engraver::finalize ()
 {
-  sep_span_p_->set_bound (RIGHT, unsmob_element (get_property ("currentCommandColumn")));
+  sep_span_p_->set_bound (RIGHT, unsmob_grob (get_property ("currentCommandColumn")));
   typeset_grob (sep_span_p_);
   sep_span_p_ =0;
 }
index 1e48e3fec24b30bb7b3f5816377b9b6def6b572b..42043f5c14947863ae9f8a6185ffd780abf8ab10 100644 (file)
@@ -37,10 +37,10 @@ Separation_item::my_width (Grob *me)
   for (SCM s =  me->get_grob_property ("elements"); gh_pair_p (s); s = gh_cdr (s))
     {
       SCM elt = gh_car (s);
-      if (!unsmob_element (elt))
+      if (!unsmob_grob (elt))
        continue;
 
-      Item *il = dynamic_cast<Item*> (unsmob_element (elt));
+      Item *il = dynamic_cast<Item*> (unsmob_grob (elt));
       if (pc != il->column_l ())
        {
          /* this shouldn't happen, but let's continue anyway. */
index 7c15bdb86e835b18440b1a86b0c42e163cfea250..60fbcd8a697bec83e633ed95f7d7f659e0eaede1 100644 (file)
@@ -38,7 +38,7 @@ Side_position::get_direction (Grob*me)
     }
   
   SCM other_elt = me->get_grob_property ("direction-source");
-  Grob * e = unsmob_element(other_elt);
+  Grob * e = unsmob_grob(other_elt);
   if (e)
     {
       return (Direction)(relative_dir * Side_position::get_direction (e));
@@ -55,14 +55,14 @@ MAKE_SCHEME_CALLBACK(Side_position,side_position,2);
 SCM
 Side_position::side_position (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
 
   Grob *common = me->parent_l (a);
   SCM support = me->get_grob_property ("side-support-elements");
   for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
     {
-      Grob * e  = unsmob_element (gh_car (s));
+      Grob * e  = unsmob_grob (gh_car (s));
       if (e)
        common = common->common_refpoint (e, a);
     }
@@ -71,7 +71,7 @@ Side_position::side_position (SCM element_smob, SCM axis)
   for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
     {
 
-      Grob * e  = unsmob_element ( gh_car (s));
+      Grob * e  = unsmob_grob ( gh_car (s));
       if (e)
        {
          dim.unite (e->extent (common, a));
@@ -111,7 +111,7 @@ MAKE_SCHEME_CALLBACK(Side_position,aligned_on_self,2);
 SCM
 Side_position::aligned_on_self (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   String s ("self-alignment-");
 
@@ -132,9 +132,9 @@ Side_position::aligned_on_self (SCM element_smob, SCM axis)
          return gh_double2scm (- ext.linear_combination (gh_scm2double (align)));
        }
     }
-  else if (unsmob_element (align))
+  else if (unsmob_grob (align))
     {
-      return gh_double2scm (- unsmob_element (align)->relative_coordinate (me,  a));
+      return gh_double2scm (- unsmob_grob (align)->relative_coordinate (me,  a));
     }
     return gh_double2scm (0.0);
 }
@@ -160,7 +160,7 @@ MAKE_SCHEME_CALLBACK(Side_position,quantised_position,2);
 SCM
 Side_position::quantised_position (SCM element_smob, SCM )
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   
   
   Direction d = Side_position::get_direction (me);
@@ -190,7 +190,7 @@ MAKE_SCHEME_CALLBACK(Side_position,aligned_side,2);
 SCM
 Side_position::aligned_side (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   
   Direction d = Side_position::get_direction (me);
@@ -216,7 +216,7 @@ MAKE_SCHEME_CALLBACK(Side_position,centered_on_parent,2);
 SCM
 Side_position::centered_on_parent (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   Grob *him = me->parent_l (a);
 
index 320867da3c2a6ba192217416af58aa29a2a044cb..dce34304d6a03842899a5cbe571f4016aacc5d27 100644 (file)
@@ -174,7 +174,7 @@ Simple_spacer::add_columns (Link_array<Grob> cols)
           spring_params == SCM_UNDEFINED && gh_pair_p (s);
           s = gh_cdr (s))
        {
-         Grob *other = unsmob_element (gh_caar (s));
+         Grob *other = unsmob_grob (gh_caar (s));
          if (other != cols[i+1])
            continue;
 
@@ -210,7 +210,7 @@ Simple_spacer::add_columns (Link_array<Grob> cols)
       for (SCM s = Spaceable_element::get_minimum_distances (cols[i]);
           gh_pair_p (s); s = gh_cdr (s))
        {
-         Grob * other = unsmob_element (gh_caar (s));
+         Grob * other = unsmob_grob (gh_caar (s));
          int oi = cols.find_i (other);
          if (oi >= 0)
            {
index 61f2e3e4b5f1d322df126d0a9642e7007bcfe5a7..0ac37d0d097d449fab71070aafe87fac384b99db 100644 (file)
@@ -28,7 +28,7 @@ protected:
   virtual void acknowledge_grob (Grob_info);
   virtual void stop_translation_timestep ();
   virtual void start_translation_timestep ();
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void create_grobs ();
 
 public:
@@ -106,7 +106,7 @@ Slur_engraver::acknowledge_grob (Grob_info info)
 }
 
 void
-Slur_engraver::do_removal_processing ()
+Slur_engraver::finalize ()
 {
   for (int i = 0; i < slur_l_stack_.size (); i++)
     {
index 257416602d2508bc3d7447ac712a3cdd13adec36..3a21afe015a28d44d7418b67d1da1cb754381f65 100644 (file)
@@ -111,7 +111,7 @@ MAKE_SCHEME_CALLBACK (Slur, after_line_breaking,1);
 SCM
 Slur::after_line_breaking (SCM smob)
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   if (!scm_ilength (me->get_grob_property ("note-columns")))
     {
       me->suicide ();
@@ -199,9 +199,9 @@ Real
 Slur::get_first_notecolumn_y (Grob *me, Direction dir)
 {
   Grob *col = dir == LEFT
-    ? unsmob_element (gh_car (scm_reverse (me->get_grob_property
+    ? unsmob_grob (gh_car (scm_reverse (me->get_grob_property
                                           ("note-columns"))))
-    : unsmob_element
+    : unsmob_grob
     (gh_car (me->get_grob_property ("note-columns")));
   
   Grob *common[] =
@@ -369,7 +369,7 @@ Slur::encompass_offset (Grob*me,
                        Grob **common) 
 {
   Offset o;
-  Grob* stem_l = unsmob_element (col->get_grob_property ("stem"));
+  Grob* stem_l = unsmob_grob (col->get_grob_property ("stem"));
   
   Direction dir = Directional_element_interface::get (me);
   
@@ -422,7 +422,7 @@ Slur::get_encompass_offset_arr (Grob *me)
   Link_array<Grob>  encompass_arr;
   while (gh_pair_p (eltlist))
     {
-      encompass_arr.push (unsmob_element (gh_car (eltlist)));      
+      encompass_arr.push (unsmob_grob (gh_car (eltlist)));      
       eltlist =gh_cdr (eltlist);
     }
   encompass_arr.reverse ();
@@ -482,7 +482,7 @@ MAKE_SCHEME_CALLBACK(Slur,set_spacing_rods,1);
 SCM
 Slur::set_spacing_rods (SCM smob)
 {
-  Grob*me = unsmob_element (smob);
+  Grob*me = unsmob_grob (smob);
 
   Rod r;
   Spanner*sp = dynamic_cast<Spanner*>(me);
@@ -497,6 +497,21 @@ Slur::set_spacing_rods (SCM smob)
 }
 
 
+/*
+  ugh ?
+ */
+MAKE_SCHEME_CALLBACK(Slur,height,2);
+SCM
+Slur::height (SCM smob, SCM ax)
+{
+  Axis a = (Axis)gh_scm2int (ax);
+  Grob * me = unsmob_grob (smob);
+  assert ( a == Y_AXIS);
+
+  SCM mol = me->get_uncached_molecule ();
+  return ly_interval2scm (unsmob_molecule (mol)->extent (a));
+}
+
 /*
   Ugh should have dash-length + dash-period
  */
@@ -504,7 +519,7 @@ MAKE_SCHEME_CALLBACK (Slur, brew_molecule,1);
 SCM
 Slur::brew_molecule (SCM smob)
 {
-  Grob * me = unsmob_element (smob);
+  Grob * me = unsmob_grob (smob);
   if (!scm_ilength (me->get_grob_property ("note-columns")))
     {
       me->suicide ();
index 3c6cbac76dda1a495ac6b8d395cfbfb090f8a996..0950112705e3341a6c7bd4b71ee39fa91695769f 100644 (file)
@@ -48,8 +48,8 @@ protected:
   virtual void acknowledge_grob (Grob_info);
   virtual void start_translation_timestep ();
   virtual void stop_translation_timestep ();
-  virtual void do_creation_processing ();
-  virtual void do_removal_processing ();
+  virtual void initialize ();
+  virtual void finalize ();
 public:
   Spacing_engraver ();
 };
@@ -73,18 +73,18 @@ Spacing_engraver::Spacing_engraver()
 }
 
 void
-Spacing_engraver::do_creation_processing ()
+Spacing_engraver::initialize ()
 {
   spacing_p_  =new Spanner (get_property ("SpacingSpanner"));
   Spacing_spanner::set_interface (spacing_p_);
-  spacing_p_->set_bound (LEFT, unsmob_element (get_property ("currentCommandColumn")));  
+  spacing_p_->set_bound (LEFT, unsmob_grob (get_property ("currentCommandColumn")));  
   announce_grob (spacing_p_, 0);
 }
 
 void
-Spacing_engraver::do_removal_processing ()
+Spacing_engraver::finalize ()
 {
-  Grob * p = unsmob_element (get_property ("currentCommandColumn"));
+  Grob * p = unsmob_grob (get_property ("currentCommandColumn"));
   spacing_p_->set_bound (RIGHT, p);
   typeset_grob (spacing_p_);
   spacing_p_ =0;
@@ -136,7 +136,7 @@ Spacing_engraver::stop_translation_timestep ()
   shortest_playing = shortest_playing <? starter;
   
   Paper_column * sc
-    = dynamic_cast<Paper_column*> (unsmob_element (get_property ("currentMusicalColumn")));
+    = dynamic_cast<Paper_column*> (unsmob_grob (get_property ("currentMusicalColumn")));
 
   SCM sh = shortest_playing.smobbed_copy( );
   SCM st = starter.smobbed_copy();
index 3e2e5c7328923480ea46a43e109972804b562262..94a2bebf25f627433f93c7aa8724f5daac988a35 100644 (file)
@@ -327,7 +327,7 @@ MAKE_SCHEME_CALLBACK(Spacing_spanner, set_springs,1);
 SCM
 Spacing_spanner::set_springs (SCM smob)
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   Link_array<Grob> all (me->pscore_l_->line_l_->column_l_arr ()) ;
 
   int j = 0;
index bd02b8afc6e8330a5a9a2cab034e1d3b6d4b7fd0..4d9f53a9e470b5e8f7e1df717441fe4a79f901a1 100644 (file)
@@ -29,7 +29,7 @@ MAKE_SCHEME_CALLBACK(Span_bar,width_callback,2);
 SCM
 Span_bar::width_callback (SCM element_smob, SCM scm_axis)
 {
-  Grob *se = unsmob_element (element_smob);
+  Grob *se = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (scm_axis);
   assert (a == X_AXIS);
   String gl = ly_scm2string (se->get_grob_property ("glyph"));
@@ -46,8 +46,8 @@ MAKE_SCHEME_CALLBACK(Span_bar,before_line_breaking,1);
 SCM
 Span_bar::before_line_breaking (SCM smob)
 {
-  evaluate_empty (unsmob_element (smob));
-  evaluate_glyph (unsmob_element (smob));
+  evaluate_empty (unsmob_grob (smob));
+  evaluate_glyph (unsmob_grob (smob));
 
   /*
     no need to call   Bar::before_line_breaking (), because the info
@@ -60,7 +60,7 @@ MAKE_SCHEME_CALLBACK(Span_bar,center_on_spanned_callback,2);
 SCM
 Span_bar::center_on_spanned_callback (SCM element_smob, SCM axis)
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   Axis a = (Axis) gh_scm2int (axis);
   assert (a == Y_AXIS);
   Interval i (get_spanned_interval (me));
@@ -92,7 +92,7 @@ void
 Span_bar::evaluate_glyph (Grob*me)
 {
   SCM elts = me->get_grob_property ("elements");
-  Grob * b = unsmob_element (gh_car (elts));
+  Grob * b = unsmob_grob (gh_car (elts));
   SCM glsym =ly_symbol2scm ("glyph");
   SCM gl =b ->get_grob_property (glsym);
   if (!gh_string_p (gl))
@@ -132,7 +132,7 @@ MAKE_SCHEME_CALLBACK(Span_bar,get_bar_size,1);
 SCM
 Span_bar::get_bar_size (SCM smob)
 {
-  Grob* me =  unsmob_element (smob);
+  Grob* me =  unsmob_grob (smob);
   Interval iv (get_spanned_interval (me));
   if (iv.empty_b ())
     {
index 56bce58a58454e2739529e7d7f6b0ed04ea7720a..5b67f00571dc1f8290c201a0f79d62edbf16ebf3 100644 (file)
@@ -327,8 +327,8 @@ extend_spanner_over_item (Item *it, SCM extremal_pair)
   if (!it)
     return;
   Item * col = it->column_l ();
-  Item * i1 = dynamic_cast<Item*> (unsmob_element (gh_car (extremal_pair)));
-  Item * i2 = dynamic_cast<Item*> (unsmob_element (gh_cdr (extremal_pair)));
+  Item * i1 = dynamic_cast<Item*> (unsmob_grob (gh_car (extremal_pair)));
+  Item * i2 = dynamic_cast<Item*> (unsmob_grob (gh_cdr (extremal_pair)));
   int r = Paper_column::rank_i (col);
   if (!i1 || r < Paper_column::rank_i (i1->column_l ()))
     {
@@ -348,14 +348,14 @@ extend_spanner_over_elements (SCM value, SCM extremal_pair)
       extend_spanner_over_elements (gh_car (value), extremal_pair);
       extend_spanner_over_elements (gh_cdr (value), extremal_pair);
     }
-  else if (unsmob_element (value))
+  else if (unsmob_grob (value))
     {
-      if (Spanner * sp = dynamic_cast<Spanner*> (unsmob_element(value)))
+      if (Spanner * sp = dynamic_cast<Spanner*> (unsmob_grob(value)))
        {
          extend_spanner_over_item (sp->get_bound (LEFT), extremal_pair);
          extend_spanner_over_item (sp->get_bound (RIGHT), extremal_pair);
        }
-      else if (Item * it= dynamic_cast<Item*> (unsmob_element(value)))
+      else if (Item * it= dynamic_cast<Item*> (unsmob_grob(value)))
        extend_spanner_over_item (it, extremal_pair);
     }
 }
@@ -379,8 +379,8 @@ extend_spanner_over_elements (Grob*s)
   SCM pair = gh_cons (s1,s2);
   extend_spanner_over_elements (sp->mutable_property_alist_, pair);
 
-  Grob *p1 =  unsmob_element (gh_car (pair));
-  Grob* p2 = unsmob_element (gh_cdr (pair));
+  Grob *p1 =  unsmob_grob (gh_car (pair));
+  Grob* p2 = unsmob_grob (gh_cdr (pair));
   sp->set_bound (LEFT,p1);
   sp->set_bound (RIGHT, p2);
 
index 72c922af9c5734862390b231dfe05963e4cda4cb..baffba04329679bf08e085d1f0ff0b336dac01f6 100644 (file)
@@ -31,8 +31,8 @@ public:
 
 protected:
   virtual void play_element (Audio_element* p);
-  virtual void do_removal_processing ();
-  virtual void do_creation_processing ();
+  virtual void finalize ();
+  virtual void initialize ();
   virtual void create_grobs ();
   virtual void stop_translation_timestep ();
 
@@ -60,7 +60,7 @@ Staff_performer::~Staff_performer ()
 }
 
 void
-Staff_performer::do_creation_processing ()
+Staff_performer::initialize ()
 {
   audio_staff_p_ = new Audio_staff;
   announce_element (Audio_element_info (audio_staff_p_, 0));
@@ -71,7 +71,7 @@ Staff_performer::do_creation_processing ()
   tempo_p_ = new Audio_tempo (get_tempo_i ());
   announce_element (Audio_element_info (tempo_p_, 0));
 
-  Performer_group_performer::do_creation_processing ();
+  Performer_group_performer::initialize ();
 }
 
 void
@@ -114,9 +114,9 @@ Staff_performer::stop_translation_timestep ()
 }
 
 void
-Staff_performer::do_removal_processing ()
+Staff_performer::finalize ()
 {
-  Performer_group_performer::do_removal_processing ();
+  Performer_group_performer::finalize ();
   Performer::play_element (audio_staff_p_);
   audio_staff_p_ = 0;
 }
index 1686426734d3fca1690851599bc85215ba51622b..0f29bdc2e355e6b1f5e22faa90621f7bf35d6815 100644 (file)
@@ -26,8 +26,8 @@ public:
 protected:
   virtual ~Staff_symbol_engraver();
   virtual void acknowledge_grob (Grob_info);
-  virtual void do_removal_processing();
-  virtual void do_creation_processing();
+  virtual void finalize();
+  virtual void initialize();
 };
 
 
@@ -42,19 +42,19 @@ Staff_symbol_engraver::Staff_symbol_engraver()
 }
 
 void
-Staff_symbol_engraver::do_creation_processing()
+Staff_symbol_engraver::initialize()
 {
   span_p_ = new Spanner (get_property ("StaffSymbol"));
   
-  span_p_->set_bound(LEFT, unsmob_element (get_property ("currentCommandColumn")));
+  span_p_->set_bound(LEFT, unsmob_grob (get_property ("currentCommandColumn")));
 
   announce_grob (span_p_, 0);
 }
 
 void
-Staff_symbol_engraver::do_removal_processing()
+Staff_symbol_engraver::finalize()
 {
-  span_p_->set_bound(RIGHT,unsmob_element (get_property ("currentCommandColumn")));
+  span_p_->set_bound(RIGHT,unsmob_grob (get_property ("currentCommandColumn")));
   typeset_grob (span_p_);
   span_p_ =0;
 }
index 9b1ae4ad0811e99ace57ff4890d6bd534ce378c6..1341bf9a02625e26e01f8a825ed42430508c05da 100644 (file)
@@ -15,7 +15,7 @@
 bool
 Staff_symbol_referencer::has_interface (Grob*e)
 {
-  return unsmob_element (e->get_grob_property ("staff-symbol"))
+  return unsmob_grob (e->get_grob_property ("staff-symbol"))
     || gh_number_p (e->get_grob_property ("staff-position"));
 }
 
@@ -43,7 +43,7 @@ Grob*
 Staff_symbol_referencer::staff_symbol_l (Grob*me) 
 {
   SCM st = me->get_grob_property ("staff-symbol");
-  return unsmob_element(st);
+  return unsmob_grob(st);
 }
 
 Real
@@ -90,7 +90,7 @@ MAKE_SCHEME_CALLBACK(Staff_symbol_referencer,callback,2);
 SCM
 Staff_symbol_referencer::callback (SCM element_smob, SCM )
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
 
   
   SCM pos = me->get_grob_property ("staff-position");
index 7fa97b3e3598641680c1b79fb25b199665a0e711..7db3226f6cec9ee6fe0d1128987a6d3fc452b23c 100644 (file)
@@ -22,7 +22,7 @@ MAKE_SCHEME_CALLBACK(Staff_symbol,brew_molecule,1);
 SCM
 Staff_symbol::brew_molecule (SCM smob)
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   Spanner* sp = dynamic_cast<Spanner*> (me);
   Grob * common
     = sp->get_bound (LEFT)->common_refpoint (sp->get_bound (RIGHT), X_AXIS);
index 70d3b0f782fa396a75c6592232a7bd8d57c2f995..689d24e71f215bf50f09f2ff8512496c5ae203d9 100644 (file)
@@ -42,7 +42,7 @@ MAKE_SCHEME_CALLBACK(Stem_tremolo,dim_callback,2);
 SCM
 Stem_tremolo::dim_callback (SCM e, SCM )
 {
-  Grob * se = unsmob_element (e);
+  Grob * se = unsmob_grob (e);
   
   Real space = Staff_symbol_referencer::staff_space (se);
   return ly_interval2scm ( Interval (-space, space));
@@ -54,8 +54,8 @@ MAKE_SCHEME_CALLBACK(Stem_tremolo,brew_molecule,1);
 SCM
 Stem_tremolo::brew_molecule (SCM smob)
 {
-  Grob *me= unsmob_element (smob);
-  Grob * stem = unsmob_element (me->get_grob_property ("stem"));
+  Grob *me= unsmob_grob (smob);
+  Grob * stem = unsmob_grob (me->get_grob_property ("stem"));
   Grob * beam = Stem::beam_l (stem);
   
   Real dydx;
index 316cebb520f96e98b8d6e0b30d5fe379a610b07d..a69f476f93f8560a6c61395de85474062e25bf9c 100644 (file)
@@ -132,7 +132,7 @@ Grob*
 Stem::support_head (Grob*me)
 {
   SCM h = me->get_grob_property ("support-head");
-  Grob * nh = unsmob_element (h);
+  Grob * nh = unsmob_grob (h);
   if (nh)
     return nh;
   else if (heads_i (me) == 1)
@@ -141,7 +141,7 @@ Stem::support_head (Grob*me)
        UGH.
        */
       
-      return unsmob_element (gh_car (me->get_grob_property ("heads")));
+      return unsmob_grob (gh_car (me->get_grob_property ("heads")));
     }
   else
     return first_head (me);
@@ -179,7 +179,7 @@ Stem::extremal_heads (Grob*me)
   
   for (SCM s = me->get_grob_property ("heads"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob * n = unsmob_element (gh_car (s));
+      Grob * n = unsmob_grob (gh_car (s));
 
       
       int p = int(Staff_symbol_referencer::position_f (n));
@@ -362,7 +362,7 @@ MAKE_SCHEME_CALLBACK(Stem,before_line_breaking,1);
 SCM
 Stem::before_line_breaking (SCM smob)
 {
-  Grob*me = unsmob_element (smob);
+  Grob*me = unsmob_grob (smob);
   stem_end_position (me);      // ugh. Trigger direction calc.
   position_noteheads (me);
 
@@ -427,9 +427,9 @@ Stem::dim_callback (SCM e, SCM ax)
 {
   Axis a = (Axis) gh_scm2int (ax);
   assert (a == X_AXIS);
-  Grob *se = unsmob_element (e);
+  Grob *se = unsmob_grob (e);
   Interval r (0, 0);
-  if (unsmob_element (se->get_grob_property ("beam")) || abs (flag_i (se)) <= 2)
+  if (unsmob_grob (se->get_grob_property ("beam")) || abs (flag_i (se)) <= 2)
     ;  // TODO!
   else
     {
@@ -447,7 +447,7 @@ MAKE_SCHEME_CALLBACK(Stem,brew_molecule,1);
 SCM
 Stem::brew_molecule (SCM smob) 
 {
-  Grob*me = unsmob_element (smob);
+  Grob*me = unsmob_grob (smob);
   Molecule mol;
   Direction d = get_direction (me);
   
@@ -487,7 +487,7 @@ MAKE_SCHEME_CALLBACK(Stem,off_callback,2);
 SCM
 Stem::off_callback (SCM element_smob, SCM )
 {
-  Grob *me = unsmob_element (element_smob);
+  Grob *me = unsmob_grob (element_smob);
   
   Real r=0;
   if (Grob * f = first_head (me))
@@ -510,7 +510,7 @@ Grob*
 Stem::beam_l (Grob*me)
 {
   SCM b=  me->get_grob_property ("beam");
-  return unsmob_element (b);
+  return unsmob_grob (b);
 }
 
 
index 91a8308114a5489ad2f133f34e5000938823a450..c807868387af79117c4a1922940539116b0c81a1 100644 (file)
@@ -38,7 +38,7 @@ MAKE_SCHEME_CALLBACK(Sustain_pedal,brew_molecule,1);
 SCM
 Sustain_pedal::brew_molecule (SCM smob) 
 {
-  Grob * e = unsmob_element (smob);
+  Grob * e = unsmob_grob (smob);
   
   Molecule mol;
   SCM glyph = e->get_grob_property ("text");
index 36a9aec7dfa5edf8b822a1f27e161aded2359f53..169537a5df5ffe88e79fa1a87cfbdebc45e6745f 100644 (file)
@@ -25,8 +25,8 @@ public:
 protected:
   Spanner * delim_;
   virtual void acknowledge_grob (Grob_info);
-  virtual void do_creation_processing ();
-  virtual void do_removal_processing ();
+  virtual void initialize ();
+  virtual void finalize ();
 };
 
 ADD_THIS_TRANSLATOR(System_start_delimiter_engraver);
@@ -63,20 +63,20 @@ System_start_delimiter_engraver::System_start_delimiter_engraver()
 }
 
 void
-System_start_delimiter_engraver::do_creation_processing()
+System_start_delimiter_engraver::initialize()
 {
   delim_ = new Spanner (get_property ("SystemStartDelimiter"));
 
-  delim_->set_bound (LEFT, unsmob_element (get_property ("currentCommandColumn")));
+  delim_->set_bound (LEFT, unsmob_grob (get_property ("currentCommandColumn")));
 
 
   announce_grob (delim_,0);
 }
 
 void
-System_start_delimiter_engraver::do_removal_processing ()
+System_start_delimiter_engraver::finalize ()
 {
-  delim_->set_bound (RIGHT, unsmob_element (get_property ("currentCommandColumn")));
+  delim_->set_bound (RIGHT, unsmob_grob (get_property ("currentCommandColumn")));
   typeset_grob (delim_);
 }
 
index f75ec5591c4dfde1fa53e6ed406d13a38689594f..ebbdab9a96efce4f33f79d811a68aebe88376831 100644 (file)
@@ -64,7 +64,7 @@ MAKE_SCHEME_CALLBACK(System_start_delimiter,after_line_breaking,1);
 SCM
 System_start_delimiter::after_line_breaking (SCM smob)
 {
-  try_collapse (unsmob_element (smob));
+  try_collapse (unsmob_grob (smob));
   return SCM_UNSPECIFIED;
 }
 
@@ -86,7 +86,7 @@ MAKE_SCHEME_CALLBACK(System_start_delimiter,brew_molecule,1);
 SCM
 System_start_delimiter::brew_molecule (SCM smob)
 {
-  Grob * me = unsmob_element (smob);
+  Grob * me = unsmob_grob (smob);
   Interval ext = ly_scm2interval (Axis_group_interface::group_extent_callback (me->self_scm(), gh_int2scm (Y_AXIS)));
   Real l = ext.length (); 
   Molecule m;
index 015914aefba3542abfa9288d7e927318dbf1ca4f..78492a6dbbc76356400846d42cd4cff2c8690086 100644 (file)
@@ -49,7 +49,9 @@ Tempo_performer::create_grobs ()
     {
 
       SCM met = tempo_req_l_->get_mus_property ("metronome-count");
-      audio_p_ = new Audio_tempo (tempo_req_l_->dur_.length_mom () /
+      Duration *d = unsmob_duration (tempo_req_l_->get_mus_property ("tempo"));
+      
+      audio_p_ = new Audio_tempo (d->length_mom () /
                                  Moment (1, 4) 
                                  * Moment(gh_scm2int (met)));
 
index eb95bbf367ed9ddaa47f0b693902d666b2d188b6..34c710db9dbc055a39eabcf16b0c6e1bfabf6893 100644 (file)
@@ -180,7 +180,7 @@ MAKE_SCHEME_CALLBACK (Text_item, brew_molecule, 1);
 SCM 
 Text_item::brew_molecule (SCM smob)
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   
   SCM text = me->get_grob_property ("text");
 
index 4d9f20d2b2d531585d9a5131a5c1380b55b7e2fb..e004d14ae2e2aeb5b3d68a5d2c6aa75870c296e7 100644 (file)
@@ -26,7 +26,7 @@ public:
   Text_spanner_engraver ();
   
 protected:
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void acknowledge_grob (Grob_info);
   virtual bool try_music (Music *);
   virtual void stop_translation_timestep ();
@@ -97,7 +97,7 @@ Text_spanner_engraver::create_grobs ()
       else
        {
          assert (!finished_);
-         Grob* e = unsmob_element (get_property ("currentMusicalColumn"));
+         Grob* e = unsmob_grob (get_property ("currentMusicalColumn"));
          span_->set_bound (RIGHT, e);
 
          finished_ = span_;
@@ -118,7 +118,7 @@ Text_spanner_engraver::create_grobs ()
          current_req_ = req_drul_[START];
          span_  = new Spanner (get_property ("TextSpanner"));
          Side_position::set_axis (span_, Y_AXIS);
-         Grob *e = unsmob_element (get_property ("currentMusicalColumn"));
+         Grob *e = unsmob_grob (get_property ("currentMusicalColumn"));
          span_->set_bound (LEFT, e);
          announce_grob (span_, req_drul_[START]);
        }
@@ -153,7 +153,7 @@ Text_spanner_engraver::stop_translation_timestep ()
 }
 
 void
-Text_spanner_engraver::do_removal_processing ()
+Text_spanner_engraver::finalize ()
 {
   typeset_all ();
   if (span_)
index cce4e27b93c73cfdea50a629d8eeffb00ed98b05..e84fee6f47b3dc0ee08a628d902a973c7fe40ee7 100644 (file)
@@ -31,7 +31,7 @@ MAKE_SCHEME_CALLBACK (Text_spanner, brew_molecule, 1);
 SCM
 Text_spanner::brew_molecule (SCM smob) 
 {
-  Grob *me= unsmob_element (smob);
+  Grob *me= unsmob_grob (smob);
   Spanner *spanner = dynamic_cast<Spanner*> (me);
 
   Real staff_space = Staff_symbol_referencer::staff_space (me);
index 552c98de7017d188437927d02ad7cac740d11113..dcb5e5be8b1d2638a813e337127aeb5f9e742fa6 100644 (file)
@@ -119,6 +119,6 @@ MAKE_SCHEME_CALLBACK(Tie_column,after_line_breaking,1);
 SCM
 Tie_column::after_line_breaking (SCM smob)
 {
-  set_directions (unsmob_element (smob));
+  set_directions (unsmob_grob (smob));
   return SCM_UNSPECIFIED;
 }
index 981e71c028ecc8ac5bc088dc21770517030cda71..953bdb0ff321971d1cde16b3152f4b5209497bb1 100644 (file)
@@ -178,8 +178,8 @@ Tie_engraver::create_grobs ()
          SCM pair = gh_list_ref (head_list, gh_int2scm (i/2));
          
          Spanner * p = new Spanner (basic);
-         Tie::set_head (p,LEFT, dynamic_cast<Item*> (unsmob_element (gh_car (pair))));
-         Tie::set_head (p,RIGHT, dynamic_cast<Item*> (unsmob_element (gh_cdr (pair))));
+         Tie::set_head (p,LEFT, dynamic_cast<Item*> (unsmob_grob (gh_car (pair))));
+         Tie::set_head (p,RIGHT, dynamic_cast<Item*> (unsmob_grob (gh_cdr (pair))));
          
          tie_p_arr_.push (p);
          announce_grob (p, req_l_);
@@ -189,8 +189,8 @@ Tie_engraver::create_grobs ()
          Grob * p = new Spanner (basic);
          Tie::set_interface (p);
          
-         Tie::set_head (p, LEFT, dynamic_cast<Item*> (unsmob_element (gh_caar (s))));
-         Tie::set_head (p, RIGHT, dynamic_cast<Item*> (unsmob_element (gh_cdar (s))));
+         Tie::set_head (p, LEFT, dynamic_cast<Item*> (unsmob_grob (gh_caar (s))));
+         Tie::set_head (p, RIGHT, dynamic_cast<Item*> (unsmob_grob (gh_cdar (s))));
          
          tie_p_arr_.push (p);
          announce_grob (p, req_l_);
index 685806ff95db53709fc5c423015b002b5a24e5d6..fca448b6227ee89149b7cbc6dde43156fc9065fd 100644 (file)
@@ -39,10 +39,8 @@ inline int compare (CNote_melodic_tuple const &a, CNote_melodic_tuple const &b)
 class Tie_performer : public Performer
 {
 public:
-  VIRTUAL_COPY_CONS (Translator);
-
+  VIRTUAL_COPY_CONS(Translator);
   Tie_performer ();
-  
 private:
   bool done_;
   PQueue<CNote_melodic_tuple> past_notes_pq_;
@@ -52,7 +50,7 @@ private:
   Link_array<Audio_tie> tie_p_arr_;
   
 protected:
-  virtual void do_creation_processing ();
+  virtual void initialize ();
   virtual void start_translation_timestep ();
   virtual void stop_translation_timestep ();
   virtual void acknowledge_grob (Audio_element_info);
@@ -60,23 +58,31 @@ protected:
   virtual void create_grobs ();
 };
 
+
+Tie_performer::Tie_performer ()
+{
+  req_l_ = 0;
+  done_ = false;
+}
+
 ADD_THIS_TRANSLATOR (Tie_performer);
 
 
+#if 0
 Tie_performer::Tie_performer ()
 {
   // URG
   // if we don't do this, lily dumps core
-  // which means that ``do_creation_processing'' and
+  // which means that ``initialize'' and
   // ``start_translation_timestep'' did not happen?!
-  do_creation_processing ();
+  initialize ();
 }
+#endif
 
 void
-Tie_performer::do_creation_processing ()
+Tie_performer::initialize ()
 {
   req_l_ = 0;
-  done_ = false;
 }
 
 
index bf8805d1b705b02664931032aa0775a4c478b81e..3b188105325f725bc86356c8d36337786b0c60d3 100644 (file)
@@ -65,7 +65,7 @@ Tie::head (Grob*me, Direction d)
   SCM c = me->get_grob_property ("heads");
   c = index_cell (c, d);
 
-  return unsmob_element (c);
+  return unsmob_grob (c);
 }
 
 Real
@@ -110,7 +110,7 @@ Tie::get_default_dir (Grob*me)
 SCM
 Tie::get_control_points (SCM smob)
 {  
-  Spanner*me = dynamic_cast<Spanner*> (unsmob_element (smob));
+  Spanner*me = dynamic_cast<Spanner*> (unsmob_grob (smob));
   Direction headdir = CENTER; 
   if (head (me,LEFT))
     headdir = LEFT;
@@ -286,7 +286,7 @@ MAKE_SCHEME_CALLBACK(Tie,set_spacing_rods,1);
 SCM
 Tie::set_spacing_rods (SCM smob)  
 {
-  Grob*me = unsmob_element (smob);
+  Grob*me = unsmob_grob (smob);
   Spanner*sp = dynamic_cast<Spanner*> (me);
   Rod r;
 
@@ -304,7 +304,7 @@ MAKE_SCHEME_CALLBACK(Tie,brew_molecule,1);
 SCM
 Tie::brew_molecule (SCM smob) 
 {
-  Grob*me = unsmob_element (smob);
+  Grob*me = unsmob_grob (smob);
 
   SCM cp = me->get_grob_property ("control-points");
   if (cp == SCM_EOL)
index 868cedf3c0a057201ac2c246b74d1993d46520b3..a0d355ef9df21e7ad0b0aec8c8b2456209309587 100644 (file)
 Time_scaled_music::Time_scaled_music (int n, int d,Music *mp)
   : Music_wrapper (mp)
 {
-  num_i_ = n;
-  den_i_ = d;
-  compress (Moment (num_i_,den_i_));
+  set_mus_property ("numerator", gh_int2scm (n));
+  set_mus_property ("denominator", gh_int2scm (d));
   set_mus_property ("type",
                    Time_scaled_music_iterator::constructor_cxx_function);
+  
+  compress (Moment (n,d));
 }
 
 
index 69646280db0da218a08f003925d9c465c0ee9b6e..9a4e2b4ee428b0a58b689715be0bf5153b38081a 100644 (file)
@@ -32,7 +32,7 @@ public:
 Time_signature_engraver::Time_signature_engraver()
 { 
   time_signature_p_ =0;
-  last_time_fraction_ = SCM_EOL;
+  last_time_fraction_ = SCM_BOOL_F;
 }
 
 void
@@ -42,7 +42,7 @@ Time_signature_engraver::create_grobs()
     not rigorously safe, since the value might get GC'd and
     reallocated in the same spot */
   SCM fr= get_property ("timeSignatureFraction");
-  if (last_time_fraction_ != fr)
+  if (!time_signature_p_ && last_time_fraction_ != fr)
     {
       last_time_fraction_ = fr; 
       time_signature_p_ = new Item (get_property ("TimeSignature"));
index 263cccb14972bb9e0cf4a3c4549b2bf4a8a15f92..aa65da6e20a7a9528f53279115f9a1df66ce4bd7 100644 (file)
@@ -21,7 +21,7 @@ MAKE_SCHEME_CALLBACK(Time_signature,brew_molecule,1);
 SCM
 Time_signature::brew_molecule (SCM smob) 
 {
-  Grob * me = unsmob_element (smob);
+  Grob * me = unsmob_grob (smob);
   SCM st = me->get_grob_property ("style");
   SCM frac = me->get_grob_property ("fraction");
   int n = 4;
index 5134e67233006b5c6fc25f28a4f0a687bcd39957..d246f08f0db4f2a191ad0f16a571d601095e63ce 100644 (file)
@@ -22,6 +22,7 @@ class Timing_engraver : public Timing_translator, public Engraver
 protected:
   virtual void start_translation_timestep ();
   virtual void stop_translation_timestep ();
+  virtual void process_music ();
 public:
   VIRTUAL_COPY_CONS(Translator);
 };
@@ -61,4 +62,11 @@ Timing_engraver::stop_translation_timestep ()
 }
 
 
-
+/*
+  ugh. Translator doesn't do process_music ().
+ */
+void
+Timing_engraver::process_music ()
+{
+  Timing_translator::process_music ();
+}
index b66c23ac3f99042080861a4c0658531c35c13c5d..16fe82b6e63512e3a82be592bb560da683a2e58b 100644 (file)
@@ -87,7 +87,7 @@ Timing_translator::stop_translation_timestep()
 ADD_THIS_TRANSLATOR(Timing_translator);
 
 void
-Timing_translator::do_creation_processing()
+Timing_translator::initialize()
 {
   Moment m;
   daddy_trans_l_->set_property ("timing" , SCM_BOOL_T);  
index 57713c5d1839ef9bc08d9f1e4e30792f3ea52c22..e2fdcdb4def6874a341535e87153f1137bcc6a83 100644 (file)
@@ -70,8 +70,12 @@ Translator_group::add_translator (SCM list, Translator *t)
   list = gh_append2 (list, gh_cons (t->self_scm (), SCM_EOL));
   t->daddy_trans_l_ = this;
   t->output_def_l_ = output_def_l_;
-  t->add_processing ();
-  t->do_creation_processing ();
+  if (Translator_group*tg = dynamic_cast<Translator_group*> (t))
+    {
+      unsmob_translator_def (tg->definition_)->apply_property_operations (tg);
+    }
+  
+  t->initialize ();
   return list;
 }
 void
@@ -254,18 +258,6 @@ Translator_group::each (Method_pointer method)
 }
 
 
-
-void
-Translator_group::do_add_processing ()
-{
-  unsmob_translator_def (definition_)->apply_property_operations (this);
-  for (SCM s = simple_trans_list_; gh_pair_p (s) ; s = gh_cdr (s))
-    {
-      Translator * t = unsmob_translator (gh_car (s));
-      t->add_processing ();
-    }
-}
-
 /*
   PROPERTIES
  */
@@ -385,13 +377,13 @@ Translator_group::do_announces ()
 }
 
 void
-Translator_group::do_creation_processing ()
+Translator_group::initialize ()
 {
-  each (&Translator::do_creation_processing);
+  each (&Translator::initialize);
 }
 
 void
-Translator_group::do_removal_processing ()
+Translator_group::finalize ()
 {
   each (&Translator::removal_processing);
 }
index 485f807eb18f4e278f52028974e99873dd7a95ae..0345c2c370b08e705bfd007d94ea43a7188fc89a 100644 (file)
@@ -72,16 +72,7 @@ Translator::now_mom () const
 }
 
 
-void
-Translator::add_processing ()
-{
-  do_add_processing ();
-}
 
-void
-Translator::do_add_processing ()
-{
-}
 
 
 void
@@ -93,7 +84,7 @@ Translator::post_move_processing ()
 void
 Translator::removal_processing ()
 {
-  do_removal_processing ();
+  finalize ();
 }
 
 
@@ -146,12 +137,12 @@ Translator::do_announces ()
 }
 
 void
-Translator::do_creation_processing ()
+Translator::initialize ()
 {
 }
 
 void
-Translator::do_removal_processing ()
+Translator::finalize ()
 {
 }
 
index 74aa3006ec3b0a1f4c443226fd79b4fd9612a24d..166f68c9688e17ff75fa3603cb6cc12e201411c5 100644 (file)
@@ -13,7 +13,6 @@
 Transposed_music::Transposed_music (Music *p, Pitch pit)
   : Music_wrapper (p)
 {
-  transpose_to_pitch_ = pit;
   p->transpose (pit);
   set_mus_property ("type", ly_symbol2scm ("transposed-music"));
 }
index 542b0f7ae4e410ce2ddf3f952e0233e40569adfb..d6bcec2460e824ae010a123e63c6f29590a7ef12 100644 (file)
@@ -32,7 +32,7 @@ protected:
   /// The spanners. Array order is synced with time_scaled_music_arr_
   Link_array<Spanner> started_span_p_arr_;
 
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void acknowledge_grob (Grob_info);
   virtual bool try_music (Music*r);
   virtual void start_translation_timestep ();
@@ -81,8 +81,9 @@ Tuplet_engraver::create_grobs ()
       else
        started_span_p_arr_[i] = glep;
       
-      glep->set_grob_property ("text",
-                             ly_str02scm (to_str (time_scaled_music_arr_[i]->den_i_).ch_C()));
+
+      int d = gh_scm2int (time_scaled_music_arr_[i]->get_mus_property ("denominator"));
+      glep->set_grob_property ("text", ly_str02scm (to_str (d).ch_C()));
       
       announce_grob (glep, time_scaled_music_arr_ [i]);
     }
@@ -146,7 +147,7 @@ Tuplet_engraver::start_translation_timestep ()
 }
 
 void
-Tuplet_engraver::do_removal_processing ()
+Tuplet_engraver::finalize ()
 {
   for (int i=0; i < started_span_p_arr_.size (); i++)
     {
index 3e1d173400a527a7e4c3f496693084bd9ff665c6..b17a053a559f0528c3b8ee11b82222ad8eb2bcec 100644 (file)
@@ -38,7 +38,7 @@ MAKE_SCHEME_CALLBACK(Tuplet_spanner,brew_molecule,1);
 SCM
 Tuplet_spanner::brew_molecule (SCM smob) 
 {
-  Grob *me= unsmob_element (smob);
+  Grob *me= unsmob_grob (smob);
   Molecule  mol;
 
   // Default behaviour: number always, bracket when no beam!
@@ -193,7 +193,7 @@ MAKE_SCHEME_CALLBACK(Tuplet_spanner,after_line_breaking,1);
 SCM
 Tuplet_spanner::after_line_breaking (SCM smob)
 {
-  Grob * me = unsmob_element (smob);
+  Grob * me = unsmob_grob (smob);
   Link_array<Note_column> column_arr=
     Pointer_group_interface__extract_elements (me, (Note_column*)0, "columns");
   Spanner *sp = dynamic_cast<Spanner*> (me);
@@ -223,7 +223,7 @@ Tuplet_spanner::after_line_breaking (SCM smob)
   if (scm_ilength (me->get_grob_property ("beams")) == 1)
     {
       SCM bs = me->get_grob_property ("beams");
-      Grob *b = unsmob_element (gh_car (bs));
+      Grob *b = unsmob_grob (gh_car (bs));
       Spanner * beam_l = dynamic_cast<Spanner *> (b);
       if (!sp->broken_b () 
          && sp->get_bound (LEFT)->column_l () == beam_l->get_bound (LEFT)->column_l ()
@@ -249,7 +249,7 @@ Tuplet_spanner::get_default_dir (Grob*me)
   d = UP ;
   for (SCM s = me->get_grob_property ("columns"); gh_pair_p (s); s = gh_cdr (s))
     {
-      Grob * nc = unsmob_element (gh_car (s));
+      Grob * nc = unsmob_grob (gh_car (s));
       if (Note_column::dir (nc) < 0) 
        {
          d = DOWN;
index 408359e3297412e7f32e7c1fb5d312600a03e6fa..442731b5f355cd1038abc1b8a0dd1c6f1a53b68b 100644 (file)
@@ -22,8 +22,8 @@ public:
   Vertical_align_engraver();
 protected:
   virtual void acknowledge_grob (Grob_info);
-  virtual void do_creation_processing();
-  virtual void do_removal_processing();
+  virtual void initialize();
+  virtual void finalize();
 };
 
 Vertical_align_engraver::Vertical_align_engraver()
@@ -32,17 +32,17 @@ Vertical_align_engraver::Vertical_align_engraver()
 }
 
 void
-Vertical_align_engraver::do_creation_processing()
+Vertical_align_engraver::initialize()
 {
   valign_p_ =new Spanner (get_property ("VerticalAlignment"));
-  valign_p_->set_bound(LEFT,unsmob_element (get_property ("currentCommandColumn")));
+  valign_p_->set_bound(LEFT,unsmob_grob (get_property ("currentCommandColumn")));
   announce_grob (valign_p_ , 0);
 }
 
 void
-Vertical_align_engraver::do_removal_processing()
+Vertical_align_engraver::finalize()
 {
-  valign_p_->set_bound(RIGHT,unsmob_element (get_property ("currentCommandColumn")));
+  valign_p_->set_bound(RIGHT,unsmob_grob (get_property ("currentCommandColumn")));
   typeset_grob (valign_p_);
   valign_p_ =0;
 }
index d53dbbedd7d8c8cfe6bb21f46d3a201c128c0bfa..6396ab4275c1ba8b31dbfa3bb4800e6d166e0e24 100644 (file)
@@ -28,7 +28,7 @@ protected:
 
   virtual void start_translation_timestep ();
   virtual void acknowledge_grob (Grob_info);
-  virtual void do_removal_processing ();
+  virtual void finalize ();
   virtual void stop_translation_timestep ();
   void deprecated_process_music ();
   virtual void create_grobs ();
@@ -155,7 +155,7 @@ Volta_engraver::acknowledge_grob (Grob_info i)
 }
 
 void
-Volta_engraver::do_removal_processing ()
+Volta_engraver::finalize ()
 {
   if (volta_span_p_)
     {
index 942dd73a5e2971c9289515431a539673ea99aadd..3046205792b03c30032affb687206d779f40e467 100644 (file)
@@ -39,7 +39,7 @@ MAKE_SCHEME_CALLBACK(Volta_spanner,brew_molecule,1);
 SCM
 Volta_spanner::brew_molecule (SCM smob) 
 {
-  Grob *me = unsmob_element (smob);
+  Grob *me = unsmob_grob (smob);
   Link_array<Item> bar_arr
     = Pointer_group_interface__extract_elements (me, (Item*)0, "bars");
 
index 82de65e7b565b623a50b4503e058de73bdaaf500..be2d0f15e70893228453dd3c21a56de5e0c52444 100644 (file)
@@ -125,7 +125,7 @@ VoiceContext = \translator {
        \consists "Tie_engraver";
        \consists "Tuplet_engraver";
        \consists "Grace_position_engraver";
-%      \consists "Skip_req_swallow_translator";
+       \consists "Skip_req_swallow_translator";
        \accepts Thread; % bug if you leave out this!
        \accepts Grace;
 }
index f8b26349438c3d6e7fbf20718bbe5f86503466bf..7e653fef0392b5cd67abea1e1c91d4571f5eddee 100644 (file)
@@ -53,6 +53,9 @@ make -C Documentation  || true
 make htmldoc || true
 
 %install
+
+
+
 rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc
 
@@ -62,6 +65,13 @@ make prefix="$RPM_BUILD_ROOT%{_prefix}" install
 gzip -9fn $RPM_BUILD_ROOT%{_prefix}/info/* || true
 %endif
 
+
+
+gzip -9fn $RPM_BUILD_ROOT%{_prefix}/man/man1/* || true
+
+
+
+
 mkdir -p $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d
 cp buildscripts/out/lilypond-profile $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d/lilypond.sh
 cp buildscripts/out/lilypond-login $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d/lilypond.csh
@@ -107,12 +117,12 @@ fi
 %ifnos cygwin
 %{_prefix}/bin/abc2ly
 %{_prefix}/bin/as2text
-%{_prefix}/bin/convert-mudela
+%{_prefix}/bin/convert-ly
 %{_prefix}/bin/etf2ly
 %{_prefix}/bin/lilypond
 %{_prefix}/bin/ly2dvi
 %{_prefix}/bin/midi2ly
-%{_prefix}/bin/mudela-book
+%{_prefix}/bin/lilypond-book
 %{_prefix}/bin/musedata2ly
 %{_prefix}/bin/pmx2ly
 %else
@@ -126,12 +136,12 @@ fi
 
 %{_prefix}/man/man1/abc2ly.1.gz
 %{_prefix}/man/man1/as2text.1.gz
-%{_prefix}/man/man1/convert-mudela.1.gz
+%{_prefix}/man/man1/convert-ly.1.gz
 %{_prefix}/man/man1/etf2ly.1.gz
 %{_prefix}/man/man1/lilypond.1.gz
 %{_prefix}/man/man1/ly2dvi.1.gz
 %{_prefix}/man/man1/midi2ly.1.gz
-%{_prefix}/man/man1/mudela-book.1.gz
+%{_prefix}/man/man1/lilypond-book.1.gz
 %{_prefix}/man/man1/musedata2ly.1.gz
 %{_prefix}/man/man1/pmx2ly.1.gz
 
index 88a2bc76e351589806f476796c9dfe3b20e1869b..c284adc40a6c7d4c15f1366cabb28937bae60b54 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.109
-Entered-date: 21NOV00
+Version: 1.3.110
+Entered-date: 22NOV00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.109.tar.gz 
+       1000k lilypond-1.3.110.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.109.tar.gz 
+       1000k lilypond-1.3.110.tar.gz 
 Copying-policy: GPL
 End
index 16d75c1faf52736bec3ff81e203baa25342d2a66..992354eab669ec9544a4d8155dbc9c1d92feec4c 100644 (file)
@@ -1,11 +1,11 @@
 %define info yes
 
 Name: lilypond
-Version: 1.3.109
+Version: 1.3.110
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.109.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.110.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # Icon: lilypond-icon.gif
@@ -53,6 +53,9 @@ make -C Documentation  || true
 make htmldoc || true
 
 %install
+
+
+
 rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc
 
@@ -62,6 +65,13 @@ make prefix="$RPM_BUILD_ROOT%{_prefix}" install
 gzip -9fn $RPM_BUILD_ROOT%{_prefix}/info/* || true
 %endif
 
+
+
+gzip -9fn $RPM_BUILD_ROOT%{_prefix}/man/man1/* || true
+
+
+
+
 mkdir -p $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d
 cp buildscripts/out/lilypond-profile $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d/lilypond.sh
 cp buildscripts/out/lilypond-login $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d/lilypond.csh
@@ -107,12 +117,12 @@ fi
 %ifnos cygwin
 %{_prefix}/bin/abc2ly
 %{_prefix}/bin/as2text
-%{_prefix}/bin/convert-mudela
+%{_prefix}/bin/convert-ly
 %{_prefix}/bin/etf2ly
 %{_prefix}/bin/lilypond
 %{_prefix}/bin/ly2dvi
 %{_prefix}/bin/midi2ly
-%{_prefix}/bin/mudela-book
+%{_prefix}/bin/lilypond-book
 %{_prefix}/bin/musedata2ly
 %{_prefix}/bin/pmx2ly
 %else
@@ -126,12 +136,12 @@ fi
 
 %{_prefix}/man/man1/abc2ly.1.gz
 %{_prefix}/man/man1/as2text.1.gz
-%{_prefix}/man/man1/convert-mudela.1.gz
+%{_prefix}/man/man1/convert-ly.1.gz
 %{_prefix}/man/man1/etf2ly.1.gz
 %{_prefix}/man/man1/lilypond.1.gz
 %{_prefix}/man/man1/ly2dvi.1.gz
 %{_prefix}/man/man1/midi2ly.1.gz
-%{_prefix}/man/man1/mudela-book.1.gz
+%{_prefix}/man/man1/lilypond-book.1.gz
 %{_prefix}/man/man1/musedata2ly.1.gz
 %{_prefix}/man/man1/pmx2ly.1.gz
 
index 14b73fd75c978390e4e5b173894540ab1b063c3a..97c1fac4b0e582d2b74b94cbd466439bff590122 100644 (file)
@@ -99,7 +99,7 @@
                (breakable . #t )
                (molecule-callback . ,Custos::brew_molecule)
                (visibility-lambda . ,end-of-line-visible)
-              (style .  "vaticana")
+              (style .  vaticana)
               (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
                (meta . ,(element-description "Custos" custos-interface staff-symbol-interface break-aligned-interface) )
        ))
index 66cb8c2e6642eb2a14f61575679914ca5a6d4a6b..a91bc2f04e88fd745683d0c27b3ba54d64bd5005 100644 (file)
    (extremity-rules . ,default-slur-extremity-rules)
    (extremity-offset-alist . ,default-slur-extremity-offset-alist)
    (de-uglify-parameters . ( 1.5  0.8  -2.0))
+   (Y-extent-callback . ,Slur::height)
    (details . ((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5)
        (bezier-pct-c0 . -0.2) (bezier-pct-c3 . 0.000006)
        (bezier-pct-out-max . 0.8) (bezier-pct-in-max . 1.2)