LilyPond Helper Applications: Development Status

March 15th, 2006 by Dave Phillips in

Our audio expert checks in with some of the core Linux audio projects to see what's new.
Your rating: None

Last month I presented a brief update about the LilyPond music typesetting software. This month I look at three graphic front-ends that can make LilyPond easier to use for beginners and for users who simply prefer the more familiar interface of standard music notation. Denemo, NoteEdit and Rosegarden all provide GUIs that imitate conventional Western music staff paper. Each program also provides palettes or menus for note and rest types, expression marks, instrumental articulations and other standard music notation symbols. In these programs the interface is designed to resemble the tools and elements of standard Western music notation.

I've reviewed or referred to each of these programs in previous articles. Readers who want to know about their basic features and usage should read those articles (see Resources) and check out the latest news on the application Web sites. In this month's column, my focus is the current development status of these projects, paying particular regard to their LilyPond support.

Regarding Development

On the surface, a report about a project's development status may not seem to be an interesting topic, but it can be a fascinating study. Main sources of information include various documents in the source package, such as changelogs, roadmaps, authors credits, goal statements and ToDo lists. Of course, the most up-to-date information can be found on a project's mail lists, particularly on the developer's list. This documentation often is quite interesting, revealing historical moments that otherwise remain hidden to the user. A changelog is, in fact, a historical document, a record of the project's development membership, problems encountered and resolved (or not), milestone release dates and so forth. Documents titled "ToDo" or "Goals" are interesting as well, laying out plans and intentions for the project's future. These forward-looking texts can be valuable if you have an interest in a project and would like to have a better sense of its progress.

Denemo

Denemo is a music notation program for Linux that helps you quickly prepare notation for publishing with LilyPond. Denemo does NOT strive to display all notation graphically or be the most complete graphic environment. Denemo is a front-end to LilyPond. If you are looking for a WYSIWYG editor Denemo may not be for you. If you are looking for a way to quickly prepare scores for final editing in LilyPond give Denemo a whirl.

Thus the Denemo Web page succinctly describes the program's design philosophy.

Figure 1. Denemo, CVS Build

Denemo is not a young project. Developer Matthew Hiller began working on Denemo in 1999, designing it specifically to be a graphic front-end for LilyPond. In 2001 he turned over the project to Adam Tee, Denemo's current manager. The project's primary goal remains the same, but naturally some widening of its potential has occurred during its long existence.

Denemo's current stable release version is 0.7.4, indicating only one major release increment per year of development. A read through its ChangeLog and AUTHORS files reveals some reasons for this slow rate of growth. The development team always has been a small group, and the bulk of the core work has been done by Matthew Hiller or Adam Tee. The AUTHORS file lists other significant contributors, but the referenced documents make it clear that Matthew and Adam have been the most prolific contributors.

Denemo's development pace also is affected significantly by the changes in LilyPond's stable releases. Thus, the main Denemo developers must track not only their own project but LilyPond's as well. And, LilyPond is a large and complex project with many developers lending their hands to it. Denemo's smaller development team must show proficiency in both the LilyPond and the Denemo codebases, a non-trivial requirement. Therefore, Denemo's development track sometimes has been slowed by the more rapid pace of LilyPond's development group.

Thanks especially to the efforts of Aarom Mehl, Denemo currently is undergoing a development revival. The new core team includes the venerable Adam Tee and newcomers Jeremiah Benham and Benoit Rouits. The group is coming together nicely, roadmaps have been drawn and goals clarified and CVS sources are being reorganized. The project's current work domains include these priority areas:

  • Modularize/stabilize source code

  • Separate main engine and user interface code

  • Create an API (application programming interface)

  • Synchronize to current stable LilyPond release

Other areas of interest include the definition of a plugin API, support for ALSA and JACK, LilyPond file import and a Windows port. The project also is looking for interested participants. Programming skills are welcome, but there's more to the project than coding. If you'd like to get involved in a cool LilyPond-related project, see the Denemo Web page for information on joining the development team.

