mostly correct. some remarks On Sat, Jan 23, 2010 at 8:58 AM, David Kastrup <d...@gnu.org> wrote: > Ok, I am trying to figure out for what kind of task one would use what > kind of Lilypond construct. So I try echoing my current understanding > and want you to holler when I am wrong. > > We have music functions. Music functions can be used for doing music > in, music out. Now music can be complex, containing chords, material of > several durations, markups, context switches (?), parallel music. The > main nuisance with music functions is that you need to deal with > everything. Also there are things like bar checks which don't make > sense while interpreting a music expression, but need to be passed down > to some context where some engraver will pick them up and complain or > not.
Indeed. Music functions make sense when you are structurally changing the music, eg << {a b}{c d} >> to { << a c >> << b d >> } or things like transposition, slowing down or speeding up music. > If we need to process all of this in a sort of sequential manner, like I usually call this "synchronized", because simultaneously sounding events are processed in the same timestep. > if we are trying to construct a combined part, or trying to play > something, or trying to engrave a staff or so, we need a context, right? > If we just want to pick out what we are interested in, > time-sequentially/sorted and leave the rest alone, like lyrics and > stuff, we use an engraver. How do we signal that we have picked > something and that no other engraver need bother with it? IIRC More than one engraver may process an event: multiple engraver can listen for a given event-type. (I'm 99% sure - the 1% is because Erik's rewrite changed this, so I may miss a subtlety) > An engraver really is the same thing as a performer and a translator. > Hopefully. performers for playing, engravers for printing. Translator is their baseclass. -- Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel