--- /dev/null
+=head1 NAME
+
+CodingStyle - standards while programming for LilyPond
+
+=head1 DESCRIPTION
+
+Please use these standards while doing programming for LilyPond
+
+
+
+Functions and methods do not return errorcodes, but use assert for
+checking status.
+
+=head2 INDENTATION
+
+in emacs:
+
+
+ (add-hook 'c-mode-hook
+ '(lambda ()(setq c-basic-offset 4)))
+
+
+ (add-hook 'c++-mode-hook
+ '(lambda() (c-set-style "Stroustrup")
+ )
+ )
+
+
+=head2 CLASSES and TYPES:
+
+ This_is_a_class
+ AClass_name (for Abbreviation_class_name)
+
+=head2 DATA MEMBERS
+
+ Class::member
+
+if the member's name resembles its type, then I use
+
+ class Fubular { ..}
+
+ Class::fubular_
+
+=head2 COMMENTS
+
+ /// short description
+ class Class {
+ ///
+ Data data_member_;
+ /**
+ ..
+ */
+
+ /****************/
+
+ /// short memo
+ member();
+ /**
+ long doco of member()
+ */
+ };
+ /**
+ Class documentation.
+ */
+
+Unfortunately most of the code isn't really documented that good.
+
+=head2 CLASSNAMES (2)
+
+A lot of classes in LilyPond start with 'P', this is to distinguish
+certain parts of LilyPond: the P stands for Printer, and the P-classes
+are supposed to be more lowlevel than the others. Example:
+
+Staff uses PStaff, PScore and PCol to do the typesetting of
+symbols. Staff is the "brains" for PStaff
+
+NB: in PCursor (which is part of the library) P stands for PointerCursor
+
+
+=head2 MEMBERS(2)
+
+Standard methods:
+
+ ///check that *this satisfies its invariants, abort if not.
+ void OK() const
+
+ /// print *this (and substructures) to debugging log
+ void print() const
+
+ /// add some data to *this;
+ add( .. )
+ /**
+ Presence of these methods usually imply that it is not feasible to this
+ via a constructor
+ */
+
+ /// replace some data of *this
+ set( .. )
+
--- /dev/null
+=head1 NAME
+
+Lilypond - a music typesetter
+
+=head1 SYNOPSIS
+
+ lilypond [options] [inputfiles]
+
+=head1 DESCRIPTION
+
+LilyPond typesets music. It translates script files (mudela files or
+F<.ly>'s) into TeX input.
+
+=head1 OPTIONS
+
+=item B<-d,--debug>
+debugging
+
+=item B<-w,--warranty>
+warranty
+
+=item B<-o,--output>
+default output file
+
+=item B<-h,--help>
+help
+
+=head1 LICENSE
+
+GNU GPL. See file COPYING
+
+=head1 PREREQUISITES
+
+Compilation:
+
+=over 5
+
+=item - Unix (any decent Linux distribution is fine)
+
+=item - GNU C++ v2.7 or better (with libg++ )
+
+=item - GNU make.
+
+=item - flex (2.5.1 or better)
+
+=item - bison/yacc
+
+=item - The "flower" library, which should be available from the
+ same source you got this from.
+
+=item - perl
+
+=back
+
+Operation:
+
+=over 5
+
+=item - TeX
+
+=item - the MusixTeX fonts
+
+=back
+
+The Makefile uses perl for trivial operations, and you could tinker
+with it to use sed or awk.
+
+=head1 COMPILING
+
+Do:
+
+ tar zxf flower-1.11.9.tar.gz
+ mv flower-1.11.9 flower
+ cd flower; make; cd ..
+ tar zxf lilypond-1.2.13.tar.gz
+ cd lilypond-1.2.13
+ make
+
+why G++ >= 2.7? LilyPond & flower lib uses:
+
+ builtin bool
+ typeof
+ operator <?, operator >?
+ the new for-scope
+ class Rational (libg++)
+
+=head1 AUTHOR
+
+Han-Wen Nienhuys <hanwen@stack.nl>, <jan@digicash.com>
+
+=head1 EXAMPLES
+
+At this time, LilyPond is only suited for Quick & Dirty jobs (the
+output quality still is too low). If you're not discouraged; this is
+what I type in my xterm:
+
+ lilypond someinput.ly
+ tex test
+ xdvi test&
+
+This is what the output looks like over here:
+
+ hw:~/musix/spacer$ lilypond maartje.ly
+ LilyPond 0.0.17/FlowerLib 1.0.14. Compile: Dec 17 1996, 11:33:54 (g++ 2.7.2)
+ Parsing ... [symbol.ini][maartje.ly]
+ Processing ... Calculating ... Postprocessing ...
+ output to lelie.uit...
+
+ hw:~/musix/spacer$ tex test
+ This is TeX, Version 3.14159 (C version 6.1)
+ (test.tex
+ Hyphenation patterns for english, dutch, loaded.
+ (lilyponddefs.tex) (lelie.uit) [1] [2] )
+ Output written on test.dvi (2 pages, 8072 bytes).
+ Transcript written on test.log.
+
+ hw:~/musix/spacer$ xdvi test&
+ [1] 1468
+
+Check out kortjakje.ly, it has some comments
+
+
+=head1 PROBLEMS
+
+If LilyPond bombs out, then please recompile using B<-g>, and send a gdb
+stacktrace of the crash. It also helps if you can print the values of the objects. So if you trace is
+
+ (gdb) backtrace 12
+ #0 Interval::operator+= (this=0x11fffec60..)
+ at ../flower/interval.hh:50
+ #1 0x12005195c in Item::width (this=0x14008a680) at src/item.cc:39
+ #2 0x12008fdbc in itemlist_width (its=0x11fffed58 ..
+ :
+ :
+
+Than it would help if you send a dump of the Interval and the Item
+(use: 'print *this' or use LilyPond print() methods).
+
+This is a beta version of LilyPond. Please send your helpful comments
+and patches to me,
+
+LilyPond is updated very frequently, the latest version is always available at:
+
+F<ftp://pcnov095.win.tue.nl/pub/lilypond>
+
+
+=head1 FILES
+
+F<symbol.ini> The initialisation file with symbol tables etc.
+
+=head1 HOW DOES IT WORK
+
+=over 5
+
+Use The Source, Luke. If you don't know C++, you can try editing
+the file F<.dstreamrc> for copious debugging output. (use B<-d>)
+
+the subdir Documentation/ contains some more-in-depth matter on LilyPond
+
+The source is commented in the DOC++ style.
+Check out doc++ at
+
+ http://www.ZIB-Berlin.DE/VisPar/doc++/doc++.html
+
+=back
--*-text-*-
+Please refer to the directory Documentation/.
-last update: 96/17/12, 0.0.17
+To generate the pretty-printed docs, do a:
-LICENSE
+ make doc
-See file COPYING
-
-INTRODUCTION
-
-This is a beta version of LilyPond (a music typesetter). Please send
-your helpful comments and patches to me,
-
- hanwen@stack.nl
-
-LilyPond is updated very frequently, the latest version is always available at:
-
- ftp://pcnov095.win.tue.nl/pub/lilypond
-
-PREREQUISITES
-
-Compilation:
-
- - Unix (any decent Linux distribution is fine)
- - GNU C++ v2.7 or better
- - GNU make.
- - flex (2.5.1 or better)
- - bison/yacc
- - The "flower" library, which should be available from the
- same source you got this from.
- - perl
-
-Operation:
-
- - TeX
- - the MusixTeX fonts
-
-The Makefile uses perl for trivial operations, and you could tinker
-with it to use sed or awk.
-
-COMPILING
-
-Do:
-
- tar zxf flower-1.11.9.tar.gz
- mv flower-1.11.9 flower
- cd flower; make; cd ..
- tar zxf lilypond-1.2.13.tar.gz
- cd lilypond-1.2.13
- make
-
-why G++ >= 2.7? LilyPond & flower lib uses:
-
- builtin bool
- typeof
- operator <?, operator >?
- new for-scope
-
-USING
-
-At this time, LilyPond is only suited for Quick & Dirty jobs (the
-output quality still is too low). If you're not discouraged; this is
-what I type in my xterm:
-
- lilypond someinput.ly
- tex test
- xdvi test&
-
-This is what the output looks like over here:
-
- hw:~/musix/spacer$ lilypond maartje.ly
- LilyPond 0.0.17/FlowerLib 1.0.14. Compile: Dec 17 1996, 11:33:54 (g++ 2.7.2)
- Parsing ... [symbol.ini][maartje.ly]
- Processing ... Calculating ... Postprocessing ...
- output to lelie.uit...
-
- hw:~/musix/spacer$ tex test
- This is TeX, Version 3.14159 (C version 6.1)
- (test.tex
- Hyphenation patterns for english, dutch, loaded.
- (lilyponddefs.tex) (lelie.uit) [1] [2] )
- Output written on test.dvi (2 pages, 8072 bytes).
- Transcript written on test.log.
-
- hw:~/musix/spacer$ xdvi test&
- [1] 1468
-
-Check out kortjakje.ly, it has some comments
-
-
-PROBLEMS
-
-If LilyPond bombs out, then please recompile using -g, and send a gdb
-stacktrace of the crash. It also helps if you can print the values of the objects. So if you trace is
-
-(gdb) backtrace 12
-#0 Interval::operator+= (this=0x11fffec60, r=-1.7976931348623157e+308)
- at ../flower/interval.hh:50
-#1 0x12005195c in Item::width (this=0x14008a680) at src/item.cc:39
-#2 0x12008fdbc in itemlist_width (its=0x11fffed58) at src/simpleprint.cc:40
- :
- :
-
-Than it would help if you send a dump of the Interval and the Item (use: 'print *this' or use LilyPond print() methods)
-
-HOW DOES IT WORK
-
-* Use The Source, Luke. If you don't know C++, you can try editing
-.dstreamrc for copious debugging output. (use -d)
-
-* the subdir Documentation/ contains some more-in-depth matter on LilyPond
-
-* The source is commented in the DOC++ style.
-Check out doc++ at
-
- http://www.ZIB-Berlin.DE/VisPar/doc++/doc++.html
+in the top-level dir
\ No newline at end of file