Mistyped in the terminal and was suggested `gregorio`. Interesting. No man page, might as well just run the thing and see what happens.

$ gregorio --help
Usage: gregorio [OPTION]... [-s | INPUT_FILE]

Engrave Gregorian chant scores, convert a gabc file to GregorioTeX.

πŸ€”

@emichael It is the state-of-the-art tool for engraving plainchant. (Basically it’s a DSL that generates LuaTeX.) Skilled monks have found they can get better results using Gregorio than engraving by hand!

https://gregorio-project.github.io/

Gregorio project website

Free software for typesetting Gregorian chant

@LiberalArtist 😲 Automation has even come for the monks!!

This is fascinating, though. Are there layout problems unique to Gregorian notation (compared to modern musical notation)?

@emichael I've never worked on the implementation of layout software, but I have some training in writing both types of notation, by hand and using software, and I've read with interest about the implementation challenges, so I'll try to point to a few things.

First, layout even of modern notation is highly complex. The word "engrave" is used for the process (e.g. in `gregorio --help`) because highly manual techniques like engraving on metal plates and photolithography from hand-stenciled 🧡

@emichael oversized originals were used commercially at least as late as 1999, especially for high-quality publications. Today, for professional-quality modern notation, your options are basically LilyPond, a monumental free software project, or one of a very few expensive commercial programs (Dorico, Sibelius, and Finale). These programs automate a great deal of the layout process, but all of them (including Gregorio) still need some manual layout work for results that would get full marks 🧡

@emichael on a class assignment, let alone the standard of the finest professionally-published scores.

For more on the technical challenges, I highly recommend the early posts on the Dorico blog: https://blog.dorico.com/making-notes/ It is the newest of the professional engraving programs, begun in 2012 after (apropos of current news) the owners of Sibelius decided to cut costs by firing the entire development team. 🧡

MAKING NOTES – Dorico

Dorico

@emichael In terms of problems specific to Gregorian chant and other plainchant, a few things come to mind.

In modern/"common practice period" notation, horizontal spacing is, to a first approximation, a function of the relative duration of the notes. That is not a feature of chant notation at all. Horizontal layout in chant notation is largely determined by the text, so think about the Knuth-Plass algorithm, but with further complexity from cases 🧡

@emichael when the music needs more space than a given syllable (which is very common in certain types of chant).

Chant notation also makes especially extensive use of ligatures, so you get the kinds of problems handled by HarfBuzz for scripts like Arabic. Math typesetting in TeX might be a useful comparison.

Finally, music engraving is already fairly niche. Chant notation is an even more specialized area, and it's not just a minor variation on the logic for engraving modern notation.

@LiberalArtist Fascinating! Thanks for the info!!