[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cf. Hofstadter's Law
From: |
Han-Wen Nienhuys |
Subject: |
Re: Cf. Hofstadter's Law |
Date: |
Wed, 10 Jul 2002 19:41:14 +0200 |
address@hidden writes:
> Han-Wen Nienhuys wrote:
>
> > I don't know precisely: in what cases do you absolutely need to
> > postpone the grob creation step to stop_translation_timestep ()?
>
> Problem is: You don't know that before stop_translation_timestep.
> The problematic cases is when an accidental depends on a simultainous
> acc in another staff: In \context PianoStaff < c cis > the c needs to
> get a natural because of the cis in the other staff. In the
> process_acknowledged_grobs phase of the first staff the second staff has
> not yet been interpreted and hence YOU DON'T KNOW whether a cis (or ces
> or whatever) will occur in that staff.
> This is true for all notes. Even though in 99,999% of the cases no cis
> will appear in the other staves so that no accidentals are needed. But
> you don't KNOW it before you have interpreted all staves - in the
> stop_translation_timestep phase.
I realize that I'm not making myself popular now, but how about
marking this as an official shortcoming of LilyPond, and leave it up
to the user to add appropriate `!' for the piano staff case?
I don't see an easy solution to this problem if we use
broadcast/acknowledge. Perhaps the best option is to scrap the
current setup completely, and instead add the acc support into the
Note_head_engraver: you could have Note_head_engraver write all the
pitches produced into a property at staff or pianostaff level. That
gets you the pitch information at the right time.
Problem is: how do you get the tie information at the right moment?
Right now that also uses broadcast/acknowledge, which is too
late. Seems that the tie-engraver should -in that case- also make ties
based on properties set by the note heads engraver.
This all seems hyperhairy, BTW. This is definitely post 1.6 stuff.
--
Han-Wen Nienhuys | address@hidden | http://www.cs.uu.nl/~hanwen/
Cf. Hofstadter's Law, Han-Wen, 2002/07/08