-[Draft version]
+Do you pine for the nice days of Linux 0.95, when men were men and
+wrote their own applications? Are you without a nice project and just
+dying to cut your teeth into a bleeding edge application you can
+modify for your needs. Do you find it frustrating that everything
+works in LaTeX? No more all-nighters to get a nifty program working?
+Then this post might be just for you!
-CALL FOR HACKERS: LilyPond, the Music Typesetter
+I have been working very hard on a music typesetting system (called
+LilyPond) the past half year, and I finally think it is ready to be
+used and hacked at by a larger public than me and my co-developer.
-[Sorry if this is a bit off-topic; I want to announce this software to
-small crowd, because it is still test-stage]
+Sources for this project are on
-Hi net!
+ ftp://pcnov095.win.tue.nl/pub/lilypond/
-this is to announce the availability of the first public release
-(v0.1) of my music typesetter.
+detailed info and examples can be found on the webpage at:
+
+ http://www.stack.nl/~hanwen/lilypond/index.html
+
+(it is somewhat lousy, but I have more important things to do).
+
+
+[DETAILED DESCRIPTION]
WHAT IS LILYPOND
As a bonus, you can also output a MIDI file of what you typed.
-HOW DOES IT WORK
-
-The input is a script file (example appended) which is read. The
-script file is a "music definition", ie, you type the melody as if it
-is read out loud
-
-LilyPond interprets this melody and generates appropriate output items
-(balls, stems, beams), and calculates where they should be put. Then
-it outputs a TeX file. Warning: this said calculations is *slow* (a full
-page of music typically takes 1 minute on my 486/66)
+The input is a script file which is read. The script file is a "music
+definition", ie, you type the melody as if it is read out loud
-WHY IS THIS A TEST VERSION
+WHAT IS NEEDED?
-There a lot of advanced features (grace notes, piano staffs) which are
-VapourFeatures (tm). We're not sure about the language. It may change;
-having a large user base is a burden then.
+for compilation you need
-WHY A CALL FOR HACKERS
+ Unix. (Win32 is known to work, too)
+ GNU C++ v2.7 or better, with libg++ installed.
+ GNU make.
+ Flex (2.5.1 or better).
+ Bison.
-Currently, the development team has three people. I'd this project to
-have more people working on it (there is a lot of work to be done) I
-think this program is pretty original, so join in if you know anything
-about music and computers!
+for running you need
-As an aside, I really like the anarchist approach of linux development.
+ TeX
+ The MusixTeX fonts. (I use those in MusixTeX T.59)
-WHAT HAS TO BE DONE
+FEATURES
-LilyPond is written in Gnu C++, and it is (if I say so myself) written
-very cleanly (Lots of classes, lots of comments, small files/small
-functions) and with extensions in mind.
+ASCII script input, with identifiers (for music reuse), customizable
+notenames
- - Coding. For this time, there won't any biggish (global)
-source hackings. There are a lot of small projects which could use
-some work.
+MIDI output lets you check if you have entered the correct notes.
+MIDI to Mudela conversion through the mi2mu program.
- - Some TeX hacking. I know little about TeX
+Multiple staffs in one score. Each staff can have a different meters.
+Multiple voices within one staff; beams optionally shared between
+voices. (well, more than 2 voices won't look pretty --yet.) Multiple
+scores within one input file. Each score is output to a different
+file.
- - Documentation. I don't have time for this
-
-I WANT MORE INFO!
-
-You can download it at:
-
- ftp://pcnov095.win.tue.nl/pub/lilypond
-
-or visit the incredibly lousy webpage at:
-
- http://www.stack.nl/~hanwen/lilypond/index.html
+Beams, slurs, chords, super/subscripts (accents and text), triplets,
+general n-plet (triplet, quadruplets, etc.), lyrics, transposition
+dynamics (both absolute and hairpin style) clef changes, meter
+changes, cadenza-mode, key changes, repeat bars
-EXAMPLE INPUT
-
- % twinkle twinkle little star
- melody = music {
- $\clef\violin
- c c | g g | a a | g g |
- f f | e e | d d8.( e16 | )c2 |
-
- g g | f f | e e | d d |
- g g | f f | e( e8. f16 | e )d |
-
- c c | g g | a a | g g |
- f f | e e | d d8.( e16 | )c2
- $
- }
-
- text2 = music {
- @
- \textstyle "roman"
- When the bla- zing sun is gone,2
- When he no- thing shines up- on,2
- Then you show your lit- tle light,2
- Twin- kle, twin- kle, all the night.2
- Twin- kle, twin- kle, lit- tle star,2
- How I won- der what you are!2
- @
- }
-
- english_staf = staff {
- lyric
- music { text2 }
- }
-
- score {
- staff { melodic music { melody } }
- staff { english_staf }
- paper {
- unitspace 2.5cm
- }
- commands {
- meter {2 * 4}
- skip {24*2}
- bar "||"
- }
- }
+[Kudos to FSF, all linux hackers, and --of course-- especially
+GrandMaster Linus T, for the OS and The Announce :-]
+ Han-Wen Nienhuys <hanwen@stack.nl>
+ Jan Nieuwenhuizen <jan@digicash.com>
beams, slurs, chords, super/subscripts (accents and text), triplets,
general n-plet (triplet, quadruplets, etc.), lyrics, transposition
+dynamics (both absolute and hairpin style)
=item *
This is what the output looks like over here:
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]
+ 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]
=back
+=head1 ENVIRONMENT
+
+B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
+
=head1 SEE ALSO
+mudela(5)
+
There are some documentation files in the subdirectory F<Documentation/>,
-among others: lilygut, lilyinput, error, faq,
+among others: lilygut, error, faq,
+
+http://www.stack.nl/~hanwen/lilypond/index.html
=head1 REMARKS