Just a quick update on the website—it’s done. There is very little content and a lot of it is non-serious or a placeholder until I have some actual content. But it’s done and it actually works (this is a very big thing for me because I have never made a website this complex before).
The next thing on the list is to create the editions. The edition of Perotin’s Viderunt Omnes is very close to finished but the code itself is a mess. This is because I wished to generate a “proof–of–concept” edition that showed that what I was trying to achieve was indeed possible. This kind of fiddling with Lilypond is not exactly documented. In making this edition I learned a good deal of things, especially about Scheme but most importantly about generating macros to make my life easier. I have found that the Lilypond tag command, although powerful, generates some serious problems when you are using thousands of them. Take this snippet (a very typical example of what I was trying):
\tag #'feature { \tag #'otherfeature { a1 } \tag #'nootherfeature { a2 r2 } } \tag #'nofeature { \tag #'otherfeature { a1 } \tag #'nootherfeature { a2 r2 } r2 }
This led to a lot of code replication. Now I'm working towards using Scheme functions to make my code more readable:
\featureoption \otherfeatureoption a1
These Scheme functions can either generate the skein of tags or read the tag arrays itself (faster) and generate pure Scheme music constructors. Fast compilation is an important goal if I wish for the compilation process to scale in any way.
Hopefully my next editions will be simple to read...