GNU LilyPond está escrito en C++ y construido mediante una biblioteca de Scheme (GNU Guile) que también permite la personalización y extensión por parte del usuario.