=over 5
=item *
+
Unix. GNU LilyPond is known to run on Linux, AIX, Digital Unix and
Solaris
even work in Lose NT/95, but don't promise to support it.
=item *
+
GNU C++ v2.7 or better, with libg++ installed. Version 2.7.2
or better recommended. I almost positive that it will not compile with
AT&T CC.
=item *
-Bash. Most scripts will continue to work with a stock sh, but they
-might generate (harmless) syntax errors
-=item *
GNU make.
=item *
+
Flex (2.5.1 or better).
=item *
+
Bison.
=back
=over 5
=item *
-Perl. Some (mostly unimportant scripts) use Perl for trivial
-operations. The documentation was created with the perl's Plain Old
-Documentation.
+
+Perl. Most scripts are written in Perl. The documentation was created
+with the perl's Plain Old Documentation.
=item *
(GNU) find
/usr/lib/texmf/texmf/tex/lilypond/*
The TeX include directory is detected dynamically, but it can be
-adjusted with B<--enable-texprefix>. The above assumes that you are root and
-have the gnu
-development tools, and your make is gnu make. If this is not the
-case, you can adjust your environment variables to your taste:
+adjusted with B<--enable-tex-prefix> and B<--enable-tex-dir>. The
+above assumes that you are root and have the gnu development tools,
+and your make is gnu make. If this is not the case, you can adjust
+your environment variables to your taste:
export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
configure
configure --prefix=/home/me_myself_and_I/
-Since GNU LilyPond currently is beta, You are advised to also use
+If you want to install GNU LilyPond in F</usr/local>, and your TeX has
+no default hooks for local stuff (mine is broken too), you can do:
+
+ configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
+
+Since GNU LilyPond currently is beta, you are advised to also use
--enable-debug
--enable-checking
--enable-printing
--enable-optimise
--enable-profiling
+ --enable-tex-prefix
+ --enable-tex-dir
The option B<--enable-optimise> is recommended for Real Life usage.
=head1 REDHAT LINUX
RedHat Linux users should be able to get a RPM. A spec file is in
-F<make/lilypond.spec>.
+F<make/lilypond.spec>. You should be able to create an rpm as a normal
+user. Be sure you have a ~/.rpmrc, and edit the RPM-dir in
+F<Variables.make>
=head1 WINDOZE
GNU LilyPond (pl 0.0.39) is known to compile on the following platforms:
- * linux 2.0.28, g++ 2.7.2[.1]
+ * linux 2.0.x, g++ 2.7.2[.1]
* aix 4.1, g++ 2.7.2
* windows-nt 4.0, cygnus gnu-win32 beta17.1 (~=g++ 2.7.2)
* linux 2.0.28 X to doze, gcc-go32 (~=g++ 2.7.2) [exec. untested]
=head1 AUTHORS
- Han-Wen Nienhuys <hanwen@stack.nl>
+Han-Wen Nienhuys <hanwen@stack.nl>
- Jan Nieuwenhuizen <jan@digicash.com>
+Jan Nieuwenhuizen <jan@digicash.com>
Have fun!
=item *
multiple voices within one staff; beams optionally shared
-between voices. (well, more than 2 voices won't look pretty --yet.)
+between voices. Up to four voices is handled cleanly.
=item *
This is what the output looks like over here:
- GNU LilyPond 0.0.40 #0/FlowerLib 1.1.7 #2. Compile: Mar 11 1997, 22:58:47 (g++ 2.7.2)
- Parsing ... [./init//symbol.ini[./init//dynamic.ini][./init//dutch.ini]
- [./init//script.ini][./init//table_sixteen.ini]][./input/wohltemperirt.ly]
- Setting up music ...Processing music ............
- Preprocessing ...
- Calculating column positions ... [3][6][9]
+ hw:~/musix/spacer$ lilypond input/kortjakje.ly
+ GNU LilyPond 0.0.52 #1/FlowerLib 1.1.12 #1
+ Parsing ... [/home/hw/share/lilypond/init//symbol.ini[
+ <lots of stuff deleted>
+ ][./input/kortjakje.ly]
+
+ Setting up music ...Processing music ...[8][16][24][25]
+ Preprocessing ...
+ Calculating column positions ... [3][9][14][18][22][25]
Postprocessing ...
TeX output to lelie.out ...
- midi output to lelie.midi ...
hw:~/musix/spacer$ tex test
This is TeX, Version 3.14159 (C version 6.1)
- (test.tex
+ (/home/hw/lib/texmf/tex/lilypond/test.tex
Hyphenation patterns for english, dutch, loaded.
- (lilyponddefs.tex) (lelie.uit) [1] [2] )
- Output written on test.dvi (2 pages, 8420 bytes).
+ (/home/hw/lib/texmf/tex/lilypond/lilyponddefs.tex) (lelie.out) [1] )
+ Output written on test.dvi (1 page, 9180 bytes).
Transcript written on test.log.
hw:~/musix/spacer$ xdvi test&
=head1 DESCRIPTION
This document describes the the GNU LilyPond input format, which is an
-effective language for definining music. We call this language
+effective language for defining music. We call this language
(rather arrogantly) The Musical Definition Language (S<Mudela 0.1>).
The first aim of Mudela is to define a piece of music,
=head1 Overview
-The Musical Definition Language (Mudela) S<version 2>,
-has a logical structure,
-making use of typing and naming (using identifiers),
-that allows for flexible input, and definition reuse.
+The Musical Definition Language (Mudela) S<version 2>, has a logical
+structure, making use of typing and naming (using identifiers), that
+allows for flexible input, and definition reuse.
-The below included for explanatory
-purposes only (i.e., for a complete and up-to-date definition, see
-F<lily/parser.y> and F<lily/lexer.l>):
+The below included for explanatory purposes only (i.e., for a complete
+and up-to-date definition, see F<lily/parser.y> and F<lily/lexer.l>):
+
+As a related note, you should take a look at the examples and the init
+file, as this document does not cover every aspect of mudela yet.
=head2 Files
its elements. The C<\multivoice> is a construct which is explained
below.
+You can also glue two horizontal pieces music together with
+concatenation operator:
+
+ \horOne = \melodic { c c g g }
+ \horTwo = \melodic { a a g2 }
+ \twinkle = \melodic { \horOne ++ \horTwo }
+
=head2 Transposition
You can transpose horizontal music in the following way:
% copyright: None
%
% declare melody (which will be in *one* staff ) for the lead voice
+\version "0.0.52";
melodie = \melodic {
% switch Lilypond in note-mode