Hacking, Extending and Wrapping

Mike Solomon

Hacking, extending, and wrapping are three verbs that are becoming increasingly important in musical engraving. They allow musicians and researchers to focus questions of big data, machine learning, digital creativity and new interfaces. As several stable alternatives for digital music representation have emerged in the music notation community - lilypond, guido, musicxml, abc, mei - knowing how to manipulate and transform these tools is becoming as important, if not more, as learning how to use them. This workshop, using LilyPond as a case-study, will treat notation software as a black box and will focus on hacking, extending, and wrapping the software in a variety of contexts. By the end, the goal is for students to feel as empowered as shapers of notation software as they are as users. In other words, the goal is for their work on the software to be as expressive and idiosyncratic as their work with the software.

The workshop is intended to be inspirational, motivating students through concrete examples that they are not only consumers of notation software but also producers of this software. Participants will be exposed to the basic philosophies of Free Software as espoused by the Free Software Foundation and learn common use cases for how one can use their freedom to modify software in order to actualize their ideas.

The workshop will present several tools that allow for easy hacking, extending and embedding including compilers (gcc), extension languages (python, scheme, javascript) and wrapper mechanisms (node.js servers, Amazon AWS Lambda). Every technology presented will be accompanied by a minimal example in LilyPond. For example, when hacking LilyPond by recompiling it with GCC, we will force it to change all A sharps to B flats by modifying just five lines of code. In doing so, we will explore how to rapidly size-up a code base, know what is needed to compile it and learn how to use versioning and branching to create sandboxes for exploration.


Attendees should feel comfortable with computers and should ideally have used a computer music notation program before. If possible, basic knowledge about computer scripting and/or programming is a plus.

Participants can use their own computer, but it is recommended to use a computer provided by the institution where I have been able to test out compilation beforehand. That said, all downloads of software will happen during the workshop so that we can recreate the hacking, extending and wrapping process from A to Z.


Mike Solomon

Mike Solomon currently wears multiple hats as the director of the Paris-based Ensemble 101, the head audio engineer at Jongla and a RIM at the IRCAM. He has worked extensively with GUIDO as a contracter at the Grame, particularly on integration of Guido into web environments.

More information

Contact: Mike Solomon