GNU LilyPond is a program that
typesets
music sheets in a very very beautiful way (and also produces
MIDI files if so desired). It uses
TeX as the typesetting engine.
See http://www.gnu.org/software/lilypond/ for more information.
There are various ways for creating Lilypond files; There's a crude conversion program included, called "midi2ly", and also there's a GUI editor (uses GTK+) called Denemo.
Example of LilyPond language (Mutopia): This is the "Join us now and share the software" song (Free Software Song), popular as "sung" by Richard M. Stallman.
%{
Copyright \copyright 1993 Richard Stallman
Verbatim copying and distribution of this entire score is permitted
in any medium, provided this notice is preserved.
Typeset by David Madore using GNU Lilypond.
%}
first_voice = \notes \relative c' {
\time 7/4;
\clef violin;
d'2 c4 b2 a2
b2 c4 b4 a4 g2
g2. a2. b4
c2. b2 b4 d4
a2. a1
c2 d4 c4 b2.
d2 c4 b2 a2
b2 c4 b4 a4 g2
g2. a2. b4
c2. b2 b4 d4
a2. a1
a1..
}
second_voice = \notes \relative c' {
\time 7/4;
\clef violin;
b'2 a4 g2 d2
g2 g4 g2 d2
g2. g1
g2. g2 g2
d2. d1
g1..
b2 a4 g2 d2
g2 g4 g2 d2
g2. g1
g2. g2 g2
d2. d1
e1..
}
words_one = \lyrics {
Join2 us4 now2 and2
share2 the4 so-4 -4 -ftware;2
You'll2. be-2. -4
free,2. ha-2 -cke-4 -rs,4
you'll2. be1
free2 -4 -4 -.2.
Join2 us4 now2 and2
share2 the4 so-4 -4 -ftware;2
You'll2. be-2. -4
free,2. ha-2 -cke-4 -rs,4
you'll2. be1
free.1..
}
words_two = \lyrics {
Hoar-2 -ders4 may2 get2
piles2 of4 mo-4 -4 -ney,2
That2. i-2. -s4
true,2. ha-2 -cke-4 -rs,4
that2. is1
true2 -4 -4 -.2.
But2 they4 can-2 -not2
help2 their4 neigh-4 -4 -bors;2
That's2. no-2. -t,4
good,2. ha-2 -cke-4 -rs,4
that's2. not1
good.1..
}
words_three = \lyrics {
When2 we4 have2 e-2
-nough2 free4 so-4 -4 -ftware2
At2. ou-2. -r,4
call,2. ha-2 -cke-4 -rs,4
at2. our1
ca-2 -4 -4 -ll,2.
We'll2 kick4 out2 those2
dir-2 -ty4 li-4 -cen-4 -ces2
E-2. -ve-2. -r,4
more,2. ha-2 -cke-4 -rs,4
E-2. -ver1
more.1..
}
\score {
<
\type Staff = first_staff >
\property Staff.instrument = "whistle"
\first_voice
>
\type Lyrics = lyric_line < \words_one >
\type Lyrics = lyric_line < \words_two >
\type Lyrics = lyric_line < \words_three >
\type Staff = second_staff <
\property Staff.instrument = "orchestral strings"
\second_voice
>
>
\paper { }
\midi { \tempo 2 = 75; }
}