pl 19.jcn5
- interstaff beams v0: see beam-interstaff.ly and wtk1-fugue2.ly
---
Generated by janneke@gnu.org using package-diff 0.62,
>From = lilypond-1.1.19.jcn4, To = lilypond-1.1.19.jcn5
usage
cd lilypond-source-dir; patch -E -p1 < lilypond-1.1.19.jcn5.diff
Patches do not contain automatically generated files
or (urg) empty directories,
i.e., you should rerun autoconf, configure
and possibly make outdirs.
--state
1.1.19.jcn4
1.1.19.jcn5
++state
12 files changed:
---- ../lilypond-1.1.19.jcn3/NEWS Sat Jan 9 16:03:22 1999
+--- ../lilypond-1.1.19.jcn4/NEWS Sat Jan 9 21:11:06 1999
+++ b/NEWS Sun Jan 10 22:05:13 1999
+@@ -1,3 +1,6 @@
+pl 19.jcn5
+ - interstaff beams v0: see beam-interstaff.ly and wtk1-fugue2.ly
+
+ pl 19.jcn4
+ - new stem/beam parameters
+ - bf: forced stem shorten--- ../lilypond-1.1.19.jcn3/NEWS Sat Jan 9 16:03:22 1999
++ b/NEWS Sat Jan 9 21:11:06 1999
@@ -1,3 +1,7 @@
pl 19.jcn4
++ b/NEWS Sat Jan 9 21:11:06 1999
@@ -1,3 +1,7 @@
pl 19.jcn4
MAJOR_VERSION=1
MINOR_VERSION=1
PATCH_LEVEL=19
MAJOR_VERSION=1
MINOR_VERSION=1
PATCH_LEVEL=19
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
--- /dev/null
+\score{
+ \type GrandStaff <
+ \type Staff=one \notes\relative c'{
+ \stemup [c8 c \translator Staff=two \stemup c c]
+ r2
+ \translator Staff=one
+ \stemdown [c8 c \translator Staff=two \stemup c c]
+ r2
+ \stemdown [c8 c \translator Staff=one \stemdown c c]
+ r2
+ \translator Staff=two
+ \stemup [c8 c \translator Staff=one \stemdown c c]
+ r2
+ }
+ \type Staff=two \notes\relative c'{
+ \clef bass;
+ s1
+ s1
+ s1
+ s1
+ }
+ >
+ \paper{
+ \translator{
+ \GrandStaffContext
+ minVerticalAlign = 2.5*\staffheight;
+ maxVerticalAlign = 2.5*\staffheight;
+ }
+ linewidth=-1.;
+ }
+}
--- /dev/null
+\score{
+ \type GrandStaff <
+ \type Staff=one \notes\relative c'{
+ s1
+ }
+ \type Staff=two \notes\relative c'{
+ \clef bass;
+% no knee
+ \stemup [c8 \translator Staff=one \stemdown g'16 f]
+ s8
+ s2
+ }
+ >
+ \paper{
+ \translator{
+ \GrandStaffContext
+ minVerticalAlign = 2.8*\staffheight;
+ maxVerticalAlign = 2.8*\staffheight;
+ }
+ linewidth=-1.;
+ }
+}
if (prop.isnum_b ())
beam_p_->quantisation_ = (Beam::Quantisation)(int)prop;
if (prop.isnum_b ())
beam_p_->quantisation_ = (Beam::Quantisation)(int)prop;
+ // silly try at interstaff beam
+ // must set minVerticalAlign == maxVerticalAlign to get sane results
+ // see input/test/beam-interstaff.ly
+ prop = get_property ("minVerticalAlign", 0);
+ if (prop.isnum_b ())
+ beam_p_->vertical_align_f_ = prop;
+
+ prop = get_property ("maxVerticalAlign", 0);
+ if (prop.isnum_b ())
+ {
+ beam_p_->vertical_align_f_ += (Real)prop;
+ beam_p_->vertical_align_f_ /= (Real)2;
+ }
+
announce_element (Score_element_info (beam_p_, reqs_drul_[START]));
}
}
announce_element (Score_element_info (beam_p_, reqs_drul_[START]));
}
}
mol_p->translate_axis (x0
- spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS);
mol_p->translate_axis (x0
- spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS);
+ // correct if last note (and therefore reference point of beam)
+ // is on different staff
+ mol_p->translate_axis (- sinfo_.top ().interstaff_f_ * internote_f, Y_AXIS);
+
for (int i=0; i < sinfo_.size (); i++)
{
Real y = sinfo_[i].x_ * slope_f_ + left_y_;
for (int i=0; i < sinfo_.size (); i++)
{
Real y = sinfo_[i].x_ * slope_f_ + left_y_;
// correct for knee
if (dir_ != sinfo_[i].dir_)
// correct for knee
if (dir_ != sinfo_[i].dir_)
- y -= dir_ * (beam_f / 2
- + (sinfo_[i].mult_i_ - 1) * interbeam_f) / internote_f;
+ {
+ y -= dir_ * (beam_f / 2
+ + (sinfo_[i].mult_i_ - 1) * interbeam_f) / internote_f;
+ if (!i && sinfo_[i].stem_l_->staff_sym_l_ !=
+ sinfo_.top ().stem_l_->staff_sym_l_)
+ y += dir_ * (multiple_i_ - (sinfo_[i].stem_l_->flag_i_ - 2) >? 0)
+ * interbeam_f / internote_f;
+ }
- sinfo_[i].stem_l_->set_stemend (y);
+ sinfo_[i].stem_l_->set_stemend (y - sinfo_[i].interstaff_f_);
y *= dir_;
if (y > sinfo_[i].maxy_f_)
y *= dir_;
if (y > sinfo_[i].maxy_f_)
/// maximum number of beams (for opening-up of beam-spacing)
int multiple_i_;
/// maximum number of beams (for opening-up of beam-spacing)
int multiple_i_;
+ /// vertical align distance between staffs
+ Real vertical_align_f_;
+
Array<Stem_info> sinfo_;
Beam();
Array<Stem_info> sinfo_;
Beam();
Real miny_f_;
Real maxy_f_;
int mult_i_;
Real miny_f_;
Real maxy_f_;
int mult_i_;
Stem* stem_l_;
Stem_info ();
Stem* stem_l_;
Stem_info ();
/// direction of the beam
Direction beam_dir_;
/// direction of the beam
Direction beam_dir_;
+
+ /// what staff am i on?
+ Staff_symbol* staff_sym_l_;
+
Stem ();
/// ensure that this Stem also encompasses the Notehead #n#
Stem ();
/// ensure that this Stem also encompasses the Notehead #n#
#include "duration-convert.hh"
#include "misc.hh"
#include "abbrev.hh"
#include "duration-convert.hh"
#include "misc.hh"
#include "abbrev.hh"
+#include "staff-info.hh"
Stem_engraver::Stem_engraver()
{
Stem_engraver::Stem_engraver()
{
int durlog_i = r->duration_.durlog_i_;
stem_p_->flag_i_ = durlog_i;
int durlog_i = r->duration_.durlog_i_;
stem_p_->flag_i_ = durlog_i;
+ stem_p_->staff_sym_l_ = get_staff_info ().staff_sym_l_;
#include "paper-def.hh"
#include "lookup.hh"
#include "stem-info.hh"
#include "paper-def.hh"
#include "lookup.hh"
#include "stem-info.hh"
Stem_info::Stem_info ()
{
Stem_info::Stem_info ()
{
dir_ = stem_l_->dir_;
beam_dir_ = stem_l_->beam_dir_;
mult_i_ = stem_l_->mult_i_;
dir_ = stem_l_->dir_;
beam_dir_ = stem_l_->beam_dir_;
mult_i_ = stem_l_->mult_i_;
Paper_def* paper_l = stem_l_->paper ();
Real internote_f = paper_l->internote_f ();
Paper_def* paper_l = stem_l_->paper ();
Real internote_f = paper_l->internote_f ();
/* knee */
{
idealy_f_ -= beam_f;
/* knee */
{
idealy_f_ -= beam_f;
+ // idealy_f_ -= (mult_i_ - 1) * interbeam_f;
+ // idealy_f_ += (mult_i_ - stem_l_->flag_i_ >? 0) * interbeam_f;
maxy_f_ = idealy_f_;
miny_f_ = -INT_MAX;
maxy_f_ = idealy_f_;
miny_f_ = -INT_MAX;
idealy_f_ = maxy_f_ <? idealy_f_;
idealy_f_ = miny_f_ >? idealy_f_;
idealy_f_ = maxy_f_ <? idealy_f_;
idealy_f_ = miny_f_ >? idealy_f_;
+
+ // interstaff beam
+ Beam* beam_l_ = stem_l_->beam_l_;
+ if (beam_l_->sinfo_.size ()
+ && stem_l_->staff_sym_l_ != beam_l_->sinfo_[0].stem_l_->staff_sym_l_)
+ {
+ // hmm, perhaps silly now to have vertical_align in Beam
+ interstaff_f_ = beam_l_->vertical_align_f_ / internote_f;
+ // urg, guess staff order:
+ // if our stem ends higher, our staff is probably lower...
+ if (idealy_f_ * beam_dir_ > beam_l_->sinfo_[0].idealy_f_ * beam_dir_)
+ interstaff_f_ *= -1;
+ idealy_f_ += interstaff_f_ * beam_dir_;
+ miny_f_ += interstaff_f_ * beam_dir_;
+ maxy_f_ += interstaff_f_ * beam_dir_;
+ }
%%10
as4 r8 a [bes bes16 a] [bes8 f] |
g4 r8 g [as as g f] |
%%10
as4 r8 a [bes bes16 a] [bes8 f] |
g4 r8 g [as as g f] |
\translator Staff = bass \stemup
\translator Staff = bass \stemup
- r8 [as, bes c ] r8 [as16 g] [as8 f8] |
+ [as, bes c ] r8 [as16 g] [as8 f8] |
[bes8 c bes as] [bes g f es] |
[f des' c bes] [c as g f] |
%%15
g8
[bes8 c bes as] [bes g f es] |
[f des' c bes] [c as g f] |
%%15
g8
- \translator Staff = treble \stemdown
- [g'16 fis] [g8 c,] [es g16 fis!] [g8 a] |
+ [g'16 fis] [g8 c,]
+ [es \translator Staff = treble \stemdown g16 fis!] [g8 a] |
[d, g16 fis] [g8 a!] [c,16 d] es4 [d16 c] | % forced accident!
bes8 r8 r16 [d e fis] [g a bes8] ~ [bes16 e, f g] |
[a bes c8] ~ [c16 fis,16 g a] [bes8 es,!16 d] [es8 g, ] |
[as f'16 es] [f8 a,8] [bes g'16 f] [g8 b, ] |
%%20
[d, g16 fis] [g8 a!] [c,16 d] es4 [d16 c] | % forced accident!
bes8 r8 r16 [d e fis] [g a bes8] ~ [bes16 e, f g] |
[a bes c8] ~ [c16 fis,16 g a] [bes8 es,!16 d] [es8 g, ] |
[as f'16 es] [f8 a,8] [bes g'16 f] [g8 b, ] |
%%20
- [c16 f es d] [c bes! as g] [f8 as' g f] |
+ [c16 f \translator Staff = bass \stemup es d] [c bes! as g]
+ [f8 \translator Staff = treble \stemdown as' g f] |
[es d es f] [b, c d b] |
c4 r8 e8 [f f16 e] [f8 c] |
d4 r8 d8 [es8 es16 d] [es8 bes] |
[es d es f] [b, c d b] |
c4 r8 e8 [f f16 e] [f8 c] |
d4 r8 d8 [es8 es16 d] [es8 bes] |
[f d'16 c ] [d8 fis,] g4 r16 [g, a b] |
[c16 d es8~] [es16 a, bes c] [d es f8~] [f16 b, c d] |
%%20
[f d'16 c ] [d8 fis,] g4 r16 [g, a b] |
[c16 d es8~] [es16 a, bes c] [d es f8~] [f16 b, c d] |
%%20
- es8 r r e [f f, es! d] | % -> \classic_accidentals
+% es8 r r e [f f, es! d] | % -> \classic_accidentals
+ es8 r r e \stemdown [f f, es! d] \stemboth |
r [as' g f] [g f16 es] [f8 g] |
[c16 d es d] [c bes as g] [f bes' as g] [f es d c] |
[bes c d c] [bes as g f] [es as' g f] [es d c bes] |
r [as' g f] [g f16 es] [f8 g] |
[c16 d es d] [c bes as g] [f bes' as g] [f es d c] |
[bes c d c] [bes as g f] [es as' g f] [es d c bes] |
%hmm
% \translator { \BarNumberingScoreContext }
% \translator { \BarNumberingStaffContext }
%hmm
% \translator { \BarNumberingScoreContext }
% \translator { \BarNumberingStaffContext }
- \translator{ \OrchestralScoreContext }
+% \translator{ \OrchestralScoreContext }
+ \translator{ \OrchestralScoreContext }
+ \translator{
+ \GrandStaffContext
+ minVerticalAlign = 3.0*\staffheight;
+ maxVerticalAlign = 3.0*\staffheight;
+ }
}
\header{
opus = "BWV 847";
}
\header{
opus = "BWV 847";