lilypond-devel
[Top][All Lists]
Advanced

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

Re: Translator todos


From: Han-Wen Nienhuys
Subject: Re: Translator todos
Date: Wed, 27 Sep 2006 22:05:20 +0200
User-agent: Thunderbird 1.5.0.7 (X11/20060913)

Erik Sandberg schreef:
Hi,

Here's a summary of my plans for the translator (I assume all of this will happen after 2.10):

1) separate context-def into two parts, translator information and tree information. Basically, the info shared by engraver-init and performer-init should belong to the 'tree information', which tells us the relationships between context types, while the stuff specific for layout and midi, such as translators and grob properties, should belong to the 'translator' part. 2) remove recurse_over_translator and friends, replace with a dispatcher system. This will probably be a slowdown, but not in terms of O. 3) softcode \consists, \remove as music functions. With the new event system, it shouldn't be difficult to add/remove translators on the fly. Depends slightly on (2). 4) remove Context::implementation. This member is currently only used by translator groups, to search for parents and children. Once (2) is done, it's sufficient to add a parent pointer to each translator group.

I don't have a perfectly clear picture of (1) yet, but I have a feeling that (1) + (3) can reveal a new way of looking at context defs; if we're lucky it may even be possible to encode all 'translator information' using Music (thus getting a nice solution to the \tempo syntax problem).

I think I'd prefer to perform the above tasks in order 2-3-4-1.

This all sounds very good. Of course (3) implies that we'll be able to run functions inside \translator definitions as well. I have the feeling that this might be a can of syntactic worms. To address that I think that it is better to do (1) before (3), because we can do (1) without user-visible changes, i.e. we don't paint ourselves into backward compatibility corners, while we gain understanding of how to do (3).

--

Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen

LilyPond Software Design
 -- Code for Music Notation
http://www.lilypond-design.com





reply via email to

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