Welcome to this twenty-second issue of the LilyPond Report!
Here’s a new Report, full of surprises and exciting news for our community! To be found in this issue is an up-to-date, complete list of all LilyPond mailing lists and forums around the world — and we do mean: complete. Also, for the very first time our special guest today is LilyPond’s co-founder and core developper Jan Nieuwenhuizen, who has been busy these past months — read on to find out what for! As always, you are warmly invited to post comments at the bottom of the page, or even contribute to the LilyPond Report’s next issues, by contacting Valentin or Graham.
(by Valentin Villenave)
What’s not to love with GNU LilyPond? Meaning: is it at all possible, either to mildly appreciate it, or perhaps even to hate the hell out of it?
On our reviews page, I recently stumbled upon Nicolas Sceaux’s statement that he used to have "a love-hate relationship" with LilyPond. Coming from arguably the most skilled LilyPonder in the world, this is somehow surprising.
Thinking about it, however, I soon realized that my own involvement in the LilyPond project could accurately be described as some kind of a bipolar disorder: sometimes I can get very excited, eager to help, eager to please, and nothing seems to go fast enough. However, a contrecoup is always to be expected: at some point, things suddenly seem to go too fast for me to keep up, and I find myself not doing anything for months. Finally, on rare occasions, something gets me frustrated — and then, for a short time that feels like forever, everything is tainted with bitterness and rage.
Getting the Report out (almost) on time, in this regard, is always a challenge. So many exciting things to talk about... or, depending on how I look at it, so many saddening things that I would rather not talk about. This month we’re having plenty of each, and therefore the LilyPond Report is unfortunately not getting any shorter; if you only have one thing to read though, please skip directly to our interview with Jan-, who has some pretty awesome news for all of us!
(by Graham Percival & Valentin Villenave.)
Work continues towards 2.14; the fourth alpha test, 2.13.38, is now online! This release still has one crash and two cases of suspicious spacing, so we cannot recommend it for daily production use. The current stable release is 2.12.3-2.
We have been experiencing several problems with our download mirror, but it seems to be fixed now. In case that happens again, and to alleviate the load of our bandwidth sponsor, it may be a good idea to set up a BitTorrent server/tacker somewhere (on LilyNet?), or to use an existing one (preferably free-software friendly). Does that sound appropriate to you? Would you be interested in downloading/sharing/seeding LilyPond binaries over the network? Please let us know!
(by Xavier Scheuer)
This month, Valentin suggested me to draw up an updated list of LilyPond communities for the LilyPond Report, but I decided to extend it to every LilyPond-related "Useful Addresses". This will also help keeping our contact page up-to-date; please help us complete this list if you know of any addresses that should be included here.
GENERAL, INTERNATIONAL "OFFICIAL" LILYPOND MAILING LISTS (ENGLISH-SPEAKINKG)
LOCALE, LANGUAGE SPECIFIC MAILING LISTS, FORUMS, GOOGLE GROUPS, ...
ES Lista de usuarios de LilyPond en español: lilypond-es_at_gnu.org
Info & subscribe: http://lists.gnu.org/mailman/listin...
Administrator: Francisco Vila
LilyPond French Users: lilypond-user-fr_at_gnu.org
Info & subscribe: http://lists.gnu.org/mailman/listin...
Administrators: John Mandereau, Valentin Villenave
Magyar LilyPond-felhasználók közössége: lilypond-user-hu_at_googlegroups.com
Info & subscribe: http://groups.google.com/group/lily...
Administrator: Dénes Harmath(?)
UNOFFICIAL LILYNET.NET MAILING LISTS
LilyPond translations: translations_at_lilynet.net
Info & subscribe: http://lists.lilynet.net/translations/
Administrator: Valentin Villenave, John Mandereau
[Editor’s note: These last two lists are not active yet; of course the Report will let you know when/if they are.]
VERY (TOO?) UNOFFICIAL, INFORMAL
Other "secret" mailing lists? ;p
devel-chatmailing list is a public mailing list, that was officially announced a year ago. Subscription is freely allowed, and everybody’s invited — provided that you don’t expect serious discussions
lilypond-hackersmailing list: chances are you won’t find anything. Its archives are, of course, well-kept; it is not even mentioned in the list of GNU mailing lists.
[UPDATE: Please read the Post-Scriptum at the bottom of this issue, just above the comments.]
(by Graham Percival).
The Frogs are ordinary LilyPond users who have chosen to get involved in their favorite software’s development. Fixing bugs, implementing new features, documenting the source code: there’s a lot to be done, but most importantly: this is a chance for everyone to learn more about LilyPond, about Free Software, about programming… and to have fun!
All Frog action in the past month has centered around guile 2.0 work. The new major version of this GNU Free-Software Scheme interpreter (and now, compiler!) is expected within weeks, and LilyPond is getting ready to fully support it!
Hopefully once LilyPond 2.14 is out, we might get more new volunteers interested in improving our source code; if you are interested, remember that the word is: join the Frogs!
(by Valentin Villenave)
Up to this day, LilyPond is, has always been, and remains, a non-graphical program. No windows, no staves and notes that you can move around with the mouse, like in other music notation software (proprietary or not) you may be familiar with.
The idea of a LilyPond GUI has long been the Holy Grail of LilyPond users, for generations. Some see it as a myth, others keep hope of finding it someday, while others have been engaging in endless quests to build their own. Most newcomers to LilyPond often feel frustrated (myself included).
Eventually, everybody either gives up or gets used to writing LilyPond code on their own, and the closest thing to a GUI that we can think of is but an improved source-code editing environment, such as LilyPondTool or Frescobaldi (which we reviewed a few months ago). At best, even the most idealistic of us in their wildest dreams, can’t imagine anything but to eventually ship LilyPond alongside with a lightweight editor and PDF viewer.
Little do we remember, however, that the founders of the LilyPond project themselves, developers Han-Wen Nienhuys and Jan Nieuwenhuizen haven’t been exactly deaf to these calls for user-friendliness (and smooth shiny blingy interfaces). In 2004, Jan first tried and displayed music objects on a GNOME canvas. Then in 2005, Han-Wen launched his own project, codenamed Ikebana.
"Ikebana, Jan recalls, was created by Han-Wen in 2005, as a demo/proof of concept for integrating LilyPond (2.6 at the time) with a big 3rd-party commercial sequencer. Ikebana is 99,98732% Han-Wen’s work. I just resurrected it."
In March 2009 indeed, Jan noted on his blog: "Pleased to find there’s a new release of OOoLilyPond which makes it *much* easier to install. Now, who’s going to resurrect and tie Ikebana up with this? Or better yet, build on Erik Sandberg’s Music Streams work and start a true interactive GUI?"
It wasn’t until this summer where Jan resurrected Ikebana, made it work with recent LilyPond versions (2.13.29 at the time), and started to seriously think about its possible future. However, he wasn’t very optimistic: "Ikebana, he told us, was never intended as a LilyPond GUI effort. It is unsupported, does not work very well, won’t be developed any further. But, it’s very interesting, isn’t it? Has been on my mind too."
A few days later, he added: "I’ve been talking with Wingo [Editor’s note: Andy Wingo, lead developer of the guile-gnome bindings]. I’m thinking of maybe starting Ikebana afresh, in guile — for obvious reasons — with some major changes.
That was on September 22. Just the day after, Jan’s new project was born...
(by Valentin Villenave)
The LilyPond Report — Greetings Jan! Wow, it is an honor for the Report to meet with you today; for years I guess I’ve just been too intimidated to suggest an interview with either you or Han-Wen...
Jan Nieuwenhuizen - - Hi Valentin! Yeah, I love the Report. Good, great!
Schikkers List is a LilyPond GUI in the prototype phase. I have no idea if this approach could even result in a usable program. [...] The basic is to have LilyPond render only a small bit of the music: the bit that changed. [...] Simple LilyPond files can be entered and saved as .scm or exported as .ly files.
This is targeted at hackers and mainly presented as an invitation for comments and possibly for patches.
JN — That’s right. There are so many bugs/missing features that I’ll only be taking patches for now; at least until v0.1 or so.
TLR — Okay, now that you’ve made this clear, let me ask you the question everyone must be asking themselves by now: what’s with the name ?? I mean, "Schikkers List"? Really?
JN — I know. "Schikkers List" is probably just as incapable of surviving as "Ikebana", but well
List is the dutch translation of "a guile scheme". It does not mean list[en], that word is lijst (Liste in German). Translating Ikebana into Dutch, you get Bloemschikken where bloem == flower. The person who performs Ikebana would be a Bloemschikker (arranger of flowers).
TLR — ...
TLR — Er. Okay, we’ll let our audience re-read this a couple of times... For the record: I didn’t even know that "guile" was actually a word
TLR — (*cough*) Back on track. Obviously, the GNOME-Canvas plan has been on the table for some time now; I also can understand why you chose Guile/Scheme over python (since most of LilyPond itself is natively implemented in this language). What else inspired you?
Then I was inspired by how fast and how usable Ikebana was.
TLR — Wait — "usable"??? How come all of us haven’t been using it ever since then?
JN — Well, it wasn’t just like that in 2005: it was neither fast, nor usable. Also, LilyPond has come a long way since 2004...
I want to learn programming in scheme, that seems such a nice language and I’m such a novice. I had to do all that alone because nobody can know about it, as I should be working on my open source consultancy startup company, and anything else is procrastination, which looks real bad.
I also think you should be have some real code before you start to talk vaporware, which is why I had to start alone. But I’m not going to do a project like this on my own, so if others are interested that would really help.
TLR — I’d be happy to help, except for one thing: I’m a KDE guy. There’s no way I’ll *ever* install GNOME on my system. So, I guess this is good-bye...
JN — Not at all! Schikkers List is not gnome dependent, just GTK. I started off using the pangocairo backend, which requires very recent builds of guile-gnome (later than 2.16.1). However, the GNOME canvas was not deprecated after all, so I’m using this as a backend now, which allows running with guile-gnome 2.16.1 (or possibly even 2.16).
TLR — Interesting. Now for the embarrassing part. For almost fifteen years, we’ve seen Han-Wen and you telling people that a GUI was just The Wrong Way, that LilyPond would never have a GUI because it wasn’t meant to in the first place and it would be useless anyway. So I hope you won’t mind me asking: who are you kidding, really? Was all that non-GUI motto just a pile of hypocrite bullshit?
JN — Keep it cool... LilyPond is not conceived, indeed, to be used in a GUI setting. Period.
There are so many good reasons why GUI programs in general, and a GUI for setting text or music specifically, are a bad idea! You get "expert users" and tricks and mouse-click video’s on YouTube etc. Can’t script it anymore.
However. LilyPond was created to free the world of badly typeset music and to help *all* musicians. Of course, we want everyone to enjoy the freedom of Linux and move there. However, this was the mind-shift that caused us to make the Windows/mingw and Apple/darwin ports. We cannot demand that people change their OS for their own good, happiness and health.
TLR — Well, I certainly would, but...
JN — The idea of my ikli interface is to do away with the text editor (there may be a structured text editor one day) because I think that the vast majority of potential users will never /start/ with lilypond if they have to enter text, even if there’s visual feedback.
If the mere fact that LilyPond does not have a very good GUI, will mean that in the end we as musicians are still stuck (again stuck) with badly typeset music because "people /will/ use a GUI even if it handcuffs them", it’s bad for their health and happiness etc., what’s a hacker to do?
TLR — ... Well, you tell me!
JN — We/I have been "waiting" for years to get Eric Sandberg’s work completed and have full-blown music streams in LilyPond. That would be the first step towards the remote possibility of a GUI. This did not happen and I do not foresee it to happen any time soon.
So, Schikkers List is another guile scheme to turn this dependency around. Instead of first waiting for boring, useless work to be done that should enable a gui, just make a gui first and when it grows, we can always decide that music streams are essential, integrate Schikkers List with LilyPond and just finish them.
On the other hand, it could well be that there will never be a v0.0.2 and this is just another silly pipe dream.
TLR — I sure hope not!
JN — If you get to use Schikkers List, you’ll see that, as I said, LilyPond is not conceived for a GUI approach — however, it may just be good enough. I don’t know. The big question here is: who can tell [me] what the very minimal set of requirements is that makes a gui useful, esp. for people who would never use text entry for music, and is there a path from this minimal version to more useful versions for real world music?
TLR — Well, perhaps our readers can help answering that question However, isn’t there a risk that you may reinventing the wheel here? You do know that Denemo development has been revived for the past couple of years, and produces a nice interface already... Besides, many users appreciate the Frescobaldi/LilyPondTool "code on the left, preview on the right" paradigm; can you seriously believe that anyone will want to use a GUI program that hides the LilyPond code from the user?
JN — Let me be clear. Backed with the right amount of hacking effort, Schikkers List will just totally blow away all the other efforts.
Of course, the lily code will also be available in a separate window and we’ll have some sort of structure-editor that feels like a text editor but is very annoying because it has to make sure you cannot enter invalid lily code We’ll also have a music-tree view window where you can select/edit the underlying music structure.
For years to come however, Denemo will be a great GUI. As for Frescobaldi/LilyPondTool, these aim at people who want to write code — those are not real GUIs, are they? People who would benefit from Frescobaldi will probably also use lilypond without this nice preview...
TLR — Well, thank you Jan, and good luck: you’ll need it! Anything we normal people can do to help, other than turning into programmer-demigods and sending you patches? How about suggesting a nice logo for Schikkers List?
JN — A logo. Man, this is a pile of rubbish, get real! Love, peace, thanks.
Many thanks to Jan Nieuwenhuizen for this interview.
(by Valentin Villenave)
Let’s be honest: for a while, this month’s snippet tasted like a conflict of interest. I had written a snippet that — I thought — was just way too cool not to make it as the "Snippet of the month": Colored-background staves.
When browsing the LSR to retrieve my snippet’s URL, however, I stumbled upon this other one — and realized I simply couldn’t compete.
Now, how cool is that? The worst part is, though, that we have no idea who posted this snippet: it doesn’t include a
%LSR comment, nor has it been announced on the mailing lists. If you wrote it and happen to read this, please do let us know!
[Update: unsurprisingly, Neil Puttock is actually to thank for this cool snippet. Cheers!]
That concludes the twenty-second issue of The LilyPond Report. Next instalment is expected on December 1st, and will be the last of the year 2010!
Graham Percival & Valentin Villenave