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:
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,);
#include "engraver.hh"
#include "musical-request.hh"
+#include "score-element.hh"
/**
Signal existence of melismas.
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;
}
(break-align-symbol . Clef_item)
(visibility-lambda . ,begin-of-line-visible)
)
+ basicMelismaProperties = #`(
+ (interfaces . (melisma-interface))
+ )
\accepts "Staff";
\accepts "StaffGroup";