From: Han-Wen Nienhuys Date: Sat, 10 Aug 2002 14:09:24 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release/1.5.72~14 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=54685cedab8c7e6ce9cfc754dc6b6c646e8421ff;p=lilypond.git *** empty log message *** --- diff --git a/ChangeLog b/ChangeLog index 18e762e675..d1504e57ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2002-08-10 Han-Wen Nienhuys + + + * stepmake/stepmake/metafont-rules.make: pktrace -> mftrace name change. + * configure.in: idem + +2002-08-10 Juergen Reuter + + * mf/parmesan-timesig.mf, scm/output-lib.scm, + lily/include/time-signature.hh, lily/time-signature.cc, + input/test/time.ly: fixed broken time-signature by setting grob + property font-family automatically. + 2002-08-10 Jan Nieuwenhuizen * Documentation/user/tutorial.itely (Running LilyPond): Mention diff --git a/GNUmakefile.in b/GNUmakefile.in index b595810961..7bdb175e1f 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -157,6 +157,6 @@ $(config_h): configure # @echo @echo ' *** config.h file is out of date' - @echo ' *** Rerun configure or autogen.sh' + @echo ' *** Remove it, and rerun configure or autogen.sh' @echo @false diff --git a/configure.in b/configure.in index 7edb9bc87a..8162b5b0d4 100644 --- a/configure.in +++ b/configure.in @@ -49,8 +49,8 @@ AC_CHECK_FUNCS(memmem snprintf vsnprintf gettext isinf) STEPMAKE_GUILE(OPTIONAL) # perl for help2man. STEPMAKE_PERL(OPTIONAL) -# pktrace for generating pfa's, pfb's -STEPMAKE_PROGS(PKTRACE, pktrace, OPTIONAL, 1.0.3) +# mftrace for generating pfa's, pfb's +STEPMAKE_PROGS(MFTRACE, pktrace mftrace, OPTIONAL, 1.0.3) # new makeinfo for multi-page website docs STEPMAKE_PROGS(MAKEINFO, makeinfo, OPTIONAL, 4.1) diff --git a/input/test/time.ly b/input/test/time.ly index 13465e6394..17bc4f64f5 100644 --- a/input/test/time.ly +++ b/input/test/time.ly @@ -1,14 +1,49 @@ \version "1.5.68" +\header +{ + texidoc = " +IMPORTANT NOTE: The current selection scheme for time signature +symbols is not flexible enough for future extensions such as various +flavours of early mensural notation or complex signatures as in +contemporary music. Therefore, the semantics of time-signature +properties will quite definitely change, and maybe the syntax of the +\time request will possibly be extended. See the input file for TODOs. + +" +} + + +%{ + +two examples what might be expected. -- jr + +TODO: The former "old6/8alt" is currently not addressable. This will +be fixed by introducing an additional style property that switches +between various mensural diminution styles. -- jr + +TODO: Style "1xxx" really should be a special case of style +"numbered". In other words, style "1xxx" should be removed, and a new +property "denominator-style" should be introduced, with values +"numbered" (which should be equivalent to the current "numbered" +style), "none" (which should be equivalent to the current "1xxx" +style), and "notehead" (which should place a proper notehead to the +right side of the nominator). -- jr + + +%} \score { \context Voice \notes\relative c { - \property Staff.TimeSignature \override #'style = #'C + % Lilypond doesn't understand 'default => it does what you want + \property Staff.TimeSignature \override #'style = #'default \time 1/1 - c''1^"TimeSignature style = \#'C" + c''1^"TimeSignature style = \#'default" \time 2/2 c1 \time 2/4 c2 + \time 4/8 + c2 \time 3/4 c2. \time 4/4 @@ -26,13 +61,15 @@ \time 9/4 c2. c2. c2. \break - \property Staff.TimeSignature \set #'style = #'old + \property Staff.TimeSignature \set #'style = #'mensural \time 1/1 - c1^"TimeSignature style = \#'old" + c1^"TimeSignature style = \#'mensural" \time 2/2 c1 \time 2/4 c2 + \time 4/8 + c2 \time 3/4 c2. \time 4/4 @@ -54,14 +91,45 @@ \time 9/8 c4. c4. c4. \break - % Lilypond doesn't understand 'default => it does what you want - \property Staff.TimeSignature \set #'style = #'default + \property Staff.TimeSignature \set #'style = #'neo_mensural + \time 1/1 + c1^"TimeSignature style = \#'neo\_mensural" + \time 2/2 + c1 + \time 2/4 + c2 + \time 4/8 + c2 + \time 3/4 + c2. + \time 4/4 + c1 + \time 5/4 + c2. c2 + \time 6/4 + c1. + \time 3/2 + c1. + \time 7/4 + c1 c2. + \time 8/4 + c\breve + \time 9/4 + c2. c2. c2. + \time 6/8 + c2. + \time 9/8 + c4. c4. c4. + \break + \property Staff.TimeSignature \set #'style = #'numbered \time 1/1 - c1^"TimeSignature style = \#'default" + c1^"TimeSignature style = \#'numbered" \time 2/2 c1 \time 2/4 c2 + \time 4/8 + c2 \time 3/4 c2. \time 4/4 @@ -87,6 +155,8 @@ c1 \time 2/4 c2 + \time 4/8 + c2 \time 3/4 c2. \time 4/4 @@ -103,45 +173,6 @@ c\breve \time 9/4 c2. c2. c2. - \break - \property Staff.TextScript \override #'self-alignment-X = #1 - \property Staff.TimeSignature \set #'style = #'old9/8 - \time 1/1 - c1^"old9/8" - \property Staff.TimeSignature \set #'style = #'old6/8 - \time 1/1 - c1^"old6/8" - \property Staff.TimeSignature \set #'style = #'old6/8alt - \time 1/1 - c1^"old6/8alt" - \property Staff.TimeSignature \set #'style = #'old9/4 - \time 1/1 - c1^"old9/4" - \property Staff.TimeSignature \set #'style = #'old6/4 - \time 1/1 - c1^"old6/4" - \property Staff.TimeSignature \set #'style = #'old3/2 - \time 1/1 - c1^"old3/2" - \property Staff.TimeSignature \set #'style = #'old4/4 - \time 1/1 - c1^"old4/4" - \property Staff.TimeSignature \set #'style = #'old2/2 - \time 1/1 - c1^"old2/2" - \property Staff.TimeSignature \set #'style = #'old2/4 - \time 1/1 - c1^"old2/4" - \property Staff.TimeSignature \set #'style = #'old4/8 - \time 1/1 - c1^"old4/8" - \property Staff.TimeSignature \set #'style = #'C4/4 - \time 1/1 - c1^"C4/4" - \property Staff.TimeSignature \set #'style = #'C2/2 - \time 1/1 - c1^"C2/2" - } \paper { } \midi { } diff --git a/lily/include/time-signature.hh b/lily/include/time-signature.hh index 9c39e9221b..914660ba52 100644 --- a/lily/include/time-signature.hh +++ b/lily/include/time-signature.hh @@ -20,8 +20,8 @@ struct Time_signature { static bool has_interface (Grob*); - static Molecule special_time_signature (Grob*,String,int,int) ; - static Molecule time_signature (Grob*,int, int); + static Molecule special_time_signature (Grob*,SCM,int,int) ; + static Molecule numbered_time_signature (Grob*,int, int); DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM )); }; #endif // METER_HH diff --git a/lily/scaled-font-metric.cc b/lily/scaled-font-metric.cc index be07d25d8d..3f6ef909e4 100644 --- a/lily/scaled-font-metric.cc +++ b/lily/scaled-font-metric.cc @@ -18,6 +18,8 @@ Scaled_font_metric::Scaled_font_metric (Font_metric* m, Real magn) SCM desc = m->description_; Real total_mag = magn * gh_scm2double (ly_cdr (desc)); + assert (total_mag); + description_ = gh_cons (ly_car (desc), gh_double2scm (total_mag)); orig_ = m; } diff --git a/lily/time-signature.cc b/lily/time-signature.cc index e360f81033..d960b647cd 100644 --- a/lily/time-signature.cc +++ b/lily/time-signature.cc @@ -40,15 +40,15 @@ Time_signature::brew_molecule (SCM smob) String style (ly_scm2string (scm_symbol_to_string (st))); if (style[0]=='1') { - m = time_signature (me, n, 0); + m = numbered_time_signature (me, n, 0); } else { - m = special_time_signature (me, style, n, d); + m = special_time_signature (me, st, n, d); } } else - m = time_signature (me, n,d); + m = numbered_time_signature (me, n,d); if (Staff_symbol_referencer::line_count (me) % 2 == 0) m.translate_axis (Staff_symbol_referencer::staff_space (me)/2 , Y_AXIS); @@ -57,49 +57,38 @@ Time_signature::brew_molecule (SCM smob) } Molecule -Time_signature::special_time_signature (Grob*me, String s, int n, int d) +Time_signature::special_time_signature (Grob *me, SCM style, int n, int d) { - /* - Randomly probing the font sucks? - */ - - SCM alist_chain = Font_interface::font_alist_chain (me); - - SCM style_chain = - Font_interface::add_style (me, ly_symbol2scm ("timesig-symbol"), - alist_chain); - - Font_metric *feta = Font_interface::get_font (me, style_chain); - - /* - First guess: s contains only the signature style, append fraction. - */ - String symbolname = "timesig-" + s + to_string (n) + "/" + to_string (d); - - Molecule m = feta->find_by_name (symbolname); + String st = ly_scm2string (scm_symbol_to_string (style)); + SCM scm_n = gh_int2scm (n); + SCM scm_d = gh_int2scm (d); + SCM exp = scm_list_n (ly_symbol2scm ("find-timesig-symbol"), + scm_n, scm_d, ly_quote_scm (style), + SCM_UNDEFINED); + SCM scm_pair = scm_primitive_eval (exp); + SCM scm_font_char = ly_car (scm_pair); + SCM scm_font_family = ly_cdr (scm_pair); + String font_char = ly_scm2string (scm_font_char); + String font_family = ly_scm2string (scm_font_family); + me->set_grob_property("font-family", ly_symbol2scm (font_family.to_str0 ())); + + Molecule m = + Font_interface::get_default_font (me)->find_by_name ("timesig-" + font_char); if (!m.empty_b ()) return m; - /* - Second guess: s contains the full signature name - */ - m = feta->find_by_name ("timesig-" + s); - m.align_to (X_AXIS, LEFT); - if (!m.empty_b ()) - return m; - /* If there is no such symbol, we default without warning to the numbered style. */ - return time_signature (me, n, d); + return numbered_time_signature (me, n, d); } - Molecule -Time_signature::time_signature (Grob*me,int num, int den) +Time_signature::numbered_time_signature (Grob*me,int num, int den) { SCM chain = Font_interface::font_alist_chain (me); + me->set_grob_property("font-family", ly_symbol2scm ("number")); Molecule n = Text_item::text2molecule (me, scm_makfrom0str (to_string (num).to_str0 ()), @@ -126,8 +115,6 @@ Time_signature::time_signature (Grob*me,int num, int den) return m; } - - ADD_INTERFACE (Time_signature,"time-signature-interface", "A time signature, in different styles. The following values for 'style are are recognized: diff --git a/ly/a4-init.ly b/ly/a4-init.ly index 1f741376fb..88429cac26 100644 --- a/ly/a4-init.ly +++ b/ly/a4-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % a4.ly hsize = 210.0 \mm diff --git a/ly/accordion-defs-init.ly b/ly/accordion-defs-init.ly index f78bde1ee6..5e3453809e 100644 --- a/ly/accordion-defs-init.ly +++ b/ly/accordion-defs-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % Symbols needed to print accordion music % % 2' = T diff --git a/ly/book-init-init.ly b/ly/book-init-init.ly index 7476786d8e..73aaf2a20b 100644 --- a/ly/book-init-init.ly +++ b/ly/book-init-init.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.5.49" +\version "1.5.68" \include "declarations-init.ly" diff --git a/ly/catalan.ly b/ly/catalan.ly index 7673ea2c97..92e0ca8140 100644 --- a/ly/catalan.ly +++ b/ly/catalan.ly @@ -73,4 +73,4 @@ -\version "1.5.49" +\version "1.5.68" diff --git a/ly/center-init.ly b/ly/center-init.ly index e237c3d029..353cc78b26 100644 --- a/ly/center-init.ly +++ b/ly/center-init.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.5.49" +\version "1.5.68" \include "declarations-init.ly" diff --git a/ly/chord-modifiers-init.ly b/ly/chord-modifiers-init.ly index ac3c2a1568..2328779f4b 100644 --- a/ly/chord-modifiers-init.ly +++ b/ly/chord-modifiers-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % urg! % diff --git a/ly/declarations-init.ly b/ly/declarations-init.ly index 9d903b9b19..6021e8d72f 100644 --- a/ly/declarations-init.ly +++ b/ly/declarations-init.ly @@ -1,5 +1,5 @@ -\version "1.5.49" +\version "1.5.68" breve = \duration #(make-duration -1 0) longa = \duration #(make-duration -2 0 ) maxima = \duration #(make-duration -3 0) diff --git a/ly/deutsch.ly b/ly/deutsch.ly index 11ac4d0afc..0ce1917dcb 100644 --- a/ly/deutsch.ly +++ b/ly/deutsch.ly @@ -49,4 +49,4 @@ -\version "1.5.49" +\version "1.5.68" diff --git a/ly/drumpitch-init.ly b/ly/drumpitch-init.ly index d090fcde67..59d7b240ac 100644 --- a/ly/drumpitch-init.ly +++ b/ly/drumpitch-init.ly @@ -5,4 +5,4 @@ ) -\version "1.5.49" +\version "1.5.68" diff --git a/ly/dynamic-scripts-init.ly b/ly/dynamic-scripts-init.ly index c91bd8d257..42cfe49641 100644 --- a/ly/dynamic-scripts-init.ly +++ b/ly/dynamic-scripts-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % % declare the standard dynamic identifiers. diff --git a/ly/english.ly b/ly/english.ly index ceddb8ac31..c3f415b276 100644 --- a/ly/english.ly +++ b/ly/english.ly @@ -78,5 +78,5 @@ (bss . ,(make-pitch -1 6 2 )) ) -\version "1.5.49" +\version "1.5.68" diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 2dddf6c773..5577f513b2 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % % setup for Request->Element conversion. Guru-only @@ -34,8 +34,8 @@ StaffContext=\translator { \consists "Forbid_line_break_engraver" \consistsend "Axis_group_engraver" - minimumVerticalExtent = #'(-6 . 6) - extraVerticalExtent = ##f + minimumverticalExtent = #'(-6 . 6) + extraverticalExtent = ##f verticalExtent = ##f localKeySignature = #'() @@ -53,8 +53,8 @@ StaffContext=\translator { StaffContainerContext = \translator { \type Engraver_group_engraver \consists "Axis_group_engraver" - minimumVerticalExtent = ##f - extraVerticalExtent = ##f + minimumverticalExtent = ##f + extraverticalExtent = ##f verticalExtent = ##f localKeySignature = #'() @@ -91,8 +91,8 @@ RhythmicStaffContext=\translator{ \consists "Output_property_engraver" - minimumVerticalExtent = ##f - extraVerticalExtent = ##f + minimumverticalExtent = ##f + extraverticalExtent = ##f verticalExtent = ##f localKeySignature = #'() @@ -248,8 +248,8 @@ StaffGroupContext = \translator { LyricsVoiceContext= \translator{ \type "Engraver_group_engraver" \consistsend "Axis_group_engraver" - minimumVerticalExtent = #(cons -1.2 1.2) - extraVerticalExtent = ##f + minimumverticalExtent = #(cons -1.2 1.2) + extraverticalExtent = ##f verticalExtent = ##f \name LyricsVoice \consists "Separating_line_group_engraver" @@ -266,8 +266,8 @@ NoteNamesContext = \translator { \name NoteNames \consistsend "Axis_group_engraver" - minimumVerticalExtent = ##f - extraVerticalExtent = ##f + minimumverticalExtent = ##f + extraverticalExtent = ##f verticalExtent = ##f @@ -282,8 +282,8 @@ LyricsContext = \translator { \consistsend "Axis_group_engraver" - minimumVerticalExtent = ##f - extraVerticalExtent = ##f + minimumverticalExtent = ##f + extraverticalExtent = ##f verticalExtent = ##f \accepts "LyricsVoice" @@ -302,8 +302,8 @@ ChordNamesContext = \translator { \consists "Chord_name_engraver" \consists "Skip_req_swallow_translator" \consistsend "Axis_group_engraver" - minimumVerticalExtent = ##f - extraVerticalExtent = ##f + minimumverticalExtent = ##f + extraverticalExtent = ##f verticalExtent = ##f } diff --git a/ly/espanol.ly b/ly/espanol.ly index 17dd8ea886..71391529a1 100644 --- a/ly/espanol.ly +++ b/ly/espanol.ly @@ -58,4 +58,4 @@ -\version "1.5.49" +\version "1.5.68" diff --git a/ly/generate-documentation.ly b/ly/generate-documentation.ly index 504183d87a..b2a7bf3558 100644 --- a/ly/generate-documentation.ly +++ b/ly/generate-documentation.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % % Running LilyPond on this file generates the documentation diff --git a/ly/generic-paper-init.ly b/ly/generic-paper-init.ly index 7d4aea8229..2e0df33a32 100644 --- a/ly/generic-paper-init.ly +++ b/ly/generic-paper-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" \paper { texsetting = "" diff --git a/ly/german-chords-init.ly b/ly/german-chords-init.ly index 020d1a9463..05a1086324 100644 --- a/ly/german-chords-init.ly +++ b/ly/german-chords-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % german-chords-init.ly: % german/norwegian/danish? diff --git a/ly/init.ly b/ly/init.ly index 9ee764b980..6bb973c6c9 100644 --- a/ly/init.ly +++ b/ly/init.ly @@ -1,7 +1,7 @@ % Toplevel initialisation file. -\version "1.5.49" +\version "1.5.68" \include "declarations-init.ly" diff --git a/ly/italiano.ly b/ly/italiano.ly index d03b07daf3..abccdc8fa0 100644 --- a/ly/italiano.ly +++ b/ly/italiano.ly @@ -48,4 +48,4 @@ (sidd . ,(make-pitch -1 6 2 )) ) -\version "1.5.49" +\version "1.5.68" diff --git a/ly/ledger-init.ly b/ly/ledger-init.ly index df9b4cbbba..a1f1ab4490 100644 --- a/ly/ledger-init.ly +++ b/ly/ledger-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % ledger.ly diff --git a/ly/legal-init.ly b/ly/legal-init.ly index 3f82c0b028..8cb256f685 100644 --- a/ly/legal-init.ly +++ b/ly/legal-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % legal-init.ly hsize = 8.5 \in diff --git a/ly/letter-init.ly b/ly/letter-init.ly index fd264f0d99..d9360517a3 100644 --- a/ly/letter-init.ly +++ b/ly/letter-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % letter-init.ly hsize = 8.5 \in diff --git a/ly/midi-init.ly b/ly/midi-init.ly index b54c03037d..a13f29d9eb 100644 --- a/ly/midi-init.ly +++ b/ly/midi-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" \midi { \tempo 4=60 \include "performer-init.ly" diff --git a/ly/nederlands.ly b/ly/nederlands.ly index f33d860eb0..35a977c03a 100644 --- a/ly/nederlands.ly +++ b/ly/nederlands.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" %{ common dutch names for notes. es means flat, is means sharp %} diff --git a/ly/norsk.ly b/ly/norsk.ly index 4414041af7..5336414861 100644 --- a/ly/norsk.ly +++ b/ly/norsk.ly @@ -104,4 +104,4 @@ -\version "1.5.49" +\version "1.5.68" diff --git a/ly/paper-as5-init.ly b/ly/paper-as5-init.ly index 96ce985cd7..c2fcfa8497 100644 --- a/ly/paper-as5-init.ly +++ b/ly/paper-as5-init.ly @@ -1,6 +1,6 @@ % paper-as5-init.ly -\version "1.5.49" +\version "1.5.68" paperAsFive = \paper { staffheight = 5.\char diff --git a/ly/paper-as9-init.ly b/ly/paper-as9-init.ly index 9370150f00..a4d2d35391 100644 --- a/ly/paper-as9-init.ly +++ b/ly/paper-as9-init.ly @@ -1,6 +1,6 @@ % paper-as9-init.ly -\version "1.5.49" +\version "1.5.68" paperAsNine = \paper { staffheight = 9.\char diff --git a/ly/paper-init.ly b/ly/paper-init.ly index c32802e012..04a4eb881d 100644 --- a/ly/paper-init.ly +++ b/ly/paper-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % paper-init.ly %% Why som complicated? /MB diff --git a/ly/paper11-init.ly b/ly/paper11-init.ly index daadc522cc..f92047ce1b 100644 --- a/ly/paper11-init.ly +++ b/ly/paper11-init.ly @@ -1,6 +1,6 @@ % paper11-init.ly -\version "1.5.49" +\version "1.5.68" paperEleven = \paper { staffheight = 11.0\pt diff --git a/ly/paper13-init.ly b/ly/paper13-init.ly index f3fa2aa7d3..8c557bfdad 100644 --- a/ly/paper13-init.ly +++ b/ly/paper13-init.ly @@ -1,7 +1,7 @@ % paper13-init.ly -\version "1.5.49" +\version "1.5.68" paperThirteen = \paper { staffheight = 13.0\pt diff --git a/ly/paper16-init.ly b/ly/paper16-init.ly index 975a014725..4b154bc867 100644 --- a/ly/paper16-init.ly +++ b/ly/paper16-init.ly @@ -1,6 +1,6 @@ % paper16-init.ly -\version "1.5.49" +\version "1.5.68" paperSixteen = \paper { staffheight = 16.0\pt diff --git a/ly/paper19.ly b/ly/paper19.ly index 5faac410f9..b1ae87e08d 100644 --- a/ly/paper19.ly +++ b/ly/paper19.ly @@ -1,7 +1,7 @@ % paper20-init.ly -\version "1.5.49" +\version "1.5.68" paperNineteen = \paper { staffheight = 19.0\pt diff --git a/ly/paper20-init.ly b/ly/paper20-init.ly index 4fdb2b2c3f..e32470b781 100644 --- a/ly/paper20-init.ly +++ b/ly/paper20-init.ly @@ -1,7 +1,7 @@ % paper20-init.ly -\version "1.5.49" +\version "1.5.68" paperTwenty = \paper { staffheight = 20.0\pt diff --git a/ly/paper23-init.ly b/ly/paper23-init.ly index 4318d466f6..4e95f7edae 100644 --- a/ly/paper23-init.ly +++ b/ly/paper23-init.ly @@ -1,7 +1,7 @@ % paper23-init.ly -\version "1.5.49" +\version "1.5.68" paperTwentythree = \paper { staffheight = 23.0\pt diff --git a/ly/paper26-init.ly b/ly/paper26-init.ly index 3466f87b29..53c7bb6a22 100644 --- a/ly/paper26-init.ly +++ b/ly/paper26-init.ly @@ -1,6 +1,6 @@ % paper26-init.ly -\version "1.5.49" +\version "1.5.68" paperTwentysix = \paper { staffheight = 26.0\pt diff --git a/ly/params-as-init.ly b/ly/params-as-init.ly index 484c694070..c241b7b94e 100644 --- a/ly/params-as-init.ly +++ b/ly/params-as-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % params-as-init.ly % generic paper parameters diff --git a/ly/params-init.ly b/ly/params-init.ly index 104f7d0cf4..c17d26748f 100644 --- a/ly/params-init.ly +++ b/ly/params-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % JUNKME. %% deprecated diff --git a/ly/part-paper-init.ly b/ly/part-paper-init.ly index 9637fa0d8f..e561ae8876 100644 --- a/ly/part-paper-init.ly +++ b/ly/part-paper-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % JUNKME %part-paper-init.ly diff --git a/ly/performer-init.ly b/ly/performer-init.ly index 90e2bd74a8..3bc296fab1 100644 --- a/ly/performer-init.ly +++ b/ly/performer-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" % % setup for Request->Element conversion. Guru-only % diff --git a/ly/property-init.ly b/ly/property-init.ly index 5162620244..0afb1888fb 100644 --- a/ly/property-init.ly +++ b/ly/property-init.ly @@ -1,6 +1,6 @@ % property-init.ly -\version "1.5.49" +\version "1.5.68" stemUp = \property Voice.Stem \set #'direction = #1 stemDown = \property Voice.Stem \set #'direction = #-1 diff --git a/ly/scale-definitions-init.ly b/ly/scale-definitions-init.ly index 975686f667..4b45dd7bdf 100644 --- a/ly/scale-definitions-init.ly +++ b/ly/scale-definitions-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" major = #'( diff --git a/ly/script-init.ly b/ly/script-init.ly index 84a2ec5316..32a15a84a3 100644 --- a/ly/script-init.ly +++ b/ly/script-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" dashHat= "marcato" diff --git a/ly/spanners-init.ly b/ly/spanners-init.ly index dc3e55fd56..1e2a8a819e 100644 --- a/ly/spanners-init.ly +++ b/ly/spanners-init.ly @@ -1,4 +1,4 @@ -\version "1.5.49" +\version "1.5.68" cr = \spanrequest \start "crescendo" decr = \spanrequest \start "decrescendo" diff --git a/ly/suomi.ly b/ly/suomi.ly index 9506428ad7..b0c85f7927 100644 --- a/ly/suomi.ly +++ b/ly/suomi.ly @@ -45,4 +45,4 @@ (his . ,(make-pitch -1 6 1 )) (hisis . ,(make-pitch -1 6 2 )) ) -\version "1.5.49" +\version "1.5.68" diff --git a/ly/svenska.ly b/ly/svenska.ly index c756324d05..2476e46022 100644 --- a/ly/svenska.ly +++ b/ly/svenska.ly @@ -40,4 +40,4 @@ (hiss . ,(make-pitch -1 6 1 )) (hississ . ,(make-pitch -1 6 2 )) ) -\version "1.5.49" +\version "1.5.68" diff --git a/mf/GNUmakefile b/mf/GNUmakefile index 13e34c1fb5..0144f77770 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -93,5 +93,5 @@ pfa: $(PFA_FILES) # needed for web documentation $(outdir)/cmbxti8.pfa: - $(PKTRACE) -I $(outdir)/ --pfa --simplify --keep-trying cmbxti8 + $(MFTRACE) -I $(outdir)/ --pfa --simplify --keep-trying cmbxti8 mv cmbxti8.pfa $(outdir)/ diff --git a/mf/parmesan-timesig.mf b/mf/parmesan-timesig.mf index 7e521a81ed..2e077f4d2a 100644 --- a/mf/parmesan-timesig.mf +++ b/mf/parmesan-timesig.mf @@ -11,11 +11,11 @@ fet_begingroup ("timesig") path threequartercircle; threequartercircle = halfcircle & quartercircle rotated 180; -save Cdiameter,Cthickness; +save Cdiameter, Cthickness, Chairpin; Cdiameter# := 3/2 staff_space#; Cthickness# := 2 stafflinethickness#; -define_pixels(Cdiameter,Cthickness); - +Chairpin# := 0.5 stafflinethickness#; +define_pixels(Cdiameter, Cthickness, Chairpin); %%%%%%%% % @@ -26,118 +26,204 @@ define_pixels(Cdiameter,Cthickness); % % +def draw_nail (expr bottom_left, top_right) = + save round; + round = floor min(blot_diameter, + xpart (top_right-bottom_left), + ypart (top_right-bottom_left)); + + pickup pencircle scaled round; + + begingroup; + save x,y; + z2+(round/2,round/2) = top_right + (Cthickness/2, 0); + z4-(round/2,round/2) = bottom_left; + y3 = y2; + y4 = y1; + x2 = x1 + Cthickness/2; + x2 - x1 = x4 - x3; + x5 = x1; + x6 = x4; + y5 = y6 = y2 - 2Cthickness; + + pickup pencircle scaled round; + fill bot z1 .. rt z1 --- rt z5 .. rt z2 .. top z2 --- + top z3 .. lft z3 .. lft z6 --- lft z4 .. bot z4 --- + cycle; + endgroup; + +enddef; + +def mens_timesig (expr verbose_name, internal_name, mudela_name, + full_circle, reverse_circle, slashed, dotted) = + + fet_beginchar(verbose_name, internal_name, mudela_name) + if slashed: + set_char_box(.5 Cdiameter# + staff_space#, + .5 Cdiameter# + staff_space#, + staff_space#, + staff_space#); + if (full_circle or dotted): + draw_nail((-Cthickness/2, -1.5d), (Cthickness/2, 1.5h)); + else: + draw_nail((-Cthickness, -1.5d), (0, 1.5h)); + fi; + else: + set_char_box(.5 Cdiameter# + staff_space#, + .5 Cdiameter# + staff_space#, + .5 Cdiameter#, + .5 Cdiameter#); + fi; + pickup pencircle xscaled Cthickness yscaled Chairpin rotated 0; + if full_circle: + draw fullcircle scaled Cdiameter; + elseif reverse_circle: + draw threequartercircle rotated 225 scaled Cdiameter; + else: + draw threequartercircle rotated 45 scaled Cdiameter; + fi; + if dotted: + pickup pencircle scaled 4 stafflinethickness; + draw (0,0); + fi; + fet_endchar; +enddef; + %% tempus imperfectum cum prolatione imperfecta -fet_beginchar ("Mensural 4/4 meter", "old4/4", "oldfourfourmeter") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 45 scaled Cdiameter; -fet_endchar; +mens_timesig ("Mensural 4/4 meter", "mensural4/4", "mensuralfourfourmeter", + false, false, false, false); %% tempus imperfectum cum prolatione imperfecta proportio dupla -fet_beginchar ("Mensural 2/2 meter", "old2/2", "oldallabreve") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - staff_space#, staff_space#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 45 scaled Cdiameter; - draw_block((-Cthickness, -d), (0, h)); -fet_endchar; +mens_timesig ("Mensural 2/2 meter", "mensural2/2", "mensuralallabreve", + false, false, true, false); %% tempus perfectum cum prolatione imperfecta -fet_beginchar ("Mensural 3/2 meter", "old3/2", "oldthreetwometer") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw fullcircle scaled Cdiameter; -fet_endchar; +mens_timesig ("Mensural 3/2 meter", "mensural3/2", "mensuralthreetwometer", + true, false, false, false); %% tempus imperfectum cum prolatione perfecta -fet_beginchar ("Mensural 6/4 meter", "old6/4", "oldsixfourmeter") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 45 scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); -fet_endchar; +mens_timesig ("Mensural 6/4 meter", "mensural6/4", "mensuralsixfourmeter", + false, false, false, true); %% tempus perfectum cum prolatione perfecta -fet_beginchar ("Mensural 9/4 meter", "old9/4", "oldninefourmeter") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw fullcircle scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); -fet_endchar; +mens_timesig ("Mensural 9/4 meter", "mensural9/4", "mensuralninefourmeter", + true, false, false, true); %% tempus perfectum cum prolatione imperfecta proportio dupla -fet_beginchar ("Mensural 3/4 meter", "old3/4", "oldthreefourmeter") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - staff_space#, staff_space#); - - pickup pencircle scaled Cthickness; - draw fullcircle scaled Cdiameter; - draw_block((-Cthickness/2, -d), (Cthickness/2, h)); -fet_endchar; +mens_timesig ("Mensural 3/4 meter", "mensural3/4", "mensuralthreefourmeter", + true, false, true, false); %% tempus imperfectum cum prolatione perfecta proportio dupla -fet_beginchar ("Mensural 6/8 meter", "old6/8", "oldsixeightmeter") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - staff_space#, staff_space#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 45 scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); - draw_block((-Cthickness/2, -d), (Cthickness/2, h)); -fet_endchar; +mens_timesig ("Mensural 6/8 meter", "mensural6/8", "mensuralsixeightmeter", + false, false, true, true); %% tempus perfectum cum prolatione perfecta proportio dupla -fet_beginchar ("Mensural 9/8 meter", "old9/8", "oldnineeight") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - staff_space#, staff_space#); +mens_timesig ("Mensural 9/8 meter", "mensural9/8", "mensuralnineeight", + true, false, true, true); - pickup pencircle scaled Cthickness; - draw fullcircle scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); - draw_block((-Cthickness/2, -d), (Cthickness/2, h)); -fet_endchar; - %% tempus imperfectum cum prolatione imperfecta diminutio simplex -fet_beginchar ("Mensural 4/8 meter", "old4/8", "oldfoureightmeter") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 225 scaled Cdiameter; -fet_endchar; +mens_timesig ("Mensural 4/8 meter", "mensural4/8", "mensuralfoureightmeter", + false, true, false, false); %% tempus imperfectum cum prolatione perfecta diminutio simplex -fet_beginchar ("Mensural 6/8 meter", "old6/8alt", "oldsixeightmeteralt") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - .5 Cdiameter#, .5 Cdiameter#); - - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 225 scaled Cdiameter; - pickup pencircle scaled 4 stafflinethickness; - draw (0,0); -fet_endchar; +mens_timesig ("Mensural 6/8 meter", "mensural6/8alt", "mensuralsixeightmeteralt", + false, true, false, true); %% tempus imperfectum cum prolatione imperfecta diminutio duplex -fet_beginchar ("Mensural 2/4 meter", "old2/4", "oldtwofourmeter") - set_char_box(.5 Cdiameter# + staff_space#, .5 Cdiameter# + staff_space#, - staff_space#, staff_space#); +mens_timesig ("Mensural 2/4 meter", "mensural2/4", "mensuraltwofourmeter", + false, true, true, false); + +%%%%%%%% +% +% +% +% NEO-MENSURAL NOTATION +% +% +% + +save neo_Cdiameter, neo_Cthickness; +neo_Cdiameter# := 3/2 staff_space#; +neo_Cthickness# := 2 stafflinethickness#; +define_pixels(neo_Cdiameter, neo_Cthickness); + +def neo_mens_timesig (expr verbose_name, internal_name, mudela_name, + full_circle, reverse_circle, slashed, dotted) = + + fet_beginchar(verbose_name, internal_name, mudela_name) + if slashed: + set_char_box(.5 neo_Cdiameter# + staff_space#, + .5 neo_Cdiameter# + staff_space#, + staff_space#, + staff_space#); + if (full_circle or dotted): + draw_block((-neo_Cthickness/2, -d), (neo_Cthickness/2, h)); + else: + draw_block((-neo_Cthickness, -d), (0, h)); + fi; + else: + set_char_box(.5 neo_Cdiameter# + staff_space#, + .5 neo_Cdiameter# + staff_space#, + .5 neo_Cdiameter#, + .5 neo_Cdiameter#); + fi; + pickup pencircle scaled neo_Cthickness; + if full_circle: + draw fullcircle scaled neo_Cdiameter; + elseif reverse_circle: + draw threequartercircle rotated 225 scaled neo_Cdiameter; + else: + draw threequartercircle rotated 45 scaled neo_Cdiameter; + fi; + if dotted: + pickup pencircle scaled 4 stafflinethickness; + draw (0,0); + fi; + fet_endchar; +enddef; + +%% tempus imperfectum cum prolatione imperfecta +neo_mens_timesig ("Mensural 4/4 meter", "neo_mensural4/4", "neomensuralfourfourmeter", + false, false, false, false); + +%% tempus imperfectum cum prolatione imperfecta proportio dupla +neo_mens_timesig ("Mensural 2/2 meter", "neo_mensural2/2", "neomensuralallabreve", + false, false, true, false); + +%% tempus perfectum cum prolatione imperfecta +neo_mens_timesig ("Mensural 3/2 meter", "neo_mensural3/2", "neomensuralthreetwometer", + true, false, false, false); + +%% tempus imperfectum cum prolatione perfecta +neo_mens_timesig ("Mensural 6/4 meter", "neo_mensural6/4", "neomensuralsixfourmeter", + false, false, false, true); + +%% tempus perfectum cum prolatione perfecta +neo_mens_timesig ("Mensural 9/4 meter", "neo_mensural9/4", "neomensuralninefourmeter", + true, false, false, true); + +%% tempus perfectum cum prolatione imperfecta proportio dupla +neo_mens_timesig ("Mensural 3/4 meter", "neo_mensural3/4", "neomensuralthreefourmeter", + true, false, true, false); + +%% tempus imperfectum cum prolatione perfecta proportio dupla +neo_mens_timesig ("Mensural 6/8 meter", "neo_mensural6/8", "neomensuralsixeightmeter", + false, false, true, true); + +%% tempus perfectum cum prolatione perfecta proportio dupla +neo_mens_timesig ("Mensural 9/8 meter", "neo_mensural9/8", "neomensuralnineeight", + true, false, true, true); - pickup pencircle scaled Cthickness; - draw threequartercircle rotated 225 scaled Cdiameter; - draw_block((-Cthickness, -d), (0, h)); -fet_endchar; +%% tempus imperfectum cum prolatione imperfecta diminutio simplex +neo_mens_timesig ("Mensural 4/8 meter", "neo_mensural4/8", "neomensuralfoureightmeter", + false, true, false, false); + +%% tempus imperfectum cum prolatione perfecta diminutio simplex +neo_mens_timesig ("Mensural 6/8 meter", "neo_mensural6/8alt", "neomensuralsixeightmeteralt", + false, true, false, true); + +%% tempus imperfectum cum prolatione imperfecta diminutio duplex +neo_mens_timesig ("Mensural 2/4 meter", "neo_mensural2/4", "neomensuraltwofourmeter", + false, true, true, false); fet_endgroup ("timesig") diff --git a/scm/grob-property-description.scm b/scm/grob-property-description.scm index 564a9bc9db..69e1b92165 100644 --- a/scm/grob-property-description.scm +++ b/scm/grob-property-description.scm @@ -175,7 +175,7 @@ mean centre distance weighted per note (grob-property-description 'elements grob-list? "list of grobs, type depending on the Grob where this is set in.") (grob-property-description 'expand-limit integer? "maximum number of measures expanded in church rests.") (grob-property-description 'extra-X-extent number-pair? "enlarge in X dimension by this much, measured in staff space.") -(grob-property-description 'extra-Y-extent number-pair? "see @code{extra-extent-Y}.") +(grob-property-description 'extra-Y-extent number-pair? "see @code{extra-Y-extent}.") (grob-property-description 'X-extent number-pair? "Store extent. internal use only. ") (grob-property-description 'Y-extent number-pair? "Store extent. internal use only. ") (grob-property-description 'extra-offset number-pair? "pair of reals @@ -287,8 +287,13 @@ The alist contains the following entries: name, interfaces. ") (grob-property-description 'minimum-distance number? "minimum distance between notes and rests.") (grob-property-description 'minimum-distances list? "list of rods (ie. (OBJ . DIST) pairs).") +<<<<<<< grob-property-description.scm +(grob-property-description 'minimum-X-extent number-pair? "minimum size in X dimension, measured in staff space.") +(grob-property-description 'minimum-Y-extent number-pair? "see @code{minimum-Y-extent}.") +======= (grob-property-description 'minimum-X-extent number-pair? "minimum size in X dimension, measured in staff space.") (grob-property-description 'minimum-Y-extent number-pair? "see @code{minimum-X-extent}.") +>>>>>>> 1.103 (grob-property-description 'minimum-length number? "try to make the Grob at least this long. diff --git a/scm/output-lib.scm b/scm/output-lib.scm index 9902e3f940..52baf2e1be 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -155,7 +155,44 @@ centered, X==1 is at the right, X == -1 is at the left." ;; this also works for easy notation. '(1.0 . 0.0) ))) - + +(define (find-timesig-symbol nom denom style) + (case style + ((mensural) + (cons (string-append + "mensural" + (number->string nom) + "/" + (number->string denom)) + "ancient")) + ((neo_mensural) + (cons (string-append + "neo_mensural" + (number->string nom) + "/" + (number->string denom)) + "ancient")) + ((numbered) + (cons (string-append + (number->string nom) + "/" + (number->string denom)) + "music")) + (else + ;; default: use "C" style when possible, otherwise return "" + (cons + (case nom + ((2) + (case denom + ((2) "C2/2") + (else ""))) + ((4) + (case denom + ((4) "C4/4") + (else ""))) + (else "")) + "music")))) + (define (string-encode-integer i) (cond ((= i 0) "o") diff --git a/stepmake/stepmake/metafont-rules.make b/stepmake/stepmake/metafont-rules.make index 888dda8a44..a04fdf158c 100644 --- a/stepmake/stepmake/metafont-rules.make +++ b/stepmake/stepmake/metafont-rules.make @@ -29,11 +29,11 @@ $(outdir)/%.$(XPM_RESOLUTION)pk: $(outdir)/%.$(XPM_RESOLUTION)gf $(outdir)/%.pfa: %.mf - pktrace -I $(outdir)/ --pfa --simplify --keep-trying $(basename $(@F)) + $(MFTRACE) -I $(outdir)/ --pfa --simplify --keep-trying $(basename $(@F)) mv $(basename $(@F)).pfa $(outdir) $(outdir)/%.pfb: %.mf - pktrace -I $(outdir)/ --pfb --simplify --keep-trying $(basename $(@F)) + $(MFTRACE) -I $(outdir)/ --pfb --simplify --keep-trying $(basename $(@F)) mv $(basename $(@F)).pfb $(outdir) #%.afm: