]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.1.38 release/1.1.38
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 6 Apr 1999 08:26:06 +0000 (10:26 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 6 Apr 1999 08:26:06 +0000 (10:26 +0200)
56 files changed:
AUTHORS.txt
Documentation/topdocs/AUTHORS.yo
NEWS
TODO
VERSION
flower/include/axes.hh
flower/offset.cc
input/test/script-column.fly [new file with mode: 0644]
lily/afm-reader.cc
lily/collision.cc
lily/dynamic-engraver.cc
lily/g-script-column-engraver.cc [new file with mode: 0644]
lily/g-script-column.cc [new file with mode: 0644]
lily/g-script.cc
lily/g-staff-side.cc
lily/g-text-item.cc
lily/general-script-def.cc [deleted file]
lily/include/g-script-column.hh [new file with mode: 0644]
lily/include/g-script.hh
lily/include/g-staff-side.hh
lily/include/g-text-item.hh
lily/include/general-script-def.hh [deleted file]
lily/include/lookup.hh.orig [deleted file]
lily/include/musical-request.hh
lily/include/note-column.hh
lily/include/rhythmic-column-engraver.hh
lily/include/score-element.hh
lily/include/script-column.hh [deleted file]
lily/include/script-def.hh [deleted file]
lily/include/script.hh [deleted file]
lily/include/stem.hh
lily/mark-engraver.cc
lily/multi-measure-rest.cc
lily/musical-request.cc
lily/my-lily-parser.cc
lily/note-column.cc
lily/parser.yy
lily/request.cc
lily/rest-collision.cc
lily/rhythmic-column-engraver.cc
lily/script-column.cc [deleted file]
lily/script.cc [deleted file]
lily/slur.cc
lily/stem.cc
lily/super-element.cc
lily/text-engraver.cc
lily/tuplet-spanner.cc
ly/declarations.ly
ly/engraver.ly
make/out/lelievijver.lsm
make/out/lilypond.lsm
make/out/lilypond.spec
mutopia/gallina.ly
scm/lily.scm
scm/script.scm
scripts/ly2dvi.py

index 5ff726d4658467c1c637e6b90c2a1d3846b41305..bfbc050244bec07f9754ba7124a12a526b104964 100644 (file)
@@ -24,7 +24,7 @@ o    Anthony Fok <foka@debian.org>, debian package: debian/*
 o    Neil Jerram <nj104@cus.cam.ac.uk>.  parts of Documenta-
      tion/Vocab*
 
-o    Donald    Ervin    Knuth,     http://www.cs-staff.stan-
+o    Donald    Ervin    Knuth,     http://www-cs-staff.stan-
      ford.edu/~knuth/ mf/ital-*.mf (these  were  taken  from
      the CM fonts)
 
index ddac996a69ed3613c2846eb4c5ac49f7bbc1eaf7..2822ed5b91165dabd401535acdbb3db877cf07a2 100644 (file)
@@ -18,7 +18,7 @@ it()nemail(Anthony Fok)(foka@debian.org),
     debian package: debian/*
 it()nemail(Neil Jerram)(nj104@cus.cam.ac.uk). 
     parts of Documentation/Vocab*
-it()Donald Ervin Knuth,  lurl(http://www.cs-staff.stanford.edu/~knuth/)
+it()Donald Ervin Knuth,  lurl(http://www-cs-staff.stanford.edu/~knuth/)
     mf/ital-*.mf (these were taken from the CM fonts)
 it()nemail(Werner Lemberg)(xlwy01@uxp1.hrz.uni-dortmund.de),
     misc bugfixes, some Beam and Stem code. 
diff --git a/NEWS b/NEWS
index c3ac0d70c3a55b3e009fc1cdfc44e653a597401c..00ccefc1932cf850f864cd36b72aa8f9f83b7e56 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,39 +1,45 @@
---- ../lilypond-1.1.37.mb1/NEWS        Wed Mar 31 22:12:22 1999
-++ b/NEWS      Mon Apr  5 22:54:57 1999
-@@ -1,3 +1,9 @@
+pl 37.script2
+       - bf: AFM for BlueSky AFM files.
+       - \penalty = 4278 -> \penalty 4278
+       - URG!! fixed major (unnoticed) bug in dependency engine
+       - Further Script hacking:
+         * G_script_column
+         * G_script_column_engraver
+
+  pl 37.script1
+       - major Script rehack:
+         * G_stem_staff_side_item
+         * G_script
+         * G_script_engraver
+         * G_script_req
+       - junked Text_def, changed \property textstyle -> \property textStyle
+(todo -> convert-mudela)
+       - Line_of_score is an Axis_group_element, no more overlapping
+lines, hopefully.
+       - mf: whole diamond head tweak 
+  
 pl 37.mb2
        - Added property clefStyle: "" / "transparent" / "fullSizeChanges"
        - New example: input/test/incipit.ly
        - Documented clefStyle and restStyle in refman.tex
        - Partial bug fix: octaviated clefs. Still broken!!!
 
- pl 37.mb1
-       - Added property restStyle. 
-       - mensural 4th, 8th and 16th rests.--- ../lilypond-1.1.37/NEWS  Wed Mar 31 21:50:35 1999
-++ b/NEWS      Sun Apr  4 00:42:55 1999
-@@ -1,4 +1,13 @@
-pl 37.script1
-       - major Script rehack.
-       - junked Text_def, changed \property textstyle -> \property textStyle
-(todo -> convert-mudela)
-       - Line_of_score is an Axis_group_element, no more overlapping
-lines, hopefully.
-       - mf: whole diamond head tweak 
  
-*****
-pl 37 (march 30, 1999)
-       - diamond heads (probably really ugly).
-       - cross head.
-       - tweaked harmonic head a bit.pl 37.mb1
+pl 37.mb1
        - Added property restStyle. 
-       - mensural 4th, 8th and 16th rests.
+       - mensural 4th, 8th and 16th rests.
+pl 37.uu1
+       - FreeBSD bf
 
-*************
-
-       - diamond heads (probably really ugly).
-       - cross head.
-       - tweaked harmonic head a bit.
-       - property noteHeadStyle
+****
+pl 37 (march 30, 1999)
+       - note head styles, see input/test/noteheadstyle.fly
+         * \property noteHeadStyle:
+         * diamond note heads (probably really ugly)
+         * cross note head.
+         * harmonic head (mf sources were tweaked)
+         * transparent for no \heads
+         * \property noteHeadStyle ="" for normal heads.
 
 pl 36.mb2
        - bf: timeSignatureStyle
@@ -44,11 +50,12 @@ pl 36.hwn1
        - debian fixes.
        - don't insert extra alignment space for empty stuff.
        - Align_element derives from Axis_group_element
+       - junk cruft for detecting upbeam / downbeam.
        - junk all *{horizontal,vertical}* Score_element derived classes.
        - G_staff_side_item::padding_f_ now generic property.
        - some tweaking of beam & stem. 
        - junk pointerlist in Sources
-       - junk Stem::mult_i_, Stem::beam_gap_i_, G_staff_side_item::padding
+       - junk Stem::mult_i_, Stem::beam_gap_i_, G_staff_side_item::padding
        Bar::at_line_start_b_, Key_item::c_position_, Note_head::type_str_,
        Note_head::staff_size, Stem::xdir_
        
diff --git a/TODO b/TODO
index d87dbf09f7d2aa78068fbf0411eef7b7830296fd..a29d36efb1aec98c8bd29f8dda47b48667804c2f 100644 (file)
--- a/TODO
+++ b/TODO
@@ -17,7 +17,6 @@ Grep for TODO and ugh/ugr/urg.
 > with the note "a4" there will be a black note at the ledger line where
 > "c" would be too.  However, only the "a4" will have the extra blob.
 . * ps/lily.ps
-. * AFM for BlueSky AFM files.
 . * devise standard for functioning of Vertical_align_element.
 . * fix interstaff slurs & beams.
 . * staff size for post/prebreaks
@@ -27,9 +26,7 @@ Grep for TODO and ugh/ugr/urg.
 .  * mutopia/J.S.Bach/wtk1-fugue2.ly
 .  * input/test/grace
 .  * fix: text on rests: ridiculous dims
-. * \score { \notes { c8 c8 c8 c c c }
-\paper { \translator { \VoiceContext \remove "Auto_beam_engraver";}}
-}
+.  * clefs.ly
 . * m=\notes\relative c'''{
   \time 2/4;
 
@@ -73,6 +70,7 @@ otherwise 2). say preMudelaExample[eps]{}, and change it in document body someti
 . * latex bla.tex broken (titles / \lilyfooter stuff?
 . * fix dynamics decently, ie. use kerning & ligatures.  
 . * support_l_arr_ empty in staff-margin's G_staff_side_item
+. * slurs colllide with lyrics.
 . * minVerticalAlign for StaffGroups.
 . * fix OrchestralScore and Hara-kiri (i.e., fix Coriolan)
 . * Phrasing:  Indicating the textual underlay of a piece, or
@@ -81,6 +79,18 @@ otherwise dividing a piece into phrases.
 There are distinct ways of specifying the first two (although at
 present, they're not properly distinguished) but no distinct way to
 specify the third.  Should there be?
+. * spacing of mmrests.
+
+.* Cleanups needed
+. * Beam
+. * Stem + Notehead
+. * Slur
+. * Repeats
+. * Rhythmic_grouping
+. * Duration
+. * Spring generation
+. * Collision
+. * Rest_collision
 
 .* TODO before 1.2
 . * \selectmusic to cut pieces from music. 
@@ -129,8 +139,6 @@ compilation.
 . * fix Repeated_music design
 . * one big ly2dvi input that includes *all* tests.
 . * store req -> element, element -> element causes for warnings
-. * use G_text_item in stead.
-. * junk Script_def
 . * include examples in RPM.
 . * fix partial measures in meaningful way.
 . * add scripts to bars eg.  |^"bla" 
@@ -204,7 +212,7 @@ length?
 . * uniformise property names...
 .  * ydirection <-> yDirection
 .  * rather allow '_' in identifiers first (i.e. junk ^ and _),
-           and do y_direction?
+and do y_direction?
 .  * typo checks on property names?
 . * use streambufs and iostream
        to provide IO handling for TeX stream, mudela stream, data-file.
@@ -260,9 +268,7 @@ gs: Operand stack:
 .  * abbrev -> tremolo
 .  * abbreviation-beam -> (measured/unmeasured) tremolo
 .  * partial -> anacrouse
-. * shared lib
 . * robustify Beam (in case of no stems, 32nd notes)
-. * decentralised spring factory
 . * move paper vars into engraver properties
 . * check for groff / troff/ nroff et
 . * more intelligent file searching
@@ -270,17 +276,6 @@ gs: Operand stack:
 . * handle ^C for tmp/file creation.
 . * make LilyPond RPM fully relocatable
 . * dots & rest collisions.
-. * documentation
-.  * remove links to non-free SW.
-.  * internal documentation
-.  * a general paper. 
-.  * \properties
-.   * left/rightbeamcount
-.   * various other new properties.
-.  * introduction?
-.  * info?
-.  * LaTeX?
-.  * more manpages?
 . * the warning about the negative slur/tie length appears twice
 which is irritating.
 . * better hshift (dots, distance, head dependent)
@@ -404,7 +399,6 @@ touching it.
 .  * slurs
 .  * accents
 .  * dynamics
-
 > Would it be hard to add support for proper dynamics in MIDI output?  I
 > would really like to have this feature...
 
@@ -493,13 +487,19 @@ hesitate to ask.
 .  * PS lines to .eps files
 .  * write custom prolog
 
-.  * NIFF ?
-.  * Common Music Notation
-.  * PostScript output (esp. Beams, Slurs, etc)
-.  * Move all Score_elems, into libmutype.a
-.  * SGML
+. * SGML input
 
 . * Documentation
+.  * remove links to non-free SW.
+.  * internal documentation
+.  * a general paper. 
+.  * \properties
+.   * left/rightbeamcount
+.   * various other new properties.
+.  * introduction?
+.  * info?
+.  * LaTeX?
+.  * more manpages?
 .  * Doc (C) stuff of sheet music
 .  * a better format?  SGML?  TeX?  Info?
 .  * a better tutorial
diff --git a/VERSION b/VERSION
index 83b317ad9bc0439850da13c93357a0b65479da63..1d49b60ae6033c74a06da39ea45d303c7bebbedb 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=1
-PATCH_LEVEL=37
-MY_PATCH_LEVEL=mb2
+PATCH_LEVEL=38
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index dfacac28a1a9527e61113e9393c387db66eb96b1..b67eb47766a9d98bbf16f16bcf237856409e24ba 100644 (file)
@@ -16,13 +16,11 @@ enum Axis {
     NO_AXES=2,
 };
 
-#ifndef STANDALONE
 
 #include "string.hh"           // ugh
 
 String axis_name_str (Axis);
 
-#endif // STANDALONE
 
 /**
   the operator ++ for Axis. 
index 916640e692f305149766da9da6f3a093c9cd612a..258cc1782cc4a63ca2e39001a26fddb1402b8c30 100644 (file)
@@ -24,15 +24,25 @@ Offset::str () const
 }
 #endif
 
+
+/*
+  free bsd fix by John Galbraith
+ */
+  
 Offset
 complex_multiply (Offset z1, Offset z2)
 {
   Offset z;
-  z[X_AXIS] = z1[X_AXIS] * z2[X_AXIS] - z1[Y_AXIS]*z2[Y_AXIS];
-  z[Y_AXIS] = z1[X_AXIS] * z2[Y_AXIS] + z1[Y_AXIS] * z2[X_AXIS];
+  if(!isinf(z2[Y_AXIS]))
+  {
+      z[X_AXIS] = z1[X_AXIS] * z2[X_AXIS] - z1[Y_AXIS]*z2[Y_AXIS];
+      z[Y_AXIS] = z1[X_AXIS] * z2[Y_AXIS] + z1[Y_AXIS] * z2[X_AXIS];
+  }
   return z;
 }
 
+
+
 Offset
 complex_exp (Offset o)
 {
diff --git a/input/test/script-column.fly b/input/test/script-column.fly
new file mode 100644 (file)
index 0000000..381c5fb
--- /dev/null
@@ -0,0 +1,3 @@
+%c''4^|^.^"foo"^"klap"
+c''4^|^.^"foo"^"klap"^"puk"^\fermata^\stopped
+c4_|_._"foo"_"klap"_"puk"_\fermata_\stopped
index 5a606bd28d79a585aca2ca5611d43a2adccba825..7663aab22b392f0902ad1ca7041eb9df1f7eba80 100644 (file)
@@ -47,6 +47,8 @@ read_char_metric (String s, int size)
       String c = strip_leading_white (a[i]);
 
       Array<String> b = String_convert::split_arr (c, ' ');
+      if (!b.size ())
+       continue;
       if (b[0] == "C")
        char_metric.C_ = b[1].value_i ();
       else if (b[0] == "WX")
@@ -71,7 +73,10 @@ Adobe_font_metric::read_char_metrics (Data_file &input, int size)
       Adobe_font_char_metric afm_char =read_char_metric (s, size);
       char_metrics_.push (afm_char);
       int i = char_metrics_.size ()-1;
-      ascii_to_metric_idx_ [afm_char.C_] = i;
+
+      // TFM files uses neg.  charcodes to store Space
+      if (afm_char.C_ >= 0)
+       ascii_to_metric_idx_ [afm_char.C_] = i;
       name_to_metric_dict_ [afm_char.N_] = i;
     }
 }
