lilypond-devel
[Top][All Lists]
Advanced

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

[PATCH] Re: Quoting \set and \override (for cue notes etc.)


From: Reinhold Kainhofer
Subject: [PATCH] Re: Quoting \set and \override (for cue notes etc.)
Date: Mon, 28 Sep 2009 17:27:09 +0200
User-agent: KMail/1.12.1 (Linux/2.6.28-15-generic; KDE/4.3.1; i686; ; )

I have now fixed the problem with quoting \set and \override... 
It was a very simply problem: The list of events to be quoted for a time step 
was created basically using (cons ev oldevents) in the listener, so they were 
in the reverse order. What was missing was reverting it before using it in the 
code....

Patch (including this fix and the change to allow all StreamEvents to be 
quoted) can be found on rietvield:
http://codereview.appspot.com/124064

Okay to apply?

Cheers,
Reinhold

Am Samstag, 22. August 2009 13:36:33 schrieb Reinhold Kainhofer:
> Am Samstag, 22. August 2009 13:06:59 schrieb Reinhold Kainhofer:
> > Am Donnerstag, 20. August 2009 00:19:41 schrieb Neil Puttock:
> > > 2009/8/14 Reinhold Kainhofer <address@hidden>:
> > > > I tried adding various classes to the quotedEventTypes list, e.g.
> > > > override- property-event general-music override-property
> > > > OverrideProperty property-set PropertySet, but nothing seems to have
> > > > any effect. Any idea how to make lilypond also quote overrides and
> > > > \set commands?
> > >
> > > As I hinted in the discussion you mentioned, it's partly due to how
> > > recording-group-emulate is coded:
> >
> > Ah, I would have never guessed that recording-group-emulate would be
> > involved...
> >
> > Shouldn't add-quotable and recording-group-emulate be moved out of the
> > partcombiner code and somewhere more general?
> >
> > > If you change this to listen to 'StreamEvent, the other classes will
> > > be acknowledged, which will allow simple context settings to work
> > > (like fontSize).
> > >
> > > Unfortunately, there's still a problem with \override and \revert;
> > > they're recorded, but it seems the events associated with them either
> > > aren't broadcast, or they're ignored by the Engraver_group.
> 
> [...]
> 
> > -) \once\override Grob #'prop = #val works, but the override without
> > \once does not work. Unfortunately, acciaccatura etc. use \override
> > without \once. These overrides are recorded (i.e. they are checked for in
> > Quote_iterator::accept_music_type), but they don't seem to have an
> > effect.
> 
> Actually, the Engraver_Group receives and processes them perfectly well.
>  The real problem is that each \override (without \once) is immediately
>  followed by a corresponding Revert event, of course rendering that
>  override ineffective:
> 
> Event class: note-event  (in Quote_iterator::accept_music_type)
> Event class: Override  (in Quote_iterator::accept_music_type)
>     Engraver_group::override: Stem, (stroke-style), "grace"
> Event class: Revert  (in Quote_iterator::accept_music_type)
>     Engraver_group::revert: Stem, (stroke-style),
> Event class: note-event  (in Quote_iterator::accept_music_type)
> Event class: note-event  (in Quote_iterator::accept_music_type)
> 
> So, I suppose this is a problem with the recording-group-emulator rather
>  than the Engraver_group or the broadcasting.
> 
> Cheers,
> Reinhold
> 

-- 
------------------------------------------------------------------
Reinhold Kainhofer, address@hidden, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org




reply via email to

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