From 52102901e53611ad7bad111c2f9d414d2e593bc3 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Tue, 13 May 1997 00:32:15 +0200 Subject: [PATCH] release: 0.0.61 --- .version | 2 +- Documentation/faq.pod | 9 ++++ Documentation/lilypond.pod | 7 +++ NEWS | 29 ++++++++++++ TODO | 78 ++++++++++++++------------------- bin/make_patch | 6 ++- bin/make_website | 6 ++- configure | 58 +++++++++++++----------- configure.in | 15 ++++--- flower/.version | 2 +- flower/NEWS | 4 ++ flower/choleski.cc | 6 +-- flower/dstream.cc | 69 +++++++++++++++++------------ flower/flower-debug.cc | 3 ++ flower/include/dstream.hh | 19 +++++--- flower/include/fproto.hh | 4 +- flower/include/list.hh | 2 +- flower/include/parray.hh | 34 ++++++++++++++ flower/include/pcursor.hh | 10 ++--- flower/include/plist.hh | 26 +++++------ flower/include/plist.icc | 2 +- flower/include/plist.tcc | 8 ++-- init/table_sixteen.ini | 12 ++--- input/keys.ly | 31 +++++++++++++ input/scripts.ly | 75 +++++++++++++++++++++++++++++++ input/toccata-fuga-E.ly | 39 ++++++++++------- lib/include/source.hh | 2 +- lily/.version | 2 +- lily/crescendo.cc | 11 +++-- lily/include/beam.hh | 2 +- lily/include/input-music.hh | 4 +- lily/include/input-register.hh | 2 +- lily/include/input-score.hh | 2 +- lily/include/input-staff.hh | 2 +- lily/include/local-key-reg.hh | 6 ++- lily/include/molecule.hh | 2 +- lily/include/musical-request.hh | 1 + lily/include/p-col.hh | 4 +- lily/include/p-score.hh | 14 +++--- lily/include/p-staff.hh | 4 +- lily/include/pulk-voices.hh | 6 +-- lily/include/register-group.hh | 2 +- lily/include/request-column.hh | 4 +- lily/include/rest-column.hh | 1 + lily/include/score.hh | 6 +-- lily/include/scoreline.hh | 4 +- lily/include/staff.hh | 6 +-- lily/include/tie-reg.hh | 2 + lily/include/tie.hh | 2 +- lily/include/voice-element.hh | 2 +- lily/include/voice.hh | 2 +- lily/lexer.l | 2 +- lily/local-key-reg.cc | 64 +++++++++++++++++---------- lily/musical-request.cc | 14 +++++- lily/note.cc | 2 + lily/p-score.cc | 2 +- lily/parser.y | 2 +- lily/pulk-voices.cc | 2 +- lily/request-column.cc | 2 +- lily/rest-collision.cc | 2 +- lily/rest-column.cc | 6 +++ lily/slur.cc | 10 ++++- lily/staff.cc | 2 +- lily/template4.cc | 2 +- lily/text-def.cc | 2 +- lily/text-item.cc | 2 +- lily/text-reg.cc | 5 ++- lily/tie-reg.cc | 11 ++++- lily/tie.cc | 1 + make/Template.make | 3 +- make/lilypond.lsm | 6 +-- make/lilypond.spec | 6 +-- mf/Makefile | 2 +- tex/lilyponddefs.tex | 35 +++++++-------- 74 files changed, 563 insertions(+), 273 deletions(-) create mode 100644 flower/include/parray.hh create mode 100644 input/keys.ly create mode 100644 input/scripts.ly diff --git a/.version b/.version index d3c588005d..6ede8d6ba5 100644 --- a/.version +++ b/.version @@ -1,6 +1,6 @@ TOPLEVEL_MAJOR_VERSION = 0 TOPLEVEL_MINOR_VERSION = 0 -TOPLEVEL_PATCH_LEVEL = 60 +TOPLEVEL_PATCH_LEVEL = 61 # use to send patches, always empty for released version: # include separator: ".postfix", "-pl" makes rpm barf diff --git a/Documentation/faq.pod b/Documentation/faq.pod index 4aeef3751f..01445ded16 100644 --- a/Documentation/faq.pod +++ b/Documentation/faq.pod @@ -6,6 +6,15 @@ FAQ - GNU LilyPond FAQs Some questions that have been answered before. +=head2 Installing + +Q: I get all kinds of errors while compiling parser.cc + +A: LilyPond uses features of bison version 1.25. Please confirm that +you are using a version 1.25 or better. If the problem persists, then +please mail me. + + =head2 Language: mudela Q: Why can't you type C<#c> in stead of C ? diff --git a/Documentation/lilypond.pod b/Documentation/lilypond.pod index 1de734b053..2d71f9971f 100644 --- a/Documentation/lilypond.pod +++ b/Documentation/lilypond.pod @@ -244,6 +244,13 @@ http://www.stack.nl/~hanwen/lilypond/index.html. This webpage contains the MIDI, GIF and PS files for some standard music files. It also has the complete LilyPond documentation +A mailing list for GNU LilyPond has been setup, it's at +lilypond@gnu.ai.mit.edu. To subscribe, send mail to +lilypond-request@gnu.ai.mit.edu. + +For discussions concerning the GNU Music project, +gnu-music-discuss@vanderbilt. .edu + =head1 REMARKS GNU LilyPond has no connection with the music package Rosegarden, other diff --git a/NEWS b/NEWS index b44d208d44..f21cc70d03 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,24 @@ +pl 61 + - scales.ly bugfix: dimensions default to ((0,0),(0,0)) + - naming: PointerList->Pointer_list + - tied notes don't get accidental + - bf: crescendo size + - fixes: make_patch, + - bf: _"text" direction + - mailing list into lilypond.pod + +pl 60.mb + - set_flower_debug: Warning if -d is used when NPRINT is defined. + - Fixed several TeX details. vcenter renamed since it interfered + with LaTeX. Position of accents changed. + - New example; scriptS.ly + - table_sixteen: added scriptdefinition (Lilypond breaks if a + script is defined without dimensions). + - bf: ifndef typos in p-score.cc, choleski.cc + - bf: Slur::do_post_processing(), whole notes caused SIGSEGV. + + +******* pl 60 - Request_register::get_feature(), tie direction, Slur direction - lilypond output is now directly texable. @@ -13,6 +34,14 @@ pl 59 ****** may 2 +pl 58.jnc1 + - bf: toccata-fuga-E.ly + +pl 57.jcn4 + - mi2mu handles rests (quantified only) + - fixed configure buglet + - "!date" Fri May 2 02:18:12 MET DST 1997 + pl 58 - lexer cleanup - national chars in lyrics diff --git a/TODO b/TODO index b65304f456..e4b56d2381 100644 --- a/TODO +++ b/TODO @@ -24,8 +24,7 @@ IMPORTANT * a Hands on tutorial [HKN] - -PROJECT: +PROJECTS * Output class, handles - help text /(c) notice? @@ -34,21 +33,35 @@ PROJECT: - quiet/ignore-version options - logfile output - * elaborate Staff_side baseclass: - - scripts - - text - - slur start/end + - scripts + - text + - slur start/end * Output an output format independent (ofi) typeset file; and make ofi2 TeX, MusixTex, PostScript, Ascii... interpreters. - poor man's ascii output possible? - - MusixTeX output possible? + - MusixTeX output possible? (would have to be done before break calc.) + - NIFF ? - PostScript output (esp. Beams, Slurs, etc) + * TeX spanners , use texbeam.cc as an example + - Glissando + - trill + - bracket + + * Rewrite Beam and Rhythmic_grouping + - [c8. c32 c32] + - interbeam height + - general shaving + - use plet grouping + - abbreviations [c2 c2]1/2 + - separate visual from rhythmic info + PARSER - * Duration-> Musical_duration, typedef Rational Duration? + * Duration -> Musical_duration, typedef Rational Duration? +********************** HKN buglist: \bar || ook dunne streepjes? Sluit de balk niet af! (soms met de @@ -60,21 +73,12 @@ Hele rusten ook in andere maatsoort dan 4/4 (en centreren in de maat) barcheck failed in lyric mode -> assert (zie barcheck.ly) (0.0.57) ------------------------/ -optie om te stoppen na eerste barcheck fail? (en wellicht in eerder -stadium van preprocessing) - noten staan vaak te dicht aan de rechterkant van de maatstreep. optie om nummers/markers boven maatstrepen te zetten tekst staat erg ver van notenbalken af -barcheck her-synchroniseren? (evt met optie) - -script ^"3" onder ondanks boven? - -symbolen voor triller? (dus "tr---") - waarom geen ; achter dingen in \paper? (\textwidth 180\mm) (sowieso: wanneer wel en geen ; ?) @@ -88,18 +92,6 @@ midi: instrumenten definieren? midi: tempo halverwege het stuk wijzigen? midi: gebonden noten niet herhalen? ---------/\ -De beam van de triool klopt niet. - <[d8. b8.> \duration 32; - \duration 16; - | -(zie ook ergens in lacidarem-pianoI.ly) ---------/ -scales.ly compileert niet meer (vanwege transpose?) - -Lengte van de stokken klopt vaak niet, zie bijv. de eerste maat van -langestok.ly. - Triolen enzo: het zou handig zijn als je het cijfer "3" ook _tussen_ twee noten kon plaatsen. Dat is bijvoorbeeld nodig in c4*2/3 c8*2/3 @@ -107,27 +99,23 @@ c4*2/3 c8*2/3 ---------------\ \bar "||" \meter 6/8; op het eind van de regel staat door elkaar gedrukt. - +**************** BUGS * detect -pipe + * staccato dot positions. + + * stacked scripts. + * redo timing stuff <-> pulk to allow \meter 2/4; e2. to work out correctly * key transposition. - * hairpin width - * help-lines for rests - * [c8. c32 c32] - - * \duration 8; e*2/3 - - * cis ( | ) cis - * lilypond - -> crash * chlapik balk ruimte @@ -155,6 +143,9 @@ INPUTLANGUAGE * relative mode for pitch entering + * \duration 8; e*2/3 + + * configure pitch_byte * special key. @@ -169,6 +160,8 @@ INPUTLANGUAGE SMALLISH PROJECTS + * write Dynamic_line (to group dynamics horizontally) + * write Rest_collision * use Real for y positions. @@ -218,9 +211,6 @@ SMALLISH PROJECTS * stafftypes: voice names/ instrument names. - * Lookup::tex_glissando, Lookup::tex_bracket, (use texbeam.cc as an - example.) - * Decent TeX titledefs (\tempo, \metron, etc. ) * C meter iso 4/4 @@ -263,8 +253,6 @@ FUTURE * put scripts on bars - * glissando - * guitar chord * Junk Staff_column, and find the requests while walking the Voices.? @@ -301,10 +289,11 @@ IDEAS * move MIDI stuff (including Quantization) to a ANSI C libmidi library. - * use an embedded language: scheme, lisp, S-lang, Perl, GUILE, ? + * use an embedded language: Python, Scheme? for : - Items/Spanners - Registers + - Complex mudela * y -dims in internote? @@ -350,3 +339,4 @@ IDEAS % --|--- --|--- (where "to" is a tiny bow) + * move towards incremental algorithms. diff --git a/bin/make_patch b/bin/make_patch index 8ec7326f7b..a70faaeea5 100755 --- a/bin/make_patch +++ b/bin/make_patch @@ -35,8 +35,10 @@ then tar zfx $oldarc fi -#(cd $nm$old; touch depend; make clean) -#(cd $nm$new; touch depend; make clean) +# not interested in auto generated files. +for a in lilypond.lsm INSTALL.text AUTHORS.text lilypond.spec configure; do + rm `find $nm$old $nm$new -name $a` +done echo 'use cd source-dir; patch -E -p0 < this_patch'> patch-$new diff --git a/bin/make_website b/bin/make_website index 380a5cbca1..0f9ad202fc 100755 --- a/bin/make_website +++ b/bin/make_website @@ -67,10 +67,12 @@ sub gen_examples "dvips -o $a.ps $texfile;"; } + + my_system "mv lelie.midi $a.midi; " if ( -f "lelie.midi" ); + # generate the pixmap at twice the size, then rescale (for antialiasing) if ( ! -f "$a.gif" ) { - my_system "mv lelie.midi $a.midi; ", - "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE $a.ps -c quit |pnmscale 0.5| ppmtogif > $a.gif", + my_system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE $a.ps -c quit |pnmscale 0.5| ppmtogif > $a.gif", "gzip $a.ps"; } } diff --git a/configure b/configure index ce276ad5d6..9e35706c4f 100755 --- a/configure +++ b/configure @@ -535,7 +535,13 @@ fi - +# if given here, these vars are initted at the checking point. +printing_b=no +checking_b=yes +debug_b=yes +optimise_b=no +profile_b=no + ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CXXCPP $CPPFLAGS' @@ -634,7 +640,7 @@ 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:638: checking for $ac_word" >&5 +echo "configure:644: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -665,7 +671,7 @@ test -n "$CXX" || CXX="gcc" echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:669: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 +echo "configure:675: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -675,11 +681,11 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -699,12 +705,12 @@ if test $ac_cv_prog_cxx_works = no; then { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:703: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:709: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 -echo "configure:708: checking whether we are using GNU C++" >&5 +echo "configure:714: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -713,7 +719,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:717: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:723: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no @@ -728,7 +734,7 @@ if test $ac_cv_prog_gxx = yes; then ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:732: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:738: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -758,7 +764,7 @@ fi # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:762: checking for $ac_word" >&5 +echo "configure:768: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -814,7 +820,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:818: checking for a BSD compatible install" >&5 +echo "configure:824: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -868,7 +874,7 @@ 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:872: checking for $ac_word" >&5 +echo "configure:878: 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 @@ -918,7 +924,7 @@ 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:922: checking for $ac_word" >&5 +echo "configure:928: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -952,7 +958,7 @@ 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:956: checking for $ac_word" >&5 +echo "configure:962: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -986,7 +992,7 @@ 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:990: checking for $ac_word" >&5 +echo "configure:996: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1020,7 +1026,7 @@ 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:1024: checking for $ac_word" >&5 +echo "configure:1030: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_PODMAN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1056,7 +1062,7 @@ if test "x$TEXPREFIX" = xauto ; then echo $ac_n "checking TeX/MF root dir directory""... $ac_c" 1>&6 -echo "configure:1060: checking TeX/MF root dir directory" >&5 +echo "configure:1066: checking TeX/MF root dir directory" >&5 find_root_prefix="$prefix" @@ -1094,7 +1100,7 @@ if test "x$TEXDIR" = xauto ; then echo $ac_n "checking TeX input directory""... $ac_c" 1>&6 -echo "configure:1098: checking TeX input directory" >&5 +echo "configure:1104: checking TeX input directory" >&5 find_dirdir=`(cd $find_texprefix; $FIND ./ -type d -a -name tex -print |sort|head -1|sed 's#^\./##')` @@ -1116,7 +1122,7 @@ if test "x$MFDIR" = xauto; then echo $ac_n "checking MF input directory""... $ac_c" 1>&6 -echo "configure:1120: checking MF input directory" >&5 +echo "configure:1126: checking MF input directory" >&5 find_dirdir=`(cd $find_texprefix; $FIND ./ -type d -a -name source -print |sort|head -1|sed 's#^\./##')` @@ -1167,7 +1173,7 @@ else fi echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:1171: checking how to run the C++ preprocessor" >&5 +echo "configure:1177: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1180,12 +1186,12 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1195: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1205,17 +1211,17 @@ echo "$ac_t""$CXXCPP" 1>&6 ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6 -echo "configure:1209: checking for FlexLexer.h" >&5 +echo "configure:1215: checking for FlexLexer.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1219: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1619,7 +1625,7 @@ fi eval "DIR_DATADIR=$datadir" DIR_DATADIR="$DIR_DATADIR/lilypond" echo $ac_n "checking ""... $ac_c" 1>&6 -echo "configure:1623: checking " >&5 +echo "configure:1629: checking " >&5 cat << EOF > lib/out/config.hh diff --git a/configure.in b/configure.in index 7bb5c5d999..fbf2c3d8d8 100644 --- a/configure.in +++ b/configure.in @@ -3,12 +3,7 @@ dnl Process this file with autoconf to produce a configure script. dnl should cache result. dnl should look in $prefix first. -printing_b=no -checking_b=yes -debug_b=yes -optimise_b=no -profile_b=no -#shared_b=no + AC_DEFUN(AC_TEX_PREFIX, [ @@ -79,7 +74,13 @@ dnl AC_REQUIRE([AC_TEX_PREFIX]) AC_INIT(flower/choleski.cc) - +# if given here, these vars are initted at the checking point. +printing_b=no +checking_b=yes +debug_b=yes +optimise_b=no +profile_b=no + AC_LANG_CPLUSPLUS AC_ARG_ENABLE(printing, diff --git a/flower/.version b/flower/.version index 6a81adeb2e..0801c617c1 100644 --- a/flower/.version +++ b/flower/.version @@ -1,6 +1,6 @@ MAJOR_VERSION = 1 MINOR_VERSION = 1 -PATCH_LEVEL = 14 +PATCH_LEVEL = 15 # use to send patches, always empty for released version: MY_PATCH_LEVEL = # include separator: "-1" or ".a" # diff --git a/flower/NEWS b/flower/NEWS index 3910ba6ccd..2da3968aa2 100644 --- a/flower/NEWS +++ b/flower/NEWS @@ -1,3 +1,7 @@ +pl 1.1.15 + - #ifndef fixes (MB) + - Dstream::clear () + pl 1.1.14 - interval methods pl 1.1.13 diff --git a/flower/choleski.cc b/flower/choleski.cc index 1d64f949ac..d10372fdfd 100644 --- a/flower/choleski.cc +++ b/flower/choleski.cc @@ -55,7 +55,7 @@ Choleski_decomposition::Choleski_decomposition(Matrix P) D(k) = d; } -#ifdef NDEBUG +#ifndef NDEBUG assert((original()-P).norm() / P.norm() < EPS); #endif } @@ -81,10 +81,10 @@ Choleski_decomposition::inverse() const invm(i,j) = inv(j); } -#ifdef NDEBUG +#ifndef NDEBUG Matrix I1(n), I2(original()); I1.unit(); - assert((I1-original()*invm).norm()/original.norm() < EPS); + assert((I1-I2*invm).norm()/I2.norm() < EPS); #endif return invm; diff --git a/flower/dstream.cc b/flower/dstream.cc index 73416a4e46..23b77bbbc4 100644 --- a/flower/dstream.cc +++ b/flower/dstream.cc @@ -1,4 +1,10 @@ +/* + dstream.cc -- implement Dstream + + source file of the Flower Library + (c) 1996,1997 Han-Wen Nienhuys +*/ #include #include "assoc.hh" @@ -6,7 +12,7 @@ #include "scalar.hh" #include "text-db.hh" #include "string-convert.hh" - +#include "assoc-iter.hh" /// indent of each level const INDTAB = 2; @@ -38,25 +44,25 @@ strip_member(String pret) Dstream& Dstream::identify_as(String name) { - if (!os) + if (!os_l_) return *this; String mem(strip_pretty(name)); String cl(strip_member(mem)); String idx = cl; - if (silent->elt_b(mem)) + if (silent_assoc_p_->elt_b(mem)) idx = mem; - else if (silent->elt_b(cl)) + else if (silent_assoc_p_->elt_b(cl)) idx = cl; else { - (*silent)[idx] = false; + (*silent_assoc_p_)[idx] = false; } - local_silence = (*silent)[idx]; - if (classname != idx && !local_silence) { - classname=idx; - if (!(*silent)["Dstream"]) - *os << "[" << classname << ":]"; // messy. + local_silence_b_ = (*silent_assoc_p_)[idx]; + if (current_classname_str_ != idx && !local_silence_b_) { + current_classname_str_=idx; + if (!(*silent_assoc_p_)["Dstream"]) + *os_l_ << "[" << current_classname_str_ << ":]"; // messy. } return *this; } @@ -64,9 +70,9 @@ Dstream::identify_as(String name) bool Dstream::silence(String s) { - if (!silent->elt_b(s)) + if (!silent_assoc_p_->elt_b(s)) return false; - return (*silent)[s]; + return (*silent_assoc_p_)[s]; } /** Output a string via the Dstream. This is the only output @@ -95,31 +101,31 @@ Dstream::operator<<(char const *ch_l) void Dstream::output(String s) { - if (local_silence|| !os) + if (local_silence_b_|| !os_l_) return ; for (char const *cp = s ; *cp; cp++) switch(*cp) { case '{': case '[': - case '(': indentlvl += INDTAB; - *os << *cp; + case '(': indent_level_i_ += INDTAB; + *os_l_ << *cp; break; case ')': case ']': case '}': - indentlvl -= INDTAB; - *os << *cp ; + indent_level_i_ -= INDTAB; + *os_l_ << *cp ; - assert (indentlvl>=0) ; + assert (indent_level_i_>=0) ; break; case '\n': - *os << '\n' << String (' ', indentlvl) << flush; + *os_l_ << '\n' << String (' ', indent_level_i_) << flush; break; default: - *os << *cp; + *os_l_ << *cp; break; } return ; @@ -128,10 +134,10 @@ Dstream::output(String s) Dstream::Dstream(ostream *r, char const * cfg_nm ) { - os = r; - silent = new Assoc; - indentlvl = 0; - if (!os) + os_l_ = r; + silent_assoc_p_ = new Assoc; + indent_level_i_ = 0; + if (!os_l_) return; char const * fn =cfg_nm ? cfg_nm : ".dstreamrc"; @@ -148,7 +154,7 @@ Dstream::Dstream(ostream *r, char const * cfg_nm ) r.message("not enough fields in Dstream init."); continue; } - (*silent)[r[0]] = (bool)(int)(Scalar(r[1])); + (*silent_assoc_p_)[r[0]] = (bool)(int)(Scalar(r[1])); } } @@ -156,6 +162,15 @@ Dstream::Dstream(ostream *r, char const * cfg_nm ) Dstream::~Dstream() { - delete silent; - assert(!indentlvl) ; + delete silent_assoc_p_; + assert(!indent_level_i_) ; +} + +void +Dstream::clear_silence() +{ + for (Assoc_iter i(*silent_assoc_p_); i.ok(); i++) { + i.val() = 0; + } + } diff --git a/flower/flower-debug.cc b/flower/flower-debug.cc index 7617faaa24..702304e71f 100644 --- a/flower/flower-debug.cc +++ b/flower/flower-debug.cc @@ -12,6 +12,9 @@ Dstream *flower_dstream = &default_flower_stream; */ void set_flower_debug(Dstream&ds, bool b) { +#ifdef NPRINT + cout << "Debug printout disabled, see the installation guide." << endl; +#endif flower_check_debug = b; flower_dstream = &ds; } diff --git a/flower/include/dstream.hh b/flower/include/dstream.hh index 64cb612026..63130d1204 100644 --- a/flower/include/dstream.hh +++ b/flower/include/dstream.hh @@ -1,3 +1,10 @@ +/* + dstream.hh -- declare Dstream + + source file of the Flower Library + + (c) 1997 Han-Wen Nienhuys +*/ #ifndef DSTREAM_HH #define DSTREAM_HH @@ -27,14 +34,14 @@ struct Assoc; */ class Dstream { - ostream *os; - int indentlvl; - bool local_silence; - String classname; + ostream *os_l_; + int indent_level_i_; + bool local_silence_b_; + String current_classname_str_; void output(String s); - Assoc *silent; + Assoc *silent_assoc_p_; public: - + void clear_silence(); bool silence(String); /** diff --git a/flower/include/fproto.hh b/flower/include/fproto.hh index 5f3bdfcff4..ef4c6422b2 100644 --- a/flower/include/fproto.hh +++ b/flower/include/fproto.hh @@ -21,8 +21,8 @@ template struct Array; template struct sstack; template struct Assoc; template struct List; -template struct PointerList; -template struct IPointerList; +template struct Pointer_list; +template struct IPointer_list; template struct Cursor; template struct PCursor; template struct Link; diff --git a/flower/include/list.hh b/flower/include/list.hh index a7389ed489..cdf57ced99 100644 --- a/flower/include/list.hh +++ b/flower/include/list.hh @@ -15,7 +15,7 @@ template class Link; items are always stored as copies in List, but: #List# : copies of #String# stored #List# : copies of #String*# stored! - (do not use, use \Ref{PointerList} ## instead.) + (do not use, use \Ref{Pointer_list} ## instead.) {\bf note:} retrieving "invalid" cursors, i.e. diff --git a/flower/include/parray.hh b/flower/include/parray.hh new file mode 100644 index 0000000000..ed12074055 --- /dev/null +++ b/flower/include/parray.hh @@ -0,0 +1,34 @@ +/* + parray.hh -- declare Pointer_array + + source file of the Flower Library + + (c) 1997 Han-Wen Nienhuys +*/ + + +#ifndef PARRAY_HH +#define PARRAY_HH + +#include "varray.hh" + +template +class Pointer_array : public Array +{ +public: + int find_i (T t) const{ + for (int i=0; i < size(); i++) + if (elem(i) == t) + return i; + return -1; + } + T find_l(T t)const + { + int i = find_i(t); + if (i >= 0) + return elem(i); + else + return 0; + } +}; +#endif // PARRAY_HH diff --git a/flower/include/pcursor.hh b/flower/include/pcursor.hh index 459977a471..dffe02b9ef 100644 --- a/flower/include/pcursor.hh +++ b/flower/include/pcursor.hh @@ -10,14 +10,14 @@ #include "plist.hh" #include "cursor.hh" -/** cursor to go with PointerList. - don't create PointerList's. +/** cursor to go with Pointer_list. + don't create Pointer_list's. This cursor is just an interface class for Cursor. It takes care of the appropriate type casts */ template class PCursor : private Cursor { - friend class IPointerList; + friend class IPointer_list; /// delete contents void junk(); @@ -36,14 +36,14 @@ public: return remove_p(); } - PointerList &list() { return (PointerList&)Cursor::list(); } + Pointer_list &list() { return (Pointer_list&)Cursor::list(); } PCursor operator++(int) { return Cursor::operator++(0);} PCursor operator--(int) { return Cursor::operator--(0); } PCursor operator+=(int i) { return Cursor::operator+=(i);} PCursor operator-=(int i) { return Cursor::operator-=(i); } PCursor operator -(int no) const { return Cursor::operator-(no);} int operator -(PCursor op) const { return Cursor::operator-(op);} - PCursor operator +( int no) const {return Cursor::operator+(no);} PCursor(const PointerList & l) : Cursor (l) {} + PCursor operator +( int no) const {return Cursor::operator+(no);} PCursor(const Pointer_list & l) : Cursor (l) {} PCursor() : Cursor () {} PCursor( const Cursor& cursor ) : Cursor(cursor) { } void* vptr() const { return *((Cursor &) *this); } diff --git a/flower/include/plist.hh b/flower/include/plist.hh index 80d780e3d6..afbf942c73 100644 --- a/flower/include/plist.hh +++ b/flower/include/plist.hh @@ -12,14 +12,14 @@ /** A list of pointers. - Use for list of pointers, e.g. PointerList. + Use for list of pointers, e.g. Pointer_list. This class does no deletion of the pointers, but it knows how to copy itself (shallow copy). We could have derived it from List, - but this design saves a lot of code dup; for all PointerLists in the + but this design saves a lot of code dup; for all Pointer_lists in the program only one parent List is instantiated. */ template -class PointerList : public List +class Pointer_list : public List { public: PCursor top() const{ @@ -29,11 +29,11 @@ class PointerList : public List return PCursor (List::bottom()); } PCursor find(T) const; - void concatenate(PointerList const &s) { List::concatenate(s); } - PointerList() {} + void concatenate(Pointer_list const &s) { List::concatenate(s); } + Pointer_list() {} }; -/** PointerList which deletes pointers given to it. +/** Pointer_list which deletes pointers given to it. NOTE: The copy constructor doesn't do what you'd want: @@ -41,25 +41,25 @@ class PointerList : public List new T(*cursor) - You have to copy this yourself, or use the macro PointerList__copy + You have to copy this yourself, or use the macro Pointer_list__copy */ template -class IPointerList : public PointerList { +class IPointer_list : public Pointer_list { public: - IPointerList(IPointerList const &) { set_empty(); } - IPointerList() { } - ~IPointerList(); + IPointer_list(IPointer_list const &) { set_empty(); } + IPointer_list() { } + ~IPointer_list(); }; -#define IPointerList__copy(T, to, from, op) \ +#define IPointer_list__copy(T, to, from, op) \ for (PCursor _pc_(from); _pc_.ok(); _pc_++)\ to.bottom().add(_pc_->op)\ \ template -void PL_copy(IPointerList &dst,IPointerList const&src); +void PL_copy(IPointer_list &dst,IPointer_list const&src); diff --git a/flower/include/plist.icc b/flower/include/plist.icc index 8b5f8eea56..f24e0ddf45 100644 --- a/flower/include/plist.icc +++ b/flower/include/plist.icc @@ -9,7 +9,7 @@ template void -PL_copy(IPointerList &to, IPointerList const&src) +PL_copy(IPointer_list &to, IPointer_list const&src) { for (PCursor pc(src); pc.ok(); pc++) { T *q = pc; diff --git a/flower/include/plist.tcc b/flower/include/plist.tcc index d18e01f902..7129cdbe3d 100644 --- a/flower/include/plist.tcc +++ b/flower/include/plist.tcc @@ -1,12 +1,12 @@ #include "plist.hh" -#define PL_instantiate(a) template class PointerList; \ +#define PL_instantiate(a) template class Pointer_list; \ template class PCursor; #define IPL_instantiate(a) PL_instantiate(a); \ - template class IPointerList + template class IPointer_list template -IPointerList::~IPointerList() +IPointer_list::~IPointer_list() { PCursor c( *this ); while (c.ok()) { @@ -16,7 +16,7 @@ IPointerList::~IPointerList() template PCursor -PointerList::find(T what ) const +Pointer_list::find(T what ) const { PCursor i(*this); for (; i.ok(); i++) diff --git a/init/table_sixteen.ini b/init/table_sixteen.ini index 82364493b7..a1beff522b 100644 --- a/init/table_sixteen.ini +++ b/init/table_sixteen.ini @@ -13,16 +13,16 @@ table_sixteen= "scripts" = \table { "fermata" "\fermata" 0\pt 0\pt 0\pt 6\pt "-fermata" "\ifermata" 0\pt 0\pt -6\pt 0\pt - "portato" "\portato" - "-portato" "\iportato" - "tenuto" "\tenuto" - "-tenuto" "\itenuto" + "portato" "\portato" 0\pt 4.8\pt 0\pt 2\pt + "-portato" "\iportato" 0\pt 4.8\pt -2\pt 0\pt + "tenuto" "\tenuto" 0\pt 4.8\pt 0\pt 1\pt + "-tenuto" "\itenuto" 0\pt 4.8\pt -1\pt 0\pt "sforzato" "\sforzato" -0.8\pt 4.8\pt -1.92\pt 1.92\pt "marcato" "\marcato" 0\pt 4.8\pt 0\pt 4\pt "-marcato" "\imarcato" 0\pt 4.8\pt -4\pt 0\pt "staccato" "\staccato" 0\pt 0\pt 0\pt 5\pt - "staccatissimo" "\staccatissimo" 0\pt 0\pt 0\pt 7.5\pt - "-staccatissimo" "\istaccatissimo" 0\pt 0\pt -7.5\pt 0\pt + "staccatissimo" "\staccatissimo" 0\pt 0\pt 0\pt 1\pt + "-staccatissimo" "\istaccatissimo" 0\pt 0\pt 0\pt 1\pt "upbow" "\upbow" -1\pt 6\pt 0\pt 5\pt "downbow" "\downbow" 0\pt 5\pt 0\pt 7.5\pt "back" "\backorfront" 0\pt 6\pt 0\pt 3\pt diff --git a/input/keys.ly b/input/keys.ly new file mode 100644 index 0000000000..c215a574af --- /dev/null +++ b/input/keys.ly @@ -0,0 +1,31 @@ +%{MudelaHeader + + filename: keys.ly + title: + description: + composers: + entered-by: + copyright: + + Tested Features: local key, key +EndMudelaHeader +%} +\version "0.0.57"; + + +blah = \melodic{ + \duration 4; + \meter 4/4; + \octave c'; + cis c cis cis | + cis dis2 ~ | + \meter 2/4 ; + dis dis ~ | c cis~ | c +} + +\score{ + \staff { + melodicregs + blah + } +} diff --git a/input/scripts.ly b/input/scripts.ly new file mode 100644 index 0000000000..4890522195 --- /dev/null +++ b/input/scripts.ly @@ -0,0 +1,75 @@ +%{MudelaHeader + + filename: scripts.ly + title: + description: + composers: + entered-by:HWN, MB + copyright: + + Tested Features: scripts, text. +EndMudelaHeader +%} +\version "0.0.57"; + + +blah = \staff{ melodicregs + + \melodic { + \octave c'; + 'c ->-.-\fermata-"text" + c ->-.-\fermata-"text" + c' ->-.-\fermata-"text" + c'' ->-.-\fermata-"text" + + 'd ->-.-\fermata-"text" + d ->-.-\fermata-"text" + d' ->-.-\fermata-"text" + d'' ->-.-\fermata-"text" + + 'c ^>^.^\fermata^"text" + c ^>^.^\fermata^"text" + c' ^>^.^\fermata^"text" + c'' ^>^.^\fermata^"text" + + 'd ^>^.^\fermata^"text" + d ^>^.^\fermata^"text" + d' ^>^.^\fermata^"text" + d'' ^>^.^\fermata ^"text" + + 'c _>_._\fermata _"text" + c _>_._\fermata _"text" + c' _>_._\fermata _"text" + c'' _>_._\fermata _"text" + + 'd _>_._\fermata _"text" + d _>_._\fermata _"text" + d' _>_._\fermata _"text" + d'' _>_._\fermata _"text" + + \meter 4/4; + \duration 8; + \octave c'; + [c \< d e \! f][d' \> e' f' \! g'] + [c-> \< d-> e-> \! f->][d'-> \> e'-> f'-> \! g'->] + [c-^ \< d-^ e-^ \! f-^][d'-^ \> e'-^ f'-^ \! g'-^] + [c-. \< d-. e-. \! f-.][d'-. \> e'-. f'-. \! g'-.] + [c-- \< d-- e-- \! f--][d'-- \> e'-- f'-- \! g'--] + [c-\portato \< d-\portato e-\portato \! f-\portato] + [d'-\portato \> e'-\portato f'-\portato \! g'-\portato] + [c-\upbow \< d-\upbow e-\upbow \! f-\upbow] + [d'-\upbow \> e'-\upbow f'-\upbow \! g'-\upbow] + [c-| \< d-| e-| \! f-|][d'-| \> e'-| f'-| \! g'-|] + [c-\fermata \< d-\fermata e-\fermata \! f-\fermata] + [d'-\fermata \> e'-\fermata f'-\fermata \! g'-\fermata] + [c-\lheel \< d-\lheel e-\lheel \! f-\lheel] + [d'-\lheel \> e'-\lheel f'-\lheel \! g'-\lheel] +} +} + +\score{ + blah + \paper{ + \symboltables {table_sixteen} + } +} diff --git a/input/toccata-fuga-E.ly b/input/toccata-fuga-E.ly index 4cdeb0a2f2..dade648ae5 100644 --- a/input/toccata-fuga-E.ly +++ b/input/toccata-fuga-E.ly @@ -1,17 +1,24 @@ -% toccata-fuga-E.ly -% -% toccata and fuga in E-major -% Johann Sebastian Bach (1685-1750) -% bwv 566 -% -% toccata: 3 bar excerpt -% 2nd fuga: transposed subject --- 4 bar except -% -% purpose of this file is testing: -% * real-life collisions -% * multi-voice input --- splitting? -% * organ staff... -% +%{MudelaHeader + + filename: toccata-fuga-E.ly + title: toccata and fuga in E-major bwv 566 + description: + toccata: 3 bar excerpt + 2nd fuga: transposed subject --- 4 bar excerpt + + composers: Johann Sebastian Bach (1685-1750) + entered-by: JCN + copyright: + + Tested Features: + purpose of this file is testing: + * real-life collisions + * multi-voice input --- splitting? + * organ staff... + +EndMudelaHeader +%} + \version "0.0.57"; @@ -53,9 +60,9 @@ toccata_pedal = \melodic{ % 13 r4 'fis4-\ltoe 'e4.-\lheel e8-\rheel | % 14 - fis4.-\rtoe fis8-.-\rtoe fis4-\rtoe [e8-\ltoe ais8-\rtoe] | + fis4.-\rtoe fis8-.-\rtoe fis4-\rtoe [e8-\ltoe a8-\rtoe] | % 15 - dis4-\ltoe gis4-\rtoe [cis8-\ltoe 'b8-\lheel 'ais8-\rtoe 'gis8-\ltoe] | + dis4-\ltoe gis4-\rtoe [cis8-\ltoe 'b8-\lheel 'a8-\rtoe 'gis8-\ltoe] | % 16 } diff --git a/lib/include/source.hh b/lib/include/source.hh index 05890f1310..58ac1e7ae4 100644 --- a/lib/include/source.hh +++ b/lib/include/source.hh @@ -19,7 +19,7 @@ public: private: const File_path * path_C_; void add( Source_file* sourcefile_p ); - IPointerList sourcefile_p_iplist_; + IPointer_list sourcefile_p_iplist_; bool binary_b_ ; }; diff --git a/lily/.version b/lily/.version index 4a6628d2a9..cc03f17df4 100644 --- a/lily/.version +++ b/lily/.version @@ -1,6 +1,6 @@ MAJOR_VERSION = 0 MINOR_VERSION = 0 -PATCH_LEVEL = 60 +PATCH_LEVEL = 61 # use to send patches, always empty for released version: # include separator: ".postfix", "-pl" makes rpm barf diff --git a/lily/crescendo.cc b/lily/crescendo.cc index 09b775f8de..f520106c19 100644 --- a/lily/crescendo.cc +++ b/lily/crescendo.cc @@ -27,8 +27,9 @@ Crescendo::do_break_at(PCol*, PCol*)const Molecule* -Crescendo::brew_molecule_p() const return m_p ; +Crescendo::brew_molecule_p() const { + Molecule* m_p =0; Real x_off_dim=0.0; Real absdyn_dim = 10 PT; // ugh @@ -46,10 +47,14 @@ Crescendo::brew_molecule_p() const return m_p ; error("Crescendo too small"); w_dim = 0; } - Symbol s( paper()->lookup_l()->hairpin(w_dim, grow_dir_i_ < 0) ); + Real lookup_wid = w_dim * 0.9; // make it slightly smaller. + + Symbol s( paper()->lookup_l()->hairpin( lookup_wid, grow_dir_i_ < 0) ); m_p->add(Atom(s)); int pos = get_position_i(s.dim.y); - m_p->translate(Offset(x_off_dim,pos * paper()->internote())); + m_p->translate(Offset(x_off_dim + 0.05 * w_dim, + pos * paper()->internote())); + return m_p; } IMPLEMENT_STATIC_NAME(Crescendo); diff --git a/lily/include/beam.hh b/lily/include/beam.hh index a85858bad8..f1ac0c1eaa 100644 --- a/lily/include/beam.hh +++ b/lily/include/beam.hh @@ -14,7 +14,7 @@ make sure that they reach the beam and that point in the correct direction */ struct Beam: public Directional_spanner { - PointerList stems; + Pointer_list stems; /// the slope of the beam in posns / point (dimension) Real slope; diff --git a/lily/include/input-music.hh b/lily/include/input-music.hh index 7102ed35eb..b34fedc183 100644 --- a/lily/include/input-music.hh +++ b/lily/include/input-music.hh @@ -12,7 +12,7 @@ #include "voice.hh" #include "moment.hh" -struct Voice_list : public PointerList { +struct Voice_list : public Pointer_list { void translate_time(Moment dt); }; @@ -67,7 +67,7 @@ struct Simple_music : Input_music { /// Complex_music consists of multiple voices struct Complex_music : Input_music { - IPointerList elts; + IPointer_list elts; /* *************** */ virtual void transpose(Melodic_req const&) const ; virtual void set_default_group(String g); diff --git a/lily/include/input-register.hh b/lily/include/input-register.hh index 6149121e29..bf945ab100 100644 --- a/lily/include/input-register.hh +++ b/lily/include/input-register.hh @@ -16,7 +16,7 @@ #include "input.hh" struct Input_register : Input { - IPointerList ireg_list_; + IPointer_list ireg_list_; String name_str_; void add(Input_register*); diff --git a/lily/include/input-score.hh b/lily/include/input-score.hh index a55b7a4378..6e6a3ceaaf 100644 --- a/lily/include/input-score.hh +++ b/lily/include/input-score.hh @@ -24,7 +24,7 @@ public: /// paper_, staffs_ and commands_ form the problem definition. Paper_def *paper_p_; Midi_def* midi_p_; - IPointerList staffs_; + IPointer_list staffs_; /* *************************************************************** */ diff --git a/lily/include/input-staff.hh b/lily/include/input-staff.hh index 0a35b460b6..0bbdc13266 100644 --- a/lily/include/input-staff.hh +++ b/lily/include/input-staff.hh @@ -16,7 +16,7 @@ class Input_staff:public Input { public: - IPointerList music_; + IPointer_list music_; Input_register * ireg_p_; /* *************** */ diff --git a/lily/include/local-key-reg.hh b/lily/include/local-key-reg.hh index 2ab094b3b3..4921bd03aa 100644 --- a/lily/include/local-key-reg.hh +++ b/lily/include/local-key-reg.hh @@ -9,11 +9,15 @@ #define LOCALKEYREG_HH #include "register.hh" #include "key.hh" +#include "parray.hh" struct Local_key_register : Request_register { Key local_key_; - Local_key_item* key_item_p_; Key const *key_C_; + Array mel_l_arr_; + Array support_l_arr_; + Pointer_array forced_l_arr_; + Pointer_array tied_l_arr_; /* *************** */ virtual void process_requests(); virtual void acknowledge_element(Staff_elem_info); diff --git a/lily/include/molecule.hh b/lily/include/molecule.hh index 084321ce4e..312111bff2 100644 --- a/lily/include/molecule.hh +++ b/lily/include/molecule.hh @@ -30,7 +30,7 @@ struct Atom { /** a group of individually translated symbols. You can add molecules to the top, to the right, etc. */ struct Molecule { - IPointerList ats; // change to List? + IPointer_list ats; // change to List? /* *************** */ diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh index eaba302d2b..721b2ff51c 100644 --- a/lily/include/musical-request.hh +++ b/lily/include/musical-request.hh @@ -114,6 +114,7 @@ struct Melodic_req :virtual Musical_req /// return pitch from central c (in halfnotes) int pitch()const; Melodic_req(); + static int compare(Melodic_req const&, Melodic_req const&); REQUESTMETHODS(Melodic_req,melodic); }; diff --git a/lily/include/p-col.hh b/lily/include/p-col.hh index 2a2dd92afc..58206b4306 100644 --- a/lily/include/p-col.hh +++ b/lily/include/p-col.hh @@ -22,8 +22,8 @@ class PCol { public: - PointerList its; - PointerList stoppers, starters; + Pointer_list its; + Pointer_list stoppers, starters; /** prebreak is put before end of line. if broken here, then (*this) column is discarded, and prebreak diff --git a/lily/include/p-score.hh b/lily/include/p-score.hh index 3177613ec5..0cc7a2bc15 100644 --- a/lily/include/p-score.hh +++ b/lily/include/p-score.hh @@ -18,25 +18,25 @@ struct PScore { Paper_def *paper_l_; /// the columns, ordered left to right - IPointerList cols; + IPointer_list cols; /// the idealspacings, no particular order - IPointerList suz; + IPointer_list suz; /// the staffs ordered top to bottom - IPointerList staffs; + IPointer_list staffs; /// all symbols in score. No particular order. - IPointerList its; + IPointer_list its; /// if broken, the different lines - IPointerList lines; + IPointer_list lines; /// crescs etc; no particular order - IPointerList spanners; + IPointer_list spanners; /// broken spanners - IPointerList broken_spans; + IPointer_list broken_spans; /* *************** */ /* CONSTRUCTION */ diff --git a/lily/include/p-staff.hh b/lily/include/p-staff.hh index c95834c2fb..a1c5fb4daa 100644 --- a/lily/include/p-staff.hh +++ b/lily/include/p-staff.hh @@ -11,8 +11,8 @@ struct PStaff { PScore * pscore_l_; - PointerList spans; - PointerList its; + Pointer_list spans; + Pointer_list its; /* *************** */ void add(Item*i); diff --git a/lily/include/pulk-voices.hh b/lily/include/pulk-voices.hh index 2cc5a48831..e871517388 100644 --- a/lily/include/pulk-voices.hh +++ b/lily/include/pulk-voices.hh @@ -34,15 +34,15 @@ int compare(Voice_l const &p1, Voice_l const &p2); class Pulk_voices { PQueue< Voice_l > voice_pq_; - IPointerList< Pulk_voice * > pulk_p_list_; - PointerList staff_l_list_; + IPointer_list< Pulk_voice * > pulk_p_list_; + Pointer_list staff_l_list_; Moment next_mom_; public: Moment last_; bool ok() const; Moment next_mom() { return next_mom_; } - Pulk_voices(PointerList const&); + Pulk_voices(Pointer_list const&); void get_aligned_request(Request_column *col_l ); }; diff --git a/lily/include/register-group.hh b/lily/include/register-group.hh index fcfc4ba5c6..be21d7fd5e 100644 --- a/lily/include/register-group.hh +++ b/lily/include/register-group.hh @@ -21,7 +21,7 @@ */ class Register_group_register : public Request_register { protected: - IPointerList reg_list_; + IPointer_list reg_list_; virtual void do_print()const; public: diff --git a/lily/include/request-column.hh b/lily/include/request-column.hh index 32a6f63773..e3d5d3184e 100644 --- a/lily/include/request-column.hh +++ b/lily/include/request-column.hh @@ -18,12 +18,12 @@ */ class Request_column { - IPointerList staff_cols_; + IPointer_list staff_cols_; Array staff_col_l_arr_; public: Score_column *musical_column_l_, *command_column_l_; - Request_column(PointerList const& ); + Request_column(Pointer_list const& ); bool used_b()const; Moment when(); void add_reqs(int staff_idx, Array const&); diff --git a/lily/include/rest-column.hh b/lily/include/rest-column.hh index 04e86e581a..a753c61d93 100644 --- a/lily/include/rest-column.hh +++ b/lily/include/rest-column.hh @@ -23,6 +23,7 @@ public: void add(Notehead *); NAME_MEMBERS(Rest_column); void translate_y(Real dy); + Rest_column(); }; #endif // REST_COLUMN_HH diff --git a/lily/include/score.hh b/lily/include/score.hh index e83540533b..7376e97976 100644 --- a/lily/include/score.hh +++ b/lily/include/score.hh @@ -24,12 +24,12 @@ struct Score { /// paper_, staffs_ and commands_ form the problem definition. Paper_def *paper_p_; Midi_def *midi_p_; - IPointerList staffs_; + IPointer_list staffs_; /// "runtime" fields for setting up spacing - IPointerList rcols_; + IPointer_list rcols_; - IPointerList cols_; + IPointer_list cols_; PScore *pscore_p_; Input input_; diff --git a/lily/include/scoreline.hh b/lily/include/scoreline.hh index 9196a96ab3..33bbc4a2d8 100644 --- a/lily/include/scoreline.hh +++ b/lily/include/scoreline.hh @@ -13,10 +13,10 @@ /// the columns of a score that form one line. struct Line_of_score { - PointerList cols; + Pointer_list cols; // need to store height of each staff. - IPointerList staffs; + IPointer_list staffs; PScore * pscore_l_; // needed to generate staffs /* *************** */ diff --git a/lily/include/staff.hh b/lily/include/staff.hh index e0613136f2..29f6839f73 100644 --- a/lily/include/staff.hh +++ b/lily/include/staff.hh @@ -20,9 +20,9 @@ class Staff { public: Input_register * ireg_p_; - PointerList voice_list_; + Pointer_list voice_list_; /// runtime field - PointerList cols_; + Pointer_list cols_; Score *score_l_; PScore *pscore_l_; @@ -30,7 +30,7 @@ public: /* *************************************************************** */ - void add(const PointerList &s); + void add(const Pointer_list &s); void add_voice(Voice *v_p); Paper_def*paper()const; diff --git a/lily/include/tie-reg.hh b/lily/include/tie-reg.hh index 082de4e70c..5a0028f83e 100644 --- a/lily/include/tie-reg.hh +++ b/lily/include/tie-reg.hh @@ -19,6 +19,8 @@ class Tie_register : public Request_register { Tie_req * req_l_; int dir_i_; Tie_req *end_req_l_; + Melodic_req * end_melodic_req_l_; + Melodic_req * melodic_req_l_; protected: virtual ~Tie_register(); diff --git a/lily/include/tie.hh b/lily/include/tie.hh index 972d2cf97e..7f03564866 100644 --- a/lily/include/tie.hh +++ b/lily/include/tie.hh @@ -18,9 +18,9 @@ class Tie : public Bow { virtual void do_post_processing(); virtual void set_default_dir(); public: + bool same_pitch_b_; Notehead * left_head_l_; Notehead * right_head_l_; - void set_head(int, Notehead*head_l); Tie(); diff --git a/lily/include/voice-element.hh b/lily/include/voice-element.hh index cd02239f5e..fc85b58e3b 100644 --- a/lily/include/voice-element.hh +++ b/lily/include/voice-element.hh @@ -24,7 +24,7 @@ public: Voice_element */ Moment duration_; Voice const *voice_C_; - IPointerList req_p_list_; + IPointer_list req_p_list_; Request * principal_req_l_; /* *************** */ diff --git a/lily/include/voice.hh b/lily/include/voice.hh index 5ddcc91933..475fc44668 100644 --- a/lily/include/voice.hh +++ b/lily/include/voice.hh @@ -18,7 +18,7 @@ struct Voice { /** the elements, earliest first. Please use the member #add()# to add a new element */ - IPointerList elts_; + IPointer_list elts_; Moment start_; /* *************** */ diff --git a/lily/lexer.l b/lily/lexer.l index d4435664ca..38adcc5fd9 100644 --- a/lily/lexer.l +++ b/lily/lexer.l @@ -63,7 +63,7 @@ KEYWORD \\{WORD} WHITE [ \n\t\f] BLACK [^ \n\t\f] RESTNAME [rs] -NOTECOMMAND \\{WORD} +NOTECOMMAND \\{A}+ DOTS \.+ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]* diff --git a/lily/local-key-reg.cc b/lily/local-key-reg.cc index 84ec5baf69..2fac0d573d 100644 --- a/lily/local-key-reg.cc +++ b/lily/local-key-reg.cc @@ -12,52 +12,72 @@ #include "key-reg.hh" #include "debug.hh" #include "key-item.hh" +#include "tie.hh" +#include "notehead.hh" Local_key_register::Local_key_register() { - key_item_p_ = 0; key_C_ = 0; } void Local_key_register::pre_move_processing() { - if (key_item_p_) { - typeset_element(key_item_p_); - key_item_p_ = 0; + if (mel_l_arr_.size()) { + Local_key_item *key_item_p = 0; + for (int i=0; i < mel_l_arr_.size(); i++) { + Item * support_l = support_l_arr_[i]; + + Note_req * note_l = mel_l_arr_[i]; + if (tied_l_arr_.find_l(support_l) && !forced_l_arr_.find_l(support_l)) + continue; + + if (!key_item_p) + key_item_p = new Local_key_item(*get_staff_info().c0_position_i_l_); + key_item_p->add(note_l); + key_item_p->add(support_l); + local_key_.oct(note_l->octave_i_) + .set(note_l->notename_i_, note_l->accidental_i_); + } + if (key_item_p) + typeset_element(key_item_p); } + mel_l_arr_.set_size(0); + tied_l_arr_.set_size(0); + support_l_arr_.set_size(0); + forced_l_arr_.set_size(0); } void Local_key_register::acknowledge_element(Staff_elem_info info) { + Staff_elem * elem_l = info.elem_l_; if (info.req_l_->note()) { - Note_req * note_l_ = info.req_l_->note(); + Note_req * note_l = info.req_l_->note(); + Item * item_l = info.elem_l_->item(); - if( note_l_->forceacc_b_ || - local_key_.oct(note_l_->octave_i_).acc(note_l_->notename_i_) - != note_l_->accidental_i_) { - Item * support_l_ = info.elem_l_->item(); - - - if (!key_item_p_) { - key_item_p_ = new Local_key_item(*get_staff_info().c0_position_i_l_); - } - - key_item_p_->add(note_l_); - key_item_p_->add(support_l_); - local_key_.oct(note_l_->octave_i_) - .set(note_l_->notename_i_, note_l_->accidental_i_); + if( note_l->forceacc_b_ || + local_key_.oct(note_l->octave_i_).acc(note_l->notename_i_) + != note_l->accidental_i_) { + mel_l_arr_.push(note_l ); + support_l_arr_.push(item_l); + if (note_l->forceacc_b_) + forced_l_arr_.push(item_l); } - } else if (info.req_l_->command() && info.req_l_->command()->keychange()) { + } else if (info.req_l_->command() + && info.req_l_->command()->keychange()) { Key_register * key_reg_l = (Key_register*)info.origin_reg_l_arr_[0]; key_C_ = &key_reg_l->key_; local_key_ = *key_C_; - } else if (info.elem_l_->name() == Key_item::static_name()) { + } else if (elem_l->name() == Key_item::static_name()) { Key_register * key_reg_l = (Key_register*)info.origin_reg_l_arr_[0]; key_C_ = &key_reg_l->key_; + } else if (elem_l->name() == Tie::static_name()) { + Tie * tie_l = (Tie*)elem_l; + if (tie_l->same_pitch_b_) + tied_l_arr_.push(tie_l-> right_head_l_ ); } } @@ -69,7 +89,7 @@ Local_key_register::process_requests() if (key_C_) local_key_= *key_C_; else if( time_C_->when_ >Moment(0)) - warning ("Help me! can't figure current key"); + warning ("Help me! can't figure out current key"); } } diff --git a/lily/musical-request.cc b/lily/musical-request.cc index 5ed08aa996..9f65d8a88f 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -127,11 +127,23 @@ Melodic_req::transpose(Melodic_req const & delta) IMPLEMENT_STATIC_NAME(Melodic_req); +int +Melodic_req::compare(Melodic_req const&m1, Melodic_req const&m2) +{ + if (m1.octave_i_ != m2.octave_i_) + return m1.octave_i_ -m2.octave_i_; + else if (m1.notename_i_ != m2.notename_i_) + return m1.notename_i_ - m2.notename_i_; + else if (m1.accidental_i_ != m2.accidental_i_) + return m1.accidental_i_ - m2.accidental_i_; + return 0; +} + void Melodic_req::do_print() const { #ifndef NPRINT - mtor << "notename: " << notename_i_ << " acc: " <OK(); for (iter_top(suz,i); i.ok(); i++) diff --git a/lily/parser.y b/lily/parser.y index 6ece45d55e..d92c970123 100644 --- a/lily/parser.y +++ b/lily/parser.y @@ -1093,7 +1093,7 @@ symboldef: delete $2; } | STRING { - Box b; + Box b(Interval(0,0), Interval(0,0)); $$ = new Symbol(*$1, b); delete $1; } diff --git a/lily/pulk-voices.cc b/lily/pulk-voices.cc index 3fe5a30fbd..dc3c26604e 100644 --- a/lily/pulk-voices.cc +++ b/lily/pulk-voices.cc @@ -13,7 +13,7 @@ #include "request-column.hh" #include "debug.hh" -Pulk_voices::Pulk_voices(PointerList const& l) +Pulk_voices::Pulk_voices(Pointer_list const& l) : staff_l_list_(l) { int staff_i = 0; diff --git a/lily/request-column.cc b/lily/request-column.cc index 4fd9d53ab9..47013d222a 100644 --- a/lily/request-column.cc +++ b/lily/request-column.cc @@ -23,7 +23,7 @@ Request_column::add_reqs(int idx , Array const & req_l_arr) staff_col_l_arr_[idx]->add_reqs(req_l_arr); } -Request_column::Request_column(PointerList const& list ) +Request_column::Request_column(Pointer_list const& list ) { musical_column_l_ = command_column_l_ =0; iter(list.top(), j); diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc index 2a6e1e755f..42f7bbbfe3 100644 --- a/lily/rest-collision.cc +++ b/lily/rest-collision.cc @@ -28,7 +28,7 @@ Rest_collision::add(Collision * c_l) void Rest_collision::do_post_processing() { - #if 0 +#if 0 bool rest_b_a[4]; rest_b_a[j] = (col_l_a[j]) ? col_l_a[j]->rest_b_ : false; do { diff --git a/lily/rest-column.cc b/lily/rest-column.cc index 5ab8b164da..f9543a2e01 100644 --- a/lily/rest-column.cc +++ b/lily/rest-column.cc @@ -25,3 +25,9 @@ Rest_column::translate_y(Real dy_f) } IMPLEMENT_STATIC_NAME(Rest_column); + +Rest_column::Rest_column() +{ + dir_i_ = 0; +} + diff --git a/lily/slur.cc b/lily/slur.cc index 7de562215a..1b7bb0f76a 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -74,8 +74,14 @@ Slur::do_post_processing() if (!dir_i_) set_default_dir(); Real inter_f = paper()->internote(); - left_pos_i_ = encompass_arr_[0]->stem_l_->height()[dir_i_]/inter_f; - right_pos_i_ = encompass_arr_.top()->stem_l_->height()[dir_i_]/inter_f; + if (encompass_arr_[0]->stem_l_) + left_pos_i_ = encompass_arr_[0]->stem_l_->height()[dir_i_]/inter_f; + else + left_pos_i_ = 0; + if (encompass_arr_.top()->stem_l_) + right_pos_i_ = encompass_arr_.top()->stem_l_->height()[dir_i_]/inter_f; + else + right_pos_i_ = 0; left_pos_i_ += dir_i_; right_pos_i_ += dir_i_; diff --git a/lily/staff.cc b/lily/staff.cc index 1226fce46a..a3f71b0be7 100644 --- a/lily/staff.cc +++ b/lily/staff.cc @@ -19,7 +19,7 @@ void -Staff::add(PointerList const &l) +Staff::add(Pointer_list const &l) { for (iter_top(l,i); i.ok(); i++) voice_list_.bottom().add(i); diff --git a/lily/template4.cc b/lily/template4.cc index d26e748e6f..399b9ed384 100644 --- a/lily/template4.cc +++ b/lily/template4.cc @@ -1,5 +1,5 @@ /* - template4.cc -- instantiate PointerList baseclass. + template4.cc -- instantiate Pointer_list baseclass. source file of the LilyPond music typesetter diff --git a/lily/text-def.cc b/lily/text-def.cc index 55d04c85bf..a601d4367c 100644 --- a/lily/text-def.cc +++ b/lily/text-def.cc @@ -19,7 +19,7 @@ Text_def::width() const Text_def::Text_def() { - align_i_ = -1; // right + align_i_ = 1; // right pdef_l_ = 0; style_str_ = "roman"; } diff --git a/lily/text-item.cc b/lily/text-item.cc index 9972a36dc1..6d3b67d003 100644 --- a/lily/text-item.cc +++ b/lily/text-item.cc @@ -51,7 +51,7 @@ Text_item::do_pre_processing() void Text_item::do_post_processing() { - set_default_index(); + set_default_index(); } diff --git a/lily/text-reg.cc b/lily/text-reg.cc index 82e12d6cd7..a3231cec41 100644 --- a/lily/text-reg.cc +++ b/lily/text-reg.cc @@ -39,7 +39,7 @@ void Text_register::process_requests() { if (text_req_l_) { - text_p_ = new Text_item(text_req_l_->tdef_p_, 0); // ugh + text_p_ = new Text_item(text_req_l_->tdef_p_, text_req_l_->dir_i_); // ugh announce_element(Staff_elem_info(text_p_, text_req_l_)); } } @@ -47,7 +47,8 @@ void Text_register::pre_move_processing() { if (text_p_) { - text_p_->dir_i_ = dir_i_; + if (dir_i_ && !text_p_->dir_i_) + text_p_->dir_i_ = dir_i_; Staff_symbol* s_l = get_staff_info().staff_sym_l_; text_p_->set_staffsym(s_l); typeset_element(text_p_); diff --git a/lily/tie-reg.cc b/lily/tie-reg.cc index af9c539803..c1c5b0bc83 100644 --- a/lily/tie-reg.cc +++ b/lily/tie-reg.cc @@ -19,6 +19,8 @@ Tie_register::Tie_register() req_l_ =0; end_req_l_ =0; end_mom_ = -1; + melodic_req_l_ = 0; + end_melodic_req_l_ =0; } void @@ -34,6 +36,7 @@ Tie_register::post_move_processing() if (tie_p_ && get_staff_info().when() == end_mom_) { end_tie_p_ = tie_p_; end_req_l_ = req_l_; + end_melodic_req_l_ = melodic_req_l_; tie_p_ =0; req_l_ =0; end_mom_ = -1; @@ -71,11 +74,15 @@ void Tie_register::acknowledge_element(Staff_elem_info i) { if (i.elem_l_->name() == Notehead::static_name()) { - if (tie_p_) + if (tie_p_) { tie_p_->set_head(-1, (Notehead*)i.elem_l_); - + melodic_req_l_ = i.req_l_->musical()->melodic(); + } + if (end_tie_p_) { end_tie_p_->set_head(1, (Notehead*)i.elem_l_); + if (!Melodic_req::compare ( *end_melodic_req_l_, *melodic_req_l_)) + end_tie_p_->same_pitch_b_ = true; announce_element(Staff_elem_info(end_tie_p_,end_req_l_)); } } diff --git a/lily/tie.cc b/lily/tie.cc index 06c09a3b82..5c71c9d133 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -41,6 +41,7 @@ Tie::Tie() { right_head_l_ =0; left_head_l_ =0; + same_pitch_b_ =false; } void diff --git a/make/Template.make b/make/Template.make index f9246f92e3..7293362324 100644 --- a/make/Template.make +++ b/make/Template.make @@ -55,8 +55,9 @@ LOADLIBES += # main target of this module: # -MAINTARGET = $(EXECUTABLE) +# MAINTARGET = $(EXECUTABLE) # MAINTARGET = $(LIBRARY) +MAINTARGET = default: $(MAINTARGET) # diff --git a/make/lilypond.lsm b/make/lilypond.lsm index 789c602b6d..00c79bcf92 100644 --- a/make/lilypond.lsm +++ b/make/lilypond.lsm @@ -2,8 +2,8 @@ Begin3 Title: LilyPond -Version: 0.0.60 -Entered-date: 05/05/97 +Version: 0.0.61 +Entered-date: 05/12/97 Description: LilyPond is a program which converts a music-script (mudela) into TeX output, or MIDI to produce multi-staff scores. Features include multiple meters, clefs, keys, lyrics, versatile input-language, cadenzas @@ -13,7 +13,7 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys) jan@digicash.com (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: pcnov095.win.tue.nl /pub/lilypond/ - 300k lilypond-0.0.60.tar.gz + 300k lilypond-0.0.61.tar.gz Alternate-site: Original-site: Platform: unix/win32, GNU C++ diff --git a/make/lilypond.spec b/make/lilypond.spec index fb892b56f9..5e8fa68686 100644 --- a/make/lilypond.spec +++ b/make/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 0.0.60 +Version: 0.0.61 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.60.tar.gz +Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.61.tar.gz Summary: A preprocessor to make TeX typeset music. URL: http://www.stack.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys @@ -25,7 +25,7 @@ make all strip bin/lilypond bin/mi2mu make prefix="$RPM_BUILD_ROOT/usr" install %files -%doc Documentation/out/AUTHORS.text Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/convert-mudela.text Documentation/out/error.text Documentation/out/examples.text Documentation/out/faq.text Documentation/out/index.text Documentation/out/language.text Documentation/out/lilygut.text Documentation/out/lilypond.text Documentation/out/mi2mu.text Documentation/out/mudela.text input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/error.ly input/header.ly input/kortjakje.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/slurs.ly input/standchen.ly input/standchen.tex input/toccata-fuga-E.ly input/twinkle.ly input/wohltemperirt.ly Documentation/lelie_logo.gif +%doc Documentation/out/AUTHORS.text Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/convert-mudela.text Documentation/out/error.text Documentation/out/examples.text Documentation/out/faq.text Documentation/out/index.text Documentation/out/language.text Documentation/out/lilygut.text Documentation/out/lilypond.text Documentation/out/mi2mu.text Documentation/out/mudela.text input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/error.ly input/header.ly input/kortjakje.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scripts.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/slurs.ly input/standchen.ly input/standchen.tex input/toccata-fuga-E.ly input/twinkle.ly input/wohltemperirt.ly Documentation/lelie_logo.gif /usr/bin/convert-mudela /usr/bin/lilypond /usr/lib/libflower.so diff --git a/mf/Makefile b/mf/Makefile index 3a2fb59ea8..ff0937ad8c 100644 --- a/mf/Makefile +++ b/mf/Makefile @@ -40,7 +40,7 @@ LOADLIBES += # main target of this module: # -MAINTARGET = $(EXECUTABLE) +MAINTARGET = default: $(MAINTARGET) # diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 4725230860..ca18e61502 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -21,7 +21,7 @@ \rationalmultiply\dimen0*#2% \raise\dimen0\hbox{#1}} \def\maccentdef#1#2#3{\def#1{\maccentraise{\mchar{#2}}{#3}}} -\def\vcenter#1{\vbox to 0pt{\vss #1\vss}} +\def\vertcenter#1{\vbox to 0pt{\vss #1\vss}} \def\mathdef#1#2{\def#1{\mathchar{#2}}} \def\mathchar#1{\mathfont\char#1} @@ -110,15 +110,15 @@ \def\kdynm{\dynfont m\kern-.15ex} \def\kdynp{\dynfont p\kern-.15ex} -\def\dynppp{\dynfont\dynp\kdynp p} -\def\dynpp{\dynfont p\kdynp} \def\dynp{\dynfont p} +\def\dynpp{\dynp\kdynp} +\def\dynppp{\dynpp\kdynp} \def\dynmp{\dynfont m\kdynp} \def\dynmf{\dynfont m\kdynf} \def\dynf{\dynfont f} -\def\dynff{\dynfont f\kdynf} -\def\dynfff{\dynfont f\kdynf \kdynf} +\def\dynff{\dynf\kdynf} +\def\dynfff{\dynff\kdynf} \def\slurcharh#1{{\slurhfont\char#1}} \def\slurcharu#1{{\slurufont\char#1}} @@ -226,10 +226,10 @@ \def\sixteenthflag{\topalign{\usixteenthflag}} \def\thirtysecondflag{\topalign{\uthirtysecondflag}} -\def\cquartrest{\vcenter\quartrest} -\def\ceighthrest{\vcenter\eighthrest} -\def\csixteenthrest{\vcenter\sixteenthrest} -\def\cthirtysecondrest{\vcenter\thirtysecondrest} +\def\cquartrest{\vertcenter\quartrest} +\def\ceighthrest{\vertcenter\eighthrest} +\def\csixteenthrest{\vertcenter\sixteenthrest} +\def\cthirtysecondrest{\vertcenter\thirtysecondrest} \def\lsingledot{\kern-\notewidth\singledot} \def\ldoubledot{\kern-\notewidth\doubledot} @@ -238,14 +238,14 @@ \maccentdef\sforzato{30}{-3/2} \maccentdef\marcato{20}{-1/1} \maccentdef\imarcato{21}{1/1} -\maccentdef\staccato{24}{-1/1} -\maccentdef\istaccato{25}{1/1} -\maccentdef\staccatissimo{28}{-1/1} -\maccentdef\istaccatissimo{29}{1/1} -\maccentdef\portato{18}{-9/10} -\maccentdef\iportato{19}{9/10} -\maccentdef\tenuto{26}{0/1} -\maccentdef\itenuto{27}{0/1} +\maccentdef\staccato{24}{-1/3} +\maccentdef\istaccato{25}{1/3} +\maccentdef\staccatissimo{28}{-5/5} +\maccentdef\istaccatissimo{29}{2/5} +\maccentdef\portato{18}{-6/5} +\maccentdef\iportato{19}{3/5} +\maccentdef\tenuto{26}{-1/1} +\maccentdef\itenuto{27}{1/1} \maccentdef\fermata{80}{-1/1} \maccentdef\ifermata{81}{1/1} @@ -253,7 +253,6 @@ \mdef\ispicato{29} \mdef\upbow{23} \mdef\downbow{22} -\mdef\portato{26} \mathdef\cup{91} % \cup \mathdef\wedge{94} % \wedge -- 2.39.5