index 706301aad1bd674051a19744d6dc528106a0e4fd..56676c1d9938e1f4a324a8d003b91e37f5290d89 100644 (file)
@@ -19,7 +19,6 @@ Collision::Collision()
 void
 Collision::add_column (Note_column* ncol_l)
 {
-  // ugh.  Fixme.
   clash_l_arr_.push (ncol_l);
   add_element (ncol_l);
   add_dependency (ncol_l);
@@ -33,7 +32,7 @@ int idx (int dir, bool h_shift_b)
   assert (abs (dir) == 1);
   int j = dir > 0 ? 0 : 3;
   if (h_shift_b)
-       j += dir;
+    j += dir;
   return j;
 }
 
@@ -49,22 +48,22 @@ void
 Collision::do_pre_processing()
 {
   if (clash_l_arr_.size() <= 1)
-       return;
+    return;
 
   /*
     [stem up, stem up shifted, stem down shifted, stem down]
-    */
+  */
   Array<Note_column*> clash_group_arr_a[4];
 
   for (int i=0; i < clash_l_arr_.size(); i++)
     {
       Note_column* c_l = clash_l_arr_[i];
-      if (! c_l->dir_)
+      Direction d = c_l->dir ();
+      if (!d)
        {
          warning (_ ("No stem direction set. Ignoring column in clash."));
          continue;
        }
-      int d = (c_l->dir_);
 
       SCM shift = c_l->remove_elt_property (horizontal_shift_scm_sym);
       bool shift_b  = (shift != SCM_BOOL_F);
@@ -130,6 +129,7 @@ Collision::do_pre_processing()
        x_off[idx (d, true)] = d *1.0 ;
     } while ((d *= -1) != 1);
 
+
   if (!middle.empty_b()
       && middle.length() < 2 && col_l_a[idx (1,0)] && col_l_a[idx (-1,0)]) {
     // reproduction of bugfix at 3am ?
@@ -151,13 +151,8 @@ Collision::do_pre_processing()
     {
       if (col_l_a[j])
        {
-         /* collision.cc:138: request for method `translate' is ambiguous
-
-            (shaddup)
-            */
          Offset o (x_off[j] * wid_f, 0);
          col_l_a[j]->translate (o);
-         //      ((Score_element*)col_l_a[j])->translate (o);
        }
     }
 }
index f3e72a2df31370eded624203e3c8332490d3a6eb..e2188d4eb7e3c0cce8c5a0067addb9d178f7d923 100644 (file)
@@ -101,6 +101,9 @@ Dynamic_engraver::do_process_requests()
          text_p_->style_str_ = prop.length_i () ? prop :  "dynamic";
 
          staff_side_p_ = new G_staff_side_item;
+         staff_side_p_->set_elt_property (script_priority_scm_sym,
+                                          gh_int2scm (100));
+                                          
          staff_side_p_->set_victim (text_p_);
          staff_side_p_->axis_ = Y_AXIS;
          
diff --git a/lily/g-script-column-engraver.cc b/lily/g-script-column-engraver.cc
new file mode 100644 (file)
index 0000000..831f28b
--- /dev/null
@@ -0,0 +1,93 @@
+/*   
+  g-script-column-engraver.cc --  implement G_script_column_engraver
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "engraver.hh"
+#include "g-script-column.hh"
+#include "g-staff-side.hh"
+
+/**
+   Find potentially colliding scripts, and put them in a
+   G_script_column, that will fix the collisions.  */
+class G_script_column_engraver : public Engraver
+{
+  G_script_column *scol_p_;
+  Link_array<Item> script_l_arr_;
+  Link_array<G_staff_side_item> staff_side_l_arr_;  
+public:
+  G_script_column_engraver ();
+  VIRTUAL_COPY_CONS(Translator);
+protected:
+  virtual void acknowledge_element (Score_element_info);
+  virtual void process_acknowledged ();
+  virtual void  do_pre_move_processing ();
+  virtual void  do_post_move_processing ();
+};
+
+
+G_script_column_engraver::G_script_column_engraver()
+{
+  scol_p_ =0;
+}
+
+void
+G_script_column_engraver::do_pre_move_processing ()
+{
+  if (scol_p_)
+    {
+      typeset_element (scol_p_);
+      scol_p_ =0;
+    }
+}
+
+void
+G_script_column_engraver::do_post_move_processing ()
+{
+  script_l_arr_.clear ();
+  staff_side_l_arr_.clear ();
+}
+
+void
+G_script_column_engraver::acknowledge_element( Score_element_info inf) 
+{
+  Item *thing =  dynamic_cast<Item*>(inf.elem_l_);
+  if (!thing)
+    return;
+  
+  Dimension_cache * parcache = thing->dim_cache_[Y_AXIS].parent_l_;
+  if (!parcache || !thing)
+    return ;
+  
+  Graphical_element *parent = parcache->element_l ();
+
+  if (G_staff_side_item * ss = dynamic_cast<G_staff_side_item*>(parent))
+    {
+      if (!ss->breakable_b ())
+       {
+         script_l_arr_.push (thing);
+       }
+    }
+}
+
+void
+G_script_column_engraver::process_acknowledged ()
+{
+  if (!scol_p_ && script_l_arr_.size () > 1)
+    {
+      scol_p_ = new G_script_column;
+      announce_element (Score_element_info (scol_p_, 0));
+    }
+
+  if (scol_p_)
+    {
+      for (int i=0; i < script_l_arr_.size (); i++)
+       scol_p_->add_staff_sided (script_l_arr_[i]);
+      script_l_arr_.clear ();
+    }
+}
+ADD_THIS_TRANSLATOR(G_script_column_engraver);
diff --git a/lily/g-script-column.cc b/lily/g-script-column.cc
new file mode 100644 (file)
index 0000000..d6f3d8b
--- /dev/null
@@ -0,0 +1,76 @@
+/*   
+  g-script-column.cc --  implement G_script_column
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+#include "g-script-column.hh"
+#include "g-staff-side.hh"
+
+static G_staff_side_item *
+get_g_staff_side (Item *i)
+{
+  Graphical_element *e1 = i->dim_cache_[Y_AXIS].parent_l_->element_l ();
+
+  return dynamic_cast<G_staff_side_item*>(e1);
+}
+
+void
+G_script_column::add_staff_sided (Item *i)
+{
+  SCM p = get_g_staff_side (i)->get_elt_property (script_priority_scm_sym);
+  if (p == SCM_BOOL_F)
+    return;
+  
+  staff_sided_item_l_arr_.push (i);
+  add_dependency (i);
+}
+
+static int
+staff_side_compare (Item * const &i1,
+                   Item * const &i2)
+{
+  Score_element *e1 = get_g_staff_side (i1);
+  Score_element *e2 = get_g_staff_side (i2);
+
+  SCM p1 = e1->get_elt_property (script_priority_scm_sym);
+  SCM p2 = e2->get_elt_property (script_priority_scm_sym);
+
+  return gh_scm2int (SCM_CDR(p1)) - gh_scm2int (SCM_CDR(p2));
+}
+
+void
+G_script_column::do_pre_processing ()
+{
+  Drul_array<Link_array<Item> > arrs;
+
+  for (int i=0; i < staff_sided_item_l_arr_.size (); i++)
+    {
+      G_staff_side_item * ip = get_g_staff_side (staff_sided_item_l_arr_[i]);
+      arrs[ip->dir_].push (staff_sided_item_l_arr_[i]);
+    }
+
+  Direction d = DOWN;
+  do {
+    Link_array<Item> &arr(arrs[d]);
+    
+    arr.sort (staff_side_compare);
+
+    Item * last = 0;
+    for (int i=0; i < arr.size (); i++)
+      {
+       G_staff_side_item * gs = get_g_staff_side (arr[i]);
+       if (last)
+         {
+           gs->add_support (last);
+           gs->add_support (get_g_staff_side (last));
+         }
+           
+       gs->remove_elt_property (script_priority_scm_sym);
+       last = arr[i];
+      }
+    
+  } while (flip (&d) != DOWN);
+}
index 9ad7c9aca287fca9bebd66e5f4c1e3b861128221..867bcf7dd59ddd57ea0fe9ec67b39ce7a8c96808 100644 (file)
@@ -12,7 +12,7 @@
   TODO: Quantisation support (staccato dots between stafflines)
 
 */
-
+#include "debug.hh"
 #include "g-script.hh"
 #include "lookup.hh"
 #include "g-staff-side.hh"
@@ -67,3 +67,9 @@ G_script::do_brew_molecule_p () const
 {
   return new Molecule (get_molecule (staff_side_l_->dir_));
 }
+
+void
+G_script::do_print () const
+{
+  DOUT << "Indices: " << indices_drul_[LEFT] << ", " << indices_drul_[RIGHT];
+}
index db1b29cd69dee8a84838c3529d17aa3bdbe6d711..4d74c166283821b48e5b45d53b6a501013db391f 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "g-staff-side.hh"
 #include "staff-symbol.hh"
+#include "debug.hh"
 
 G_staff_side_item::G_staff_side_item ()
 {
@@ -121,3 +122,32 @@ G_staff_side_item::do_add_processing ()
       add_support (staff_symbol_l ());
     }
 }
