On Friday 22 September 2006 13:06, Han-Wen Nienhuys wrote: > Trent Johnston wrote: > > Figures were able to placed above rests but in recent versions these are > > now ignored. The figured is excepted (ie. lilypond doesn't complain) but > > there is no figure printed in the output. > > I think the problem is that due to Erik's stream changes in > 2.9.something, now both Rest_engraver and Figured_bass_engraver listen > to rest-events. The old behavior of \context FiguredBass was to cancel > any running bassfigure (continuation line) when a rest was encountered. > > When adding the bass figures to the Staff, rests would be caught by the > normal Rest_engraver. Now both the rest_engraver and the > figured_bass_engraver catch the rest-event. I could switch off the > 'terminate continuation on rest' feature, but that would have other > compatibility repercussions. > > Erik, please advise on a strategy. hm, we want the engraver to listen to rests only if it's part of a Staff context, right?
One solution would be to create one class figured-bass-engraver, without a rest listener, and then create a subclass staff-figured-bass-engraver, which adds the listener. If you don't like translator subclassing, then I'd suggest a simple hack, like checking for context ()->is_alias ("Staff") before doing anything in Figured_bass_engraver::listen_rest. Speaking of which: I find is_alias a bit confusing; e.g., the alias 'Voice usually means it's a context you can align lyrics to. Why don't we rename that alias to 'LyricAlign? The alias name 'Voice confuses me because it's similar to a context name. -- Erik _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel