Valse Lente

A few years ago I received the gift of a Rhythm Clocks musical wall clock. Every hour on the hour, it plays one of several short song excerpts. Somehow I identified one of the songs (possibly using SoundHound?) to be a popular waltz from an opera of Delibes.

Title: Coppélia – Waltz from Act I – Valse Lente
Composer: Clémont Philibert Léo Delibes (1836-1891)

I downloaded sheet music for it, edited by Ricardo Boppré. It turns out it was a slightly simplified version that had also been transposed from E flat major to C major. With a GoPro camera I recorded myself playing it for YouTube, here. This has reached 20K+ views, not so deservedly, but this shows the song itself is quite popular.

More recently, I found the “original” E flat version upon which Boppré’s version clearly had been based. I decided it isn’t much more difficult, so I didn’t feel the existence of the C major version was fully justified, and wished I’d recorded the original.

Editor: Henri Heugel
Publisher: Heugel et Compangnie, Au Ménestral, Paris
Date: 1870

I typeset this version into the GNU LilyPond music formatting software. As with Le Chemin de Fer, I tried to make the output look just like the 1870 version, although I didn’t take it quite as far. Here is the LilyPond source file:

The MIDI file generated by LilyPond:

You can play the MIDI file in your browser using the tools from, but I recommend downloading the MIDI file and playing it natively.

And the PDF file of the sheet music:

With LilyPond, it is near trivial to transpose a piece. In the source code, I have two lines setting the variable “transposeKey”. Simply uncommenting one line or the other selects which key. For grins, here is the C major version of the sheet music:

Le Chemin de Fer

My first major project using the GNU Lilypond music typesetting software was to re-typeset the piano piece Le Chemin de Fer (The Rail) by Charles-Valentin Alkan. I had seen performances of this fun and ridiculously fast piece on YouTube and tried learning it myself.

Part of the motivation was to create a MIDI file to play it at Alkan’s insane indicated tempo of 112 to the half note, which equates to the right hand playing continuous scales and arpeggios at a rate of nearly 15 notes per second.

I had retrieved a PDF file of the M. R. Braun edition from here and decided to see how close to identical I could get with Lilypond. Some of the challenges included:

  • A fancy title page containing some minor graphics requiring embedding raw PostScript.
  • With the addition of the title page, having to use a music function to make sure the subsequent page was numbered 1.
  • Customizing the book title markup to match the text appearing at the top of the first page.
  • The slightly archaic notation for dynamics.
  • Painstakingly replicating every dynamic mark (staccato), pedaling, page breaks, fingering numbers, stem directions — everything.
  • Work around MIDI player issues. I find that regardless of what software is used to play a LilyPond MIDI file on Windows, the first and last fraction of a second are each cut off. I’ve taken to including a little silence at the beginning and end to avoid this.

The LilyPond file is organized into 20 sections, 10 for the left hand and 10 for the right.

The MIDI file is automatically generated when LilyPond is run.

You can play the MIDI file in your browser using the tools from The speed is indeed ridiculous.

The final PDF file. Success?!

Watch an unbelievable performance of the piece. There are a surprising number of good performances on YouTube, plus many MIDI renditions.

Merry Go

If you’ve watched enough compilation videos on YouTube, it is likely you’ve heard Merry Go, a fast-paced, 2-minute ragtime-ish piano song published by Kevin MacLeod in 2010. It is one work out of a large body of high quality digital music that Kevin shares under the Creative Commons By 3.0 license, for anyone to use for any purpose, royalty-free. Not surprisingly, his music has become some of the most-used background filler on YouTube.

Here is a video of the audio of Merry Go by itself (because people upload stuff like that).

Depending on your mood and temperament, Merry Go can be either energizing or irritating. Because of the latter, someone had to do it: here is a video of the song playing for 10 hours. There is also a 1-hour version, a slowed-down version, MIDI transcriptions, and others.

Watching a useless video late one night, this song played, and it piqued my interest. Its use of sforzandos and staccatissimo is striking. It’s fast, but sounds simple enough. I decided to attempt a sheet music transcription. However, I quickly found out that the apparent simplicity belies a greater complexity than one would expect. There are a lot of notes! It got even more interesting as I discovered its origin..

A reproduction aiming for fidelity to the original would be most suitable for performance by MIDI and/or player piano. It is impossible to play on solo piano.

Using the Transcribe! software, I listened to Merry Go for hours in excruciating detail, at different speeds and octave shifts, in order to generate a transcription. To test for the presence of specific notes, I would listen carefully while hitting them on a keyboard while simultaneously looping short snippets of the audio, often just individual chords. There are several things that limit how accurately the notes can be divined. Some chords contain upwards of 10 simultaneous tones. Very quiet or low tones may get drowned-out. Artifacts of digital encoding and frequency scaling through re-sampling filters result in ghostly sonorities and sympathetic octave blurring. It took four or five passes/editions before I was satisfied I hadn’t missed too much. Nevertheless I’m sure Mr. MacLeod would cringe.

Having written out the initial transcription on music staff paper, I then coded it as a text file in the GNU LilyPond music description format. LilyPond is an amazing piece of software that reads a description and generates beautiful typeset sheet music in PDF format, as well as generating MIDI output. There is a big learning curve, however. I’m sure it comes a lot more naturally to people who are already experienced computer programmers. But if you are a geek who needs to typeset music, you need LilyPond!

Here is the resulting MIDI output. Dynamics processing by LilyPond is somewhat rudimentary and leaves something to be desired. As with everything else in LilyPond, perfection is possible given enough time (worst case, it’s open source!)

You can play the MIDI file in your browser using the tools from, but it doesn’t sound as good as native players.

And of course the PDF sheet music.

Finally, for the curious, or those who might want to tweak further, the LilyPond source file, under the same license.

Please have a Merry time with it and comment below.

UPDATE! Read about the duet version!