+
+Interval
+G_staff_side_item::do_height () const
+{
+  Interval i;
+  if (to_position_l_)
+    return to_position_l_->extent (Y_AXIS);
+  return i;
+}
+
+Interval
+G_staff_side_item::do_width () const
+{
+  Interval i;
+  if (to_position_l_)
+    return to_position_l_->extent (X_AXIS);
+  return i;
+}
+void
+G_staff_side_item::do_print () const
+{
+#ifndef NPRINT
+  if (to_position_l_)
+    DOUT << "positioning " << to_position_l_->name();
+
+  DOUT << "axis == " << axis_name_str (axis_)
+       << ", dir == " << to_str (dir_ );
+#endif
+}
index 1854e96c5b3de513f80cdfe5af6ffb8a6a86a8c3..6f54c2ad0a427d3b249f39bc417f622b1ec47b4d 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 #include "g-text-item.hh"
-
+#include "debug.hh"
 #include "molecule.hh"
 #include "paper-def.hh"
 #include "lookup.hh"
@@ -25,3 +25,9 @@ G_text_item::G_text_item ()
 {
   style_str_ = "roman";
 }
+
+void
+G_text_item::do_print () const
+{
+  DOUT <<  "text= " << text_str_;
+}
diff --git a/lily/general-script-def.cc b/lily/general-script-def.cc
deleted file mode 100644 (file)
index a425c9f..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-
-/*
-  general-script-def.cc -- implement General_script_def
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "molecule.hh"
-#include "general-script-def.hh"
-#include "debug.hh"
-
-
-Direction
-General_script_def::staff_dir() const
-{
-  return DOWN;
-}
-
-Direction
-General_script_def::rel_stem_dir() const
-{
-  return CENTER;
-}
-int
-General_script_def::priority_i() const
-{
-  return 1000;
-}
-
-bool
-General_script_def::inside_b() const
-{
-  return false;
-}
-
-bool
-General_script_def::equal_b (General_script_def const&g) const
-{
-  return do_equal_b (&g);
-}
-
-bool
-General_script_def::do_equal_b (General_script_def const*) const
-{
-  return true;
-}
-
-
-void
-General_script_def::print() const
-{
-  DOUT << classname(this) << "{";
-  do_print();
-  DOUT << "}";
-}
-
-void
-General_script_def::do_print() const
-{
-}
-
-Molecule
-General_script_def::get_molecule (Paper_def*, Direction) const
-{
-  Molecule s;
-  return Molecule (s);
-}
-
-
-
-
-
diff --git a/lily/include/g-script-column.hh b/lily/include/g-script-column.hh
new file mode 100644 (file)
index 0000000..62caab8
--- /dev/null
@@ -0,0 +1,30 @@
+/*   
+  g-script-column.hh -- declare G_script_column
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef G_SCRIPT_COLUMN_HH
+#define G_SCRIPT_COLUMN_HH
+
+#include "item.hh"
+
+class G_script_column : public Item
+{
+  /**
+     Array of objects that are placed by staffsides
+   */
+  Link_array<Item> staff_sided_item_l_arr_;
+public:
+  void add_staff_sided (Item*);
+protected:
+  virtual void do_pre_processing ();
+};
+
+
+#endif /* G_SCRIPT_COLUMN_HH */
+
+
index f1309638ad88e6d46c925c89eaa1379c51982b71..cbc5f6ee1b524d8be4accad52301cb42c8722234 100644 (file)
@@ -28,6 +28,7 @@ public:
   void set_staff_side (G_staff_side_item*);
 
 protected:
