-CALL FOR HACKERS: LilyPond, the Music Typesetter
+ Announcing
+
+ LILYPOND
-[Sorry if this is a bit off-topic; I want to announce this software to
-small crowd, because it is still test-stage]
+ The Music Typesetter
-Hi net!
+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!
-this is to announce the availability of the first public release
-(v0.1) of my 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.
-WHAT IS LILYPOND
+Sources for this project are on
-Technically it is a preprocessor which generates TeX
-(or LaTeX) output which contains information to typeset a musical
-score. Practically it is a typesetter, which only uses TeX as an
-output medium. (this is handy because there exist music fonts for TeX)
+ ftp://pcnov095.win.tue.nl/pub/lilypond/
-As a bonus, you can also output a MIDI file of what you typed.
+detailed info and examples can be found on the webpage at:
-HOW DOES IT WORK
+ http://www.stack.nl/~hanwen/lilypond/index.html
-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
+(it is somewhat lousy, but I have more important things to do).
-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)
-WHY IS THIS A TEST VERSION
+[DETAILED DESCRIPTION]
-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.
+WHAT IS LILYPOND
-WHY A CALL FOR HACKERS
+Technically it is a preprocessor which generates TeX
+(or LaTeX) output which contains information to typeset a musical
+score. Practically it is a typesetter, which only uses TeX as an
+output medium. (this is handy because there exist music fonts for TeX)
-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!
+As a bonus, you can also output a MIDI file of what you typed.
-As an aside, I really like the anarchist approach of linux development.
+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
-WHAT HAS TO BE DONE
+WHAT IS NEEDED?
-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.
+for compilation you need
- - Coding. For this time, there won't any biggish (global)
-source hackings. There are a lot of small projects which could use
-some work.
+ 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.
- - Some TeX hacking. I know little about TeX
+for running you need
- - Documentation. I don't have time for this
+ TeX
+ The MusixTeX fonts. (I use those in MusixTeX T.59)
-I WANT MORE INFO!
+FEATURES
-You can download it at:
+ASCII script input (mudela), with identifiers (for music reuse),
+customizable notenames
- ftp://pcnov095.win.tue.nl/pub/lilypond
+MIDI output lets you check if you have entered the correct notes.
+MIDI to Mudela conversion through the mi2mu program.
-or visit the incredibly lousy webpage at:
+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.
- 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>