> > % \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