On Fri, 4 May 2007, Henning Hraban Ramm wrote:
Am 2007-05-04 um 21:50 schrieb Henning Hraban Ramm:
""" \global\advance\lily!figures\plusone \edef\lily!filename{\bufferprefix lilypond-\the\lily!figures} ... \edef\LP{texmfstart --ifchanged=\lily!filename.tmp --exec bin:lilypond -b eps -dno-gs-load-fonts -dinclude-eps-fonts \lily! filename.tmp} """
I still don't understand a lot of TeX programming, so I've no clue.
\edef expands its argument at the time of the definition. So \lily!filename is always *-1.tmp. Try changing the \edefs to \def.
BTW: Why did that change between the two versions?
But anyway: It doesn't reckognize that the buffer has changed, if it's from a different component.
Example: My songbook is a product. Every song is a component. If I change the order of the components in the product, ConTeXt (texmfstart, texexec, whoever) doesn't reckognize that, so I get the scores in the old order, i.e. with the wrong title & lyrics! Similar with my test product that only imports one component (for debugging the notes): If I change the component to import, I always get the last score that I checked.
It has been a while since I looked at the lilypond module. This is how I understand what is happening. The pdfs are not generated again in the second run. So, you get the old versions. Try deleting the lilypond pdfs, change the order of components, and you should get missing images.
And remember: It works with Perl texexec!
Maybe --ifchanged in not honored at all and lilypond is run every time, irrespective of whether the snippet has changed or not. BTW, how slow if lilypond, if you ask it just to create small music snippets and not do the page layout etc. If it runs reasonably fast, then there may be no need to do all this --ifchanged stuff. Just as metapost graphics are included. Aditya