[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Trying to get a hang of what to use when...
From: |
Han-Wen Nienhuys |
Subject: |
Re: Trying to get a hang of what to use when... |
Date: |
Sun, 24 Jan 2010 21:50:53 -0800 |
mostly correct. some remarks
On Sat, Jan 23, 2010 at 8:58 AM, David Kastrup <address@hidden> 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 - address@hidden - http://www.xs4all.nl/~hanwen