]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.76
authorfred <fred>
Tue, 26 Mar 2002 23:54:45 +0000 (23:54 +0000)
committerfred <fred>
Tue, 26 Mar 2002 23:54:45 +0000 (23:54 +0000)
lily/include/lyric-phrasing-engraver.hh
lily/melisma-engraver.cc
ly/engraver.ly

index f5a410308c0d59af936a3566d9d5ac40ff2ab985..75ac186e62cc1fa8247fa48b9067ff5a7a2a862a 100644 (file)
@@ -70,6 +70,7 @@ protected:
 private:
   void record_notehead(const String &context_id, Score_element * notehead);
   void record_lyric(const String &context_id, Score_element * lyric);
+  void record_melisma(const String &context_id);
   Voice_alist_entry * lookup_context_id(const String &context_id);
 
 public:
@@ -93,17 +94,23 @@ class Voice_alist_entry
   Score_element * longest_lyric_l_;
   Score_element * shortest_lyric_l_;
   int alignment_i_;
-
+  bool melisma_b_;
 public:
   static SCM make_entry();
   void set_first_in_phrase(bool f);
   void set_notehead(Score_element * notehead);
   void add_lyric(Score_element * lyric);
+  void set_melisma();
+  bool get_melisma() { return melisma_b_; }
+  int lyric_count() { return lyric_list_.size(); }
   void clear();
   bool is_empty();
   bool set_lyric_align(const char *punc, Score_element *default_notehead_l);
+  void adjust_melisma_align();
   int appropriate_alignment(const char *punc);
+  Real amount_to_translate();
   void next_lyric();
+  void copy(Voice_alist_entry *);
 private:
   Voice_alist_entry();
   DECLARE_SIMPLE_SMOBS(Voice_alist_entry,);
index f3b96c7fcfac665d0768aaebe22fd6be3b0d7d4b..e5f7ada6033c15bd7cabd2033c7c63c27a531a38 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "engraver.hh"
 #include "musical-request.hh"
+#include "score-element.hh"
 
 /**
    Signal existence of melismas.
@@ -30,9 +31,18 @@ Melisma_engraver::do_try_music (Music *m )
       SCM plain (get_property ("melismaBusy"));
       SCM slur (get_property ("slurMelismaBusy"));
       SCM tie (get_property ("tieMelismaBusy"));
-      return (to_boolean (plain))
-       || (to_boolean (slur))
-       || (to_boolean (tie));
+      SCM beam (get_property ("beamMelismaBusy"));
+      
+      if( (to_boolean (plain))
+         || (to_boolean (slur))
+         || (to_boolean (tie))
+         || (to_boolean (beam))) {
+
+       Score_element * melisma_p = new Score_element (get_property ("basicMelismaProperties"));
+       announce_element (melisma_p, m);
+
+       return true;
+      }
     }
   return false;
 }
index 0ce4a5f8794c43749c4ab07f43ef5ac659e1f258..9167c65804a1cd947b559c2e5cd91365c4e289e9 100644 (file)
@@ -733,6 +733,9 @@ ScoreContext = \translator {
                (break-align-symbol . Clef_item)
                (visibility-lambda . ,begin-of-line-visible)
        )
+       basicMelismaProperties = #`(
+               (interfaces . (melisma-interface))
+       )
        
        \accepts "Staff";
        \accepts "StaffGroup";