LilyPond news

The LilyPond Report #15

Monday 18 May 2009 by Valentin Villenave

This short, informal opinion column is about the LilyPond project: its team, its world, its community. It is not meant to be an exhaustive documentation resource. Reader comments are, of course, welcome (see at the bottom of this page).

Welcome to this fifteenth issue of the LilyPond Report!

Where do you go when you’re looking for LilyPond scores? Are we soon going to see a LilyPond 3.x series? How _not_ to print music with LilyPond? And why use the Internet to turn on a lamp? These are some of the questions that will be addressed in today’s issue of the Report. As always, you can post your comments at the bottom of the page, or even register and contribute to the LilyPond Report’s next issues.

 Editorial

Greetings,
at last, a new Report; as you may have noticed, I am currently (unfortunately) unable to publish this column on a weekly (if at all regular) basis, so it’s more of a Debian-like "release-when-ready" style. As I said many times, my main problem as an editor is not to find something worth writing about, but about making choices in the never-decreasing number of interesting things that happen every day, every week, within our community and in the Free Software world.

But even when you’ve decided to deal with a specific topic, finding a proper way to do so is hardly the easy part. Sometimes the material is there, for instance on the mailing lists archives, and it is just a matter of patience to find it. Sometimes there isn’t enough material, and you have to investigate a little bit. And sometimes, well, sometimes the hardest part is to put things together with some sort of a logical sense. This week’s article about LilyPond scores wasn’t a easy one to write in this regard.

In the former instalment, we talked about the new Frogs team; well they now have a dedicated homepage on LilyNet, where you can read (and subscribe to) their mailing list. Please also have a look at their place on the Wiki, which Patrick McCarty has been busy setting up. On the upcoming issues, we will have a closer look at this team and what they do.

Eventually, Francisco Vila has begun to provide the Report with interesting statistics about the LilyPond project; we’ll have a look at that today and in several issues to come.

 What’s up with LilyPond (-scores)?

Recently, Wilbert Berendsen shared with us a score he has just engraved, introducing the source code repository he has created for the occasion at Google Code.

The .ly files live in the lilymusic googlecode repository, a repo which I’m btw happy to share with anybody wanting to write good LilyPond scores (of public domain or otherwise Free music) under free licenes and svn version control.

This led Jay Anderson to make a short list of known LilyPond scores source-code repositories:

Of course, such repositories are meant to host only source code. But a number of free online music libraries include LilyPond scores. On these websites, you can download scores as compiled PDF files, as well as the sources.

  • the Mutopia project immediately comes to mind. It contains only LilyPond-engraved scores, all released under specific Free licences.
  • the International Music Scores Library Project (IMSLP) has been going through a lot, but is now back online. Is contains mostly scanned scores, but you may find some LilyPond scores. And these may include source files.
  • the Werner Icking Music Archive (WIMA) has many PDF downloadable scores. Some of these have been engraved using LilyPond. Some may come with their source files.
  • the Gutenberg project now has its own music library. Whether it will contain many LilyPond scores or not remains to be seen.
  • the Choral Public Domain Library (CPDL), as its name states, is about vocal music. Even though it is not limited to LilyPond scores, several members of our community do contribute to this library on a regular basis, including Andrew Hawryluk, Peter Chubb, Reinhold Kainhofer or Laura Conrad. Laura has contributed 133 scores as of this day, and she explained why she’d rather post these scores on CPDL than on Mutopia:

    for a particular piece of music, I think it makes more sense to either have it on my own website or to contribute it to a more central place where people are looking for music.
    In other words, I don’t expect people to look for a madrigal typeset in lilypond; I expect them to look for a three-part madrigal, or a madrigal by Thomas Weelkes, and mutopia doesn’t particularly have a reputation in the madrigal-performing community as a place to go (unlike Werner Icking or CPDL).

Of course, many LilyPonders do publish their scores on their personal websites, and it would be absolutely impossible to reference these here (if at all). It allows them (like Nicolas Sceaux) to offer their scores either as compiled PDF or source archives.

Source code repositories, online music libraries, and personal websites: quite a lot of resources to look at, and one can wonder if things couldn’t be made simpler. In different ways.

  • The one website to rule them all approach. According to Hajo Dezelski (and he certainly has a point), this website should be Mutopia:

    I ask myself again why do I have to add another link to my list, when we have a working repository for music: Mutopia.

