A Development Environment for LilyPond

I found a sweet new toy that does stuff when files change January 9, 2019 software music

I found a cool new toy, called entr. It runs arbitrary commands if files in an arbitrary list change. It’s a bit like watch, but a little more streamlined. I’m now using it to automatically remake PDFs for my music scores, and it also tells the PDF viewer to reload the document. The command looks like this:

cd $path; find . -iname '*.ly' | entr -s 'make && pkill -HUP mupdf'

For my music “IDE”, I use a few different programs:

  • abduco, for attaching and detaching to the development environment
  • dvtm, which splits a terminal into multiple smaller terminals
  • vis, which is a vi-like text editor that I like
  • mupdf, which is just a simple pdf viewer
  • LilyPond, which takes code and converts into (beautiful) sheet music

Below is a gif that demonstrates more or less what my current environment does and how it looks.

my development environment in action

Right-click and select “View Image” to see it up close.

Lately I haven’t done anything other than coding, and I haven’t played guitar in what may be months. I definitely want to get back into it, but I want to get better (faster) at writing sheet music so I can have a record of all the songs I’ve learned. I haven’t learned very many songs at all in the twelve or so years I’ve been playing guitar, and I feel it’s time I remedy this.

Randy Josleyn teacher-linguist-guitarist wannabe