On Wed, Jul 22, 2009 at 9:05 AM, Kieren MacMillan<kieren_macmil...@sympatico.ca> wrote: > Hello all, > > Like many Lilyponders, I break down my code into variables, e.g. global (for > time signature changes, etc.), notes, dynamics, etc. The main irritation > with this (IMO) is that each variable requires a complete set of skips in > order to keep the timing accurate. > > Would it be technically feasible/possible to establish a system of "anchors" > instead? That is, could we declare an anchor point in the global setup, and > then refer to it in other code? e.g. > > global = > { > \time 4/4 s4*4*10 > \time 3/4 s4*3*5 > \time 7/4 s4*7 > \time 4/4 \anchor #'coda s4*4*10 > \bar "|." > } > > tempoChanges = > { > \tempo \markup "Opening tempo" > \anchorTo #'coda \tempo \markup "Extremely slow" > } > > ?? > > Just a brainstorm from someone who doesn't understand the internals enough > to immediately see the stupidity of this idea... =) >
That's a neat idea. It might be easier to do something like: global = { \time 4/4 s4*4*10 \time 3/4 s4*3*5 \time 7/4 s4*7 \time 4/4 \anchor #'coda s4*4*10 \bar "|." } \addAt #'coda \global {\tempo \markup "Extremely slow"} Then the addAt function could weave the tempo in at the correct point. Though I'm not sure how easy this would be either. ===== I've thought about something similar before and I think anchors would be a good syntax (I don't know about the internals) to make it work: global = {s1*4 \anchor #'place s1*4} part = \relative c' {c1 c c c \assertAt #'place c c c c \assertEnd} anotherPart = \relative c' {e1 e e \assertAt #'place e e e e \assertEnd} %Error \score { << \new Staff{ << \global \part >> } \new Staff{ << \global \anotherPart >> } >> } This would work similar to bar checks. Errors would be thrown when the anchor and assertion don't line up. I think this might be more complicated than the above use. In any case I think anchors could be very useful for a variety of purposes. -----Jay _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel