> > % \after 2 \< \after 8*7 \!\> \after 2 \! > s2 d8(c b2)
Make that
s2 d8(\< c \after 8 \> b2) <>\!
\after doesn't work the way you indented your code suggests you
think it does. The syntax is
\after DURATION ARTICULATION MUSIC
and gives something roughly equivalent to
<< { s DURATION <>ARTICULATION } MUSIC >>
So when you do
\after 8*7 \!\>
it is telling LilyPond "put \> here and \! at 8*7 after it".
The first thing to correct is to change that into
\after 8*7 \! \after 8*7 \> ...
or just
\after 8*7 \> ...
(since \> automatically ends the previous hairpin).
But you still have the problem that you're using \after
to put an articulation at 8*7 after the s2, and the
skip that delays it to 8*7 makes the length of
\after 8*7 \> s2
be 8*7, not 2.
In short, \after doesn't just "spawn something in parallel
at a given point". It needs a main music argument to put
the articulation in parallel with, and normally you don't
want that main music argument (usually a note) to be
longer than the delay of the articulation.
I feel that's not a very clear explanation, but it's the
best I could do, sorry :(
signature.asc
Description: This is a digitally signed message part
