An idea for a music engraving software
I wrote this over a month ago but didn’t publish it. Realized after writing that I shouldn’t go down this particular rabbit hole right now, and it felt like publishing would solidify the idea into a whole “new project” in my mind. I still have the draft though, so enjoy! – 26 June 2025
Lilypond has been my music notation tool of choice since high school. It’s an open-source engraving system with pretty good-looking output, especially compared to what I was getting out of the box with the program I used in middle school, Finale. (R.I.P.)

One thing I’ve always liked about Lilypond is that it’s a text-based system.* You input your music in a specialized programming language, and the program processes it into a PDF of the score. For example, here’s a minimal example of a file you could feed into Lilypond:
\version "2.24.3" \relative c'' { \key d \major r4 a fis e8 d e fis a, b d2 }
And the result would be:

If you aren’t used to programming, this might strike you as tedious or confusing. It requires some up-front effort to learn and get comfortable with the code, but in return, you get much more transparency and precision in how you control the software.
As much as I like Lilypond, I don’t consider it ideal, either. For one, it’s not the fastest. I can’t help but think a more efficient implementation running on contemporary hardware could give you near-instant feedback (as opposed to somewhere between one and ten seconds in my experience, depending on the score). The system is also a bit old and arcane in some ways. Even with a lot of experience with the software, I often can’t figure out how to get it to do certain things I want. There are good resources for Lilypond online, but sometimes the thing I need is niche enough that I can’t find help for it.
Other problems are persistently fiddly, even if you know the ways of getting around them. One big issue I run into is tweaking the positioning of things, especially ties and slurs. In a GUI editor, this would be a simple matter of clicking and dragging. In Lilypond, you have to manually type in a list of offsets to apply to the object, wait for your score to recompile, check the output, tweak the offsets again, and so on, until you’re happy. But you’d better not change any of the music after that, or else Lilypond might redraw the object in a slightly different position, and now your offsets are wrong again.
Something I roll around in my head sometimes is the idea of making a new music engraving system that takes what I like from Lilypond. Hopefully, it could be faster and a little simpler to understand (for me, at least). I think it would be cool to have both a text-file-based interface like Lilypond, as well as a graphical editor for the process of visually positioning things on the page. I’d like to keep as much control exposed to the user as possible.
I’m thinking about how you could decompose the problem into separate layers, like the music itself, the logical score, and then having layout as a separate step in the process. The question is, how do you give the user control over the latter layers when they depend on earlier layers?
Do you use any music notation software?
Have you tried Lilypond?
Do you prefer working with text files or WYSIWYG editors?
Let me know your thoughts at my Ctrl-C email: gome @ ctrl-c.club
.
* You might call it the LaTeX of music notation.