lilypond-auto
[Top][All Lists]

## Re: [Lilypond-auto] Issue 34 in lilypond: Grace synchronization

 From: lilypond Subject: Re: [Lilypond-auto] Issue 34 in lilypond: Grace synchronization Date: Sat, 30 Jun 2012 18:06:18 +0000

```
Comment #25 on issue 34 by address@hidden: Grace synchronization

```
Phooey. Moments are used for a number of things: for moments themselves, for timespans between moments, and sometimes for accumulating timespans. Basically, there is a bit of reliance that the usual arithmetic laws will hold. So it is not really overly feasible to squeeze -inf grace as a somewhat neutral element into the arithmetic and hope that things work out.
```
```
With regard to property changes etc, it seems unfortunate not to be able to distinguish the time before any grace and the time after graces.
```
```
My personal favorite would be to use #f and 0 for "before" and "after graces". However, moments don't contain SCM, but rather Rational members. Personally, I think that the whole Rational class (and the respective conversion problems) would benefit from getting scrapped and getting replaced just by Scheme rationals.
```
```
Doing that just internally (namely, replacing only the implementation of Rational) would be somewhat inefficient since it would convert things back and forth from Scheme unnecessarily.
```
Anyway, that is a different topic.

```
In the mean time, playing arithmetic games would not appear to help, so one should probably try fixing up the program's logic if feasible: after all, most of the work _is_ in place for working with graces.
```
```
I can't help myself, but I find the following comment in grace-iterator.cc to be on the less convincing side:
```
void
Grace_iterator::process (Moment m)
{
Moment main;
main.main_part_ = -start_mom_.grace_part_ + m.grace_part_;
Music_wrapper_iterator::process (main);

/* We can safely do this, since \grace should always be inside
sequential.  */
descend_to_child (child_iter_->get_outlet ());
}

While I don't understand graces (yet?), comments like that make me shiver.

```