LilyComp

Introduction

LilyComp is a graphical note entry program for use with the LilyPond music typesetting program. I am in no way connected with LilyPond, so do not blame them for the quality of this program. This program was written to speed up the creation of lead sheets. It just enters notes and rests with the indicated duration. Do not expect to enter anything too fancy, although a couple of other common items like ties, slurs, and measure bars are supported as well. LilyComp is not like Rosegarden or NoteEdit. Think of LilyComp as the number pad on your keyboard; it is just for quick data entry.

The target user of LilyComp would be someone who knows a little music notation, but is not an expert. I play accoustic guitar, so I am more interested in the chords and note timing than the note pitches. I have difficulty transcribing a lead sheet from other more complicated sheet music quickly. If the music is in C Major I am quick enough, but add four sharps, and I slow down a lot. The idea with LilyComp is that you do not need to know hardly anything. You just look at the sheet music, find the corresponding note on the LilyComp window, and push the button. I can extract a melody from a complicated score in a few minutes using this technique.

The notes may be excessively notated (lots of commas or apostrophes) because they are all absolute (\relative is not used.) Likewise, the duration is always included even if the previous duration is the same. I do this so that I can cut and paste fearlessly. I don't have to worry about changing the duration or octave of a note accidentally.

LilyComp is written in pure Python. If you care to do so, it is very trivial to add clefs or ledger lines if you need more. I use English notation (C# = cs); if you do not use that notation you can change a pair of variables near the top of the script to redefine the default behaviour.

Also, in case you are wondering, the name LilyComp is the combination of LilyPond and Composer. As I was programming the first version, I kept thinking of it as my "LilyPond composer", so when it came time to save the file I just typed lilycomp.py. Now that I am releasing this for other people to use, I wish I had picked something catchier. :)

By the way, free use of this software is granted under the terms of the GNU General Public License (GPL). See the LICENSE file in the distributed package for details.

Screenshots

LilyComp on Windows XP

Figure: LilyComp on Windows XP

LilyComp on Debian Linux

Figure: LilyComp on Debian Linux

Requirements

You just need Python 2.x (with Tkinter) installed. Tkinter is always included in Python installers for Windows, and usually included in Unix/Linux distros as well. I have tested this on Debian Linux, HP-UX, Windows XP, and Windows 2000. I have also tried it on Python versions 2.0, 2.1, 2.2, and 2.3 without issue. It will not work with Python 1.5 because I use string methods.

BTW, the aesthetic quality of the Tk widgets seems to vary greatly by platform and version. LilyComp on Python 2.3 on Windows looks great, but it looks rather chunky on Debian Linux. It looks downright awful on HP-UX. If it looks all wrong, it is easy enough to go into the source and change the fonts and whatnot.

Download

This project files are hosted on SourceForge, so go over to LilyComp's project page or jump directly to the download page and grab the latest version.

Installing and Running LilyComp

LilyComp is written in Python, so you will need to install the Python interpreter in order to run it. (This is similar to how you need the Java VM installed to run Java programs.) Here are instructions for installing and running LilyComp on Windows and Unix-like systems:

For Windows

If you do not already have Python installed, download the Python interpreter here. Click on the link that says something like "Python Windows Installer". After installing the interpreter, download LilyComp and uncompress it anywhere you like. You can just double click on lilycomp.py to start LilyComp. That's it. If you do not want a console window to show up as well, change the .py extention to .pyw.

For Unix-like Systems

You probably already have Python installed. If not, get it with your favorite package managment system, or compile it from the source. The only trick is that you need the Tkinter GUI toolkit as well. If you are installing from a package manager, this is not a problem. For example, on Debian all you need to do is:

# apt-get install python-tk

Once Python is installed, just download LilyComp, untar it somewhere convenient, and put a link to lilycomp.py somewhere in your path (e.g. ~/bin or /usr/local/bin).

Here is an example where the files reside in a directory under your home directory:

$ cd ~
$ gunzip lilycomp.1.0.tar.gz
$ tar xvf lilycomp.1.0.tar
$ ln -s ~/lilycomp.1.0/lilycomp.py ~/bin/lilycomp
$ lilycomp

Getting Started

When I'm done, I usually just cut and paste from the window to the LilyPond file, but you can use Save to write it to a file as well. The "Copy All" command seems to work only under Windows. Under Linux, I let X11 put the text in the buffer just by highlighting it.

Resources