The developers currently are working on many known problems and welcome reports from users brave enough to compile and run CVS Denemo. I'm currently testing a version built from the CVS source code from March 14 (see Figure 1) on a system running Demudi 1.3, with up-to-date development packages (GNU autotools, GCC, GTK2, libXLM2 and others). I've loaded and played files from earlier versions without problems, but I haven't seriously tested this latest build. I'll keep working with it and sending in my reports.

I like Denemo. It's a unique and effective approach to a front-end for LilyPond, and I'm glad to see it evolve. Your participation definitely is encouraged.

NoteEdit

According to its Web page, NoteEdit is a music score editor for Linux. It has an impressive list of features and offers support for unlimited staves and staff length, same-staff polyphony (up to nine voices), flexible MIDI playback, chord symbols and frames for guitarists and lyrics underlay. It also offers a wide variety of output formats, including MIDI, MusicXML and, of course, LilyPond.

NoteEdit's design philosophy differs fundamentally from Denemo. Denemo is essentially a front-end for LilyPond, whereas NoteEdit is a more broadly oriented application. It can function as a notation-based GUI for MIDI composers and as a score preparation utility for a variety of output targets.

Figure 2. NoteEdit

NoteEdit was created by Joerg Anders in the late 1990s. In 2004 he officially ended his association with the project, and from that time on, it has been managed primarily by a group led by Reinhard Katzmann. NoteEdit originally was conceived to be a KDE-based application, and the current build still requires the KDE and Qt libraries and development packages. For the most complete experience, NoteEdit also should be built with Pete Goodliffe's excellent TSE3 MIDI library. NoteEdit can be built without TSE3, but its MIDI capabilities are be less flexible.

NoteEdit is a mature application. Joerg Anders' last release had attained version level 2.7.3, and the current stable release is version 2.8.0. The source package ChangeLog indicates that the new development team has been adding features, fixing bugs, adding translations and modernizing the codebase. In addition, the project maintainers have set up a Subversion (SVN) repository for the NoteEdit source code at the BerliOS Developers site. (BerliOS is a project development site similar to SourceForge, Subversion is a code maintenance system similar to CVS). The source package also has added support for the SCons build management system. The GNU autotools still are supported, but SCons has become popular with developers.

I compiled the latest SVN sources, NoteEdit version 2.9.0, without problems on the same Demudi system I used to build Denemo. The ChangeLog indicates only a few changes relevant to LilyPond, but those changes include some notable bug fixes and a few additions to the LilyPond Export dialog (Figure 3).

Figure 3. NoteEdit's LilyPond Export Dialog

The source package includes a TODO list that includes only one item, a statement of intent to migrate to Qt4. The latest Hydrogen drum machine/rhythm programmer requires Qt4, and I must say that its GUI improvements are sweet. NoteEdit's appearance certainly will improve, and I'm sure we also can expect improvements for LilyPond, such as catching up with the latest stable release.

NoteEdit is an excellent notation-based music program that works equally well as a composition tool and a score preparation utility. It also is another testament to open-source development. Joerg Anders thoughtfully protected his work under the GPL, and it still is covered by the GPL v.2. When he retired from NoteEdit development, the source code was available publicly for anyone who had an urge to continue the project. A new development team has carried NoteEdit forward, but help is always welcome. See the Web page for more information about the NoteEdit development effort.

Rosegarden

Figure 4. Rosegarden-4 1.2.3

You don't have to spend much time in the Linux audio world before you hear about Rosegarden-4, also known simply as Rosegarden. Rosegarden is an integrated audio/MIDI sequencer with a variety of user interfaces, including an excellent notation-based GUI (Figure 5). Rosegarden's support for standard notation was an essential aspect of the program's original design. LilyPond export capability appeared with Rosegarden's major upgrade to Rosegarden-4, thanks to Hans Kieserman. Although Rosegarden supports direct printing, the developers recommend exporting to LilyPond for the highest quality printed output.

