🎼 Generating sheet music: from one DSL to another

Peter Hilton

Short workshop - in English

Sheet music is perhaps the ultimate domain-specific language, but isn’t really accessible to programmers. It hardly has any curly brackets, and they don't even match! This workshop for non-musicians demystifies musical notation by showing you how to generate it from a Scheme-based DSL, called Lilypond, which looks much more like a 'normal' programming language.


During this workshop you will learn the basic Lilypond syntax, starting with note pitches, durations and lyrics. You’ll use this to generate music as PDF that you can print, and MIDI files that you can listen to. This will be based on simple and familiar examples, starting with the world’s most recognisable tune. You’ll also learn how Lilypond separates content from presentation, and how its automatic layout creates professional print-quality results.

Primarily for: Developers, Tester/test leads, Others

Participant requirements: Laptop with http://www.frescobaldi.org (IDE - ideal) or http://lilypond.org (command line) installed, plus a MIDI player if they want to be able to hear the music too (recommended). I can provide installation instructions.