I am very new to music, so what struck me about LilyPond was how much it feels like code.
LilyPond takes a plain text file and produces engraved sheet music.
The text file is the score
Instead of dragging notes around a canvas, you describe the music directly:
\relative c' {
\key c \major
\time 4/4
c4 e g e |
d4 f a f |
}
Even without knowing much music, I can read the shape of this. Key, time signature, notes, rhythm – all as text.
If you spend the day in a code editor, this feels familiar. You write a file, compile it, and get an artifact. It just happens to be music.
Why it fits
What makes LilyPond interesting is that the source stays readable and diffable. You can review changes, track revisions, and keep the .ly file in the same repository as the rest of your project.
The output matters too. LilyPond gives you professional-looking results without nudging everything by hand.
Where it went
I started with a small experiment and quickly liked the workflow. A rake task compiles .ly files into SVG and PDF, so it fits naturally into a codebase.
Text file in, engraved score out, automated build. Exactly the kind of workflow I want.