Welcome to this twelfth issue of the LilyPond Report!
This week, we’ll talk command line on Windows, LilyPond development releases, MusicXML import, and friendliness vs usefulness; we’ll also present (yet) another PostScript snippet, and a mysterious disease... the LilyPnod syndrome! 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.
For a couple of decades, the use of graphical interfaces have made computing a pleasant experience, and we all are familiar with such concepts as mouse pointer, windows, menus and icons. However, text-based interfaces are far from obsolete, and even the best software in the world is actually a command-line program.
If you’re running an MS-Windows system, it is more difficult. You can either browse the Start menu > Accessories folder and look for some "command" application, or you can simply go Start menu > Run and type "
cmd" (a shortcut for "command").
(Yes, everything is in French on my computer; but the commands are the same.)
Here it is: the big, scary, black window with white letters.
As you can see, it looks much better on GNU/Linux, by the way:
Under GNU/Linux, the Terminal emulator allows you to launch any program you want (actually, it even allows you to launch many more programs than you could ever launch using only menus). On Windows, it only works with very specific programs, such as
ftp, or... or
lilypond, of course.
But first, we have to learn how to browse our folders and files. You basicalle need to know only two commands:
cd (meaning "Change Directory") allows you to move into your folders and subfolders;
dir (on GNU/Linux, it’s
ls, meaning "list") allows you to see what’s in your folder.
Let’s assume I have a LilyPond file somewhere. Is it in "My Documents"?
cd "My Documents"
(Since there is a space in the folder’s name, you have to enclose it with double quotes.)
Obviously, this folder is empty. Is it in "My Music"?
cd "My Music"
We have two folders here: "lilypond_scores" and "best_scores". Let’s move to lilypond_scores, but since the name is a bit long, we’ll just type the first letters ("ly", for instance), and then hit the "TAB" key. The full name should appear: this is a very convenient feature called autocompletion, that can avoid you many typing mistakes.
Okay, it’s not the good one. To move back to the parent directory, we’ll type two dots. Then, instead of
cding into the "best_scores" folder then typing
dir, we’ll directly type
dir, followed by the folder’s name (we give the folder’s name as an argument to the
Hum, nothing there. Oh, I remember! A few days ago, I created a movie_themes folder in "My videos"; the LilyPond file I’m looking for has to be there. Let’s use one single command to go up to "My documents", open the "My videos" folder, and finally open the "movie_themes" subfolder:
cd "..\My Videos\movie_themes\"
Here we are . Let’s launch lilypond, wit a bunch of options. I do not want to get a .ps file, and I want the output to be in png format.
lilypond -ddelete-intermediate-files -fpng "the Great Theme.ly"
Voilà! Granted, it’s much easier to just double-click on a file, but that would prevent us from using all these nice options. Besides, as we’ll see below, some functions such as convert-ly or musicxml2ly are only available from the command-line.
To learn more about everything one can do with the command-line on *nix systems, you may want to read this excellent tutorial by Ladislav Bodnar.
If you happen to have a SourceForge account, and haven’t yet taken part in the 2008 Community Choice Awards, you only have a few days left to vote for LilyPond as "Best project" (you can use the button at the bottom of this page).
In the news, you may have already heard about the Firefox Download Day which is about to start within a few hours as I’m writing these lines. Already more than 1 million persons have pledged now; all you have to do is give a mail address and download Firefox 3 the day it’s released, making it the most downloaded software in 24 hours.
As I’ve already written, I kind of dislike this third version of Firefox. However, when it comes to such events, it’s all about the let’s-show-them instinct, and personal tastes don’t matter so much. Let’s show them! Let’s show the whole world how much we like Free Software, and let’s demonstrate our freedom of choice, our power as citizens of the Free World!
Speaking of power, one last piece of news for this week: World’s fastest supercomputer runs Linux. The IBM Roadrunner can run at 1.7 petaflops; it’s built with the same AMD Opteron processors you could find in your computer, and the same IBM cores you can find in Playstations 3. It perform nuclear-weapons-stuff calculations... and it runs Red Hat Linux.
Another week, another Development Release (this is how Linus Torvalds announces every kernel release on the Linux Kernel Mailing List). Last week we’ve seen that the LilyPond developers are getting ready for a stable release; the latest 2.11.49 version is clearly a new step in this direction.
As I told you some weeks ago, I lack convenient statistics to make my point, but there’s been an obvious change in the development rhythm for the last couple of months. More bugs have been fixed in this timeline than in the previous months, and the software itself seems more and more stable.
I could notice two "waves" of bugfixes in the last two months:
A mail from Jonathan Kulp on our mailing list gave me the idea of this week’s feature:
I decided to try musicxml2ly, and I have to say WOW!!
[...] I took two Finale files, one simple and one fairly complicated and long, and exported them as musicXML files, then ran the musicxml2ly command on them and finally ran them in lilypond, and I can’t believe how well it worked. Major props to the developers for this!!
[...] This is an amazing improvement over what I tried before. THANKS!!! This is going to save me countless hours of work if I want to convert my many, many Finale files to lilypond. Awesome!
What Jonathan is referring to is the musicxml2ly Python script that comes bundled with LilyPond. As far as I can see, this script was originally written in 2004 by Han-Wen, and greatly improved in the last several months by Reinhold Kainhofer.
MusicXML is a XML-based interchange format for music notation. Though its licence is open and its specification freely available, it is mainly produced through commercial plugins, such as Dolet for Finale and Sibelius.
The file has been saved on the desktop ("Bureau", in French).
Launching the Command line (Start menu > Run > type "cmd" > OK).
Let’s move to the Desktop...
Let’s call the musicxml2ly script, and tell it which file to process.
Here is another way to do it, more complex (you’ll probably prefer the above one):
OK! Let’s check the Desktop: a new LilyPond file has appeared...
Oh, while we’re at it, let’s run LilyPond too:
Now we can compare the original output, produced with Finale 2005:
And the LilyPond output, much much nicer (though the tempo indication is printed twice, which is easily corrected):
Native MusicXML import that works great? We have it. Any questions?
You may have noticed that I love to embed PostScript drawings in LilyPond files; just a few hours ago, Stefan Thomas gave me a new opportunity to play with it:
Dear Lilypond-users, is there a possibility to integrate symbols for percussion-beaters and sticks in a lilypond-file?
Well, here’s the result of my (ugly and hairy) PostScript code (looks pretty cool though):
I think I’ll never get tired of this feature...
LilyPond is famous for it’s extremely active mailing lists, especially the lilypond-user mailing list. Are these lists overcrowded? If you want to keep up with all the discussions, read all the mails, this can indeed take you quite a lot of time.
This week’s quote is a dialog between Trevor Daniels and Graham Percival, the two guys in charge of the Grand Documentation Project.
Graham — The whole point of GDP is to reduce the burden of doc maintenance. I expect that maintaing the [documentation sources] will be about 2 hours per month (not counting reading email), and the snippet maintenance to be 1 hour per month (again, not counting email).
Trevor — [Reading emails:] This actually takes up most of my available time at the moment. I’ve seriously thought of unsubscribing from -user, but then I’d quickly lose touch, so it’s not really an option.
Graham — Speaking from personal experience, I vigourously remind myself that answering questions helps one person a lot, whereas working on the docs helps a lot of people a moderate amount. _ [...] Yes, it’s not a friendly attitude to take, but I’d rather be helpful instead of friendly.
I’d like to have an opinion on that, but I don’t really know what to say. I have mixed feelings: on one hand I do understand, from a rational point of view, what Graham and Trevor are talking about; on the other hand helping people, meeting people, knowing people is what I like in the LilyPond community.
That being said, when you’ve been around for as much time as Graham has, you understandably tend to get tired.
I guess I’ve never really been the "big picture" kind of guy — and therefore, we need both kinds of thinking: people who actually see the big picture, build a towering structure (rock-solid code, reliable documentation, etc.) and people who don’t know anything about anything but just feel enthusiastic
How tired is Graham? Actually, he might ver well be more tired than any of us: in an attempt to study his condition based on scientific observations, I searched the -user and the -devel list and discovered...
The LilyPnod syndrome!
What’s the LilyPnod syndrome? It’s when you’re getting so tired of writing the word "LilyPond", that youcan’t spell it right anymore:
Graham Percival seems to be the only person affected so far (I didn’t found any single mail that wasn’t from him. Plus, the syndrome seems to be progressing: though he’s been around for six or seven years, the first symptoms appeared in 2007, and it’s been getting worse lately.
If you ever find yourself writing "lilypnod" in a mail... please get some rest!
And this concludes the twelfth issue of The LilyPond Report.