</td></tr>
<tr><td><font size="-1">
<a href="@TOP@Documentation/out-www/index.html#mailing-lists">About the lists</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/gnu-music-discuss/">Discussion</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/help-gnu-music/">Help</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/bug-gnu-music/">Bugs</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/info-gnu-music/">Announcements</a><br>
+ <a href="http://mail.gnu.org/mailman/listinfo/lilypond-user/">Using LilyPond</a><br>
+ <a href="http://mail.gnu.org/mailman/listinfo/lilypond-devel/">Developing LilyPond</a><br>
+ <a href="http://mail.gnu.org/mailman/listinfo/bug-lilypond/">Reporting bugs</a><br>
+ <a href="http://mail.gnu.org/mailman/listinfo/info-lilypond/">Announcements</a><br>
<br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff"><b>Sites</b></td></tr>
@lilypondfile[printfilename]{grace-nest4.ly}
-@lilypondfile[printfilename]{grace-nest.ly}
+@lilypondfile[printfilename]{grace-nest5.ly}
+@lilypondfile[printfilename]{grace-nest1.ly}
@lilypondfile[printfilename]{grace-start.ly}
@lilypondfile[printfilename]{spacing-loose.ly}
-@lilypondfile[printfilename]{spacing-accidentals.ly}
+@lilypondfile[printfilename]{spacing-accidental.ly}
-@lilypondfile[printfilename]{spacing-accidentals-staff.ly}
-
-@lilypondfile[printfilename]{spacing-accidentals.ly}
-
-@lilypondfile[printfilename]{spacing-accidentals-staff.ly}
+@lilypondfile[printfilename]{spacing-accidental-staffs.ly}
@lilypondfile[printfilename]{lyrics-bar.ly}
@item -f,--format=@var{format}
Output format for sheet music. Choices are @code{tex} (for @TeX{}
-output), @code{ps} (for PostScript), @code{scm} (for a Scheme
+output), @code{pdftex} for PDF@TeX input, @code{ps} (for PostScript), @code{scm} (for a Scheme
dump), and @code{as} (for ASCII-art).
@c TODO: TFMFONTS
Grace_iterator::process (Moment m)
{
Moment main ;
- main.main_part_ = music_length_.grace_part_ + m.grace_part_;
+ main.main_part_ = - start_mom_.grace_part_ + m.grace_part_;
Music_wrapper_iterator::process (main);
}
Moment cp =Music_wrapper_iterator::pending_moment();
Moment pending;
- pending.grace_part_ = cp.main_part_- music_length_.grace_part_ ;
+ pending.grace_part_ = start_mom_.grace_part_ + cp.main_part_;
return pending;
}
Moment
Grace_music::length_mom () const
{
- Moment l = Music_wrapper::length_mom ();
- Moment gl;
- gl.grace_part_ = l.main_part_ + l.grace_part_ ;
- return gl;
+ Moment m ;
+ return m;
}
Moment
Grace_music::start_mom () const
{
- return - length_mom ();
+ Moment l = Music_wrapper::length_mom ();
+ Moment gl;
+ gl.grace_part_ = -(l.main_part_ + l.grace_part_ );
+ return gl;
}
Grace_music::Grace_music ()
static void find_rods (Item*, SCM);
static void set_interface (Grob*);
static bool has_interface (Grob*);
+ static void find_musical_sequences (Grob*);
DECLARE_SCHEME_CALLBACK (set_spacing_rods, (SCM ));
};
last_len.grace_part_ = Rational (0);
cumulative += last_len;
- cumulative += - first_start ();
-
return cumulative;
}
for (SCM s = music_list (); gh_pair_p (s); s = gh_cdr (s))
{
Music * m = unsmob_music (gh_car (s));
- Moment l = m->length_mom () + m->start_mom ();
+ Moment l = m->length_mom ();
dur = dur >? l;
}
- dur -= minimum_start ();
-
return dur;
}
int
{
Music * mus = unsmob_music (gh_car (s));
Moment l = mus->length_mom ();
-
- if (l.main_part_)
- return mus->start_mom ();
- else if (l.grace_part_)
- {
- m.grace_part_ = - l.grace_part_;
- return m;
- }
+ Moment s = mus->start_mom ();
+ if (l.to_bool () || s.to_bool ())
+ return s;
}
return m;
}
for (; gh_pair_p (cursor); cursor = gh_cdr (cursor))
{
Music * mus = unsmob_music (gh_car (cursor));
- Moment l =mus->length_mom ();
Moment s = mus->start_mom ();
+ Moment l =mus->length_mom () - s;
if (s.grace_part_)
{
void
Sequential_music_iterator::next_element ()
{
- Moment len =iter_p_->music_length_mom ();
+ Moment len =iter_p_->music_length_mom () - iter_p_->music_start_mom ();
assert (!grace_fixups_ || grace_fixups_->start_ >= here_mom_);
if (len.main_part_ && grace_fixups_ &&
Moment m = 0;
for (SCM i = nm; gh_pair_p (i); i = gh_cdr (i))
- m = m >? unsmob_music (gh_car (i))->length_mom ();
-
+ {
+ Music *mus=unsmob_music (gh_car (i));
+ m = m >? (mus->length_mom () - mus->start_mom ());
+ }
if (m > Moment (0))
break ;
else
return s;
}
+
+
/*
Skip events till UNTIL. We don't do any other side effects such as
descending to child iterator contexts, because they might depend on
/*
do the stuff/note/rest preceding a grace.
*/
- iter_p_->process (iter_p_->music_length_mom ()+
- iter_p_->music_start_mom ());
-
+ iter_p_->process (iter_p_->music_length_mom ());
}
else
iter_p_->process (until - here_mom_ + iter_p_->music_start_mom ());
Spaceable_grob::add_spring (Grob*me, Grob * p, Real d, Real strength)
{
SCM mins = me->get_grob_property ("ideal-distances");
+
+
SCM newdist= gh_double2scm (d);
for (SCM s = mins; gh_pair_p (s); s = gh_cdr (s))
{
}
-
void
Spaceable_grob::remove_interface (Grob*me)
{