Following closely discussions on this mailing-list you will notice that tons of scores are engraved with Lilypond. (Applause!) And most of this music seems to be without any copyright restrictions. But I can seldom find them in Mutopia.[…] Why is Mutopia not the official music code repository for Lilypond?

The upside: well, one single place, wouldn’t that be nice…
The downsides:

    • What do we do with already existing external resources?
    • How do we handle syntax evolution?
    • What about licensing constraints?
  • The let’s make something new and better approach. For instance, Mike Blackstock is aiming to open a new Wiki, that (unlike our current Wiki) would be interfaced with LilyPond and designed to host scores.

The upside: wiki-like editable scores! How cool is that? The downsides:

    • On the server side, it requires some serious computing power.
    • On the implementation side, it requires a crew of skilled web-developers.
    • Whether a wiki-interfaced LilyPond can deal with complex source code (with includes, lots of Scheme, etc) in a safe way has yet to be proven.
  • The geeky web 2.5.0 shiny venture capital newfangled interactive web my-face-space-book stuff approach (Graham K. Percival). I said earlier that referencing all personal websites/repositories/music libraries that contain LilyPond scores is a nearly impossible task. However, there may be a way to achieve it: by offering a central, widely-visible place where the LilyPond community can unite their strengths. For example, the IMSLP has an impressive list of free online music libraries.

There’s more to it. Through a customized Google search box, through RSS feeds aggregation, JavaScript embedding etc, we could conceive a simple webpage where people could, at a glance, see the latest Mutopia/CPDL additions, as well as a preview of Nicolas Sceaux’s latest score (yeah, that’s three times I mention him, what do you know, I’m a big fan), search for a specific score in all LilyPond resources known to man, and so on.

In a similar way, I can imagine a source code repository that would be interfaced with both SVN and GIT, and that would automatically retrieve the source code from given external repositories.

The point with this latter way would be to leave resources were they are, but to reference, syndicate them, and therefore give them visibility, consistency, and ease of use.

 News from the Free world (and Lily)

So, more than two years after the last stable version, LilyPond 2.12 was released on Christmas Eve. While we had been looking forward to this for months, it still came as a surprise — which some of us weren’t happy about, because of unresolved bugs or documentation issues.

Such controversies aren’t unusual in the Free world; one can think, for instance, about the KDE 4 quarrel. Moreover, Reinhold Kainhofer made an interesting point:

As things are currently in LilyPond, I don’t think that the term "stable version" makes much sense. All our releases seem to me like snapshots of the current development version at some random times

This, in turn, brings up the question of the version numbering model.

For ages, LilyPond used the same numbering model as the Linux kernel: odd-numbered development releases, even-numbered stable releases. This model has one big downside, that we just experienced: it tends to make the development cycle really long, and at some point the ’stable vs unstable’ question becomes irrelevant.

Therefore, the Linux kernel has dropped this model, just issuing one release after another, exactly in the same way that Reinhold suggested. Recently, Linus Torvalds even considered entirely dropping the 2.6.xx.x naming model, since nothing compelled him anymore to switch from 2.6 to 2.8, or even from 2.* to 3.*…

While it is unlikely that we’ll see a Linux 3.0 version any decade soon, LWN’s Grumpy Editor has predicted that the 2.6.* numbering scheme will still go on, and make it at least to 2.6.33 by next year.

And what about Lily?

Well, it seems that, after all, we’re not far away from the Linux situation. Like the Linux kernel, LilyPond has moved from a small 0.x project to a bigger community-driven 1.x project with more developers; then some major internal changes (particularly introducing the Guile interpreter) have led to a new 2.x series… And now?

In August 2004, Han-Wen announced:

LilyPond development is gearing up towards a new, better, funkier glitzier stable release, and that is LilyPond 3.0.

In February, he was still referring to LilyPond 3.0. A few months later [1], it became 2.10 instead. And then, 2.12, 2.14, etc…

So, are we stuck in 2.* numbers? I’m not sure. I think it’s a matter of generation. LilyPond started approximatively at the same time as other GNU parts, such as Glib/GTK or the Gimp, that are still at version 2.* as well. One could also mention the Blender project [2], that it now at… version 2.49!

Not only does that mean that LilyPond is as active as other successful free software projects, but it also implies that, even as a "niche" project, we’re still part of something bigger. And this "bigger picture" is moving forward: fohttp://news.lilynet.net/ecrire/?e… instance, the GNU project’s General Public License has reached version 3 less than two years ago; it has also recently been decided that GNOME 2.30 will be renamed GNOME 3.0. [3]

