[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Clusters

From: Han-Wen Nienhuys
Subject: Re: [PATCH] Clusters
Date: Sat, 16 Nov 2002 01:00:43 +0100

address@hidden writes:
> > from process_music(), which happens before the last notes are caught
> > in acknowledge_grob().  Move the typeset_grob() to
> > stop_translation_timestep(), and you should be fine.
> I do not understand.  This is exactly, what my patch *does*: it moves
> typeset_grob() to stop_translation_timestep().

Oh, I didn't carefully enough. The part that says about_finishing_b
seems kludgy, the stop event already tells you that the cluster ends.

> >     Better yet, simply store a list of note heads in the cluster grob,
> >     and let the Cluster grob sort out X and Y-positions. [*]
> >
> This may turn out to produce unexpected behaviour, e.g. if a user removes
> the noteheads engraver from a voice rather than just setting noteheads
> transparent.

Well, then the code has to be rewritten anyway, as no note heads will
be caught by the engraver.

> >   * The contents of columns_scm are not protected from Garbage
> >     collection. Your code will make mysterious ugly crashs on larger
> >     scores. Use Protected_scm, or better yet, use [*]

the suggestion to dump a list of noteheads into the Cluster grob.

> >     #(ly:export (make-request-chord (list
> >          (make-span-event 'ClusterEvent START))))
> >   }
> >
> Ok, the following seems (almost) to work:
> [..]

There is a basic problem, if I understand correctly, you want to be
able to do


but also have stuff in startCluster (turning off stems, beams, and
accidentals) which isn't connected with NOTE in any way. The current
syntax isn't suited for such this type of thing.

The simplest possibility that I see is to switch off noteheads from
acknowledge_grob() the engraver, and switch off the rest from
process_music(). No extra  commands needed.

Han-Wen Nienhuys   |   address@hidden   | 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]