Welcome to quickly!


The quickly python package is able to create and manipulate LilyPond music documents. LilyPond documents often use the .ly extension, hence the name.

It is currently in an early development stage, but slated to become the successor of the python-ly package. Like python-ly, it provides tools to manipulate LilyPond music documents, but instead of using the lexer in python-ly, which is very difficult to maintain, it uses the new parce package for parsing LilyPond files.

ly.dom and ly.music are superseded by quickly.dom which provides a way to both build a LilyPond source file from scratch (like ly.dom) and manipulate an existing document (like ly.music). Most of the functionality that in python-ly is implemented at the token level, like transposing and rhythm manipulations, now works on the musical representation provided by quickly.dom, which looks a lot like ly.music.

This module is written and maintained by Wilbert Berendsen, and will, as it grows, also contain (adapted) code from python-ly that was contributed by others. Python 3.6 and higher is supported. Besides Python itself the most recent version of the parce module is needed. Testing is done by running pytest-3 in the root directory.

The documentation reflects which parts are already working :-) Enjoy!


A screenshot of Frescobaldi (which does not yet use quickly), the parceqt debugger and a terminal window showing a dump of the quickly DOM tree of a small piece of music.

This manual documents quickly version 0.7.0. Last update: May 28, 2023.

Indices and tables