Anyway, as Linus Torvalds once said (at a time where the Linux kernel 2.6 was thought to become 3.0): "Hey, it’s just a name"…

 The Statistics of the Week

Our Spanish contributor Francisco Vila has been busy lately, and he came up with some statistics (and some comments) about the LilyPond project. This week, we’ll present the first part of his observations.

I was curious about the health of the LilyPond documentation and I have made this graph.

Though most people browse it online or as a PDF file, LilyPond’s documentation is also downloadable as a `tarball’ archive on our website. This graph shows the evolution of this archive’s size, over the years.

As you may know, "There are three kinds of lies: lies, damned lies and statistics" (Mark Twain). Nevertheless, what can we notice? In two years, the doc size has been multiplied by 4; this may have something to do with translations (that were basically not there in version 2.8). But the main cause is obviously the Grand Documentation Project that has been led by Graham Percival over the whole last year. On this subject, Graham commented the way these statistics were made:

if you *really* want to see a spike for GDP, let’s look at the size of patches in git. Or even better, look at the percentage of patches which are documentation-related (i.e. modify Documentation/ or input/ ) as opposed to code-related. ;)

However, I think the overall shape looks good… and promising for our future. Francisco, on his side, has gathered a different comment:

My two daughters said immediately that the drawing was "a little path of stars". Isn’t it lovely?

It certainly is :)

 The Idea of the Week

To me, the "We Can" phrase is much less of a president’s motto than a geek-defining mantra. You may know this geek-oriented US TV show called The Big Bang Theory; if not you can have a look at the first two minutes of this clip and pay attention to this line (slightly rephrased below), which I believe defines the very essence of geekness:


— Why do you send a signal from this laptop, through your local ISP, racing down fiber optic cabel at the speed of light to San Francisco, bouncing off a satellite in GS synchronous orbit to Lisbon, Portugal where the data packet will be handed off to submerge transatlantic cabels terminating in Halifax, Nova Scotia and transferred across the continent via microwave released back to your ISP and X10… to turn on a lamp???

— Because I can!

Anyway, from the just because we can collection…

This week’s idea was posted by our Ukrainian contributor Dmytro Redchuk on the mailing list:

I thought of \repeat unfold in a context of some experiments with "concatenateable" fragments of music, lyrics etc — can not say now with what exactly; so i can not tell whether i need this or not :-)

Of course, you must already be familiar with the widely-used \repeat unfold n {...} command, that prints the music expression n times. But… have you ever thought of using it not to print music?

\repeat "unfold" 0 { d4 d d d }   % "zero" here

To be honest, i would expect this bar not to be engraved.

This "feature" is currently not available in LilyPond. Maybe someone will implement it some day… "What for", you might ask? Well, because we can! :)

 LilyPond’s companion projects

This week’s "project" is more of an experiment, that could remind you of the special issue we had previously published about algorithmic composition.

On January the 5th, one of our French LilyPonders, Martial, inadvertently posted a mail on the -user list, announcing (in French) a new version of POV-ray (another Free Software project he seems to be involved in).

JPEG - 68.2 kb
A CGI highway rendered using POV-Ray
by Jaime Vives Piqueres

The Persistence of Vision Raytracer (aka POV-Ray) is a major project of the Free World (it has been developped for more than twenty years), that allows to render high-quality computed-generated 3D images. Similarly to LilyPond, its input format is plain code (it can, however, be interfaced with graphical modeling programs such as Blender). Its development seemed to have been slowing down for the past five years, but Martial’s announcement of a new version proved that it’s still well alive and promising.

This little mishap led to an interesting discussion, where Cameron Horsburgh believed that LilyPond had precisely been (remotely) inspired by the POV-ray language… But the coolest part is probably when Martial modestly took this as an opportunity to show us his work with computer-generated animations and LilyPond scores

Here are some explanations, translated from his website:

Some Python, some Pov and a lot of LilyPond:

the score (notes and rhythm) is randomly generated by some macros, randomly selected out of a prepared "pot", and then saved as a LilyPond file.

The image is generated from the same "pot": a macro somehow rotates a globul-blobtuberence field.

A random factor is seeded by a Python script involvind the system clock; then the score is engraved by LilyPond from the output file. Here’s the source POV file that produced this LilyPond example.

Through the Python Imaging Library, the image is converted into EPS to be handled by LilyPond; the MIDI output is converted into mp3 through TiMidiTy.

[…] Instruments are arbitrarily chosen at the beginning of the POV source file.
Example:
#declare Instrument_1= "\"trumpet\"" or
#declare Instrument_1= "\"harpsichord\""

How cool’s that? If you’re geeky enough and want to experiment making 3D LilyPond scores "just because you can", then you’ll definitely want to have a look at Martial’s source code. Feel free to send us your creations, as the Report will happily feature them in its next issues!

 The LilyPonder of the Week

Some day in March, your editor had the pleasant surprise to meet someone special on our -user list. I am, of course, referring to

PNG - 22.9 kb

Miklos Vajna, a Hungarian young developer whom we owe one of my favorite GNU/Linux distributions [4]: Frugalware.

What better way to introduce this distribution than by quoting this Distrowatch paper from 2006, which I believe is still dead on:

Frugalware Linux is one of those distributions that does not feature often in the news headlines. But those users who take the time give it more than just a passing glance are often surprised to find in Frugalware a clean, fast distribution with a great package manager and a few convenient system administration tools. Loosely modelled on Slackware and incorporating Arch’s ’pacman’ for managing installed applications, Frugalware Linux is not only a great operating system, it is also an active community project based on open source ideals.

As I said back then, Miklos is to Frugalware what our own "benevolent dictators" Han-Wen and Jan are to the LilyPond project; that should give you an idea of the amount of respect he deserves. So, what brings Miklos in the LilyPond community? Here’s what he told the Report:

I play guitar for about 13 years, not that I’m that good in it, but with time I tend to learn a bit. In the past five years most of the time I played religious songs and that has nothing to do with LilyPond, it’s just a textbook with guitar chords. But from time to time I occasionally play other old songs like Steve Wonder, The Beatles and such. I buy or download the music sheet, print it out, then usually change it a bit, since the original chords are for multiple guitars / instruments, etc. When I’m happy with the shape and I’m tired of programming, occasionally I try to let LilyPond create the music sheet for my version of the song.

What I like in LilyPond is of course its programming language-like interface, which is quite comfortable for a programmer like me. I used Finale once about 12 years ago and it was boring, I hate to use my mouse too much. :) Also the community is wonderful, every time I ask something on the list I get helpful answers. Not to mention the documentation, IIRC the notation reference is 500+ pages. As a result usually my question is not "Is it possible?" but "How to do it?". ;)

BTW, I first noticed LilyPond because I knew Han-Wen Nienhuys because of his darcs2git and Jan Nieuwenhuizen because of ooo-build (I contibuted a few patches to both projects), so it was something I had to try out as I was sure it’ll be quality software. :)

If you want to learn more about Miklos, you can have a look at this recent interview in the Frugalware Report — sorry, Newsletter.

 The quote of the week

Upon special request from Graham Percival, this week’s quote was found in a long discussion involving (yet another) Grahamized newbie named Tim Rowe:

The lilypond documentation really isn’t the kind of documentation that you can go to when you want to know how to do something. It’s designed to teach you how to use the software.

Comments are opened below.  [5]

… Aaand this concludes the fifteenth issue of The LilyPond Report.

Cheers,
Valentin Villenave

[1] I remember this was explained in a mail on -user (by Mats?), but I couldn’t find it. Anyway, in a long (annoying) conversation in July 2006, Erik Sandberg used the 3.0 numbering, then a few days later the 2.10 numbering. My guess is that this is when the change took place.

[2] By the way, the third Open Movie project (codenamed Durian has just been announced, and it looks really exciting.

[3] … And there I have managed to put both KDE and GNOME logos. Hopefully no flamewar today.

[4] Was my top #1 actually. And then KDE4 came out.

[5] In fact, I am not sure that I understand it completely, since I have been learning LilyPond the other way around: at first I only wrote very simple scores, and while reading the documentation my scores became more and more complex since everytime I found a new feature I just had to find a way to use it: "Hey, let’s put a Voice-Following line somewhere! Hey, where could I use feathered beams in this piece? OK, let’s add another measure for that…"
… And before you ask: yes, the "because I can" approach is the wrong way of composing music. But what do you know, I’m just a geek.


Forum

Home page | Contact | Site Map | | Statistics | visits: 73351

Follow-up of the site's activity en  Follow-up of the site's activity LilyPond Report   ?

Site created with SPIP 2.0.6 + AHUNTSIC

Creative Commons License