rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
)
+Precompiled i386 eRedHat RPMS are available from
+lurl(http://linux.umbc.edu/software/lilypond/rpms/).
+
+
sect(DEBIAN GNU/LINUX)
arrcpy (T*dest, T*src, int count)
{
for (int i_shadows_local=0; i_shadows_local < count ; i_shadows_local++)
+#ifdef __powerpc__
+ {
+ /*
+ urg: wierd egcs-1.1.2 bug on ppc
+ bug report filed
+ */
+ *dest = *src;
+ dest++, src++;
+ }
+#else
*dest++ = *src++;
+#endif
}
template<class T> INLINE void
--- /dev/null
+% core
+\grace a8 \grace b8 c4
--- /dev/null
+%hairy grace stuff:
+
+\score{
+ \context Staff=foo \notes\relative c''{
+ % two auto beams
+ d4 \grace c8 d8 \grace { d16 c16 } d8 c2
+ \property Voice.verticalDirection = 1
+ % colliding beams
+ d4 \grace c8 d8 \grace { d16 c16 } d8 c2
+ \property Voice.verticalDirection = 0
+ % leger lines
+ d,,4 \grace c8 d8 \grace { d16 c16 } d8 c2
+ }
+}
Beam* create_beam_p ();
void end_beam ();
void junk_beam ();
+ bool same_grace_state_b (Score_element* e);
void typeset_beam ();
Moment shortest_mom_;
Real interstaff_f_;
Stem* stem_l_;
-
Stem_info ();
Stem_info (Stem *, int);
};
// for simplicity, we calculate as if dir == UP
idealy_f_ *= beam_dir_;
-
+
+ bool grace_b = stem_l_->get_elt_property (grace_scm_sym) != SCM_BOOL_F;
+
int stem_max = (int)rint(paper_l->get_var ("stem_max"));
- Real min_stem_f = paper_l->get_var (String ("minimum_stem_length")
- + to_str (mult_i_ <? stem_max));
- Real stem_f = paper_l->get_var (String ("stem_length")
- + to_str (mult_i_ <? stem_max))* internote_f;
+ String type_str = grace_b ? "grace_" : "";
+ Real min_stem_f = paper_l->get_var (type_str + "minimum_stem_length"
+ + to_str (mult_i_ <? stem_max));
+ Real stem_f = paper_l->get_var (type_str + "stem_length"
+ + to_str (mult_i_ <? stem_max))* internote_f;
if (!beam_dir_ || (beam_dir_ == dir_))
/* normal beamed stem */
idealy_f_ += stem_f;
miny_f_ += min_stem_f;
- // lowest beam of (UP) beam must never be lower than second staffline
- miny_f_ = miny_f_ >? (- 2 * internote_f - beam_f
- + (mult_i_ > 0) * beam_f + interbeam_f * (mult_i_ - 1));
+ /*
+ lowest beam of (UP) beam must never be lower than second staffline
+
+ Hmm, reference (Wanske?)
+
+ Although this (additional) rule is probably correct,
+ I expect that highest beam (UP) should also never be lower
+ than middle staffline, just as normal stems.
+
+ */
+ if (!grace_b)
+ {
+ //highest beam of (UP) beam must never be lower than middle staffline
+ miny_f_ = miny_f_ >? 0;
+ //lowest beam of (UP) beam must never be lower than second staffline
+ miny_f_ = miny_f_ >? (- 2 * internote_f - beam_f
+ + (mult_i_ > 0) * beam_f + interbeam_f * (mult_i_ - 1));
+ }
}
else
/* knee */
% thickness of stafflines
staffline = \interline / 10.0;
+% urg, need grace_ versions of these too?
beam_thickness = 0.52 * (\interline - \staffline);
interbeam = (2.0 * \interline + \staffline - \beam_thickness) / 2.0;
interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0;
stem_length2 = 4.;
stem_length3 = 3.;
+% urg.
+% if only these ugly arrays were scm,
+% we could override them in the Grace context
+grace_factor = 0.8;
+grace_stem_length0 = \stem_length0 * \grace_factor;
+grace_stem_length1 = \stem_length1 * \grace_factor;
+grace_stem_length2 = \stem_length2 * \grace_factor;
+grace_stem_length3 = \stem_length3 * \grace_factor;
+
% only used for beams
minimum_stem_length0 = 0.0 ; % not used
minimum_stem_length1 = 3. ;
minimum_stem_length2 = 2.5;
minimum_stem_length3 = 2.0;
+grace_minimum_stem_length0 = 0.0 ; % not used
+grace_minimum_stem_length1 = \minimum_stem_length1 * \grace_factor;
+grace_minimum_stem_length2 = \minimum_stem_length2 * \grace_factor;
+grace_minimum_stem_length3 = \minimum_stem_length3 * \grace_factor;
+
% stems in unnatural (forced) direction should be shortened,
% according to [Roush & Gourlay]. Their suggestion to knock off
% a whole staffspace seems a bit drastical: we'll do half.
forced_stem_shorten2 = \forced_stem_shorten1;
forced_stem_shorten3 = \forced_stem_shorten2;
+% don't shorten grace stems, always up
+grace_forced_stem_shorten0 = 0.;
+grace_forced_stem_shorten1 = \grace_forced_stem_shorten0;
+grace_forced_stem_shorten2 = \grace_forced_stem_shorten1;
+grace_forced_stem_shorten3 = \grace_forced_stem_shorten2;
+
% there are several ways to calculate the direction of a beam
%
% * MAJORITY : number count of up or down notes
global = \notes {
\key a \minor;
\time 6/4;
-% \cadenza 1;
\skip 1.*34;
\bar ".|";
}
-x = \context Voice=x \notes {
- % no beams in grace notes
- \property Voice.beamAuto = "0"
-}
-
upper = \context Staff=treble \notes\relative c''{
\clef violin;
- \stemup
- \context Voice=one
+ \property Voice.verticalDirection = 1
r2 r r
r2 r r
- r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e
- % grace hack
- < { es8 )c } \context Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r
+ r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e
+ es8 \grace b({ ))c r4 r2 r
r2 r r
- r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e
- < { es8 )c } \context Voice=x { \stemup s8*1/2 \tiny b8*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
- % urg, what a syntax
- )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/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 )g,8 } \context Voice=x { \stemup s8*1/4 \tiny a8*1/2 ~ } > r4 r2 r
+ r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e
+ es8 } \grace b({ ))c 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 } \grace fis8()gis4 ~ 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 \grace fis8()gis4 ~ gis8 r r4 r2
+ \grace a8()f4 ~ f8 r r2 r
+ r2 r4 a8( b c d c b \grace b8()e \grace a,())g 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/2 \normalsize
- < { )e8*1/2 )g,8 } \context Voice=x { \stemup s8*1/4 \tiny a8*1/2 ~ } > r4 r2 r
- a2( \tiny e'8(*1/2 \normalsize )f4*3/4 ~ )f8 r r2
+ \grace b8()e \grace a,())g r4 r2 r
+ a2( \grace e'8()f4 ~ )f8 r r2
r2 r r
- fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r
- \tiny b'8(*1/2 \normalsize
- < { )a8*1/2 a8 } \context Voice=x { \stemup s8*1/4 \tiny b8*1/2 ~ } > r4 r2 r
+ fis,4( \grace dis8<)cis4 ais> r2 r
+ \grace b'8()a \grace b()a r4 r2 r
r4 a'8--(\< a-- a-- a-- c-- \!b-- a--\> gis f \!e
- < { es8 )c } \context Voice=x { \stemup s8*1/2 \tiny b8*1/2 ~ } > r4 r2 r
- d,4( \tiny fis8(*1/2 \normalsize )gis4*3/4 ~ )gis8 r r4 r2
+ es8 \grace b())c r4 r2 r
+ d,4( \grace fis8()gis4 ~ )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/2 \normalsize
- < { )g8*1/2 )e8 } \context Voice=x { \stemup s8*1/4 \tiny d8*1/2 ~ } > r4 r2 r
+ \grace f8()g \grace d)e r4 r2 r
f8( g a b a g f g a b a g
- \tiny f8(*1/2 \normalsize
- < { )g8*1/2 )e8 } \context Voice=x { \stemup s8*1/4 \tiny d8*1/2 ~ } > r4 r2 r
- a,2( \tiny e'8(*1/2 \normalsize )f4*3/4 ~ )f8 r r2
+ \grace f8()g8 \grace d())e r4 r2 r
+ a,2( \grace e'8() f4 ~ )f8 r r2
r2 r r
- fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r
+ fis,4( \grace dis8<)cis4 ais> r2 r
<e1 g b e> ~ <e g b e>
}
basloopje = \notes\relative c{
-% \property Voice.beamAutoEnd = "1/2"
% d,8( a' d f a d f d a f d )a
d,8( a' d f a \translator Staff=treble d f d \translator Staff=bass a f d )a
}
-%{
-bassbeam = \notes{
- [s2] [s8 \translator Staff=treble s s s] [\translator Staff=bass s2]
-% [s2] [s2] [s2]
-}
-%}
-
-
lower = \context Voice=two \notes \relative c{
\stemdown
\property Staff.slurVerticalDirection = 1
\remove "Time_signature_engraver";
}
}
- \midi {
- \tempo 4 = 54;
- }
+% broken 1.1.51.hwn2
+% \midi {
+% \tempo 4 = 54;
+% }
}
-