+virtual void do_print () const;
   virtual void do_substitute_element_pointer (Score_element*o,
                                              Score_element*n);
   virtual void do_pre_processing ();
index 5f527141e0855cf095c06354a413452de3aa9454..e6808863a6eee45ca0590ed6641a3e30048d6ad4 100644 (file)
 class G_staff_side_item : public Item, public Staff_symbol_referencer
 {
   void position_self ();
-public:
 
+public:
   Score_element * to_position_l_;
   Direction dir_;
   Link_array<Score_element> support_l_arr_;
   Axis axis_;
-
+  //junkme.
   bool staff_support_b_;
   
   G_staff_side_item ();
@@ -42,6 +42,9 @@ public:
   VIRTUAL_COPY_CONS(Score_element);
   virtual Direction get_default_direction () const;
 protected:
+  virtual Interval do_height () const;
+  virtual Interval do_width () const;
+  virtual void do_print () const;
   virtual void do_add_processing ();
   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
   virtual void do_pre_processing ();
index c27ad99a691c22ab458240b765fc770d793aefaf..3edfe6c72c294f41593a292cbb994480aea761c3 100644 (file)
@@ -24,6 +24,7 @@ public:
   G_text_item ();
   VIRTUAL_COPY_CONS (Score_element);
 protected:
+  virtual void do_print () const;
   virtual Molecule *do_brew_molecule_p () const;
 };
 
diff --git a/lily/include/general-script-def.hh b/lily/include/general-script-def.hh
deleted file mode 100644 (file)
index 74b2075..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-  general-script-def.hh -- declare General_script_def
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef GENERAL_SCRIPT_DEF_HH
-#define GENERAL_SCRIPT_DEF_HH
-
-
-
-#include "lily-proto.hh"
-#include "input.hh"
-#include "virtual-methods.hh"
-#include "direction.hh"
-
-/**
-  Definition of anything that is put aside staff/notes.
- */
-class General_script_def : public Input {
-public:
-  VIRTUAL_COPY_CONS(General_script_def);
-  
-  virtual Direction staff_dir() const;
-  void print() const;
-  virtual Direction rel_stem_dir() const;
-  virtual int priority_i() const;
-  virtual bool inside_b() const;
-  virtual Molecule get_molecule (Paper_def* p, Direction dir_) const;
-  bool equal_b (General_script_def const&) const;
-  virtual ~General_script_def() {}
-protected:
-  virtual bool do_equal_b (General_script_def const *) const;
-  virtual void do_print() const;
-};
-
-#endif // GENERAL_SCRIPT_DEF_HH
diff --git a/lily/include/lookup.hh.orig b/lily/include/lookup.hh.orig
deleted file mode 100644 (file)
index abf3434..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-  lookup.hh -- declare Lookup
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#ifndef LOOKUP_HH
-#define LOOKUP_HH
-
-#include "molecule.hh"
-#include "fproto.hh"
-#include "direction.hh"
-#include "box.hh"
-
-/** handy interface to symbol table
- */
-class Lookup
-{
-public:
-  Lookup ();
-  Lookup (Lookup const&);
-
-  Molecule simple_bar (String s, Real w) const;
-  Molecule accidental (int, bool cautionary) const;
-  Molecule afm_find (String, bool warn=true) const;
-  Molecule notehead  (int, String) const;
-
-  Molecule bar (String, Real height) const;
-  Molecule beam (Real, Real, Real) const;
-  Molecule clef (String) const;
-  Molecule dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
-  Molecule dots () const;
-  Molecule ledger_line (Interval) const;
-  Molecule fill (Box b) const;
-  Molecule filledbox (Box b) const;  
-  Molecule flag (int, Direction) const;
-  Molecule hairpin (Real width, bool decresc, bool continued) const;
-  Molecule plet (Real dy, Real dx, Direction dir) const;
-  Molecule rest (int, bool outside, String) const;
-  Molecule rule_symbol (Real height, Real width) const;
-  Molecule script (String idx) const;
-  Molecule stem (Real y1_pos, Real y2_pos) const;
-  Molecule slur (Array<Offset> controls) const;
-  Molecule streepje (int type) const;
-  Molecule text (String style, String text) const;
-  Molecule staff_brace (Real dy) const;
-  Molecule staff_bracket (Real dy) const;
-  Molecule volta (Real w, bool last_b) const;
-  Molecule special_time_signature (String, int,int) const;
-  Molecule time_signature (int n,int d) const;
-
-  Paper_def * paper_l_;
-
-  String font_name_;
-  Adobe_font_metric * afm_l_;
-};
-
-#endif // LOOKUP_HH
index 1fd514cde2e9cff882db2e43c1cce035be4eb717..b4950a7971d4a7224df78a0f351a5fbbdbabe8cd 100644 (file)
@@ -61,6 +61,7 @@ class Articulation_req : public G_script_req
 public:
   String articulation_str_;
 protected:
+  virtual bool do_equal_b (Request*) const;
   virtual void do_print () const;
   VIRTUAL_COPY_CONS(Music);
 };
@@ -165,11 +166,12 @@ class Dynamic_req  : public virtual Request  {
 public:
   VIRTUAL_COPY_CONS(Music);
 };
