\version "1.0.14";
-voice_one = \notes\transpose c' { \stemup
+voice_one = \notes\transpose c''{ \stemup
R1 * 2 | f'4-. r r2 | R1 * 3 |
f'4-. r r2 | R1 * 3 |
es'4-. r r2 | r1 |
}
voice_two = \notes
- { \transpose c, { \stemdown
+ { \transpose c' { \stemdown
R1 * 2 | f'4-. r r2 | R1 * 3 |
f'4-. r r2 | R1 * 3 |
es'4-. r r2 | r1 |
#include "encompass-info.hh"
#include "slur.hh"
#include "staff-sym.hh"
+#include "note-head.hh"
#include "debug.hh"
Encompass_info::Encompass_info ()
Encompass_info::Encompass_info (Note_column const* note, Direction dir)
{
+ interstaff_f_ = 0;
+
Paper_def* paper = note->paper ();
Real interline = paper->interline_f ();
// UGH
if (stem_l->dir_ != dir)
o_.y () += 1.0 * internote * dir;
- Slur* slur_l_ = stem_l->slur_l_;
- if (slur_l_->encompass_arr_.size ()
- && stem_l->staff_sym_l_ != slur_l_->encompass_arr_[0]->stem_l_->staff_sym_l_)
+ Slur* slur_l = stem_l->slur_l_;
+ if (slur_l->encompass_arr_.size ()
+ && stem_l->staff_sym_l_ != slur_l->encompass_arr_[0]->stem_l_->staff_sym_l_)
{
+#if 0 // this is nonsense..., don't issue warning
if (stem_l->staff_sym_l_->dim_cache_[Y_AXIS].valid_b ())
{
interstaff_f_ = stem_l->staff_sym_l_->absolute_coordinate (Y_AXIS)
- - slur_l_->encompass_arr_[0]->stem_l_->staff_sym_l_->absolute_coordinate (Y_AXIS);
+ - slur_l->encompass_arr_[0]->stem_l_->staff_sym_l_->absolute_coordinate (Y_AXIS);
}
else
+#endif
{
- warning (_ ("invalid dimension cache: guessing staff position"));
- if (slur_l_->vertical_align_drul_[MIN] !=
- slur_l_->vertical_align_drul_[MAX])
+ // warning (_ ("invalid dimension cache: guessing staff position"));
+ if (slur_l->vertical_align_drul_[MIN] !=
+ slur_l->vertical_align_drul_[MAX])
warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff slurs may be broken"));
- interstaff_f_ = slur_l_->vertical_align_drul_[MIN];
- // urg, guess staff order:
- // if our stem ends higher, our staff is probably lower...
- if (stem_l->chord_start_f () > slur_l_->encompass_arr_[0]->stem_l_->chord_start_f ())
+ interstaff_f_ = slur_l->vertical_align_drul_[MIN];
+ /* urg, guess staff order */
+ int d = note->head_l_arr_.top ()->steps_i_
+ - slur_l->encompass_arr_[0]->head_l_arr_[0]->steps_i_;
+ if (abs (d > 3))
+ interstaff_f_ *= sign (d);
+ else if (stem_l->chord_start_f () >
+ slur_l->encompass_arr_[0]->stem_l_->chord_start_f ())
interstaff_f_ *= -1;
}
o_.y () += interstaff_f_;
{
Time_description const *time = get_staff_info().time_C_;
mmrest_p_ = new Multi_measure_rest;
- // rest_item_creation_mom_ = time->when_mom ();
announce_element (Score_element_info (mmrest_p_, multi_measure_req_l_));
start_measure_i_ = time->bars_i_;
}
Multi_measure_rest_engraver::do_pre_move_processing ()
{
Moment now (now_moment ());
- //urg lily dumps core if i want to let her print all (SkipBars=0) rests...
-#if 0
- if (mmrest_p_ && (now >= rest_start_mom_) && (mmrest_p_->column_arr_.size () >= 2))
+ Time_description const *time = get_staff_info().time_C_;
+ if (mmrest_p_ && (now >= rest_start_mom_)
+ && !time->whole_in_measure_
+ && (mmrest_p_->column_arr_.size () >= 2))
{
typeset_element (mmrest_p_);
+ /*
+ must keep mmrest_p_ around to set measures_i_
+ */
}
-#endif
if (lastrest_p_)
{
typeset_element (lastrest_p_);
Time_description const *time = get_staff_info().time_C_;
Moment now (now_moment ());
- /*
- when our time's up, calculate the number of bars rest and
- make way for new request
- however, linger around a bit to catch this last column when
- its announced
- */
- if (mmrest_p_ && (now >= rest_stop_mom_)) //&& (!time->whole_in_measure_))
+ if (mmrest_p_ && !time->whole_in_measure_)
{
lastrest_p_ = mmrest_p_;
lastrest_p_->measures_i_ = time->bars_i_ - start_measure_i_;
- //urg lily dumps core if i want to let her print all (SkipBars=0) rests...
-#if 0
- if (lastrest_p_->column_arr_.size () >= 2)
- lastrest_p_ = 0;
-#endif
+ mmrest_p_ = 0;
+ }
+
+ if (now >= rest_stop_mom_)
+ {
multi_measure_req_l_ = 0;
mmrest_p_ = 0;
}
Text_def *td_p =new Text_def;
td_p->align_dir_ = LEFT;
td_p->text_str_ = string;
- // huh?
- script_p_->dir_ = RIGHT;
+ script_p_->dir_ = LEFT;
script_p_->specs_p_ = td_p;
script_p_->breakable_b_ = true;
if (beam_l_->sinfo_.size ()
&& stem_l_->staff_sym_l_ != beam_l_->sinfo_[0].stem_l_->staff_sym_l_)
{
+#if 0 // this is nonsense..., don't issue warning
if (stem_l_->staff_sym_l_->dim_cache_[Y_AXIS].valid_b ())
{
interstaff_f_ = stem_l_->staff_sym_l_->absolute_coordinate (Y_AXIS)
- beam_l_->sinfo_[0].stem_l_->staff_sym_l_->absolute_coordinate (Y_AXIS) / internote_f;
}
else
+#endif
{
- warning (_ ("invalid dimension cache: guessing staff position"));
+ // warning (_ ("invalid dimension cache: guessing staff position"));
if (beam_l_->vertical_align_drul_[MIN] !=
beam_l_->vertical_align_drul_[MAX])
warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff slurs may be broken"));
//ugh
if (dur.plet_b ())
- str += String ("\\[")
+ str += String ("\\times ")
+ String_convert::i2dec_str (dur.plet_.iso_i_, 0, 0)
+ "/"
- + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0);
+ + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0)
+ + " { ";
+
str += name_str;
str += Duration_convert::dur2_str (tmp);
if (dur.plet_b ())
- str += String (" \\]");
+ str += String (" }");
/*
note of zero duration is nonsense,
*os_p_ << filename_str_g;
*os_p_ << "\n\n";
// ugh
- *os_p_ << "\\version \"1.0.2\";\n";
+ *os_p_ << "\\version \"1.0.14\";\n";
}
void