#out/%: $(outdir)/%
# cp -f $< $@
+
+localclean:
+ rm -f fonts.aux fonts.log feta*.tfm feta*.*pk
\font\title = cmbx12 scaled \magstep 4
\font\subtitle = cmr9
-\def\lilyfooter{Lily was here, 1.1.0}
+\def\lilyfooter{Lily was here}
\def\setchar#1#2{\hbox to\charwidth{\hss{#1\char#2}\hss}}
\def\charsperline{6}
\def\charwidth{60pt}
\def\listfont#1#2#3{
- \n=#2
- \advance\n by-1
- \advance\n by-\charsperline
+ \n=#2
+ \advance\n by-1
+ \advance\n by-\charsperline
\loop\ifnum\n<#3
- \advance\n by\charsperline
- \i=0
- {\vbox to\charheight{\vss\centerline{
- {\loop\ifnum\i<\charsperline
- \advance\i by1
- \advance\n by1
+ \advance\n by\charsperline
+ \i=0
+ {\vbox to\charheight{\vss\centerline{
+ {\loop\ifnum\i<\charsperline
+ \advance\i by1
+ \advance\n by1
{\setchar{#1}{\number\n}}
- \repeat}}}}\repeat}
+ \repeat}}}}\repeat}
\centerline{\title FETA}
-\centerline{\subtitle (definately not an abbreviation for Font-En-Tja)}
+\centerline{\subtitle (definitely not an abbreviation for Font-En-Tja)}
\vskip5mm
note={A rewrite of MusicTeX. After licensing quarrels, MusiXTeX has
been split into two (both still non-GNU GPL licensed) branches.},
}
-
+
+
+
+@Misc{opus,
+ title = {opus},
+html={http://www.sincrosoft.com}
+}
+
@misc{musixtex2,
title = {MusiXTeX},
HTML={http://www.gmd.de/Misc/Music/},
+
+ - diamond heads (probably really ugly).
+ - cross head.
+ - tweaked harmonic head a bit.
+ - property noteHeadStyle
+
+pl 36.mb2
+ - bf: timeSignatureStyle
+ - Added dynamic fz (forzando) to Lilypond
+ - bf: N.W.Gade, sfz -> fz
+
+pl 36.hwn1
+ - debian fixes.
+ - don't insert extra alignment space for empty stuff.
+ - Align_element derives from Axis_group_element
+ - junk all *{horizontal,vertical}* Score_element derived classes.
+ - G_staff_side_item::padding_f_ now generic property.
+ - some tweaking of beam & stem.
+ - junk pointerlist in Sources
+ - junk Stem::mult_i_, Stem::beam_gap_i_, G_staff_side_item::padding
+ Bar::at_line_start_b_, Key_item::c_position_, Note_head::type_str_,
+ Note_head::staff_size, Stem::xdir_
+
pl 36.mb1
- bf: N.W.Gade
+**************
+
pl 35.uu1
- more memory tweaks: don't do Score_element::line_l () when deleting lines.
- more generic properties.
pl 35.jcn1
- some ps fixes
+************
pl 35
pl 34.hwn2
.* BUGS
. * header for PS enteredby = "bla <bla@bar.com>"
+. * Hash_table::remove ().
+. * 1. With "lilypond -f ps": The black notes with ledger lines seem to
+> have extra "blobs" over and to the left of them and all the ledger
+> lines from the staff to the note will have a blob too. For example,
+> with the note "a4" there will be a black note at the ledger line where
+> "c" would be too. However, only the "a4" will have the extra blob.
+
. * ps/lily.ps
. * AFM for BlueSky AFM files.
+. * devise standard for functioning of Vertical_align_element.
+. * fix interstaff slurs & beams.
. * staff size for post/prebreaks
. * .ly files
. * input/star-spangled-banner
}
}
. * midi key.
-. *P.P.S. It can be cool in mudela-book to distinguish in pre,postMudelaExample,
+. * P.P.S. It can be cool in mudela-book to distinguish in pre,postMudelaExample,
whether MudelaExample is epsed or not: ( if this fragment is floating eps, than 1,
otherwise 2). say preMudelaExample[eps]{}, and change it in document body sometimes.
. * fix singleStaffBracket
. * fix height of / collisions with lyrics (chords),
see input/test/vertical-text.ly; input/test/repeat.ly
. * We need feta-din*.mf files for more sizes than 10.
-. * latex bla.tex broken (titles / \lilyfooter stuff?)
+. * latex bla.tex broken (titles / \lilyfooter stuff?
. * fix dynamics decently, ie. use kerning & ligatures.
. * support_l_arr_ empty in staff-margin's G_staff_side_item
. * minVerticalAlign for StaffGroups.
. * make "in-between" engraver (Tie, Extender)
. * make wide_spanner_engraver (line_group_spanne,r staff_symbol)
. * remove Interval dim_ from Dimension_cache and rename the struct.
-. * merge align_element and axis_element_group.
. * do scaled fonts generally
. * The Lilypond accidental symbols are available through the TeX macros,
\textflat, \textsharp and \textnatural defined in the init file
. * junk Script_def
. * include examples in RPM.
. * fix partial measures in meaningful way.
-. * working notehead style.
+
. * add scripts to bars eg. |^"bla"
. * relative mode for mi2mu
. * uniformise recent feta contributions.
about 2.5 whole notes? Is there a mechanism for getting this kind of
length?
-
-
. * fractional chord durs.
. * hang Item on Spanner
. * do --safe for PS output?
. * strip EXEs before installing
. * zip target for binary windows dist (JBR)
. * junking \skip req in lyrics
-. * percussion note heads
. * mi2mu empty staffs.
. * horizontal centering of dynamics
. * $DEPENDENCIES_OUTPUT support
organ you want to be able to give stop indications on the way
through, so the \property Voice.Instrument would be a stop,
and \property GrandStaff.instrument would be PipeOrgan...)
-. * revise the Score_priority_align_engraver concept. It sucks.
. * *.yo: fix pod manpage layout legacy
. * text-items clash with stems/beams
. * --include, -I option for ly2dvi (pass on to lily)
. * specify number of lines
.* INPUTLANGUAGE
+. * \rhythms 4 16 16 16 16; c c c c c -> c4 c16 etc.
. * Language:
. * \type -> \context ?
. * \translator -> ?
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=1
-PATCH_LEVEL=36
-MY_PATCH_LEVEL=mb1
+PATCH_LEVEL=37
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
+lilypond (1.1.36-1) unstable; urgency=low
+
+ * New upstream release.
+ * [debian/rules]:
+ - Make and install info files.
+ - Removed "CC=egcc" because the default gcc on all platforms is
+ now the one from egcs.
+ - Install *.png instead of *.xpm.
+ - Minor clean-ups.
+ * Added debian/compress to make sure *.png are not compressed.
+ * Added debian/doc-base and postinst/prerm for the LilyPond info files.
+
+ -- Anthony Fok <foka@debian.org> Sun, 21 Mar 1999 13:39:39 -0700
+
lilypond (1.1.31-1) unstable; urgency=low
* New upstream release.
-This package was debianized by Anthony Fok <foka@debian.org> on
+This package was Debianized by Anthony Fok <foka@debian.org> on
Wed, 6 Aug 1997 04:30:28 -0600
It was downloaded from
- ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.1/lilypond-1.1.31.tar.gz
-
-It is also available from:
-
- ftp://sca.uwaterloo.ca/pub/lilypond/development/
+ ftp://ftp.lilypond.org/pub/LilyPond/v1.1/lilypond-1.1.36.tar.gz
For more information about GNU LilyPond, please visit:
http://www.cs.uu.nl/~hanwen/lilypond/
echo " Running /usr/bin/mktexlsr ..."
/usr/bin/mktexlsr
+install-info --description='LilyPond, the GNU Project music typesetter' \
+ --section "Music" "Music" \
+ --quiet /usr/info/lilypond.info.gz
+
#DEBHELPER#
# If we are the last package to use the old /usr/lib/texmf/doc,
r = debian/tmp
d = usr/doc/$(package)
-strayfiles := stepmake/bin/*.pyc \
- stepmake/stepmake/stepmake \
- stepmake/stepmake/bin \
- stepmake/stepmake/aclocal.m4 \
- stepmake/GNUmakefile \
- GNUmakefile \
- config.h \
- wwwlist \
- Documentation/tex/fonts.aux \
- Documentation/tex/fonts.log \
- Documentation/tex/feta*.tfm \
- Documentation/tex/feta*.*pk
-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
build-stamp:
dh_testdir
- CC=egcc ./configure --disable-checking --disable-debugging \
+ ./configure --disable-checking --disable-debugging \
--enable-printing --prefix=/usr --disable-optimise \
--enable-shared
$(MAKE) all
- # $(MAKE) htmldoc
+ $(MAKE) -C Documentation/pictures pngs
# Remove the "-" and the "-k" once the \times segfault
# bug is fixed. (lilypond-1.1.31, 1999-02-17)
-$(MAKE) -k -C Documentation/tex dvi
+ -$(MAKE) -C Documentation info
+
+ # $(MAKE) htmldoc
touch build-stamp
dh_testroot
rm -f build-stamp install-stamp
-$(MAKE) distclean
+ rm -f stepmake/stepmake/aclocal.m4
dh_clean
- # Remove the following line once the *.make files are fixed
- rm -f $(strayfiles)
-
# Correct the owner of the out/dummy.dep files when built with sudo.
if [ -n "$$SUDO_USER" -a -n "$$SUDO_GID" ]; then \
find . -user root | xargs -r chown --dereference $$SUDO_USER.$$SUDO_GID; \
ln -s ../../../share/lilypond/tex $(r)/usr/lib/texmf/tex/lilypond
ln -s ../../../../../share/lilypond/mf $(r)/usr/lib/texmf/fonts/source/public/lilypond
ln -s ../../../../../share/lilypond/afm $(r)/usr/lib/texmf/fonts/afm/public/lilypond
- ln -s ../../../../../share/lilypond/afm $(r)/usr/lib/texmf/fonts/tfm/public/lilypond
+ ln -s ../../../../../share/lilypond/tfm $(r)/usr/lib/texmf/fonts/tfm/public/lilypond
touch install-stamp
dh_testdir
dh_testroot
cp -av mudela-mode.el $(r)/usr/lib/emacs/site-lisp
- dh_installdocs ANNOUNCEMENT ANNOUNCE-0.1 NEWS-* DEDICATION \
+ dh_installdocs ANNOUNCE* NEWS-* DEDICATION \
BUGS TODO *.txt \
- Documentation/pictures/*.xpm \
+ Documentation/pictures/out/*.png \
Documentation/out/*.txt \
Documentation/tex/*.doc \
Documentation/tex/*.bib \
# dh_installmanpages
# dh_undocumented
dh_installchangelogs -k NEWS
-# dh_strip
+ dh_strip
dh_compress
dh_fixperms
dh_suidregister
--- /dev/null
+/*
+ cons.hh -- declare LISP like datatypes
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef CONS_HH
+#define CONS_HH
+
+
+template<class T>
+class Cons
+{
+public:
+ T * car_;
+ Cons * next_;
+ Cons ()
+ {
+ car_=0;
+ next_ =0;
+ }
+ Cons (T*t, Cons<T>*c)
+ {
+ car_ = t;
+ next_ = c;
+ }
+ virtual ~Cons ()
+ {
+ delete next_;
+ }
+};
+
+template<class T>
+class Killing_cons : public Cons<T>
+{
+public:
+ Killing_cons (T *t, Cons<T> *p)
+ : Cons<T>( t,p)
+ {
+ }
+ virtual ~Killing_cons ();
+};
+
+
+/// remove the link pointed to by *p.
+template<class T>
+Cons<T> *remove_cons (Cons<T> **pp)
+{
+ Cons<T> *knip = *pp;
+ *pp = (*pp)->next_;
+ knip->next_ = 0;
+ return knip;
+}
+
+/**
+
+ Invariants:
+
+ (*tail_) is either the head_ pointer, or a next_ pointer from the list.
+
+ **tail_ == NULL
+ */
+
+template<class T>
+class Cons_list
+{
+public:
+ Cons<T> * head_;
+ Cons<T> ** tail_;
+ Cons_list () { init_list (); }
+ void init_list () {head_ =0; tail_ = &head_; }
+ void append (Cons<T> *c)
+ {
+ assert (!c->next_);
+ *tail_ = c;
+ while (*tail_)
+ tail_ = &(*tail_)->next_;
+ }
+ /**
+ PRE: *pp should either be the head_ pointer, or the next_ pointer
+ from a list cell.
+ */
+ Cons<T> *remove_cons (Cons<T> **pp)
+ {
+ if (&(*pp)->next_ == tail_)
+ tail_ = pp;
+
+ return ::remove_cons (pp);
+ }
+ void junk ()
+ {
+ delete head_;
+ head_ =0;
+ }
+ ~Cons_list () { junk (); }
+};
+
+
+template<class T>
+void copy_killing_cons_list (Cons_list<T>&, Cons<T> *src);
+template<class T>
+void
+clone_killing_cons_list (Cons_list<T>&, Cons<T> *src);
+
+template<class T> int cons_list_size_i (Cons<T> *l)
+{
+ int i=0;
+ while (l)
+ {
+ l = l->next_;
+ i++;
+ }
+ return i;
+}
+
+
+
+
+#endif /* CONS_HH */
+
unsigned int int_hash (int);
unsigned long prime_list (int idx);
+
+template<class K>
+unsigned int
+pointer_hash (K *p)
+{
+ return int_hash ((unsigned int) p);
+}
+
template<class K, class V>
struct Hash_table_entry
{
/// remove #s# from the hash table.
V remove (K s, unsigned int initial_hash)
{
- assert (false); // Untested routine.
int sz =dict_arr_.size ();
int i = initial_hash % sz;
int j = 0;
V retval;
+
+ /*
+ duplicate with lookup, but we need value of j
+ */
+
while (j <= sz/2 && dict_arr_[i].key_ != s)
{
assert (!dict_arr_[i].free_b_);
-
-
+
j ++;
i = (i + j*j) % sz;
}
V const_elem (K k) const
{
V retval;
- if (elem_b (k))
- retval = ((Hash_table<K,V>*)this)->elem (k);
+ assert (elem_b (k));
+ retval = ((Hash_table<K,V>*)this)->elem (k);
return retval;
}
V& operator [] (K k)
--- /dev/null
+/*
+ killing-cons.tcc -- declare Killing_cons
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef KILLING_CONS_TCC
+#define KILLING_CONS_TCC
+
+#include "cons.hh"
+
+template<class T>
+Killing_cons<T>::~Killing_cons ()
+{
+ delete car_;
+}
+
+template<class T>
+void
+copy_killing_cons_list (Cons_list<T> &dest, Cons<T> *src)
+{
+ for (; src; src = src->next_)
+ {
+ T *t = new T(*src->car_);
+ dest.append ( new Killing_cons<T> (t, 0));
+ }
+}
+
+template<class T>
+void
+clone_killing_cons_list (Cons_list<T> & dest, Cons<T> *src)
+{
+ for (; src; src = src->next_)
+ {
+ T *t = src->car_->clone ();
+ dest.append (new Killing_cons<T> (t, 0));
+ }
+}
+
+#endif /* KILLING_CONS_TCC */
+
--- /dev/null
+basloopje = \notes\relative c{
+ [d,8 a' d f] [a\translator Staff=treble d f d] \translator Staff=bass
+}
+
+
+
+lower = \type Voice=two \notes \relative c{
+ < \basloopje >
+}
+\score {
+ \type PianoStaff <
+\notes \type Staff = treble { c1 }
+
+ \type Staff = bass <
+ \clef bass;
+ \lower
+ >
+ >
+
+ \paper {
+ gourlay_maxmeasures = 4.;
+ indent = 8.\mm;
+ textheight = 295.\mm;
+
+ % no slur damping
+ slur_slope_damping = 100.0;
+ }
+ \midi {
+ \tempo 4 = 54;
+ }
+}
+
- \version "1.0.14";
+\version "1.0.14";
onestaff = \type Staff = foo\notes {
\property Staff.instr = instr
}}
%\score {\stscore}
-\score {\scscore}
+\score {\scscore
+\header { title = "bar scripts"; }
+}
--- /dev/null
+
+\score {
+\notes \relative c {
+\include "noteheadstyle.fly"
+}\header { title = "notehead style"; }
+}
+
+\score {
+\notes \relative c {
+\include "number-staff-lines.fly"
+}\header { title = "number of staff lines"; }
+}
+
+\include "bar-scripts.ly"
+
+\include "font20.ly"
FontBody= \notes\transpose c''{
\bar "|:";
\time 4/4;
- \type Staff < { \stemup e'\longa a\breve | }
- { \stemdown
+ \type Staff < \type Voice = VB { \stemup e'\longa a\breve | }
+ \type Voice = VA { \stemdown
c1 \clef "bass"; b,, \clef "violin"; c' a'
c2 \clef "alto"; g c' \clef "violin"; a'
} >
c4 g c' a' \bar ":|";
a\ppp-\upbow a\pp-\downbow a\p^\turn a\mp^\fermata |
a\mf_\fermata a\f-\stopped a\ff-\open a\fff^\trill|
- a\fp-\reverseturn a4.\sf a4.\sfz | % a\fz a\rf
+ a\fp-\reverseturn a4.\sf a4.\sfz | a\fz % a\rf
[c8-\prall c-\mordent] [a'-\prallmordent a'-\prallprall]
[c-\upprall a'-\downprall] [a' c] |
[c \< d e f] [as' ges' f' e']
\clef "bass";
r\longa * 1/4 r\breve *1/2
r1 r2 r4 r8 r16 r32 r64 r128 r128 |
- \type Staff < { \stemup r2 r2} {\stemdown c c }>
- \type Staff < { \stemup c,,1 } {\stemdown r1}>
- \stemboth
+ \type Staff < \type Voice = VA { \stemup r2 c'2 c,,,1 }
+ \type Voice = VB {\stemdown r2 c2 r1 }>
+ \stemboth
\clef "violin";
e8_. g'8-> e16^^ g'16_^
e32 _| g'32^| g''32-\ltoe g''32-\lheel
\transpose c'{
\time 4/4;
\property Voice . textstyle = "finger"
- c4^"1" d^"2" e^"3" f^"4" g^"5"
-
+ \property Voice . noteHeadStyle = "diamond"
+ c1^"1" d2^"2" e4^"3"
+ \property Voice . noteHeadStyle = "cross"
+ f4^"4"
+ \property Voice . noteHeadStyle = "harmonic"
+ g4^"5"
+ \property Voice . noteHeadStyle = ""
% Music to the Martians!
< bes4^"6" e_"7" c_"8" >
a^"0"_"9"
}
\version "1.0.14";
+\include "paper16.ly"
\include "font-body.ly"
\score{
\paper{
% don't change this.
% otherwise 16pt and 20pt layouts differ.
+ \paper_sixteen
linewidth = 12.5 \cm;
gourlay_maxmeasures =5.;
}
g g g g
}
-toeters = \type StaffGroup = xtoeters <
- \type Staff = toeters <
+toeters = \type Staff = toeters <
\toeter_i
\toeter_ii
- >
>
zager = \type Staff = zager \notes \relative c {
--- /dev/null
+
+c''4 c2 c8 c16 c16 c1
+\property Voice.noteHeadStyle = "diamond"
+c4 c2 c8 c16 c16 c1
+\property Voice.noteHeadStyle = "transparent"
+c4 c2 c8 c16 c16 c1
+\property Voice.noteHeadStyle = "cross"
+c4 c2 c8 c16 c16 c1
+\property Voice.noteHeadStyle = "harmonic"
+c4 c2 c8 c16 c16 c1
-c c c \property Staff . numberOfStaffLines = 3
+c' c c \property Staff . numberOfStaffLines = 3
#ifndef SOURCE_HH
#define SOURCE_HH
-
+#include "cons.hh"
#include "proto.hh"
-#include "plist.hh"
+
class Sources
{
private:
const File_path * path_C_;
- Pointer_list<Source_file*> sourcefile_p_list_;
+ Cons<Source_file> *sourcefile_p_list_;
bool binary_b_ ;
};
#include <assert.h>
-
+#include "killing-cons.tcc"
#include "binary-source-file.hh"
#include "string.hh"
#include "proto.hh"
-#include "plist.hh"
#include "source-file.hh"
#include "source.hh"
#include "file-path.hh"
void
Sources::add (Source_file* sourcefile_p)
{
- sourcefile_p_list_.bottom ().add (sourcefile_p);
+ sourcefile_p_list_ = new Killing_cons<Source_file> (sourcefile_p, sourcefile_p_list_);
}
/**
Source_file*
Sources::sourcefile_l (char const* ch_C)
{
- PCursor<Source_file*> sourcefile_l_pcur (sourcefile_p_list_.top ());
- for (; sourcefile_l_pcur.ok (); sourcefile_l_pcur++)
- if (sourcefile_l_pcur->in_b (ch_C))
- return *sourcefile_l_pcur;
+
+ for (Cons<Source_file> *i = sourcefile_p_list_; i; i = i->next_)
+ if (i->car_->in_b (ch_C))
+ return i->car_;
return 0;
}
+++ /dev/null
-/*
- template.cc -- instantiate Pointer_list<Source_file*>
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "config.hh"
-#include "source-file.hh"
-#include "plist.tcc"
-#include "pcursor.tcc"
-#include "cursor.tcc"
-#include "list.tcc"
-
-#ifdef NEED_EXPLICIT_INSTANTIATION
-LIST_INSTANTIATE (void *);
-#endif
-
-POINTERLIST_INSTANTIATE (Source_file);
-
Molecule*
Abbreviation::do_brew_molecule_p () const
{
- Real interbeam_f = paper_l ()->interbeam_f (stem_l_->mult_i_);
- Real w = 1.5 * lookup_l ()->ball (2).dim_.x ().length ();
+ Beam * b = stem_l_->beam_l_;
+ int mult =0;
+ if (b)
+ {
+ Stem_info i = b->get_stem_info (stem_l_);
+ mult = i.mult_i_;
+ }
+
+ Real interbeam_f = paper_l ()->interbeam_f (mult);
+ Real w = 1.5 * lookup_l ()->notehead (2, "").dim_.x ().length ();
Real space = stem_l_->staff_line_leading_f ();
Real internote_f = space/2;
abeam_p_->multiple_i_ = s->flag_i_;
if (s->type_i () != 1) // no abbrev gaps on half note
- s->beam_gap_i_ = s->flag_i_ - ((s->type_i () >? 2) - 2);
+ s->set_elt_property (beam_gap_scm_sym,
+ gh_int2scm(s->flag_i_ - ((s->type_i () >? 2) - 2)));
abeam_p_->add_stem (s);
}
Adobe_font_char_metric const &
Adobe_font_metric::find_char (String nm, bool warn) const
{
- if (warn && !name_to_metric_dict_.elem_b (nm))
+ if (!name_to_metric_dict_.elem_b (nm))
{
- warning (_f ("can't find character called `%s'", nm.ch_C()));
+ if (warn)
+ {
+ warning (_f ("can't find character called `%s'", nm.ch_C()));
+ }
return dummy_static_char_metric;
}
#include "interval.hh"
#include "direction.hh"
#include "debug.hh"
+#include "hash-table-iter.hh"
struct Align_element_content {
- Score_element * elem_l_;
+ Graphical_element * elem_l_;
int priority_i_;
static int compare (Align_element_content const &h1,
{
return h1.priority_i_ - h2.priority_i_;
}
- Align_element_content (Score_element *elem_l, int p)
+ Align_element_content (Graphical_element *elem_l, int p)
{
priority_i_ = p;
elem_l_ = elem_l;
void
Align_element::add_element (Score_element*el_l)
{
- int p = priority_i_arr_.size ();
+ int p = elem_l_arr_.size ();
add_element_priority (el_l, p);
}
Align_element::add_element_priority (Score_element *el, int p)
{
assert (! contains_b (el));
- elem_l_arr_.push (el);
- priority_i_arr_.push (p);
+ Axis_group_element::add_element (el);
+ priority_i_hash_[el] = p;
add_dependency (el);
}
Align_element::do_substitute_element_pointer (Score_element*o,
Score_element*n)
{
- int i;
- while ((i = elem_l_arr_.find_i (o))>=0)
- if (n)
- elem_l_arr_[i] = n;
- else
- elem_l_arr_.del (i);
-
+ Axis_group_element :: do_substitute_element_pointer (o,n);
if (o == center_l_)
{
center_l_ = n;
}
+ if (priority_i_hash_.elem_b (o))
+ {
+ priority_i_hash_[n] = priority_i_hash_[o];
+ /*
+ Huh? It seems the old pointers are still used. Why?
+ */
+ // priority_i_hash_.remove (o);
+ }
}
void
Align_element::do_post_processing()
{
- if (axis_ == Y_AXIS)
+ if (axis () == Y_AXIS)
do_side_processing ();
}
void
Align_element::do_pre_processing ()
{
- if (axis_ == X_AXIS)
+ if (axis () == X_AXIS)
do_side_processing ();
}
{
sort_elements ();
Array<Interval> dims;
-
+
+ Link_array<Score_element> elems;
for (int i=0; i < elem_l_arr_.size(); i++)
{
- Interval y = elem_l_arr_[i]->extent(axis_) ;
- if (y.empty_b())
- y = Interval (0,0);
-
- dims.push (y);
+ Interval y = elem_l_arr_[i]->extent(axis ());
+ if (!y.empty_b())
+ {
+ dims.push (y);
+ Score_element *e =dynamic_cast<Score_element*>(elem_l_arr_[i]);
+ elems.push (e);
+ }
}
Real where_f=0;
Real center_f = 0.0;
- for (int i=0 ; i < elem_l_arr_.size(); i++)
+ for (int i=0 ; i < elems.size(); i++)
{
Real dy = - stacking_dir_ * dims[i][-stacking_dir_];
if (i)
<? threshold_interval_[BIGGER];
}
-
if (!i && align_dir_ == LEFT)
center_f = where_f;
- else if (align_dir_ == CENTER && elem_l_arr_[i] == center_l_)
+ else if (align_dir_ == CENTER && elems[i] == center_l_)
center_f = where_f;
where_f += stacking_dir_ * dy;
- elem_l_arr_[i]->translate_axis (where_f, axis_);
+ elems[i]->translate_axis (where_f, axis ());
}
+ if (dims.size ())
+ where_f += dims.top ()[stacking_dir_];
if (align_dir_ == RIGHT)
center_f = where_f;
-
+ else if (align_dir_ == CENTER && !center_l_)
+ center_f = where_f / 2;
+
if (center_f)
- for (int i=0 ; i < elem_l_arr_.size(); i++)
- elem_l_arr_[i]->translate_axis (- center_f, axis_);
+ translate_axis ( - center_f, axis ());
+
+ dim_cache_[axis ()].invalidate ();
}
Align_element::Align_element()
{
+ ordered_b_ = true;
threshold_interval_ = Interval (0, Interval::infinity ());
- set_elt_property (transparent_scm_sym, SCM_BOOL_T);
- set_empty (true);
stacking_dir_ = DOWN;
- align_dir_ = LEFT;
- axis_ = X_AXIS;
+ align_dir_ = CENTER;
center_l_ =0;
+ priority_i_hash_.hash_func_ = pointer_hash;
+}
+
+Axis
+Align_element::axis () const
+{
+ return axes_[0];
+}
+
+void
+Align_element::set_axis (Axis a)
+{
+ set_axes (a,a);
}
Align_element::sort_elements ()
{
Array<Align_element_content> content;
- for (int i =0; i < elem_l_arr_.size(); i++)
- content.push (Align_element_content (elem_l_arr_[i], priority_i_arr_[i]));
+ for (int i =0; i < elem_l_arr_.size(); i++)
+ {
+ Score_element * e = dynamic_cast<Score_element*> (elem_l_arr_[i]);
+ assert (priority_i_hash_.elem_b (e));
+ int p = priority_i_hash_[e];
+ content.push (Align_element_content (e, p));
+ }
content.sort (Align_element_content::compare);
elem_l_arr_.clear();
- priority_i_arr_.clear();
+ priority_i_hash_.clear();
for (int i =0; i < content.size(); i++)
{
elem_l_arr_.push (content[i].elem_l_);
- priority_i_arr_.push (content[i].priority_i_);
}
}
Score_element*
Align_element::get_elt_by_priority (int p) const
{
- for (int i=0; i < priority_i_arr_.size (); i++)
+ for (Hash_table_iter<Score_element*, int> i(priority_i_hash_); i.ok (); i++)
{
- if (priority_i_arr_[i] == p)
- return elem_l_arr_[i];
+ if (i.val () == p)
+ return i.key();
}
return 0;
}
+
+int
+Align_element::get_priority (Score_element* e) const
+{
+ if ( priority_i_hash_.elem_b (e))
+ return priority_i_hash_[e];
+ else
+ return elem_l_arr_.find_i (e);
+}
if (prop.isnum_b ())
beam_p->quantisation_ = (Beam::Quantisation)(int)prop;
- // must set minVerticalAlign = = maxVerticalAlign to get sane results
- // see input/test/beam-interstaff.ly
- prop = get_property ("minVerticalAlign", 0);
- if (prop.isnum_b ())
- beam_p->vertical_align_drul_[MIN] = prop;
-
- prop = get_property ("maxVerticalAlign", 0);
- if (prop.isnum_b ())
- beam_p->vertical_align_drul_[MAX] = prop;
-
announce_element (Score_element_info (beam_p, 0));
return beam_p;
}
--- /dev/null
+/*
+ axis-align-item.cc -- implement
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#include "axis-align-item.hh"
+
+Axis_align_item::Axis_align_item ()
+{
+}
--- /dev/null
+/*
+ axis-align-spanner.cc -- implement
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+#include "axis-align-spanner.hh"
+
+Axis_align_spanner::Axis_align_spanner()
+{
+}
Graphical_axis_group::do_print();
}
-Axis_group_element::Axis_group_element(Axis a1, Axis a2)
- : Graphical_axis_group (a1,a2)
+Axis_group_element::Axis_group_element()
{
set_elt_property (transparent_scm_sym, SCM_BOOL_T);
}
-Axis_group_element::Axis_group_element ()
- : Graphical_axis_group (X_AXIS, Y_AXIS)
+void
+Axis_group_element::set_axes (Axis a1, Axis a2)
{
- set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+ Graphical_axis_group::set_axes (a1,a2);
+ dim_cache_[X_AXIS].set_empty ((a1 != X_AXIS && a2 != X_AXIS));
+ dim_cache_[Y_AXIS].set_empty ((a1 != Y_AXIS && a2 != Y_AXIS));
}
+void
+Axis_group_element::do_substitute_element_pointer (Score_element*o,
+ Score_element*n)
+{
+ int i;
+ while ((i = elem_l_arr_.find_i (o))>=0)
+ if (n)
+ elem_l_arr_[i] = n;
+ else
+ elem_l_arr_.del (i);
+}
+
+Interval
+Axis_group_element::do_height () const
+{
+ return Graphical_axis_group::extent (Y_AXIS);
+}
+Interval
+Axis_group_element::do_width () const
+{
+ return Graphical_axis_group::extent (X_AXIS);
+}
}
-
-
+Interval
+Axis_group_spanner::do_width () const
+{
+ return Spanner::do_width ();
+}
}
-void
-Bar_engraver::acknowledge_element (Score_element_info i)
-{
- if (Bar *b = dynamic_cast<Bar *> (i.elem_l_))
- {
- // only bar-engraver should create bars
- assert (0);
- }
-}
+
void
Bar_engraver::create_bar ()
Scalar prop = get_property ("barAtLineStart", 0);
if (prop.to_bool ())
{
- bar_p_->at_line_start_b_ = true;
+ bar_p_->set_elt_property (at_line_start_scm_sym, SCM_BOOL_T);
}
announce_element (Score_element_info (bar_p_, bar_req_l_));
}
Scalar padding = get_property (type_ + "ScriptPadding", 0);
if (padding.length_i() && padding.isnum_b ())
{
- staff_side_p_->padding_f_ = Real(padding);
+ staff_side_p_->set_elt_property (padding_scm_sym, gh_double2scm(Real(padding)));
}
{
set_elt_property (breakable_scm_sym, SCM_BOOL_T);
type_str_ = "|";
- at_line_start_b_ = false;
}
void
{":|", ":|", ""},
{"||", "||", ""},
{".|.", ".|.", ""},
- {"", "scorebar", "|"},
+ {"", "scorebar", "scorepostbreak"},
{"", "{", "{"},
{"", "[", "["},
{0,0,0}
if (bar_breaks[i][1] == type_str_)
{
type_str_ = bar_breaks[i][break_status_dir ()+1];
- if (at_line_start_b_ && (break_status_dir () == RIGHT) && (type_str_ == ""))
+ if (remove_elt_property (at_line_start_scm_sym)!= SCM_BOOL_F
+ && (break_status_dir () == RIGHT) && (type_str_ == ""))
{
type_str_ = "|";
}
#include "lily-guile.hh"
#include "span-bar.hh"
#include "base-span-bar-engraver.hh"
-#include "vertical-align-spanner.hh"
+#include "axis-align-spanner.hh"
Base_span_bar_engraver::Base_span_bar_engraver()
{
spanbar_p_-> type_str_ = bar_l_arr_[0]->type_str_;
}
}
- else if (dynamic_cast<Vertical_align_spanner *> (i.elem_l_)
+ else if (dynamic_cast<Axis_align_spanner *> (i.elem_l_)
&& i.origin_grav_l_arr_.size() <= 2)
{
- valign_l_ = dynamic_cast<Vertical_align_spanner *> (i.elem_l_);
+ valign_l_ = dynamic_cast<Axis_align_spanner *> (i.elem_l_);
}
}
if (prop.isnum_b ())
beam_p_->quantisation_ = (Beam::Quantisation)(int)prop;
- // must set minVerticalAlign == maxVerticalAlign to get sane results
- // see input/test/beam-interstaff.ly
- prop = get_property ("minVerticalAlign", 0);
- if (prop.isnum_b ())
- beam_p_->vertical_align_drul_[MIN] = prop;
-
- prop = get_property ("maxVerticalAlign", 0);
- if (prop.isnum_b ())
- beam_p_->vertical_align_drul_[MAX] = prop;
-
announce_element (Score_element_info (beam_p_, reqs_drul_[START]));
}
}
/*
[TODO]
- * centre beam symbol
+ * center beam symbol
* less hairy code
* redo grouping
- */
+
+TODO:
+
+The relationship Stem <-> Beam is way too hairy. Let's figure who
+needs what, and what information should be available when.
+
+ */
#include <math.h>
-#include "p-col.hh"
-#include "array.hh"
#include "proto.hh"
#include "dimensions.hh"
#include "beam.hh"
-#include "abbreviation-beam.hh"
#include "misc.hh"
#include "debug.hh"
#include "molecule.hh"
left_y_ = 0;
quantisation_ = NORMAL;
multiple_i_ = 0;
- vertical_align_drul_[MIN] = 0;
- vertical_align_drul_[MAX] = -1;
}
void
Beam::add_stem (Stem*s)
{
+#if 0
+ if (!stems_.size ())
+ {
+ dim_cache_[Y_AXIS].parent_l_ = &s->dim_cache_[Y_AXIS];
+ }
+#endif
stems_.push (s);
s->add_dependency (this);
s->beam_l_ = this;
set_bounds (RIGHT,s);
}
+Stem_info
+Beam::get_stem_info (Stem *s)
+{
+ Stem_info i;
+ for (int i=0; i < sinfo_.size (); i++)
+ {
+ if (sinfo_[i].stem_l_ == s)
+ return sinfo_[i];
+ }
+ assert (false);
+ return i;
+}
+
Molecule*
Beam::do_brew_molecule_p () const
{
// correct if last note (and therefore reference point of beam)
// is on different staff
- Stem_info si = sinfo_.top ();
+ Stem_info si = sinfo_.top ();
mol_p->translate_axis (-si.interstaff_f_ * si.stem_l_->staff_line_leading_f ()/2,
Y_AXIS);
Stem_info si = sinfo_[0];
Real w= (si.stem_l_->note_delta_f () + extent (X_AXIS).length ())/2.0;
- return Offset (w, (left_y_ + w* slope_f_) *
+ return Offset (w, ( w* slope_f_) *
si.stem_l_->staff_line_leading_f ()/2);
}
void
Beam::solve_slope ()
{
- /*
- should use minimum energy formulation (cf linespacing)
- */
assert (sinfo_.size () > 1);
DOUT << "Beam::solve_slope: \n";
for (int i=0; i < stems_.size (); i++)
{
Stem *s = stems_[i];
- s->mult_i_ = multiple_i_;
+
s->set_default_extents ();
if (s->invisible_b ())
continue;
if (s->invisible_b ())
continue;
- Stem_info info (s);
+ Stem_info info (s, multiple_i_);
if (leftx == 0)
leftx = info.x_;
info.x_ -= leftx;
a.translate_axis( - stemdx/2, X_AXIS);
int j = 0;
Real gap_f = 0;
- if (here->beam_gap_i_)
+
+ SCM gap = get_elt_property (beam_gap_scm_sym);
+ if (gap != SCM_BOOL_F)
{
- int nogap = rwholebeams - here->beam_gap_i_;
+ int gap_i = gh_scm2int (gap);
+ int nogap = rwholebeams - gap_i;
+
for (; j < nogap; j++)
{
Molecule b (a);
#include "bezier.hh"
#include "main.hh"
-
-
Bow::Bow ()
{
dy_f_drul_[LEFT] = dy_f_drul_[RIGHT] = 0.0;
dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0;
- dash_i_ = 0;
- interstaff_f_ = 0;
- vertical_align_drul_[MIN] = 0;
- vertical_align_drul_[MAX] = -1;
}
Molecule*
Molecule* mol_p = new Molecule;
mol_p->add_molecule (a);
- mol_p->translate_axis (-interstaff_f_, Y_AXIS);
return mol_p;
}
Real y = c[i][Y_AXIS];
iv.unite (Interval (y,y));
}
- iv -= interstaff_f_;
return iv;
}
Break_align_item::do_pre_processing()
{
align_dir_ = break_status_dir();
- threshold_interval_[SMALLER] = 1.5 PT;
flip (&align_dir_);
- Horizontal_align_item::do_pre_processing();
+ Axis_align_item::do_pre_processing();
}
-
+Break_align_item::Break_align_item ()
+{
+ stacking_dir_ = RIGHT;
+ threshold_interval_[SMALLER] = 1.5 PT;
+ set_axis (X_AXIS);
+}
#include "chord.hh"
#include "warn.hh"
-// doesn't seem common, and we should know about this during purple hit
+// doesn't seem common, and we should know about this during parsing
// #define INVERSION_ADDED_AS_BASE 1
Chord::Chord (Array<Musical_pitch> pitch_arr)
Collision::Collision()
{
+ set_axes (X_AXIS, Y_AXIS);
}
void
}
+
+Dot_column::Dot_column ()
+{
+ set_axes(X_AXIS,X_AXIS);
+}
#include "staff-symbol.hh"
#include "note-head.hh"
#include "debug.hh"
+#include "align-element.hh"
Encompass_info::Encompass_info ()
{
if (stem_l->dir_ != dir)
o_.y () += 1.0 * internote * dir;
- if (slur_l->encompass_arr_.size ()
- && stem_l->staff_symbol_l () != slur_l->encompass_arr_[0]->stem_l_->staff_symbol_l ())
+
+ Dimension_cache *common = note->common_group (slur_l, Y_AXIS);
+ Align_element * align = dynamic_cast<Align_element*> (common->element_l ());
+ if (align && align->axis() == Y_AXIS)
{
- if (slur_l->vertical_align_drul_[MIN] !=
- slur_l->vertical_align_drul_[MAX])
- warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff slurs may be broken"));
- interstaff_f_ = slur_l->vertical_align_drul_[MIN];
- /* urg, guess staff order */
- int d = note->head_l_arr_.top ()->position_i_
- - slur_l->encompass_arr_[0]->head_l_arr_[0]->position_i_;
- if (abs (d > 3))
- interstaff_f_ *= sign (d);
- else if (stem_l->chord_start_f () >
- slur_l->encompass_arr_[0]->stem_l_->chord_start_f ())
+ if (align->threshold_interval_[MIN] !=
+ align->threshold_interval_[MAX])
+ warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"));
+
+ interstaff_f_ = align->threshold_interval_[MIN];
+
+ Dimension_cache * slur_refpoint = &slur_l->dim_cache_[Y_AXIS];
+ Dimension_cache * note_refpoint = ¬e->dim_cache_[Y_AXIS];
+
+ while (slur_refpoint->parent_l_ != common)
+ slur_refpoint = slur_refpoint->parent_l_;
+ while (note_refpoint->parent_l_ != common)
+ note_refpoint = note_refpoint->parent_l_;
+
+
+ int slur_prio =
+ align->get_priority (dynamic_cast<Score_element*> (slur_refpoint->element_l ()));
+ int stem_prio =
+ align->get_priority (dynamic_cast<Score_element*> (note_refpoint->element_l ()));
+
+ /*
+ our staff is lower -> interstaff_f_ *= -1
+ */
+ // ? Is this OK?
+ if (slur_prio < stem_prio)
interstaff_f_ *= -1;
o_.y () += interstaff_f_;
}
dir_ = CENTER;
to_position_l_ = 0;
set_elt_property (transparent_scm_sym, SCM_BOOL_T);
- padding_f_ = 0;
+
axis_ = Y_AXIS;
}
common = dim_cache_[axis_].parent_l_;
}
Interval sym_dim = to_position_l_->extent (axis_);
- Real off = dim_cache_[axis_].relative_coordinate (common) - padding_f_ * dir_;
-
+ Real off = dim_cache_[axis_].relative_coordinate (common);
+
+ SCM pad = remove_elt_property (padding_scm_sym);
+ if (pad != SCM_BOOL_F)
+ {
+ off -= gh_scm2double (SCM_CDR(pad)) * dir_;
+ }
dim_cache_[axis_].set_offset (dim[dir_] - sym_dim[-dir_] - off);
}
(c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
+
#include "interval.hh"
#include "graphical-axis-group.hh"
#include "axis-group-element.hh"
Graphical_axis_group at one time. */
Graphical_axis_group::Graphical_axis_group (Graphical_axis_group const&s)
{
- axes_[0] = s.axes_[0];
- axes_[1] = s.axes_[1];
+ axes_ = s.axes_;
+ ordered_b_ = s.ordered_b_;
}
bool
for (int i = 0; i < 2; i++)
{
Axis a = axes_[i];
+ assert (a>=0);
Dimension_cache * &d = e->dim_cache_[a].parent_l_;
assert (!d || d == &dim_cache_[a]);
d = &dim_cache_[a];
Graphical_axis_group::remove_element (Graphical_element*e)
{
assert (contains_b (e));
- elem_l_arr_.unordered_substitute (e,0);
+ if (ordered_b_)
+ elem_l_arr_.substitute (e,0);
+ else
+ elem_l_arr_.unordered_substitute (e,0);
for (int i=0; i< 2; i++)
{
#endif
}
-Graphical_axis_group::Graphical_axis_group (Axis a1, Axis a2)
+Graphical_axis_group::Graphical_axis_group ()
{
- axes_[0] = a1;
- axes_[1] = a2;
+ ordered_b_ = false;
+ axes_[0] = -1 ;
+ axes_[1] = -1 ;
}
-
+void
+Graphical_axis_group::set_axes (Axis a1, Axis a2)
+{
+ axes_[0] = a1 ;
+ axes_[1] = a2 ;
+}
void
Hara_kiri_line_group_engraver::create_line_spanner ()
{
- staffline_p_ = new Hara_kiri_vertical_group_spanner;
+ staffline_p_ = new Hara_kiri_group_spanner;
+
}
void
{
if (Rhythmic_head *h = dynamic_cast<Rhythmic_head *> (e))
{
- dynamic_cast<Hara_kiri_vertical_group_spanner*> (staffline_p_)
+ dynamic_cast<Hara_kiri_group_spanner*> (staffline_p_)
->add_interesting_item (h);
}
Line_group_engraver_group::typeset_element (e);
#include "debug.hh"
#include "item.hh"
-Hara_kiri_vertical_group_spanner::Hara_kiri_vertical_group_spanner()
+Hara_kiri_group_spanner::Hara_kiri_group_spanner()
{
+ set_axes(Y_AXIS,Y_AXIS);
}
void
-Hara_kiri_vertical_group_spanner::add_interesting_item (Item* n)
+Hara_kiri_group_spanner::add_interesting_item (Item* n)
{
add_dependency (n);
interesting_items_.push (n);
}
void
-Hara_kiri_vertical_group_spanner::do_post_processing ()
+Hara_kiri_group_spanner::do_post_processing ()
{
if (!interesting_items_.empty ())
return;
}
void
-Hara_kiri_vertical_group_spanner::do_substitute_element_pointer (Score_element*o, Score_element*n)
+Hara_kiri_group_spanner::do_substitute_element_pointer (Score_element*o, Score_element*n)
{
if (Item *it = dynamic_cast<Item *> (o))
interesting_items_.substitute (it, dynamic_cast<Item *> (n));
void
-Hara_kiri_vertical_group_spanner::do_print () const
+Hara_kiri_group_spanner::do_print () const
{
Axis_group_spanner::do_print ();
}
if (note_p_arr_.size ())
return ;
+ String noteheadstyle = get_property ("noteHeadStyle", 0);
for (int i=0; i < note_req_l_arr_.size (); i++)
{
Note_head *note_p = new Note_head;
// note_p->steps_i_ = note_req_l->pitch_.steps ();
note_p->position_i_ = note_req_l->pitch_.steps ();
- String noteheadstyle = get_property ("noteheadStyle", 0);
- if (noteheadstyle.length_i ())
- note_p->note_head_type_str_ = noteheadstyle;
-
+
+ if (noteheadstyle == "transparent")
+ note_p->set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+ else
+ note_p->set_elt_property (style_scm_sym,
+ gh_str02scm (noteheadstyle.ch_C()));
+
+
Score_element_info itinf (note_p,note_req_l);
announce_element (itinf);
note_p_arr_.push (note_p);
+++ /dev/null
-/*
- horizontal-align-item.cc -- implement Horizontal_align_item
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "horizontal-align-item.hh"
-#include "debug.hh"
-
-
-
-void
-Horizontal_align_item::add_item (Item *i,int p)
-{
- add_element_priority (i,p);
-}
-
-void
-Horizontal_align_item::do_print() const
-{
-#ifndef NPRINT
- Item::do_print ();
- Align_element::do_print ();
-#endif
-}
-
-
-Horizontal_align_item::Horizontal_align_item ()
-{
- align_dir_ = CENTER;
- stacking_dir_ = RIGHT;
- axis_ = X_AXIS;
-}
+++ /dev/null
-#include "horizontal-group-element.hh"
-#include "interval.hh"
-#include "item.hh"
-#include "debug.hh"
-
-
-
-
-Horizontal_group_element::Horizontal_group_element ()
- : Axis_group_element (X_AXIS,X_AXIS)
-{
-}
-
-Interval
-Horizontal_group_element::do_width() const
-{
- return Graphical_axis_group::extent (X_AXIS);
-}
-
+++ /dev/null
-/*
- horizontal-group-item.cc -- implement Horizontal_group_item
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "p-col.hh"
-#include "horizontal-group-item.hh"
-
-
-
-void
-Horizontal_group_item::do_print() const
-{
- Axis_group_item::do_print();
-}
-
-Horizontal_group_item::Horizontal_group_item ()
-{
- axes_[0] = axes_[1] = X_AXIS;
-}
+++ /dev/null
-
-#include "horizontal-vertical-group-element.hh"
-#include "interval.hh"
-#include "item.hh"
-#include "debug.hh"
-
-Horizontal_vertical_group_element::Horizontal_vertical_group_element()
-{
- axes_[0] = X_AXIS;
- axes_[1] = Y_AXIS;
-}
-
-
-
-
+++ /dev/null
-/*
- horizontal-vertical-group-item.cc -- implement Horizontal_vertical_group_item
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#include "horizontal-vertical-group-item.hh"
-#include "p-col.hh"
-
-void
-Horizontal_vertical_group_item::do_print() const
-{
- Horizontal_vertical_group_element::do_print();
-}
-
-
-
-Horizontal_vertical_group_item::Horizontal_vertical_group_item ()
-{
- axes_[0] = X_AXIS;
- axes_[1] = Y_AXIS;
-}
String str () const;
Adobe_font_char_metric ();
-
Box dimensions () const;
};
Adobe_font_metric ();
void read_char_metrics (Data_file &input, int size);
-
Character_metric *get_char (int, bool) const;
};
#ifndef VERTICAL_ALIGN_ITEM_HH
#define VERTICAL_ALIGN_ITEM_HH
-#include "score-element.hh"
+#include "axis-group-element.hh"
#include "interval.hh"
#include "direction.hh"
#include "axes.hh"
+#include "hash-table.hh"
/**
Order elements top to bottom/left to right/right to left etc..
TODO: implement padding.
+
+ document usage of this.
*/
-class Align_element : virtual public Score_element {
- Link_array<Score_element> elem_l_arr_;
- Array<int> priority_i_arr_;
+class Align_element : public virtual Axis_group_element {
+ Hash_table<Score_element*,int> priority_i_hash_;
void sort_elements ();
public:
Interval threshold_interval_ ;
Direction stacking_dir_;
/**
- Which side to align?
- -1: left side, 0: centered (around center_l_ if not nil), 1: right side
+ Which side to align? -1: left side, 0: centered (around
+ center_l_ if not nil, or around center of width), 1: right side
+
+ URG. Unintuitive if stacking_dir_ == -1
*/
Direction align_dir_;
- Axis axis_;
+ Axis axis () const;
Score_element * center_l_;
Align_element ();
+ void set_axis (Axis);
void add_element (Score_element*);
void add_element_priority (Score_element*, int);
bool contains_b (Score_element const*) const;
Score_element *get_elt_by_priority (int) const;
+ int get_priority (Score_element*) const;
protected:
virtual void do_print() const;
virtual void do_substitute_element_pointer (Score_element*,Score_element*);
--- /dev/null
+/*
+ axis-align-item.hh -- declare Axis_align_item
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ */
+
+#ifndef AXIS_ALIGN_ITEM_HH
+#define AXIS_ALIGN_ITEM_HH
+
+#include "align-element.hh"
+#include "axis-group-item.hh"
+
+class Axis_align_item : public virtual Align_element,
+ public virtual Axis_group_item
+{
+public:
+ Axis_align_item ();
+protected:
+ virtual void do_print () const {}
+};
+#endif /* AXIS_ALIGN_ITEM_HH */
+
--- /dev/null
+/*
+ vertical-align-spanner.hh -- declare Vertical_align_spanner
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+*/
+
+
+#ifndef VERTICAL_ALIGN_SPANNER_HH
+#define VERTICAL_ALIGN_SPANNER_HH
+
+#include "spanner.hh"
+#include "align-element.hh"
+#include "axis-group-spanner.hh"
+
+class Axis_align_spanner : public virtual Align_element,
+ public virtual Axis_group_spanner
+{
+public:
+ VIRTUAL_COPY_CONS(Score_element);
+ Axis_align_spanner ();
+ virtual void do_print() const {}
+};
+#endif // VERTICAL_ALIGN_SPANNER_HH
This is a wrapper around Axis_group_administration
*/
class Axis_group_element : public virtual Score_element,
- public Graphical_axis_group {
+ public virtual Graphical_axis_group {
protected:
virtual void do_print() const;
virtual Link_array<Score_element> get_extra_dependencies() const;
+ virtual Interval do_height () const;
+ virtual Interval do_width () const;
public:
+ virtual void do_substitute_element_pointer (Score_element*,Score_element*);
virtual Link_array<Score_element> elem_l_arr() const;
- Axis_group_element(Axis,Axis);
- Axis_group_element();
+ Axis_group_element ();
+ virtual void set_axes (Axis,Axis);
+
virtual Link_array<Score_element> get_children ();
};
A grouping item. Its special support is in do_breakable_col_processing().
*/
-class Axis_group_item : public virtual Axis_group_element, public Item {
+class Axis_group_item : public virtual Axis_group_element,
+ public virtual Item {
protected:
virtual void do_breakable_col_processing();
void OK() const;
virtual void do_print() const;
+public:
+ VIRTUAL_COPY_CONS(Score_element);
};
#endif // AXIS_ITEM_HH
/** An element which groups a line in a certain direction. The most
useful example of this is the Vertical_group_spanner */
-class Axis_group_spanner : public Spanner, public virtual Axis_group_element
+class Axis_group_spanner : public virtual Axis_group_element,
+ public virtual Spanner
+
{
void do_break_processing_if_unbroken();
protected:
virtual void do_break_processing();
virtual void do_print() const;
+ virtual Interval do_width () const;
public:
-
+ VIRTUAL_COPY_CONS(Score_element);
};
#endif // SPAN_AXIS_GROUP_HH
void request_bar (String type_str);
protected:
- virtual void acknowledge_element (Score_element_info i);
virtual void do_creation_processing ();
virtual void do_removal_processing ();
virtual bool do_try_music (Music *req_l);
class Bar:public Item {
public:
String type_str_;
- bool at_line_start_b_;
-
-
VIRTUAL_COPY_CONS(Score_element);
Bar ();
virtual void do_pre_processing ();
virtual Molecule* do_brew_molecule_p () const;
virtual Real get_bar_size () const;
+
private:
void do_print () const;
};
#define SPAN_BAR_GRAV_HH
#include "engraver.hh"
-
+class Axis_align_spanner;
/**
Make bars that span multiple "staffs". Catch bars, and span a
{
Span_bar * spanbar_p_;
Array<Bar*> bar_l_arr_;
- Vertical_align_spanner * valign_l_;
+ Axis_align_spanner * valign_l_;
public:
VIRTUAL_COPY_CONS(Translator);
/// maximum number of beams (for opening-up of beam-spacing)
int multiple_i_;
- /// vertical align distance between staffs
- Drul_array<Real> vertical_align_drul_;
-
Array<Stem_info> sinfo_;
Beam();
void add_stem (Stem*);
+ Stem_info get_stem_info (Stem*);
void set_grouping (Rhythmic_grouping def, Rhythmic_grouping current);
void set_stemlens ();
/**
Base class for anything that looks like a slur.
Anybody with a better name?
+
+ UGH. Fixme. Should junk
+
+ dy_f_drul_ , dx_f_drul_
+
*/
class Bow : public Directional_spanner
{
Bow ();
Offset center () const;
- int dash_i_;
- Real interstaff_f_;
- Drul_array<Real> vertical_align_drul_;
-
protected:
virtual Molecule* do_brew_molecule_p () const;
// virtual Interval do_width () const;
#ifndef BREAK_ALIGN_ITEM_HH
#define BREAK_ALIGN_ITEM_HH
-#include "horizontal-align-item.hh"
+#include "axis-align-item.hh"
/// align breakable items (clef, bar, etc.)
-class Break_align_item : public Horizontal_align_item {
+class Break_align_item : public Axis_align_item {
protected:
- virtual void do_pre_processing();
+ virtual void do_pre_processing();
public:
-
- VIRTUAL_COPY_CONS(Score_element);
+ Break_align_item ();
+ VIRTUAL_COPY_CONS(Score_element);
};
#endif // BREAK_ALIGN_ITEM_HH
#ifndef COLLISION_HH
#define COLLISION_HH
#include "lily-proto.hh"
-#include "horizontal-vertical-group-item.hh"
+#include "axis-group-item.hh"
/**
Resolve conflicts between various Note_columns (chords).
multistaff support (see Chlapik: equal noteheads should be on the
same hpos.)
*/
-class Collision : public Horizontal_vertical_group_item {
+class Collision : public Axis_group_item {
protected:
virtual void do_substitute_element_pointer (Score_element*,Score_element*);
virtual void do_pre_processing();
+++ /dev/null
-/*
- cons.cc -- implement
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-
-#include "cons.hh"
+++ /dev/null
-/*
- cons.hh -- declare LISP like datatypes
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-
-#ifndef CONS_HH
-#define CONS_HH
-
-
-template<class T>
-class Cons
-{
-public:
- T * car_;
- Cons * next_;
- Cons ()
- {
- car_=0;
- next_ =0;
- }
- Cons (T*t, Cons<T>*c)
- {
- car_ = t;
- next_ = c;
- }
- virtual ~Cons ()
- {
- delete next_;
- }
-};
-
-template<class T>
-class Killing_cons : public Cons<T>
-{
-public:
- Killing_cons (T *t, Cons<T> *p)
- : Cons<T>( t,p)
- {
- }
- virtual ~Killing_cons ();
-};
-
-
-/// remove the link pointed to by *p.
-template<class T>
-Cons<T> *remove_cons (Cons<T> **pp)
-{
- Cons<T> *knip = *pp;
- *pp = (*pp)->next_;
- knip->next_ = 0;
- return knip;
-}
-
-
-template<class T>
-class Cons_list
-{
-public:
- Cons<T> * head_;
- Cons<T> ** tail_;
- Cons_list () { init_list (); }
- void init_list () {head_ =0; tail_ = &head_; }
- void append (Cons<T> *c)
- {
- assert (!c->next_);
- *tail_ = c;
- while (*tail_)
- tail_ = &(*tail_)->next_;
- }
- Cons<T> *remove_cons (Cons<T> **pp)
- {
- if (&(*pp)->next_ == tail_)
- tail_ = pp;
-
- return ::remove_cons (pp);
- }
- void junk ()
- {
- delete head_;
- head_ =0;
- }
- ~Cons_list () { junk (); }
-};
-
-
-template<class T>
-void copy_killing_cons_list (Cons_list<T>&, Cons<T> *src);
-template<class T>
-void
-clone_killing_cons_list (Cons_list<T>&, Cons<T> *src);
-
-template<class T> int cons_list_size_i (Cons<T> *l)
-{
- int i=0;
- while (l)
- {
- l = l->next_;
- i++;
- }
- return i;
-}
-
-
-
-
-#endif /* CONS_HH */
-
#ifndef DOT_COLUMN_HH
#define DOT_COLUMN_HH
-#include "horizontal-group-item.hh"
+#include "axis-group-item.hh"
/**
Group dots. This is needed because, the dots have to be aligned per voice
*/
-class Dot_column : public Horizontal_group_item
+class Dot_column : public Axis_group_item
{
Link_array<Rhythmic_head> head_l_arr_;
Link_array<Dots> dot_l_arr_;
void add_head (Rhythmic_head*);
void add_dots (Dots*);
-
+ Dot_column ();
protected:
virtual void do_pre_processing ();
virtual void do_substitute_element_pointer (Score_element *o, Score_element*n);
public:
int no_dots_i_;
int position_i_;
-
Dots ();
};
Score_element * to_position_l_;
Direction dir_;
Link_array<Score_element> support_l_arr_;
- Real padding_f_;
Axis axis_;
G_staff_side_item ();
*/
class Graphical_axis_group : public virtual Graphical_element {
public:
+ // keep array in order.
+ bool ordered_b_;
Link_array<Graphical_element> elem_l_arr_;
Axis axes_[2];
Interval extent (Axis) const;
virtual void do_print() const;
Graphical_axis_group (Graphical_axis_group const&);
- Graphical_axis_group (Axis,Axis);
+ Graphical_axis_group ();
+ virtual void set_axes (Axis,Axis);
void remove_all ();
bool contains_b (Graphical_element const *) const;
void add_element (Graphical_element*);
void remove_element (Graphical_element*);
-
};
#endif // Graphical_axis_group_HH
#ifndef HARA_KIRI_VERTICAL_GROUP_SPANNER_HH
#define HARA_KIRI_VERTICAL_GROUP_SPANNER_HH
-#include "vertical-group-spanner.hh"
+#include "axis-group-spanner.hh"
/**
As Vertical_group_spanner, but keep track of interesting items. If
we don't contain any interesting items after linebreaking, then
gracefully commit suicide. Objective: don't disgrace Lily by
typesetting empty lines in orchestral scores. */
-class Hara_kiri_vertical_group_spanner : public Vertical_group_spanner
+class Hara_kiri_group_spanner : public Axis_group_spanner
{
public:
- Hara_kiri_vertical_group_spanner ();
+ Hara_kiri_group_spanner ();
virtual void do_post_processing ();
void add_interesting_item (Item* n);
protected:
+++ /dev/null
-/*
- horizontal-align-item.hh -- declare Horizontal_align_item
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef HORIZONTAL_ALIGN_ITEM_HH
-#define HORIZONTAL_ALIGN_ITEM_HH
-
-#include "item.hh"
-#include "align-element.hh"
-
-/**
- Order elems left to right.
-
- TODO: insert (order, elem)
- */
-class Horizontal_align_item : public Item , public Align_element {
-public:
-
- VIRTUAL_COPY_CONS(Score_element);
- void add_item (Item*, int p);
- Horizontal_align_item();
- virtual void do_print() const;
-
-};
-#endif // HORIZONTAL_ALIGN_ITEM_HH
+++ /dev/null
-/*
- horizontal-group-element.hh -- declare Horizontal_group_element
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-
-#ifndef HORIZONTAL_GROUP_ELEM_HH
-#define HORIZONTAL_GROUP_ELEM_HH
-
-#include "axis-group-element.hh"
-
-/**
- Treat a group of elements a unity in horizontal sense .
- A column is a typical Vertical_group.
- */
-class Horizontal_group_element : public virtual Axis_group_element {
-protected:
- virtual Interval do_width() const;
-
-public:
- Horizontal_group_element ();
-
-};
-
-
-#endif /* HORIZONTAL_GROUP_ELEM_HH */
-
+++ /dev/null
-/*
- horizontal-group-item.hh -- declare Horizontal_group_item
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef HORIZONTAL_GROUP_ITEM_HH
-#define HORIZONTAL_GROUP_ITEM_HH
-
-#include "horizontal-group-element.hh"
-#include "axis-group-item.hh"
-
-/**
- Group stuff in horizontal sense. Example: Paper_column
- */
-class Horizontal_group_item : public Axis_group_item, public Horizontal_group_element {
-protected:
- virtual void do_print() const;
-public:
- Horizontal_group_item ();
-
- VIRTUAL_COPY_CONS(Score_element);
-};
-
-#endif // HORIZONTAL_GROUP_ITEM_HH
+++ /dev/null
-/*
- horizontal-vertical-group-element.hh -- declare Horizontal_vertical_group_element
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-
-#ifndef HORIZONTAL_VERTICAL_GROUP_ELEM_HH
-#define HORIZONTAL_VERTICAL_GROUP_ELEM_HH
-
-#include "vertical-group-element.hh"
-#include "horizontal-group-element.hh"
-
-/** A class to treat a group of elements as a single entity. The
- dimensions are the unions of the dimensions of what it contains.
- Translation means translating the contents.
- */
-class Horizontal_vertical_group_element : public Vertical_group_element,
- public Horizontal_group_element
-{
-protected:
-public:
- Horizontal_vertical_group_element ();
-
-
-};
-
-
-#endif /* HORIZONTAL_VERTICAL_GROUP_ELEM_HH */
-
-
+++ /dev/null
-/*
- horizontal-vertical-group-item.hh -- declare Horizontal_vertical_group_item
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef HORIZONTAL_VERTICAL_GROUP_ITEM_HH
-#define HORIZONTAL_VERTICAL_GROUP_ITEM_HH
-
-#include "axis-group-item.hh"
-#include "horizontal-vertical-group-element.hh"
-
-
-/**
- Treat a collection of items as a unity
- */
-class Horizontal_vertical_group_item : public Axis_group_item, public Horizontal_vertical_group_element {
-protected:
- virtual void do_print() const;
- VIRTUAL_COPY_CONS(Score_element);
-public:
- Horizontal_vertical_group_item ();
-
-
-};
-
-#endif // HORIZONTAL_VERTICAL_GROUP_ITEM_HH
VIRTUAL_COPY_CONS(Translator);
Key key_;
Key_change_req * keyreq_l_;
- Key_item * kit_p_;
+ Key_item * item_p_;
Array<Musical_pitch> accidental_idx_arr_;
Array<Musical_pitch> old_accidental_idx_arr_;
- bool default_key_b_;
- bool change_key_b_;
+
+
protected:
virtual bool do_try_music (Music *req_l);
/// An item which places accidentals at the start of the line
class Key_item :public Item, public Staff_symbol_referencer {
-public:
-
Array<int> pitch_arr_;
Array<int> acc_arr_;
Array<int> old_pitch_arr_;
Array<int> old_acc_arr_;
+ int c0_position_;
+
+
+public:
+ bool multi_octave_b_;
- // ugh. Naming
- int c_position;
- // see above.
- int c0_position;
- bool default_b_;
- bool multi_octave_b_;
+ int get_c_position () const;
VIRTUAL_COPY_CONS(Score_element);
int calculate_position(int p, int a) const;
protected:
- virtual void do_pre_processing();
virtual Molecule* do_brew_molecule_p() const;
};
+++ /dev/null
-/*
- killing-cons.tcc -- declare Killing_cons
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-
-#ifndef KILLING_CONS_TCC
-#define KILLING_CONS_TCC
-
-#include "cons.hh"
-
-template<class T>
-Killing_cons<T>::~Killing_cons ()
-{
- delete car_;
-}
-
-template<class T>
-void
-copy_killing_cons_list (Cons_list<T> &dest, Cons<T> *src)
-{
- for (; src; src = src->next_)
- {
- T *t = new T(*src->car_);
- dest.append ( new Killing_cons<T> (t, 0));
- }
-}
-
-template<class T>
-void
-clone_killing_cons_list (Cons_list<T> & dest, Cons<T> *src)
-{
- for (; src; src = src->next_)
- {
- T *t = src->car_->clone ();
- dest.append (new Killing_cons<T> (t, 0));
- }
-}
-
-#endif /* KILLING_CONS_TCC */
-
SCM ly_func_o (char const* name);
SCM ly_quote_scm (SCM s);
void ly_display_scm (SCM s);
-
+String ly_scm2string (SCM s);
#include "array.hh"
#include "scalar.hh"
struct Graphical_axis_group;
struct Global_translator;
struct Hara_kiri_line_group_engraver;
-struct Hara_kiri_vertical_group_spanner;
+struct Hara_kiri_group_spanner;
struct Head_column;
-struct Horizontal_align_item;
-struct Horizontal_group_element;
-struct Horizontal_group_item;
-struct Horizontal_vertical_group;
struct Idealspacing;
struct Identifier;
struct Input_file;
struct Timing_req;
struct Vertical_brace;
struct Vertical_spanner;
-struct Vertical_group_element;
-struct Vertical_group_spanner;
-struct Vertical_align_spanner;
-struct Vertical_align_engraver;
+
struct Volta_spanner;
struct Align_element;
struct Sequential_music;
*/
class Line_group_engraver_group : public Engraver_group_engraver {
protected:
- Vertical_group_spanner *staffline_p_;
+ Axis_group_spanner *staffline_p_;
virtual void create_line_spanner ();
virtual void do_creation_processing();
Lookup ();
Lookup (Lookup const&);
-
-
- Molecule special_ball (int, String) const;
Molecule simple_bar (String s, Real w) const;
Molecule accidental (int, bool cautionary) const;
Molecule afm_find (String, bool warn=true) const;
- Molecule ball (int) const;
+ Molecule notehead (int, String) const;
+
Molecule bar (String, Real height) const;
Molecule beam (Real, Real, Real) const;
Molecule clef (String) const;
#define DECLARE_LY_SYMBOL(a) extern SCM a ## _scm_sym
#endif
+DECLARE_LY_SYMBOL(at_line_start);
DECLARE_LY_SYMBOL(beam);
DECLARE_LY_SYMBOL(beam_thickness);
DECLARE_LY_SYMBOL(beam_dir);
+DECLARE_LY_SYMBOL(beam_gap);
DECLARE_LY_SYMBOL(bracket);
DECLARE_LY_SYMBOL(break_helper_only);
DECLARE_LY_SYMBOL(break_priority);
DECLARE_LY_SYMBOL(change);
DECLARE_LY_SYMBOL(damping);
DECLARE_LY_SYMBOL(dashed);
+DECLARE_LY_SYMBOL(extremal);
DECLARE_LY_SYMBOL(dir_forced);
DECLARE_LY_SYMBOL(extender_height);
DECLARE_LY_SYMBOL(filledbox);
DECLARE_LY_SYMBOL(non_default);
DECLARE_LY_SYMBOL(octave_dir);
DECLARE_LY_SYMBOL(output);
+DECLARE_LY_SYMBOL(padding);
DECLARE_LY_SYMBOL(pianobrace);
DECLARE_LY_SYMBOL(placebox);
DECLARE_LY_SYMBOL(rulesym);
DECLARE_LY_SYMBOL(rulethickness);
DECLARE_LY_SYMBOL(staffheight);
+DECLARE_LY_SYMBOL(style);
DECLARE_LY_SYMBOL(text);
DECLARE_LY_SYMBOL(transparent);
DECLARE_LY_SYMBOL(tuplet);
Molecule (const Molecule&s);
void print() const;
void operator=(const Molecule&);
+ bool empty_b() const;
};
#endif
class Note_head : public Rhythmic_head {
public:
-
- String note_head_type_str_;
-
- /// position of top line (5 linestaff: 8)
int position_i_;
- /// -1 = lowest, 0 = inside, 1 = top
- int extremal_i_;
-
- /// needed for the help-lines
- int staff_size_i_;
- Direction x_dir_;
-
Note_head ();
+ void flip_around_stem (Direction);
static int compare (Note_head * const &a, Note_head *const &b) ;
protected:
virtual Interval do_width () const;
#ifndef P_COL_HH
#define P_COL_HH
-#include "horizontal-group-item.hh"
+#include "axis-group-item.hh"
#include "rod.hh"
\end{itemize}
*/
-class Paper_column : public Horizontal_group_item {
+class Paper_column : public Axis_group_item {
public:
VIRTUAL_COPY_CONS(Score_element);
Drul_array<Array<Column_rod> > minimal_dists_arr_drul_;
#ifndef SCRIPT_COLUMN_HH
#define SCRIPT_COLUMN_HH
-#include "horizontal-vertical-group-item.hh"
+#include "axis-group-item.hh"
/** a struct for treating a group of noteheads (noteheads, stem
(chord) and scripts) as a single entity. */
-class Script_column : public Horizontal_vertical_group_item {
+class Script_column : public Axis_group_item {
protected:
- virtual void do_print() const;
- virtual void do_substitute_element_pointer (Score_element*, Score_element*);
- virtual void do_pre_processing() ;
+ virtual void do_print() const;
+ virtual void do_substitute_element_pointer (Score_element*, Score_element*);
+ virtual void do_pre_processing() ;
public:
- Link_array<Script> script_l_arr_;
- Link_array<Item> support_l_arr_;
+ Link_array<Script> script_l_arr_;
+ Link_array<Item> support_l_arr_;
- virtual void add_script (Script *);
- void add_support (Item*);
+ virtual void add_script (Script *);
+ void add_support (Item*);
+ Script_column ();
};
#endif // SCRIPT_COLUMN_HH
+++ /dev/null
-/*
- span-score-bar.hh -- declare Span_score_bar
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef SPAN_SCORE_BAR_HH
-#define SPAN_SCORE_BAR_HH
-
-#include "span-bar.hh"
-#include "score-bar.hh"
-
-class Span_score_bar : public Span_bar, public Score_bar
-{
-public:
-
- VIRTUAL_COPY_CONS(Score_element);
- Span_score_bar();
-
-protected:
- virtual void do_pre_processing();
-};
-
-
-
-#endif // SPAN_SCORE_BAR_HH
Real interstaff_f_;
Stem* stem_l_;
+
Stem_info ();
- Stem_info (Stem *);
+ Stem_info (Stem *, int);
};
#endif // STEM_INFO_HH
dir_force: is direction explicitely specified? (bool)
+ /// how many abbrev beam don't reach stem?
+ int beam_gap_i_;
+
+
+
*/
// todo: remove baseclass Staff_symbol_referencer, since stem
// can be across a staff.
*/
Drul_array<Real> yextent_drul_;
- /**
- geen gedonder, jij gaat onder.
- -1 stem points down, +1: stem points up
- */
- Direction stem_xdir_;
-
Link_array<Note_head> head_l_arr_;
Link_array<Rest> rest_l_arr_;
public:
- /// how many abbrev beam don't reach stem?
- int beam_gap_i_;
-
/// log of the duration. Eg. 4 -> 16th note -> 2 flags
int flag_i_;
Drul_array<int> beams_i_drul_;
- /// maximum number of beams
- int mult_i_;
-
/// direction stem (that's me)
Direction dir_;
/// ensure that this Stem also encompasses the Notehead #n#
void add_head (Rhythmic_head*n);
-
-
Real hpos_f () const;
Real chord_start_f () const;
#define VERTICAL_ALIGN_GRAV_HH
#include "engraver.hh"
-
+class Axis_align_spanner;
class Vertical_align_engraver : public Engraver {
- Vertical_align_spanner * valign_p_;
+ Axis_align_spanner * valign_p_;
public:
VIRTUAL_COPY_CONS(Translator);
+++ /dev/null
-/*
- vertical-align-spanner.hh -- declare Vertical_align_spanner
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef VERTICAL_ALIGN_SPANNER_HH
-#define VERTICAL_ALIGN_SPANNER_HH
-
-#include "spanner.hh"
-#include "align-element.hh"
-
-class Vertical_align_spanner : public Align_element, public Spanner
-{
-public:
-
- VIRTUAL_COPY_CONS(Score_element);
- Vertical_align_spanner ();
- virtual void do_print() const ;
-
-};
-#endif // VERTICAL_ALIGN_SPANNER_HH
+++ /dev/null
-/*
- vertical-group-element.hh -- declare
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-
-#ifndef VERTICAL_GROUP_ELEM_HH
-#define VERTICAL_GROUP_ELEM_HH
-
-#include "axis-group-element.hh"
-/**
- Like Horizontal_group_element, but in X direction
- */
-class Vertical_group_element : public virtual Axis_group_element {
-protected:
- virtual Interval do_height() const;
-
-public:
- Vertical_group_element () ;
-
-};
-
-#endif /* VERTICAL_GROUP_ELEM_HH */
-
+++ /dev/null
-/*
- vertical-group-spanner.hh -- declare Vertical_group_spanner
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef SPAN_VERTICAL_GROUP_HH
-#define SPAN_VERTICAL_GROUP_HH
-
-#include "axis-group-spanner.hh"
-#include "vertical-group-element.hh"
-
-/** An element which groups a line.
- */
-class Vertical_group_spanner : public Axis_group_spanner, public Vertical_group_element
-{
-protected:
- VIRTUAL_COPY_CONS(Score_element);
-public:
-
- Vertical_group_spanner ();
-};
-
-
-#endif // SPAN_VERTICAL_GROUP_HH
Key_engraver::Key_engraver ()
{
- kit_p_ = 0;
+ item_p_ = 0;
do_post_move_processing ();
}
void
Key_engraver::create_key ()
{
- if (!kit_p_)
+ if (!item_p_)
{
- kit_p_ = new Key_item;
- kit_p_->set_elt_property (break_priority_scm_sym, gh_int2scm(-1)); // ugh
- kit_p_->multi_octave_b_ = key_.multi_octave_b_;
- announce_element (Score_element_info (kit_p_,keyreq_l_));
+ item_p_ = new Key_item;
+ item_p_->set_elt_property (break_priority_scm_sym, gh_int2scm(-1)); // ugh
+ item_p_->multi_octave_b_ = key_.multi_octave_b_;
+ announce_element (Score_element_info (item_p_,keyreq_l_));
for (int i = 0; i < accidental_idx_arr_.size(); i++)
Musical_pitch m_l =accidental_idx_arr_[i];
int a =m_l.accidental_i_;
if (key_.multi_octave_b_)
- kit_p_->add (m_l.steps (), a);
+ item_p_->add (m_l.steps (), a);
else
- kit_p_->add (m_l.notename_i_, a);
+ item_p_->add (m_l.notename_i_, a);
}
for (int i = 0 ; i< old_accidental_idx_arr_.size(); i++)
Musical_pitch m_l =old_accidental_idx_arr_[i];
int a =m_l.accidental_i_;
if (key_.multi_octave_b_)
- kit_p_->add_old (m_l.steps (), a);
+ item_p_->add_old (m_l.steps (), a);
else
- kit_p_->add_old (m_l.notename_i_, a);
+ item_p_->add_old (m_l.notename_i_, a);
}
}
}
else if (dynamic_cast<Bar *> (info.elem_l_)
&& accidental_idx_arr_.size ())
{
- if (!keyreq_l_)
- default_key_b_ = true;
+ bool def = (!item_p_);
create_key ();
+ if (def)
+ {
+ item_p_->set_elt_property (visibility_lambda_scm_sym,
+ gh_eval_str ("postbreak_only_visibility"));
+ }
}
}
void
Key_engraver::do_pre_move_processing ()
{
- if (kit_p_)
+ if (item_p_)
{
- kit_p_->default_b_ = default_key_b_;
- typeset_element (kit_p_);
- kit_p_ = 0;
+ typeset_element (item_p_);
+ item_p_ = 0;
}
}
Key_engraver::do_post_move_processing ()
{
keyreq_l_ = 0;
- default_key_b_ = false;
old_accidental_idx_arr_.clear ();
}
{
multi_octave_b_ = false;
set_elt_property (breakable_scm_sym, SCM_BOOL_T);
- default_b_ = false;
set_c_position (0);
}
-void
-Key_item::set_c_position (int c0)
+int
+Key_item::get_c_position () const
{
- c0_position = c0;
// Find the c in the range -4 through 2
- int from_bottom_pos = c0 + 4;
+ int from_bottom_pos = c0_position_ + 4;
from_bottom_pos = from_bottom_pos%7;
from_bottom_pos = (from_bottom_pos + 7)%7; // Precaution to get positive.
- c_position = from_bottom_pos - 4;
+ return from_bottom_pos - 4;
+}
+
+
+void
+Key_item::set_c_position (int c0)
+{
+ c0_position_ = c0;
}
{
if (multi_octave_b_)
{
- return p + c0_position;
+ return p + c0_position_;
}
else {
- if ((a<0 && ((p>FLAT_TOP_PITCH) || (p+c_position>4)) && (p+c_position>1))
+ if ((a<0 && ((p>FLAT_TOP_PITCH) || (p+get_c_position ()>4)) && (p+get_c_position ()>1))
||
- (a>0 && ((p>SHARP_TOP_PITCH) || (p+c_position>5)) && (p+c_position>2)))
+ (a>0 && ((p>SHARP_TOP_PITCH) || (p+get_c_position ()>5)) && (p+get_c_position ()>2)))
{
p -= 7; /* Typeset below c_position */
}
- return p + c_position;
+ return p + get_c_position ();
}
}
-void
-Key_item::do_pre_processing()
-{
- if (default_b_)
- {
- bool transparent = (break_status_dir() != RIGHT);
- set_empty (transparent);
-
- if (transparent)
- set_elt_property (transparent_scm_sym, SCM_BOOL_T);
- }
-}
gh_display (s);
gh_newline ();
}
+
+String
+ly_scm2string (SCM s)
+{
+ int len;
+ char * p = gh_scm2newstr (s , &len);
+
+ String r (p);
+ delete p;
+ return r;
+}
*/
#include "staff-symbol.hh"
-#include "vertical-group-spanner.hh"
+#include "axis-group-spanner.hh"
#include "command-request.hh"
#include "bar.hh"
#include "debug.hh"
void
Line_group_engraver_group::create_line_spanner ()
{
- staffline_p_ = new Vertical_group_spanner ;
+ staffline_p_ = new Axis_group_spanner ;
+ staffline_p_->set_axes (Y_AXIS,Y_AXIS);
}
void
}
Molecule
-Lookup::ball (int j) const
+Lookup::notehead (int j, String type) const
{
if (j > 2)
j = 2;
- return afm_find (String ("noteheads-") + to_str (j));
+ return afm_find (String ("noteheads-") + to_str (j) + type);
}
Molecule
{
return fill (Box (Interval(0, 0), Interval (-h/2, h/2)));
}
+ if (str == "scorepostbreak")
+ {
+ return simple_bar ("score", h);
+ }
else if (str == "|")
{
return thin;
String symbolname = "timesig-" + s + to_str (n) + "/" + to_str (d);
Molecule m = afm_find (symbolname, false);
- if (!m.dim_[X_AXIS].empty_b ())
+ if (!m.empty_b())
return m;
// Second guess: s contains the full signature name
m = afm_find ("timesig-"+s, false);
- if (!m.dim_[X_AXIS].empty_b ())
+ if (!m.empty_b ())
return m;
// Resort to default layout with numbers
SCM l = gh_eval_str (("(style-to-cmr \"" + style + "\")").ch_C());
if (l != SCM_BOOL_F)
{
- int len ;
- char * s = gh_scm2newstr(SCM_CDR (l), &len);
- style = String (s) + to_str ((int)font_h);
- delete s;
+ style = ly_scm2string (SCM_CDR(l)) +to_str ((int)font_h);
}
Real w = 0;
}
-Molecule
-Lookup::special_ball (int j, String kind_of_ball) const
-{
- if (j > 2)
- j = 2;
-
- return afm_find (String ("noteheads-") + kind_of_ball);
-}
-
toadd.translate_axis (offset + d * padding, a);
add_molecule (toadd);
}
+
+bool
+Molecule::empty_b() const
+{
+ return atom_list_ == MOL_EOL;
+}
#include "dots.hh"
#include "note-head.hh"
#include "debug.hh"
-#include "paper-def.hh"
#include "lookup.hh"
#include "molecule.hh"
#include "musical-request.hh"
+void
+Note_head::flip_around_stem (Direction d)
+{
+ translate_axis (do_width ().length () * d, X_AXIS);
+}
Note_head::Note_head ()
{
- x_dir_ = CENTER;
position_i_ = 0;
- extremal_i_ = 0;
}
void
return a->position_i_ - b->position_i_;
}
+/**
+ Don't account for ledgerlines in the width.
+ */
Interval
Note_head::do_width () const
{
- Molecule a = lookup_l ()->ball (balltype_i_);
+ Molecule a = lookup_l ()->notehead (balltype_i_, ""); // UGH
Interval i = a.dim_[X_AXIS];
- i+= x_dir_ * i.length ();
return i;
}
Note_head::do_brew_molecule_p() const
{
Molecule*out = 0;
- Paper_def *p = paper_l ();
Real inter_f = staff_line_leading_f ()/2;
int sz = lines_i ()-1;
- // ugh
+
int streepjes_i = abs (position_i_) < sz
? 0
: (abs(position_i_) - sz) /2;
-
- Molecule head;
- if (note_head_type_str_.length_i ()) {
- if (note_head_type_str_ == "normal") // UGH
- note_head_type_str_ = "";
- head = lookup_l()->special_ball (balltype_i_, note_head_type_str_);
+
+ String type;
+ SCM style =get_elt_property (style_scm_sym);
+ if (style != SCM_BOOL_F)
+ {
+ type = ly_scm2string (SCM_CDR(style));
}
- else
- head = lookup_l()->ball (balltype_i_);
- out = new Molecule (Molecule (head));
- out->translate_axis (x_dir_ * head.dim_[X_AXIS].length (), X_AXIS);
-
+ Molecule head (lookup_l()->notehead (balltype_i_, type));
+
+ out = new Molecule (Molecule (head));
if (streepjes_i)
{
Paper_column::Paper_column()
{
+ set_axes (X_AXIS, X_AXIS);
+
line_l_=0;
rank_i_ = -1;
}
Paper_score::~Paper_score ()
{
- for (int i=0; i < span_p_arr_.size (); i++)
+ /* for (int i=0; i < span_p_arr_.size (); i++)
delete span_p_arr_[i];
for (int i=0; i < elem_p_arr_.size (); i++)
- delete elem_p_arr_[i];
+ delete elem_p_arr_[i];*/
}
void
Score_element * e = to_remove[i];
String nm = e->name();
if (type_stats.elem_b (nm))
- type_stats[nm] ++;
- else
- type_stats[nm] = 1;
-
- if (dynamic_cast<Item*> (e))
- type_stats["Item"] ++;
- else if (dynamic_cast<Spanner*>(e))
- type_stats["Spanner"] ++;
- type_stats["Total"] ++;
- }
+ type_stats[nm] ++;
+ else
+ type_stats[nm] = 1;
+
+ if (dynamic_cast<Item*> (e))
+ type_stats["Item"] ++;
+ else if (dynamic_cast<Spanner*>(e))
+ type_stats["Spanner"] ++;
+ type_stats["Total"] ++;
+ // delete e; //TODO!
+ }
to_remove.clear ();
to_remove.tighten_maxsize ();
Score_element::~Score_element()
{
+ element_property_alist_ = SCM_EOL; // try to be nice to GC.
delete output_p_;
assert (status_i_ >=0);
status_i_ = -1;
? gh_scm2int (SCM_CDR (sz))
: 0;
-
me->lookup_l_ = pscore_l_->paper_l_->lookup_l (i);
}
return lookup_l_;
*/
-#include "horizontal-group-item.hh"
+#include "axis-group-item.hh"
#include "score-priority-engraver.hh"
#include "item.hh"
#include "dictionary-iter.hh"
if (priority == 0)
halign_p_->center_l_ = it;
- halign_p_->add_item (it, priority);
+ halign_p_->add_element_priority (it, priority);
column_p_arr_.push (it);
}
if (!breakable)
return ;
- int priority = SCM_CDR (pr);
- /*
- Don't try to eat up our (probable) parent.
- */
- if (inf.origin_grav_l_arr_.size () <= 1 &&
- dynamic_cast<Break_align_item *> (item_l))
- return;
-
+ int priority = gh_scm2int (SCM_CDR (pr));
Score_element * column_l = 0;
if (halign_p_)
column_l = halign_p_->get_elt_by_priority (priority);
- Horizontal_group_item * hg;
+ Axis_group_item * hg=0;
if (column_l)
{
- hg = dynamic_cast<Horizontal_group_item*> (column_l);
+ hg = dynamic_cast<Axis_group_item*> (column_l);
}
else
{
- hg = new Horizontal_group_item;
+ hg = new Axis_group_item;
+ hg->set_axes (X_AXIS,X_AXIS);
+ hg->set_elt_property (ly_symbol("origin"),
+ SCM_EOL);
announce_element (Score_element_info (hg,0));
add_horizontal_group (hg, priority);
- hg->set_elt_property (breakable_scm_sym, SCM_BOOL_T);
}
-
+ hg->set_elt_property (ly_symbol("origin"),
+ scm_cons (gh_str02scm (item_l->name()),
+ hg->get_elt_property (ly_symbol ("origin"))));
hg->add_element (item_l);
+
}
}
return j;
}
+
+Script_column::Script_column ()
+{
+ set_axes (X_AXIS,X_AXIS);
+}
+
void
Script_column::do_pre_processing()
{
Slur * s_p =new Slur;
Scalar prop = get_property ("slurdash", 0);
if (prop.isnum_b ())
- s_p->dash_i_ = prop;
-
- prop = get_property ("minVerticalAlign", 0);
- if (prop.isnum_b ())
- s_p->vertical_align_drul_[MIN] = prop;
-
- prop = get_property ("maxVerticalAlign", 0);
- if (prop.isnum_b ())
- s_p->vertical_align_drul_[MAX] = prop;
+ s_p->set_elt_property (dashed_scm_sym, gh_int2scm(prop));
requests_arr_.push (slur_req_l);
start_slur_l_arr_.push (s_p);
if (d == RIGHT)
{
dx_f_drul_[LEFT] = spanned_drul_[LEFT]->extent (X_AXIS).length ();
-
+
// urg -- check if needed
if (encompass_arr_.size () > 1)
dx_f_drul_[RIGHT] += notewidth_f;
notes.push (info.o_ - left);
}
Encompass_info info (encompass_arr_.top (), dir_, this);
+ Real inter_staff = info.interstaff_f_;
- // urg:
- Slur* urg = (Slur*)this;
- urg->interstaff_f_ = info.interstaff_f_;
-
- d[Y_AXIS] += interstaff_f_;
+ d[Y_AXIS] += inter_staff;
// prebreak
- if (interstaff_f_ && (encompass_arr_.top () != spanned_drul_[RIGHT]))
+ if (inter_staff && (encompass_arr_.top () != spanned_drul_[RIGHT]))
{
Encompass_info info (encompass_arr_[encompass_arr_.size () - 1], dir_, this);
- d[Y_AXIS] -= info.o_[Y_AXIS] - interstaff_f_;
+ d[Y_AXIS] -= info.o_[Y_AXIS] - inter_staff;
}
notes.push (d);
Span_bar::set_align (Align_element *a)
{
add_dependency (a);
+ Score_element * e = dynamic_cast<Score_element*>(a);
+ Item * i = dynamic_cast<Item*> (e);
+ e = dynamic_cast<Score_element*> (a);
+ i = dynamic_cast<Item*>(e);
}
Interval
{
Span_bar*s = new Span_bar;
s->type_str_ = "scorebar";
-
+ s->set_elt_property (break_priority_scm_sym,
+ gh_int2scm (-4));
+
return s;
}
#include "misc.hh"
#include "debug.hh"
+#include "align-element.hh"
#include "stem.hh"
#include "paper-def.hh"
#include "lookup.hh"
{
}
-Stem_info::Stem_info (Stem*s)
+Stem_info::Stem_info (Stem*s, int mult)
{
+ mult_i_ =mult;
stem_l_ = s;
x_ = stem_l_->hpos_f ();
dir_ = stem_l_->dir_;
SCM bd = stem_l_->remove_elt_property (beam_dir_scm_sym);
beam_dir_ = gh_scm2int (SCM_CDR(bd));
-
- mult_i_ = stem_l_->mult_i_;
interstaff_f_ = 0;
Paper_def* paper_l = stem_l_->paper_l ();
idealy_f_ = miny_f_ >? idealy_f_;
// interstaff beam
- Beam* beam_l_ = stem_l_->beam_l_;
- if (beam_l_->sinfo_.size ()
- && stem_l_->staff_symbol_l () != beam_l_->sinfo_[0].stem_l_->staff_symbol_l ())
+ Beam* beam_l = stem_l_->beam_l_;
+ Dimension_cache *common = stem_l_->common_group (beam_l, Y_AXIS);
+ Align_element * align = dynamic_cast<Align_element*> (common->element_l ());
+ if (align && align->axis() == Y_AXIS)
{
- {
- // warning (_ ("invalid dimension cache: guessing staff position"));
- if (beam_l_->vertical_align_drul_[MIN] !=
- beam_l_->vertical_align_drul_[MAX])
- warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff slurs may be broken"));
- interstaff_f_ = beam_l_->vertical_align_drul_[MIN] / internote_f;
- // urg, guess staff order:
- // if our stem ends higher, our staff is probably lower...
- if (idealy_f_ * beam_dir_ > beam_l_->sinfo_[0].idealy_f_ * beam_dir_)
- interstaff_f_ *= -1;
- }
+ if (align->threshold_interval_[MIN] !=
+ align->threshold_interval_[MAX])
+ warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"));
+
+ interstaff_f_ = align->threshold_interval_[MIN] / internote_f;
+
+ Dimension_cache * beam_refpoint = &beam_l->dim_cache_[Y_AXIS];
+ Dimension_cache * stem_refpoint = &stem_l_->dim_cache_[Y_AXIS];
+
+ while (beam_refpoint->parent_l_ != common)
+ beam_refpoint = beam_refpoint->parent_l_;
+ while (stem_refpoint->parent_l_ != common)
+ stem_refpoint = stem_refpoint->parent_l_;
+
+
+ int beam_prio =
+ align->get_priority (dynamic_cast<Score_element*> (beam_refpoint->element_l ()));
+ int stem_prio =
+ align->get_priority (dynamic_cast<Score_element*> (stem_refpoint->element_l ()));
+
+ /*
+ our staff is lower -> interstaff_f_ *= -1
+ */
+ if (beam_prio < stem_prio)
+ interstaff_f_ *= -1;
+
idealy_f_ += interstaff_f_ * beam_dir_;
miny_f_ += interstaff_f_ * beam_dir_;
maxy_f_ += interstaff_f_ * beam_dir_;
Stem::Stem ()
{
beams_i_drul_[LEFT] = beams_i_drul_[RIGHT] = -1;
- mult_i_ = 0;
-
yextent_drul_[DOWN] = yextent_drul_[UP] = 0;
flag_i_ = 2;
dir_ = CENTER;
- stem_xdir_ = LEFT;
-
- beam_gap_i_ = 0;
beam_l_ = 0;
}
set_default_dir ();
/*
stems in unnatural (forced) direction should be shortened,
- accoding to [Roush & Gourlay]
+ according to [Roush & Gourlay]
*/
if (((int)chord_start_f ())
&& (dir_ != get_default_dir ()))
if (!stem_length_f ())
set_default_stemlen ();
-
- if (dir_ == UP)
- stem_xdir_ = RIGHT;
- if (invisible_b ())
- stem_xdir_ = CENTER;
}
-/*
- TODO
-
- move into note_column.cc
-
- */
void
Stem::set_noteheads ()
{
if (dir_ < 0)
head_l_arr_.reverse ();
- head_l_arr_[0]->extremal_i_ = -1;
- head_l_arr_.top ()->extremal_i_ = 1;
+ Note_head * beginhead = head_l_arr_[0];
+ beginhead->set_elt_property (extremal_scm_sym, SCM_BOOL_T);
+ if (beginhead != head_l_arr_.top ())
+ head_l_arr_.top ()->set_elt_property (extremal_scm_sym, SCM_BOOL_T);
+
int parity=1;
- int lastpos = head_l_arr_[0]->position_i_;
+ int lastpos = beginhead->position_i_;
for (int i=1; i < head_l_arr_.size (); i ++)
{
int dy =abs (lastpos- head_l_arr_[i]->position_i_);
if (dy <= 1)
{
if (parity)
- head_l_arr_[i]->x_dir_ = (stem_xdir_ == LEFT) ? LEFT : RIGHT;
+ head_l_arr_[i]->flip_around_stem (dir_);
parity = !parity;
}
else
Interval head_wid(0, head_l_arr_[0]->extent (X_AXIS).length ());
Real rule_thick(paper_l ()->rule_thickness ());
Interval stem_wid(-rule_thick/2, rule_thick/2);
- if (stem_xdir_ == CENTER)
+ if (dir_ == CENTER)
r = head_wid.center ();
else
- r = head_wid[stem_xdir_] - stem_wid[stem_xdir_];
+ r = head_wid[dir_] - stem_wid[dir_];
}
return r;
}
return note_delta_f () + Item::hpos_f ();
}
-/*
- TODO: head_l_arr_/rest_l_arr_ in
- */
void
Stem::do_substitute_element_pointer (Score_element*o,Score_element*n)
{
if (Note_head*h=dynamic_cast<Note_head*> (o))
- head_l_arr_.substitute (h, dynamic_cast<Note_head*>(n));
+ head_l_arr_.substitute (h, dynamic_cast<Note_head*>(n));
if (Rest *r=dynamic_cast<Rest*> (o))
rest_l_arr_.substitute (r, dynamic_cast<Rest*>(n));
if (Beam* b = dynamic_cast<Beam*> (o))
{
if (b == beam_l_)
- {
- beam_l_ = dynamic_cast<Beam*> (n);
- if (!beam_l_)
- {
- beams_i_drul_[LEFT] = 0;
- beams_i_drul_[RIGHT] = 0;
- mult_i_ = 0;
- }
- }
+ beam_l_ = dynamic_cast<Beam*> (n);
}
Staff_symbol_referencer::do_substitute_element_pointer (o,n);
-
}
Scalar padding = get_property ("textScriptPadding", 0);
if (padding.length_i() && padding.isnum_b ())
{
- ss->padding_f_ = Real(padding);
+ ss->set_elt_property (padding_scm_sym, gh_double2scm(Real(padding)));
}
Scalar empty = get_property ("textEmptyDimension", 0);
do
{
// tie attached to outer notehead
- if (head_l_drul_[d] && head_l_drul_[d]->extremal_i_)
+ if (head_l_drul_[d]
+ && head_l_drul_[d]->remove_elt_property (extremal_scm_sym) != SCM_BOOL_F)
{
if (d == LEFT)
dx_f_drul_[d] += notewidth;
#include "p-col.hh"
#include "vertical-align-engraver.hh"
-#include "vertical-align-spanner.hh"
-#include "vertical-group-spanner.hh"
+#include "axis-align-spanner.hh"
+#include "axis-group-spanner.hh"
Vertical_align_engraver::Vertical_align_engraver()
{
void
Vertical_align_engraver::do_creation_processing()
{
- valign_p_ =new Vertical_align_spanner;
+ valign_p_ =new Axis_align_spanner;
+ valign_p_->set_axis (Y_AXIS);
+ valign_p_->stacking_dir_ = DOWN;
+
valign_p_->set_bounds(LEFT,get_staff_info().command_pcol_l ());
announce_element (Score_element_info (valign_p_ , 0));
}
{
valign_p_->threshold_interval_[SMALLER] = Real (dist);
}
-
+
+ dist = get_property ("alignmentReference",0);
+ if (dist.length_i () && dist.isnum_b ())
+ {
+ valign_p_->align_dir_ = int (dist);
+ }
valign_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
typeset_element (valign_p_);
valign_p_ =0;
void
Vertical_align_engraver::acknowledge_element (Score_element_info i)
{
- if (i.origin_grav_l_arr_.size() == 1
- && dynamic_cast<Vertical_group_spanner *> (i.elem_l_)
+ if (i.origin_grav_l_arr_.size() == 1 &&
+ dynamic_cast<Axis_group_spanner *> (i.elem_l_)
&& !i.elem_l_->parent_l (Y_AXIS))
{
- assert (!valign_p_->contains_b (i.elem_l_));
-
valign_p_->add_element (i.elem_l_);
}
}
+++ /dev/null
-/*
- vertical-align-spanner.cc -- implement Vertical_align_spanner
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "vertical-align-spanner.hh"
-
-
-
-
-Vertical_align_spanner::Vertical_align_spanner ()
-{
- axis_ = Y_AXIS;
-}
-
-void
-Vertical_align_spanner::do_print ()const
-{
- Align_element::do_print () ;
-}
+++ /dev/null
-/*
- vertical-group-elem.cc -- implement Horizontal_vertical_group_element
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "vertical-group-element.hh"
-#include "interval.hh"
-#include "item.hh"
-#include "debug.hh"
-
-
-Vertical_group_element::Vertical_group_element()
- : Axis_group_element (Y_AXIS,Y_AXIS)
-{
-}
-
-Interval
-Vertical_group_element::do_height() const
-{
- return Graphical_axis_group::extent (Y_AXIS);
-}
-
-
+++ /dev/null
-/*
- vertical-group-spanner.cc -- implement Vertical_group_spanner
-
- source file of the GNU LilyPond music typesetter
-
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "vertical-group-spanner.hh"
-#include "item.hh"
-#include "p-col.hh"
-
-Vertical_group_spanner::Vertical_group_spanner ()
-{
- axes_[0] = axes_[1] = Y_AXIS;
-}
Gourlay = 1.0
Wordwrap = 0.0
-
-papersize = "a4"
-
-\include "paper20.ly"
-
-\paper{
- \paper_twenty
-}
-
-% ugh
-\include "midi.ly"
-
% declarations for standard directions
left = -1
right = 1
major = 0
minor = 3
+
+
+papersize = "a4"
+
+\include "paper20.ly"
+
+\paper{
+ \paper_twenty
+}
+
+% ugh
+\include "midi.ly"
+
\include "dynamic.ly"
\include "property.ly"
sf = \absdynamic { "sf" }
sff = \absdynamic { "sff" }
sfz = \absdynamic { "sfz" }
+fz = \absdynamic { "fz" }
sp = \absdynamic { "sp" }
spp = \absdynamic { "spp" }
rfz = \absdynamic { "rfz" }
\type "Line_group_engraver_group";
\name ChoirStaff;
\consists "Vertical_align_engraver";
+ alignmentReference = \center;
\consists "Staff_group_bar_engraver";
\accepts "Staff";
\accepts "RhythmicStaff";
\consists "Span_bar_engraver";
\consists "Vertical_align_engraver";
\consists "Piano_bar_engraver";
+ alignmentReference = \center;
minVerticalAlign = 1.5*\staffheight;
\accepts "Staff";
\translator{\GrandStaffContext
minVerticalAlign = 3.0*\staffheight;
maxVerticalAlign = 3.0*\staffheight;
+
\name "PianoStaff";
}
StaffGroupContext= \translator {
- \type "Hara_kiri_line_group_engraver";
+% \type "Hara_kiri_line_group_engraver";
% \type "Line_group_engraver_group";
+ \type "Engraver_group_engraver";
\consists "Span_bar_engraver";
\consists "Vertical_align_engraver";
+ alignmentReference = \center;
+
\consists "Staff_group_bar_engraver";
\name StaffGroup;
\accepts "Staff";
};
\translator { \ChordNameContext }
-ScoreContext = \translator {
- \type Score_engraver;
- \name Score;
-
- \consists "Timing_engraver";
-
- \consists "Span_score_bar_engraver";
- \consists "Score_priority_engraver";
-% \consists "Priority_horizontal_align_engraver";
- \consists "Vertical_align_engraver";
-
-
- \accepts "StaffGroup";
- \accepts "Staff";
- \accepts "RhythmicStaff";
- \accepts "Lyrics";
- \accepts "ChordNames";
- \accepts "GrandStaff";
- \accepts "ChoirStaff";
- \accepts "PianoStaff";
-};
-\translator { \ScoreContext }
ScoreWithNumbers = \translator {
\type "Score_engraver";
\consists "Bar_number_engraver";
};
-OrchestralScoreContext= \translator {
+
+ScoreContext = \translator {
\type Score_engraver;
\name Score;
- barScriptPadding = "2.0"; % dimension \pt
- markScriptPadding = "4.0";
- barColumnPriority = "-4";
- markBreakPriority = "-4";
- defaultClef = treble;
\consists "Timing_engraver";
- \consists "Bar_number_engraver";
- \consists "Mark_engraver";
\consists "Span_score_bar_engraver";
\consists "Score_priority_engraver";
-
\consists "Vertical_align_engraver";
+ alignmentReference = \down;
+ defaultClef = treble;
- \accepts "ChoirStaff";
+ \accepts "Staff";
\accepts "StaffGroup";
- \accepts "HaraKiriStaff";
\accepts "RhythmicStaff";
\accepts "Lyrics";
\accepts "ChordNames";
\accepts "GrandStaff";
+ \accepts "ChoirStaff";
\accepts "PianoStaff";
+};
+
+\translator { \ScoreContext }
+
+OrchestralScoreContext= \translator {
+ \ScoreContext
+
+ barScriptPadding = "2.0"; % dimension \pt
+ markScriptPadding = "4.0";
+
+
+ \consists "Bar_number_engraver";
+ \consists "Mark_engraver";
+
+ \accepts "HaraKiriStaff";
};
bar_kern = 0.5 * \interline;
bar_thinkern = 0.75 * \interline;
barthick_thick = 0.5* \interline;
+barthick_score = 0.13333* \interline;
barthick_thin = 0.1*\interline;
Can't be, these are ugly! Changed to old (TeX) values.
Begin3
Titel: LilyPond
-Versie: 1.1.36
-Inschrijf datum: 18MAR99
+Versie: 1.1.37
+Inschrijf datum: 29MAR99
Beschrijving: @FLAPTEKST@
Trefwoorden: muziek typezetten midi notatie
Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
- 770k lilypond-1.1.36.tar.gz
+ 770k lilypond-1.1.37.tar.gz
Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.36.tar.gz
+ 770k lilypond-1.1.37.tar.gz
Copi-eer voorwaarden: GPL
End
Begin3
Title: LilyPond
-Version: 1.1.36
-Entered-date: 18MAR99
+Version: 1.1.37
+Entered-date: 29MAR99
Description:
LilyPond is the GNU Project music typesetter. This program can print
beautiful sheet music from a music definition file. It can also play
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 770k lilypond-1.1.36.tar.gz
+ 770k lilypond-1.1.37.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.36.tar.gz
+ 770k lilypond-1.1.37.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.1.36
+Version: 1.1.37
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.36.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.37.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
draw z1 .. z2;
fet_endchar;
-fet_beginchar("Brevis notehead", "-1", "brevisball")
+fet_beginchar("Brevis notehead", "-1", "brevishead")
draw_brevis(brevis_wid#);
fet_endchar;
% Some sources (eg Musix/OpusTeX think that the appendage should be on
% the right, my only other ref [Willemze], shows an appendage to the left
%
-fet_beginchar("Longa notehead", "-2", "longaball");
+fet_beginchar("Longa notehead", "-2", "longahead");
draw_brevis(brevis_wid#);
save theta;
z7 = z5;
fet_endchar;
+% TODO: Document these!
+
% setup user vars
def setup_notehead_vars =
save a_b,err_y_a,tilt,superness;
% whole note
% Wanske, p.38
-fet_beginchar("Whole notehead", "0", "wholeball")
+fet_beginchar("Whole notehead", "0", "wholehead")
setup_notehead_vars;
a_b:=1.80;
% half note
% Wanske, p.39
fet_beginchar("Half notehead", "1",
- "halfball")
+ "halfhead")
setup_notehead_vars;
% a_b:=1.49; % after text
a_b:=1.50; % after drawing
% quarter note
% Wanske p.38
-fet_beginchar("Quart notehead", "2", "quartball")
+fet_beginchar("Quart notehead", "2", "quarthead")
setup_notehead_vars;
% a_b:=1.57; % after text
a_b:=1.54; % after drawing
fet_endchar;
+% whole note
+% Wanske, p.38
+fet_beginchar("Whole diamondhead", "0diamond", "wholediamondhead")
+ setup_notehead_vars;
+
+ a_b:=1.80;
+ err_y_a:=0; % no slant
+ tilt:=0;
+ superness:=0.495;
+ ai_a:=0.400;
+ % ai_bi:=1.23;
+ ai_bi:=1.30; % jcn
+ % err_y_ai:=0.0938;
+ % err_x_bi:=0;
+ err_y_ai:=0;
+ err_x_bi:=0.115;
+ % inner_tilt:=135;
+ inner_tilt:=125; % jcn
+ % inner_superness:=0.69;
+ inner_superness:=0.6; % jcn
+ b_h:=1; %no rotate-> no height correction
+ a_w:=1; % no rotate-> no width correction
+
+ notehead_calc;
+ whole_notehead_width# := wd#;
+ notehead_draw;
+fet_endchar;
+
+
+% half note
+% Wanske, p.39
+fet_beginchar("Half diamondhead", "1diamond",
+ "halfdiamondhead")
+ setup_notehead_vars;
+
+ a_b := 1.50; % after drawing
+ err_y_a:=0.157;
+
+ tilt:=34;
+ superness:=0.49; % jcn
+ ai_a:=0.550; % jcn
+ ai_bi:=3.30; % jcn
+
+ err_y_ai:=0;
+ err_x_bi:=-0.12;
+ inner_tilt:=tilt;
+ inner_superness:=0.80;
+
+ b_h:= 1.03;
+ a_w:= 1.2;
+
+ notehead_calc;
+ half_notehead_width# := wd#;
+ notehead_draw;
+fet_endchar;
+
+
+% quarter note
+% Wanske p.38
+fet_beginchar("Quart diamondhead", "2diamond", "diamondhead")
+ set_char_box(0, black_notehead_width#, noteheight#/2, noteheight#/2);
+ save a_b,err_y_a,tilt,superness;
+ save b_h,a_w;
+ save a,beta,ai,bi, ht, wd;
+ a_b:= 1.8;
+ err_y_a:=-0.044;
+ b_h:=0.90;
+ a_w:=1.1;
+ tilt:=35;
+ superness:=0.495;
+ ht# =noteheight#;
+ 2beta#=ht#*b_h;
+ a# = beta#*a_b;
+
+ define_pixels(a,beta);
+
+ black := distorted_ellipse(.72 noteheight, .45 noteheight, -.2 noteheight , 0, superness)
+
+% beta,a*err_y_a,0,superness);
+
+ black:=black rotated tilt;
+ black:=black shifted (w/2,0);
+ fill black;
+
+fet_endchar;
+
+fet_beginchar("Crossed notehead", "2cross", "crossedhead")
+ set_char_box(0, black_notehead_width#, noteheight#/2, noteheight#/2);
+ pickup pencircle scaled 1.5 stafflinethickness;
+ lft x1 = 0;
+ bot y1 = -d;
+ top y2 = h;
+ rt x2 = w;
+
+ draw z1 .. z2;
+ draw (z1 .. z2) yscaled -1;
+fet_endchar
-%if test = 0:
-%else:
def draw_harmonic_notehead(expr harmwid) =
save beamheight, head_width, head_char_width;
- save holeheight, stem_width;
- save serif_size, serif_protrude;
save stemthick;
save thin, thick;
- save ht, schuif_op;
+ save ht;
-% setup_notehead_vars;
-
-% a_b:=1.54;
-% ai_a:=0;
-% ai_bi:=1;
-% b_h:=0.85;
-% a_w:=1.09;
-
-% notehead_calc;
-
-
head_width# = harmwid;
define_pixels(head_width);
-% ht# = noteheight#;
head_char_width = 1.54 noteheight;
head_char_width# := 1.54 ht#;
- %schuif_op = head_char_width - head_width; %ugh
- %schuif_op# := head_char_width# - head_width#;
-% set_char_box(0, head_char_width#, noteheight#/2, noteheight#/2);
+
+
set_char_box(0, head_width#, head_width#/2, head_width#/2);
-% 2 beamheight + holeheight = noteheight;
- thin = stafflinethickness;
- thick = 2.2 stafflinethickness;
-% serif_size = (holeheight - stafflinethickness)/2;
-% serif_protrude = 1.5 serif_size;
+
+ thin = stafflinethickness - blot_diameter/2;
+ thick = 2.2 stafflinethickness - blot_diameter/2;
penpos1(thick, 45);
penpos2(thin, 315);
penpos3(thin, 135);
- penpos4(thick, 45);
+ penpos4(thick, 55);
penpos5(thick, 225);
penpos6(thin, 135);
penpos7(thin, 315);
- penpos8(thick, 225);
+ penpos8(thick, 235);
+
+
+ pickup pencircle scaled blot_diameter;
+
+ lft x1l = 0;
+ y1l = 0;
-% 1.5 noteheight = head_width;
- z1l = (0, 0);
z2l = z1l;
-% z3l = (head_width/2,-head_width/2);
- z3l = (head_width/2, -noteheight/2);
+
+ bot y3l = -noteheight/2;
+ x3l = head_width/2;
z4l = z3l;
- z5l = (head_width, 0);
+ rt x5l = head_width;
+ y5l = 0;
z6l = z5l;
-% z7l = (head_width/2, head_width/2);
- z7l = (head_width/2, noteheight/2);
+
+ top y7l = noteheight/2;
+ x7l = (head_width/2);
z8l = z7l;
-
- pickup pencircle; %scaled stemthick;
+
+
penlabels(1,2,3,4,5,6,7,8);
test_grid;
- fill z1l -- z2r -- z7r -- z7l -- cycle;
- fill z1l -- z1r -- z4r -- z4l -- cycle;
- fill z3r -- z3l -- z6l -- z6r -- cycle;
- fill z5r -- z5l -- z8l -- z8r -- cycle;
+ filldraw z1l -- z2r -- z7r -- z7l -- cycle;
+ filldraw z1l -- z1r -- z4r -- z4l -- cycle;
+ filldraw z3r -- z3l -- z6l -- z6r -- cycle;
+ filldraw z5r -- z5l -- z8l -- z8r -- cycle;
enddef;
-%save uitsteek;
-% uitsteek = .25;
harmonic_wid# := interline#;
-fet_beginchar("Harmonic notehead","harmonic","harmonicball")
+fet_beginchar("Harmonic notehead","2harmonic","harmonichead")
draw_harmonic_notehead(harmonic_wid#)
fet_endchar;
-%
+i%
% feta-generic.mf -- implement
%
% source file of the Feta (defintively not an abbreviation for Font-En-Tja)
% input feta-schrift;
% input feta-schrift;
% input feta-haak;
- input feta-timesig;
+% input feta-timesig;
fi
\score {
- \type GrandStaff <
+ \type PianoStaff <
\type Staff = treble <
\global
\dux
textheight = 295.\mm;
\translator{ \OrchestralScoreContext }
- \translator{
- \GrandStaffContext
- minVerticalAlign = 3.0*\staffheight;
- maxVerticalAlign = 3.0*\staffheight;
- }
}
\header{
opus = "BWV 847";
e'4. r8 |
e r e r |
e r e r |
-c4 \sfz r |
+c4 \fz r |
R2*12 |
r4 r8 g' ( |
) g,4. \f g8 ( |
R2*4 |
d4. \f r8 |
R2 |
-d4. \sfz r8 |
-d4. \sfz r8 |
+d4. \fz r8 |
+d4. \fz r8 |
d4 d-> ~ |
d4 d-> ~ |
d g ( |
e r |
c8 r d r |
es r d r |
-d \sfz r r4 |
+d \fz r r4 |
R2*2 |
d4 ( \p \< e |
\! f g \> ~ |
g ~ |
g |
R2*2 |
-d'2 \sfz \> ( |
+d'2 \fz \> ( |
) \! g, ~ |
g \p ~ |
g |
) e'4 r8 g,8 ( |
) c4 r |
R2 |
-e4 \sfz r^\fermata
+e4 \fz r^\fermata
}
corIhelp=\notes\relative c''' {
g'4. r8 |
e r e r |
e r e r |
-fis4 \sfz r |
+fis4 \fz r |
R2*13 |
r4 r8 g \f ( |
) g,4. r8 |
R2*6 |
d''4. \f r8 |
R2 |
-c4. \sfz r8 |
-c4. \sfz r8 |
+c4. \fz r8 |
+c4. \fz r8 |
g4 g,-> ~ |
g g-> ~ |
g g ~ |
e r |
c'8 r d r |
es r d r |
-g, \sfz r r4 |
+g, \fz r r4 |
R2*13 |
c,4. \f c8 ( |
)c,4. r8 |
c4.:8 e8 ( |
) g4. \f r8 |
R2 |
-g4. \sfz r8 |
+g4. \fz r8 |
g4. g8 ( |
) c r g4 ( |
) c8 r g4 ( |
g ~ |
g |
R2*2 |
-g \sfz ~ |
+g \fz ~ |
g ~ |
g ~ |
g |
) c,4 r8 g'8 ( |
) e4 r |
R2 |
-c'4-. \sfz r^\fermata
+c'4-. \fz r^\fermata
}
trpI=\notes\relative c'' {
e'4. r8 |
e8 r e r |
e r e r |
-d \sfz r r4 |
+d \fz r r4 |
R2*13 |
r4 g,8 \f r |
[d'-. d16 ( e ] ) d8 r |
d-. r |
g, r |
R2 |
-g4 \sfz r^\fermata
+g4 \fz r^\fermata
}
trpIhelp=\notes\relative c'' {
g-. r |
g r |
R2 |
-g4 \sfz r^\fermata
+g4 \fz r^\fermata
}
timpani=\notes\relative c, {
R2 |
f8 r r4 |
R2*3 |
-c'4 \sfz r |
+c'4 \fz r |
R2*12 |
r4 r8 f, \p |
[f \< f f \! f ] |
f2:32 ~ |
f8 r r4 |
r2 |
-f4 \sfz r^\fermata
+f4 \fz r^\fermata
}
timphelp=\notes\relative c' {
[c d c b ][ ) a8 a,16 ( b ] |
[) c8-. b16 ( c][ ) d8-. c16 ( d ] |
[ es f es ) d ][c8-. d'16 ( e ] |
-[f! \sfz g f e][d \> e d c ] |
+[f! \fz g f e][d \> e d c ] |
[ b c b \! a][g a g ) fis ] |
f!4 ( \p \< g |
\! a2 |
R2 |
r4 r8 a'-. \mf |
[a-. \< a-. a-. \! a-. ] |
-b4. \sfz r8 |
+b4. \fz r8 |
R2 |
r4 r8 a-. \mf |
[a-. \< a-. a-. \! a-. ] |
b^\trill \tiny [a16*1/2 b*1/2] \normalsize [) c8*1/2 bes' \f ( ] |
) bes'4.-> a8 |
[f-. e-. d-. f, ( ] |
-< ) d'4. \sfz a'> g,8 ( |
-< ) d'4. \sfz g> g,8 ( |
+< ) d'4. \fz a'> g,8 ( |
+< ) d'4. \fz g> g,8 ( |
) e' r g4-> ( |
) e8 r g4-> ( |
) e8 r es4 ( |
r4 e,-. \p |
a ( \< ) e' |
e-. () \! e-. |
-e \sfz \> [ d8 \! c ] |
+e \fz \> [ d8 \! c ] |
b2 \p | % \p added
\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis |
\! e ) b |
\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis |
\! e ) b |
-\tiny d8*1/2 \normalsize f2 \sfz ( *7/8 |
+\tiny d8*1/2 \normalsize f2 \fz ( *7/8 |
b,4 [c8 ) b] |
a2-> ~ |
gis4 e |
a ( ) e' |
e-. \< () \! e-. |
-e ( \sfz \> [ d8 \! c ] |
+e ( \fz \> [ d8 \! c ] |
) b2 \p |
\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis |
\! e ) b |
\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis |
\! e ) b |
-\tiny d8*1/2 \normalsize f2 \sfz ( *7/8 |
+\tiny d8*1/2 \normalsize f2 \fz ( *7/8 |
b,4 [c8 ) b] |
a2 \p ~ |
gis |
[f g f e][ ) d8 d,16 ( e ] |
[ ) f8 e16 ( f][ ) g8 f16 ( g ] |
[as bes as g][ ) f8 g'16 ( a! ] |
-[bes! \sfz c bes a][g a g ) f ] |
+[bes! \fz c bes a][g a g ) f ] |
[e ( f e d][c d c ) b ] |
bes!4 \p ( \< c | % \p added
\! d2 ~ |
e^\trill \tiny [d16*1/2 e*1/2] \normalsize [f8 *1/2 ) es' \f ( ] |
) es'4. d8 |
[bes-. a-. g-. bes, ( ] |
-) d'4. \sfz c,8 ( |
-) c'4. \sfz c,8 ( |
+) d'4. \fz c,8 ( |
+) c'4. \fz c,8 ( |
) a' r c4-> ( |
) a8 r c4-> ( |
) a8 r as4 ( |
f ) e |
es2 ~ |
d4 r |
-\tiny f'8*1/2 \normalsize a4 \sfz ( *3/4 e |
+\tiny f'8*1/2 \normalsize a4 \fz ( *3/4 e |
f b, |
) c r |
R2 |
[ ) bes8-. a16 ( bes ][ ) a8-. e'16 ( f ] |
[ ) e8-. d16 ( e ][ ) d8-. c16 \< ( d ] |
[ ) c8-. b16 ( \! c ][ ) b8-. bes ] |
-bes'4. \sfz \> a8 |
+bes'4. \fz \> a8 |
[g-. \! f-. ] [e-. c16 ( d ] |
[ ) c8-. b16 ( c ][ ) b8-. bes16 ( c ] |
[ ) bes8-. a16 ( bes ][ ) a8-. c16 ( d ] |
<a4 ) a'> r8 c, |
f2 ~ |
f ( |
-<f4 \sfz c' ) a'> r^\fermata
+<f4 \fz c' ) a'> r^\fermata
}
b^\trill \> \tiny [a16*1/2 b*1/2] \normalsize [ ) \! c8 *1/2 g' \f ( ] |
< ) g4.-> bes> a8 |
[a a a f ( ] |
-<d'4. \sfz ) a'> g,8 ( |
-<d'4. \sfz ) g> g,8 ( |
+<d'4. \fz ) a'> g,8 ( |
+<d'4. \fz ) g> g,8 ( |
<{ ) e r f4_> ( |
) e8 r f4_> ( |
) e8 }
) e4 r |
a,4:16 \p b4:16 |
c2:16 \< |
-\! b2:16 \sfz \> |
+\! b2:16 \fz \> |
\! b2:16 |
b4:16 \p \< \! c4:16 \> |
\! b2:16 |
b4:16 \p \< \! c4:16 \> |
\! b2:16 |
-\tiny d8*1/2 \normalsize f2 ( \sfz *7/8 |
+\tiny d8*1/2 \normalsize f2 ( \fz *7/8 |
) e |
[ a,16 ( \p d a d ][a d a d] |
[ b16 d b d ][b d b ) d] |
[) g a () f c' ( ] |
[) g a () f ] r |
R2 |
-r4 r8 [c'16 \sfz ( d ] |
+r4 r8 [c'16 \fz ( d ] |
[c d c a][f a c d] |
[f8 d ) c f, ( ] |
[f' d ) c ][f,16 ( g] |
[f g f e ][ ) d8 d'16 ( e ] |
[f g f e][ ) d8 d,16 ( e ] |
[ ) f8 e16 ( f][ ) g8 f16 ( g ] |
-[as bes as g][ ) f8 g'16 ( a! ] | % misprint sfz to early
-[bes! \sfz c bes a][g a g ) f ] |
+[as bes as g][ ) f8 g'16 ( a! ] | % misprint fz to early
+[bes! \fz c bes a][g a g ) f ] |
e r r8 r4 |
<{e,2 \p ~ |
e4 \< \! f |
R2*2 |
r4 r8 b \p |
b2:8 \< |
-< \! g4 bes! \sfz > r |
+< \! g4 bes! \fz > r |
R2 |
r4 r8 b \p |
b2:8 \< |
e f4 c8 ~ |
c d4 e8 ~ |
e \< e4 \! e8 ( |
-) bes'!4. \sfz \> \! a8 |
+) bes'!4. \fz \> \! a8 |
[g-. f-. e-.] r |
R2 |
r4 r8 es \p ~ |
<a4 ) a'> r8 c, |
[a16 ( gis a gis][a gis a gis] |
[a gis a gis][a gis a gis] |
-<) a4 f' \sfz > r^\fermata
+<) a4 f' \fz > r^\fermata
}
vla=\notes\relative c' {
[c d c b] ) a8 r |
<f8 a> r <f a> r |
<fis a> r <fis a> r |
-[<g \sfz d'> d'16 ( e][f g f e ] |
+[<g \fz d'> d'16 ( e][f g f e ] |
[d e d c] ) b8 r |
[as16 ( \p g as g] [fis g fis ) g ] |
[f! ( g f g][e g e ) g] |
<{[ \! c8 c c cis \f (]}{[g' g g s ]}> |
) cis'4.-> cis8 |
[d a d <d ( g,> ] |
-<f4. ) d' \sfz > <d8 ( g,> |
-<f4. ) d' \sfz > g,8 ( |
+<f4. ) d' \fz > <d8 ( g,> |
+<f4. ) d' \fz > g,8 ( |
[c,16 g' fis ) g] [c, (g' fis ) g ] |
[c, ( g' fis ) g] [c, (g' fis ) g ] |
[c, ( g' fis ) g] [c, (a' gis ) a ] |
g \> [fis8 ) \! dis ] |
e4 \< ( \! fis |
g \> [fis8 ) \! dis ] |
-<d!2 \sfz e, > ~ |
+<d!2 \fz e, > ~ |
<d2 e, > |
<d b > ~ |
<d b > |
r4 r8 [c16 \p ( d ] |
[ ) c8 c16 ( d ] [ ) c8 c16 ( d ] |
[ ) c8 c16 ( d ] [ ) c8 c16 ( f ] |
-[c \sfz f c f][ c f c ) f ] |
+[c \fz f c f][ c f c ) f ] |
[d ( f d f][ c f c ) f ] |
[d ( f d f] ) c8 r |
r4 r8 [ f16 () g ] |
[f g f e ] ) d8 r |
<bes d> r <bes d> r |
<b d> r <b d> r |
-[<c \sfz e^. > g'16 ( a ] [bes! \> c \! bes a ] |
+[<c \fz e^. > g'16 ( a ] [bes! \> c \! bes a ] |
[g a g f ] ) e r r8 |
[des16 ( \p c des c ] [ b c b c ] |
[bes! \< c bes c ] [ \! a c a ) c ] |
<{[f8 f f fis \f ~ ]}{[c'8 c c s]}> |
<a4. fis'4.> fis'8 |
[g d g <g, ( c,> ] |
-<c4. \sfz ) g'> <g8 ( c,> |
-<c4. \sfz ) g'> c,8 ( |
+<c4. \fz ) g'> <g8 ( c,> |
+<c4. \fz ) g'> c,8 ( |
[f16 c' b ) c ][ f, ( c' b ) c ] |
[ f, ( c' b ) c ] [ f, ( c' b ) c ] |
[ f, ( c' b ) c ] [ f, ( d' cis ) d ] |
g f4 e8 ~ |
e \< f4 e8 ~ |
\! e d4 c8 ( |
-<g'4. \sfz ) e'> f8 |
+<g'4. \fz ) e'> f8 |
[g-. a-. bes-. a ~ ] |
a as4 g8 ~ |
g f4 a!8 ~ |
<f4 ) c'> r8 c, |
[c'16 ( b c b][c b c b] |
[c b c b][c b c b] |
-<c4 \sfz ) a'> r^\fermata
+<c4 \fz ) a'> r^\fermata
}
vlc=\notes\relative c' {
) e4. [a,16 ( b ] |
[)c8 b16 ( c][)d8 c16 ( d] |
[es f es d] ) c8 r |
-[g \sfz d''16 ( e] [f g f e] |
+[g \fz d''16 ( e] [f g f e] |
[d e d c][b c b ) a] |
[as \p ( g as g][fis g fis g ] |
[f! \< g f g][e g e ) \! g] |
g4:16 \> \! a4:16 |
g4:16 \< \! a4:16 |
g4:16 \> \! a4:16 |
-gis2 \sfz ~ |
+gis2 \fz ~ |
gis |
f! ( |
[e8 d c ) b ] |
g4:16 \< \! a4:16 |
g4:16 \> a4:16 |
g4:16 \! a4:16 |
-gis2 \sfz ~ |
+gis2 \fz ~ |
gis ~ |
f \p \> |
\! e_"dim." |
) a4. [d,16 ( e ] |
[) f8-. e16 ( f] [) g8-. f16 ( g] |
[)as ( bes as g ] ) f8 r |
-c \sfz r r [e'16 ( f ] |
+c \fz r r [e'16 ( f ] |
[g a_"dim." g f][e f e ) d] |
[des \p \< ( c des c][b c b \! ) c ] |
[bes! ( c bes c][a c a ) c ] |
) f4 r8 c8 ( |
) f,2 ~ |
f ( |
-) f'4 \sfz r^\fermata
+) f'4 \fz r^\fermata
}
cb=\notes\relative c {
) e4. r8 |
f,8 r f' r |
fis r fis r |
-g \sfz r r4 |
+g \fz r r4 |
R2*3 |
r4 g, ( |
) c r |
\! e4 \> \! r |
e2 \< ~ |
\! e4 \> \! r |
-e2 \sfz ~ |
+e2 \fz ~ |
e |
f! ( |
[e8 d c ) b]
a2 \p ~ |
a |
-e' \sfz \> ~ |
+e' \fz \> ~ |
\! e4 r |
e2 \> ~ |
\! e4 r |
e2 \> ~ |
\! e4 r |
-e2 \sfz ~ |
+e2 \fz ~ |
e ~ |
f \p ~ |
e |
) a4. r8 |
bes, r bes' r |
b r b, r |
-c \sfz r r4 |
+c \fz r r4 |
R2*3 |
r4 c ( |
) f r |
) f4 r8 c8 ( |
) f,2 ~ |
f ( |
-) f'4 \sfz r^\fermata
-}
\ No newline at end of file
+) f'4 \fz r^\fermata
+}
[ ) d8-. c16 ( d ] ) c8 bes! \f ( |
) bes'4. r8 |
R2 |
-d,4. \sfz r8 |
-d4. \sfz r8 |
+d,4. \fz r8 |
+d4. \fz r8 |
e8 r g4-> ( |
) e8 r g4-> ( |
) e8 r es4 ( |
r8 [g,-.^""^"solo" \p a-. b-. ] |
c r r4 |
R2*10 |
-\tiny d8 \sfz *1/2 \normalsize f2 \> ( *7/8 |
+\tiny d8 \fz *1/2 \normalsize f2 \> ( *7/8 |
\! b,4 [c8 b] |
a2-> |
) gis |
\! e ) b |
\tiny e8*1/2 \normalsize g4 ( \> *3/4 dis |
\! e_"dim." ) b |
-\tiny d!8 \sfz *1/2 \normalsize f2 ( \> *7/8 |
+\tiny d!8 \fz *1/2 \normalsize f2 ( \> *7/8 |
b,4 [ \! c8 b] |
a2 \p |
) gis |
[bes-. a-. \! a-. es' ( ] |
) a4. \f r8 |
r4 r8 bes, ( |
-) g'4. \sfz c,8 ( |
-) g'4. \sfz c,8 ( |
+) g'4. \fz c,8 ( |
+) g'4. \fz c,8 ( |
) a' r c4-> ( |
) a8 r c4-> ( |
) a8 r as4 ( |
) a'4 r8 c, ( |
) f4 r |
R2 |
-f4-. \sfz r^\fermata
+f4-. \fz r^\fermata
}
f-. [e-. \! e-.] bes \f ( |
) bes'4.-> a8-. |
[f'-. e-. d-.] f, ( |
-) f'4. \sfz g,8 ( |
-) g'4. \sfz g,8 ( |
+) f'4. \fz g,8 ( |
+) g'4. \fz g,8 ( |
) e' r g4-> ( |
) e8 r g4-> ( |
) e8 r es4-> ( |
bes-. [a-. \! a-.] a( \f |
) es'4.-> d8 |
[bes-. a-. g-.] bes, ( |
-) d'4. \sfz c,8 ( |
-) c'4. \sfz c,8 ( |
+) d'4. \fz c,8 ( |
+) c'4. \fz c,8 ( |
) a' r c4-> ( |
) a8 r c4-> ( |
) a8 r as4-> ( |
) a4 r8 c ( |
) f4 r |
R2 |
-f4 \sfz r^\fermata
+f4 \fz r^\fermata
}
) e8 [\! d16 ( e ] ) d8-. c! \f ~ |
c'4.-> b8 |
[g-. fis-. e-.] g,8 ~ |
-b'4. \sfz a,8 ~ |
-a'4. \sfz a,8 ~ |
+b'4. \fz a,8 ~ |
+a'4. \fz a,8 ~ |
fis' r a4-> ~ | % -> added
fis8 r a4-> ~ |
fis8 r f4 ~ |
fis ~ |
fis4 r |
R2*4 |
-e'2 \sfz \> ~ |
+e'2 \fz \> ~ |
\! fis,4 r |
b2 \> ~ |
\! ais4 r |
fis \> ~ |
\! fis4 r |
R2*4 |
-e'2 \sfz \> ~ |
+e'2 \fz \> ~ |
\! fis,4 r |
e'2 \p ~ |
ais, |
) a8-. [g16 ( as ] ) g8 b, \f ~ |
f'4.-> r8 |
r4 r8 c ~ |
-e'4. \sfz d,8 ~ |
+e'4. \fz d,8 ~ |
d'4. d,8 ~ |
b' r a4-> ~ |
g8 r a4-> ~ |
d'8-. \p r cis-. r |
c! r b r |
R2*2 |
-d4. \sfz d8 \> |
+d4. \fz d8 \> |
[d d \! d] r |
R2*3 |
r4 r8 c \f ~ |
b'4 r8 d, ~ |
g,2 ~ |
g ~ |
-g'4-. \sfz r^\fermata
+g'4-. \fz r^\fermata
}
g [ fis-. fis-. ] fis \f ~ | % \f added
dis'4.-> r8 |
r4 r8 g,8 ~ |
-e'4. \sfz g,8 ~ |
-e'4. \sfz g,8 ~ |
+e'4. \fz g,8 ~ |
+e'4. \fz g,8 ~ |
fis r a4-> ~ |
a8 r a4-> ~ |
a8 r gis4 ~ |
) \! a8-. [g16 ( as ] ) g8 f \f ~ |
b4.-> r8 |
r4 r8 c ~ |
-a'4. \sfz c,8 ~ |
-a'4. \sfz c,8 ~ |
+a'4. \fz c,8 ~ |
+a'4. \fz c,8 ~ |
b r c4-> ~ |
b8 r c4-> ~ |
b8 r bes4 ~ |
d ~ |
d4. r8 |
R2*6 |
-fis4. \sfz \> \! g8 |
+fis4. \fz \> \! g8 |
[a-. b-. c-. ] r |
R2*3 |
r4 r8 e, \f ~ |
d4 r8 d, ~ |
g2 ~ |
g ~ |
-b4-. \sfz r^\fermata
+b4-. \fz r^\fermata
}
fagotto=\notes\relative c' {
e4 r8 a ~ |
c r d r |
es r d r |
-d4 \sfz r |
+d4 \fz r |
R2*2 |
d4 \p ( \< e |
\! f b, \> |
\! e \> ~ |
\! e \< ~ |
\! e \> |
-\tiny \! d'8 \sfz *1/2 ~ \normalsize f2 \> *7/8 ~ |
+\tiny \! d'8 \fz *1/2 ~ \normalsize f2 \> *7/8 ~ |
\! e4. r8 |
f,2 \> ( ~ |
[ \! e8 d c ) b ] |
e ~ |
e ~ |
e |
-\tiny d'8 \sfz *1/2 ~ \normalsize f2 \> *7/8 ~ |
+\tiny d'8 \fz *1/2 ~ \normalsize f2 \> *7/8 ~ |
\! e4. r8 |
f,2 \p ~ |
e4 r |
a4 r8 d ~ |
f r g r |
as r g r |
-c,4 \sfz r |
+c,4 \fz r |
R2*6 |
bes4 ( \p \< a |
) \! g r |
R2*4 |
a2 \p \< ~ |
a4 ~ \! gis8 g ~ |
-c4. \sfz c8 \> |
+c4. \fz c8 \> |
[c c \! c ] r8 |
R2*2 |
es2 \p \< ~ |
f4 r8 c ~ |
f,2 ~ |
f ~ |
-c'4 \sfz r^\fermata
+c'4 \fz r^\fermata
}
oboehelp=\notes\relative c'' {
this.__set('include', tmp, 'environment')
- t=''
+ t= os.pathsep
if os.environ.has_key ('TEXINPUTS'):
t = os.environ['TEXINPUTS'] + os.pathsep
os.environ['TEXINPUTS'] = t + \
-
-
-
# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12
+# Generated automatically using autoconf version 2.13
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
# Initialize some other variables.
subdirs=
MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
# Maximum number of lines to put in a shell here document.
ac_max_here_lines=12
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.12"
+ echo "configure generated by autoconf version 2.13"
exit 0 ;;
-with-* | --with-*)
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
+ac_exeext=
+ac_objext=o
if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
# Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
# Make sure we can run config.sub.
-if $ac_config_sub sun4 >/dev/null 2>&1; then :
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
NONE)
case $nonopt in
NONE)
- if host_alias=`$ac_config_guess`; then :
+ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
fi ;;
*) host_alias=$nonopt ;;
esac ;;
esac
-host=`$ac_config_sub $host_alias`
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
if test -n "$MAKE"; then
ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_MAKE="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:816: checking for $ac_word" >&5
+echo "configure:817: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$FIND"; then
ac_cv_prog_FIND="$FIND" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_FIND="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:852: checking for $ac_word" >&5
+echo "configure:854: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$TAR"; then
ac_cv_prog_TAR="$TAR" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_TAR="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:886: checking for $ac_word" >&5
+echo "configure:889: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$BASH"; then
ac_cv_prog_BASH="$BASH" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_BASH="$ac_prog"
# Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
set dummy ${PYTHON:-python}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:919: checking for $ac_word" >&5
+echo "configure:923: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
/*)
ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
;;
+ ?:/*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a dos path.
+ ;;
*)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_path_PYTHON="$ac_dir/$ac_word"
echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1082: checking language" >&5
+echo "configure:1090: checking language" >&5
case "$language" in
En* | en* | Am* | am* | US* | us*)
lang=English;;
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1115: checking for $ac_word" >&5
+echo "configure:1123: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$STRIPROFF"; then
ac_cv_prog_STRIPROFF="$STRIPROFF" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_STRIPROFF="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1149: checking for $ac_word" >&5
+echo "configure:1158: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$YODL"; then
ac_cv_prog_YODL="$YODL" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_YODL="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1183: checking for $ac_word" >&5
+echo "configure:1193: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$YODL2HTML"; then
ac_cv_prog_YODL2HTML="$YODL2HTML" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_YODL2HTML="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1217: checking for $ac_word" >&5
+echo "configure:1228: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$YODL2LATEX"; then
ac_cv_prog_YODL2LATEX="$YODL2LATEX" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_YODL2LATEX="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1250: checking for $ac_word" >&5
+echo "configure:1262: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$YODL2MAN"; then
ac_cv_prog_YODL2MAN="$YODL2MAN" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_YODL2MAN="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1284: checking for $ac_word" >&5
+echo "configure:1297: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$YODL2MSLESS"; then
ac_cv_prog_YODL2MSLESS="$YODL2MSLESS" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_YODL2MSLESS="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1318: checking for $ac_word" >&5
+echo "configure:1332: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$YODL2TEXINFO"; then
ac_cv_prog_YODL2TEXINFO="$YODL2TEXINFO" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_YODL2TEXINFO="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1352: checking for $ac_word" >&5
+echo "configure:1367: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$YODL2TXT"; then
ac_cv_prog_YODL2TXT="$YODL2TXT" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_YODL2TXT="$ac_prog"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1410: checking for $ac_word" >&5
+echo "configure:1426: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$MAKEINFO"; then
ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_MAKEINFO="$ac_prog"
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(set) 2>&1 |
- case `(ac_space=' '; set) 2>&1` in
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
*ac_space=\ *)
# `set' does not quote correctly, so add quotes (double-quote substitution
# turns \\\\ into \\, and sed turns \\ into \).
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.12"
+ echo "$CONFIG_STATUS generated by autoconf version 2.13"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
$ac_vpsub
$extrasub
+s%@SHELL@%$SHELL%g
s%@CFLAGS@%$CFLAGS%g
s%@CPPFLAGS@%$CPPFLAGS%g
s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
s%@DEFS@%$DEFS%g
s%@LDFLAGS@%$LDFLAGS%g
s%@LIBS@%$LIBS%g
INSTALLATION_FILES=$(DIST_FILES) $(NON_ESSENTIAL_DIST_FILES) GNUmakefile config.make config.status
include $(stepdir)/install-targets.make
endif
+
+localclean:
+ rm -f bin/*.pyc
+ rm -f stepmake/stepmake stepmake/bin stepmake/aclocal.m4
local-dist: configure
local-distclean:
- rm -f config.hh config.make Makefile config.cache \
- config.status config.log index.html
+ rm -f config.h config.hh config.make Makefile GNUmakefile \
+ config.cache config.status config.log index.html
local-maintainerclean:
rm -f configure
-ln -f $(depth)/$(distname).diff.gz out-www
tar cfz $(outdir)/htmldoc.tar.gz `cat wwwlist` `ls *.png out-www/$(distname).diff.gz $(ERRORLOG)` index.html
+localclean:
+ rm -f wwwlist
# if you fix this, please fix yodl too!
check-top-web:
\def\placebox#1#2#3{%
\botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}%
-
+%
+%
+% UGH! JUNKME!
+%
\def\fetsixteendefs{%
\font\fetasixteen = feta16
\font\fetanummersixteen = feta-nummer8
}
\def\lilyfooterPlainTeX{
- \footline={\ifnum\pageno=1\smalltextfont\mudelacopyright\hfil \LilyIdString
+ \footline={\ifnum\pageno=1\smalltextfont\mudelacopyright\hfil \mudelatagline
\else\hfil\the\pageno\hfil\fi}%
}
\advance\hoffset by -.6in