=head1 NAME

FAQ - GNU LilyPond FAQs

=head1 DESCRIPTION

Some questions that have been answered before.

=head2 Language: mudela

Q: Why can't you type C<#c> in stead of C<cis> ?

A: We think that C<#c> looks as if you are entering the symbols to
print (which you are not; remember, you're entering the musical
content in Mudela)

We're not sure on leaving out this feature. If you think this is a
good idea, please let us know.

Be warned we will I<not> allow you to leave out the C<#> if the note
already has an accidental. We won't allow

	c# c	% no way! 

in stead of:

	cis cis
	#c #c


Q: I can type

	<a c> <e g>

to make a few chords, but why do I have to type


	< { a() e } { c () g } >

instead of

	<a( c(> <)e )g>

to generate slurs between the chords?

A: When you type 

	<a c> <e g>

this is shorthand for

	< { a } { c } > < { e } { g } >

Slurs have to be confined to `voices', and the a and the e are in
different {} blocks, so they are in different voices. You should view
the desired construct as a "generalised chord" (two voices stacked
vertically). It might help you visualise this by using the following
formatting:

	< { a () e }
	  { c () g }
	>


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: 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.

=head2 Miscellaneous

Q: Why GPL?

A: Yes.

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++, GNU LilyPond is portable to all platforms which support
g++ (there are quite a few). Not having to support other compilers
saves us a I<lot> of trouble. GNU LilyPond and FlowerLib use:

=over 4

=item *
builtin bool

=item *
64 bit integral type long long

=item *
typeof

=item *
operator <?, operator >?

=item *
the new for-scope

=item	 *
class Rational (libg++)

=item *
named return values

=back

=head2 Running

Q: I get 

	can't load library 'libflower.so'

A: You are using the dynamically compiled Flower library. Please set
LD_LIBRARY_PATH to a directory containing F<libflower.so>

=head2 DOZE

Q: I want a DOS/NT/W95 port.

A.0: Reconsider.  Try Linux.  It's fun!

A.1: Currently (patchlevel 27), GNU 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 GNU LilyPond type
C<make $OSTYPE>. (I am not promising to maintain this platform, it is just 
that when having to use doze, i-m sometimes too lazy to reboot.)

A.2: I haven't had time to find a GCC crosscompiler (I<with> g++ and
libg++, mind you) to DOS/win (in rpm, please :).


Q: I-m dozed enough to run the (sometimes bit stale) .exe-s you distribute. 
Why do i need cygwin.dll?

A: It-s all in this cut-n-paste:

Minimalist GNU-Win32 Readme                   
version 0.1.3                           
March 20, 1997                       
Colin Peters <colin@bird.fu.is.saga-u.ac.jp>

[...]

0.3 Fixes and Improvements          

[...]
In the "coming soon" category I have a version of the GNU Standard C++
library ported to Mingw32. This means you can use iostreams, complex
numbers and all those neat STL (Standard Template Library) things
without needing the Cygwin DLL. I hope to put this port up for
downloading soon (along with the source of course).
       
[...] 

3.2 C++ Support                                                         

To add C++ Support to the above the following extra files are required: 

In C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\cygnus-2.7.2-    
961023:                                                                         
	cc1plus.exe                                                   

Note that this does not include support for the standard C++ libraries
(only the C run time libraries) or for iostreams. That support is still
only available with the Cygwin32 API.