-
+/*
+   merge with Articulation_req? 
+ */
 class Absolute_dynamic_req  : public Dynamic_req  {
 public:
   String loudness_str_;
-  String loudness_str () const;
   Absolute_dynamic_req();
 
 protected:
index 8fd5af02b115119ceb3aad9a9343cfca1aa53731..db18a621c9adbdb4e8191169be3e47c0a49ee709 100644 (file)
 #define NOTE_COLUMN_HH
 
 #include "item.hh"
-#include "script-column.hh"
+#include "axis-group-item.hh"
 
 /** a struct for treating a group of noteheads (noteheads, stem
   (chord) and scripts) as a single entity.  */
-class Note_column : public Script_column {
+class Note_column : public Axis_group_item {
 protected:
-  virtual void do_pre_processing();
+
   virtual void do_print () const;
   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
 public:
@@ -27,10 +27,9 @@ public:
 
     JUNKME.v
     */
-  Direction dir_;
+  Direction dir () const;
   Stem* stem_l_;
 
-
   Link_array<Note_head> head_l_arr_;
   Link_array<Rest> rest_l_arr_;
     
@@ -38,14 +37,12 @@ public:
   //  Interval width () const;
 
   void translate_rests(int dy);
-        
   
   Note_column ();
   void set_stem (Stem*);
   void set_dotcol (Dot_column*);
   void add_head (Rhythmic_head*);
   bool rest_b () const;
-  virtual void add_script (Script*s);
   void sort ();
 };
 
index b9101c84d7489dea8d1b3094c67a6b04b42d2998..c4514f00bbb204ea49f6913407073142ed1f7fae 100644 (file)
@@ -14,7 +14,6 @@
 #include "parray.hh"
 
 class Rhythmic_column_engraver :public Engraver {
-  Link_array<Script> script_l_arr_;
   Link_array<Rhythmic_head> rhead_l_arr_;
   Stem * stem_l_;
   Note_column *ncol_p_;
index eaaaf1482bb48a54f99e75bf3ccf7be15d7c07be..719cc16d8ed2938e517f3d08e47c1e834809d273 100644 (file)
@@ -39,6 +39,9 @@ Boolean (true iff defined)
 class Score_element : public virtual Graphical_element {
   Protected_scm element_property_alist_;
   Link_array<Score_element> dependency_arr_;
+  /**
+     The lookup, determined by the font size. Cache this value.
+   */
   Lookup * lookup_l_;
 public:
   Score_element *original_l_;
@@ -85,7 +88,14 @@ public:
   bool linked_b () const;
   VIRTUAL_COPY_CONS(Score_element);
  
-  // ugh: no protection. Denk na, Vrij Veilig
+  /**
+     Recursively track all dependencies of this Score_element.  The
+     status_i_ field is used as a mark-field.  It is marked with
+     #busy# during execution of this function, and marked with #final#
+     when finished.
+
+     #funcptr# is the function to call to update this element.
+   */
   void calculate_dependencies (int final, int busy, Score_element_method_pointer funcptr);
 
 protected:
diff --git a/lily/include/script-column.hh b/lily/include/script-column.hh
deleted file mode 100644 (file)
index 74ba090..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-  script-column.hh -- declare Script_column
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef SCRIPT_COLUMN_HH
-#define SCRIPT_COLUMN_HH
-
-#include "axis-group-item.hh"
-
-/** a struct for treating a group of noteheads (noteheads, stem
-  (chord) and scripts) as a single entity.  */
-class Script_column : public Axis_group_item {
-
-protected:
-  virtual void do_print() const;
-  virtual void do_substitute_element_pointer (Score_element*, Score_element*);
-  virtual void do_pre_processing() ;
-public:
-  Link_array<Script> script_l_arr_;
-  Link_array<Item> support_l_arr_;
-    
-   
-  virtual void add_script (Script *);
-  void add_support (Item*);
-  Script_column ();
-};
-
-#endif // SCRIPT_COLUMN_HH
diff --git a/lily/include/script-def.hh b/lily/include/script-def.hh
deleted file mode 100644 (file)
index f3d17d7..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-  script-def.hh -- part of GNU LilyPond
-
-  (c) 1996--1999 Han-Wen Nienhuys
-*/
-
-#ifndef SCRIPTDEF_HH
-#define SCRIPTDEF_HH
-#include "string.hh"
-#include "general-script-def.hh"
-
-#error 
-/** The characteristics of a certain kind of accent. It is not the
-  accent itself.  */
-class Script_def : public General_script_def {
-  /// invert if below staff?
-  bool invertsym_b_;
-  String symidx_str_;
-    
-
-  /// on the other side of the stem?
-  Direction rel_stem_dir_;
-
-  /// below or above staff?
-  Direction staff_dir_;
-
-  /// how close to the note do we want to be?
-  int priority_i_;
-    
-  /// follow the ball inside staff?
-  bool inside_staff_b_;
-
-public:
-  virtual Direction staff_dir() const;
-  virtual Direction rel_stem_dir() const;
-  virtual int priority_i() const;
-  virtual bool inside_b() const;
-  virtual Molecule get_molecule (Paper_def* p, Direction dir_) const;
-  
-
-  virtual bool do_equal_b (General_script_def const *) const;
-  virtual void do_print() const;
-  Script_def();
-  void set_from_input (String, bool, int, int ,bool,int);
-protected:
-  VIRTUAL_COPY_CONS(General_script_def);
-
-};
-
-
-
-
-
-#endif // SCRIPTDEF_HH
-
diff --git a/lily/include/script.hh b/lily/include/script.hh
deleted file mode 100644 (file)
index a09eb7b..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-  script.hh -- part of GNU LilyPond
-
-  (c) 1996--1999 Han-Wen Nienhuys
-*/
-
-#ifndef SCRIPT_HH
-#define SCRIPT_HH
-
-#include "staff-side.hh"
-#include "item.hh"
-  
-/**
-  Accents that are put over a note-group.
- */
-class Script : public Item, public Staff_side {
-  Stem *stem_l_;
-
-protected:
-  Molecule *do_brew_molecule_p() const;
-  virtual void do_substitute_element_pointer (Score_element*,Score_element*);
-  virtual void do_print() const;
-  virtual Interval symbol_height() const;
-  virtual void do_pre_processing();
-  virtual Interval do_width() const;
-  VIRTUAL_COPY_CONS(Score_element);
-private:
-
-  void set_default_dir();
-public:
-  General_script_def *specs_p_;
-
-  static int compare (Script  *const&, Script *const&) ;
-  Script();
-  ~Script ();
-  Script (Script const&);
-   
-  void set_stem (Stem*);
-};
-
-
-#endif // SCRIPT_HH
-
index f5e74a609dd7b9cf5cd62b3340745e3e742e58d8..4f3e219178960090476c4d276b0ea9ab279c988c 100644 (file)
@@ -63,6 +63,7 @@ public:
 
   Drul_array<int> beams_i_drul_;
 
+  void set_direction (Direction d);
   /// direction stem (that's me)
   Direction dir_;
 
@@ -97,7 +98,7 @@ public:
     
   /// heads that the stem encompasses (positions)
   Interval_t<int> head_positions() const;
-  virtual ~Stem ();
+
 protected:
   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
   virtual void do_pre_processing();
index 2db4fd100da0ce2545bd5693b4f5415375335a0c..f641a2df3160b7318003ca241fe4b776d4bf025d 100644 (file)
@@ -18,6 +18,7 @@ Mark_engraver::Mark_engraver ()
   mark_req_l_ = 0;
   axis_ = Y_AXIS;
   type_ = "mark";
+  visibility_lambda_ = gh_eval_str ("mark-visibility");
 }
 
 void
index 6750347e9d518775ba679002735b8ecf3d9c675f..0b2aaee70424162ae1c19b068a580fa5ce093708 100644 (file)
@@ -14,8 +14,6 @@
 #include "bar.hh"
 #include "lookup.hh"
 #include "rest.hh"
-#include "script.hh"
-
 #include "molecule.hh"
 #include "misc.hh"
 
index f546bab22cc14050cbc106d3ea00c922c393be77..369066fa7f19a1f03462551a40510e5ca772506a 100644 (file)
@@ -222,3 +222,10 @@ Articulation_req::do_print () const
 {
   DOUT << articulation_str_;
 }
+
+bool
+Articulation_req::do_equal_b (Request*r) const
+{
+  Articulation_req * a = dynamic_cast<Articulation_req*>(r);
+  return articulation_str_ == a->articulation_str_;
+}
index 207b755b47ec8091d37c9d53db251f8d838daa81..996cc8c5693987248ec3ebf1631dbf38777f33be 100644 (file)
@@ -171,20 +171,6 @@ My_lily_parser::get_chord (Musical_pitch tonic, Array<Musical_pitch>* add_arr_p,
   return v;
 }
 
-// junk me
-Simultaneous_music *
-My_lily_parser::get_note_element (Note_req *rq, Duration * duration_p)
-{
-  Simultaneous_music*v = new Request_chord;
-  v->set_spot (here_input ());
-
-  v->add_music (rq);
-
-  rq->duration_ = *duration_p;
-  rq->set_spot (here_input ());
-  delete duration_p ;
-  return v;
-}
 
 
 Input
index 28e4c011af07968d7ff67b0a56d7bc38c93dcb47..81fb1ea5ca02a1f2b265dc9cd9908f8cf42b45c7 100644 (file)
@@ -7,7 +7,7 @@
 */
 #include "dot-column.hh"
 #include "note-column.hh"
-#include "script.hh"
+
 #include "note-head.hh"
 #include "stem.hh"
 #include "rest.hh"
@@ -21,8 +21,8 @@ Note_column::rest_b () const
 
 Note_column::Note_column()
 {
+  set_axes (X_AXIS,X_AXIS);
   stem_l_ = 0;
-  dir_ =CENTER;
 }
 
 void
@@ -46,44 +46,27 @@ Note_column::head_positions_interval() const
   return iv;
 }
 
-void
-Note_column::do_pre_processing()
+Direction
+Note_column::dir () const
 {
-  if (!dir_)
-    {
-      if (stem_l_)
-       dir_ = stem_l_->dir_;
-      else if (head_l_arr_.size ())
-       {
-         //      assert (false);       // looks obsolete?
-         dir_ = sign (head_positions_interval().center ());
-       }
-    }
-  Script_column::do_pre_processing();
+  if (stem_l_)
+    return stem_l_->dir_;
+  else if (head_l_arr_.size ())
+    return sign (head_positions_interval().center ());
+
+  assert (false);
+  return CENTER;
 }
 
-  
 
 void
 Note_column::set_stem (Stem * stem_l)
 {
-  add_support (stem_l);
   stem_l_ = stem_l;
-  /* 
-     don't add stem to support; mostly invisible for rest-columns (and possibly taken . .)
-  */
-  Score_element::add_dependency (stem_l);
-  for (int i=0; i < script_l_arr_.size(); i++)
-    script_l_arr_[i]->set_stem (stem_l);
+  add_dependency (stem_l);
+  add_element (stem_l);
 }
 
-void
-Note_column::add_script (Script *script_l)
-{
-  Script_column::add_script (script_l) ;
-  if  (stem_l_)
-    script_l->set_stem (stem_l_);
-}
 
 void
 Note_column::do_substitute_element_pointer (Score_element*o, Score_element*n)
@@ -97,7 +80,7 @@ Note_column::do_substitute_element_pointer (Score_element*o, Score_element*n)
       head_l_arr_.substitute (dynamic_cast<Note_head *> (o), 
                              (n)? dynamic_cast<Note_head *> (n) : 0);
     }
-  Script_column::do_substitute_element_pointer (o,n);
+
   if (dynamic_cast<Rest *> (o)) 
     {
       rest_l_arr_.substitute (dynamic_cast<Rest *> (o), 
@@ -111,13 +94,12 @@ Note_column::add_head (Rhythmic_head *h)
   if (Rest*r=dynamic_cast<Rest *> (h))
     {
       rest_l_arr_.push (r);
-      add_support (r);  
     }
   if (Note_head *nh=dynamic_cast<Note_head *> (h))
     {
       head_l_arr_.push (nh);
-      add_support (nh);
     }
+  add_element (h);
 }
 
 /**
index 2cac7c1fabca13cac7e080a1b3285f618fc63b9d..6ad7ffdb16ebcdd795a40bad0005d83464c3ab74 100644 (file)
@@ -106,18 +106,16 @@ Paper_def* current_paper = 0;
     Musical_pitch * pitch;
     Midi_def* midi;
     Moment *moment;
-    Note_req *notereq;
     Notename_table *notenametab;
     Paper_def *paper;
     Real real;
     Request * request;
     Scalar *scalar;
-    Simultaneous_music *chord;
+
     String *string;
     Tempo_req *tempo;
     Translator* trans;
     char c;
-    const char *consstr;
     int i;
     int ii[10];
 }
@@ -193,7 +191,7 @@ yylex (YYSTYPE *s,  void * v_l)
 /* escaped */
 %token E_EXCLAMATION E_SMALLER E_BIGGER E_CHAR
 
-%type <i>      dots
+%type <i>      dots exclamations questions
 %token <i>     DIGIT
 %token <pitch> NOTENAME_PITCH
 %token <pitch> TONICNAME_PITCH
@@ -235,7 +233,7 @@ yylex (YYSTYPE *s,  void * v_l)
 %type <request> gen_text_def
 %type <pitch>   explicit_musical_pitch steno_musical_pitch musical_pitch absolute_musical_pitch
 %type <pitch>   steno_tonic_pitch
-%type <notereq>        steno_notepitch
+
 %type <pitch_arr>      pitch_list
 %type <music>  chord notemode_chord
 %type <pitch_arr>      chord_additions chord_subtractions chord_notes
@@ -307,17 +305,17 @@ toplevel_expression:
        ;
 
 embedded_scm:
-       SCMFILE STRING ';' {
+       SCMFILE STRING semicolon {
                read_lily_scm_file (*$2);
                delete $2;
        }
-       | SCM_T STRING ';' {
+       | SCM_T STRING semicolon {
                gh_eval_str ($2->ch_l ());
                delete $2;
        };
 
 check_version:
-       VERSION STRING ';'              {
+       VERSION STRING semicolon                {
                Mudela_version ver (*$2);
                if (!((ver >= oldest_version) && (ver <= version))) {
                        if (THIS->ignore_version_b_) {
@@ -362,7 +360,7 @@ mudela_header_body:
                $$ = new Scope;
                THIS->lexer_p_-> scope_l_arr_.push ($$);
        }
-       | mudela_header_body assignment ';' { 
+       | mudela_header_body assignment semicolon { 
 
        }
        ;
@@ -445,7 +443,7 @@ translator_spec_body:
                $$ = $1->access_content_Translator (true);
                $$-> set_spot (THIS->here_input ());
        }
-       | TYPE STRING ';'       {
+       | TYPE STRING semicolon {
                Translator* t = get_translator_l (*$2);
                Translator_group * tg = dynamic_cast<Translator_group*> (t);
 
@@ -457,7 +455,7 @@ translator_spec_body:
                $$ = t;
                delete $2;
        }
-       | translator_spec_body STRING '=' identifier_init ';'   { 
+       | translator_spec_body STRING '=' identifier_init semicolon     { 
                Identifier* id = $4;
                String_identifier *s = dynamic_cast<String_identifier*> (id);
                Real_identifier *r= dynamic_cast<Real_identifier*>(id);
@@ -475,19 +473,19 @@ translator_spec_body:
                Translator_group * tr = dynamic_cast<Translator_group*>($$);
                tr->set_property (*$2, str);
        }
-       | translator_spec_body NAME STRING ';' {
+       | translator_spec_body NAME STRING semicolon {
                $$->type_str_ = *$3;
                delete $3;
        }
-       | translator_spec_body CONSISTS STRING ';' {
+       | translator_spec_body CONSISTS STRING semicolon {
                dynamic_cast<Translator_group*> ($$)-> set_element (*$3, true);
                delete $3;
        }
-       | translator_spec_body ACCEPTS STRING ';' {
+       | translator_spec_body ACCEPTS STRING semicolon {
                dynamic_cast<Translator_group*> ($$)-> set_acceptor (*$3, true);
                delete $3;
        }
-       | translator_spec_body REMOVE STRING ';' {
+       | translator_spec_body REMOVE STRING semicolon {
                dynamic_cast<Translator_group*> ($$)-> set_element (*$3, false);
                delete $3;
        }
@@ -583,13 +581,13 @@ paper_def_body:
                delete $5;
                $$->set_lookup ($2, l);
        }
-       | paper_def_body assignment ';' {
+       | paper_def_body assignment semicolon {
 
        }
        | paper_def_body translator_spec_block {
                $$->assign_translator ($2);
        }
-       | paper_def_body SHAPE '=' shape_array ';' {
+       | paper_def_body SHAPE '=' shape_array semicolon {
                $$->shape_int_a_ = *$4;
                delete $4;
        }
@@ -674,7 +672,7 @@ midi_body: /* empty */              {
        | midi_body translator_spec_block       {
                $$-> assign_translator ($2);
        }
-       | midi_body tempo_request ';' {
+       | midi_body tempo_request semicolon {
                $$->set_tempo ($2->dur_.length_mom (), $2->metronome_i_);
                delete $2;
        }
@@ -870,7 +868,7 @@ command_element:
 
 command_req:
        abbrev_command_req
-       | verbose_command_req ';'       { $$ = $1; }
+       | verbose_command_req semicolon { $$ = $1; }
        ;
 
 abbrev_command_req:
@@ -914,9 +912,9 @@ verbose_command_req:
                m->one_beat_i_=$4;
                $$ = m;
        }
-       | PENALTY '=' int       {
+       | PENALTY int   {
                Break_req * b = new Break_req;
-               b->penalty_i_ = $3;
+               b->penalty_i_ = $2;
                b-> set_spot (THIS->here_input ());
                $$ = b;
        }
@@ -948,14 +946,14 @@ verbose_command_req:
                $$ = key_p;
                delete $2;
        }
-       | KEYSIGNATURE pitch_list       {
+       | KEYSIGNATURE pitch_list {
                Key_change_req *key_p= new Key_change_req;
                key_p->pitch_arr_ = *$2;
                key_p->ordinary_key_b_ = false;
                $$ = key_p;
                delete $2;
        }
-       | GROUPING intastint_list {
+       | GROUPING intastint_list  {
                  Measure_grouping_req * mr_p = new Measure_grouping_req;
                  for (int i=0; i < $2->size();) 
                    {
@@ -1114,23 +1112,6 @@ musical_pitch:
        | explicit_musical_pitch
        ;
 
-steno_notepitch:
-       musical_pitch   {
-               $$ = new Note_req;
-               
-               $$->pitch_ = *$1;
-               delete $1;
-       }
-       | steno_notepitch  '!'          {
-               $$->forceacc_b_ = ! $$->forceacc_b_;
-       }
-       | steno_notepitch  '?'          {
-               $$->forceacc_b_ = ! $$->forceacc_b_;
-               $$->cautionary_b_ = ! $$->cautionary_b_;
-       }
-       ;
-
-
 explicit_duration:
        DURATION '{' int_list '}'       {
                $$ = new Duration;
@@ -1266,18 +1247,11 @@ duration_length:
        }
        ;
 
-dots:
-       '.'             { $$ = 1; }
-       | dots '.'      { $$ ++; }
-       ;
-
 entered_notemode_duration:
-       /* */           {
+       dots            {
                $$ = new Duration (THIS->default_duration_);
-       }
-       | dots          {
-               $$ = new Duration (THIS->default_duration_);
-               $$->dots_i_  = $1;
+               if ($1)
+                       $$->dots_i_  = $1;
        }
        | steno_duration        {
                THIS->set_last_duration ($1);
@@ -1322,13 +1296,28 @@ abbrev_type:
        ;
 
 
-
 simple_element:
-       steno_notepitch notemode_duration  {
+       musical_pitch exclamations questions notemode_duration  {
                if (!THIS->lexer_p_->note_state_b ())
                        THIS->parser_error (_ ("have to be in Note mode for notes"));
-               $1->duration_ = *$2;
-               $$ = THIS->get_note_element ($1, $2);
+
+
+               Note_req *n = new Note_req;
+               
+               n->pitch_ = *$1;
+               delete $1;
+               n->duration_ = *$4;
+               delete $4;
+               n->forceacc_b_ = $2 % 2;
+               n->cautionary_b_ = $3 % 2;
+
+               Simultaneous_music*v = new Request_chord;
+               v->set_spot (THIS->here_input ());
+               n->set_spot (THIS->here_input ());
+
+               v->add_music (n);
+
+               $$ = v;
        }
        | RESTNAME notemode_duration            {
                $$ = THIS->get_rest_element (*$1, $2);
@@ -1510,8 +1499,27 @@ string:
 
 
 
+dots:
+                       { $$ = 0; }
+       | dots '.'      { $$ ++; }
+       ;
+
+
+
+exclamations:
+               { $$ = 0; }
+       | exclamations '!'      { $$ ++; }
+       ;
+
+questions:
+               { $$ = 0; }
+       | questions '?' { $$ ++; }
+       ;
 
 
+semicolon:
+       ';'
+       ;
 %%
 
 void
index f72e59fbcfedccdf71287ad38b936eebddcf9aaa..1cb84c94817034d6508eb88147affae5e4144f29 100644 (file)
@@ -30,5 +30,6 @@ bool
 Request::do_equal_b (Request*) const
 {
   return true;
+
 }
   
index cd64e140c641b3dac4b37702b54883c970f2c17e..77eecea668677c904a23e72808f45897fd77295a 100644 (file)
@@ -14,9 +14,6 @@
 #include "collision.hh"
 #include "paper-def.hh"
 
-
-
-
 void
 Rest_collision::add_column (Note_column *nc_l)
 {
@@ -60,15 +57,15 @@ Rest_collision::do_pre_processing()
     {
       int dy = rest_l_arr_.size() > 2 ? 6 : 4;
        
-      rest_l_arr_[0]->translate_rests (rest_l_arr_[0]->dir_ *dy);      
+      rest_l_arr_[0]->translate_rests (rest_l_arr_[0]->dir () *dy);    
       // top is last element...
-      rest_l_arr_.top()->translate_rests (rest_l_arr_.top ()->dir_* dy);       
+      rest_l_arr_.top()->translate_rests (rest_l_arr_.top ()->dir ()* dy);     
     }
   // meisjes met jongetjes
   else 
     {
       // int dir_i = - ncol_l_arr_[0]->dir_;
-      Direction dir = rest_l_arr_[0]->dir_;
+      Direction dir = rest_l_arr_[0]->dir ();
        
       // minimum move
       int minpos = 4;
index 152352ac82ae6b9d93a45caf95c12714dc6516a4..5483ff9ace026a385bee7646257e81806ee3836a 100644 (file)
@@ -10,7 +10,6 @@
 #include "note-head.hh"
 #include "stem.hh"
 #include "note-column.hh"
-#include "script.hh"
 #include "dot-column.hh"
 #include "musical-request.hh"
 
@@ -53,14 +52,6 @@ Rhythmic_column_engraver::process_acknowledged ()
          ncol_p_->set_stem (stem_l_);
          stem_l_ = 0;
        }
-      
-      for (int i=0; i < script_l_arr_.size(); i++) 
-       {
-         if (ncol_p_)
-           ncol_p_->add_script (script_l_arr_[i]);
-       }
-  
-      script_l_arr_.clear();
     }
 }
 
@@ -70,14 +61,7 @@ Rhythmic_column_engraver::acknowledge_element (Score_element_info i)
   Item * item =  dynamic_cast <Item *> (i.elem_l_);
   if (!item)
     return;
-  if (Script *s=dynamic_cast<Script *> (item))
-    {
-      if (i.req_l_)
-       {
-         script_l_arr_.push (s);
-       }
-    }
-  else if (Stem*s=dynamic_cast<Stem *> (item))
+ if (Stem*s=dynamic_cast<Stem *> (item))
     {
       stem_l_ = s;
     }
@@ -101,9 +85,6 @@ Rhythmic_column_engraver::do_pre_move_processing()
        {
          ncol_p_->set_elt_property (horizontal_shift_scm_sym, SCM_BOOL_T);
        }
-      
-      if (! ncol_p_->dir_)
-       ncol_p_->dir_ =(Direction) int(get_property ("ydirection", 0));
 
       typeset_element (ncol_p_);
       ncol_p_ =0;
@@ -113,7 +94,6 @@ Rhythmic_column_engraver::do_pre_move_processing()
 void
 Rhythmic_column_engraver::do_post_move_processing()
 {
-  script_l_arr_.clear();
   dotcol_l_ =0;
   stem_l_ =0;
 }
diff --git a/lily/script-column.cc b/lily/script-column.cc
deleted file mode 100644 (file)
index bfbe2f7..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
-  script-column.cc -- implement Script_column
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "script-column.hh"
-#include "debug.hh"
-#include "script.hh"
-#include "note-head.hh"
-#include "stem.hh"
-#include "general-script-def.hh"
-
-void
-Script_column::add_script (Script*s_l)
-{
-  script_l_arr_.push (s_l);
-  add_dependency (s_l);
-  add_element (s_l);
-}
-
-
-void
-Script_column::do_print() const
-{
-#ifndef NPRINT
-  DOUT << "scripts: " << script_l_arr_.size() << '\n'; 
-#endif
-}
-
-static int
-idx (bool inside, int dir)
-{
-  int j = (dir+1);
-  if (!inside)
-    j ++;
-  return j;
-}
-
-
-Script_column::Script_column ()
-{
-  set_axes (X_AXIS,X_AXIS);
-}
-
-void
-Script_column::do_pre_processing()
-{
-  if (!script_l_arr_.size()) 
-    return;
-  
-  /* up+inside, up+outside, down+inside, down+outside */
-  Array<Script*> placed_l_arr_a[4];
-  for (int i=0; i < script_l_arr_.size(); i++) 
-    {
-      Script*s_l = script_l_arr_[i];
-      placed_l_arr_a[idx (s_l->specs_p_->inside_b(),
-                         s_l->dir_) ].push (s_l);
-    }
-  
-  for (int j =0; j <4; j++) 
-    {
-      placed_l_arr_a[j].sort (Script::compare);
-    }
-
-
-  for (int j =0; j < 4; j++) 
-    {
-      if (placed_l_arr_a[j].size())
-       for (int i=0; i  < support_l_arr_.size(); i++)
-         placed_l_arr_a[j][0]->add_support (support_l_arr_[i]);
-    }
-  
-  Item * support_l=0;
-  int j = 0;
-  for (; j < 2; j++) 
-    {
-      for (int i=0; i < placed_l_arr_a[j].size(); i++) 
-       {
-         if (support_l)
-           placed_l_arr_a[j][i]->add_support (support_l);
-         support_l = placed_l_arr_a[j][i];
-       }
-    }
-  support_l = 0;
-  for (; j < 4; j++) 
-    {
-      for (int i=0; i < placed_l_arr_a[j].size(); i++) 
-       {
-         if (support_l)
-           placed_l_arr_a[j][i]->add_support (support_l);
-         support_l = placed_l_arr_a[j][i];
-       }
-    }
-}
-
-
-void
-Script_column::add_support (Item*i_l)
-{
-  support_l_arr_.push (i_l);
-  add_dependency (i_l);
-  add_element (i_l);
-}
-
-void
-Script_column::do_substitute_element_pointer (Score_element*o,Score_element*n)
-{
-  if (dynamic_cast <Item *> (o)) 
-    {
-      script_l_arr_.substitute (dynamic_cast<Script *> (o),
-                               dynamic_cast <Script *> (n));
-      support_l_arr_.substitute (dynamic_cast <Item *> (o),
-                                dynamic_cast <Item *> (n));
-    }
-}
-
diff --git a/lily/script.cc b/lily/script.cc
deleted file mode 100644 (file)
index 85f3c28..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
-  script.cc -- implement Script
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-#include "general-script-def.hh"
-#include "musical-request.hh"
-#include "paper-def.hh"
-#include "script.hh"
-#include "stem.hh"
-#include "molecule.hh"
-#include "lookup.hh"
-
-void
-Script::do_print () const
-{
-#ifndef NPRINT
-  specs_p_->print ();
-#endif
-}
-
-void
-Script::do_substitute_element_pointer (Score_element*o,Score_element*n)
-{
-  Staff_side::do_substitute_element_pointer (o,n);
-  if (o == stem_l_)
-    {
-      stem_l_ = dynamic_cast<Stem *> (n);
-    }
-}
-
-void
-Script::set_stem (Stem*st_l)
-{
-  stem_l_ = st_l;
-  add_support (st_l);
-}
-
-
-Script::Script ()
-{
-  axis_ = Y_AXIS;
-  specs_p_ = 0;
-  stem_l_ = 0;
-  dir_ =  CENTER;
-}
-
-void
-Script::set_default_dir ()
-{
-  int s_i=specs_p_->rel_stem_dir ();
-  if (s_i)
-    {
-      if (stem_l_)
-       dir_ = Direction (stem_l_->dir_ * s_i);
-      else
-       {
-         specs_p_->warning (_ ("script needs stem direction"));
-         dir_ = DOWN;
-       }
-    }
-  else
-    {
-      dir_ =specs_p_->staff_dir ();
-    }
-  assert (dir_);
-}
-
-
-Interval
-Script::do_width () const
-{
-  return specs_p_->get_molecule (paper_l (), dir_).extent ().x ();
-}
-
-void
-Script::do_pre_processing ()
-{
-  Staff_side::do_pre_processing ();
-  if (axis_ == Y_AXIS && !dir_)
-    set_default_dir ();
-}
-
-Interval
-Script::symbol_height () const
-{
-  return specs_p_->get_molecule (paper_l (), dir_).extent ().y ();
-}
-
-
-Molecule*
-Script::do_brew_molecule_p () const
-{
-  Real dx =0.;
-
-  Molecule*mol_p = new Molecule (specs_p_->get_molecule (paper_l (), dir_));
-  /*
-    ugh, staccato dots are not centred between stafflines (how?)?
-  */
-  Real correct =0.0;
-  if (axis_ == Y_AXIS){
-    dx =  paper_l ()->note_width ()/2;
-    correct = - (Real)dir_ * 2.0 * paper_l ()->rule_thickness ();
-    mol_p->translate_axis (dx, X_AXIS);        // FIXME! ugh
-  }
-  
-  mol_p->translate_axis (coordinate_offset_f_ + correct, axis_);
-
-  return mol_p;
-}
-
-
-
-
-int
-Script::compare (Script  *const&l1, Script *const&l2)
-{
-  return l1->specs_p_->priority_i() - l2->specs_p_->priority_i ();
-}
-
-Script::~Script ()
-{
-  delete specs_p_;
-}
-Script::Script (Script const&s)
-  : Item (s), Staff_side(s)
-{
-  specs_p_ = s.specs_p_ ? s.specs_p_->clone (): 0;
-  stem_l_ =s.stem_l_;
-}
-  
index 0f9beffe3e0b5e4d6d15cfce29e2d0b9a287dc30..ff5c72076282cc3e07f99f3654a327b821189a3c 100644 (file)
@@ -50,7 +50,7 @@ Slur::set_default_dir ()
   dir_ = DOWN;
   for (int i=0; i < encompass_arr_.size (); i ++) 
     {
-      if (encompass_arr_[i]->dir_ < 0) 
+      if (encompass_arr_[i]->dir () < 0) 
        {
          dir_ = UP;
          break;
index 751220e7a6acfb7cdcc2b60c3398698eaa475b03..9a9452175ac203b0efc2cd0062986c1765bb0a67 100644 (file)
 #include "beam.hh"
 #include "rest.hh"
 
-Stem::~Stem ()
+void
+Stem::set_direction (Direction d)
 {
+  if  (!dir_)
+    warning ("Stem direction set already!");
+
+  dir_ = d;
+
+  /*
+    todo
+  */
 }
 
 Stem::Stem ()
index c088a936d6b883c376ad1a12c653974ad23ff322..0401602c7ad5248a479c90a32a9db74433e647b2 100644 (file)
@@ -35,13 +35,13 @@ enum Score_element_status {
 void
 Super_element::pre_processing ()
 {
-  calculate_dependencies (PRECALCING, PRECALCED, &Score_element::do_pre_processing);
+  calculate_dependencies (PRECALCED, PRECALCING, &Score_element::do_pre_processing);
 }
 
 void
 Super_element::space_processing ()
 {
-  calculate_dependencies (SPACING, SPACED, &Score_element::do_space_processing);
+  calculate_dependencies (SPACED, SPACING, &Score_element::do_space_processing);
 }
 
 /* for break processing, use only one status, because copies have to
@@ -63,13 +63,13 @@ Super_element::break_processing ()
 void
 Super_element::post_processing ()
 {
-  calculate_dependencies (POSTCALCING, POSTCALCED, &Score_element::do_post_processing);
+  calculate_dependencies (POSTCALCED, POSTCALCING, &Score_element::do_post_processing);
 }
 
 void
 Super_element::output_all () 
 {
-  calculate_dependencies (BREWING, BREWED, &Score_element::output_processing);
+  calculate_dependencies (BREWED, BREWING, &Score_element::output_processing);
 }
 
 
index e22cb06dea2a976b8407938609949aeb9efb83b5..e673126b2bc04e7e292b9c351964e6d31f654f76 100644 (file)
@@ -78,6 +78,9 @@ Text_engraver::do_process_requests ()
       G_staff_side_item *ss = new G_staff_side_item;
 
       ss->set_victim (text);
+      ss->set_elt_property (script_priority_scm_sym,
+                           gh_int2scm (200));
+
       ss->dir_ = r->dir_;
 
       text->text_str_ = r->text_str_;
index 14301411077b0d6442382c75481a4723a6cdc9b2..a2068ecf254cb42c95f6e31414d749faed95d018 100644 (file)
@@ -103,7 +103,7 @@ Tuplet_spanner::set_default_dir ()
   dir_ = UP;
   for (int i=0; i < column_arr_.size (); i ++) 
     {
-      if (column_arr_[i]->dir_ < 0) 
+      if (column_arr_[i]->dir () < 0) 
        {
          dir_ = DOWN;
          break;
index 7d01eca86eefd183140f63d73b7599d6b01e1dc8..15764317c036b02083ce0a03235400a9888966a8 100644 (file)
@@ -22,8 +22,8 @@ bigger = 1
 
 center=0
 
-break = { \penalty = 10000; }
-nobreak = { \penalty = -10000; }
+break =  \penalty  10000; 
+nobreak =  \penalty  -10000; 
 
 major = 0
 minor = 3
index bd34b4587ddd9503b1e9e96db8557fd0c0d92040..6f3107548944df51a8bcab49402347bc8ede85f4 100644 (file)
@@ -109,8 +109,8 @@ VoiceContext = \translator {
 
        % ugh.  Order matters here.
        \consists "Text_engraver";
-%      \consists "Script_engraver";
        \consists "G_script_engraver";
+       \consists "G_script_column_engraver";
        \consists "Rhythmic_column_engraver";
        \consists "Font_size_engraver";
        \consists "Slur_engraver";
index 6ee1defece26201ddf64c9505930f3cca6e994e6..766bd0a70ee23ca4db6881161c2dafdda2d271b0 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Titel: LilyPond
-Versie: 1.1.37
-Inschrijf datum: 29MAR99
+Versie: 1.1.38
+Inschrijf datum: 06APR99
 Beschrijving: @FLAPTEKST@
 Trefwoorden: muziek typezetten midi notatie
 Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
 Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
-       770k lilypond-1.1.37.tar.gz 
+       770k lilypond-1.1.38.tar.gz 
 Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.37.tar.gz 
+       770k lilypond-1.1.38.tar.gz 
 Copi-eer voorwaarden: GPL
 End
index f9647a6ef0fc5ee149b2addb2f53a3d008a9a9d9..69c23f891d60808d825fe0a0f9d76b34d590743c 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 1.1.37
-Entered-date: 29MAR99
+Version: 1.1.38
+Entered-date: 06APR99
 Description: 
 LilyPond is the GNU Project music typesetter.  This program can print
 beautiful sheet music from a music definition file.  It can also play
@@ -14,8 +14,8 @@ Author: hanwen@cs.ruu.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
-       770k lilypond-1.1.37.tar.gz 
+       770k lilypond-1.1.38.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.37.tar.gz 
+       770k lilypond-1.1.38.tar.gz 
 Copying-policy: GPL
 End
index 293084848c92432b58f230748de8211cc5c2206e..b184c2ffa164cf3947f67ba0a09dfb1c5a0a6f35 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.1.37
+Version: 1.1.38
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.37.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.38.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
index b3657cf20cd504358145a7cf325268ed3ba1114d..14ca956127459c403c4af7a571bc9be5c359b4da 100644 (file)
@@ -264,9 +264,9 @@ bc=\type Staff = bc <
 %%%% Compare to the definition in init/engraver.ly.
 
 %  \remove "Beam_engraver";
+%  \remove "Auto_beam_engraver";
  
  }
-    
   }
   \midi{ 
         \tempo 4=80;
index 9c45773df07d055bc180b908ecade4a3e45a7b2b..9c57c962c9905f6f56ecb9247074372fbb06596f 100644 (file)
 (define (spanbar_non_postbreak_visibility d) (if (= d -1) '(#t . #t) '(#f . #f)))
 
 (define (non_postbreak_visibility d) (if (= d 1) '(#t . #t) '(#f . #f)))
+(define (non_prebreak_visibility d) (if (= d -1) '(#t . #t) '(#f . #f)))
 
 
 ;; Score_span_bars are only visible at start of line
 ;; i.e. if break_dir == RIGHT == 1
 (define Span_bar_engraver_visibility non_postbreak_visibility)
-
+(define mark-visibility non_prebreak_visibility)
 (define Span_score_bar_engraver_visibility postbreak_only_visibility)
 (define Piano_bar_engraver_visibility postbreak_only_visibility)
 (define Staff_group_bar_engraver_visibility postbreak_only_visibility)
index 17483b954f75b10e0aaa450c993e362867ba82e8..c1c209f57210e9562e5bf11fd1ad0b5bfea483c2 100644 (file)
@@ -1,4 +1,4 @@
-;; (name . '((downindexstring upindexstring)
+;; (name . '((downindexstring upindexstring)
 ;;           follow-into-staff :: bool
 ;;           dir-relative-to-stem :: int
 ;;           force-dir :: int
@@ -15,8 +15,8 @@
        ("portato" . (("dportato" . "uportato") #f -1 0 0))
        ("fermata" . (("dfermata" . "ufermata") #f 1 0 0))
        ("stopped" . (("stopped" . "stopped") #f 0 1 0))
-       ("staccato" . (("staccato" . "staccato") #t -1 0 0))
-       ("tenuto" . (("tenuto" "tenuto") 1 -1 0 0))
+       ("staccato" . (("staccato" . "staccato") #t -1 0 -100))
+       ("tenuto" . (("tenuto" "tenuto") 1 -1 0 0))
        ("upbow" . (("upbow" . "upbow") #f 0 1 0))
        ("downbow" . (("downbow" . "downbow") #f 0 1 0))
        ("lheel" . (("upedalheel" . "upedalheel") #f 0 -1  0))
index 21350aa9e1c2ef0027e312a2a9a3f8120babecfa..417533310a2018798daf48c5e3a0fa9fd7d93644 100644 (file)
@@ -54,7 +54,7 @@ class Input:
         open file and set private class variable __fd.  The search
         sequence is: current directory followed by the directories
         found in include property list.  Each directory is searched
-        for file, file.ly, and file.fly.
+        for file, file.ly, file.sly and file.fly.
         
         input:  file   filename
         output: void
@@ -63,7 +63,7 @@ class Input:
 
         for i in [''] + Props.get('include')[0:]:
             ifile = os.path.join(i,file)
-            for j in ['','.ly','.fly']:
+            for j in ['','.ly','.fly', 'sly']:
                 jfile = ifile+j
                 try:
                     this.__fd = open( jfile, 'r' )