From 43c708d5857fd1a15f0ebcf41d04f5a24441dc9a Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Mon, 1 Nov 1999 13:41:11 +0100 Subject: [PATCH] release: 1.3.2 --- CHANGES | 17 ++++ Documentation/programmer/regression-test.tely | 11 ++- TODO | 10 +- VERSION | 4 +- aclocal.m4 | 2 +- buildscripts/set-lily.sh | 7 +- configure | 2 +- input/test/key-clefs.ly | 25 +++++ input/test/script-horizontal.ly | 39 +++++++- input/test/tie-accidental.ly | 12 +++ lily/auto-beam-engraver.cc | 5 - lily/bar-req-collect-engraver.cc | 0 lily/beam.cc | 6 +- lily/break-align-item.cc | 8 +- lily/chord-name-engraver.cc | 9 ++ lily/chord-tremolo-engraver.cc | 8 +- lily/chord-tremolo.cc | 60 ------------ lily/extender-spanner.cc | 2 +- lily/font-size-engraver.cc | 0 lily/graphical-element.cc | 5 +- lily/hyphen-spanner.cc | 6 +- lily/include/chord-tremolo-engraver.hh | 7 +- lily/include/chord-tremolo.hh | 7 +- lily/include/lily-guile.hh | 2 +- lily/include/lookup.hh | 4 +- lily/include/ly-symbols.hh | 0 lily/key-item.cc | 11 +++ lily/lexer.ll | 10 +- lily/lily-guile.cc | 4 +- lily/local-key-engraver.cc | 14 +-- lily/lookup.cc | 56 ++++++----- lily/ly-symbols.cc | 0 lily/mark-engraver.cc | 2 +- lily/multi-measure-rest-engraver.cc | 2 +- lily/paper-outputter.cc | 22 ++--- lily/parser.yy | 4 +- lily/score-element.cc | 8 ++ lily/text-engraver.cc | 2 +- lily/tuplet-spanner.cc | 2 +- lily/volta-spanner.cc | 2 +- ly/params.ly | 19 ++-- make/lilypond.spec.in | 9 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 9 +- mudela-mode.el | 95 ++++++++----------- mutopia/D.Scarlatti/GNUmakefile | 0 mutopia/D.Scarlatti/progress.ly | 0 mutopia/D.Scarlatti/sonata-k1-l366.ly | 0 mutopia/D.Scarlatti/sonata-k2-l388.ly | 0 mutopia/D.Scarlatti/sonata-k3-l378.ly | 0 mutopia/D.Scarlatti/sonata-k4-l390.ly | 0 mutopia/F.Schubert/AnSylvia.ly | 0 .../Solo-Cello-Suites/allemande-urtext.ly | 4 +- .../Solo-Cello-Suites/courante-urtext.ly | 4 +- .../Solo-Cello-Suites/menuetto-cello.ly | 4 +- .../Solo-Cello-Suites/menuetto-viola.ly | 4 +- mutopia/J.S.Bach/wtk1-fugue2.ly | 13 +-- ps/lily.ps | 40 ++++---- scm/lily.scm | 68 ++++++------- stepmake/aclocal.m4 | 2 +- stepmake/bin/package-zet.sh | 6 +- tex/lily-ps-defs.tex | 12 --- 62 files changed, 368 insertions(+), 326 deletions(-) create mode 100644 input/test/key-clefs.ly create mode 100644 input/test/tie-accidental.ly delete mode 100644 lily/bar-req-collect-engraver.cc delete mode 100644 lily/chord-tremolo.cc delete mode 100644 lily/font-size-engraver.cc delete mode 100644 lily/include/ly-symbols.hh delete mode 100644 lily/ly-symbols.cc delete mode 100644 mutopia/D.Scarlatti/GNUmakefile delete mode 100644 mutopia/D.Scarlatti/progress.ly delete mode 100644 mutopia/D.Scarlatti/sonata-k1-l366.ly delete mode 100644 mutopia/D.Scarlatti/sonata-k2-l388.ly delete mode 100644 mutopia/D.Scarlatti/sonata-k3-l378.ly delete mode 100644 mutopia/D.Scarlatti/sonata-k4-l390.ly delete mode 100644 mutopia/F.Schubert/AnSylvia.ly diff --git a/CHANGES b/CHANGES index 00ce1a669e..8cae195f22 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,20 @@ +pl 3.jcn1 + - moved bracket vars to params + - reverted broken lilypond-devel + +pl 1.uu1 + - David's patches: + * mfplain.mp detection + * Graphical_element::common_refpoint() robuster. + * fixes for mudela-mode.el + - Dirk's patches: + * key signature placement, + * tied accidentals. + +pl 1.hwn2 + - extra-offset elt property. + - junked Chord_tremolo + pl 1.hwn1 - changed calling convention for {get,set,remove}_elt_property() - rm'd some mutopia examples. diff --git a/Documentation/programmer/regression-test.tely b/Documentation/programmer/regression-test.tely index fe5ee1dbfd..f878b78586 100644 --- a/Documentation/programmer/regression-test.tely +++ b/Documentation/programmer/regression-test.tely @@ -41,7 +41,7 @@ The dots go along as rests are shifted to avoid collisions. @mudelafile{dots.fly} Multiple measure rests do not collide with barlines and clefs. They -are not expanded when you set @code{Score.SkipBars}. Although the +are not expanded when you set @code{Score.skipBars}. Although the multi-measure-rest is a Spanner, minimum distances are set to keep it colliding from barlines. @@ -129,6 +129,15 @@ The horizontal middle should not overlap with a staffline. @mudelafile{tie.ly} +When tieing notes with accidentals across a bar boundary, the +accidental must not be drawn on the note in the new bar. +Instead, the next note of the same pitch in this bar should always show the +accidental (even if it's natural). +Well, and slurring a accidentaled note to a natural one across bar +boundaries should be explicit... + +@mudelafile{tie-accidental.ly} + Beams can be typeset over fixed distance aligned staffs, beam beautification doesn't really work, but knees do. Beams should be behave well, wherever the switching point is. diff --git a/TODO b/TODO index 771ea60f80..813dcad6e0 100644 --- a/TODO +++ b/TODO @@ -17,11 +17,9 @@ Grep -i for TODO, FIXME and ugh/ugr/urg. ctor_dict["Score_element"]->clone_func (orig); ctor_dict["Score_element"]->create_func (); - +. * acc at tied note after linebreak. . * note head on stem err msg in dutch. . * why need to run -C mf twice? -. * fix interstaff stuff -. * junk BLURB files. . * setting indent to 0 with \shape fails . * here's no difference at all in output. When either is jacked up to 7.0, everything works and matches up; when either is set just a bit above the @@ -37,6 +35,7 @@ John . * rerun profile . * fix or replace feta-accordion.mf . * script engraver +. * bracket pdf hack . * Chords: . * Bass/inversion pitch when not part of Chord Sometimes a series of changing chords will be blocked out over a static tone @@ -92,10 +91,7 @@ melismatic. . * make all Feta (including dynamics) available to the user in textual scripts. Examples: "D.S. al \coda", "\mf espress.". -. * ? -Q, --find-old-relative show all changes in relative syntax -What's old about absolute to relative conversion? Could maybe use for -abc2ly, midi2ly? - +. * Write scritp that uses --find-old-relative to do auto relativization. . * Junk shared cruft (duration, moment) in lib/ diff --git a/VERSION b/VERSION index f9af623955..af709f6918 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 -PATCH_LEVEL=1 -MY_PATCH_LEVEL=hwn1 +PATCH_LEVEL=2 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/aclocal.m4 b/aclocal.m4 index f9c5a64a78..3bd68ad62f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -565,7 +565,7 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [ # # For now let people define these in their environments # - : ${MFPLAIN_MP='/usr/share/texmf/metapost/base/mfplain.mp'} + : ${MFPLAIN_MP=`kpsewhich mfplain.mp`} : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'} rm -f mfput.* diff --git a/buildscripts/set-lily.sh b/buildscripts/set-lily.sh index a4c77ff0cd..15e4633b78 100755 --- a/buildscripts/set-lily.sh +++ b/buildscripts/set-lily.sh @@ -35,9 +35,10 @@ testvar () } -# . ./stepmake/bin/package-zet.sh -sourcetree=`basename \`pwd\`` -(cd .. ; rm lilypond-devel ; showln -s $sourcetree lilypond-devel) +. ./stepmake/bin/package-zet.sh +#urg. LILYPOND_PREFIX, _SOURCEDIR, PATH, *INPUTS all broken +#sourcetree=`basename \`pwd\`` +#(cd .. ; rm lilypond-devel ; showln -s $sourcetree lilypond-devel) echo You should add the following to your profile script diff --git a/configure b/configure index b8a7493c26..c59995198b 100755 --- a/configure +++ b/configure @@ -2553,7 +2553,7 @@ echo "configure:2545: checking for working metafont mode" >&5 # # For now let people define these in their environments # - : ${MFPLAIN_MP='/usr/share/texmf/metapost/base/mfplain.mp'} + : ${MFPLAIN_MP=`kpsewhich mfplain.mp`} : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'} rm -f mfput.* diff --git a/input/test/key-clefs.ly b/input/test/key-clefs.ly new file mode 100644 index 0000000000..4eb5b6725a --- /dev/null +++ b/input/test/key-clefs.ly @@ -0,0 +1,25 @@ +\include "paper16.ly" + +\score { \notes + \relative cis' { + +% \clef french; % same as octaviated bass +\clef violin; +\key cis \major; cis1 \key ces \major; ces +\clef soprano; +\key cis \major; cis \key ces \major; ces +\clef mezzosoprano; +\key cis \major; cis \key ces \major; ces +\clef alto; +\key cis \major; cis \key ces \major; ces +\clef tenor; +\key cis \major; cis \key ces \major; ces +\clef baritone; +\key cis \major; cis \key ces \major; ces +\clef bass; +\key cis \major; cis \key ces \major; ces +} + + \paper{\paper_sixteen} + +} diff --git a/input/test/script-horizontal.ly b/input/test/script-horizontal.ly index d541d25640..a0090ba8e8 100644 --- a/input/test/script-horizontal.ly +++ b/input/test/script-horizontal.ly @@ -1,10 +1,44 @@ + +%{ + +Please don't use this Scheme hacking unless you have a good reason. +Support for the \property textExtraOffset will not go into LilyPond in +this form. + +I think extra-offset will stay - but perhaps I'll change the name + +%} + + +#(set! generic-thread-properties + (append! + generic-thread-properties + (list + (cons "Text_item" + (list + (list 'textExtraOffset pair? 'extra-offset) + ) + ) + (cons "Script" + (list + (list 'scriptExtraOffset pair? 'extra-offset) + ) + ) + ) +)) + + + \score { \notes \context Voice < \context Thread = TA { c'4_1 } - \context Thread = TB { \property Thread.scriptHorizontal = "1" - e'4-2-\trill } + \context Thread = TB { + \property Thread.scriptHorizontal = ##t + \property Thread.textExtraOffset = #'(-0.5 . -0.5) + \property Thread.scriptExtraOffset = #'(2.25 . -0.5) + e'4-2^\prall } \context Thread = TC { g'4^4 } > @@ -16,6 +50,7 @@ } \translator { \ThreadContext + Generic_property_list = #generic-thread-properties \consists Script_engraver; \consists Text_engraver; } diff --git a/input/test/tie-accidental.ly b/input/test/tie-accidental.ly new file mode 100644 index 0000000000..572fb97d7e --- /dev/null +++ b/input/test/tie-accidental.ly @@ -0,0 +1,12 @@ + +\score { \notes + \relative cis' { + +\time 4/4; +gis'2 gis ~ | +gis gis4 gis | +g2 gis ~ | +gis g4 gis | +g2 gis( | +)g gis4 gis | +} diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc index 8a22a61997..fd519c340c 100644 --- a/lily/auto-beam-engraver.cc +++ b/lily/auto-beam-engraver.cc @@ -11,7 +11,6 @@ #include "musical-request.hh" #include "bar.hh" #include "beam.hh" -#include "chord-tremolo.hh" #include "rest.hh" #include "stem.hh" #include "debug.hh" @@ -301,10 +300,6 @@ Auto_beam_engraver::acknowledge_element (Score_element_info info) { end_beam (); } - else if (Chord_tremolo *b = dynamic_cast (info.elem_l_)) - { - end_beam (); - } else if (Bar *b = dynamic_cast (info.elem_l_)) { end_beam (); diff --git a/lily/bar-req-collect-engraver.cc b/lily/bar-req-collect-engraver.cc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/beam.cc b/lily/beam.cc index 7b997ff5e2..d75f7906f2 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -24,7 +24,6 @@ needs what, and what information should be available when. #include -#include "chord-tremolo.hh" #include "beaming.hh" #include "proto.hh" #include "dimensions.hh" @@ -279,7 +278,7 @@ Beam::get_default_dir () const If dir is not determined: up (see stem::get_default_dir ()) */ - Direction beam_dir; + Direction beam_dir = CENTER; Direction neutral_dir = (Direction)(int)paper_l ()->get_var ("stem_default_neutral_direction"); SCM a = get_elt_property ("beam-dir-algorithm"); @@ -423,7 +422,8 @@ Beam::set_steminfo () /* Chord tremolo needs to beam over invisible stems of wholes */ - if (!dynamic_cast (this)) + SCM trem = get_elt_property ("chord-tremolo"); + if (gh_boolean_p (trem) && gh_scm2bool (trem)) { if (s->invisible_b ()) continue; diff --git a/lily/break-align-item.cc b/lily/break-align-item.cc index 172eb85253..2718fdcd94 100644 --- a/lily/break-align-item.cc +++ b/lily/break-align-item.cc @@ -47,7 +47,7 @@ Break_align_item::do_pre_processing() SCM symbol_list = SCM_EOL; Array dists; - SCM current_origin = ly_ch_C_to_scm (""); + SCM current_origin = ly_str02scm (""); for (int i=0; i <= elems.size (); i++) { Score_element *next_elt = i < elems.size () @@ -61,11 +61,11 @@ Break_align_item::do_pre_processing() next_origin = next_elt->get_elt_property ("origin"); next_origin = (next_origin == SCM_UNDEFINED) - ? ly_ch_C_to_scm ("") + ? ly_str02scm ("") : next_origin; } else - next_origin = ly_ch_C_to_scm ("begin-of-note"); + next_origin = ly_str02scm ("begin-of-note"); SCM extra_space = scm_eval (scm_listify (ly_symbol ("break-align-spacer"), @@ -172,7 +172,7 @@ Break_align_item::add_breakable_item (Item *it) warning bells about missing Y refpoints go off later on. */ hg->set_parent (this, Y_AXIS); - hg->set_elt_property ("origin", ly_ch_C_to_scm (it->name ())); + hg->set_elt_property ("origin", ly_str02scm (it->name ())); pscore_l_->typeset_element (hg); add_element_priority (hg, priority); diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index 08d397b6f3..4c57efac7e 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -21,6 +21,7 @@ ADD_THIS_TRANSLATOR (Chord_name_engraver); Chord_name_engraver::Chord_name_engraver () { tonic_req_ = 0; + // bass_req_ = 0; } void @@ -43,6 +44,14 @@ Chord_name_engraver::do_try_music (Music* m) tonic_req_ = t; return true; } +#if 0 + if (Bass_req* b = dynamic_cast (m)) + { + bass_req_ = b; + return true; + } +#endif + return false; } diff --git a/lily/chord-tremolo-engraver.cc b/lily/chord-tremolo-engraver.cc index df8573434b..8888625421 100644 --- a/lily/chord-tremolo-engraver.cc +++ b/lily/chord-tremolo-engraver.cc @@ -1,5 +1,5 @@ /* - abbreviation-beam-engraver.cc -- implement Chord_tremolo_engraver + chord-tremolo-engraver.cc -- implement Chord_tremolo_engraver source file of the GNU LilyPond music typesetter @@ -11,7 +11,7 @@ #include "time-description.hh" #include "chord-tremolo-engraver.hh" #include "stem.hh" -#include "chord-tremolo.hh" +#include "beam.hh" #include "musical-request.hh" #include "misc.hh" #include "warn.hh" @@ -86,7 +86,9 @@ Chord_tremolo_engraver::do_process_requests () prev_start_req_ = reqs_drul_[START]; - abeam_p_ = new Chord_tremolo; + abeam_p_ = new Beam; + abeam_p_->set_elt_property ("chord-tremolo", SCM_BOOL_T); + announce_element (Score_element_info (abeam_p_, reqs_drul_[LEFT])); } } diff --git a/lily/chord-tremolo.cc b/lily/chord-tremolo.cc deleted file mode 100644 index fe743fad40..0000000000 --- a/lily/chord-tremolo.cc +++ /dev/null @@ -1,60 +0,0 @@ -/* - abbreviation-beam.cc -- implement Chord_tremolo - - source file of the GNU LilyPond music typesetter - - (c) 1997--1999 Han-Wen Nienhuys - Jan Nieuwenhuizen -*/ - -#include "paper-column.hh" -#include "array.hh" -#include "proto.hh" -#include "chord-tremolo.hh" -#include "misc.hh" -#include "debug.hh" - -#include "molecule.hh" -#include "leastsquares.hh" -#include "stem.hh" -#include "paper-def.hh" -#include "lookup.hh" -#include "stem-info.hh" - - - - -Chord_tremolo::Chord_tremolo () - : Beam () -{ -} - -Molecule* -Chord_tremolo::do_brew_molecule_p () const -{ - return Beam::do_brew_molecule_p (); -} - -void -Chord_tremolo::do_print () const -{ -#ifndef NPRINT - Beam::do_print (); - Spanner::do_print (); -#endif -} - -/* - beams to go with one stem. - */ -Molecule -Chord_tremolo::stem_beams (Stem *here, Stem *next, Stem *prev) const -{ - /* - todo - - shorter beams (not reaching outer "stems") - for [:16 c4 c4] and [:16 c1 c1] - - centered beam on [:16 c1 c1] heads, rather than "stems" - */ - return Beam::stem_beams (here, next, prev); -} diff --git a/lily/extender-spanner.cc b/lily/extender-spanner.cc index 549888576a..513011d5c0 100644 --- a/lily/extender-spanner.cc +++ b/lily/extender-spanner.cc @@ -42,7 +42,7 @@ Extender_spanner::do_brew_molecule_p () const Real w = extent (X_AXIS).length (); w += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]); - Real h = paper_l ()->get_var ("extender-height"); + Real h = paper_l ()->get_var ("extender_height"); Molecule a = lookup_l ()->filledbox ( Box (Interval (0,w), Interval (0,h))); a.translate (Offset (dx_f_drul_[LEFT], 0)); diff --git a/lily/font-size-engraver.cc b/lily/font-size-engraver.cc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/graphical-element.cc b/lily/graphical-element.cc index f71225beac..21a256bc3f 100644 --- a/lily/graphical-element.cc +++ b/lily/graphical-element.cc @@ -50,7 +50,10 @@ Graphical_element::relative_coordinate (Graphical_element const*e, Axis a) const Graphical_element * Graphical_element::common_refpoint (Graphical_element const* s, Axis a) const { - return (dim_cache_[a]->common_refpoint (s->dim_cache_[a])) ->element_l (); + Dimension_cache *dim = dim_cache_[a]->common_refpoint (s->dim_cache_[a]); + if (!dim) + programming_error ("No common reference point"); + return dim ? dim->element_l () : 0; } void diff --git a/lily/hyphen-spanner.cc b/lily/hyphen-spanner.cc index 8efba072e1..5d2fa9598e 100644 --- a/lily/hyphen-spanner.cc +++ b/lily/hyphen-spanner.cc @@ -45,12 +45,12 @@ Hyphen_spanner::do_brew_molecule_p () const w += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]); - Real th = paper_l ()->get_var ("hyphen-thickness"); - Real h = paper_l ()->get_var ("hyphen-height"); + Real th = paper_l ()->get_var ("hyphen_thickness"); + Real h = paper_l ()->get_var ("hyphen_height"); // UGH. First try: just make the hyphen take 1/3 of the available space // for length, use a geometric mean of the available space and some minimum - Real l = paper_l ()->get_var ("hyphen-minimum-length"); + Real l = paper_l ()->get_var ("hyphen_minimum_length"); if(l < w) l = sqrt(l*w); Molecule a = lookup_l ()->filledbox ( Box (Interval ((w-l)/2,(w+l)/2), Interval (h,h+th))); diff --git a/lily/include/chord-tremolo-engraver.hh b/lily/include/chord-tremolo-engraver.hh index 3616779e21..51b5e2a720 100644 --- a/lily/include/chord-tremolo-engraver.hh +++ b/lily/include/chord-tremolo-engraver.hh @@ -16,6 +16,9 @@ /** Generate an abbreviation beam. Eat stems. + + UGH. Derive me from Beam_engraver. + */ class Chord_tremolo_engraver : public Engraver { @@ -37,8 +40,8 @@ private: void typeset_beam (); Drul_array reqs_drul_; Chord_tremolo_req* prev_start_req_; - Chord_tremolo* abeam_p_; - Chord_tremolo* finished_abeam_p_; + Beam* abeam_p_; + Beam* finished_abeam_p_; }; #endif // Chord_tremolo_ENGRAVER_HH diff --git a/lily/include/chord-tremolo.hh b/lily/include/chord-tremolo.hh index eb2d133f28..67c67c76fe 100644 --- a/lily/include/chord-tremolo.hh +++ b/lily/include/chord-tremolo.hh @@ -17,17 +17,12 @@ direction */ class Chord_tremolo : public Beam { public: - - - Chord_tremolo(); - VIRTUAL_COPY_CONS(Score_element); protected: - virtual void do_print() const; virtual Molecule stem_beams (Stem *here, Stem *next, Stem *prev) const; - virtual Molecule* do_brew_molecule_p() const; }; +#error #endif // Chord_tremolo_HH diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index 7df2291b0b..dfdf39ffbf 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -15,7 +15,7 @@ #include #include "direction.hh" -SCM ly_ch_C_to_scm (char const*c); +SCM ly_str02scm (char const*c); SCM ly_ch_C_eval_scm (char const*c); SCM ly_symbol (String name); String symbol_to_string (SCM); diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index 27ac98459a..7d2f0b5cb1 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -39,13 +39,13 @@ public: Molecule fill (Box b) const; Molecule filledbox (Box b) const; Molecule hairpin (Real width, Real height, Real thick, bool decresc, bool continued) const; - Molecule tuplet_bracket (Real dy, Real dx, Real gap, Real thick,Real interline, Direction dir) const; + Molecule tuplet_bracket (Real dy, Real dx, Real gap, Real thick,Real height, Direction dir) const; Molecule rest (int, bool outside, String) const; Molecule accordion (SCM arg, Real interline_f) const; Molecule slur (Array controls, Real thick) const; Molecule text (String style, String text, Paper_def*) const; Molecule staff_brace (Real dy, int) const; - Molecule staff_bracket (Real dy) const; + Molecule staff_bracket (Real height, Paper_def* paper_l) const; Molecule volta (Real h, Real w, Real thick, bool vert_start, bool vert_end) const; Molecule special_time_signature (String, int,int, Paper_def*) const; Molecule time_signature (int n,int d, Paper_def*) const; diff --git a/lily/include/ly-symbols.hh b/lily/include/ly-symbols.hh deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/key-item.cc b/lily/key-item.cc index 25c068776c..f85303ff71 100644 --- a/lily/key-item.cc +++ b/lily/key-item.cc @@ -73,6 +73,17 @@ Key_item::calculate_position(int p, int a) const { p -= 7; /* Typeset below c_position */ } + /* Provide for the four cases in which there's a glitch */ + /* it's a hack, but probably not worth */ + /* the effort of finding a nicer solution. dl. */ + if (get_c_position ()==2 && a>0 && p==3) + p -= 7; + if (get_c_position ()==-3 && a>0 && p==-1) + p += 7; + if (get_c_position ()==-4 && a<0 && p==-1) + p += 7; + if (get_c_position ()==-2 && a<0 && p==-3) + p += 7; return p + get_c_position (); } } diff --git a/lily/lexer.ll b/lily/lexer.ll index 8d95d0e42e..7c09d492e9 100644 --- a/lily/lexer.ll +++ b/lily/lexer.ll @@ -209,7 +209,7 @@ HYPHEN -- } {RESTNAME} { const char *s = YYText (); - yylval.scm = ly_ch_C_to_scm (s); + yylval.scm = ly_str02scm (s); return RESTNAME; } R { @@ -293,7 +293,7 @@ HYPHEN -- /* yylval is union. Must remember STRING before setting SCM*/ String *sp = yylval.string; - yylval.scm = ly_ch_C_to_scm (sp->ch_C ()); + yylval.scm = ly_str02scm (sp->ch_C ()); delete sp; return STRING; } @@ -333,7 +333,7 @@ HYPHEN -- if (c == '{' && c == '}') // brace open is for not confusing dumb tools. here_input ().warning ( "Brace found at end of lyric. Did you forget a space?"); - yylval.scm = ly_ch_C_to_scm (s.ch_C ()); + yylval.scm = ly_str02scm (s.ch_C ()); DEBUG_OUT << "lyric : `" << s << "'\n"; return STRING; @@ -486,7 +486,7 @@ My_lily_lexer::scan_escaped_word (String str) String msg (_f ("unknown escaped string: `\\%s'", str)); LexerError (msg.ch_C ()); DEBUG_OUT << "(string)"; - yylval.scm = ly_ch_C_to_scm(str.ch_C()); + yylval.scm = ly_str02scm(str.ch_C()); return STRING; } @@ -511,7 +511,7 @@ My_lily_lexer::scan_bare_word (String str) } } - yylval.scm = ly_ch_C_to_scm (str.ch_C()); + yylval.scm = ly_str02scm (str.ch_C()); return STRING; } diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index b42b34592e..7fd60380af 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -20,7 +20,7 @@ #include "debug.hh" SCM -ly_ch_C_to_scm (char const*c) +ly_str02scm (char const*c) { // this all really sucks, guile should take char const* arguments! return gh_str02scm ((char*)c); @@ -168,7 +168,7 @@ ly_gulp_file (SCM name) Simple_file_storage f(s); - return ly_ch_C_to_scm (f.ch_C()); + return ly_str02scm (f.ch_C()); } void diff --git a/lily/local-key-engraver.cc b/lily/local-key-engraver.cc index e0270ef96e..85c857f369 100644 --- a/lily/local-key-engraver.cc +++ b/lily/local-key-engraver.cc @@ -65,14 +65,9 @@ Local_key_engraver::process_acknowledged () Item * support_l = support_l_arr_[i]; Note_req * note_l = mel_l_arr_[i]; - if (tied_l_arr_.find_l (support_l) && - !note_l->forceacc_b_) - { - if (!forget) - local_key_.set (note_l->pitch_); - continue; - } - + if (tied_l_arr_.find_l (support_l) && !forget) + local_key_.set (note_l->pitch_); + if (!note_l->forceacc_b_ && local_key_.different_acc (note_l->pitch_)) continue; @@ -82,9 +77,8 @@ Local_key_engraver::process_acknowledged () announce_element (Score_element_info (key_item_p_, 0)); } - key_item_p_->add_pitch (note_l->pitch_, - note_l->cautionary_b_); + note_l->cautionary_b_); key_item_p_->add_support (support_l); if (!forget) diff --git a/lily/lookup.cc b/lily/lookup.cc index 880dca8825..1b7c19e116 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -111,7 +111,7 @@ Lookup::afm_find (String s, bool warn) const { /* don't want people relying on this kind of dimension. - */ + */ m.set_empty (false); return m; } @@ -161,7 +161,7 @@ Molecule Lookup::bar (String str, Real h, Paper_def *paper_l) const { if (str == "bracket") - return staff_bracket (h); + return staff_bracket (h, paper_l); else if (str == "brace") { Real staffht = paper_l->get_var ("staffheight"); @@ -241,11 +241,11 @@ Lookup::beam (Real slope, Real width, Real thick) const Molecule m; Atom at - (gh_list (gh_symbol2scm ("beam"), - gh_double2scm (width), - gh_double2scm (slope), - gh_double2scm (thick), - SCM_UNDEFINED)); + (gh_list (gh_symbol2scm ("beam"), + gh_double2scm (width), + gh_double2scm (slope), + gh_double2scm (thick), + SCM_UNDEFINED)); m.dim_[X_AXIS] = Interval (0, width); m.dim_[Y_AXIS] = Interval (min_y, max_y); @@ -455,7 +455,7 @@ Lookup::text (String style, String text, Paper_def *paper_l) const Atom at (gh_list (gh_symbol2scm ("text"), - ly_ch_C_to_scm (text.ch_C()), + ly_str02scm (text.ch_C()), SCM_UNDEFINED)); at.font_ = ly_symbol (style); at.magn_ = gh_int2scm (font_mag); @@ -492,15 +492,15 @@ Lookup::staff_brace (Real y, int staff_size) const { Molecule m; /* - (define (pianobrace y staffht) + (define (pianobrace y staffht) (let* ((step 1.0) - (minht (* 2 staffht)) - (maxht (* 7 minht)) - ) - (string-append - (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))) 0) - (char (max 0 (/ (- (min y (- maxht step)) minht) step)))) - ) + (minht (* 2 staffht)) + (maxht (* 7 minht)) + ) + (string-append + (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))) 0) + (char (max 0 (/ (- (min y (- maxht step)) minht) step)))) + ) ) */ @@ -527,7 +527,7 @@ Lookup::hairpin (Real width, Real height, Real thick, bool decresc, bool continu Molecule m; String hairpin = String (decresc ? "de" : "") + "crescendo"; - Atom at (gh_list (ly_symbol ("hairpin"), + Atom at (gh_list (ly_symbol (hairpin), gh_double2scm (thick), gh_double2scm (width), gh_double2scm (height), @@ -541,12 +541,13 @@ Lookup::hairpin (Real width, Real height, Real thick, bool decresc, bool continu } Molecule -Lookup::tuplet_bracket (Real dy , Real dx, Real thick, Real gap, Real interline_f, Direction dir) const +Lookup::tuplet_bracket (Real dy , Real dx, Real thick, Real gap, + Real height, Direction dir) const { Molecule m; Atom at (gh_list(gh_symbol2scm ("tuplet"), - gh_double2scm (interline_f), + gh_double2scm (height), gh_double2scm (gap), gh_double2scm (dx), gh_double2scm (dy), @@ -586,14 +587,21 @@ Lookup::slur (Array controls, Real linethick) const } Molecule -Lookup::staff_bracket (Real y) const +Lookup::staff_bracket (Real height, Paper_def* paper_l) const { - Molecule m; + Molecule m; Atom at ( gh_list (gh_symbol2scm ("bracket"), - gh_double2scm (y), - SCM_UNDEFINED)); + gh_double2scm (paper_l->get_var("bracket_arch_angle")), + gh_double2scm (paper_l->get_var("bracket_arch_width")), + gh_double2scm (paper_l->get_var("bracket_arch_height")), + gh_double2scm (paper_l->get_var("bracket_width")), + gh_double2scm (height), + gh_double2scm (paper_l->get_var("bracket_arch_thick")), + gh_double2scm (paper_l->get_var("bracket_thick")), + SCM_UNDEFINED)); + m.add_atom (&at); - m.dim_[Y_AXIS] = Interval (-y/2,y/2); + m.dim_[Y_AXIS] = Interval (-height/2,height/2); m.dim_[X_AXIS] = Interval (0,4 PT); m.translate_axis (- 4. / 3. * m.dim_[X_AXIS].length (), X_AXIS); diff --git a/lily/ly-symbols.cc b/lily/ly-symbols.cc deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc index 98fed7723c..17da3985e1 100644 --- a/lily/mark-engraver.cc +++ b/lily/mark-engraver.cc @@ -46,7 +46,7 @@ Mark_engraver::do_process_requests () { create_items (mark_req_l_); text_p_->text_str_ = mark_req_l_->str_; - SCM st = gh_str02scm ((text_p_->text_str_.index_any_i ("0123456789") >= 0 ) + SCM st = ly_str02scm ((text_p_->text_str_.index_any_i ("0123456789") >= 0 ) ? "mark" : "large"); text_p_->set_elt_property ("style", st); } diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index 57283a0a9b..e4e115b4dc 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -75,7 +75,7 @@ Multi_measure_rest_engraver::do_process_requests () mmrest_p_ = new Multi_measure_rest; if(dynamic_cast (multi_measure_req_l_)) mmrest_p_->set_elt_property ("alt-symbol", - ly_ch_C_to_scm ("scripts-repeatsign")); + ly_str02scm ("scripts-repeatsign")); announce_element (Score_element_info (mmrest_p_, multi_measure_req_l_)); start_measure_i_ = time->bars_i_; } diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index 97586318b4..9dd7d28729 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -80,8 +80,8 @@ Paper_outputter::output_header () } SCM args_scm = - gh_list (ly_ch_C_to_scm (creator.ch_l ()), - ly_ch_C_to_scm (generate.ch_l ()), SCM_UNDEFINED); + gh_list (ly_str02scm (creator.ch_l ()), + ly_str02scm (generate.ch_l ()), SCM_UNDEFINED); #ifndef NPRINT DEBUG_OUT << "output_header\n"; @@ -140,7 +140,7 @@ Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm) if (i->font_) { output_scheme (gh_list (ly_symbol ("select-font"), - ly_ch_C_to_scm (symbol_to_string (i->font_).ch_C()), + ly_str02scm (symbol_to_string (i->font_).ch_C()), SCM (i->magn_), SCM_UNDEFINED)); } @@ -241,7 +241,7 @@ Paper_outputter::output_font_def (int i, String str) { SCM scm = gh_list (ly_symbol ("font-def"), gh_int2scm (i), - ly_ch_C_to_scm (str.ch_l ()), + ly_str02scm (str.ch_l ()), SCM_UNDEFINED); output_scheme (scm); @@ -252,8 +252,8 @@ Paper_outputter::output_Real_def (String k, Real v) { SCM scm = gh_list (ly_symbol ("lily-def"), - ly_ch_C_to_scm (k.ch_l ()), - ly_ch_C_to_scm (to_str(v).ch_l ()), + ly_str02scm (k.ch_l ()), + ly_str02scm (to_str(v).ch_l ()), SCM_UNDEFINED); output_scheme (scm); @@ -265,20 +265,20 @@ Paper_outputter::output_String_def (String k, String v) { SCM scm = gh_list (ly_symbol ("lily-def"), - ly_ch_C_to_scm (k.ch_l ()), - ly_ch_C_to_scm (v.ch_l ()), + ly_str02scm (k.ch_l ()), + ly_str02scm (v.ch_l ()), SCM_UNDEFINED); output_scheme (scm); - gh_define (k.ch_l (), ly_ch_C_to_scm (v.ch_l ())); + gh_define (k.ch_l (), ly_str02scm (v.ch_l ())); } void Paper_outputter::output_int_def (String k, int v) { SCM scm = gh_list (ly_symbol ("lily-def"), - ly_ch_C_to_scm (k.ch_l ()), - ly_ch_C_to_scm (to_str (v).ch_l ()), + ly_str02scm (k.ch_l ()), + ly_str02scm (to_str (v).ch_l ()), SCM_UNDEFINED); output_scheme (scm); diff --git a/lily/parser.yy b/lily/parser.yy index 6969fd1868..f6c73ca83a 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -447,7 +447,7 @@ translator_spec_body: int_identifier *i = dynamic_cast (id); SCM v; - if (s) v = ly_ch_C_to_scm (s->access_content_String (false)->ch_C()); + if (s) v = ly_str02scm (s->access_content_String (false)->ch_C()); if (i) v = gh_int2scm (*i->access_content_int (false)); if (r) v = gh_double2scm (*r->access_content_Real (false)); if (!s && !i && !r) @@ -1583,7 +1583,7 @@ string: $$ = $1; } | STRING_IDENTIFIER { - $$ = ly_ch_C_to_scm ($1->access_content_String (true)->ch_C ()); + $$ = ly_str02scm ($1->access_content_String (true)->ch_C ()); } | string '+' string { $$ = scm_string_append (scm_listify ($1, $3, SCM_UNDEFINED)); diff --git a/lily/score-element.cc b/lily/score-element.cc index 674c5141c7..85254c4278 100644 --- a/lily/score-element.cc +++ b/lily/score-element.cc @@ -241,6 +241,14 @@ Score_element::output_processing () output_p_ = do_brew_molecule_p (); Offset o (relative_coordinate (0, X_AXIS), relative_coordinate (0, Y_AXIS)); + + SCM s = get_elt_property ("extra-offset"); + if (gh_pair_p (s)) + { + Real il = paper_l ()->get_var ("interline"); + o[X_AXIS] += il * gh_scm2double (gh_car (s)); + o[Y_AXIS] += il * gh_scm2double (gh_cdr (s)); + } pscore_l_->outputter_l_->output_molecule (output_p_, o, diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index 05fc9a6a70..cf8c0ea0f6 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -99,7 +99,7 @@ Text_engraver::do_process_requests () text->text_str_ = r->text_str_; if (r->style_str_.length_i ()) - text->set_elt_property ("style", ly_ch_C_to_scm (r->style_str_.ch_C())); + text->set_elt_property ("style", ly_str02scm (r->style_str_.ch_C())); SCM empty = get_property ("textEmptyDimension", 0); if (gh_boolean_p (empty) && gh_scm2bool (empty)) diff --git a/lily/tuplet-spanner.cc b/lily/tuplet-spanner.cc index 7fa4e3e992..165255db26 100644 --- a/lily/tuplet-spanner.cc +++ b/lily/tuplet-spanner.cc @@ -70,7 +70,7 @@ Tuplet_spanner::do_brew_molecule_p () const num.translate_axis (dy/2, Y_AXIS); - Real thick = paper_l ()->get_var ("tuplet-thick"); + Real thick = paper_l ()->get_var ("tuplet_thick"); if (bracket_visibility) { Real gap = paper_l () -> get_var ("tuplet_spanner_gap"); diff --git a/lily/volta-spanner.cc b/lily/volta-spanner.cc index 1b8f83adbe..9e06d74c69 100644 --- a/lily/volta-spanner.cc +++ b/lily/volta-spanner.cc @@ -45,7 +45,7 @@ Volta_spanner::do_brew_molecule_p () const Real interline_f = paper_l ()->get_var ("interline"); Real internote_f = interline_f/2; - Real t = paper_l ()->get_var ("volta-thick"); + Real t = paper_l ()->get_var ("volta_thick"); Real dx = internote_f; Real w = extent (X_AXIS).length () - dx - get_broken_left_end_align (); diff --git a/ly/params.ly b/ly/params.ly index 609319678a..f8123bfe8e 100644 --- a/ly/params.ly +++ b/ly/params.ly @@ -16,7 +16,6 @@ beam_thickness = 0.52 * (\interline - \stafflinethickness); interbeam = (2.0 * \interline + \stafflinethickness - \beam_thickness) / 2.0; interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0; -#'beam-thickness = \beam_thickness ; % ARG. % stems and beams @@ -92,16 +91,9 @@ grace_forced_stem_shorten3 = \grace_forced_stem_shorten2; % * MEAN : mean centre distance of all notes % * MEDIAN : mean centre distance weighted per note % -% enum Dir_algorithm { DOWN=-1, UP=1, MAJORITY=2, MEAN, MEDIAN }; -% -DOWN = -1.0; -UP = 1.0; -MAJORITY = 2.0; -MEAN = 3.0; -MEDIAN = 4.0; -#'Beam::beam-dir-algorithm = #'majority -#'Beam::slope-quantisation = #'normal +#'slope-quantisation = #'normal +#'beam-dir-algorithm = #'majority %urg. %{ @@ -207,6 +199,13 @@ barthick_thick = 6.0* \stafflinethickness; barthick_thin = 1.6*\stafflinethickness; barthick_score = 1.6*\stafflinethickness; +bracket_arch_thick = \interline / 3.0; +bracket_width = 2.0 * \interline; +bracket_thick = 2.0 * \stafflinethickness; +bracket_arch_height = 1.5 * \interline; +bracket_arch_width = \bracket_arch_height; +bracket_arch_angle = 50.0; + tuplet_spanner_gap = 2.0 * \interline; tuplet_thick = 1.0*\stafflinethickness; volta_thick = 1.6*\stafflinethickness; diff --git a/make/lilypond.spec.in b/make/lilypond.spec.in index 91c6e7ca02..9e7850cfc0 100644 --- a/make/lilypond.spec.in +++ b/make/lilypond.spec.in @@ -11,8 +11,11 @@ Packager: Han-Wen Nienhuys BuildRoot: /tmp/lilypond-install Prereq: tetex -%description -@BLURB@ +%description +LilyPond is a music typesetter. It produces beautiful +sheet music using a high level description file as input. LilyPond is +part of the GNU Project. + %package documentation Summary: Prebuilt website containing all LilyPond documentation. @@ -20,7 +23,7 @@ Group: Applications/Publishing # BuildArchitectures: noarch %description documentation -@BLURB@ + The documentation of LilyPond, both in HTML and PostScript. diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 07d322a822..94cc79fc2a 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ Begin3 Title: LilyPond -Version: 1.3.1 -Entered-date: 28OCT99 +Version: 1.3.2 +Entered-date: 01NOV99 Description: Keywords: music notation typesetting midi fonts engraving Author: hanwen@cs.uu.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 1000k lilypond-1.3.1.tar.gz + 1000k lilypond-1.3.2.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 1000k lilypond-1.3.1.tar.gz + 1000k lilypond-1.3.2.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index f1cdc34164..0b4546e32b 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.3.1 +Version: 1.3.2 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.1.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.2.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys @@ -11,7 +11,10 @@ Packager: Han-Wen Nienhuys BuildRoot: /tmp/lilypond-install Prereq: tetex -%description +%description +LilyPond is a music typesetter. It produces beautiful +sheet music using a high level description file as input. LilyPond is +part of the GNU Project. %package documentation diff --git a/mudela-mode.el b/mudela-mode.el index ceb25563f5..b059317a69 100644 --- a/mudela-mode.el +++ b/mudela-mode.el @@ -30,6 +30,12 @@ ;; * fontlock: \melodic \melodic ;; +(defconst mu-version "1.2.16-dk1" + "`mudela-mode' version number.") + +(defconst mu-help-address "hanwen@cs.uu.nl" + "Address accepting submission of bug reports.") + (defconst mudela-font-lock-keywords (let* ((keywords '("spanrequest" "simultaneous" "sequential" "accepts" "alternative" "bar" "breathe" @@ -66,28 +72,10 @@ (defvar mu-mode-map () "Keymap used in `mudela-mode' buffers.") -(defun mu-newline-and-indent () - (interactive) - (newline) - (indent-relative-maybe) - "Newline and copy previous indentation") - (if mu-mode-map () (setq mu-mode-map (make-sparse-keymap)) - - (mapcar (function (lambda (key) - (define-key - mu-mode-map key 'mu-newline-and-indent))) - (where-is-internal 'newline-and-indent)) - - (mapcar (function - (lambda (x) - (define-key mu-mode-map (car x) (cdr x)))) - '(("\C-c\C-c" . mu-foo-bar) - )) - ;; should do all keybindings this way - (define-key mu-mode-map [RET] 'mu-newline-and-indent) + ;; (define-key mu-mode-map "\C-c\C-c" 'mu-foo-bar) ) (defvar mu-mode-syntax-table nil @@ -121,9 +109,6 @@ ) -(defconst mu-blank-or-comment-re "[ \t]*\\($\\|%\\)" - "Regexp matching blank or comment lines.") - (defconst mu-imenu-generic-re "^\\([a-zA-Z_][a-zA-Z0-9_]*\\) *=" "Regexp matching Identifier definitions.") @@ -140,49 +125,52 @@ (defun mudela-mode () "Major mode for editing Mudela files." - (interactive) ;; set up local variables (kill-all-local-variables) + (make-local-variable 'font-lock-defaults) + (setq font-lock-defaults '(mudela-font-lock-keywords)) + (make-local-variable 'paragraph-separate) + (setq paragraph-separate "^[ \t]*$") + (make-local-variable 'paragraph-start) - (make-local-variable 'require-final-newline) + (setq paragraph-start "^[ \t]*$") + (make-local-variable 'comment-start) + (setq comment-start "%") + + (make-local-variable 'comment-start-skip) + (setq comment-start-skip "%{? *") + + (make-local-variable 'comment-end) + (setq comment-end "\n") + (make-local-variable 'block-comment-start) + (setq block-comment-start "%{") + (make-local-variable 'block-comment-end) + (setq block-comment-end "%}") + + ;; (make-local-variable 'comment-column) + ;; (setq comment-column 40) - (setq comment-end "\n" - comment-start "%" - comment-start-skip "%{? *" - block-comment-start "%{" - block-comment-end "%}" - ) - (make-local-variable 'comment-end) - (make-local-variable 'comment-start-skip) - (setq comment-start-skip "%{") ;?? - (make-local-variable 'comment-column) (make-local-variable 'imenu-generic-expression) (setq imenu-generic-expression mu-imenu-generic-expression) + (make-local-variable 'indent-line-function) + (setq indent-line-function 'indent-relative-maybe) ;; (set-syntax-table mu-mode-syntax-table) - (setq major-mode 'mudela-mode - mode-name "Mudela" - local-abbrev-table mudela-mode-abbrev-table - font-lock-defaults '(mudela-font-lock-keywords) - paragraph-separate "^[ \t]*$" - paragraph-start "^[ \t]*$" - require-final-newline t - comment-column 40 - indent-line-function 'indent-relative-maybe - ) + (setq major-mode 'mudela-mode) + (setq mode-name "Mudela") + (setq local-abbrev-table mudela-mode-abbrev-table) (use-local-map mu-mode-map) ;; run the mode hook. mu-mode-hook use is deprecated - (run-hooks 'mudela-mode-hook) -) + (run-hooks 'mudela-mode-hook)) (defun mu-keep-region-active () @@ -194,17 +182,12 @@ (setq zmacs-region-stays t))) -(defun mu-comment-region (beg end &optional arg) - "Like `comment-region' but uses double hash (`#') comment starter." - (interactive "r\nP") - (let ((comment-start mu-block-comment-prefix)) - (comment-region beg end arg))) +;;(defun mu-comment-region (beg end &optional arg) +;; "Like `comment-region' but uses double hash (`#') comment starter." +;; (interactive "r\nP") +;; (let ((comment-start mu-block-comment-prefix)) +;; (comment-region beg end arg))) -(defconst mu-version "0.0.1" - "`mudela-mode' version number.") -(defconst mu-help-address "hanwen@cs.uu.nl" - "Address accepting submission of bug reports.") - (defun mu-version () "Echo the current version of `mudela-mode' in the minibuffer." (interactive) diff --git a/mutopia/D.Scarlatti/GNUmakefile b/mutopia/D.Scarlatti/GNUmakefile deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/mutopia/D.Scarlatti/progress.ly b/mutopia/D.Scarlatti/progress.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/mutopia/D.Scarlatti/sonata-k1-l366.ly b/mutopia/D.Scarlatti/sonata-k1-l366.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/mutopia/D.Scarlatti/sonata-k2-l388.ly b/mutopia/D.Scarlatti/sonata-k2-l388.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/mutopia/D.Scarlatti/sonata-k3-l378.ly b/mutopia/D.Scarlatti/sonata-k3-l378.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/mutopia/D.Scarlatti/sonata-k4-l390.ly b/mutopia/D.Scarlatti/sonata-k4-l390.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/mutopia/F.Schubert/AnSylvia.ly b/mutopia/F.Schubert/AnSylvia.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly index 635c933813..380f553b9d 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly @@ -76,9 +76,9 @@ allemande_b = \notes \relative c { s1 | f!16 s16*3 b, s16*3 s2 | s1 | - \property Voice.slurVerticalDirection=1 + \slurdown s4 e [dis8 ~ dis32 e( fis gis] [a b c d! c b c )a] | - \property Voice.slurVerticalDirection=0 + \slurboth %10 s2 s8 s4 | s8 s4 s8 s4 | diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly index 9df40fb2c2..cda7712a71 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly @@ -75,9 +75,9 @@ courante_b = \notes \relative c { f'4 s s | s2.*2 %21 - \property Voice.slurVerticalDirection=1 + \slurup f16 c'(bes a g f es d )es c' f, es | - \property Voice.slurVerticalDirection=0 + \slurboth bes4 s s s2.*9 s2 s8. diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly index 840bf07e8c..2b4d6043b9 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly @@ -16,7 +16,7 @@ menuetto_i_cello_global = \notes{ \skip 2.*1; \slurdotted \skip 2.*14; - \property Voice.textEmptyDimension = 1 + \emptyText s2._"Fine" } } @@ -73,7 +73,7 @@ menuetto_ii_cello_global = \notes{ \skip 2.*1; \slurdotted \skip 2.*14; - \property Voice.textEmptyDimension = 1 + \emptyText s2._"Menuetto I da Capo" } diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly index 614ddd1617..a993e206c6 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly @@ -18,7 +18,7 @@ menuetto_i_viola_global = \notes{ \skip 2.*3; \clef alto; \skip 2.*11; - \property Voice.textEmptyDimension = 1 + \emptyText s2._"Fine" } } @@ -71,7 +71,7 @@ menuetto_ii_viola_global = \notes{ \skip 2.*1; \slurdotted \skip 2.*14; - \property Voice.textEmptyDimension = 1 + \emptyText s2._"Menuetto I da Capo" } } diff --git a/mutopia/J.S.Bach/wtk1-fugue2.ly b/mutopia/J.S.Bach/wtk1-fugue2.ly index d74fa6ef86..1fef17664f 100644 --- a/mutopia/J.S.Bach/wtk1-fugue2.ly +++ b/mutopia/J.S.Bach/wtk1-fugue2.ly @@ -22,22 +22,14 @@ \version "1.2.13"; -\include "nederlands.ly" % for correct parsing of note names - global = \notes { \key c \minor; - \time 4/4; - \property Staff.timeSignatureStyle = "C" - \skip 1*31; - \bar "|."; | } dux = \context Voice=two \notes \relative c''{ \voicetwo \clef violin; - \property Voice.verticalDirection = "-1" - r8 c16 b c8 g as c16 b c8 d | g, c16 b c8 d f,16 g as4 g16 f | es c' b a g f! es d c8 es' d c | @@ -174,9 +166,10 @@ bassdux = \context Voice=three \notes \relative c' { \context PianoStaff < \context Staff = treble < - \global \dux - \comes + { \comes \bar "|."; } + \time 4/4; + \property Score.timeSignatureStyle = "C" > \context Staff = bass < \global diff --git a/ps/lily.ps b/ps/lily.ps index 265789d1d7..b948ccff70 100644 --- a/ps/lily.ps +++ b/ps/lily.ps @@ -142,30 +142,30 @@ % % % -/half_bracket +/half_bracket { %6 0 0 %5a - bracket_b bracket_v add bracket_h bracket_t sub bracket_u add - bracket_alpha bracket_v -0.15 mul bracket_traject + arch_thick arch_height add half_height bracket_thick sub arch_width add + arch_angle arch_height -0.15 mul bracket_traject %5b - 1 bracket_h - 0 bracket_v 0.5 mul bracket_traject + 1 half_height + 0 arch_height 0.5 mul bracket_traject %5c - 0 bracket_h + 0 half_height %4a - bracket_b bracket_h bracket_t sub - 0 bracket_v 0.4 mul bracket_traject + arch_thick half_height bracket_thick sub + 0 arch_height 0.4 mul bracket_traject %4b - bracket_b bracket_v add bracket_h bracket_t sub bracket_u add - bracket_alpha bracket_v -0.25 mul bracket_traject + arch_thick arch_height add half_height bracket_thick sub arch_width add + arch_angle arch_height -0.25 mul bracket_traject %4c - bracket_b bracket_v add bracket_h bracket_t sub bracket_u add + arch_thick arch_height add half_height bracket_thick sub arch_width add %3 - bracket_b bracket_h bracket_t sub + arch_thick half_height bracket_thick sub %2 - bracket_b 0 + arch_thick 0 %1 0 0 } bind def @@ -182,10 +182,18 @@ grestore } bind def % -/draw_bracket % height +/draw_bracket % arch_angle arch_width arch_height bracket_width bracket_height arch_thick bracket_thick { - 2 div bracket_b add /bracket_h exch def - bracket_t setlinewidth + % urg + /bracket_thick exch def + /arch_thick exch def + /bracket_height exch def + /bracket_width exch def + /arch_height exch def + /arch_width exch def + /arch_angle exch def +% + bracket_height 2 div arch_thick add /half_height exch def % urg: the only Level-2 PS, check effect in print % true setstrokeadjust 1 setlinecap diff --git a/scm/lily.scm b/scm/lily.scm index de49911154..980344441c 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -90,34 +90,34 @@ (define space-alist '( - (("" "Clef_item") . (minimum_space 1.0)) - (("" "Staff_bar") . (minimum_space 0.0)) - (("" "Clef_item") . (minimum_space 1.0)) - (("" "Key_item") . (minimum_space 0.5)) - (("" "Span_bar") . (extra_space 0.0)) - (("" "Time_signature") . (extra_space 0.0)) - (("" "begin-of-note") . (minimum_space 1.5)) - (("Clef_item" "Key_item") . (minimum_space 4.0)) - (("Key_item" "Time_signature") . (extra_space 1.0)) - (("Clef_item" "Time_signature") . (minimum_space 3.5)) - (("Staff_bar" "Clef_item") . (minimum_space 1.0)) - (("Clef_item" "Staff_bar") . (minimum_space 3.7)) - (("Time_signature" "Staff_bar") . (minimum_space 2.0)) - (("Key_item" "Staff_bar") . (extra_space 1.0)) - (("Span_bar" "Clef_item") . (extra_space 1.0)) - (("Clef_item" "Span_bar") . (minimum_space 3.7)) - (("Time_signature" "Span_bar") . (minimum_space 2.0)) - (("Key_item" "Span_bar") . (minimum_space 2.5)) - (("Staff_bar" "Time_signature") . (minimum_space 1.5)) ;double check this. - (("Time_signature" "begin-of-note") . (extra_space 2.0)) ;double check this. - (("Key_item" "begin-of-note") . (extra_space 2.5)) - (("Staff_bar" "begin-of-note") . (extra_space 1.0)) - (("Clef_item" "begin-of-note") . (minimum_space 5.0)) - (("" "Breathing_sign") . (minimum_space 0.0)) - (("Breathing_sign" "Key_item") . (minimum_space 1.5)) - (("Breathing_sign" "begin-of-note") . (minimum_space 1.0)) - (("Breathing_sign" "Staff_bar") . (minimum_space 1.5)) - (("Breathing_sign" "Clef_item") . (minimum_space 2.0)) + (("" "Clef_item") . (minimum-space 1.0)) + (("" "Staff_bar") . (minimum-space 0.0)) + (("" "Clef_item") . (minimum-space 1.0)) + (("" "Key_item") . (minimum-space 0.5)) + (("" "Span_bar") . (extra-space 0.0)) + (("" "Time_signature") . (extra-space 0.0)) + (("" "begin-of-note") . (minimum-space 1.5)) + (("Clef_item" "Key_item") . (minimum-space 4.0)) + (("Key_item" "Time_signature") . (extra-space 1.0)) + (("Clef_item" "Time_signature") . (minimum-space 3.5)) + (("Staff_bar" "Clef_item") . (minimum-space 1.0)) + (("Clef_item" "Staff_bar") . (minimum-space 3.7)) + (("Time_signature" "Staff_bar") . (minimum-space 2.0)) + (("Key_item" "Staff_bar") . (extra-space 1.0)) + (("Span_bar" "Clef_item") . (extra-space 1.0)) + (("Clef_item" "Span_bar") . (minimum-space 3.7)) + (("Time_signature" "Span_bar") . (minimum-space 2.0)) + (("Key_item" "Span_bar") . (minimum-space 2.5)) + (("Staff_bar" "Time_signature") . (minimum-space 1.5)) ;double check this. + (("Time_signature" "begin-of-note") . (extra-space 2.0)) ;double check this. + (("Key_item" "begin-of-note") . (extra-space 2.5)) + (("Staff_bar" "begin-of-note") . (extra-space 1.0)) + (("Clef_item" "begin-of-note") . (minimum-space 5.0)) + (("" "Breathing_sign") . (minimum-space 0.0)) + (("Breathing_sign" "Key_item") . (minimum-space 1.5)) + (("Breathing_sign" "begin-of-note") . (minimum-space 1.0)) + (("Breathing_sign" "Staff_bar") . (minimum-space 1.5)) + (("Breathing_sign" "Clef_item") . (minimum-space 2.0)) ) ) @@ -126,7 +126,7 @@ (if entry (cdr entry) (begin (ly-warn (string-append "Unknown spacing pair `" this "', `" next "'")) - '(minimum_space 0.0))))) + '(minimum-space 0.0))))) @@ -201,8 +201,8 @@ (define (beam width slope thick) (embedded-ps ((ps-scm 'beam) width slope thick))) - (define (bracket h) - (embedded-ps ((ps-scm 'bracket) h))) + (define (bracket arch_angle arch_width arch_height width height arch_thick thick) + (embedded-ps ((ps-scm 'bracket) arch_angle arch_width arch_height width height arch_thick thick))) (define (dashed-slur thick dash l) (embedded-ps ((ps-scm 'dashed-slur) thick dash l))) @@ -267,7 +267,6 @@ (regexp-substitute/global #f "\\\\" s 'pre "$\\backslash$" 'post) s)) - (define (lily-def key val) (string-append "\\def\\" @@ -439,8 +438,9 @@ (string-append (numbers->string (list width slope thick)) " draw_beam" )) - (define (bracket h) - (invoke-dim1 " draw_bracket" h)) + (define (bracket arch_angle arch_width arch_height width height arch_thick thick) + (string-append + (numbers->string (list arch_angle arch_width arch_height width height arch_thick thick)) " draw_bracket" )) (define (char i) (invoke-char " show" i)) diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index 2d681ce09a..8652d3c960 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -563,7 +563,7 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [ # # For now let people define these in their environments # - : ${MFPLAIN_MP='/usr/share/texmf/metapost/base/mfplain.mp'} + : ${MFPLAIN_MP=`kpsewhich mfplain.mp`} : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'} rm -f mfput.* diff --git a/stepmake/bin/package-zet.sh b/stepmake/bin/package-zet.sh index b970f50b48..c7ec22bf94 100755 --- a/stepmake/bin/package-zet.sh +++ b/stepmake/bin/package-zet.sh @@ -24,8 +24,10 @@ fi # and create links to here, if necessary # sourcetree=`basename \`pwd\`` -(cd ..; rm -f $package 2>&1 > /dev/null) -(cd ..; ln -s $sourcetree $package) +if [ "xsourcetree" != "x$package" ]; then + (cd ..; rm -f $package 2>&1 > /dev/null) + (cd ..; ln -s $sourcetree $package) +fi # if [ ! -r $sources ]; then (cd ..; ln -s `pwd` $sources) diff --git a/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex index 084d51ce55..ca33b2543d 100644 --- a/tex/lily-ps-defs.tex +++ b/tex/lily-ps-defs.tex @@ -8,24 +8,12 @@ % note the ! sign. See dvips.info for details. % -% ARG. Fix brackets \def\turnOnPostScript{% % This sets CTM so that you get to the currentpoint % by executing a 0 0 moveto \def\embeddedps##1{% \special{ps: @beginspecial @setspecial ##1 @endspecial} } - % - \special{! -/stafflinethickness \mudelapaperstafflinethickness\space def -/interline \mudelapaperinterline\space def -interline 3 div /bracket_b exch def -interline 2 mul /bracket_w exch def -stafflinethickness 2 mul /bracket_t exch def -interline 1.5 mul /bracket_v exch def -bracket_v /bracket_u exch def -50 /bracket_alpha exch def -1 setlinecap} } \def\turnOnExperimentalFeatures{} -- 2.39.5