file(/var/lib/texmf). A script automating this has been included, see
file(buildscripts/clean-fonts.sh).
-
question(How does PS output work?)
itemize(
-it() Generate the PostScript Type-3 fonts. In the file(mf/)
+ it()
+Generate the PostScript Type-3 fonts. In the file(mf/)
subdirectory, issue:
verb(
- make pfa
-)
-it() Run lilypond with option tt(-f ps):
+ make pfa
+) in the mf/ subdirectory. This will also make file(mfplain) for metapost.
+it()
+Run lilypond with option tt(-f ps):
verb(
lilypond -fps foo.ly
)
it() To view the file(.ps) output with GhostView, set GS_FONTPATH to the
-directory containing the pfas. In the source tree, this is file(mf/out/),
+directory containing the file(pfa)s, and set GS_LIB to the directory containing the file(.ps) library files of LilyPond. In the source tree, these are file(mf/out/) and file(ps/).
+
+
i.e. do something like:
verb(
export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
+ export GS_LIB=$HOME/usr/src/lilypond/ps
gv foo.ps &
)
)
Direct PS output is still experimental. For creating nice looking ps
output, use TeX() and code(dvips).
-
+
question(The beams and slurs are gone if use the XDvi magnifying glass!?)
The beams and slurs are done in PostScript. XDvi doesn't show
@misc{MusicEase,
title = {MusicEase},
author = {Gary M. Rader},
- HTML={http://mesa.colorado.edu/\~grader/musicez.html },
- note={Described in Computer vol 29(6). Shareware},
+ HTML = {http://mesa.colorado.edu/\~grader/musicez.html },
+ note = {Described in Computer vol 29(6). Shareware},
}
+@Misc{quickscore,
+ title = {QuickScore},
+ publisher={Sion Software},
+ html={http://www.infoserve.net/quickscore/pages.html}
+}
+
@misc{LIME,
title = {LIME},
HTML={http://datura.cerl.uiuc.edu/},
+pl 35.uu1
+ - more memory tweaks: don't do Score_element::line_l () when deleting lines.
+ - more generic properties.
+ - change ridic. dims assert into warning.
+ - tex/ midi fixes (thanks, Mats).
+ - bf: don't crash when no Stem_infos are set.
+ - extender-spanner simplification
+ - working MIDI chords (Thanks Dscho)
+
pl 35.jcn1
- some ps fixes
Grep for TODO and ugh/ugr/urg.
.* BUGS
+. * header for PS enteredby = "bla <bla@bar.com>"
+. * ps/lily.ps
. * AFM for BlueSky AFM files.
. * staff size for post/prebreaks
. * .ly files
. *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.
-
-. * tetex: mfplain.mem
. * fix singleStaffBracket
. * declare performers in \midi
. * fix MIDI
specify the third. Should there be?
.* TODO before 1.2
+. * \selectmusic to cut pieces from music.
. * break priority setting from SCM.
. * Gade score
. * remove [] in favour of auto-beamer
. * glibc 2.0:
f = fopen ("/dev/null", "r")
assert (feof (f))
+
+. * tetex: mfplain.mem
.* 3RD PARTY PROJECTS:
. * make GCC warn about ctor that leaves member vars uninitialised.
. * GNU patch
So the best way of handling this, is
-- supporting dynamic settings in Audio_note
+ 1 supporting dynamic settings in Audio_note
-- mimicking the broadcast/acknowledge mechanism of the Engravers in
+ 2 mimicking the broadcast/acknowledge mechanism of the Engravers in
the Performers
-- using that mechanism to write a Dynamics_performer that will modify
+ 3 using that mechanism to write a Dynamics_performer that will modify
any notes it finds to set appropriate strengths.
You could also kludge this by deriving from Performer_group_performer
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=1
-PATCH_LEVEL=35
-MY_PATCH_LEVEL=jcn1
+PATCH_LEVEL=36
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
# urg, never know what names these teTeX guys will think up
+
for ac_prog in mf
do
# 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:2073: checking for $ac_word" >&5
+echo "configure:2074: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# 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:2108: checking for $ac_word" >&5
+echo "configure:2109: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# 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:2145: checking for $ac_word" >&5
+echo "configure:2146: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# 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:2180: checking for $ac_word" >&5
+echo "configure:2181: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
METAPOST=$MPOST
fi
+ for ac_prog in inimf
+do
+# 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:2218: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$INIMETAFONT"; then
+ ac_cv_prog_INIMETAFONT="$INIMETAFONT" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_INIMETAFONT="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+INIMETAFONT="$ac_cv_prog_INIMETAFONT"
+if test -n "$INIMETAFONT"; then
+ echo "$ac_t""$INIMETAFONT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$INIMETAFONT" && break
+done
+test -n "$INIMETAFONT" || INIMETAFONT="no"
+
+ if test "x$INIMETAFONT" = "xno"; then
+ for ac_prog in inimfont
+do
+# 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:2253: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$INIMFONT"; then
+ ac_cv_prog_INIMFONT="$INIMFONT" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_INIMFONT="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+INIMFONT="$ac_cv_prog_INIMFONT"
+if test -n "$INIMFONT"; then
+ echo "$ac_t""$INIMFONT" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$INIMFONT" && break
+done
+test -n "$INIMFONT" || INIMFONT="-echo no inimf or inimfont"
+
+ INIMETAFONT=$INIMFONT
+ fi
+
+ for ac_prog in inimp
+do
+# 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:2290: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$INIMETAPOST"; then
+ ac_cv_prog_INIMETAPOST="$INIMETAPOST" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_INIMETAPOST="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+INIMETAPOST="$ac_cv_prog_INIMETAPOST"
+if test -n "$INIMETAPOST"; then
+ echo "$ac_t""$INIMETAPOST" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$INIMETAPOST" && break
+done
+test -n "$INIMETAPOST" || INIMETAPOST="no"
+
+ if test "x$INIMETAPOST" = "xno"; then
+ for ac_prog in inimpost
+do
+# 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:2325: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$INIMPOST"; then
+ ac_cv_prog_INIMPOST="$INIMPOST" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_INIMPOST="$ac_prog"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+INIMPOST="$ac_cv_prog_INIMPOST"
+if test -n "$INIMPOST"; then
+ echo "$ac_t""$INIMPOST" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+test -n "$INIMPOST" && break
+done
+test -n "$INIMPOST" || INIMPOST="-echo no inimp or inimpost"
+
+ INIMETAPOST=$INIMPOST
+ fi
+
+
+
# 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:2223: checking for $ac_word" >&5
+echo "configure:2370: 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
# 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:2257: checking for $ac_word" >&5
+echo "configure:2404: 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
# 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:2291: checking for $ac_word" >&5
+echo "configure:2438: 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
# 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:2325: checking for $ac_word" >&5
+echo "configure:2472: 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
# 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:2358: checking for $ac_word" >&5
+echo "configure:2505: 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
# 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:2392: checking for $ac_word" >&5
+echo "configure:2539: 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
# 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:2426: checking for $ac_word" >&5
+echo "configure:2573: 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
# 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:2460: checking for $ac_word" >&5
+echo "configure:2607: 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
## The GUILE_FLAGS macro.
## First, let's just see if we can find Guile at all.
echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2520: checking for Guile" >&5
+echo "configure:2667: checking for Guile" >&5
guile-config link > /dev/null || {
echo "configure: cannot find guile-config; is Guile installed?" 1>&2
exit 1
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gh_scm2doubles in -lguile""... $ac_c" 1>&6
-echo "configure:2532: checking for gh_scm2doubles in -lguile" >&5
+echo "configure:2679: checking for gh_scm2doubles in -lguile" >&5
ac_lib_var=`echo guile'_'gh_scm2doubles | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lguile $GUILE_LDFLAGS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2540 "configure"
+#line 2687 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
gh_scm2doubles()
; return 0; }
EOF
-if { (eval echo configure:2554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:2588: checking for 8-bit clean memcmp" >&5
+echo "configure:2735: checking for 8-bit clean memcmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
-#line 2596 "configure"
+#line 2743 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
}
EOF
-if { (eval echo configure:2609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2627: checking for vprintf" >&5
+echo "configure:2774: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2632 "configure"
+#line 2779 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
; return 0; }
EOF
-if { (eval echo configure:2658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2682: checking for _doprnt" >&5
+echo "configure:2829: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2687 "configure"
+#line 2834 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
; return 0; }
EOF
-if { (eval echo configure:2713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
for ac_func in memmem snprintf vsnprintf gettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2740: checking for $ac_func" >&5
+echo "configure:2887: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2745 "configure"
+#line 2892 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:2771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
# 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:2810: checking for $ac_word" >&5
+echo "configure:2957: 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
echo $ac_n "checking Checking TFM directory""... $ac_c" 1>&6
-echo "configure:2851: checking Checking TFM directory" >&5
+echo "configure:2998: checking Checking TFM directory" >&5
CMR10=`kpsewhich tfm cmr10.tfm`
TEX_TFMDIR=`dirname $CMR10`
echo "$ac_t""$TEX_TFMDIR" 1>&6
s%@MFONT@%$MFONT%g
s%@METAPOST@%$METAPOST%g
s%@MPOST@%$MPOST%g
+s%@INIMETAFONT@%$INIMETAFONT%g
+s%@INIMFONT@%$INIMFONT%g
+s%@INIMETAPOST@%$INIMETAPOST%g
+s%@INIMPOST@%$INIMPOST%g
s%@STRIPROFF@%$STRIPROFF%g
s%@YODL@%$YODL%g
s%@YODL2HTML@%$YODL2HTML%g
}
/// tighten array size_.
- void precompute() {
+ void tighten_maxsize() {
remax (size_);
}
Array<void*>::clear;
Array<void*>::set_size;
Array<void*>::empty;
- Array<void*>::reverse;
+ Array<void*>::reverse;
+ Array<void*>::tighten_maxsize;
T * get (int i)
{
return (T*) Array<void*>::get (i);
/* urg, copied from Beam_engraver */
Scalar prop = get_property ("beamslopedamping", 0);
if (prop.isnum_b ())
- beam_p->damping_i_ = prop;
+ beam_p->set_elt_property (damping_scm_sym, gh_int2scm( prop));
prop = get_property ("beamquantisation", 0);
if (prop.isnum_b ())
if (hang_on_clef_b_)
{
Clef_item * c = dynamic_cast<Clef_item*> (e);
- if (c && c->default_b_)
+
+
+ // urg.
+ if (c) // && c->default_b_)
{
i = c;
}
Scalar prop = get_property ("beamslopedamping", 0);
if (prop.isnum_b ())
- beam_p_->damping_i_ = prop;
-
+ beam_p_->set_elt_property (damping_scm_sym, gh_int2scm( prop));
+
prop = get_property ("beamquantisation", 0);
if (prop.isnum_b ())
beam_p_->quantisation_ = (Beam::Quantisation)(int)prop;
#include "abbreviation-beam.hh"
#include "misc.hh"
#include "debug.hh"
-
#include "molecule.hh"
#include "leastsquares.hh"
#include "stem.hh"
{
slope_f_ = 0;
left_y_ = 0;
- damping_i_ = 1;
quantisation_ = NORMAL;
multiple_i_ = 0;
vertical_align_drul_[MIN] = 0;
Beam::do_brew_molecule_p () const
{
Molecule *mol_p = new Molecule;
+ if (!sinfo_.size ())
+ return mol_p;
+
Real x0 = stems_[0]->hpos_f ();
for (int j=0; j <stems_.size (); j++)
{
for (int i=0; i <stems_.size (); i++)
{
Stem *s = stems_[i];
- s->beam_dir_ = dir_;
- if (!s->dir_forced_b_)
+ s->set_elt_property (beam_dir_scm_sym, gh_int2scm (dir_));
+
+ SCM force = s->remove_elt_property (dir_forced_scm_sym);
+ if (force == SCM_BOOL_F)
s->dir_ = dir_;
}
}
damped = tanh (slope_f_)
corresponds with some tables in [Wanske]
*/
- if (damping_i_)
- slope_f_ = 0.6 * tanh (slope_f_) / damping_i_;
+ SCM damp = remove_elt_property (damping_scm_sym);
+ int damping = 1; // ugh.
+ if (damp!= SCM_BOOL_F)
+ damping = gh_int2scm (SCM_CDR(damp));
+
+ if (damping)
+ slope_f_ = 0.6 * tanh (slope_f_) / damping;
quantise_dy ();
Real dy = c[3].y () - c[0].y ();
Molecule a;
- if (!dash_i_)
+ SCM d = get_elt_property (dashed_scm_sym);
+ if (d == SCM_BOOL_F)
a = lookup_l ()->slur (c);
else
- a = lookup_l ()->dashed_slur (c, thick, dash_i_);
+ a = lookup_l ()->dashed_slur (c, thick, gh_scm2int (SCM_CDR(d)));
if (check_debug && !monitor->silent_b ("Bow"))
{
}
/*
- ugh. Should be configurable.
+ PUT THIS IN GUILE!
*/
struct Clef_settings {
char const *name;
if (dynamic_cast<Bar*>(info.elem_l_)
&& clef_type_str_.length_i())
{
+ bool def = !clef_p_;
create_clef();
- if (!clef_req_l_)
- clef_p_->default_b_ = true;
+ if(def)
+ clef_p_->set_elt_property(visibility_lambda_scm_sym,
+ gh_eval_str ("postbreak_only_visibility"));
}
/* ugh; should make Clef_referenced baseclass */
if (clef_type_str_.length_i ())
{
create_clef();
- clef_p_->default_b_ = false;
+ clef_p_->set_elt_property (non_default_scm_sym, SCM_BOOL_T);
}
}
clef_p_->symbol_ = clef_type_str_;
clef_p_->y_position_i_ = clef_position_i_;
- clef_p_->octave_dir_ = octave_dir_;
+ if (octave_dir_)
+ {
+ clef_p_->set_elt_property (octave_dir_scm_sym, gh_int2scm (octave_dir_));
+ }
}
if (clef_req_l_)
{
create_clef();
- clef_p_->default_b_ = false;
}
else if (create_default_b_)
{
String type = get_property ("defaultClef", 0);
set_type (type.length_i () ? type : "treble");
create_clef ();
- clef_p_->default_b_ = false;
create_default_b_ =0;
}
}
Clef_item::do_pre_processing()
{
dim_cache_[Y_AXIS].translate (y_position_i_ * staff_line_leading_f () / 2.0);
- change_b_ = (break_status_dir() != RIGHT);
+ if (break_status_dir() != RIGHT)
+ {
+ symbol_ += "_change";
+ }
}
/*
Clef_item::Clef_item()
{
set_elt_property (breakable_scm_sym, SCM_BOOL_T);
- default_b_ = false;
- change_b_ = true;
- octave_dir_ = CENTER;
+
symbol_ = "treble";
y_position_i_ = -2;
}
{
if (!break_status_dir ()) // broken stuff takes care of their own texts
{
- SCM defvis = gh_eval_str ("(lambda (d) (if (= d 1) '(#f . #f) '(#t . #t)))");
G_text_item *g =0;
- if (octave_dir_)
+
+ SCM octave_dir = remove_elt_property (octave_dir_scm_sym);
+ if (octave_dir != SCM_BOOL_F)
{
+ Direction d = Direction (gh_int2scm (SCM_CDR(octave_dir)));
g = new G_text_item;
pscore_l_->typeset_element (g);
g->dim_cache_[X_AXIS].parent_l_ = &dim_cache_[X_AXIS];
add_dependency (g); // just to be sure.
- Real r = do_height ()[octave_dir_] + g->extent (Y_AXIS)[-octave_dir_];
+ Real r = do_height ()[d] + g->extent (Y_AXIS)[-d];
g->dim_cache_[Y_AXIS].set_offset (r);
+ g->set_elt_property (visibility_lambda_scm_sym,
+ get_elt_property (visibility_lambda_scm_sym));
}
-
- if (default_b_)
- {
- set_elt_property (visibility_lambda_scm_sym,
- defvis);
- if (g)
- g->set_elt_property (visibility_lambda_scm_sym,
- defvis);
- }
}
}
Molecule*
Clef_item::do_brew_molecule_p() const
{
- String t = symbol_;
- if (change_b_)
- t += "_change";
-
- Molecule*output = new Molecule (lookup_l ()->clef (t));
+ Molecule*output = new Molecule (lookup_l ()->clef (symbol_));
return output;
}
(c) 1998, 1999 Jan Nieuwenhuizen <janneke@gnu.org>
*/
+/*
+ TODO: too complicated implementation. Why the dx_drul?.
+ */
+
#include "box.hh"
#include "debug.hh"
Extender_spanner::Extender_spanner ()
: Directional_spanner ()
{
- item_l_drul_[LEFT] = item_l_drul_[RIGHT] = 0;
- dy_f_drul_[LEFT] = dy_f_drul_[RIGHT] = 0.0;
dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0;
}
-Extender_spanner::Extender_spanner (Extender_spanner const& c)
- : Directional_spanner (c)
-{
- item_l_drul_ = c.item_l_drul_;
- dy_f_drul_ = c.dy_f_drul_;
- dx_f_drul_ = c.dx_f_drul_;
-}
-
-Extender_spanner::~Extender_spanner ()
-{
-}
Offset
Extender_spanner::center () const
w += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
Real h = paper_l ()->get_realvar (extender_height_scm_sym);
Molecule a = lookup_l ()->filledbox ( Box (Interval (0,w), Interval (0,h)));
- a.translate (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT]));
+ a.translate (Offset (dx_f_drul_[LEFT], 0));
mol_p->add_molecule (a);
return mol_p;
}
-void
-Extender_spanner::do_add_processing ()
-{
- Direction d = LEFT;
- Drul_array<Item *> new_textitem_drul = item_l_drul_;
- do {
- if (!item_l_drul_[d])
- new_textitem_drul[d] = item_l_drul_[(Direction)-d];
- } while (flip(&d) != LEFT);
- item_l_drul_ = new_textitem_drul;
-}
-
Interval
Extender_spanner::do_height () const
{
void
Extender_spanner::do_post_processing ()
{
- assert (item_l_drul_[LEFT] || item_l_drul_[RIGHT]);
-
// UGH
Real nw_f = paper_l ()->note_width () * 0.8;
Direction d = LEFT;
do
{
- Item* t = item_l_drul_[d]
- ? item_l_drul_[d] : item_l_drul_[(Direction)-d];
+ Item* t = spanned_drul_[d]
+ ? spanned_drul_[d] : spanned_drul_[(Direction)-d];
if (d == LEFT)
dx_f_drul_[d] += t->extent (X_AXIS).length ();
else
while (flip(&d) != LEFT);
}
-void
-Extender_spanner::do_substitute_element_pointer (Score_element* o, Score_element* n)
-{
- Item* new_l = n ? dynamic_cast<Item *> (n) : 0;
- if (dynamic_cast <Item *> (o) == item_l_drul_[LEFT])
- item_l_drul_[LEFT] = new_l;
- else if (dynamic_cast <Item *> (o) == item_l_drul_[RIGHT])
- item_l_drul_[RIGHT] = new_l;
-}
void
Extender_spanner::set_textitem (Direction d, Item* textitem_l)
{
- assert (!item_l_drul_[d]);
- item_l_drul_[d] = textitem_l;
set_bounds (d, textitem_l);
-
add_dependency (textitem_l);
}
/** a beam connects multiple stems.
Beam adjusts the stems its owns to make sure that they reach the
- beam and that point in the correct direction */
+ beam and that point in the correct direction
+
+elt property:
+
+damping: amount of beam slope damping. (int)
+
+should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams
+
+
+*/
class Beam : public Directional_spanner {
public:
/**
/// position of leftmost end of beam
Real left_y_;
- /// should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams
- int damping_i_;
- /// should beam pos / slope be quantised? 0: no, 1: yes, 2: traditional
+
+ /** should beam pos / slope be quantised? 0: no, 1: yes, 2: traditional
+ JUNKME.
+ */
Quantisation quantisation_;
+
/// maximum number of beams (for opening-up of beam-spacing)
int multiple_i_;
#include "staff-symbol-referencer.hh"
/**
Set a clef in a staff.
+
+ properties:
+
+ nondefault: not set because of existence of a bar
+
+ octave_dir: should we print an octave symbol (8), and where? (up=1, down=-1)?
+
+ change: is this a change clef (smaller size)?
+
*/
class Clef_item : public Item, public Staff_symbol_referencer {
protected:
virtual Molecule* do_brew_molecule_p() const;
virtual void do_add_processing ();
public:
-
+
String symbol_;
int y_position_i_;
- /// is this a change clef (smaller size)?
- bool change_b_;
-
- /// set because of existence of a bar
- bool default_b_;
-
- /// should we print an octave symbol (8), and where? (up=1, down=-1)?
- Direction octave_dir_;
-
VIRTUAL_COPY_CONS(Score_element);
Clef_item();
};
class Extender_spanner : public Directional_spanner
{
public:
- Extender_spanner ();
- virtual ~Extender_spanner ();
-
+Extender_spanner ();
Offset center () const;
void set_textitem (Direction, Item*);
- Drul_array<Item *> item_l_drul_; // should use teh spanpoints field of item.
protected:
virtual Molecule* do_brew_molecule_p () const;
- void do_add_processing ();
Interval do_height () const;
- void do_substitute_element_pointer (Score_element* o, Score_element* n);
+
void do_post_processing ();
VIRTUAL_COPY_CONS (Score_element);
- Extender_spanner (Extender_spanner const&);
-
- Drul_array<Real> dy_f_drul_;
Drul_array<Real> dx_f_drul_;
};
DECLARE_LY_SYMBOL(beam);
DECLARE_LY_SYMBOL(beam_thickness);
+DECLARE_LY_SYMBOL(beam_dir);
DECLARE_LY_SYMBOL(bracket);
DECLARE_LY_SYMBOL(break_helper_only);
DECLARE_LY_SYMBOL(break_priority);
DECLARE_LY_SYMBOL(breakable);
DECLARE_LY_SYMBOL(char);
+DECLARE_LY_SYMBOL(change);
+DECLARE_LY_SYMBOL(damping);
+DECLARE_LY_SYMBOL(dashed);
+DECLARE_LY_SYMBOL(dir_forced);
DECLARE_LY_SYMBOL(extender_height);
DECLARE_LY_SYMBOL(filledbox);
DECLARE_LY_SYMBOL(fontsize);
DECLARE_LY_SYMBOL(interline);
DECLARE_LY_SYMBOL(linewidth);
DECLARE_LY_SYMBOL(notewidth);
+DECLARE_LY_SYMBOL(non_default);
+DECLARE_LY_SYMBOL(octave_dir);
DECLARE_LY_SYMBOL(output);
DECLARE_LY_SYMBOL(pianobrace);
DECLARE_LY_SYMBOL(placebox);
#define MIDI_WALKER_HH
#include "proto.hh"
-#include "plist.hh"
-#include "pcursor.hh"
#include "pqueue.hh"
#include "lily-proto.hh"
#include "moment.hh"
/**
walk audio and output midi
*/
-class Midi_walker// : public PCursor<Audio_item*>
+class Midi_walker
{
public:
Midi_walker (Audio_staff* audio_staff_l, Midi_track* midi_track_l);
#define NOTE_PERFORMER_HH
#include "performer.hh"
+#include "list.hh"
/**
*/
virtual void do_print() const;
private:
- Melodic_req * note_req_l_;
+ Array<Melodic_req *> note_req_l_;
};
#endif // NOTE_PERFORMER_HH
/// other elements
Link_array<Score_element> elem_p_arr_;
-
+
+ Link_array<Score_element> to_delete_arr_;
+ Link_array<Score_element> break_helpers_arr_;
public:
Paper_def *paper_l_;
void typeset_broken_spanner (Spanner*);
/// add a Spanner
void typeset_unbroken_spanner (Spanner*);
-
+
+ void schedule_for_delete (Score_element*);
virtual ~Paper_score();
protected:
TODO.
Stem size depends on flag.
+
+ elt properties:
+
+ beam_dir: direction of the beam (int)
+
+ dir_force: is direction explicitely specified? (bool)
+
*/
+// todo: remove baseclass Staff_symbol_referencer, since stem
+// can be across a staff.
class Stem : public Item, public Staff_symbol_referencer {
- Drul_array<Real> yextent_drul_;
/**extent of the stem (positions).
fractional, since Beam has to adapt them.
*/
-
+ Drul_array<Real> yextent_drul_;
/**
geen gedonder, jij gaat onder.
/// direction stem (that's me)
Direction dir_;
- /// is direction explicitely specified?
- bool dir_forced_b_;
- /// direction of the beam
- Direction beam_dir_;
Stem ();
/// ensure that this Stem also encompasses the Notehead #n#
void
Local_key_engraver::do_creation_processing ()
{
- /*
+/*
UGHGUHGUH.
Breaks if Key_engraver is removed from under us.
*/
#include "proto.hh"
-#include "plist.hh"
-#include "pcursor.hh"
#include "debug.hh"
#include "misc.hh"
#include "string.hh"
Note_performer::Note_performer ()
{
- note_req_l_ = 0;
}
void
Note_performer::do_print () const
{
#ifndef NPRINT
- if (note_req_l_)
- note_req_l_->print ();
+ if (note_req_l_.size()>0)
+ for(int i=0;i<note_req_l_.size();i++)
+ note_req_l_[i]->print ();
#endif
}
void
Note_performer::do_process_requests ()
{
- if (note_req_l_)
+ if (note_req_l_.size()>0)
{
int transposing_i = 0;
//urg
if (!prop.empty_b () && prop.isnum_b ())
transposing_i = prop;
+ while(note_req_l_.size()>0)
+ play (new Audio_note (note_req_l_.pop(), transposing_i));
- play (new Audio_note (note_req_l_, transposing_i));
-
- note_req_l_ = 0;
}
}
bool
Note_performer::do_try_music (Music* req_l)
{
- if (note_req_l_)
- return false;
-
if (Note_req *nr = dynamic_cast <Note_req *> (req_l))
{
- note_req_l_ = nr;
+ note_req_l_.push(nr);
return true;
}
return false;
Paper_score::Paper_score ()
{
+ paper_l_ =0;
outputter_l_ =0;
Line_of_score * line_p = new Line_of_score;
typeset_unbroken_spanner (line_p);
elem_p_arr_.push (elem_p);
elem_p->pscore_l_ = this;
elem_p->add_processing ();
+
+ SCM p = elem_p->remove_elt_property (break_helper_only_scm_sym);
+ if (p != SCM_BOOL_F)
+ break_helpers_arr_.push (elem_p);
}
span_p_arr_.push (span_p);
span_p->pscore_l_=this;
span_p->add_processing ();
+
+ SCM p = span_p->remove_elt_property (break_helper_only_scm_sym);
+ if (p != SCM_BOOL_F)
+ break_helpers_arr_.push (span_p);
}
void
-void delete_array_contents (Link_array<Score_element> const&to_remove, Dictionary<int> &type_stats)
+/*
+ not clean. Should update elem_p_arr_ and span_p_arr_. That would
+ also repair the stats.
+
+ This may be done efficiently by first sorting the arrays. */
+void
+delete_array_contents (Link_array<Score_element> &to_remove, Dictionary<int> &type_stats)
{
for (int i=0; i < to_remove.size (); i++)
{
type_stats["Total"] ++;
}
+ to_remove.clear ();
+ to_remove.tighten_maxsize ();
}
-Link_array<Score_element>
-Paper_score::remove_break_helpers ()
-{
- Link_array<Score_element> to_remove;
- Link_array<Score_element> keep;
- SCM help_sym = break_helper_only_scm_sym;
- for (int i=0; i < elem_p_arr_.size (); i++)
- {
- Score_element*e = elem_p_arr_[i];
- SCM p = e->get_elt_property (help_sym);
- if (p != SCM_BOOL_F)
- to_remove.push (e);
- else
- keep.push (e);
- }
- elem_p_arr_ = keep;
- Link_array<Spanner> keeps;
- for (int i=0; i<span_p_arr_.size ();i++)
- {
- Spanner *s = span_p_arr_[i];
- Score_element *e = s;
- SCM p = e->get_elt_property (break_helper_only_scm_sym);
- if (p != SCM_BOOL_F)
- to_remove.push (e);
- else
- keeps.push (s);
- }
-
-
- span_p_arr_ =keeps;
-
- return to_remove;
+void
+Paper_score::schedule_for_delete (Score_element*e)
+{
+ to_delete_arr_.push (e);
}
void
type_stats["Item"] =0;
type_stats["Spanner"] =0;
type_stats["Total"]=0;
-
+
print ();
*mlog << _ ("Preprocessing elements...") << " " << flush;
line_l_->breakable_col_processing ();
- line_l_->pre_processing ();
+ line_l_->pre_processing ();
- *mlog << '\n' << _ ("Calculating column positions...") << " " << flush;
- line_l_->space_processing ();
+ *mlog << '\n' << _ ("Calculating column positions...") << " " << flush;
+ line_l_->space_processing ();
Array<Column_x_positions> breaking = calc_breaking ();
- delete_array_contents (remove_break_helpers(), type_stats);
+
+ delete_array_contents (break_helpers_arr_, type_stats);
Paper_stream* paper_stream_p = paper_l_->paper_stream_p ();
outputter_l_ = paper_l_->paper_outputter_p (paper_stream_p, header_l_, origin_str_);
if (experimental_features_global_b)
*mlog << elem_p_arr_.size () + span_p_arr_.size () << " elements. ";
+
*mlog << "\nLine ... ";
for (int i=0; i < lines.size (); i++)
{
*mlog << '(' << elem_p_arr_.size () + span_p_arr_.size () << ')';
*mlog << ']' << flush;
- Link_array<Score_element> to_remove (remove_line (line_l));
-
- delete_array_contents (to_remove, type_stats);
- }
+
+ delete_array_contents (to_delete_arr_, type_stats);
+ }
// huh?
delete outputter_l_;
}
-
-Link_array<Score_element>
-Paper_score::remove_line (Line_of_score *l)
-{
- Link_array<Score_element> to_remove;
- Link_array<Score_element> keep;
- for (int i=0; i < elem_p_arr_.size (); i++)
- {
- Score_element*e = elem_p_arr_[i];
- if (e->line_l () == l)
- to_remove.push (e);
- else
- keep.push (e);
- }
-
- elem_p_arr_ = keep;
- Link_array<Spanner> keeps;
- for (int i=0; i<span_p_arr_.size ();i++)
- {
- Spanner *s = span_p_arr_[i];
- Score_element *e = s;
- if (e->line_l () == l)
- to_remove.push (e);
- else
- keeps.push (s);
- }
-
-
- span_p_arr_ =keeps;
- return to_remove;
-}
-
Link_array<Item>
Paper_score::broken_col_range (Item const*l, Item const*r) const
{
if (!i->func_)
continue;
- assert (a_off.length () < 100 CM);
+ if (a_off.length () > 100 CM)
+ {
+ warning (_f("Improbable dimension for object type `%s\'", nm));
+ Axis a =X_AXIS;
+ while (a < NO_AXES)
+ {
+ if (abs(a_off[a]) > 50 CM)
+ a_off[a] = 50 CM;
+ incr (a);
+ }
+ }
if (i->font_)
{
MIDI players tend to ignore instrument settings on
channel 10, the percussion channel by default.
*/
- if (channel == 10)
+ if (channel == 9)
channel++;
s->output (midi_stream, channel++);
}
Score_element::get_elt_property (SCM sym) const
{
SCM s = scm_assq(sym, element_property_alist_);
+
// is this a good idea?
- if (s == SCM_BOOL_F && pscore_l_)
+ if (s == SCM_BOOL_F && pscore_l_ && pscore_l_->paper_l_)
s = pscore_l_->paper_l_->get_scm_var (sym);
return s;
if (get_elt_property (transparent_scm_sym) != SCM_BOOL_F)
return;
+ // we're being silly here.
if (output_p_)
delete output_p_;
pscore_l_->outputter_l_->output_molecule (output_p_,
absolute_offset (),
classname(this));
+
+ pscore_l_->schedule_for_delete (this);
}
+
/*
VIRTUAL STUBS
notes.push (info.o_ - left);
}
Encompass_info info (encompass_arr_.top (), dir_, this);
- // [encompass_arr_.size () - 1]
// urg:
Slur* urg = (Slur*)this;
if (dir)
{
stem_p_->dir_ = dir;
- stem_p_->dir_forced_b_ = true;
+ stem_p_->set_elt_property (dir_forced_scm_sym, SCM_BOOL_T);
}
Translator_group const *which;
stem_l_ = s;
x_ = stem_l_->hpos_f ();
dir_ = stem_l_->dir_;
- beam_dir_ = stem_l_->beam_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;
#include "beam.hh"
#include "rest.hh"
-
-
-
Stem::~Stem ()
{
}
Stem::Stem ()
{
- /*
- TODO: staff-size
- */
beams_i_drul_[LEFT] = beams_i_drul_[RIGHT] = -1;
mult_i_ = 0;
yextent_drul_[DOWN] = yextent_drul_[UP] = 0;
flag_i_ = 2;
dir_ = CENTER;
- beam_dir_ = CENTER;
- dir_forced_b_ = false;
stem_xdir_ = LEFT;
beam_gap_i_ = 0;
Begin3
Titel: LilyPond
-Versie: 1.1.35
-Inschrijf datum: 15MAR99
+Versie: 1.1.36
+Inschrijf datum: 18MAR99
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.35.tar.gz
+ 770k lilypond-1.1.36.tar.gz
Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.35.tar.gz
+ 770k lilypond-1.1.36.tar.gz
Copi-eer voorwaarden: GPL
End
Begin3
Title: LilyPond
-Version: 1.1.35
-Entered-date: 15MAR99
+Version: 1.1.36
+Entered-date: 18MAR99
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.35.tar.gz
+ 770k lilypond-1.1.36.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.35.tar.gz
+ 770k lilypond-1.1.36.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.1.35
+Version: 1.1.36
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.35.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.36.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>
Begin3
Title: StepMake
-Version: 0.1.71
-Entered-date: 22FEB99
+Version: 0.1.72
+Entered-date: 17MAR99
Description:
Keywords: music notation typesetting midi fonts engraving
Author: janneke@gnu.org (Jan Nieuwenhuizen)
hanwen@cs.ruu.nl (Han-Wen Nienhuys)
Maintained-by: janneke@gnu.org (Jan Nieuwenhuizen)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 40k stepmake-0.1.71.tar.gz
+ 40k stepmake-0.1.72.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
- 40k stepmake-0.1.71.tar.gz
+ 40k stepmake-0.1.72.tar.gz
Copying-policy: GPL
End
Name: stepmake
-Version: 0.1.71
+Version: 0.1.72
Release: 1
Copyright: GPL
Group: Development
-Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.71.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.72.tar.gz
Summary: generic make package
Packager: janneke@gnu.org (Jan Nieuwenhuizen)
Buildroot: /tmp/stepmake-install
\rhead{}
\chead{}
\lfoot{}
-\cfoot{\ifnum\thepage=1{\hfill\LilyIdString}\fi}
+\cfoot{\ifnum\thepage=1{\hfill\mudelatagline}\fi}
\rfoot{\ifnum\thepage>1{\hfill\thepage\hfill}\fi}
\headrulewidth0mm
\pagestyle{fancy}
\renewcommand{\@evenfoot}{}%
\renewcommand{\@evenhead}{}%
\renewcommand{\@oddfoot}{%
- \ifnum\thepage=1{\hfil \LilyIdString}%
+ \ifnum\thepage=1{\hfil \mudelatagline}%
\else{%
foo\hfil\the\pageno\hfil}%
\fi}}
\renewcommand{\@evenfoot}{}%
\renewcommand{\@evenhead}{}%
\renewcommand{\@oddfoot}{%
- \ifnum\thepage=1{\hfil \LilyIdString}%
+ \ifnum\thepage=1{\hfil \mudelatagline}%
\else{foo\hfil\the\pageno\hfil}%
\fi}}%
\nopagenumbers