=head1 NAME FAQ - LilyPond FAQs =head1 DESCRIPTION Some questions that have been answered before. Q: Gee, I really like MPP, why would I want to switch to LilyPond? A: The design of MPP is broken beyond repair: it is very difficult to enhance MPP, and any working version is (probably) bug-ridden. Every once in a while, I have a major attack of hybris, and I go in to enhance MPP. I usually end up thoroughly frustated within an hour or so. I concur, it does work but extending MPP is a major pain. We will not sacrifice development time on something else than the most trivial bugfixes. If you insist on using MusiXTeX, then LilyPond is not for you, and you might try PMX which does also nice output. Q: Why are [] around the notes, and () inbetween? A: [] designate beams, a note can only be in one beam at the same time. () is a slur, which connects notes. You need to be able to specify a()a()a Q: I want a DOS/NT/W95 port. A0: Reconsider. Try Linux. It's fun! A1: Currently (patchlevel 27), LilyPond (and flowerLib) compiles, links and runs on Windhoos-NT, using the CYGNUS GNU port (release b17.1). I (JCN) only had to make a minor workaround for missing library calls. Have a look at http://www.cygnus.com/gnu-win32. To make LilyPond type C. (I am not promising to maintain this platform, it is just that when having to use doze, i-m sometimes too lazy to reboot.) A2: I haven't had time to find a GCC crosscompiler (I g++, mind you) to DOS/win (in rpm, please :). Q: Why GPL? A: Yes. Q: Why shouldn't I put all commands (\clef, \meter) inside the music? A: You should do what you like, but at some time we will enable quoting of music ("Stichnoten"). Besides if you are going to type an orchestral score, then you'd probably want to enter most of the meter, repeat commands only once. Q: Could you implement feature XXXX? It is really easy, just extend the syntax to allow YYYY! A: If it is reasonable, I'll add XXXX to the TODO list. In general finding a cute syntax (such as YYYY) isn't very hard. The complicated issue how to adapt the internals to do XXXX. The parser is really a simple front end to the complicated internals. Q: Why do I need g++ >= 2.7? A: By using g++ LilyPond is portable to all platforms which support g++ (there are quite a few, more than platforms which have AT&T CC or Micro$oft C++). Not having to support other compilers saves us a I of trouble. You need a version better than 2.7 because LilyPond & FlowerLib uses: =over 6 =item * builtin bool =item * 64 bit integral type long long =item * typeof =item * operator ? =item * the new for-scope =item * class Rational (libg++) =item * named return values =back Q: Why do I have to tell LilyPond explictly that the lowest-line-note is "es" if I am using the key of "bes"? A: The goal of lilypond (and MPP) was to design a language which conveys the I message of a piece. That is the reason that it does not ask you to enter the line on which the note is is. (Or the "natural" note-name without any "es" or "is" postfix) We do realise it is a bit shortsighted of us to assume that any user could readily read the music he/she is entering. We might extend LilyPond to allow "programmable" intervals, keys and clefs (and thus give him a means to build his own scales, custom etc.). For now, you can program LilyPond to use custom notenames and do notenames { ces_key_notenames } music { $ % music in the key of ces ... $} notenames { dutch_notenames } % restore default as an ad-hoc solution.