Figure 5. Rosegarden's Notation Editor

I must confess that this profile is not based on Rosegarden's cutting edge Subversion sources. The version displayed in Figure 4 is the latest stable release. It was not yet packaged for my system--Demudi includes version 1.0--so I built it myself, again using the same development environment as I used for Denemo and NoteEdit. Compiling Rosegarden is not difficult, but it does have a lengthy list of dependencies, including the KDE/Qt development packages and the latest JACK and ALSA audio/MIDI systems. Also, the build now requires SCons.

Rosegarden's notation editor is not designed to be a graphic front-end for LilyPond, but it functions well in the role. When your Rosegarden notation is satisfactory, open the Export LilyPond File dialog from the File/Export menu. After naming your new LilyPond file, you're presented with the LilyPond Export dialog shown in Figure 6. Check and set the preferences that apply, click OK and watch Rosegarden create your new LilyPond file.

Figure 6. Rosegarden's LilyPond Export Dialog

Rosegarden originally was written in the early 1990s for SGI hardware. It later was ported to Linux, which is its current primary development platform. The original developers still maintain the project, but Rosegarden has generated a large community of participating users and contributing developers. The AUTHORS file tells the tale: in addition to the core team of Chris Cannam, Richard Bown and Guillaume Laurent, it lists more than two dozen contributors responsible for translations, code fixes, enhanced MIDI support, SCons support and more. Alas, I couldn't find a TODO list or other guide to Rosegarden's future, but I can join the Rosegarden mail lists and ask.

And Out...

Next month we'll spend some time with FOMUS, a tool for converting the output from algorithmic composition programs, such as Common Music, into music notation formats, such as LilyPond. Until then, stay tuned.

Dave Phillips 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. He can be reached at dlphilp@linux-sound.org.

__________________________


Special Magazine Offer -- 2 Free Trial Issues!
Receive 2 free trial issues of Linux Journal as well as instant online access to current and past issues. There's NO RISK and NO OBLIGATION to buy. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994.

Sorry, offer available in the US only. International orders, click here.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

linux

On October 2nd, 2007 enigma free download (not verified) says:

is a What code freeze? . Bye.

Thanks!

On March 21st, 2006 Reinhard (not verified) says:

Hi Dave,

Thank you very much for your great article and the positive feedback on the current NoteEdit. We're finally anticipating a new release and the first beta will be released this week. It's been a long time since the last one.

Also for those who really enjoy the bleeding edge: Read some important announcement on the NoteEdit development list: http://lists.berlios.de/pipermail/noteedit-devel/2006-February/000619.html and the answer by myself.
I will go to a more broad public as soon as we have something useful to present (hopefully ready when the LAC starts).

Regards,

Reinhard

Featured Videos

Email is one of the least private and least secure forms of communication, although few people realize this. MixMaster is one way to allow secure, anonymous communication even over the very public medium of email. This tutorial will get you started with MixMaster quickly and easily.

In case you were wondering about the fun side of Linux World Expo, we thought we'd give you a peek at our shenanigans. We at Linux Journal love what we do so much, that we can't help but have a ball wherever we go.

From the Magazine

September 2008, #173

Feeling a bit like a Thermian? Never give up, never surrender! Someday, you could go from underdog to top dog. Just take a look at a few of the underdogs we highlight in this issue: Mutt, djbdns, Nginix, Gentoo, Xara and the program voted mostly likely to fail just a few years back—Firefox. If Firefox is not radical enough for you, check out Chef Marcel's column for some more alternatives. Having trouble mapping your program data to your relational database? If so, Rueven Lerner shows you some tricks in his At The Forge column.

Need to run GUI applications on your server in the next state? In his Paranoid Penguin column, Mick Bauer shows you how to do it securely. Kyle Rankin keeps hacking and slashing and shows you a few split screen secrets you may not be familiar with. Finally, we all know what happens next February, but only Doc knows what happens afterward.

Read this issue