At the Sounding Edge: LilyPond, Part 2
Last month we looked at some of the the basic operations of the LilyPond music typesetting software. We saw that LilyPond is a TeX-based language specifying the complexities of Western music notation and capable of producing excellent PostScript printable output. This month, we look at three GUI front-ends for LilyPond: the Rosegarden sequencer, the NoteEdit music notation editor and the Denemo LilyPond file preparation utility. I've also appended a brief account of the music and sound topic presentations made at this year's Libre Software Meeting. But first we return to the 'Pond.
Rosegarden is an advanced audio/MIDI sequencer with support for music notation. You can compose your music in Rosegarden by digitally recording audio, by recording MIDI sequence data, by entering Western music notation symbols or by any combination of these three methods.
The ability to enter music in standard notation always has been central to Rosegarden's design. Rosegarden does not pretend to provide a complete notation editing environment in the manner of Finale or Sibelius, but its notation editor supplies most common Western music notation symbols and directives, facilitating the creation of basic conventional scores. When your work is ready, Rosegarden can export your notation data in the Mup and MusicXML formats and, of course, LilyPond too.
Where a GUI is concerned, one screenshot saves many words. Figure 1 shows off Rosegarden's notation editor with the beginning measures of a piece written with the tools available from the palettes and menus seen in the screenshot. The notes, rests, articulations and other markings are selected from the symbol palettes and entered on the virtual staves. Edits can be made to single notes or groups of notes. Rosegarden automatically renders the notation into MIDI sequence data, so with the proper MIDI sound set up, you can audition your work at any time, from any point in the music.
Let's open Rosegarden's File/Export dialog to save the example in Figure 1 as a LilyPond file named lj-test-01.ly. During the export process, the LilyPond options dialog seen in Figure 2 opens. After setting our preferences, click on the OK button to complete the export.
Now we can process the exported file with LilyPond. This simple command lilypond lj-test-01.ly converts the LilyPond file exported by Rosegarden into the high-quality printable PostScript output seen in Figure 3. Of course, we can edit the LilyPond file to add many other symbols and signs, but for this example, I wanted to illustrate the simplest export and conversion procedure.
Joerg Anders' NoteEdit is a dedicated music notation editor, designed to provide notation-literate composers with a familiar working environment. Like Rosegarden, NoteEdit supplies various symbol palettes and editing functions to facilitate the entry of notes and other musical signs on a staff or staves. Work can be auditioned at any time, but NoteEdit does not offer a MIDI sequence editor as Rosegarden does. Finally, NoteEdit offers a broad range of export targets, including MusiXTeX, PMX, ABC, MusicXML and LilyPond.
Figure 4 shows NoteEdit's main display with two staves prepared for guitar and bassoon. I exported this work as a LilyPond file named lp-test-ne.ly. I then processed it with the LilyPond binary. The screenshot in Figure 5 is NoteEdit's LilyPond options dialog, similar to what we saw in Rosegarden. I clicked the Start Export button in that dialog, and voilá, I had a new LilyPond file from NoteEdit. Alas, my versions of NoteEdit and LilyPond were not in sync, so I used the convert-ly utility to bring the file format up to date. See last month's installment of this article for details on how to do that. Next, I ran this familiar command sequence lilypond lj-test-ne-converted.ly to create the PostScript output seen in Figure 6. Obviously, a little manual touch-up is required; Figure 7 demonstrates the results after some manual edits to the LilyPond file.
Denemo is a utility for the creation of files in a variety of formats, including ABC, MIDI, XML, Csound score and, yes, LilyPond. Denemo's default user interface seems rather modest when compared to the GUIs of Rosegarden and NoteEdit, but much power lurks beneath its surface. The program combines a mouse-driven GUI, user-defined keyboard bindings and a set of pre-defined keyboard commands in a flexible and useful tool for preparing LilyPond files. The GUI is not WYSIWYG (what you see is what you get), and the program should not be confused with a music notation editor such as NoteEdit. Denemo is a general-purpose input device that significantly reduces the difficulty of preparing multiformat music files.
Figure 8 shows Denemo at work. You can see the display is not completely WYSIWYG, but it is quite comprehensible. Indicators such as the tuplet figures are translated to their correct appearances when the output file is compiled by LilyPond, as illustrated in Figure 9. A bug in Denemo prevented the dynamics indicators from being displayed in Denemo itself, but they are entered correctly in the LilyPond output. The title and author information is entered in Denemo's File/Set Headers dialog.
As of version 0.7.2a, Denemo's user documentation is contained in the source package's README. Various key bindings are described there, and Denemo includes a facility for creating user-defined key bindings for the program's entire command set and GUI menu items (see Figure 10). With data entry keys defined as you want them, you can work quickly and accurately with Denemo.
Figure 10. Denemo's Keyboard Bindings Editor
I hope you've enjoyed this mini-introduction to LilyPond. I've only scratched the surface of the system, so you simply have to try it yourself to test its depths. If you're not the language-learning type, you can employ one of the GUIs presented here or you can work in a MIDI environment and use the midi2ly format converter. However you choose to work with it, I think you'll agree that LilyPond lives up to its promise of producing output that truly is beautiful.
From July 6 to 10, I attended the Libre Software Meeting (LSM), once again held in Bordeaux, France. The LSM is a large conference that encompasses a wide variety of free software development topics and trends, including computer sound and music trends. I'm happy to report that LSM 2004 hosted an excellent series of presentations on development occurring in the sound, music and multimedia domains of free software. Non-audio-specific report topics included updates on the Cinelerra video editor, the Blender 3-D renderer and the Scribus DTP edit/layout system. Music and sound topics included reports on recent ALSA development, with particular regard to the 2.6 kernel; an overview of the Faust programming language, a real-time sound processing/synthesis; the use of RDF (Resource Description Framework) in audio applications; and an introduction to the Dolabip software and its use in gesture/audition training for children. Other sound-related topics included a presentation and workshop dedicated to the Ardour DAW (digital audio workstation) and introductions to the AGNULA and APODIO projects. Details on all these presentations can be found by clicking on the Program link under the heading of Music And Other Artistic Domains on the Technical Topics page on the LSM Web site.
Next year's LSM will be held in Dijon. Information regarding LSM 2005 probably will start to appear on-line in the spring of that year. The conference has something for almost everyone, so you're bound to find more than a few interesting presentations, lively discussions and impromptu workshops. I hope to see you there.
Many thanks to the directors and staff of LSM 2004 for their assistance. Special thanks to Ludovic Penet for his extraordinary patience and courage and to Francois Dechelle and Myriam Desainte-Catherine for their great efforts to make the music and sound topic presentations so successful.
Dave Phillips (firstname.lastname@example.org) is a musician, teacher and writer living in Findlay, Ohio. He has been an active member of the Linux audio community since his first contact with Linux in 1995. He is the author of The Book of Linux Music & Sound, as well as numerous articles in Linux Journal.