+1.4.10.uu1
+==========
+
+* pktrace for makefile, spec, etc.
+
+* fresh/used translator bugfix (backport from 1.5)
+
+* rest-collision fix (backport from 1.5)
+
1.4.10.jcn2
===========
* Documentation/footer.html.in: Comment fix.
-1.4.10.jcn1
-===========
-
* po: regenerate.
* lilypond-1.4.10/midi2ly/lilypond-stream.cc (header): Add xgettext
<h1>
GNU LilyPond
</h1>
- <h2>Welcome to the home of the GNU Music Typesetter</h2>
</td>
</tr>
-->
@section Windows binary setup
-All the software you need is installed by downloading and running
-@uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}. You
-will be asked some questions. If you are unsure just click "Next". Do
-not change the default install directory @file{c:/cygwin}.
+If you run Windows NT, 2000 or XP, please become administrator first
+(currently, installing as an ordinary user will not work). Download and
+run @uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}.
+You will be asked some questions. If you are unsure just click "Next".
+Do not change the default install directory @file{c:/cygwin}.
-This installs LilyPond, and Cygwin, GUILE, Python, teTeX and GSView. If
-you already have some of that software under @file{c:/cygwin}, then
-don't worry: nothing will be installed twice.
+This installs LilyPond, and Cygwin, GUILE, Python, teTeX (MikTeX is not
+supported) and GSView. If you already have some of that software under
+@file{c:/cygwin}, then don't worry: nothing will be installed twice.
If you want to install any of this software by hand, do this
@strong{before} you run @file{setup.exe}, otherwise your LilyPond setup
You can also check out
@uref{http://lilypond.org/wiki/?TroubleshootingWindows} for more
instructions on how to make a bug report.
+
+
+@c
+@c IGNORE.
+@c
+@c
+@c
+@c
+@c
@ignore
@subsection Additional software
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=4
-PATCH_LEVEL=10
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=11
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
Translator_group * dest =
it->report_to_l ()->find_create_translator_l (to_type, to_id);
current->remove_translator_p (last);
- dest->add_group_translator (last);
+ dest->add_used_group_translator (last);
}
else
{
virtual void stop_translation_timestep ();
virtual void start_translation_timestep ();
virtual void finalize ();
- virtual void create_grobs ();
virtual void acknowledge_grob (Grob_info);
virtual bool try_music (Music*);
virtual void process_music ();
Direction d =c->get_span_dir ();
- if (d == STOP && !beam_p_)
- {
- m->origin ()->warning (_ ("can't find start of beam"));
- return false;
- }
-
if (d == STOP)
{
SCM m = get_property ("automaticMelismata");
else
e->forbid_breaks ();
}
-}
-
-void
-Beam_engraver::create_grobs ()
-{
if (reqs_drul_[START])
{
if (beam_p_)
announce_grob (beam_p_, reqs_drul_[START]);
}
- reqs_drul_[STOP] = 0;
- reqs_drul_[START] = 0;
}
void
delete finished_beam_info_p_;
finished_beam_info_p_ =0;
finished_beam_p_ = 0;
-
- reqs_drul_[STOP] = 0;
}
}
Beam_engraver::start_translation_timestep ()
{
reqs_drul_ [START] =0;
- if (beam_p_) {
- SCM m = get_property ("automaticMelismata");
- SCM b = get_property ("noAutoBeaming");
- if (to_boolean (m) && to_boolean (b)) {
- set_melisma (true);
+ reqs_drul_ [STOP] =0;
+ if (beam_p_)
+ {
+ SCM m = get_property ("automaticMelismata");
+ SCM b = get_property ("noAutoBeaming");
+ if (to_boolean (m) && to_boolean (b)) {
+ set_melisma (true);
+ }
}
- }
}
void
if (beam_p_)
{
prev_start_req_->origin ()->warning (_ ("unterminated beam"));
-#if 0
- finished_beam_p_ = beam_p_;
- finished_beam_info_p_ = beam_info_p_;
- typeset_beam ();
-#else
+
+ /*
+ we don't typeset it, (we used to, but it was commented
+ out. Reason unknown) */
beam_p_->suicide ();
delete beam_info_p_;
-#endif
}
}
Translator_group * dest =
report_to_l ()->find_create_translator_l (to_type, to_id);
current->remove_translator_p (last);
- dest->add_group_translator (last);
+ dest->add_used_group_translator (last);
}
else
{
VIRTUAL_COPY_CONS (Translator);
Translator_group (Translator_group const &);
Translator_group ();
- void add_group_translator (Translator *trans_p);
+ void add_fresh_group_translator (Translator *trans_p);
+ void add_used_group_translator (Translator *trans_p);
/// Score_register = 0, Staff_registers = 1, etc)
Translator_group* ancestor_l (int l=1);
Translator_group * dest =
it->report_to_l ()->find_create_translator_l (to_type, to_id);
current->remove_translator_p (last);
- dest->add_group_translator (last);
+ dest->add_used_group_translator (last);
}
else
{
{
warning (_ ("too many colliding rests"));
}
- if (notes.size () > 1)
- {
- warning (_ ("too many notes for rest collision"));
- }
+
Grob * rcol = rests[0];
- // try to be opposite of noteheads.
- Direction dir = - Note_column::dir (notes[0]);
+ Direction dir = Note_column::dir (rcol);
Grob * r = unsmob_grob (rcol->get_grob_property ("rest"));
Interval restdim = r->extent (r, Y_AXIS); // ??
return SCM_UNSPECIFIED;
// FIXME: staff ref'd?
- Real staff_space = 1.0;
+ Real staff_space = Staff_symbol_referencer::staff_space (rcol);
+
+
Real minimum_dist = gh_scm2double (me->get_grob_property ("minimum-distance")) * staff_space;
- /*
- assumption: ref points are the same.
- */
+ Grob *common = rcol;
+ for (int i = 0; i < notes.size (); i++)
+ common = common->common_refpoint (notes[i], Y_AXIS);
+
Interval notedim;
for (int i = 0; i < notes.size (); i++)
- {
- Grob * stem = Note_column::stem_l (notes[i]);
- Grob * head = Stem::first_head (stem);
- notedim.unite (head->extent (commony, Y_AXIS));
- }
+ {
+ notedim.unite (notes[i]->extent (common, Y_AXIS));
+ }
Interval inter (notedim);
inter.intersect (restdim);
minimum_dist + dir * (notedim[dir] - restdim[-dir]) >? 0;
- // FIXME
- //int stafflines = 5; // rcol->rests[0]->line_count;
int stafflines = Staff_symbol_referencer::line_count (me);
- // hurg?
- stafflines = stafflines != 0 ? stafflines : 5;
-
+ if (!stafflines)
+ {
+ programming_error ("No staff line count ? ");
+ stafflines =5;
+ }
+
// move discretely by half spaces.
int discrete_dist = int (ceil (dist / (0.5 *staff_space)));
SCM
Translator_group::add_translator (SCM list, Translator *t)
{
+ /*
+ Must append, since list ordering must be preserved.
+ */
list = gh_append2 (list, gh_cons (t->self_scm (), SCM_EOL));
t->daddy_trans_l_ = this;
t->output_def_l_ = output_def_l_;
- if (Translator_group*tg = dynamic_cast<Translator_group*> (t))
- {
- unsmob_translator_def (tg->definition_)->apply_property_operations (tg);
- }
-
- t->initialize ();
+
return list;
}
+
void
-Translator_group::add_group_translator (Translator *t)
+Translator_group::add_used_group_translator (Translator *t)
{
trans_group_list_ = add_translator (trans_group_list_,t);
}
+
+
+void
+Translator_group::add_fresh_group_translator (Translator*t)
+{
+ Translator_group*tg = dynamic_cast<Translator_group*> (t);
+ assert (tg);
+
+ trans_group_list_ = add_translator (trans_group_list_,t);
+ unsmob_translator_def (tg->definition_)->apply_property_operations (tg);
+ t->initialize ();
+
+}
{
Translator_group * new_group = path[i]->instantiate (output_def_l_);
- current->add_group_translator (new_group);
+ current->add_fresh_group_translator (new_group);
current = new_group;
}
current->id_str_ = id;
t = unsmob_translator_def (this->definition_);
}
Translator_group *tg = t->instantiate (output_def_l_);
- add_group_translator (tg);
+ add_fresh_group_translator (tg);
if (!tg->is_bottom_translator_b ())
return tg->get_default_interpreter ();
./configure --disable-checking --prefix=%{_prefix} --enable-optimise
-make all
+make MAKE_PFA_FILES=1 all
# make info
make -C Documentation
mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc
strip lily/out/lilypond midi2ly/out/midi2ly
-make prefix="$RPM_BUILD_ROOT%{_prefix}" install
+make MAKE_PFA_FILES=1 prefix="$RPM_BUILD_ROOT%{_prefix}" install
%if info=="yes"
gzip -9fn $RPM_BUILD_ROOT%{_prefix}/info/*
CFLAGS="$RPM_OPT_FLAGS" ./configure --disable-checking --disable-debugging --enable-printing --prefix=%{_prefix} --enable-optimise --enable-shared
-make LDFLAGS=-s "CFLAGS=$RPM_OPT_FLAGS" all
+make MAKE_PFA_FILES=1 LDFLAGS=-s "CFLAGS=$RPM_OPT_FLAGS" all
# urg
# %build doc
strip lily/out/lilypond midi2ly/out/midi2ly
-make prefix="$RPM_BUILD_ROOT%{_prefix}" install
+make MAKE_PFA_FILES=1 prefix="$RPM_BUILD_ROOT%{_prefix}" install
%{INSTALL_DIR} $RPM_BUILD_ROOT/usr/share/texmf/fonts/source/public/lilypond
(cd $RPM_BUILD_ROOT/usr/share/lilypond \
Begin3
Title: LilyPond
-Version: 1.4.10
-Entered-date: 29DEC01
+Version: 1.4.11
+Entered-date: 22FEB02
Description: @BLURB@
Keywords: music notation typesetting midi fonts engraving
Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 1000k lilypond-1.4.10.tar.gz
+ 1000k lilypond-1.4.11.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.4.10.tar.gz
+ 1000k lilypond-1.4.11.tar.gz
Copying-policy: GPL
End
%define info yes
Name: lilypond
-Version: 1.4.10
+Version: 1.4.11
Release: 1
License: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.10.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.11.tar.gz
Summary: Create and print music notation
URL: http://www.cs.uu.nl/~hanwen/lilypond
BuildRoot: /tmp/lilypond-install
./configure --disable-checking --prefix=%{_prefix} --enable-optimise
-make all
+make MAKE_PFA_FILES=1 all
# make info
make -C Documentation
mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc
strip lily/out/lilypond midi2ly/out/midi2ly
-make prefix="$RPM_BUILD_ROOT%{_prefix}" install
+make MAKE_PFA_FILES=1 prefix="$RPM_BUILD_ROOT%{_prefix}" install
%if info=="yes"
gzip -9fn $RPM_BUILD_ROOT%{_prefix}/info/*
Distribution: SuSE Linux 7.0 (i386)
Name: lilypond
-Version: 1.4.10
+Version: 1.4.11
Release: 2
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.10.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.11.tar.gz
# music notation software for.. ?
Summary: A program for printing sheet music.
URL: http://www.lilypond.org/
CFLAGS="$RPM_OPT_FLAGS" ./configure --disable-checking --disable-debugging --enable-printing --prefix=%{_prefix} --enable-optimise --enable-shared
-make LDFLAGS=-s "CFLAGS=$RPM_OPT_FLAGS" all
+make MAKE_PFA_FILES=1 LDFLAGS=-s "CFLAGS=$RPM_OPT_FLAGS" all
# urg
# %build doc
strip lily/out/lilypond midi2ly/out/midi2ly
-make prefix="$RPM_BUILD_ROOT%{_prefix}" install
+make MAKE_PFA_FILES=1 prefix="$RPM_BUILD_ROOT%{_prefix}" install
%{INSTALL_DIR} $RPM_BUILD_ROOT/usr/share/texmf/fonts/source/public/lilypond
(cd $RPM_BUILD_ROOT/usr/share/lilypond \
depth = ..
-STEPMAKE_TEMPLATES=metafont metapost asciifont install install-out
+STEPMAKE_TEMPLATES=metafont asciifont install install-out
include $(depth)/make/stepmake.make
AF_FILES = $(wildcard *.af)
TEXTABLES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.tex))
AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm) $(AF_FILES:.af=.afm) $(addsuffix .afm, $(CM_AFM_FILES)))
TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm))
-PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa))
-PFB_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfb))
# Make tfm files first, log files last,
# so that normally log files aren't made twice
-ALL_GEN_FILES= $(TFM_FILES) $(TEXTABLES) $(AFM_FILES) $(TFM_FILES) $(PFA_FILES) $(LOG_FILES)
+ALL_GEN_FILES= $(TFM_FILES) $(TEXTABLES) $(AFM_FILES) $(TFM_FILES) $(LOG_FILES)
#PRE_INSTALL=$(MAKE) "$(ALL_GEN_FILES)"
INSTALLATION_DIR=$(datadir)/mf/
INSTALLATION_OUT_DIR3=$(datadir)/tfm
INSTALLATION_OUT_FILES3=$(TFM_FILES)
-# comment these out if you don't want pfa's to be generated
-# or you don't have metapost.
+# comment this out if you don't want pfa's to be generated
+#
+#MAKE_PFA_FILES=1
+#
+# making pfas takes a lot of CPU time. Let's skip it for now.
+
+
+ifdef MAKE_PFA_FILES
+
+PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa))
+ALL_GEN_FILES += $(PFA_FILES)
INSTALLATION_OUT_DIR4=$(datadir)/pfa
INSTALLATION_OUT_FILES4=$(PFA_FILES)
+pfa: $(PFA_FILES)
+
+endif
+
export MFINPUTS:=.:$(MFINPUTS)
default: $(ALL_GEN_FILES)
-$(outdir)/%.pfb:
- pktrace $(basename $(@F))
+$(outdir)/%.pfa: %.mf
+ pktrace --simplify --keep-trying $(basename $(@F))
+ mv $(basename $(@F)).pfa $(outdir)
+
+$(outdir)/%.pfb: %.mf
+ pktrace --simplify --keep-trying $(basename $(@F))
mv $(basename $(@F)).pfb $(outdir)
+
#%.afm:
# $(SHELL) $(depth)/buildscripts/tfmtoafm.sh $(shell basename $@ .afm)
# mv $@ $@.in