+pl 22.jcn1
+ - bf's: cross-staff slur
+ - bf: gnossienne-4
+
pl 22
- fixed "already have a Beam" error
* fix midi output.
+ * turn slope-damping on/off
+
* c4 \! \> c4
* tremolo stuff
MAJOR_VERSION=1
MINOR_VERSION=1
PATCH_LEVEL=22
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
AC_SUBST(CONFIGSUFFIX)
AC_CANONICAL_HOST
- AC_CHECK_PROGS(MAKE, make gmake, error)
+ AC_CHECK_PROGS(MAKE, gmake make, error)
AC_CHECK_PROGS(FIND, find, error)
dnl system supplied INSTALL is unsafe; use our own install.
if test "$?" = 1
then
AC_STEPMAKE_WARN(Please install *GNU* make)
- fi
+ fi
fi
AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python)
--- /dev/null
+\score{
+ \type GrandStaff <
+ \type Staff=one \notes\relative c'{
+ s1
+ }
+ \type Staff=two \notes\relative c'{
+ \clef bass;
+ s2
+ \translator Staff=one \stemup [c8 c c c ]
+ % the translator switch below, intended for the next beam,
+ % affects (and breaks) the beam above
+ \translator Staff=two
+ }
+ >
+ \paper{
+ % no slur damping
+ slur_slope_damping = 10.0;
+ \translator{
+ \GrandStaffContext
+ minVerticalAlign = 3.0*\staffheight;
+ maxVerticalAlign = 3.0*\staffheight;
+ }
+ linewidth=-1.;
+ }
+}
\translator Staff=two
\stemup c4( \translator Staff=one c \break c )c
r2
- r1
- r1
+% \stemdown c4( \translator Staff=two c c \translator Staff=one )c
+ \stemdown d4( \translator Staff=two c c \translator Staff=one )d
+ \translator Staff=two
+ \stemup c4( \translator Staff=one c c \translator Staff=two )c
r1
}
\type Staff=two \notes\relative c'{
Real y = c[i][Y_AXIS];
iv.unite (Interval (y,y));
}
+ iv -= interstaff_f_;
return iv;
}
{
if (Note_head * h = dynamic_cast<Note_head*>(it_l))
{
- h->position_i_ += c0_position_i_;
+ // h->position_i_ += c0_position_i_;
+ h->position_i_ = h->steps_i_ + c0_position_i_;
}
else if (Local_key_item *i = dynamic_cast<Local_key_item*> (it_l))
{
#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 (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
{
warning (_ ("invalid dimension cache: guessing staff position"));
- if (slur_l_->vertical_align_drul_[MIN] !=
- slur_l_->vertical_align_drul_[MAX])
+ 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_;
dot_p_arr_.push (d);
}
- note_p->position_i_ = note_req_l->pitch_.steps ();
+ note_p->steps_i_ = note_req_l->pitch_.steps ();
+ // note_p->position_i_ = note_req_l->pitch_.steps ();
Score_element_info itinf (note_p,note_req_l);
class Note_head : public Rhythmic_head {
public:
-
+ /// position of top line (5 linestaff: 8)
int position_i_;
+
+ /// pitch in steps
+ int steps_i_;
/// -1 = lowest, 0 = inside, 1 = top
int extremal_i_;
int staff_size_i_;
Direction x_dir_;
- /**
- position of top line (5 linestaff: 8)
- */
Note_head ();
static int compare (Note_head * const &a, Note_head *const &b) ;
{
x_dir_ = CENTER;
staff_size_i_= 8; // UGH
+ steps_i_ = 0;
position_i_ = 0;
extremal_i_ = 0;
}
[)d c'-5( f,-3 e-2] [d-1 b'-5 f-3 d-2] |
[)c b'-5( e,-3 d-2] [c-1 a'-5 e-3 c-2]
[)b-1 a'-5( d,-3 c-2] [b-1 g'-5 d-3 b-2] |
- [)a g'-5 c,-4 b] [a-"poco a poco dim." fis'-5 c-2 a-1]
+% [)a g'-5 c,-4 b] [a-"poco a poco dim." fis'-5 c-2 a-1]
+ [)a g'-5 c,-4 b] [a fis'-5 c-2 a-1]
[b-2 f' d-4 c] [b f' d-4 b-2] |
[g e' c-3 b] [a e'-5 c-3 a-1]
[fis-2 d' b-3 a] [g-1 d'-5 b-4 g-2] |
r2 r r
r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> fis g \!e]
% grace hack
- [es8 { \type Voice=urgnobeam \tiny b8*1/16 ~ \normalsize } )c*15/16] r4 r2 r
+ % urg, how to get grace in different voice, thus in different beam??
+% [es8 { \type Voice=urgnobeam \tiny b8*1/2 ~ \normalsize } )c*1/2] r4 r2 r
+ [es8 \type Voice=x \tiny b8*1/2 ~ \normalsize \type Voice=one )c*1/2] r4 r2 r
r2 r r
r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> fis g \!e]
- [es8 { \type Voice=urgnobeam \tiny b8*1/16 ~ \normalsize } )c*15/16] r4 r2 r
+ [es8 { \type Voice=urgnobeam \tiny b8*1/2 ~ \normalsize } )c*1/2] r4 r2 r
r4 [g16( a bes a] [g a bes a g a bes a] [g a bes a g fis es fis]
- )d4 \tiny fis8*1/16 ~ \normalsize gis4*31/32 ~ gis8 r r4 r2
+ )d4 \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ gis8 r r4 r2
r4 [g16( a bes a] [g a bes a g a bes a] [g a bes a g fis es fis]
- )d4 \tiny fis8*1/16 ~ \normalsize gis4*31/32 ~ gis8 r r4 r2
- \tiny a8*1/16 ~ \normalsize f4*31/32 ~ f8 r r2 r
- r2 r4 [a8( b][c d c b] \tiny b8*1/16 ~ \normalsize [e8*15/16
- { \type Voice=urgnobeam \tiny a,8*1/16 ~ \normalsize } )g8*15/16] r4 r2 r
+ )d4 \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ gis8 r r4 r2
+ \tiny a8*1/2 ~ \normalsize f4*3/4 ~ f8 r r2 r
+ r2 r4 [a8( b][c d c b] \tiny b8*1/2 ~ \normalsize [e8*1/2
+ { \type Voice=urgnobeam \tiny a,8*1/2 ~ \normalsize } )g8*1/2] r4 r2 r
r2 r4 [a8( b][c d c b] [a b c d][c b a b][c d c b]
- \tiny b8*1/16 ~ \normalsize [e8*15/16
- { \type Voice=urgnobeam \tiny a,8*1/16 ~ \normalsize } )g8*15/16] r4 r2 r
- a2( \tiny e'8*1/16 ~ \normalsize f4*31/32 ~ )f8 r r2
+ \tiny b8*1/2 ~ \normalsize [e8*1/2
+ { \type Voice=urgnobeam \tiny a,8*1/2 ~ \normalsize } )g8*1/2] r4 r2 r
+ a2( \tiny e'8*1/2 ~ \normalsize f4*3/4 ~ )f8 r r2
r2 r r
- fis,4( \tiny dis8*1/16 \normalsize <)cis4*31/32 ais> r2 r
- \tiny b'8*1/16 ~ \normalsize [a8*15/16
- { \type Voice=urgnobeam \tiny b8*1/16 ~ \normalsize } a8*15/16] r4 r2 r
+ fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r
+ \tiny b'8*1/2 ~ \normalsize [a8*1/2
+ { \type Voice=urgnobeam \tiny b8*1/2 ~ \normalsize } a8*1/2] r4 r2 r
r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> fis g \!e]
- [es8 { \type Voice=urgnobeam \tiny b8*1/16 ~ \normalsize } )c*15/16] r4 r2 r
- d,4( \tiny fis8*1/16 ~ \normalsize gis4*31/32 ~ )gis8 r r4 r2
+ [es8 { \type Voice=urgnobeam \tiny b8*1/2 ~ \normalsize } )c*1/2] r4 r2 r
+ d,4( \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ )gis8 r r4 r2
f4 ~ f8 r r2 r
[f'8( g a b][a g f g][a b a g]
- \tiny f8*1/16 ~ \normalsize [g8*15/16
- { \type Voice=urgnobeam \tiny d8*1/16 ~ \normalsize } )e8*15/16] r4 r2 r
+ \tiny f8*1/2 ~ \normalsize [g8*1/2
+ { \type Voice=urgnobeam \tiny d8*1/2 ~ \normalsize } )e8*1/2] r4 r2 r
[f8( g a b][a g f g][a b a g]
- \tiny f8*1/16 ~ \normalsize [g8*15/16
- { \type Voice=urgnobeam \tiny d8*1/16 ~ \normalsize } )e8*15/16] r4 r2 r
- a,2( \tiny e'8*1/16 ~ \normalsize f4*31/32 ~ )f8 r r2
+ \tiny f8*1/2 ~ \normalsize [g8*1/2
+ { \type Voice=urgnobeam \tiny d8*1/2 ~ \normalsize } )e8*1/2] r4 r2 r
+ a,2( \tiny e'8*1/2 ~ \normalsize f4*3/4 ~ )f8 r r2
r2 r r
- fis,4( \tiny dis8*1/16 \normalsize <)cis4*31/32 ais> r2 r
+ fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r
<e1 g b e> ~ <e g b e>
}
textheight = 295.\mm;
% no slur damping
- slur_slope_damping = 10.0;
+ slur_slope_damping = 100.0;
%hmm
% \translator { \BarNumberingScoreContext }
minVerticalAlign = 3.0*\staffheight;
maxVerticalAlign = 3.0*\staffheight;
% don't display bars?
- barAlways = 0.;
+ % hmm, this switches something else...
+ % barAlways = 0.;
}
\translator{
\StaffContext
PACKAGE_NAME=StepMake
MAJOR_VERSION=0
MINOR_VERSION=1
-PATCH_LEVEL=66
+PATCH_LEVEL=67
MY_PATCH_LEVEL=
# use the above to send patches, always empty for released version:
AC_SUBST(CONFIGSUFFIX)
AC_CANONICAL_HOST
- AC_CHECK_PROGS(MAKE, make gmake, error)
+ AC_CHECK_PROGS(MAKE, gmake make, error)
AC_CHECK_PROGS(FIND, find, error)
dnl system supplied INSTALL is unsafe; use our own install.
if test "$?" = 1
then
AC_STEPMAKE_WARN(Please install *GNU* make)
- fi
+ fi
fi
AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python)