=head1 DESCRIPTION
-GNU LilyPond is a program which converts music definition files into
-visual or auditive output: it can typeset formatted sheet music to a
-TeX file and and (mechanical) performances to MIDI files.
+LilyPond is the GNU Project music typesetter. The program generates
+visual or auditive output from a music definition file: it can typeset
+formatted sheet music to a TeX file and play (mechanical) performances
+to a MIDI file.
This is not a Fanmail/Hype page. These pages were entirely created from
the LilyPond package-sources.
=head1 DESCRIPTION
-GNU LilyPond is a program which converts music definition files into
-visual or auditive output: it can typeset formatted sheet music to a
-TeX file and play (mechanical) performances to MIDI files.
+LilyPond is the GNU Project music typesetter. The program generates
+visual or auditive output from a music definition file: it can typeset
+formatted sheet music to a TeX file and play (mechanical) performances
+to a MIDI file.
=head1 OPTIONS
+pl 19.jcn1
+ - small changes to sharp, fermata
+ - small changes to lilypond.lsm+doc, lelievijver.lsm
+ - mi2mu updeet + bf
+
pl 19
- bf: keyword.cc rm'd struct defs
- dots: support for feta dots.
TOPLEVEL_MAJOR_VERSION = 0
TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 19
+TOPLEVEL_PATCH_LEVEL = 19.jcn1
TOPLEVEL_MY_PATCH_LEVEL =
# use the above to send patches, always empty for released version:
-% generated automatically by mf-to-table.py version 0.3
+% generated automatically by mf-to-table.py version 0.3
+% on Mon Oct 6 20:23:06 1997
% Do not edit
% input from out/font-en-tja16.log
"-2" "\longaball" -0.00\pt 8.00\pt -2.00\pt 2.00\pt
}
"foobars" = \table {
- "ufermata" "\ufermata" -6.20\pt 6.20\pt -0.00\pt 6.80\pt
- "dfermata" "\dfermata" -6.20\pt 6.20\pt -6.80\pt 0.00\pt
+ "ufermata" "\ufermata" -6.30\pt 6.30\pt -0.00\pt 6.80\pt
+ "dfermata" "\dfermata" -6.30\pt 6.30\pt -6.80\pt 0.00\pt
"accent" "\accent" -3.60\pt 3.60\pt -2.00\pt 2.00\pt
"staccato" "\staccato" -0.50\pt 0.50\pt -0.50\pt 0.50\pt
"ustaccatissimo" "\ustaccatissimo" -0.80\pt 0.80\pt -0.20\pt 4.00\pt
-% generated automatically by mf-to-table.py version 0.3
+% generated automatically by mf-to-table.py version 0.3
+% on Mon Oct 6 20:23:19 1997
% Do not edit
% input from out/font-en-tja20.log
"-2" "\longaball" -0.00\pt 10.00\pt -2.50\pt 2.50\pt
}
"foobars" = \table {
- "ufermata" "\ufermata" -7.75\pt 7.75\pt -0.00\pt 8.50\pt
- "dfermata" "\dfermata" -7.75\pt 7.75\pt -8.50\pt 0.00\pt
+ "ufermata" "\ufermata" -7.88\pt 7.88\pt -0.00\pt 8.50\pt
+ "dfermata" "\dfermata" -7.88\pt 7.88\pt -8.50\pt 0.00\pt
"accent" "\accent" -4.50\pt 4.50\pt -2.50\pt 2.50\pt
"staccato" "\staccato" -0.63\pt 0.63\pt -0.63\pt 0.63\pt
"ustaccatissimo" "\ustaccatissimo" -1.00\pt 1.00\pt -0.20\pt 5.00\pt
# two outdir files are distributed, since they make sense to have without running
# configure and make.
-EXTRA_DISTFILES = Configure_variables.make.in lilypond.spec.in Toplevel.make.in \
- lilypond.lsm.in $(outdir)/lilypond.spec $(outdir)/lilypond.lsm
-
+IN_FILES = $(wildcard *.in)
+EXTRA_DISTFILES = $(IN_FILES) $(outdir)/lilypond.spec $(outdir)/lilypond.lsm $(outdir)/lelievijver.lsm
#
# generic variables:
$(outdir)/lilypond.spec: lilypond.spec.in $(depth)/VERSION
cat $< | $(sed-version) | $(sed-docs) | $(sed-examples) > $@
-$(outdir)/lilypond.lsm: lilypond.lsm.in $(depth)/VERSION
+$(outdir)/%.lsm: %.lsm.in $(depth)/VERSION
cat $< | $(sed-version) | $(sed-date) > $@
+
--- /dev/null
+Begin3
+Titel: LilyPond
+Versie: 0.1.19.jcn1
+Inschrijf datum: 06OCT97
+Beschrijving: LilyPond is de muziek typesetter van het GNU Project.
+ Het programma genereert muziek in zichtbare of
+ hoorbare vorm uit uit een muzikale definitie file:
+ voor bladmuziek wordt typeset informatie naar een
+ TeX file geschreven, voor een (mechanische) uitvoering
+ wordt een MIDI file geschreven. Enkele kunstjes zijn
+ verscheidene notenbalken, maatsoorten, sleutels,
+ toonsoorten, teksten, krachtige invoer taal, cadensen,
+ balken, boogjes, triolen.
+Trefwoorden: muziek typezetten midi notatie
+Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
+ jan@digicash.com (Jan Nieuwenhuizen)
+Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys)
+Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
+ 395k lilypond-0.1.19.jcn1.tar.gz
+Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
+ 395k lilypond-0.1.19.jcn1.tar.gz
+Copi"eer politie: GPL
+End
--- /dev/null
+Begin3
+Titel: LilyPond
+Versie: @TOPLEVEL_VERSION@
+Inschrijf datum: @DATE@
+Beschrijving: LilyPond is de muziek typesetter van het GNU Project.
+ Het programma genereert muziek in zichtbare of
+ hoorbare vorm uit uit een muzikale definitie file:
+ voor bladmuziek wordt typeset informatie naar een
+ TeX file geschreven, voor een (mechanische) uitvoering
+ wordt een MIDI file geschreven. Enkele kunstjes zijn
+ verscheidene notenbalken, maatsoorten, sleutels,
+ toonsoorten, teksten, krachtige invoer taal, cadensen,
+ balken, boogjes, triolen.
+Trefwoorden: muziek typezetten midi notatie
+Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
+ jan@digicash.com (Jan Nieuwenhuizen)
+Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys)
+Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
+ 395k lilypond-@TOPLEVEL_VERSION@.tar.gz
+Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
+ 395k lilypond-@TOPLEVEL_VERSION@.tar.gz
+Copi"eer politie: GPL
+End
Title: LilyPond
Version: @TOPLEVEL_VERSION@
Entered-date: @DATE@
-Description: LilyPond is the GNU Project music typesetter. This
- program converts music definition files into
- visual or auditive output: it can typeset formatted
- sheet music to a TeX file and and (mechanical)
- performances to MIDI files. Features include multiple
- staffs, meters, clefs, keys, lyrics, versatile
- input-language, cadenzas beams, slurs, triplets.
+Description: LilyPond is the GNU Project music typesetter. The program
+ generates visual or auditive output from a music
+ definition file: it can typeset formatted sheet music
+ to a TeX file and play (mechanical) performances to a
+ MIDI file. Features include multiple staffs, meters,
+ clefs, keys, lyrics, versatile input-language,
+ cadenzas, beams, slurs, triplets.
Keywords: music typesetting midi notation
Author: hanwen@stack.nl (Han-Wen Nienhuys)
jan@digicash.com (Jan Nieuwenhuizen)
fet_begingroup("foobars")
-fet_beginchar(incr code, "F clef", "bassclef", "bassclef");
-
+fet_beginchar("F clef", "bassclef", "bassclef");
+ set_char_box(0,0,0,0);
fet_endchar;
-fet_beginchar(incr code, "G clef", "evolinclef", "evolinclef");
+
+fet_beginchar("G clef", "evolinclef", "evolinclef");
save tilt;
tilt = 15;
penpos15(downstroke_thinness, tilt-90);
set_char_box(0,0,0,0);
-% penstroke z1e{dir 135} .. z3e .. {left}z5e .. z7e .. tension 1.2 .. z9e;% & z9e.. z12e .. z13e .. z15e;
-% penlabels(1,3,5,7, 9,12,13,15);
+ penstroke z1e{dir 135} .. z3e .. {left}z5e .. z7e .. tension 1.2 .. z9e;% & z9e.. z12e .. z13e .. z15e;
+ penlabels(1,3,5,7, 9,12,13,15);
fet_endchar;
fet_endgroup("foobars");
def draw_fermata =
- save radius, crook_thinness, crook_fatness, dot_diam;
+ save alpha, radius, crook_thinness, crook_fatness, dot_diam;
radius# = 1.5 interline#;
- crook_thinness# = stafflinethickness#;
+ crook_thinness# = 1.5stafflinethickness#;
crook_fatness# = 4 stafflinethickness#;
radius# + crook_fatness#/2 = h#;
z2 = (0, radius);
z3 = (radius,0);
- fill z1l{down} .. {up}z1r .. z2r .. z3r{down} .. {up}z3l
- .. z2l .. cycle;
+% fill z1l{down} .. {up}z1r .. z2r .. z3r{down} .. {up}z3l
+% .. z2l .. cycle;
+ % wanske, baerenreiter suggest ca 80 degrees iso half-circle
+ % ugh?
+ alpha := 10;
+% penstroke z1e{dir (90-alpha)}..z2e..{dir (alpha-90)}z3e;
+ % isn't this ugly to get rounded edges?
+ fill z1l{dir (-alpha-90)}..{dir (90-alpha)}z1r..z2r..
+ z3r{dir (alpha-90)}..{dir (90+alpha)}z3l..z2l..cycle;
pickup pencircle scaled dot_diam;
x4 =0;
% FIXME: rounded endings
+% and thickness at point of join==thickness at end, like ">"
%
fet_beginchar("> accent", "accent", "accent")
set_char_box(.9 interline#, .9 interline#, .5 interline#, .5 interline#);
2 horizontal_protrusion + interstem * beamwidth + stemwidth
= beamwidth;
- z2 - z1 = (beamwidth - roundness, beamheight/2);
+% wanske: whole beamheight; or ca 18 degrees
+% z2 - z1 = (beamwidth - roundness, beamheight/2);
+ z2 - z1 = (beamwidth - roundness, beamheight);
z1 + z2 = 2*center;
beamslope = (y2-y1)/(x2-x1);
{
public:
- Midi_track_parser (Midi_parser_info* info_l);
+ Midi_track_parser (Midi_parser_info* info_l, int i);
~Midi_track_parser ();
Moment at_mom ();
Link_array<Midi_track_parser> tracks;
for (int i = 0; i < info_l_->tracks_i_; i++)
- tracks.push (new Midi_track_parser (info_l_));
+ tracks.push (new Midi_track_parser (info_l_, i));
LOGOUT (NORMAL_ver) << "Parsing...\n";
while (tracks.size ())
#include "mudela-score.hh"
#include "mudela-staff.hh"
-Midi_track_parser::Midi_track_parser (Midi_parser_info* info_l)
+Midi_track_parser::Midi_track_parser (Midi_parser_info* info_l, int i)
{
info_l_ = info_l;
at_mom_ = 0;
track_info_p_ = 0;
- mudela_staff_p_ = new Mudela_staff (0, "", "", "");
+ mudela_staff_p_ = new Mudela_staff (i, "", "", "");
parse_header ();
parse_delta_time ();
}
mudela_stream << "\\score{\n";
if (mudela_staff_p_list_.size() > 1)
- mudela_stream << "<\n\\multi 3;\n";
+ mudela_stream << "\\multi 3 < \\type Staff\n";
for (PCursor<Mudela_staff*> i (mudela_staff_p_list_); i.ok(); i++)
{
if ( (mudela_staff_p_list_.size() != 1)
&& (i == mudela_staff_p_list_.top()))
continue;
- mudela_stream << "\\melodic{ ";
+ mudela_stream << "< \\melodic{ ";
mudela_stream << "\\$" << i->id_str();
- mudela_stream << " }\n";
+ mudela_stream << " } >\n";
}
if (mudela_staff_p_list_.size() > 1)
mudela_stream << ">\n";
*os_p_ << filename_str_g;
*os_p_ << "\n\n";
// ugh
- *os_p_ << "\\version \"0.1.2\";\n";
+ *os_p_ << "\\version \"0.1.6\";\n";
}
void
-% generated automatically by mf-to-table.py version 0.3
+% generated automatically by mf-to-table.py version 0.3
+% on Mon Oct 6 20:23:06 1997
% Do not edit
% input from out/font-en-tja16.log
-% generated automatically by mf-to-table.py version 0.3
+% generated automatically by mf-to-table.py version 0.3
+% on Mon Oct 6 20:23:19 1997
% Do not edit
% input from out/font-en-tja20.log