[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Gotlandstoner
From: |
Erik Ronström |
Subject: |
Re: Gotlandstoner |
Date: |
Wed, 30 Aug 2017 21:05:43 +0200 |
>> I just wanted to say that in July, we published a reprint of Gotlandstoner,
>> a collection of about 500 traditional fiddle tunes from Gotland, Sweden. The
>> reprint was typeset with Lilypond.
>
> Impressive! Could you describe the production process for this? In the
> PDF properties I can see references to LuaTeX and TeX Live 2016, so I'm
> guessing that's what produced it. Was lilypond-book used there? I have
> dreams of doing a project this size, and I'm still trying to understand
> the best way to structure it.
I’m glad you asked! :)
1) One-time conversion from abc files to lilypond ”notes files” – lilypond
source, but only the notes (and key and time signatures etc)
2) The ”notes files” are combined with a song template using a config file, to
produce lilypond ”song files” – complete lilypond documents
3) The song files are run through lilypond to produce pdf files
4) The text information from the abc source is extracted and inserted into a
book template, again using the config file, to produce a ”book document” in
latex format, which also includes the individual song pdf files
5) The latex document is run through LuaLaTEX
I didn’t use lilypond-book as I needed more control over the process, but the
overall principle is the same. Apart from the first one-time conversion from
abc, all steps are scripted and a hash is appended to the names of all
generated files, so that changing a single tune (in the ”notes file”) requires
only a single terminal command to rebuild the complete book, and only the
affected song is recompiled.
Having the entire project under version control has been a big help, I can
highly recommend using git (or something similar) for any bigger Lilypond
project!
Feel free to check out the project on github
(https://github.com/erikronstrom/gotlandstoner)! The bin folder contains all
the scripts (but be warned that the code is a bit messy and mostly
undocumented). Most scripts are written in perl.
If you have any more specific questions, also feel free to email me privately!
Regards
Erik