From 7c9b553acad88d5cd62461989f0f20652dc04dda Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Mon, 28 Apr 1997 14:23:11 +0200 Subject: [PATCH] release: 0.0.57 --- .version | 2 +- AUTHORS.text | 2 +- Documentation/CodingStyle.pod | 25 ++- Documentation/INSTALL.pod | 38 ++++- Documentation/Makefile | 2 +- Documentation/examples.pod | 26 +-- Documentation/mi2mu.pod | 118 ++++++++++++++ Documentation/mudela.pod | 14 +- INSTALL.text | 80 ++++----- NEWS | 20 +++ TODO | 33 ++-- bin/make_website | 4 +- configure | 68 ++++---- configure.in | 24 +-- flower/.version | 2 +- flower/NEWS | 2 + flower/include/assoc.hh | 2 + flower/include/dstream.hh | 2 + flower/include/interval.hh | 25 ++- flower/include/lgetopt.hh | 8 +- flower/include/path.hh | 17 +- flower/include/pqueue.hh | 2 + init/script.ini | 8 +- init/swedish.ini | 127 ++++++++++----- init/table_sixteen.ini | 4 +- input/cadenza.ly | 13 +- input/fugue1.midi.ly | 268 ------------------------------- input/header.ly | 11 ++ input/kortjakje.ly | 2 +- input/maartje.ly | 75 --------- input/martien.ly | 46 ------ input/martien.tex | 23 --- input/mlalt.ly | 213 ------------------------ input/mlcello.ly | 220 ------------------------- input/mlvio1.ly | 219 ------------------------- input/mlvio2.ly | 218 ------------------------- input/plet.ly | 42 ----- input/pre1.midi.ly | 208 ------------------------ input/wohltemperirt.ly | 13 +- lily/.version | 4 +- lily/beam.cc | 16 +- lily/calcideal.cc | 7 +- lily/collision.cc | 5 + lily/crescendo.cc | 2 +- lily/include/bar.hh | 10 +- lily/include/break.hh | 14 +- lily/include/collision.hh | 5 + lily/include/grouping.hh | 2 + lily/include/linespace.hh | 3 + lily/include/meter.hh | 15 +- lily/include/midi-output.hh | 1 + lily/include/my-lily-parser.hh | 1 + lily/include/note-column.hh | 3 + lily/include/paper-def.hh | 13 +- lily/include/pulk-voices.hh | 3 + lily/include/register-group.hh | 2 +- lily/include/register.hh | 7 +- lily/include/score-walker.hh | 5 + lily/include/stem-beam-reg.hh | 13 +- lily/include/text-def.hh | 18 ++- lily/include/text-item.hh | 21 ++- lily/include/voice-group-regs.hh | 4 +- lily/include/voice-regs.hh | 5 +- lily/key-reg.cc | 3 +- lily/key.cc | 11 ++ lily/lexer.l | 2 +- lily/lookup.cc | 8 +- lily/lyric-register.cc | 6 +- lily/midi-walker.cc | 6 + lily/my-lily-parser.cc | 30 +++- lily/note-column.cc | 11 +- lily/paper-def.cc | 8 + lily/parser.y | 2 +- lily/pulk-voices.cc | 2 +- lily/qlpsolve.cc | 11 ++ lily/register-group.cc | 23 ++- lily/score-walker.cc | 2 +- lily/script.cc | 2 +- lily/slur.cc | 3 + lily/staff-side.cc | 2 +- lily/staff-sym-reg.cc | 2 +- lily/staff.cc | 3 - lily/stem.cc | 12 +- lily/text-def.cc | 20 ++- lily/text-item.cc | 35 ++-- lily/text-reg.cc | 2 +- lily/text-spanner.cc | 3 +- lily/voice-element.cc | 1 + lily/voice-group-regs.cc | 32 +++- lily/voice-regs.cc | 14 +- make/Rules.make | 2 +- make/Toplevel.make.in | 2 +- make/lilypond.lsm | 6 +- make/lilypond.spec | 6 +- tex/dimen.tex | 2 +- tex/lilyponddefs.tex | 38 +++-- 96 files changed, 846 insertions(+), 1871 deletions(-) create mode 100644 Documentation/mi2mu.pod delete mode 100644 input/fugue1.midi.ly create mode 100644 input/header.ly delete mode 100644 input/maartje.ly delete mode 100644 input/martien.ly delete mode 100644 input/martien.tex delete mode 100644 input/mlalt.ly delete mode 100644 input/mlcello.ly delete mode 100644 input/mlvio1.ly delete mode 100644 input/mlvio2.ly delete mode 100644 input/plet.ly delete mode 100644 input/pre1.midi.ly diff --git a/.version b/.version index 632e299ef8..e4f7f875dd 100644 --- a/.version +++ b/.version @@ -1,6 +1,6 @@ TOPLEVEL_MAJOR_VERSION = 0 TOPLEVEL_MINOR_VERSION = 0 -TOPLEVEL_PATCH_LEVEL = 56 +TOPLEVEL_PATCH_LEVEL = 57 # use to send patches, always empty for released version: # include separator: ".postfix", "-pl" makes rpm barf diff --git a/AUTHORS.text b/AUTHORS.text index 76413dec6f..a817d8cc87 100644 --- a/AUTHORS.text +++ b/AUTHORS.text @@ -61,6 +61,6 @@ DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN -19/Apr/97 LilyPond 0.0.55 1 +18/Apr/97 LilyPond 0.0.57 1 diff --git a/Documentation/CodingStyle.pod b/Documentation/CodingStyle.pod index 1a4b1263d4..4592783fb2 100644 --- a/Documentation/CodingStyle.pod +++ b/Documentation/CodingStyle.pod @@ -63,9 +63,11 @@ If you like using font-lock, you can also add this to your F<.emacs>: (setq font-lock-maximum-decoration t) (setq c++-font-lock-keywords-3 - (cons - '("\\b\\([a-zA-Z_]+_\\)\\b" 1 font-lock-variable-name-face) - c++-font-lock-keywords-3)) + (append + c++-font-lock-keywords-3 + '(("\\b\\([a-zA-Z_]+_\\)\\b" 1 font-lock-variable-name-face) + ("\\b\\([A-Z]+[a-z_]+\\)\\b" 1 font-lock-type-face)) + )) =head2 CLASSES and TYPES: @@ -80,6 +82,12 @@ If you like using font-lock, you can also add this to your F<.emacs>: the C is a Hungarian notation postfix for C. See below +=head2 BROKEN CODE + +Broken code (hardwired dependencies, hardwired constants, slow +algorithms and obvious limitations) should be marked as such: +either with a verbose TODO, or with a short "ugh" comment. + =head2 COMMENTS The source is commented in the DOC++ style. Check out doc++ at @@ -96,6 +104,8 @@ http://www.zib.de/Visual/software/doc++/index.html short description. Long class documentation. (Hungarian postfix) + + TODO Fix boring_member() */ class Class { /** @@ -114,9 +124,13 @@ http://www.zib.de/Visual/software/doc++/index.html Rettype member(Argtype); /// memo only - boring_member(); + boring_member() { + data_member_ = 121; // ugh + } }; + + Unfortunately most of the code isn't really documented that good. @@ -226,8 +240,7 @@ not very useful if not used consistently =item * -usefullness in I -(but how many classes is very large?) +usefullness in I (but how many classes is very large?) remains an issue. =back diff --git a/Documentation/INSTALL.pod b/Documentation/INSTALL.pod index 86eea36f1f..fd039729c8 100644 --- a/Documentation/INSTALL.pod +++ b/Documentation/INSTALL.pod @@ -111,12 +111,38 @@ Since GNU LilyPond currently is beta, you are advised to also use other options include: - --enable-shared - --enable-printing - --enable-optimise - --enable-profiling - --enable-tex-prefix - --enable-tex-dir +=over 4 + +=item --enable-shared + +Make a shared library (linux, solaris (?) only ) + +=item --enable-printing + +Enable debugging print routines (B<-d> option) + +=item --enable-optimise + +Set maximum optimisation + +=item --enable-profiling + +Compile with support for profiling + +=item --enable-tex-prefix + +Set the directory where texmf lives + + +=item --enable-tex-dir + +Set then directory tex input is in + +=item --enable-mf-dir + +Set then directory tex input is in + +=back All options are documented in the F help The option B<--enable-optimise> is recommended for Real Life usage. diff --git a/Documentation/Makefile b/Documentation/Makefile index 85248070ff..542425ec77 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -51,7 +51,7 @@ localclean: rm -f out/* rm -f $(TEXTFILES) $(HTMLFILES) $(GROFFFILES) -MAN1FILES = lilypond convert-mudela +MAN1FILES = lilypond convert-mudela mi2mu MAN1GROFF = $(addprefix $(outdir)/, $(addsuffix .1,$(MAN1FILES))) bla: diff --git a/Documentation/examples.pod b/Documentation/examples.pod index 2337c9bd58..16e79ebdae 100644 --- a/Documentation/examples.pod +++ b/Documentation/examples.pod @@ -15,14 +15,6 @@ each file: Most music distributed with GNU LilyPond was composed a long time ago, and do not have copyrights. Any exceptions are mentioned here. -=head2 F - -A cadenza to Mozart Horn concerto no. 3. - -Features: cadenza mode. - -Copyright: public domain - =head2 F Random counterpoint to demonstrate features. @@ -55,26 +47,10 @@ Features: example with lots of newbie comment. Copyright: public domain -=head2 F - -Features: partial measure. - -=head2 F, F - -Martien Lohman, Viola Quartet. - -Features: n-plets, multi-staff scores. - -Copyright: copyright Martien Lohman 1997. - =head2 F Features: midi output. -=head2 F - -Features: plets. - =head2 F Features: auto beams, multiple parralel meters. @@ -107,6 +83,6 @@ Features: lyrics JS Bach, Das Wohltemperirtes Clavier I, Fuga II (c-minor), BWV ? -Features: stem direction, multivoice. +Features: Copyright: public domain diff --git a/Documentation/mi2mu.pod b/Documentation/mi2mu.pod new file mode 100644 index 0000000000..1a996ec1bd --- /dev/null +++ b/Documentation/mi2mu.pod @@ -0,0 +1,118 @@ +=head1 NAME + +mi2mu - convert MIDI to mudela(5) + +=head1 SYNOPSIS + + mi2mu [options] midi-file + +=head1 DESCRIPTION + +Mi2mu translates a MIDI input file to Mudela (GNU LilyPond source +format). +Mi2mu is part of the GNU LilyPond music typesetting package. + +=head1 OPTIONS + +=over 4 + +=item B<-b, --no-quantify>, + +Write exact durations, e.g.: `a4*385/384'. + +=item B<-d, --debug>, + +Print lots of debugging stuff. + +=item B<-h, --help>, + +Show a summary of usage. + +=item B<-I, --include>=F, + +Add DIR to search path. + +=item B<-n, --no-silly>, + +Assume no plets or double dots, assume smallest (reciprocal) duration 16. + +=item B<-o, --output>=F, + +Set FILE as default output. + +=item B<-p, --no-plets>, + +Assume no plets. + +=item B<-q, --quiet>, + +Be quiet. + +=item B<-s, --smallest=N>, + +Assume no shorter (reciprocal) durations than N. + +=item B<-v, --verbose>, + +Be verbose. + +=item B<-w, --warranty>, + +Show the warranty with which mi2mu comes. (It comes with B!) + +=item B<-x, --no-double-dots>, + +Assume no double dotted notes. + +=back + +=head1 FEATURES + +This is an overview of the features that Mi2mu supports. + +=over 4 + +=item * + +[todo] + +=back + +=head1 +DISCLAIMER & COPYING POLICY + +Mi2mu is copyright 1996,97 by its authors. Mi2mu is distributed +as part of GNU LilyPond, under the terms of the GNU General Public +License. Mi2mu is provided without any warranty what so ever. +Mi2mu may be freely distributed. For further information consult +the GNU General Public License, which is in the file F. + +=head1 AUTHORS + +Please consult the documentation file AUTHORS for more detailed +information, and small contributions. + +=over 4 + +=item * + +Jan Nieuwenhuizen , http://www.digicash.com/~jan. + +=back + +=head1 SEE ALSO + +=over 4 + +=item lilypond(1) + +The GNU LilyPond music typesetter. + +=item mudela(5) + +On the LilyPond input format. + +=item The GNU LilyPond FAQ list. + +=back + diff --git a/Documentation/mudela.pod b/Documentation/mudela.pod index 2b85a67b51..1cebe35be6 100644 --- a/Documentation/mudela.pod +++ b/Documentation/mudela.pod @@ -207,9 +207,10 @@ down: A' % 220 Cisis -The rest is named +Rests are named r or s - r + r % print a rest + s % a "space" rest, nothing is printed. These notenames along with duration are enough material to construct simple melodies: @@ -373,13 +374,15 @@ You can transpose horizontal music in the following way: \melodic { - c4 ++ \transpose { + \meter 2/4; + ++ + \transpose { d % from c to the d that's one octave down { e4 f4 } % the horizontal music } ++ g4 } -The result is, as you can see, simple horizontal music again +The result is, as you can see, again simple horizontal music. =head2 Rhythms @@ -411,6 +414,9 @@ same syntax as grouping: Make the piece start with a partial measure [transl?] lasting 1 3/4 quaver. +These commands are also "voice elements", and constitute simple mudela +(consisting of stuff with duration 0). + =head1 STRUCTURE In concrete, a piece of Mudela has the following structure: diff --git a/INSTALL.text b/INSTALL.text index 11cb0cd473..2e2e52266c 100644 --- a/INSTALL.text +++ b/INSTALL.text @@ -61,7 +61,7 @@ CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRIIIINNNNGGGG a -22/Apr/97 LilyPond 0.0.56 1 +28/Apr/97 LilyPond 0.0.57 1 @@ -112,22 +112,22 @@ INSTALL(1) LilyPond documentation INSTALL(1) other options include: - --enable-shared - --enable-printing - --enable-optimise - --enable-profiling - --enable-tex-prefix - --enable-tex-dir + --enable-shared + Make a shared library (linux, solaris (?) only ) - All options are documented in the _c_o_n_f_i_g_u_r_e help The - option --------eeeennnnaaaabbbblllleeee----ooooppppttttiiiimmmmiiiisssseeee is recommended for Real Life - usage. + --enable-printing + Enable debugging print routines (----dddd option) - If you do + --enable-optimise + Set maximum optimisation + --enable-profiling + Compile with support for profiling -22/Apr/97 LilyPond 0.0.56 2 + + +28/Apr/97 LilyPond 0.0.57 2 @@ -136,6 +136,21 @@ INSTALL(1) LilyPond documentation INSTALL(1) INSTALL(1) LilyPond documentation INSTALL(1) + --enable-tex-prefix + Set the directory where texmf lives + + --enable-tex-dir + Set then directory tex input is in + + --enable-mf-dir + Set then directory tex input is in + + All options are documented in the _c_o_n_f_i_g_u_r_e help The + option --------eeeennnnaaaabbbblllleeee----ooooppppttttiiiimmmmiiiisssseeee is recommended for Real Life + usage. + + If you do + make all everything will be compiled, but nothing will be @@ -175,6 +190,18 @@ RRRRUUUUNNNNNNNNIIIINNNNGGGG +o A fast computer (a full page of music typically takes 1 minute on my 486/66, using the --------eeeennnnaaaabbbblllleeee----cccchhhheeeecccckkkkiiiinnnngggg compile. It's lot slower than most MusiXTeX + + + +28/Apr/97 LilyPond 0.0.57 3 + + + + + +INSTALL(1) LilyPond documentation INSTALL(1) + + preprocessors) +o TeX @@ -191,17 +218,6 @@ RRRREEEEDDDDHHHHAAAATTTT LLLLIIIINNNNUUUUXXXX create an rpm as a normal user. Be sure you have a ~/.rpmrc, and edit the RPM-dir in _V_a_r_i_a_b_l_e_s_._m_a_k_e - - -22/Apr/97 LilyPond 0.0.56 3 - - - - - -INSTALL(1) LilyPond documentation INSTALL(1) - - WWWWIIIINNNNDDDDOOOOZZZZEEEE Windows NT: @@ -243,22 +259,6 @@ AAAAUUUUTTTTHHHHOOOORRRRSSSS - - - - - - - - - - - - - - - - -22/Apr/97 LilyPond 0.0.56 4 +28/Apr/97 LilyPond 0.0.57 4 diff --git a/NEWS b/NEWS index dc064446d5..7db4f88634 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,23 @@ +pl 57 + - lots of TODO doco + - text alignment bugfix + - bugfix Voice_group_regs::get_register_p() now is actually called too + - bugfix init of Text_item::pos_i_ + +pl 55.jcn1 + - mi2mu man page + - make doc fixlet + - \[lr]heel \[lr]toe scripts (happy pedal studies, pa) + - lyric with width + - removal of some example files + +pl 56.mb: + - last duration fix + - makefile fixes + - space rest + - swedish note name update + +****** pl 56 - Massive Rest/Stem/Collision/Note_column rewrite: resolve notehead/rest ambiguities and bugs. eg, [c8 r8 c8] diff --git a/TODO b/TODO index d34d6b91c4..cb39f70019 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,5 @@ + IMPORTANT - * mi2mu man page * update 20 pt table @@ -17,13 +17,14 @@ IMPORTANT * check return status in make_website - * plet.ly - * a Hands on tutorial [HKN] This is an assorted collection of stuff that will be done, might be done, or is an idea that I want to think about +Most of the items are marked in the code as well, with full explanation. +grep for TODO and ugh/ugr + PARSER * Duration-> Musical_duration, typedef Rational Duration? @@ -46,6 +47,10 @@ BUGS * lilypond - -> crash + * chlapik balk ruimte + + * standchen triool beam up/down + SEVERELY LACKING: @@ -85,6 +90,8 @@ SMALLISH PROJECTS * use Real for y positions. + * shared lib on Solaris too. + * bugreport to doc++ devel: struct not in class hier; public virtual baseclasses @@ -96,8 +103,6 @@ SMALLISH PROJECTS * unix style paths for LILYINCLUDE EN - * rpm package buildroot - * indentable stream as baseclass for TeX stream, lily stream, Dstream. * caching Item/spanner dimensions. @@ -123,8 +128,6 @@ SMALLISH PROJECTS * midi esp.: use I32 iso int where 32 bits are needed (or assumed...) - * fix Staff_elem::width() derivs to use offset_ - * parshape * read from mmap directly: bugreport to flex developers-> @@ -139,8 +142,6 @@ SMALLISH PROJECTS * Decent TeX titledefs (\tempo, \metron, etc. ) - * command priority into enum - * C meter iso 4/4 * textspanner: center position @@ -154,9 +155,7 @@ SMALLISH PROJECTS * use (char *) iso. String for communication between lexer and parser. - * configure idealspacing: arithmetic - - * add (good guess of) width to lyric items + * configure idealspacing: arithmetic spacing * midi output: eat-up dynamic, key/meter/tempo changes, and write them neatly @@ -215,7 +214,9 @@ FUTURE IDEAS - * scoping in Lexer? + * scoping in Lexer: do general id- assignments in mudela. + + ID '=' EXPR; * integrate Register/Midi stuff @@ -230,8 +231,8 @@ IDEAS * y -dims in internote? - * hack up mf sources for decent spacing info (and then maybe - read TFM directly) + * hack up mf sources for decent spacing info (and then + read TFM directly, for text too) * merge Atom and Symbol? @@ -244,7 +245,7 @@ IDEAS * SHIT: meters/bars should be aligned, which is difficult if we get different keychanges in different staffs. - * Integrating (objectiveC) MusicKit with LilyPond + * Integrating (objectiveC) MusicKit with LilyPond? * MusixTeX output possible? diff --git a/bin/make_website b/bin/make_website index f7a1209029..a6855cbe31 100755 --- a/bin/make_website +++ b/bin/make_website @@ -23,7 +23,7 @@ sub all_refs } local $base="lilypond/"; -local @examples=("wohltemperirt" ,"standchen", "scsii-menuetto", "rhythm", "martien", "collisions"); +local @examples=("wohltemperirt" ,"standchen", "scsii-menuetto", "rhythm", "collisions"); sub gen_html @@ -38,7 +38,7 @@ sub gen_examples foreach $a (@examples) { $texfile="test"; $tex = "tex $texfile"; - if ($a eq "standchen" || $a eq "scsii-menuetto" || $a eq "martien") { + if ($a eq "standchen" || $a eq "scsii-menuetto" ) { $tex = "latex $a"; $texfile = "$a"; } diff --git a/configure b/configure index 7bb6edf9d1..ce276ad5d6 100755 --- a/configure +++ b/configure @@ -12,19 +12,19 @@ ac_help= ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help - enable-printing set debug printing" + enable-printing turn on debug printing" ac_help="$ac_help - disable-checking set runtime checks" + disable-checking set runtime checks (assert calls)" ac_help="$ac_help - disable-debugging set debug info" + disable-debugging set debug info " ac_help="$ac_help enable-optimise use maximal speed optimisations" ac_help="$ac_help enable-profiling compile with gprof support" ac_help="$ac_help - tex-prefix=DIR set the tex-directory to find TeX subdirectories." + tex-prefix=DIR set the tex-directory to find TeX subdirectories. (default: PREFIX)" ac_help="$ac_help - tex-dir=DIR set the directory to put LilyPond TeX files in." + tex-dir=DIR set the directory to put LilyPond TeX files in. " ac_help="$ac_help mf-dir=DIR set the directory to put LilyPond MetaFont files in." @@ -543,12 +543,6 @@ ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cxx_cross -printing_b=no -checking_b=yes -debug_b=yes -optimise_b=no -profile_b=no -#shared_b=no # Check whether --enable-printing or --disable-printing was given. if test "${enable_printing+set}" = set; then @@ -640,7 +634,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:644: checking for $ac_word" >&5 +echo "configure:638: 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 @@ -671,7 +665,7 @@ test -n "$CXX" || CXX="gcc" echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:675: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 +echo "configure:669: 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. @@ -681,11 +675,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:683: \"$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 @@ -705,12 +699,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:709: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:703: 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:714: checking whether we are using GNU C++" >&5 +echo "configure:708: 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 @@ -719,7 +713,7 @@ else yes; #endif EOF -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 +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 ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no @@ -734,7 +728,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:738: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:732: 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 @@ -764,7 +758,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:768: checking for $ac_word" >&5 +echo "configure:762: 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 @@ -820,7 +814,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:824: checking for a BSD compatible install" >&5 +echo "configure:818: 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 @@ -874,7 +868,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:878: checking for $ac_word" >&5 +echo "configure:872: 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 @@ -924,7 +918,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:928: checking for $ac_word" >&5 +echo "configure:922: 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 @@ -958,7 +952,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:962: checking for $ac_word" >&5 +echo "configure:956: 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 @@ -992,7 +986,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:996: checking for $ac_word" >&5 +echo "configure:990: 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 @@ -1026,7 +1020,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:1030: checking for $ac_word" >&5 +echo "configure:1024: 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 @@ -1062,7 +1056,7 @@ if test "x$TEXPREFIX" = xauto ; then echo $ac_n "checking TeX/MF root dir directory""... $ac_c" 1>&6 -echo "configure:1066: checking TeX/MF root dir directory" >&5 +echo "configure:1060: checking TeX/MF root dir directory" >&5 find_root_prefix="$prefix" @@ -1091,6 +1085,8 @@ echo "configure:1066: checking TeX/MF root dir directory" >&5 echo "$ac_t""$find_texprefix" 1>&6 +else + find_texprefix=$TEXPREFIX fi if test "x$TEXDIR" = xauto ; then @@ -1098,7 +1094,7 @@ if test "x$TEXDIR" = xauto ; then echo $ac_n "checking TeX input directory""... $ac_c" 1>&6 -echo "configure:1102: checking TeX input directory" >&5 +echo "configure:1098: checking TeX input directory" >&5 find_dirdir=`(cd $find_texprefix; $FIND ./ -type d -a -name tex -print |sort|head -1|sed 's#^\./##')` @@ -1120,7 +1116,7 @@ if test "x$MFDIR" = xauto; then echo $ac_n "checking MF input directory""... $ac_c" 1>&6 -echo "configure:1124: checking MF input directory" >&5 +echo "configure:1120: checking MF input directory" >&5 find_dirdir=`(cd $find_texprefix; $FIND ./ -type d -a -name source -print |sort|head -1|sed 's#^\./##')` @@ -1171,7 +1167,7 @@ else fi echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:1175: checking how to run the C++ preprocessor" >&5 +echo "configure:1171: 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 @@ -1184,12 +1180,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:1193: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1209,17 +1205,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:1213: checking for FlexLexer.h" >&5 +echo "configure:1209: 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:1223: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1219: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* @@ -1623,7 +1619,7 @@ fi eval "DIR_DATADIR=$datadir" DIR_DATADIR="$DIR_DATADIR/lilypond" echo $ac_n "checking ""... $ac_c" 1>&6 -echo "configure:1627: checking " >&5 +echo "configure:1623: checking " >&5 cat << EOF > lib/out/config.hh diff --git a/configure.in b/configure.in index d0519149fb..7bb5c5d999 100644 --- a/configure.in +++ b/configure.in @@ -3,6 +3,12 @@ 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, [ @@ -75,24 +81,18 @@ AC_INIT(flower/choleski.cc) AC_LANG_CPLUSPLUS -printing_b=no -checking_b=yes -debug_b=yes -optimise_b=no -profile_b=no -#shared_b=no AC_ARG_ENABLE(printing, - [ enable-printing set debug printing], + [ enable-printing turn on debug printing], [printing_b=$enableval]) AC_ARG_ENABLE(checking, - [ disable-checking set runtime checks], + [ disable-checking set runtime checks (assert calls)], [checking_b=$enableval] ) AC_ARG_ENABLE(debugging, - [ disable-debugging set debug info], + [ disable-debugging set debug info ], [debug_b=$enableval]) AC_ARG_ENABLE(optimise, @@ -105,12 +105,12 @@ AC_ARG_ENABLE(profiling, [profile_b=$enableval]) AC_ARG_ENABLE(tex-prefix, - [ tex-prefix=DIR set the tex-directory to find TeX subdirectories.], + [ tex-prefix=DIR set the tex-directory to find TeX subdirectories. (default: PREFIX)], [TEXPREFIX=$enableval], [TEXPREFIX=auto] ) AC_ARG_ENABLE(tex-dir, - [ tex-dir=DIR set the directory to put LilyPond TeX files in.], + [ tex-dir=DIR set the directory to put LilyPond TeX files in. ], [TEXDIR=$enableval], [TEXDIR=auto] ) AC_ARG_ENABLE(mf-dir, @@ -170,6 +170,8 @@ AC_CHECK_PROGS(PODMAN, pod2man, error) if test "x$TEXPREFIX" = xauto ; then AC_TEX_PREFIX(TEXPREFIX) +else + find_texprefix=$TEXPREFIX fi if test "x$TEXDIR" = xauto ; then diff --git a/flower/.version b/flower/.version index 2e73ca7ca9..6a81adeb2e 100644 --- a/flower/.version +++ b/flower/.version @@ -1,6 +1,6 @@ MAJOR_VERSION = 1 MINOR_VERSION = 1 -PATCH_LEVEL = 13 +PATCH_LEVEL = 14 # 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 934256a78b..3910ba6ccd 100644 --- a/flower/NEWS +++ b/flower/NEWS @@ -1,3 +1,5 @@ +pl 1.1.14 + - interval methods pl 1.1.13 - better test-bed - Heap PQueue implementation diff --git a/flower/include/assoc.hh b/flower/include/assoc.hh index b40d68661f..0d9cbc9a43 100644 --- a/flower/include/assoc.hh +++ b/flower/include/assoc.hh @@ -17,6 +17,8 @@ struct Assoc_ent_ { /** mindblowingly stupid Associative array implementation. Hungarian: map + + TODO: a decent hash for strings. */ template struct Assoc { diff --git a/flower/include/dstream.hh b/flower/include/dstream.hh index 19f78addb9..64cb612026 100644 --- a/flower/include/dstream.hh +++ b/flower/include/dstream.hh @@ -22,6 +22,8 @@ struct Assoc; Init for the class names which should be silent can be given in a rc file. + TODO: + make a baseclass for indentable streams. */ class Dstream { diff --git a/flower/include/interval.hh b/flower/include/interval.hh index 1c3c6588c0..ec39f0d7e2 100644 --- a/flower/include/interval.hh +++ b/flower/include/interval.hh @@ -72,6 +72,16 @@ struct Interval_t { right +=r; return *this; } + Interval_t &operator *=(T r) { + left *= r; + right *= r; + if (r <0) { + T t = left; + left = right; + right = t; + } + return *this; + } String str() const; bool elt_b(T r); }; @@ -101,7 +111,6 @@ intersection(Interval_t a, Interval_t const&b) } - template inline Interval_t operator +(T a,Interval_t i ) @@ -116,6 +125,20 @@ Interval_t operator +(Interval_t i,T a ){ return a+i; } +template +inline +Interval_t operator *(T a,Interval_t i ) +{ + i *= a; + return i; +} + +template +inline +Interval_t operator *(Interval_t i,T a ){ + return a*i; +} + typedef Interval_t Interval; diff --git a/flower/include/lgetopt.hh b/flower/include/lgetopt.hh index 22f45d2adb..6db9cd4dfd 100644 --- a/flower/include/lgetopt.hh +++ b/flower/include/lgetopt.hh @@ -20,7 +20,13 @@ struct Long_option_init { /** C++ for version of long_getopt. For processing GNU style command line arguments. No pointer (return values, arguments) contents are - copied. */ + copied. + + TODO: handle + command - , and command -- + + argument reordering + */ class Getopt_long { public: /** errorcodes: no error, argument expected, no argument expected, diff --git a/flower/include/path.hh b/flower/include/path.hh index 0bed543538..12f0ce4cb6 100644 --- a/flower/include/path.hh +++ b/flower/include/path.hh @@ -1,14 +1,24 @@ +/* + path.hh -- declare File_path + + source file of the Flower Library + + (c) 1997 Han-Wen Nienhuys +*/ + #ifndef PATH_HH #define PATH_HH #include "string.hh" #include "varray.hh" -/** searching directory for file. +/** + search in directories for a file. Abstraction of PATH variable. An interface for searching input files. Search a number of dirs for a file. + TODO: add a unix style PATH interface Should use kpathsea? */ @@ -26,12 +36,13 @@ public: Array::push; void add(String str) { push(str); } }; -/** split a path into its components. + +/** split a path into its components. @params path @return - String & drive, String &dirs, String &filebase, String &extension + String &drive, String &dirs, String &filebase, String &extension */ void split_path(String path, String &drive, String &dirs, String &filebase, String &extension); diff --git a/flower/include/pqueue.hh b/flower/include/pqueue.hh index dac5be52f3..034fa3d3ef 100644 --- a/flower/include/pqueue.hh +++ b/flower/include/pqueue.hh @@ -29,6 +29,8 @@ int compare (PQueue_ent const &e1 , PQueue_ent const &e2) { Hungarian postfix pq + TODO: add increase/decrease operations, + add max() operation */ template class PQueue { diff --git a/init/script.ini b/init/script.ini index 665d8aa4e6..f979ee4fcd 100644 --- a/init/script.ini +++ b/init/script.ini @@ -1,6 +1,6 @@ % name = \script { -% indexstring same_dir_as_stem above_below_staff symbol_can_beinverted } +% indexstring follow_into_staff same_dir_as_stem above_below_staff symbol_can_beinverted } % accent = \script { "sforzato" 0 -1 0 0 } @@ -13,3 +13,9 @@ staccato = \script { "staccato" 1 -1 0 0 } tenuto = \script {"tenuto" 0 -1 0 0 } upbow = \script { "upbow" 0 0 1 0 } downbow = \script { "downbow" 0 0 1 0 } +% toe = \script { "toe" 0 -1 0 0 } +% heel = \script { "heel" 0 -1 0 0 } +lheel = \script { "heel" 0 0 -1 0 } +rheel = \script { "heel" 0 0 1 0 } +ltoe = \script { "toe" 0 0 -1 0 } +rtoe = \script { "toe" 0 0 1 0 } diff --git a/init/swedish.ini b/init/swedish.ini index 13438fee11..22f16645e0 100644 --- a/init/swedish.ini +++ b/init/swedish.ini @@ -1,45 +1,92 @@ -%% -% Please note that, while these names are used to enter *notes*, they -% actually are *melodic*s, i.e. they represent a pitch solely. Notes -% have a rhythmic part too. This is the reason that we don't write 'note -% common Swedish names for notes. "-ess" means flat, "-iss" means sharp +% +% common Swedish names for notes. "ess" means flat, "iss" means sharp % % by Mats Bengtsson. + +% +% Please note that, while these names are used to enter *notes*, they +% actually are *melodic*s, i.e. they represent a pitch solely. Notes +% have a rhythmic part too. This is the reason that we don't write 'note { .. }' +% \notenames { -cessess = \melodic_request { 0 0 -2 } -cess = \melodic_request { 0 0 -1 } -c = \melodic_request { 0 0 0 } -ciss = \melodic_request { 0 0 1 } -cississ = \melodic_request { 0 0 2 } -dessess = \melodic_request { 0 1 -2 } -dess = \melodic_request { 0 1 -1 } -d = \melodic_request { 0 1 0 } -diss = \melodic_request { 0 1 1 } -dississ = \melodic_request { 0 1 2 } -essess = \melodic_request { 0 2 -2 } -ess = \melodic_request { 0 2 -1 } -e = \melodic_request { 0 2 0 } -eiss = \melodic_request { 0 2 1 } -eississ = \melodic_request { 0 2 2 } -fessess = \melodic_request { 0 3 -2 } -fess = \melodic_request { 0 3 -1 } -f = \melodic_request { 0 3 0 } -fiss = \melodic_request { 0 3 1 } -fississ = \melodic_request { 0 3 2 } -gessess = \melodic_request { 0 4 -2 } -gess = \melodic_request { 0 4 -1 } -g = \melodic_request { 0 4 0 } -giss = \melodic_request { 0 4 1 } -gississ = \melodic_request { 0 4 2 } -assess = \melodic_request { 0 5 -2 } -ass = \melodic_request { 0 5 -1 } -a = \melodic_request { 0 5 0 } -aiss = \melodic_request { 0 5 1 } -aississ = \melodic_request { 0 5 2 } -hessess = \melodic_request { 0 6 -2 } -b = \melodic_request { 0 6 -1 } -h = \melodic_request { 0 6 0 } -hiss = \melodic_request { 0 6 1 } -hississ = \melodic_request { 0 6 2 } + cessess = \melodic_request { -1 0 -2 } + cess = \melodic_request { -1 0 -1 } + c = \melodic_request { -1 0 0 } + ciss = \melodic_request { -1 0 1 } + cississ = \melodic_request { -1 0 2 } + dessess = \melodic_request { -1 1 -2 } + dess = \melodic_request { -1 1 -1 } + d = \melodic_request { -1 1 0 } + diss = \melodic_request { -1 1 1 } + dississ = \melodic_request { -1 1 2 } + essess = \melodic_request { -1 2 -2 } + ess = \melodic_request { -1 2 -1 } + e = \melodic_request { -1 2 0 } + eiss = \melodic_request { -1 2 1 } + eississ = \melodic_request { -1 2 2 } + fessess = \melodic_request { -1 3 -2 } + fess = \melodic_request { -1 3 -1 } + "f" = \melodic_request { -1 3 0 } + fiss = \melodic_request { -1 3 1 } + fississ = \melodic_request { -1 3 2 } + gessess = \melodic_request { -1 4 -2 } + gess = \melodic_request { -1 4 -1 } + g = \melodic_request { -1 4 0 } + giss = \melodic_request { -1 4 1 } + gississ = \melodic_request { -1 4 2 } + assess = \melodic_request { -1 5 -2 } + ass = \melodic_request { -1 5 -1 } + a = \melodic_request { -1 5 0 } + aiss = \melodic_request { -1 5 1 } + aississ = \melodic_request { -1 5 2 } + hessess = \melodic_request { -1 6 -2 } + b = \melodic_request { -1 6 -1 } + h = \melodic_request { -1 6 0 } + hiss = \melodic_request { -1 6 1 } + hississ = \melodic_request { -1 6 2 } + + + % + % upper case: 1 octave lower. + % + + + Cessess = \melodic_request { -2 0 -2 } + Cess = \melodic_request { -2 0 -1 } + C = \melodic_request { -2 0 0 } + Ciss = \melodic_request { -2 0 1 } + Cississ = \melodic_request { -2 0 2 } + Dessess = \melodic_request { -2 1 -2 } + Dess = \melodic_request { -2 1 -1 } + D = \melodic_request { -2 1 0 } + Diss = \melodic_request { -2 1 1 } + Dississ = \melodic_request { -2 1 2 } + Essess = \melodic_request { -2 2 -2 } + Ess = \melodic_request { -2 2 -1 } + E = \melodic_request { -2 2 0 } + Eiss = \melodic_request { -2 2 1 } + Eississ = \melodic_request { -2 2 2 } + Fessess = \melodic_request { -2 3 -2 } + Fess = \melodic_request { -2 3 -1 } + F = \melodic_request { -2 3 0 } + Fiss = \melodic_request { -2 3 1 } + Fississ = \melodic_request { -2 3 2 } + Gessess = \melodic_request { -2 4 -2 } + Gess = \melodic_request { -2 4 -1 } + G = \melodic_request { -2 4 0 } + Giss = \melodic_request { -2 4 1 } + Gississ = \melodic_request { -2 4 2 } + Assess = \melodic_request { -2 5 -2 } + Ass = \melodic_request { -2 5 -1 } + A = \melodic_request { -2 5 0 } + Aiss = \melodic_request { -2 5 1 } + Aississ = \melodic_request { -2 5 2 } + Hessess = \melodic_request { -2 6 -2 } + B = \melodic_request { -2 6 -1 } + H = \melodic_request { -2 6 0 } + Hiss = \melodic_request { -2 6 1 } + Hississ = \melodic_request { -2 6 2 } + + } diff --git a/init/table_sixteen.ini b/init/table_sixteen.ini index 95af77a40a..69167a77f1 100644 --- a/init/table_sixteen.ini +++ b/init/table_sixteen.ini @@ -25,10 +25,12 @@ table_sixteen= "-staccatissimo" "\istaccatissimo" 0\pt 0\pt -7.5\pt 0\pt "upbow" "\upbow" -1\pt 6\pt 0\pt 5\pt "downbow" "\downbow" 0\pt 5\pt 0\pt 7.5\pt + "heel" "\heel" -1\pt 6\pt -5\pt 17.5\pt + "toe" "\toe" 0\pt 5\pt -5\pt 17.5\pt } "style" = \table { - "roman" "\settext{%}" 0\pt 0\pt 0\pt 8\pt + "roman" "\settext{%}" 0\pt 5\pt 0\pt 8\pt "italic" "\setitalic{%}" 0\pt 0\pt 0\pt 8\pt "dynamic" "\setdynamic{%}" 0\pt 0\pt 0\pt 8\pt } diff --git a/input/cadenza.ly b/input/cadenza.ly index b8a31404d8..52b306746e 100644 --- a/input/cadenza.ly +++ b/input/cadenza.ly @@ -1,10 +1,15 @@ +% title: +% description:Cadenza to Mozart Horn concerto 3 +% composer(s):unknown +% entered-by:HWN +% copyright: public domain % -% Cadenza to Mozart Horn/3 -% -% author: unknown. Copyright: none -% +% Tested Features: cadenza mode + + \version "0.0.54"; + cad = \melodic { \cadenza 1; \grouping 1*4;\duration 8;\octave c'; diff --git a/input/fugue1.midi.ly b/input/fugue1.midi.ly deleted file mode 100644 index c4ac8dfeb2..0000000000 --- a/input/fugue1.midi.ly +++ /dev/null @@ -1,268 +0,0 @@ -% Creator: This is mi2mu 0.0.12.1 #5/FlowerLib 1.1.9 #0 of Mar 24 1997 21:30:32 -% Automatically generated, at Mon Mar 24 23:39:09 1997 -% from input file: fugue1.midi - -track0 = \melodic{ - % midi copyright: - % instrument: - % 1 - - % 26:2. - | - % 27 - -} % track0 - -track1 = \melodic{ - % midi copyright: - % instrument: - % 1 - - % 2:4*5/32 - g8 a8 b8 c'8. - % 3:4*5/128 - < { d'16 } > < { c'16 } > < { b8 } > e'8 a8 < { - d'8. } > e'16 d'16 c'16 b16 g16 a16 b16 c'16 b16 - c'16 d'16 e'16 d'16 e'16 fis'16 g'8 b8 c'8 a8 d'16 - c'16 b16 a16 - % 5:4*47/384 - < { g8. } > g16 f16 e16 f16 g16 a16 g16 a16 b16 c'2 - b4 | - % 7 - c'8 d'8 e'8 f'8. < { f'16 } { g'16 } > e'8 a'8 d'8 - g'8. a'16 g'16 f'16 e'8 a'8. b'16 a'16 g'16 f'2 - e'8. fis'16 g'2 fis'4 g'16 f'16 e'16 d'16 c'16 d'16 - c'16 b16 a16 c'16 b16 a16 - % 11:4 - c'16 a16 gis8 e'8 d'8 c'16 b16 a16 gis16 a16 b16 - c'16 fis16 gis16 a16 b8 a16 b16 c'8 f'8 e'8 d'4 - c'16 b16 - % 13:4*45/256 - < { c'16 } > < { b16 } > < { b16 b16 } { c'16 c'16 } - { b16 } { c'16 c'16 } > < > < { b16 } > < { a16 } - > | - % 14 - a4 - % 15:4*5/32 - g8 a8 b8 c'8. - % 16:4*5/128 - < { d'16 } > < { c'16 } > < { b8 } > c'8 d'8 e'8 - f'8. < { g'16 } > < { f'16 } > | - % 17 - < { e'8 } > a'8 d'8 g'8. a'16 g'16 f'16 e'8 a'8 d'8 - ais'8 a'8 g'16 f'16 g'16 f'16 g'16 e'16 f'16 - % 18:4*155/768 - < { g'16 } > < { g'16 } > < { a'16 } > < { g'16 } > - < > < > < { f'16 } > < { g'16 } > | - % 19 - < { a'16 } > cis'16 d'16 g'16 < { f'16 } > < { e'16 - } > < { f'16 } > < { e'16 } > < > < { f'16 } > < > - < > < > < { e'8 } > < > d'16 d'8 - % 20:4*7/32 - g8 a8 b8 - % 21:4 - c'8 d'16 < { c'16 } > < { b8 } > e'8 a8 < { d'8. } - > - % 22:4*5/384 - e'16 d'16 c'16 b16 c'16 d'16 e'16 f'16 g'16 a'16 - g'16 f'16 e'16 d'16 c'16 < { c'16 } > < { b16 } > < - { c'16 } > | - % 23 - < > < > < { b8. } > c'8 d'8 g8 < { c'4 } > b8 c'4 - b8 ais8 a8 - % 24:4*59/384 - < { d'4 } > c'8 d'8 e'8 - % 25:4 - f'4 a'16 < { g'16 } > f'16 e'16 < { f'16 } > < { - e'16 } > d'16 | - % 26 - c'2 g16 < { a16 } > b16 c'16 d'16 e'16 < { f'8. } > - | - % 27 - < { d'16 } { c'16 e'16 } > f'16 < { g'16 } > < { - a'8. } > b'16 c''2 -} % track1 - -track2 = \melodic{ - % midi copyright: - % instrument: - % 1 - c8 d8 e8 f8. < { g16 } > < { f16 } > < { e8 } > a8 - d8 - % 2:4*107/3840 - < { g8. } > a16 g16 f16 e16 f16 e16 d16 c16 d16 c16 - 'b16 'a8 fis8 - % 3:4*203/3840 - < { g4. } > f16 e16 f8 d8 g8 f8 e8 d8 - % 4:2 - g4 f16 e16 - % 5:4 - f4 f16 e8 d4 c8 f8 - % 6:4 - g16 f16 e16 f8 d8 g2 - % 7:4*241/3840 - - % 9:8 - g8 a8 b8 < { c'8. } > < { d'16 } > < { c'16 } > < { - b8 } > e'8 a8 - % 10:4*13/480 - < { d'8. } > e'16 d'16 c'16 b8 d8 e8 fis8 - % 11:4*23/384 - < { g8. } > < { a16 } > < { g16 } > < { f8 } > b8 - e8 a8. b16 a16 gis16 fis8 f8 e8 d8. e16 fis16 gis16 - a16 gis16 a16 b16 gis16 fis16 gis16 a16 b8 - % 13:4*5/32 - - % 14:8 - c8 d8 e8 < { f8. } > < { g16 } > < { f16 } > < { e8 - } > a8 d8 g8. a16 g16 f16 - % 15:2 - e16 e16 fis16 g4 - % 16:4*91/3840 - fis8 gis8 < { a4 } > g8 a8 b8 < { c'8. } > | - % 17 - < { d'16 } > < { c'16 } > < { b8 } > e'8 a8 d'8. - e'16 d'16 c'16 b8 g'8 cis'8 d'8 e'8 cis'8 d'8 e'8 - a8 - % 19:8 - e8 fis8 g8 < { a8. } > < { b16 } > < { a16 } > | - % 20 - < { g8 } > c'8 fis8 < { b8. } > c'16 b16 a16 g16 - fis16 e16 d16 e4 - % 21:4 - d4 a16 g16 f16 e16 g16 f16 a16 | - % 22 - g4 a16 ais8 < { c'4 } > d'8 g8 < { g4. } > | - % 23 - f4 e8 d4 | - % 24 - e16 a4 g4 f8 g8 a8 < { ais8. } > | - % 25 - < { c'16 } > < { ais16 } > < { a8 } > d'8 g8 < { - c'8. } > d'16 c'16 ais16 a16 ais16 a16 g16 f16 g16 - f16 e16 - % 26:2 - g16 a4 - % 27:4 - f'16 d'8 < { e'2 } { g'2 } > -} % track2 - -track3 = \melodic{ - % midi copyright: - % instrument: - % 1 - - % 4:8 - 'g8 'a8 'b8 c8. < { d16 } > < { c16 } > < { 'b8 } > - e8 'a8 - % 5:4*11/384 - < { d8. } > e16 d16 c16 'b8 c4 'ais8 'a8 d8 'g8 c8 - % 6:2 - 'a16 'b16 c16 d4 'g4 - % 7:4 - 'g8 'a8 'b8 c8. < { d16 } > < { c16 } > < > | - % 8 - 'b8 e8 'a8 d8. e16 d16 c16 'b8 e4. d4 - % 9:2 - 'b16 c16 'a16 e16 d16 c16 'b16 c16 'a16 'b16 c16 - d16 c16 'b16 'a16 'g4 - % 10:2. - - % 12:8 - 'e8 'fis8 'gis8 'a8. < { 'b16 } > < { 'a16 } > < { - 'g8 } > c8 'fis8 'b8. c16 'b16 'a16 - % 13:2 - 'gis8 < { 'a4 } > 'gis8 'a4 - % 14:4 - 'g8 'a8 'b8 c8. < { d16 } > < { c16 } > | - % 15 - < { 'b8 } > e8 'a8 d4 'g8 d4 c8 'a8 e4 d8 - % 16:4*5/32 - - % 17:8 - 'a8 'b8 cis8 d8. < { e16 } > < { d16 } > < { c8 } > - f8 'b8 e8. f16 e16 d16 cis8 - % 18:4*5/32 - - % 19:8 - 'a8 'b8 cis8 d8. < { e16 } > < { d16 } > < { c8 } > - fis8 'b8 e8. fis16 e16 d16 - % 20:2 - c2 d16 c16 'b16 'a16 'g16 'a16 'fis16 - % 21:2 - 'g8 'b8 c8 < { d8 } > e8. - % 22:4*5/128 - < { f16 } > < { e16 } > < { d8 } > g8 c8 f8. g16 - f16 e16 d4 e8 d4 - % 23:4*59/384 - < { 'g8 } > 'g4. 'c8 'd8 'e8 'f8. - % 24:4*21/128 - < { 'g16 } > < { 'f16 } > < { 'e8 } > 'a8 'd8 - % 25:4*11/384 - < { 'g8. } > 'a16 'g16 'f16 'e16 'd16 'e16 'f16 - 'g16 'a16 'ais16 'g16 'a16 'e16 'f16 'g16 'a16 'b16 - c16 - % 26:4*7/64 - < { 'a16 } { d2 } > | - % 27 - c1 -} % track3 - -track4 = \melodic{ - % midi copyright: - % instrument: - % 1 - - % 5:4*5/32 - 'c8 'd8 'e8 'f8. - % 6:4*5/128 - < { 'g16 } > < { 'f16 } > < { 'e8 } > 'a8 'd8 < { - 'g8. } > 'a16 'g16 'f16 'e16 'f16 'e16 'd16 'c16 - 'd16 'c16 ''b16 ''a8 'd8 'a8 'fis8 'g16 'a16 'ais16 - 'g16 'cis8 'd8 'a4 'e4 'a16 'b16 c16 d16 c16 'b16 - 'a16 'g16 c8 - % 9:4*5/32 - - % 10:4*5/32 - ''g8 ''a8 ''b8 'c8. - % 11:4*5/128 - < { 'd16 } > < { 'c16 } > < { ''b8 } > 'e8 ''a8 - 'd8. 'e16 'd16 'c16 < { ''b8 } > | - % 12 - 'e4 'd8 'c8 'f4 'e4 'd4 'e8 'f8 'e16 'd16 'e4 ''a4 - % 14:4 - - % 15:8 - ''g8 ''a8 ''b8 'c8. < { 'd16 } > < { 'c16 } > < { - ''b8 } > 'e8 ''a8 'd8. 'e16 'd16 'c16 ''b8 ''ais8 - ''a8 ''g8 ''a8 'fis8 'g8 'e8 'd4 'e8 'f8 'g8. - % 18:4*5/128 - < { 'a16 } > < { 'g16 } > < { 'f8 } > 'ais8 'e8 - 'a8. 'b16 < { 'a16 } > 'g16 'f16 'e16 'f16 'd16 'g8 - 'a8 - % 19:2 - 'd2 'e16 'd16 'c16 ''b16 ''a16 ''g16 ''fis16 ''e8 - 'e8 'fis8 'g4 'a16 'g16 'fis8 'd8 'g1 'a4 'b8 c8 - 'f16 'a16 'g16 'f16 'e16 'd16 'c16 ''b16 'c16 'd16 - 'e16 'f16 'g8 ''g8 | - % 24 - - % 26:2 - 'b2 | - % 27 - -} % track4 - -\score{ - \staff{ track0 } - \staff{ track1 } - \staff{ track2 } - \staff{ track3 } - \staff{ track4 } - - \paper{ - \unitspace 20\mm - }\midi{ - \tempo 4:60 - } -} diff --git a/input/header.ly b/input/header.ly new file mode 100644 index 0000000000..24104197fd --- /dev/null +++ b/input/header.ly @@ -0,0 +1,11 @@ +%%MudelaHeader +% title: +% description: +% composer(s): +% entered-by: +% copyright: +% +% Tested Features: +%%End + +\version "0.0.54"; diff --git a/input/kortjakje.ly b/input/kortjakje.ly index 31af298810..ff94f49290 100644 --- a/input/kortjakje.ly +++ b/input/kortjakje.ly @@ -7,9 +7,9 @@ % % copyright: None % -% declare melody (which will be in *one* staff ) for the lead voice \version "0.0.54"; +% declare melody (which will be in *one* staff ) for the lead voice melodie = \melodic { % switch Lilypond in note-mode \clef\violin; diff --git a/input/maartje.ly b/input/maartje.ly deleted file mode 100644 index 5bcf7c303c..0000000000 --- a/input/maartje.ly +++ /dev/null @@ -1,75 +0,0 @@ -% The purpose of this file is to demonstrate features of LilyPond; -% -% COPYRIGHT: GPL -% -% -\version "0.0.54"; - -globals=\melodic{ - \meter 4/ 4; - \partial 8; - \skip 8*1; - \skip 2*3 ; - \bar ":|:"; - \skip 1*2; - \meter 2/4; -} - -%ritme = \staff{melodicregs -% globals -% rhythmic broken for now -% \rhytmic{ -% c8 -% |[a8() a8. a8 a16 a16 a16] c4. -% -% %[c8( )a'8() c8 c8]% BUG! -% |c2 c2 -% -% |[fis16 dis'16( fis16 dis'16 ][fis16) dis'16 fis16 dis'16] -% | r32 r32 r16 r8 r4 r2 -% |[c8. c16] [c16 c8.] [c16 c16 c8] [c16 c8 c16] -% -% c2 c2 c2 c2 c2 c2 c2 c2 c2 c2 -% } -%} - -melody= \staff{melodicregs - globals - \melodic { - \octave c; - c8\key fis cis gis; - |r4 r4 r4 r4 - |cis'2.. r8 - | r4 r8 r16 r32 r32 - - \duration 4; - < - { c () 'bes [c8 c8] } - { fis' ()gisis' fis8 fis8 } - { d () d dis8 dis8 } - { a () bes eis8 eis8 } - { fis () g gis8 gis8 } - > - \clef\tenor; - < c4 c'4 > - - [d8 e8 f'8 g8] d8 e8 f8 g8 - |fis''2 - | a8 b8 c'8 d'8 |c''8 '''c8 c4 |c4 c4 |c4 - \duration 16 ; 'b 'a 'g 'f \duration 4; - \clef\bass ; - - |c 'b 'a 'g 'f 'e 'd 'c ''b ''a ''g ''f ''e ''d ''c - } - -} - -\score{ - \paper{ - \geometric 1.4 - \unitspace 3.0 \cm - } - - \staff{ melody} -} - diff --git a/input/martien.ly b/input/martien.ly deleted file mode 100644 index cdc617cebb..0000000000 --- a/input/martien.ly +++ /dev/null @@ -1,46 +0,0 @@ -% -% Viola Quartet -% Martien Lohman (194x-????) -% -% quite alive at the time of writing; -% copyright by ml -% -% -% The purpose of this file is to demonstrate features of LilyPond; -% respect the copyright. %% VAAG! -% -% \barnumbering5 -% \barnumberstyle\boxed - -commands = \melodic{ - \meter 2/4; -% \key fis - \skip 2*56; -% \key bes es as - \skip 2*8; - \meter 6/8; - \skip 8*48; - \meter 2/4; - \skip 2*16; -% \key fis -} - -\include "mlalt.ly" -\include "mlvio1.ly" -\include "mlvio2.ly" -\include "mlcello.ly" - -\score{ - \staff{ melodicregs commands alto } - \staff{ melodicregs commands violinI } - \staff{ melodicregs commands violinII } - \staff{ melodicregs commands cello } - \paper{ - \unitspace 24\mm - \width 195\mm - \output "martien.out" - } - \midi{ - \tempo 4:80 - } -} diff --git a/input/martien.tex b/input/martien.tex deleted file mode 100644 index 79475cd8f7..0000000000 --- a/input/martien.tex +++ /dev/null @@ -1,23 +0,0 @@ -\documentclass{article} %UGH -\usepackage{a4} -\oddsidemargin-1in\advance\oddsidemargin7.5mm -\evensidemargin\oddsidemargin -\hsize210mm\vsize297mm % so what does a4 do, anyway? -\textwidth\hsize\advance\textwidth-15mm -\topmargin-1in\advance\topmargin5mm -\textheight\vsize\advance\textheight-30mm -\pagestyle{empty} -\begin{document} -\input lilyponddefs -\input titledefs -%\def\interstaffline{\vskip10pt} -%\def\interscoreline{\vskip12pt} -\def\interstaffline{\vskip1mm} -\def\interscoreline{\vskip2mm} -\vbox to 10mm{\vss} -\title{Viola Quartet} -\composer{Martien Lohman} -\instrument{} -\maketit -\input martien.out -\end{document} diff --git a/input/mlalt.ly b/input/mlalt.ly deleted file mode 100644 index 4fdba3a715..0000000000 --- a/input/mlalt.ly +++ /dev/null @@ -1,213 +0,0 @@ -% mlalt.ly -% -% Viola Quartet -% Martien Lohman (194x-????) -% -% Alto I -% -% quite alive at the time of writing; -% copyright by ml -% -% The purpose of this file is to demonstrate features of LilyPond; -% respect the copyright. -% -alto = \melodic { - \duration 16; - \clef\alto; - \octave c; - \key fis; -%1 - [ 'b8. 'a ] [ 'g8 'b c ] | -%2 - [ d8 g8 ] d4 | -%3 - [ e fis g a ] d4 | -%4 - [ c 'b 'a 'b ] 'b4 | -%5=1 - [ 'b8. 'a ] [ 'g8 'b c ] | -%6=2 - [ d8 g8 ] d4 | -%7 - [ c 'b 'a 'g ] [ 'fis 'e 'd 'c ] | -%8 - [ 'd8. 'e ] [ 'd 'fis 'a c ] | -%9=1 - [ 'b8. 'a ] [ 'g8 'b c ] | -%10 - [ d8 'd8 ] d4 | -%11=4 - [ c 'b 'a 'b ] 'b4 | -%12 - [ 'a8 d8 ] 'b4 | -%13 - [ d8. c ] [ 'b8 'a 'g ] | -%14=10 - [ d8 'd8 ] d4 | -%15 - [ e8 fis8 ] [ g8 d8 ] | -%16 - \textstyle "italic"; - [ c 'a 'fis 'd ] 'g4_"fine" | - \textstyle "roman"; -% \scoreverb \mulooseness=-1; -% \newline -%17 -%=1 - [ 'b8. 'a ] [ 'g8 'b c ] | -%18=2 - [ d8 g8 ] d4 | -%19=3 - [ e fis g a ] d4 | -%20=4 - [ c 'b 'a 'b ] 'b4 | -%21=5=1 - [ 'b8. 'a ] [ 'g8 'b c ] | -%22=6=2 - [ d8 g8 ] d4 | -%23=20=4 - [ c 'b 'a 'b ] 'b4 | -%24 - [ 'a8. 'g ] [ 'a cis e g ] | -%first modulation -%25 - [ fis8. e ] [ d8 fis g ] | -%26 - [ a8 'a8 ] a4 | -%27 - [ g fis e fis ] fis4 | -%28 - [ e8 a8 ] fis4 | -%29 - [ a8. g ] [ fis8 e d ] | -%30 - [ a8 'a8 ] a4 | -%31 - [ b8 cis'8 ] [ d'8 a8 ] | -%32 - [ g e cis 'a ] d4 | -%variant a -%33 - [ 'b8 'g 'g ] [ 'g8 'b c ] | -%34 - [ d8 'g 'g ] 'g4 | -%35 - [ e8 'g 'g ] [ 'g8 e fis ] | -%36 - [ g8. fis32 e32 ] d4 | -%37 - [ e8 c c ] [ c8 'b 'a ] | -%38 - [ d8 'b 'b ] [ 'b8 'a 'g ] | -%39 - [ c8 'a 'a ] [ 'a8 'b 'a ] | -%40 - 'a4 'g4 | -%41 - [ 'g8 'a 'g ] [ d8 e d ] | -%42 - [ 'g8 'a 'g ] [ g8 e8 ] | -%43 - [ d8 e d ] [ d8 c 'b ] | -%44 - [ 'b8. c32 'b32 ] 'a4 | -%45 - [ 'g 'a 'g 'a 'g 'a ]4/6 [ 'g 'b c d e fis ]4/6 | -%46 - [ g fis e d 'b 'g ]4/6 [ 'a8 'g8 ] | -%47 - [ g fis e d c 'b ]4/6 [ e d c 'b 'a 'g ]4/6 | -%48 - [ d e d d 'b 'g ]4/6 [ 'a8 'g8 ] | -%theme 2 - \duration 8; -%49 - [ f e d ]2/3 f4 | -%50 - [ e d c ]2/3 e4 | -%51 - [ d g 'g ]2/3 [ 'g 'a 'b ]2/3 | -%52 - d4 e4 | -%53 - [ f e d ]2/3 f4 | -%54 - [ e d c ]2/3 e4 | -%55 - [ d g 'g ]2/3 [ 'g 'a 'b ]2/3 | -%56 - 'b4 c4 \key bes es as; | % || \key\Es -%57 - [ 'b d ] [ 'g 'b ] | -%58 - [ c es ] [ 'g c ] | -%59 - [ d f ] [ 'g f ] | -%60 - [ es16 d16 es16 f16 ] g4 | -%61 - [ as f ] [ d as ] | -%62 - [ g es ] [ c 'as ] | -%63 - [ 'g 'b ] [ es d ] | -%64 - [ c8. 'g32 'es32 ] 'c4 | % || \meter 6/8; -%65 - es4.( [ )es d c ] | -%66 - es2. | -%67 - d4.( [ )d c 'b ] | -%68 - d2. | -%69 -% g4.\stemdown( [ ) g as g ] | - g4.( [ ) g as g ] | -%70 -% g4.\stemdown( [ ) g f es ] | - g4.( [ )g f es ] | -%71 - d2. | -%72 - c r4 r4. | % || \meter 2/4; -%73 - \duration 8; - [ 'b d ] [ 'g 'b ] | -%74 - [ c es ] [ 'g c ] | -%75 - [ d f ] [ 'g f ] | -%76 - [ es16 d16 es16 f16 ] g4 | -%77 - [ as f ] [ d as ] | -%78 - [ g es ] [ c 'as ] | -%79 - [ 'g 'b ] [ es d ] | -%80 - [ c8. 'g32 'es32 ] 'c4 | -%81 - g4 [ as g ] | -%82 - \duration 16; - [ g f es f ] g4 | -%83 - [ g f e f ] g4 | -%84 - [ as g f g ] as4 | -%85 - f4 [ f des c 'bes ] | -%86 - 'a2 | -%87 - 'b2 | -%88 - \textstyle "italic"; - c2_"dacapo" \key fis; | - \textstyle "roman"; -%\scoreverb \mulooseness=1; -% \key\G || - -} diff --git a/input/mlcello.ly b/input/mlcello.ly deleted file mode 100644 index 9ce94ae171..0000000000 --- a/input/mlcello.ly +++ /dev/null @@ -1,220 +0,0 @@ -% mlcello.ly -% -% Viola Quartet -% Martien Lohman (194x-????) -% -% Cello -% -% quite alive at the time of writing; -% copyright by ml -% -% The purpose of this file is to demonstrate features of LilyPond; -% respect the copyright. -% -cello = \melodic { - \clef"bass"; - \octave 'c; - \duration 4; - \key fis; -%%1 - g 'g | -%%2 - [ 'g8. 'a16 ] ''b | -%%3 - c d | -%%4 - g( [ ) g16 fis16 e16 fis16 ] | -%%5=1 - e2 | -%%6=2 - [ 'g8. 'a16 ] ''b | -%%7 - c d | -%%8 - 'g d | -%%9=1 - 'g2 | -%%10 - 'g ''b | -%%11=4 - e [ g16 fis16 e16 d16( ] | -%%12 - ) d g | -%%13 - [ d8 d'8 ] g | -%%14=10 - [ d8 d'8 ] g | -%%15 - [ c8 e8 ] [ g8 'g8 ] | -%%16 - \textstyle "italic"; - [ d8 c'8 ] b_"fine" - \textstyle "roman" ;| -% \newline -%%17=1 - g 'g | -%%18=2 - [ 'g8. 'a16 ] ''b | -%%19=3 - c d | -%%20=4 - g( [ ) g16 fis16 e16 fis16 ] | -%%21=5=1 - e2 | -%%22=6=2 - [ 'g8. 'a16 ] ''b | -%%23=4 - c g | -%%24 - a 'a | -%%25 - d2 | -%%first modulation -%%26 - d 'fis | -%%27 - ''b [ dis16 c16 ''b16 'a16( ] | -%%28 - ) 'a d | -%%29 - \duration 8; - [ 'a a ] d4 | -%%30 - [ 'a a ] d4 | -%%31 - [ 'g ''b ] [ d 'd ] | -%%32 - [ 'a a ] d4 | -%%variant a -%%33 - \duration 16; - [ 'g8 'g 'g ] [ 'g8 'g 'g ] | -%%34 - [ 'g8 'g 'g ] g4 | -%%35 - [ c8 c c ] [ c8 c' c' ] | -%%36 - g4 b4 | -%%37 - [ a8 a a ] [ 'a8 'a 'a ] | -%%38 - [ ''b8 ''b ''b ] [ ''b8 ''b ''b ] | -%%39 - [ 'a8 'a 'a ] [ 'a8 'a 'a ] | -%%40 - 'd4 'g4 | -%%41 - \duration 8; - \textstyle "italic"; - r_"pizz" - \textstyle "roman"; - g r 'g | -%%42 - r g e4 | -%%43 - r b r ''b | -%%44 - r e a4 | -%%45 - r e r e | -%%46 - r ''b [ d g ] | -%%47 - r e r 'a | -%%48 - r ''b - [ 'd 'g ] | -%%theme 2 -%%49 - \textstyle "italic"; - r4_"arco" - [ 'g 'g 'g ]2/3 | - \textstyle "roman"; -%%50 - r4 [ c c c ]2/3 | -%%51 - g2 | -%%52 - c2 | -%%53 - r4 [ 'g 'g 'g ]2/3 | -%%54 - r4 [ c c c ]2/3 | -%%55 - g2 | -%%56 - 'g4 'c4 \key bes es as;| -% \key\'es || -%%57 - g r g r | -%%58 - c r c r | -%%59 - 'g r 'g r | -%%60 - c r c r | -%%61 - d4. ''b | -%%62 - c2 | -%%63 - g4 'g4 | -%%64 - c4 'c4 | -% \meter 6/8; || -%%65 - [ c c c ] c4. | -%%66 - [ 'c 'c 'c ] 'c4. | -%%67 - [ 'g 'g 'g ] 'g4. | -% \newline -%%68 - [ g g g ] g4. | -%%69 - c2. | -%%70 - c2. | -%%71 - g2. | -%%72 - c' r4 r4. | -%%73 -% \meter 2/4; || - g r g r | -%%74 - c r c r | -%%75 - 'g r 'g r | -%%76 - c r c4 | -%%77 - d4. ''b | -%%78 - c2 | -%%79 - g4 'g4 | -%%80 - c4 'c4 | -%%81 - \duration 2; - 'c | -%%82 - 'c | -%%83 - 'e | -%%84 - 'f | -%%85 - 'as | -%%86 - c | -%%87 - d | -%%88 - \textstyle "italic"; - d_"dacapo" \key fis; | - \textstyle "roman"; -% \key\'g || - -} diff --git a/input/mlvio1.ly b/input/mlvio1.ly deleted file mode 100644 index 2d59b71ab3..0000000000 --- a/input/mlvio1.ly +++ /dev/null @@ -1,219 +0,0 @@ -% mlvio1.ly -% -% Viola Quartet -% Martien Lohman (194x-????) -% -% Violin I -% -% quite alive at the time of writing; -% copyright by ml -% -% The purpose of this file is to demonstrate features of LilyPond; -% respect the copyright. -% -violinI = \melodic { - \clef "violin"; - \octave c; - \duration 4; - \key fis; -%1 - g [ b8. a16 ] | -%2 - g2 | -%3 - g [ a16 b16 c'16 a16 ] | -%4 - g2 | -%5=1 - g [ b8. a16 ] | -%6=2 - g2 | -%7 - e fis | -%8 - d fis | -%9=1 - g [ b8. a16 ] | -%10 - g f | -%11=4 - e d | -%12 - [ fis8 a8 ] [ g8 d'8 ] | -%13 - [ d'8 a8 ] [ d'8 b8 ] | -%14=10 - a b | -%15 - c' b | -%16 - \textstyle "italic"; - a g_"fine" - \textstyle "roman" ; - | -%\newline -%17=1 - g [ b8. a16 ] | -%18=2 - g2 | -%19=3 - g [ a16 b16 c'16 a16 ] | -%20=4 - g2 | -%21=5 - g [ b8. a16 ] | -%22=6 - g2 | -%23=4 - e [ d16 c16 'b16 c16 ] | -%24 - cis cis' | -%25 - d' [ fis'8. e'16 ] | -%first modulation -%26 - d' c' | -%27 - b a | -%28 - [ a8 b16 cis'16 ] d' | -%29 - cis' d' | -%30 - cis' a | -%31 - [ g8 d'8( ] ) d' | -%32 - cis' c' | -%variant a' -%33 - \duration 16; [ b8 d' d' ] [ d'8 d' d' ] | -%34 - [ g'8 d' d' ] b4 | -%35 - [ c'8 c' c' ] [ c'8 c' c' ] | -%36 - b2 | -%37 - [ c'8 e' e' ] [ e'8 d' c' ] | -%38 - [ b8 d' d' ] [ d'8 d' d' ] | -%39 - [ e'8 c' c' ] [ c'8 d' c' ] | -%40 - c'4 < b4 d'4 > | -%41 - \textstyle "italic"; - \duration 8; - r_"pizz" d r g - \textstyle "roman" ;| -%42 - r d e4 | -%43 - r b r d' | -%44 - r e' c'4 | -%45 - r b r b | -%46 - r b [ a b ] | -%47 - r b r c' | -%48 - r d' [ d' b ] | -%theme 2 -%49 - \textstyle "italic"; - r4_"arco" [ b8 b b ]2/3 - \textstyle "roman" ;| -%50 - r4 [ g g g ]2/3 | -%51 - b2 | -%52 - c'2 | -%53 - r4 [ b b b ]2/3 | -%54 - r4 [ g g g ]2/3 | -%55 - b2 | -%56 - g2 \key bes es as;| -% \key\Es || -%57 - f r f r | -%58 - es r c' r | -%59 - b r b r | -%60 - c' r c'4 | -%61 - \duration 16; - [ as f d f as d' ]4/6 [ as f d 'as d f ]4/6 | -%62 - [ g es c 'g c es ]4/6 [ g c' es' c' g es ]4/6 | -%63 - [ g d g bes d' g' ]4/6 [ f' d' bes g f d ]4/6 | -%64 - \duration 8; - [ c g ] g4 | -% \meter 6/8; || -%65 - [ g g g ] g4. | -%66 - [ c c c ] c4. | -%67 - [ g g g ] g4. | -%68 - [ b8 b b ] b4. | -%69 - [ c' g es ] c'4. | -%70 - c'4. es'4. | -%71 - [ f' d' b ] [ g a8 b ] | -%72 - c' r4 r4. | -% \meter 2/4; || -%73 - f r f r | -%74 - es r c' r | -%75 - b r b r | -%76 - c' r c'4 | -%77 - \duration 16; - [ as f d f as d' ]4/6 [ as f d 'as d f ]4/6 | -%78 - [ g es c 'g c es ]4/6 [ f c' es' c' g es ]4/6 | -%79 - [ g d f b d' g' ]4/6 [ f' d' b g f d ]4/6 | -%80 - [ c8 g8 ] g4 | -%81 - \duration 2; - c' | -%82 - c' | -%83 - des' | -%84 - c' | -%85 - c' | -%86 - es | -%87 - d | -%88 - \textstyle "italic"; - a_"dacapo" - \textstyle "roman"; - \key fis; | -% \key\G || - -} diff --git a/input/mlvio2.ly b/input/mlvio2.ly deleted file mode 100644 index 71a6ca9d9a..0000000000 --- a/input/mlvio2.ly +++ /dev/null @@ -1,218 +0,0 @@ -% mlvio2.ly -% -% Viola Quartet -% Martien Lohman (194x-????) -% -% Violin II -% -% quite alive at the time of writing; -% copyright by ml -% -% The purpose of this file is to demonstrate features of LilyPond; -% respect the copyright. -% -violinII = \melodic { - \clef "violin"; - \octave c; - \duration 4; - \key fis; -%1 - d2 | -%2 - [ 'b8. 'a16 ] 'g4 | -%3 - [ g8 e8 ] fis | -%4 - d2 | -%5=1 - e2 | -%6=2 - [ 'b8. 'a16 ] 'g4 | -%7 - 'g 'a | -%8 - 'b 'a | -%9=1 - d2 | -%10 - 'b 'g | -%11=4 - 'g2 | -%12 - [ d8 e16 fis16 ] g | -%13 - fis g | -%14=10 - fis d | -%15 - c d | -%16 - \textstyle "italic"; - d2_"fine" | - \textstyle "roman"; -% \newline -%17=1 - d2 | -%18=2 - [ 'b8. 'a16 ] 'g4 | -%19=3 - [ g8 e8 ] fis | -%20=4 - d2 | -%21=5=1 - e2 | -%22=6=2 - [ 'b8. 'a16 ] 'g4 | -%23=4 - 'g2 | -%24 - cis e | -%25 - a2 | -%first modulation -%26 - fis d | -%27 - d2 | -%28 - [ cis8 e8 ] [ d8 a8 ] | -%29 - [ a8 e8 ] [ a8 fis8 ] | -%30 - e fis | -%31 - g fis | -%32 - a fis | -%variant a -%33 - \duration 16; - [ g8 b b ] [ b8 g a ] | -%34 - [ b8 b b ] f4 | -%35 - [ g8 e e ] [ e8 g g ] | -%36 - b4 fis4 | -%37 - [ a8 a a ] [ a8 a a ] | -%38 - [ fis8 fis fis ] [ fis8 fis fis ] | -%39 - [ e8 e e ] [ e8 e e ] | -%40 - fis4 g4 | -%41 - \duration 8; - \textstyle "italic"; - r_"pizz" - \textstyle "roman"; - 'b r 'b | -%42 - r 'b 'g4 | -%43 - r fis r fis | -%44 - r g e4 | -%45 - r e r g | -%46 - r fis [ fis g ] | -%47 - r g r e | -%48 - r fis [ fis d ] | -%theme 2 -%49 - \textstyle "italic"; - r4_"arco" - \textstyle "roman"; - [ d8 d d ]2/3 | -%50 - r4 [ g8 g g ]2/3 | -%51 - d2 | -%52 - c2 | -%53 - r4 [ d8 d d ]2/3 | -%54 - r4 [ e e e ]2/3 | -%55 - d2 | -%56 - f4 e4 \key bes es as;| -% \key\Es || -%57 - d r 'b r | -%58 - 'g r es r | -%59 - g r g r | -%60 - g r es4 | -%61 - f2 | -%62 - es2 | -%63 - 'b d4. | -%64 - es2 | -% \meter 6/8; || -%65 - \duration 8; - [ c c c ] c4. | -%66 - [ 'g 'g 'g ] 'g4. | -%67 - [ 'b8 'b 'b ] 'b4. | -%68 - [ g g g ] g4. | -%69 - es2. | -%70 - [ c es g ] c'4. | -%71 - b4 g4 d4 | -%72 - es r4 r4. | -%73 -% \meter 2/4; || - d r 'b r | -%74 - 'g r es r | -%75 - g r g r | -%76 - g r es4 | -%77 - \duration 2; - f | -%78 - es | -%79 - 'b8 d4. | -%80 - es | -%81 - es | -%82 - es | -%83 - bes | -%84 - f | -%85 - f | -%86 - ges | -%87 - g! | -%88 - \textstyle "italic"; - fis_"dacapo" \key fis;| - \textstyle "roman"; -% \key\G || - -} diff --git a/input/plet.ly b/input/plet.ly deleted file mode 100644 index 8cdf05f297..0000000000 --- a/input/plet.ly +++ /dev/null @@ -1,42 +0,0 @@ -% urgh - -melanie = \melodic{ - \meter 2/4; - \duration 8; - [ c d ] < [ d d'>< c c' ] > | - [ c d ] [ e c ]2/3 | - [ c d ] [ c16 d16 e'16 e'16 d16 c16 ]4/6 | - [ c d e e d c ]4/6 | - [c d ] < { [ c d e ]2/3 } { [ f g a ]2/3 } > | - [ c d ] [ d c ] | - -} - -michelle = \melodic{ - \meter 2/4; - \duration 8; - [ c c c c ] | - [ c c c c ] | - [ c c c c ] | - [ c c c c ] | - [ c c c c ] | - [ c c c c ] | -} - -mireille = \lyric{ - \meter 2/4; - \duration 8; - o o o o | - o o [ o o o ]2/3 | - [ o o o ]2/3 [ o16 o16 o16 o16 o16 o16 ]4/6 | - [ o o o o o o]4/6 | - o o [ o o o ]2/3 | - o o o o | -} - -\score{ - \staff{ melodicregs mireille } - \staff{ melodicregs melanie } - \staff{ melodicregs michelle } - \paper{} -} diff --git a/input/pre1.midi.ly b/input/pre1.midi.ly deleted file mode 100644 index 8a59b16269..0000000000 --- a/input/pre1.midi.ly +++ /dev/null @@ -1,208 +0,0 @@ -% Creator: This is mi2mu 0.0.12.1 #5/FlowerLib 1.1.9 #0 of Mar 24 1997 21:30:32 -% Automatically generated, at Mon Mar 24 23:24:05 1997 -% from input file: pre1.midi - -track0 = \melodic{ - % midi copyright: - % instrument: - % 1 - - % 34:8 - | - % 35 - -} % track0 - -track1 = \melodic{ - % midi copyright: - % instrument: - % 1 - g16 c'16 e'16 g16 c'16 e'16 g16 c'16 e'16 g16 c'16 - e'16 | - % 2 - a16 d'16 f'16 a16 d'16 f'16 a16 d'16 f'16 a16 d'16 - f'16 | - % 3 - g16 d'16 f'16 g16 d'16 f'16 g16 d'16 f'16 g16 d'16 - f'16 | - % 4 - g16 c'16 e'16 g16 c'16 e'16 g16 c'16 e'16 g16 c'16 - e'16 | - % 5 - a16 e'16 a'16 a16 e'16 a'16 a16 e'16 a'16 a16 e'16 - a'16 | - % 6 - fis16 a16 d'16 fis16 a16 d'16 fis16 a16 d'16 fis16 - a16 d'16 | - % 7 - g16 d'16 g'16 g16 d'16 g'16 g16 d'16 g'16 g16 d'16 - g'16 | - % 8 - e16 g16 c'16 e16 g16 c'16 e16 g16 c'16 e16 g16 c'16 - | - % 9 - e16 g16 c'16 e16 g16 c'16 e16 g16 c'16 e16 g16 c'16 - | - % 10 - d16 fis16 c'16 d16 fis16 c'16 d16 fis16 c'16 d16 - fis16 c'16 | - % 11 - d16 g16 b16 d16 g16 b16 d16 g16 b16 d16 g16 b16 | - % 12 - e16 g16 cis'16 e16 g16 cis'16 e16 g16 cis'16 e16 - g16 cis'16 | - % 13 - d16 a16 d'16 d16 a16 d'16 d16 a16 d'16 d16 a16 d'16 - | - % 14 - d16 f16 b16 d16 f16 b16 d16 f16 b16 d16 f16 b16 | - % 15 - c16 g16 c'16 c16 g16 c'16 c16 g16 c'16 c16 g16 c'16 - | - % 16 - 'a16 c16 f16 'a16 c16 f16 'a16 c16 f16 'a16 c16 f16 - | - % 17 - 'a16 c16 f16 'a16 c16 f16 'a16 c16 f16 'a16 c16 f16 - | - % 18 - 'g16 'b16 f16 'g16 'b16 f16 'g16 'b16 f16 'g16 'b16 - f16 | - % 19 - 'g16 c16 e16 'g16 c16 e16 'g16 c16 e16 'g16 c16 e16 - | - % 20 - 'ais16 c16 e16 'ais16 c16 e16 'ais16 c16 e16 'ais16 - c16 e16 | - % 21 - 'a16 c16 e16 'a16 c16 e16 'a16 c16 e16 'a16 c16 e16 - | - % 22 - 'a16 c16 dis16 'a16 c16 dis16 'a16 c16 dis16 'a16 - c16 dis16 | - % 23 - 'b16 c16 d16 'b16 c16 d16 'b16 c16 d16 'b16 c16 d16 - | - % 24 - 'g16 'b16 d16 'g16 'b16 d16 'g16 'b16 d16 'g16 'b16 - d16 | - % 25 - 'g16 c16 e16 'g16 c16 e16 'g16 c16 e16 'g16 c16 e16 - | - % 26 - 'g16 c16 f16 'g16 c16 f16 'g16 c16 f16 'g16 c16 f16 - | - % 27 - 'g16 'b16 f16 'g16 'b16 f16 'g16 'b16 f16 'g16 'b16 - f16 | - % 28 - 'a16 c16 fis16 'a16 c16 fis16 'a16 c16 fis16 'a16 - c16 fis16 | - % 29 - 'g16 c16 g16 'g16 c16 g16 'g16 c16 g16 'g16 c16 g16 - | - % 30 - 'g16 c16 f16 'g16 c16 f16 'g16 c16 f16 'g16 c16 f16 - | - % 31 - 'g16 'b16 f16 'g16 'b16 f16 'g16 'b16 f16 'g16 'b16 - f16 | - % 32 - 'g16 'ais16 e16 'g16 'ais16 e16 'g16 'ais16 e16 - 'g16 'ais16 e16 | - % 33 - 'f16 'a16 c16 f16 c16 'a16 c16 'a16 'f16 'a16 'f16 - 'd16 'f16 'd16 | - % 34 - g16 b16 d'16 f'16 d'16 b16 d'16 b16 g16 b16 d16 f16 - < { e16 } > < { f16 } > < { e16 } > < > < > d16 | - % 35 - < { c'1 } { g1 } { e1 } > -} % track1 - -track2 = \melodic{ - % midi copyright: - % instrument: - % 1 - e4. e4. - % 2:4*89/3840 - d4. d4. - % 3:4*3/128 - d4. d4. - % 4:4*89/3840 - e4. e4. - % 5:4*29/1280 - e4. e4. - % 6:4*29/1920 - d4. d4. - % 7:4*79/3840 - d4. d4. - % 8:4*83/3840 - c4. c4. - % 9:4*29/1280 - c4. c4. - % 10:4*5/192 - 'a4. 'a4. - % 11:4*91/3840 - 'b4. 'b4. - % 12:4*103/3840 - 'ais4. 'ais4. - % 13:4*83/3840 - 'a4. 'a4. - % 14:4*53/1920 - 'gis4. 'gis4. - % 15:4*1/40 - 'g4. 'g4. - % 16:4*91/3840 - 'f4. 'f4. - % 17:4*23/960 - 'f4. 'f4. - % 18:4*113/3840 - 'd4. 'd4. - % 19:4*91/3840 - 'e4. 'e4. - % 20:4*33/1280 - 'g4. < { 'c2 } > < { 'g4. } > ''f2 - % 21:4*11/384 - < { 'f4. } > ''f2 < { 'f4. } > ''fis2 - % 22:4*7/3840 - < { ''fis2 } { 'c2 } > < { 'c4. } > ''gis2 - % 23:4*39/1280 - < { ''gis2 } { 'f4. } > < { 'f4. } > ''g2 - % 24:4*59/1920 - < { ''g2 } { 'f4. } > < { 'f4. } > ''g2 - % 25:4*17/3840 - < { ''g2 } { 'e2 } > < { ''g2 } { 'e4. } > - % 26:4*19/640 - < { ''g2 } { 'd4. } > < { ''g2 } { 'd2 } > - % 27:4*1/1280 - < { 'd4. } > ''g2 < { ''g2 } { 'd4. } > - % 28:4*101/3840 - < { 'dis4. } > ''g2 < { 'dis4. } > ''g2 - % 29:4*17/640 - < { 'e4. } > ''g2 < { 'e4. } > ''g2 - % 30:4*3/128 - < { 'd4. } > ''g2 < { 'd4. } > ''g2 - % 31:4*101/3840 - < { 'd4. } > ''g2 < { 'd4. } > ''c2 - % 32:4*47/1920 - < { 'c4. } > ''c2 < { 'c4. } > ''c1 < { 'c1 } > - % 33:4*113/480 - < { ''c1 } { ''b1 } > < > - % 34:4*113/480 - | - % 35 - < { ''c1 } { 'c1 } > -} % track2 - -\score{ - \staff{ track0 } - \staff{ track1 } - \staff{ track2 } - - \paper{ - \unitspace 20\mm - }\midi{ - \tempo 4:60 - } -} diff --git a/input/wohltemperirt.ly b/input/wohltemperirt.ly index 66c3ae015e..f78af4da03 100644 --- a/input/wohltemperirt.ly +++ b/input/wohltemperirt.ly @@ -1,12 +1,17 @@ -% JS Bach, Das Wohltemperirtes Clavier I, Fuga II (c-minor) % -% Public Domain -- typed by by HWN +% title: Das Wohltemperirte Clavier I, Fuga II (c-minor) +% description: +% composer(s): JS Bach +% entered-by: HWN +% copyright:Public Domain % +% Tested Features:stem direction, multivoice. +% + \version "0.0.54"; global = \melodic{ \meter 4/4 ; - \grouping 2*2; \key bes es as; } @@ -90,7 +95,7 @@ comes = \melodic { [G F16 Es] [F8 D] [As G] r A | [B c] [F16 Es D C] [C8 c16 B] [c8 G]| [As c16 B] [c8 d] [G8 c16 B] [c8 d] | - [F16 G] As4 [G16 F] E2. | + [F16 G] As4 [G16 F] E2 | } diff --git a/lily/.version b/lily/.version index f50a4d2508..515736281a 100644 --- a/lily/.version +++ b/lily/.version @@ -1,7 +1,7 @@ MAJOR_VERSION = 0 MINOR_VERSION = 0 -PATCH_LEVEL = 55 +PATCH_LEVEL = 57 # use to send patches, always empty for released version: # include separator: ".postfix", "-pl" makes rpm barf -MY_PATCH_LEVEL = +MY_PATCH_LEVEL = diff --git a/lily/beam.cc b/lily/beam.cc index ccf37114db..7052fae9fb 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -1,3 +1,17 @@ +/* + beam.cc -- implement Beam + + source file of the LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys + + TODO + + Less hairy code. Better slope calculations. + knee ([\stem 1; c8 \stem -1; c8] + +*/ + #include "varray.hh" #include "proto.hh" @@ -112,7 +126,7 @@ Beam::solve_slope() left_pos *= dir_i_; slope *= dir_i_; - // URG + // ugh Real sl = slope*paper()->internote(); paper()->lookup_l()->beam(sl, 20 PT); slope = sl /paper()->internote(); diff --git a/lily/calcideal.cc b/lily/calcideal.cc index 0e3733ccb0..92720e7611 100644 --- a/lily/calcideal.cc +++ b/lily/calcideal.cc @@ -7,10 +7,13 @@ /** - this needs A LOT of rethinking. - generate springs between columns. + TODO: This needs A LOT of rethinking. Spacing should take optical + effects into account, should be local (measure wide), should check + smallest divisions. + + */ void Score::calc_idealspacing() diff --git a/lily/collision.cc b/lily/collision.cc index 53c64fed95..64ceafe19a 100644 --- a/lily/collision.cc +++ b/lily/collision.cc @@ -52,11 +52,16 @@ Collision::do_pre_processing() for (int i=0; i < clash_l_arr_.size(); i++) { Note_column* c_l = clash_l_arr_[i]; + if (! c_l->dir_i_) { + warning ("No stem direction set. Ignoring column in clash. "); + continue; + } int d = (c_l->dir_i_); clash_group_arr_a[idx(d, c_l->h_shift_b_)].push(c_l); } + for (int j=0; j < 4; j++) { if (clash_group_arr_a[j].size() > 1) { warning("Too many clashing notecolumns. Ignoring them."); diff --git a/lily/crescendo.cc b/lily/crescendo.cc index 5b10f8cc89..09b775f8de 100644 --- a/lily/crescendo.cc +++ b/lily/crescendo.cc @@ -30,7 +30,7 @@ Molecule* Crescendo::brew_molecule_p() const return m_p ; { Real x_off_dim=0.0; - Real absdyn_dim = 10 PT; // UGR + Real absdyn_dim = 10 PT; // ugh m_p = new Molecule; Real w_dim = width().length(); diff --git a/lily/include/bar.hh b/lily/include/bar.hh index 3727358d96..733cd26237 100644 --- a/lily/include/bar.hh +++ b/lily/include/bar.hh @@ -7,12 +7,16 @@ #ifndef BAR_HH #define BAR_HH #include "item.hh" - -struct Bar: Item { +/** + TODO: connections with pre and postbreak + */ +class Bar:public Item { +public: String type; + NAME_MEMBERS(Bar); Bar(String type); -NAME_MEMBERS(Bar); +private: void do_print() const; Molecule*brew_molecule_p()const; }; diff --git a/lily/include/break.hh b/lily/include/break.hh index 886e2d788b..72f0edf39b 100644 --- a/lily/include/break.hh +++ b/lily/include/break.hh @@ -1,9 +1,12 @@ /* - break.hh -- part of LilyPond + break.hh -- declare Break_algorithm - (c) 1996,97 Han-Wen Nienhuys + source file of the LilyPond music typesetter + + (c) 1996, 1997 Han-Wen Nienhuys */ + #ifndef BREAK_HH #define BREAK_HH #include "varray.hh" @@ -11,7 +14,12 @@ #include "colhpos.hh" /** Class representation of an algorithm which decides where to put - the column, and where to break lines. */ + the column, and where to break lines. + + TODO: a decent algorithm, based on dynamic programming or something + a like. A "parindent", caching of breakpoints + + */ struct Break_algorithm { PScore &pscore_; Real linelength; diff --git a/lily/include/collision.hh b/lily/include/collision.hh index 4d25f93c05..9f28738e21 100644 --- a/lily/include/collision.hh +++ b/lily/include/collision.hh @@ -12,6 +12,11 @@ #include "lily-proto.hh" #include "item.hh" +/** TODO + + multistaff support (see Chlapik: equal noteheads should be on the + same hpos.) +*/ class Collision : public Item { protected: virtual void do_pre_processing(); diff --git a/lily/include/grouping.hh b/lily/include/grouping.hh index 06061743ac..e4395b1f7a 100644 --- a/lily/include/grouping.hh +++ b/lily/include/grouping.hh @@ -14,6 +14,8 @@ typedef Interval_t MInterval; /** data structure which represents rhythmic units this is a tree. It groupes notes according to rules + + TODO Documentation. Unhairing */ struct Rhythmic_grouping { Array children; diff --git a/lily/include/linespace.hh b/lily/include/linespace.hh index 2a9e655479..28e2abc01c 100644 --- a/lily/include/linespace.hh +++ b/lily/include/linespace.hh @@ -45,6 +45,9 @@ struct Colinfo { The quality is given by the total potential energy in the springs. The lower the energy, the better the configuration. + + TODO: make item widths work per pstaff. + */ class Spacing_problem { Array ideals; diff --git a/lily/include/meter.hh b/lily/include/meter.hh index 928434b28a..b923785256 100644 --- a/lily/include/meter.hh +++ b/lily/include/meter.hh @@ -10,13 +10,20 @@ #include "varray.hh" #include "scalar.hh" -struct Meter: Item { +/** + TODO: + + C style meters, 2+3+2/8 meters, alla breve. + + */ +class Meter: public Item { Array args; /* *************** */ -NAME_MEMBERS(Meter); - - Meter(Array args) ; +protected: Molecule*brew_molecule_p() const; +public: + Meter(Array args) ; + NAME_MEMBERS(Meter); }; #endif // METER_HH diff --git a/lily/include/midi-output.hh b/lily/include/midi-output.hh index 11e5cb5f7d..86ffab2a05 100644 --- a/lily/include/midi-output.hh +++ b/lily/include/midi-output.hh @@ -11,6 +11,7 @@ #define MIDIOUTPUT_HH #include "lily-proto.hh" + struct Midi_output { Midi_output(Score* score_l, Midi_def* ); diff --git a/lily/include/my-lily-parser.hh b/lily/include/my-lily-parser.hh index 9b208a2aac..6fef2311ff 100644 --- a/lily/include/my-lily-parser.hh +++ b/lily/include/my-lily-parser.hh @@ -31,6 +31,7 @@ class My_lily_parser { Voice_element* get_rest_element(String,Duration *); Voice_element* get_word_element(Text_def*, Duration*); void set_last_duration(Duration const *); + void set_default_duration(Duration const *); void set_duration_mode(String s); friend int yyparse( void*); public: diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh index e96ef11605..ba118fcbde 100644 --- a/lily/include/note-column.hh +++ b/lily/include/note-column.hh @@ -15,6 +15,9 @@ /** a struct for treating a group of noteheads (noteheads, stem (chord) and scripts ) as a single entity. */ class Note_column : public Script_column { + /// link to the stem. For setting default direction + Stem * stem_l_; + void do_pre_processing(); public: bool h_shift_b_; diff --git a/lily/include/paper-def.hh b/lily/include/paper-def.hh index cb1c5cbea9..9eb94245d5 100644 --- a/lily/include/paper-def.hh +++ b/lily/include/paper-def.hh @@ -1,9 +1,9 @@ /* - paper-def.hh -- declare Paper_def +paper-def.hh -- declare Paper_def source file of the LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1996,1997 Han-Wen Nienhuys */ @@ -15,12 +15,19 @@ #include "moment.hh" -/** symbols, dimensions and constants +/** + + symbols, dimensions and constants This struct takes care of all kinds of symbols, dimensions and constants. Most of them are related to the point-size of the fonts, so therefore, the lookup table for symbols is also in here. + TODO: + + add support for multiple fontsizes + split into "Input_paper_def" and Paper_def + add support for other len->wid conversions. */ class Paper_def { Lookup *lookup_p_; diff --git a/lily/include/pulk-voices.hh b/lily/include/pulk-voices.hh index 29fc48bed2..2cc5a48831 100644 --- a/lily/include/pulk-voices.hh +++ b/lily/include/pulk-voices.hh @@ -4,6 +4,9 @@ source file of the LilyPond music typesetter (c) 1997 Han-Wen Nienhuys + + TODO + integrate Meter handling, to guarantee proper creation of staff_columns. */ diff --git a/lily/include/register-group.hh b/lily/include/register-group.hh index cccafc4804..fc93216de0 100644 --- a/lily/include/register-group.hh +++ b/lily/include/register-group.hh @@ -38,7 +38,7 @@ public: /** Remove #reg_l# from the list, and return it. */ - Request_register * get_register_p(Request_register*reg_l); + virtual Request_register * get_register_p(Request_register*reg_l); virtual void set_feature(Feature i); virtual bool acceptable_request_b(Request*)const; virtual void pre_move_processing(); diff --git a/lily/include/register.hh b/lily/include/register.hh index 6d62b74c61..b86af3d918 100644 --- a/lily/include/register.hh +++ b/lily/include/register.hh @@ -1,9 +1,12 @@ /* - register.hh -- part of LilyPond + register.hh -- declare Request_register - (c) 1996,1997 Han-Wen Nienhuys + source file of the LilyPond music typesetter + + (c) 1996, 1997 Han-Wen Nienhuys */ + #ifndef REGISTER_HH #define REGISTER_HH diff --git a/lily/include/score-walker.hh b/lily/include/score-walker.hh index 9d06975a0d..fc4a554f45 100644 --- a/lily/include/score-walker.hh +++ b/lily/include/score-walker.hh @@ -4,6 +4,8 @@ source file of the LilyPond music typesetter (c) 1997 Han-Wen Nienhuys + + */ @@ -16,6 +18,9 @@ /** walk through the score_columns, and while doing so, walk all staffs in a score. + + TODO + support for vertical spanners. */ class Score_walker : public PCursor { diff --git a/lily/include/stem-beam-reg.hh b/lily/include/stem-beam-reg.hh index 9c64765807..f5a3c6452b 100644 --- a/lily/include/stem-beam-reg.hh +++ b/lily/include/stem-beam-reg.hh @@ -9,7 +9,12 @@ #define STEMBEAMREG_HH #include "register.hh" -struct Stem_beam_register : Request_register { +/** + TODO: + override default_grouping if setting a n-plet + + */ +class Stem_beam_register : public Request_register { Stem * stem_p_; Beam * beam_p_; Beam_req * beam_req_l_; @@ -18,9 +23,12 @@ struct Stem_beam_register : Request_register { bool end_beam_b_; Rhythmic_grouping *current_grouping; int default_dir_i_; - +public: /* *************** */ + NAME_MEMBERS(Stem_beam_register); Stem_beam_register(); + +protected: ~Stem_beam_register(); virtual void set_feature(Feature dir_i_); virtual bool try_request(Request*); @@ -28,6 +36,5 @@ struct Stem_beam_register : Request_register { virtual void acknowledge_element(Staff_elem_info); virtual void pre_move_processing(); virtual void post_move_processing(); - NAME_MEMBERS(Stem_beam_register); }; #endif // STEMBEAMREG_HH diff --git a/lily/include/text-def.hh b/lily/include/text-def.hh index bd59e41789..c7b241c23d 100644 --- a/lily/include/text-def.hh +++ b/lily/include/text-def.hh @@ -4,15 +4,22 @@ (c) 1996,97 Han-Wen Nienhuys */ -#ifndef TEXTDEF_HH -#define TEXTDEF_HH +#ifndef TEXT_DEF_HH +#define TEXT_DEF_HH #include "string.hh" #include "proto.hh" #include "input.hh" -struct Text_def : Input { +class Text_def : public Input { +public: + /** + centered , or aligned? + + -1 = raggedright, 0 = center, 1 = raggedleft + */ int align_i_; + Paper_def* pdef_l_; String text_str_; String style_str_; @@ -21,8 +28,9 @@ struct Text_def : Input { bool compare(const Text_def&); Text_def(); virtual void print() const; - virtual Atom create_atom(Paper_def*) const; + Atom create_atom() const; + Interval width() const; }; -#endif // TEXTDEF_HH +#endif // TEXT_DEF_HH diff --git a/lily/include/text-item.hh b/lily/include/text-item.hh index d9ccb61c4b..13d47e45fa 100644 --- a/lily/include/text-item.hh +++ b/lily/include/text-item.hh @@ -1,5 +1,5 @@ /* - text.hh -- part of LilyPond + text-item.hh -- part of LilyPond (c) 1996,97 Han-Wen Nienhuys */ @@ -16,21 +16,26 @@ */ class Text_item : public Item ,public Staff_side{ void init(Text_def* tdef_l); - Text_def* tdef_p_; - + public: Text_def * tdef_l(); + Text_def const* tdef_c_l(); int pos_i_; - + + /// do I have width? + bool fat_b_; + /* ***************/ - Text_item(Text_def*); - Text_item(Text_req*); - ~Text_item(); + Text_item(Text_def*,int dir=0); + virtual ~Text_item(); NAME_MEMBERS(Text_item); + protected: + Text_def* tdef_p_; + virtual void set_default_index(); - Molecule* brew_molecule_p() const; + virtual Molecule* brew_molecule_p() const; virtual void do_post_processing(); virtual void do_pre_processing(); }; diff --git a/lily/include/voice-group-regs.hh b/lily/include/voice-group-regs.hh index cdc5b3b157..dba96dc21a 100644 --- a/lily/include/voice-group-regs.hh +++ b/lily/include/voice-group-regs.hh @@ -23,13 +23,13 @@ protected: virtual void post_move_processing(); virtual bool try_request(Request*); public: - + void OK() const; virtual Request_register * get_register_p(Request_register * reg_l); /// each group in a staff has an unique ID. String group_id_str_; /// The pointers are in the base class. This is just administration - Array voice_regs_l_; + Array voice_reg_l_arr_; /* *************** */ NAME_MEMBERS(Voice_group_registers); diff --git a/lily/include/voice-regs.hh b/lily/include/voice-regs.hh index 4172a8385e..818f32d71c 100644 --- a/lily/include/voice-regs.hh +++ b/lily/include/voice-regs.hh @@ -14,16 +14,19 @@ class Voice_registers : public Register_group_register { Input_register const *ireg_C_; + bool terminate_b_; public: Voice *voice_l_; /* *************** */ + Voice_registers(Voice*, Input_register const*); NAME_MEMBERS(Voice_registers); +protected: + virtual void pre_move_processing(); virtual bool acceptable_request_b(Request*); virtual void acknowledge_element(Staff_elem_info info); virtual bool try_request(Request*); - Voice_registers(Voice*, Input_register const*); virtual void do_print() const; }; diff --git a/lily/key-reg.cc b/lily/key-reg.cc index 82b196e2c7..c1268181ae 100644 --- a/lily/key-reg.cc +++ b/lily/key-reg.cc @@ -5,7 +5,8 @@ (c) 1997 Han-Wen Nienhuys - todo: key undo + + Todo: key undo, special keys. */ #include "key-reg.hh" diff --git a/lily/key.cc b/lily/key.cc index 5abfc51393..608df47e23 100644 --- a/lily/key.cc +++ b/lily/key.cc @@ -1,3 +1,14 @@ +/* + key.cc -- implement Key, Octave_key + + source file of the LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys + + TODO + transposition. +*/ + #include "key.hh" const int OCTAVES=14; // ugh.. diff --git a/lily/lexer.l b/lily/lexer.l index 5e82c5a31d..beab1c8150 100644 --- a/lily/lexer.l +++ b/lily/lexer.l @@ -54,7 +54,7 @@ REAL {INT}?(\.{N}+)? KEYWORD \\{WORD} WHITE [ \n\t\f] BLACK [^ \n\t\f] -RESTNAME r +RESTNAME [rs] NOTECOMMAND \\{WORD} DOTS \.+ LYRICS {AA}[^0-9 \t\n\f]* diff --git a/lily/lookup.cc b/lily/lookup.cc index ede8af0855..08591cfe7c 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -4,6 +4,12 @@ source file of the LilyPond music typesetter (c) 1997 Han-Wen Nienhuys + + TODO + This doth suck. We should have PS output, and read spacing info from TFMs + + Glissando, bracket + */ #include "lookup.hh" @@ -54,7 +60,7 @@ Lookup::text(String style, String text, int dir) const Symbol s = (*symtables_)("align")->lookup(dir); s.tex = substitute_args(s.tex,a); - s.dim.y = tsym.dim.y; + s.dim = tsym.dim; return s; } diff --git a/lily/lyric-register.cc b/lily/lyric-register.cc index 9245e3ea36..32712708da 100644 --- a/lily/lyric-register.cc +++ b/lily/lyric-register.cc @@ -10,10 +10,11 @@ #include "lyric-register.hh" #include "musical-request.hh" #include "text-item.hh" +#include "paper-def.hh" +#include "lookup.hh" Lyric_register::Lyric_register() { - } bool @@ -32,8 +33,9 @@ Lyric_register::process_requests() { Text_item * last_item_l =0; for (int i=0; i < lreq_arr_.size(); i++) { - Text_item *lp = new Text_item(lreq_arr_[i]); + Text_item *lp = new Text_item(lreq_arr_[i]->tdef_p_ ); lp->dir_i_ = -1; + lp->fat_b_ = true; if (last_item_l) lp->add_support(last_item_l); last_item_l = lp; diff --git a/lily/midi-walker.cc b/lily/midi-walker.cc index f230b1df98..f00daa9b5e 100644 --- a/lily/midi-walker.cc +++ b/lily/midi-walker.cc @@ -4,6 +4,12 @@ source file of the LilyPond music typesetter (c) 1997 Han-Wen Nienhuys , Jan Nieuwenhuizen + + TODO + + Ideally this should also use a register system, to process slurs, + dynamics, etc. + */ #include "command-request.hh" diff --git a/lily/my-lily-parser.cc b/lily/my-lily-parser.cc index 21645d93bc..db4561e108 100644 --- a/lily/my-lily-parser.cc +++ b/lily/my-lily-parser.cc @@ -105,6 +105,14 @@ My_lily_parser::set_duration_mode(String s) last_duration_mode = (s== "LAST"); } +void +My_lily_parser::set_default_duration(Duration const *d) +{ + last_duration_mode = false; + default_duration_ = *d; +} + + void My_lily_parser::set_last_duration(Duration const *d) { @@ -130,21 +138,29 @@ My_lily_parser::get_word_element(Text_def* tdef_p, Duration * duration_p) } Voice_element * -My_lily_parser::get_rest_element(String, Duration * duration_p ) +My_lily_parser::get_rest_element(String s, Duration * duration_p ) { Voice_element* velt_p = new Voice_element; velt_p->set_spot( here_input()); - Rest_req * rest_req_p = new Rest_req; - rest_req_p->duration_ = *duration_p; - rest_req_p->set_spot( here_input()); - - velt_p->add(rest_req_p); - + if (s=="s") { /* Space */ + Skip_req * skip_p = new Skip_req; + skip_p->duration_ = duration_p->length(); + skip_p->set_spot( here_input()); + velt_p->add(skip_p); + } + else { + Rest_req * rest_req_p = new Rest_req; + rest_req_p->duration_ = *duration_p; + rest_req_p->set_spot( here_input()); + + velt_p->add(rest_req_p); + } Stem_req * stem_p = new Stem_req; stem_p->duration_ = *duration_p; stem_p->set_spot ( here_input ()); velt_p->add(stem_p); + delete duration_p; return velt_p; } diff --git a/lily/note-column.cc b/lily/note-column.cc index d3daf57a2c..e40724976a 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -14,10 +14,10 @@ IMPLEMENT_STATIC_NAME(Note_column); - void Note_column::add(Stem*stem_l) { + stem_l_ = stem_l; add_support(stem_l); } @@ -31,6 +31,7 @@ Note_column::add(Notehead* n_l) Note_column::Note_column() { + stem_l_ = 0; h_shift_b_ =false; dir_i_ =0; } @@ -49,3 +50,11 @@ Note_column::head_positions_interval()const head_l_arr_.top()->position_i_); } + + +void +Note_column::do_pre_processing() +{ + if (!dir_i_) + dir_i_ = stem_l_->dir_i_; +} diff --git a/lily/paper-def.cc b/lily/paper-def.cc index 1b3a74b2a5..b2602dd355 100644 --- a/lily/paper-def.cc +++ b/lily/paper-def.cc @@ -1,3 +1,11 @@ +/* + paper-def.cc -- implement Paper_def + + source file of the LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys +*/ + #include #include "misc.hh" #include "paper-def.hh" diff --git a/lily/parser.y b/lily/parser.y index f0e6481f34..d831a69670 100644 --- a/lily/parser.y +++ b/lily/parser.y @@ -915,7 +915,7 @@ voice_command: delete $2; } | DURATIONCOMMAND notemode_duration { - THIS->default_duration_ = *$2; + THIS->set_default_duration($2); delete $2; } | OCTAVECOMMAND { diff --git a/lily/pulk-voices.cc b/lily/pulk-voices.cc index 63462ca1d3..3fe5a30fbd 100644 --- a/lily/pulk-voices.cc +++ b/lily/pulk-voices.cc @@ -18,7 +18,7 @@ Pulk_voices::Pulk_voices(PointerList const& l) { int staff_i = 0; last_= 0; - Moment min_staff_last_mom=1e8; // UGH + Moment min_staff_last_mom=1e8; // ugh for (iter_top(l, i); i.ok(); i++, staff_i++) { Moment staff_last=0; for (iter_top(i->voice_list_,j); j.ok(); j++) { diff --git a/lily/qlpsolve.cc b/lily/qlpsolve.cc index 8083200bcb..dc8fbcab7e 100644 --- a/lily/qlpsolve.cc +++ b/lily/qlpsolve.cc @@ -1,3 +1,14 @@ +/* + qlpsolve.cc -- implement Active_constraints, Inactive_iter + + source file of the LilyPond music typesetter + + (c) 1996, 1997 Han-Wen Nienhuys + + TODO: + try fixed point arithmetic, to speed up lily. + */ + #include "qlpsolve.hh" #include "const.hh" #include "debug.hh" diff --git a/lily/register-group.cc b/lily/register-group.cc index 611ac59b75..2180a1bf15 100644 --- a/lily/register-group.cc +++ b/lily/register-group.cc @@ -24,23 +24,34 @@ Register_group_register::acceptable_request_b(Request* r)const void Register_group_register::set_feature(Feature d) { - for (iter_top(reg_list_, i); i.ok(); i++) { - i->set_feature(d); + iter_top(reg_list_, i); + while (i.ok()) { + // this construction to ensure clean deletion + Request_register *reg_l = i++; + reg_l->set_feature(d); } } void Register_group_register::pre_move_processing() { - for (iter_top(reg_list_, i); i.ok(); i++) - i->pre_move_processing(); + iter_top(reg_list_, i); + while (i.ok()) { + // this construction to ensure clean deletion + Request_register *reg_l = i++; + reg_l->pre_move_processing(); + } } void Register_group_register::process_requests() { - for (iter_top(reg_list_, i); i.ok(); i++) - i->process_requests(); + iter_top(reg_list_, i); + while (i.ok()) { + // this construction to ensure clean deletion + Request_register *reg_l = i++; + reg_l->process_requests(); + } } void diff --git a/lily/score-walker.cc b/lily/score-walker.cc index 0354cdceaa..34fc0161e5 100644 --- a/lily/score-walker.cc +++ b/lily/score-walker.cc @@ -48,7 +48,7 @@ Score_walker::operator ++(int ) if (ok() && ptr()->when() == last) PCursor::operator++(0); reinit(); - bool last_b = (!ok()); // urgh + bool last_b = (!ok()); // ughh for (int i=0; i< walker_p_arr_.size(); i++) { if (walker_p_arr_[i]->ok() && (last_b || walker_p_arr_[i]->when() < when())) { diff --git a/lily/script.cc b/lily/script.cc index 8a35f2ed89..b350c8e7c9 100644 --- a/lily/script.cc +++ b/lily/script.cc @@ -55,7 +55,7 @@ Script::set_default_dir() void Script::set_default_index() { - pos_i_ = get_position_i(); + pos_i_ = get_position_i(symbol().dim.y); } Interval diff --git a/lily/slur.cc b/lily/slur.cc index 4ecc63ec6d..6bc5c1b24b 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -1,7 +1,10 @@ /* TODO: + think about crossing stems. + Begin and end should be treated as a Script. + */ #include "slur.hh" #include "scalar.hh" diff --git a/lily/staff-side.cc b/lily/staff-side.cc index 34aab28332..29c584822f 100644 --- a/lily/staff-side.cc +++ b/lily/staff-side.cc @@ -90,5 +90,5 @@ int Staff_side::get_position_i(Interval sym_dim) const { int i= get_position_i(); - return i+ int(rint(- sym_dim[dir_i_] / inter_f_)); + return i+ int(rint(- sym_dim[-dir_i_] / inter_f_)); } diff --git a/lily/staff-sym-reg.cc b/lily/staff-sym-reg.cc index e201edb6e3..60be9b0814 100644 --- a/lily/staff-sym-reg.cc +++ b/lily/staff-sym-reg.cc @@ -25,7 +25,7 @@ Staff_sym_register::post_move_processing() if (!span_p_ && !last_mom_) { span_p_= new Staff_symbol(NO_LINES); span_p_->left_col_l_ = - get_staff_info().command_pcol_l()->postbreak_p_; // GUH + get_staff_info().command_pcol_l()->postbreak_p_; // ugh } if (!last_mom_) { last_mom_ = get_staff_info().score_l()->last(); diff --git a/lily/staff.cc b/lily/staff.cc index a533c32f1a..1226fce46a 100644 --- a/lily/staff.cc +++ b/lily/staff.cc @@ -60,9 +60,6 @@ Staff::OK() const iter_top(cols_, i); iter_top(cols_, j); i++; - for (; i.ok(); j++,i++) { - assert(j->when () < i->when() ); - } assert(score_l_); #endif } diff --git a/lily/stem.cc b/lily/stem.cc index ee3bc64301..f775c20b25 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -128,7 +128,7 @@ Stem::set_default_stemlen() set_default_dir(); - // uhh... how about non 5-line staffs? + // ugh... how about non 5-line staffs? if ((max_head_i() < -2 && dir_i_ == 1 ) ||(min_head_i() > staff_size_i_ + 2 && dir_i_ == -1) ){ set_stemend( staff_size_i_ /2 ); @@ -202,17 +202,15 @@ Molecule* Stem::brew_molecule_p()const { Molecule *out =0; + if (invisible_b() && ! rest_l_arr_.size()) + warning("Empty stem. Ugh!"); + if ( invisible_b() ) return Staff_elem::brew_molecule_p(); Real bot = stem_bottom_f_; Real top = stem_top_f_; - if (min_head_i() > max_head_i()) { - warning("Empty stem. Ugh!"); - bot = -10; - top = 20; - } - + assert(bot!=top); Paper_def *p =paper(); diff --git a/lily/text-def.cc b/lily/text-def.cc index 71fb743886..55d04c85bf 100644 --- a/lily/text-def.cc +++ b/lily/text-def.cc @@ -3,10 +3,24 @@ #include "paper-def.hh" #include "molecule.hh" #include "text-def.hh" +#include "dimen.hh" + +Interval +Text_def::width() const +{ + Atom a = create_atom(); + + Real guess_width_f = text_str_.length_i() * a.sym.dim.x.length(); // ugh + Interval i(0, guess_width_f); + i += - (align_i_ + 1)* i.center(); + return i; +} + Text_def::Text_def() { - align_i_ = 1; // right + align_i_ = -1; // right + pdef_l_ = 0; style_str_ = "roman"; } bool @@ -17,9 +31,9 @@ Text_def::compare(Text_def const &def) } Atom -Text_def::create_atom(Paper_def*p) const +Text_def::create_atom() const { - return p->lookup_l()->text(style_str_, text_str_, -align_i_); + return pdef_l_->lookup_l()->text(style_str_, text_str_, -align_i_); } void diff --git a/lily/text-item.cc b/lily/text-item.cc index 9092be3259..9972a36dc1 100644 --- a/lily/text-item.cc +++ b/lily/text-item.cc @@ -1,5 +1,5 @@ /* - textitem.cc -- implement Text_item + text-item.cc -- implement Text_item source file of the LilyPond music typesetter @@ -14,11 +14,13 @@ #include "molecule.hh" #include "lookup.hh" -Text_item::Text_item(Text_def *tdef_l) +Text_item::Text_item(Text_def *tdef_l, int d) : Staff_side(this) { - dir_i_ =-1; - init(tdef_l); + dir_i_ = d; + fat_b_ = false; + tdef_p_ = new Text_def(*tdef_l); + pos_i_ =0; } Text_def* @@ -32,25 +34,10 @@ Text_item::~Text_item() delete tdef_p_; } -void -Text_item::init(Text_def *tdef_l) -{ - tdef_p_ = new Text_def (*tdef_l); -} - -Text_item::Text_item(Text_req* treq_l) - : Staff_side(this) -{ - init(treq_l->tdef_p_); - dir_i_ = treq_l->dir_i_; - if (!dir_i_) - dir_i_ = -1; -} - void Text_item::set_default_index() { - pos_i_ = get_position_i(tdef_p_->create_atom(paper()).extent().y ); + pos_i_ = get_position_i(tdef_p_->create_atom().extent().y ); } void @@ -58,6 +45,7 @@ Text_item::do_pre_processing() { if (!dir_i_) dir_i_ = -1; + tdef_p_->pdef_l_ = paper(); } void @@ -70,7 +58,12 @@ Text_item::do_post_processing() Molecule* Text_item::brew_molecule_p() const { - Molecule* mol_p = new Molecule(tdef_p_->create_atom(paper())); + Atom a(tdef_p_->create_atom()); + + if ( fat_b_) + a.sym.dim.x = tdef_p_->width(); + + Molecule* mol_p = new Molecule(a); if(dir_i_<0 ) // should do something better anyway. mol_p->translate(Offset(0, -mol_p->extent().y.left )); diff --git a/lily/text-reg.cc b/lily/text-reg.cc index b1d921c45d..82e12d6cd7 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_); // UGH + text_p_ = new Text_item(text_req_l_->tdef_p_, 0); // ugh announce_element(Staff_elem_info(text_p_, text_req_l_)); } } diff --git a/lily/text-spanner.cc b/lily/text-spanner.cc index fbc04ca4c6..2858a28641 100644 --- a/lily/text-spanner.cc +++ b/lily/text-spanner.cc @@ -44,7 +44,7 @@ Text_spanner::do_post_processing() Molecule* Text_spanner::brew_molecule_p() const { - Atom tsym (spec.create_atom(paper())); + Atom tsym (spec.create_atom()); tsym.translate(text_off_); Molecule*output = new Molecule; @@ -58,6 +58,7 @@ Text_spanner::do_pre_processing() right_col_l_ = support->right_col_l_; left_col_l_ = support->left_col_l_; assert(left_col_l_ && right_col_l_); + spec.pdef_l_ = paper(); } Interval diff --git a/lily/voice-element.cc b/lily/voice-element.cc index fd9a9b6daf..f4067bc44b 100644 --- a/lily/voice-element.cc +++ b/lily/voice-element.cc @@ -63,6 +63,7 @@ Voice_element::Voice_element() Voice_element::Voice_element(Voice_element const&src) : Input(src) { + principal_req_l_ = 0; voice_C_=0; for (iter_top(src.req_p_list_, i); i.ok(); i++) add(i->clone()); diff --git a/lily/voice-group-regs.cc b/lily/voice-group-regs.cc index 37328ae1ad..053e2dc74b 100644 --- a/lily/voice-group-regs.cc +++ b/lily/voice-group-regs.cc @@ -24,7 +24,7 @@ Voice_group_registers::Voice_group_registers(String id, { ireg_C_ =ireg_C; Register_group_register::add(ireg_C->get_nongroup_p_arr()); - if (id=="") // UGH + if (id=="") // ugh id = __FUNCTION__ + String(temp_id_count++); group_id_str_ = id; termination_mom_ = 0; @@ -33,8 +33,8 @@ Voice_group_registers::Voice_group_registers(String id, bool Voice_group_registers::try_request(Request*r_l) { - for (int i=0; i < voice_regs_l_.size(); i++) { - if (voice_regs_l_[i]->voice_l_ == r_l->voice_l()) + for (int i=0; i < voice_reg_l_arr_.size(); i++) { + if (voice_reg_l_arr_[i]->voice_l_ == r_l->voice_l()) goto gotcha; // yeah, yeah, I know } return false; @@ -68,12 +68,13 @@ Voice_group_registers::add(Request_register*r_l) Register_group_register::add(r_l); if (r_l->name() == Voice_registers::static_name()) { Voice_registers * vregs_l = (Voice_registers*)r_l; - voice_regs_l_.push( vregs_l ); + voice_reg_l_arr_.push( vregs_l ); Voice *v_l = vregs_l->voice_l_; termination_mom_ = termination_mom_ >? v_l -> last(); mtor << "adding Voice_registers, now terminating at " << termination_mom_<< "\n"; } + OK(); } void @@ -82,6 +83,7 @@ Voice_group_registers::post_move_processing() if ( get_staff_info().time_C_ ->when_ > termination_mom_ ){ mtor << "Terminating voice_group\n"; daddy_reg_l_->terminate_register(this); + return ; } Register_group_register::post_move_processing(); } @@ -90,10 +92,24 @@ Request_register * Voice_group_registers::get_register_p(Request_register *reg_l) { if (reg_l->name() == Voice_registers::static_name()) { - for (int i=0; i get_nongroup_p_arr()); @@ -39,7 +40,7 @@ Voice_registers::try_request(Request*r_l) Command_req *c=r_l->command(); if (c&&c->terminate()) { - daddy_reg_l_->terminate_register(this); + terminate_b_ = true; return true; // scary. We're deleted now.. } else if (c&&c->groupchange()) { /* this is scary as well. The groupchange has to be handled by @@ -49,7 +50,7 @@ Voice_registers::try_request(Request*r_l) assert(daddy_reg_l_->name() == Voice_group_registers::static_name()); ((Staff_registers*)daddy_reg_l_->daddy_reg_l_)-> // scary. change_group(c->groupchange(), this, - (Voice_group_registers*)daddy_reg_l_); // UGR! + (Voice_group_registers*)daddy_reg_l_); // ugh! return true; } @@ -73,3 +74,12 @@ Voice_registers::do_print() const Register_group_register::do_print(); #endif } + +void +Voice_registers::pre_move_processing() +{ + if (terminate_b_) + daddy_reg_l_->terminate_register(this); + else + Register_group_register::pre_move_processing(); +} diff --git a/make/Rules.make b/make/Rules.make index f9ba7640d7..2f6d769044 100644 --- a/make/Rules.make +++ b/make/Rules.make @@ -12,7 +12,7 @@ # so why does make still consider xx.y : RCS/xx.y,v ? # there is no suffix ,v anymore! -.SUFFIXES: .cc .o .hh .y .l .pod .txt .1 .dep .html +.SUFFIXES: .cc .o .hh .y .l .pod .text .1 .dep .html # compile rules: diff --git a/make/Toplevel.make.in b/make/Toplevel.make.in index b7ba88ce97..346b2898ce 100644 --- a/make/Toplevel.make.in +++ b/make/Toplevel.make.in @@ -59,7 +59,7 @@ localdist: configure INSTALL.text: check-doc-deps rm -f INSTALL.text - ln `find -name INSTALL.text|head -1` . + ln `$(FIND) ./ -name INSTALL.text|head -1` . localdistclean: rm -rf Makefile $(lily-version) $(flower-version) $(mi2mu-version) .b $(build) *~ $(allout) $(allgen) config.cache config.status diff --git a/make/lilypond.lsm b/make/lilypond.lsm index 2b234dba7c..efece7a91e 100644 --- a/make/lilypond.lsm +++ b/make/lilypond.lsm @@ -2,8 +2,8 @@ Begin3 Title: LilyPond -Version: 0.0.56 -Entered-date: 04/23/97 +Version: 0.0.57 +Entered-date: 04/28/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.56.tar.gz + 300k lilypond-0.0.57.tar.gz Alternate-site: Original-site: Platform: unix/win32, GNU C++ diff --git a/make/lilypond.spec b/make/lilypond.spec index 24760c7cb4..3acf802fbf 100644 --- a/make/lilypond.spec +++ b/make/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 0.0.56 +Version: 0.0.57 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.56.tar.gz +Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.57.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/mudela.text input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/error.ly input/fugue1.midi.ly input/kortjakje.ly input/maartje.ly input/martien.ly input/martien.tex input/mlalt.ly input/mlcello.ly input/mlvio1.ly input/mlvio2.ly input/plet.ly input/pre1.midi.ly input/rhythm.ly input/scales.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/standchen.ly input/standchen.tex 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/rhythm.ly input/scales.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/standchen.ly input/standchen.tex input/twinkle.ly input/wohltemperirt.ly Documentation/lelie_logo.gif /usr/bin/convert-mudela /usr/bin/lilypond /usr/lib/libflower.so diff --git a/tex/dimen.tex b/tex/dimen.tex index f4aa216f12..9d36059462 100644 --- a/tex/dimen.tex +++ b/tex/dimen.tex @@ -1,4 +1,4 @@ -\font\musicfont=musix20 +\font\musicfont=cmsy10 \font\slurfont=xslu16 \def\thefont{\musicfont} diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 3325743dbe..19a0a48471 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -1,5 +1,7 @@ %% %% include file for LilyPond +%% +%% this file defines various macros to accomodate lilypond output \def\mdef#1#2{\def#1{\mchar{#2}}} \def\mchar#1{\musicfnt\char#1} @@ -10,6 +12,14 @@ \def\maccentdef#1#2#3{\def#1{\maccentraise{\mchar{#2}}{#3}}} \def\vcenter#1{\vbox to 0pt{\vss #1\vss}} +\def\mathdef#1#2{\def#1{\mathchar{#2}}} +% \def\mathchar#1{\mathfnt\char#1} +\def\mathchar#1{$#1$} +\def\mathaccentraise#1#2{\dimen0=\noteheight + \rationalmultiply\dimen0*#2% + \raise\dimen0\hbox{#1}} +\def\mathaccentdef#1#2#3{\def#1{\mathaccentraise{\mathchar{#2}}{#3}}} + \def\topalign#1{\vbox to 0pt{#1\vss}} \def\botalign#1{\vbox to 0pt{\vss #1}} @@ -63,7 +73,7 @@ \font\hslurdfont=xslhd16 \font\hslurhfont=xslhz20 \font\musicfnt=musix16 - \font\dynfont=cmbxti10 + \font\dynfont=cmbxti12 \font\musicdraw=musixsps \balkhoog=16pt \staffrulethickness=0.4pt @@ -88,18 +98,19 @@ } % \def\dyn{\italicfont} \def\dyn{\dynfont} -\def\dynf{f\kern-.1ex} -\def\dynm{f\kern-.15ex} -\def\dynp{p\kern-.15ex} +\def\kdynf{\dynfont f\kern-.1ex} +\def\kdynm{\dynfont f\kern-.15ex} +\def\kdynp{\dynfont p\kern-.15ex} -\def\dynppp{\dynfont\dynp\dynp p} -\def\dynpp{\dynfont\dynp p} +\def\dynppp{\dynfont\dynp\kdynp p} + +\def\dynpp{\dynfont p\kdynp} \def\dynp{\dynfont p} -\def\dynmp{\dynfont\dynm p} -\def\dynmf{\dynfont\dynm f} +\def\dynmp{\dynfont m\kdynp} +\def\dynmf{\dynfont m\kdynf} \def\dynf{\dynfont f} -\def\dynff{\dynfont\dynf f} -\def\dynfff{\dynfont\dynf\dynf f} +\def\dynff{\dynfont f\kdynf} +\def\dynfff{\dynfont f\kdynf \kdynf} \def\slurcharh#1{{\slurhfont\char#1}} \def\slurcharu#1{{\slurufont\char#1}} @@ -231,14 +242,17 @@ \maccentdef\fermata{80}{-1/1} \maccentdef\ifermata{81}{1/1} - - \mdef\spicato{28} \mdef\ispicato{29} \mdef\upbow{23} \mdef\downbow{22} \mdef\portato{26} +% \mathdef\heel\cup % "225B +% \mathdef\toe\wedge % "225E +\mathaccentdef\heel\cup{-1/1} +\mathaccentdef\toe\wedge{-1/1} + \def\stem#1#2{\vrule height#2 depth-#1} \def\placebox#1#2#3{% -- 2.39.2