Urs,

Another question ... Is there a reason why "main.init.ily", "part-init.ily"
and "score-init.ily" can't be in the same folder?

If I put "part" and "score" in a sub folder they can locate "main" in the
folder above, however, if I put them all in the same folder I get "cannot
find file main-init.ily" errors. Strange!

Craig


On Sun Feb 01 2015 at 3:11:35 AM Craig Dabelstein <
craig.dabelst...@gmail.com> wrote:

> Hi Urs,
>
> I followed your advice re: file structure -- "main-init.ily" has annotate,
> and "part.init.ily" and "score-init.ily" include "main.init.ily".
>
> When engraving the score it all works perfectly, but when engraving a
> part, it gives errors because it can't find "annotate".
>
> Any ideas?
>
> Craig
>
>
> On Sat Jan 31 2015 at 4:58:58 PM Urs Liska <u...@openlilylib.org> wrote:
>
>>
>>
>> Am 31. Januar 2015 03:05:24 MEZ, schrieb Craig Dabelstein <
>> craig.dabelst...@gmail.com>:
>> >Thanks Urs,
>> >
>> >And you put the "\include annotate" code in the main-init.ily file?
>> >
>>
>> Yes, and any similar code like the include of global-defs.ily etc. too.
>>
>> Urs
>>
>> >Craig
>> >
>> >
>> >On Sat Jan 31 2015 at 8:05:57 AM Urs Liska <u...@openlilylib.org> wrote:
>> >
>> >>  Hi Craig,
>> >>
>> >>  Am 30.01.2015 um 17:59 schrieb Craig Dabelstein:
>> >>
>> >> Urs,
>> >>
>> >> Here is a zip of the complete project.
>> >>
>> >>
>> >> Thank you, this was indeed instructive (and a nice score BTW).
>> >>
>> >> There is an issue with your set-up which I had immediately noticed
>> >and
>> >> wanted to tell you about, even before I realized you had a problem
>> >with the
>> >> annotations. I thought this would be only a matter of clean coding
>> >but
>> >> somehow this triggered your issue.
>> >>
>> >> Each annotation is generated multiple times - once for each time you
>> >> included annotate.ily.
>> >> So you should only include it once, which is what I would have
>> >recommended
>> >> anyway.
>> >>
>> >> Usually I have a set-up along these lines:
>> >>
>> >> One main-init.ily file with global definitions and includes that
>> >apply for
>> >> any file in the project.
>> >>
>> >> Two files like score-init.ily and part-init.ily.
>> >> These include main-init.ily and add specific settings to score or
>> >part
>> >> compilation
>> >>
>> >> The score file includes score-init.ily and each part file includes
>> >> part-init.ily
>> >>
>> >> This way everything is only included once, and can also be modified
>> >in one
>> >> single place.
>> >>
>> >> ###
>> >> However, this is only a case of sloppy coding and shouldn't have such
>> >> consequences, so I'll have to sort it out on "my" side.
>> >>
>> >> It seems each time you include annotate.ily you create a new instance
>> >of
>> >> the engraver.
>> >> I had thought that re-including a file would simply be re-defining
>> >> everything and be a waste of resources. But obviously when you do
>> >\consist
>> >> something multiply in a context it is actually doubled.
>> >> So I assume the function definitions (and the engraver) are redefined
>> >so
>> >> later includes simply overwrite the earlier ones. But as the engraver
>> >is
>> >> consisted in the Staff context multiple times it is also executed
>> >multiple
>> >> times.
>> >>
>> >> If you carefully inspect the console output you will notice that the
>> >> output file is rewritten multiple times too.
>> >> Interestingly the engraver uses a global annotations list, so in a
>> >first
>> >> run annotations are appended to this list and in a second run they
>> >are
>> >> finally written out. (This is done to have a list that can be sorted
>> >before
>> >> outputting).
>> >> This seems to result in all instances of the engraver adding their
>> >copy of
>> >> an annotation to the list so not only the output file is generated N
>> >times
>> >> but each annotation is produced N times.
>> >>
>> >> As said above the result is a harsh indicator of improper project
>> >> structure but the module should be able to handle that gracefully. I
>> >will
>> >> think about if I just suppress multiple includes or if I find a
>> >better way
>> >> to structure the code in the first place.
>> >>
>> >> Thanks for reporting
>> >> Best
>> >>
>> >> Urs
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> On Fri Jan 30 2015 at 11:26:57 PM Urs Liska <u...@openlilylib.org>
>> >wrote:
>> >>
>> >>>
>> >>> Am 30.01.2015 um 08:16 schrieb Urs Liska:
>> >>>
>> >>>
>> >>> Am 30.01.2015 um 08:13 schrieb Philippe Massart:
>> >>>
>> >>>  Probably not. I assume that hash hasn't been properly filtered.
>> >Could you please post the generated .inp and maybe also the LilyPond
>> >file?
>> >>>
>> >>> Urs
>> >>>
>> >>>
>> >>>  These are based on the sample file included :
>> >>>
>> >>>
>> >>> Ah, OK.
>> >>> I see the offending LaTeX code, but I'll have to look into the
>> >reason why
>> >>> this is generated.
>> >>> The #f in the first line of the .inp file is the result of exporting
>> >>> something that evaluates to false.
>> >>>
>> >>> Urs
>> >>>
>> >>>
>> >>>  It turns out that custom annotation types were not properly
>> >handled.
>> >>> \annotate looks up the LaTeX value in an alist dictionary, and for
>> >custom
>> >>> annotations this simply returned "#f".
>> >>>
>> >>> Pushed a fix, should work now.
>> >>> Thanks for the report.
>> >>>
>> >>> Best
>> >>>
>> >>> Urs
>> >>>  _______________________________________________
>> >>> lilypond-user mailing list
>> >>> lilypond-user@gnu.org
>> >>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>> >>>
>> >>
>> >>
>>
>>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to