From 011be2ff4327ce67b6bc792bfe119367a1a13530 Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 27 Mar 2002 00:35:16 +0000 Subject: [PATCH] lilypond-1.3.121 --- CHANGES | 31 +++++ VERSION | 2 +- input/test/pedal.ly | 20 +-- lily/clef-engraver.cc | 13 +- lily/clef-item.cc | 6 +- lily/lyric-extender.cc | 6 +- lily/piano-pedal-engraver.cc | 21 ++-- ly/engraver.ly | 23 +--- ly/spanners.ly | 14 +-- ps/lily.ps | 3 +- scm/clef.scm | 12 +- scm/grob-property-description.scm | 99 +++++++-------- scm/ps.scm | 4 +- scm/tex.scm | 4 +- scm/translator-description.scm | 10 +- scm/translator-property-description.scm | 159 ++++++++++++++---------- 16 files changed, 240 insertions(+), 187 deletions(-) diff --git a/CHANGES b/CHANGES index 3a368ff587..e155a1b719 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,34 @@ + +1.3.120.jcn1 +============ + +* Bugfix Ly2dvi: reset LC_ALL and LC_LANG too. + +* Commented out dubious undocumented $(PATHSEP) from lilypond-vars.make + +* Replaced some instances of [$(outdir)/].. with $(pwd), these may +break --srcdir builds and texi2dvi. + +* Several fixes for --srcdir build, allowing build from read only media. + +* Moved make/toplevel.make.in to less unusual GNUmakefile.in + +1.3.120.uu1 +=========== + +* Ancient font update (Juergen Reuter) + +* Syntax change: paper_xxxx -> paperXxxx + +* Some documentation updates. + +* Doc-string cleanups, and completization. + +* Changed Pedal string properties: unify stop/start/stopStart +properties. Changed pedal identifier syntax. + +* bugfix: do change clefs if full-size-change is *not* set. + 1.3.120 ======= diff --git a/VERSION b/VERSION index 1d20a8cc00..1f72a9ba7b 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 -PATCH_LEVEL=120 +PATCH_LEVEL=121 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/input/test/pedal.ly b/input/test/pedal.ly index 1215159943..840947a5b0 100644 --- a/input/test/pedal.ly +++ b/input/test/pedal.ly @@ -1,12 +1,18 @@ +\header{ +texidoc = "Piano pedal symbols merge stop and start. The strings are configurable. "; +} + +\version "1.3.120"; + + \score{ \context Staff \notes\relative c'{ -c4\sustaindown d e f\sustainup g\sustaindown b c -c, [d16 \sustainup \sustaindown c c c] [e e \sustainup \sustaindown e e ] f4 \sustainup g\sustaindown b c -\property Staff.stopStartSustain = #"-P" -\property Staff.startSustain = #"P" -\property Staff.sustainPedalPadding = #10 - -c,\sustainup\sustaindown d e f \sustainup g\sustaindown b c +c4\sustainDown d e f\sustainUp g\sustainDown b c +c, [d16 \sustainUp \sustainDown c c c] [e e \sustainUp \sustainDown e e ] f4 \sustainUp g\sustainDown b c +\property Staff.pedalSustainStrings = #'("-" "-P" "P") +\property Staff.SustainPedal \override #'padding = #2 +c, \sustainUp\sustainDown d e f + \sustainUp g\sustainDown b c } \paper{ } diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index c3a2136f2a..2d6d585d54 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -180,11 +180,14 @@ Clef_engraver::create_grobs () SCM glyph = get_property ("clefGlyph"); SCM clefpos = get_property ("clefPosition"); SCM octavation = get_property ("clefOctavation"); - + SCM force_clef = get_property ("forceClef"); + if (clefpos == SCM_EOL || scm_equal_p (glyph, prev_glyph_) == SCM_BOOL_F || scm_equal_p (clefpos, prev_cpos_) == SCM_BOOL_F - || scm_equal_p (octavation, prev_octavation_) == SCM_BOOL_F) + || scm_equal_p (octavation, prev_octavation_) == SCM_BOOL_F + || to_boolean (force_clef) + ) { set_glyph(); set_central_c (glyph, clefpos, octavation); @@ -193,6 +196,12 @@ Clef_engraver::create_grobs () clef_p_->set_grob_property ("non-default", SCM_BOOL_T); } + + if (to_boolean (force_clef)) + { + Translator_group * w = daddy_trans_l_->where_defined (ly_symbol2scm ("forceClef")); + w->set_property ("forceClef", SCM_EOL); + } } void diff --git a/lily/clef-item.cc b/lily/clef-item.cc index 1cdc84a57a..79444fae9c 100644 --- a/lily/clef-item.cc +++ b/lily/clef-item.cc @@ -28,9 +28,9 @@ Clef::before_line_breaking (SCM smob) { String str = ly_scm2string (glyph); - if (to_boolean (s->get_grob_property ("non-default")) && - s->break_status_dir() != RIGHT && - to_boolean (s->get_grob_property ("full-size-change"))) + if (to_boolean (s->get_grob_property ("non-default")) + && s->break_status_dir() != RIGHT + && !to_boolean (s->get_grob_property ("full-size-change"))) { str += "_change"; s->set_grob_property ("glyph-name", ly_str02scm (str.ch_C())); diff --git a/lily/lyric-extender.cc b/lily/lyric-extender.cc index 1e5e7555fc..a56bae3fa4 100644 --- a/lily/lyric-extender.cc +++ b/lily/lyric-extender.cc @@ -25,7 +25,7 @@ Lyric_extender::brew_molecule (SCM smob) // ugh: refp Real leftext = sp->get_bound (LEFT)->extent (sp->get_bound (LEFT), X_AXIS).length (); - Real ss = 1.0; + Real sl = sp->paper_l ()->get_var ("stafflinethickness"); Real righttrim = 0.5; // default to half a space gap on the right SCM righttrim_scm = sp->get_grob_property("right-trim-amount"); @@ -36,9 +36,9 @@ Lyric_extender::brew_molecule (SCM smob) SCM space = sp->get_bound (LEFT)->get_grob_property ("word-space"); if (gh_number_p (space)) { - leftext -= gh_scm2double (space)*ss; + leftext -= gh_scm2double (space); } - Real w = sp->spanner_length () - leftext - righttrim*ss; + Real w = sp->spanner_length () - leftext - righttrim; Real h = sl * gh_scm2double (sp->get_grob_property ("height")); Molecule mol (Lookup::filledbox ( Box (Interval (0,w), Interval (0,h)))); diff --git a/lily/piano-pedal-engraver.cc b/lily/piano-pedal-engraver.cc index 9d76fb4c5d..eefb30b154 100644 --- a/lily/piano-pedal-engraver.cc +++ b/lily/piano-pedal-engraver.cc @@ -17,13 +17,6 @@ #include "staff-symbol-referencer.hh" #include "item.hh" - - - - -/** - engrave Piano pedals symbols. - */ class Piano_pedal_engraver : public Engraver { public: @@ -134,9 +127,14 @@ Piano_pedal_engraver::create_grobs () { for (Pedal_info*p = info_list_; p && p->name_; p ++) { - if (p->item_p_) + if (p->item_p_ || ! (p->req_l_drul_[STOP] || p->req_l_drul_[START])) continue; + SCM s = SCM_EOL; + SCM strings = get_property( ("pedal" + String (p->name_) + "Strings").ch_C()); + if( scm_ilength (strings) < 3) + continue; + if (p->req_l_drul_[STOP] && p->req_l_drul_[START]) { if (!p->start_req_l_) @@ -145,7 +143,7 @@ Piano_pedal_engraver::create_grobs () } else { - s = get_property (("stopStart" + String (p->name_ )).ch_C()); + s = gh_cadr (strings); } p->start_req_l_ = p->req_l_drul_[START]; } @@ -157,14 +155,14 @@ Piano_pedal_engraver::create_grobs () } else { - s = get_property (("stop" + String (p->name_ )).ch_C()); + s = gh_car (strings); } p->start_req_l_ = 0; } else if (p->req_l_drul_[START]) { p->start_req_l_ = p->req_l_drul_[START]; - s = get_property (("start" + String (p->name_ )).ch_C()); + s = gh_caddr (strings); } if (gh_string_p (s)) @@ -198,6 +196,7 @@ Piano_pedal_engraver::stop_translation_timestep () if (p->item_p_) { Side_position::add_staff_support (p->item_p_); + /* Hmm. */ diff --git a/ly/engraver.ly b/ly/engraver.ly index fca9cf8888..e3db961cee 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -386,7 +386,9 @@ ScoreContext = \translator { ("clefs-mensural1_c" . 0) ("clefs-mensural2_c" . 0) ("clefs-mensural3_c" . 0) - ("clefs-mensural_f" . 0)) + ("clefs-mensural1_f" . 4) + ("clefs-mensural2_f" . 4) + ("clefs-mensural_g" . -4)) clefGlyph = #"clefs-G" clefPosition = #-2 @@ -402,19 +404,10 @@ ScoreContext = \translator { verticalAlignmentChildCallback = #Align_interface::alignment_callback - startSustain = #"Ped." - stopSustain = #"*" - stopStartSustain = #"*Ped." - startUnaChorda = #"una chorda" - stopUnaChorda = #"tre chorde" - % should make separate lists for stopsustain and startsustain + pedalSustainStrings = #'("Ped." "*Ped." "*") + pedalUnaChordaStrings = #'("una chorda" "" "tre chorde") + pedalSostenutoStrings = #'() % FIXME - - % - % what order to print accs. We could compute this, - % but computing is more work than putting it here. - % - % Flats come first, then sharps. keyAccidentalOrder = #'( (6 . -1) (2 . -1) (5 . -1 ) (1 . -1) (4 . -1) (0 . -1) (3 . -1) (3 . 1) (0 . 1) (4 . 1) (1 . 1) (5 . 1) (2 . 1) (6 . 1) @@ -434,10 +427,6 @@ ScoreContext = \translator { \elementdescriptions #all-grob-descriptions - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % TODO: uniform naming.; - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - } OrchestralScoreContext= \translator { diff --git a/ly/spanners.ly b/ly/spanners.ly index 331f11c75f..a0e837b8ef 100644 --- a/ly/spanners.ly +++ b/ly/spanners.ly @@ -1,6 +1,4 @@ - -% 1st arg dynamic (louder/softer). 2nd arg spantype cr = \spanrequest \start "crescendo" decr = \spanrequest \start "decrescendo" rc = \spanrequest \stop "crescendo" @@ -26,14 +24,14 @@ endcresc = \spanrequest \stop "crescendo" %} % better name sustainstart/stop? -sustaindown = \spanrequest \start "Sustain" -sustainup = \spanrequest \stop "Sustain" +sustainDown = \spanrequest \start "Sustain" +sustainUp = \spanrequest \stop "Sustain" -unachorda = \spanrequest \start "UnaChorda" -trechorde = \spanrequest \stop "UnaChorda" +unaChorda = \spanrequest \start "UnaChorda" +treChorde = \spanrequest \stop "UnaChorda" -sostenutodown = \spanrequest \start "Sostenuto" -sostenutoup = \spanrequest \stop "Sostenuto" +sostenutoDown = \spanrequest \start "Sostenuto" +sostenutoUp = \spanrequest \stop "Sostenuto" %crescpoco = \property Voice.crescendoText = "cresc. poco a poco" %decresc = \property Voice.crescendoText = "decr." diff --git a/ps/lily.ps b/ps/lily.ps index b4a324105e..c94a3706f7 100644 --- a/ps/lily.ps +++ b/ps/lily.ps @@ -189,14 +189,13 @@ grestore } bind def -/draw_bracket % arch_angle arch_width arch_height bracket_width bracket_height arch_thick bracket_thick +/draw_bracket % arch_angle arch_width arch_height bracket_height arch_thick bracket_thick { % 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 diff --git a/scm/clef.scm b/scm/clef.scm index 666b5bae6e..1f90908b2e 100644 --- a/scm/clef.scm +++ b/scm/clef.scm @@ -37,7 +37,7 @@ ("hufnagel_do3" . ("clefs-hufnagel_do" 3 0)) ("hufnagel_fa1" . ("clefs-hufnagel_fa" -1 0)) ("hufnagel_fa2" . ("clefs-hufnagel_fa" 1 0)) - ("hufnagel" . ("clefs-hufnagel_do_fa" 4 0)) + ("hufnagel_do_fa" . ("clefs-hufnagel_do_fa" 4 0)) ("mensural1_c1" . ("clefs-mensural1_c" -4 0)) ("mensural1_c2" . ("clefs-mensural1_c" -2 0)) ("mensural1_c3" . ("clefs-mensural1_c" 0 0)) @@ -51,7 +51,9 @@ ("mensural3_c2" . ("clefs-mensural3_c" 0 0)) ("mensural3_c3" . ("clefs-mensural3_c" 2 0)) ("mensural3_c4" . ("clefs-mensural3_c" 4 0)) - ("mensural_f" . ("clefs-mensural_f" 2 0)) + ("mensural1_f" . ("clefs-mensural1_f" 2 0)) + ("mensural2_f" . ("clefs-mensural2_f" 2 0)) + ("mensural_g" . ("clefs-mensural_g" -2 0)) ) ) @@ -77,6 +79,12 @@ (iterator-ctor . ,Property_iterator::constructor) (value . ,(cadr e)) ) + +; ((symbol . forceClef) +; (iterator-ctor . ,Property_iterator::constructor) +; (value . #t) +; ) + ((symbol . clefPosition) (iterator-ctor . ,Property_iterator::constructor) (value . ,(caddr e)) diff --git a/scm/grob-property-description.scm b/scm/grob-property-description.scm index 6d0cd6bcb4..9d760daae4 100644 --- a/scm/grob-property-description.scm +++ b/scm/grob-property-description.scm @@ -29,19 +29,25 @@ This procedure is called (using dependency resolution) after line breaking. Retu (grob-property-description 'align-dir dir? "Which side to align? -1: left side, 0: around center of width, 1: right side") (grob-property-description 'alignment-done boolean? "boolean to administrate whether we've done the alignment already (to ensure that the process is done only once)") (grob-property-description 'all-elements list? "list of all grobs in this line. Needed for protecting grobs from GC.") -(grob-property-description 'arch-angle number? "") -(grob-property-description 'arch-height number? "") -(grob-property-description 'arch-thick number? "") -(grob-property-description 'arch-width number? "") -(grob-property-description 'arithmetic-basicspace number? "") -(grob-property-description 'arithmetic-multiplier number? "see arithmetic-basicspace") +(grob-property-description 'arch-angle number? "turning angle of the hook of a system brace" ) +(grob-property-description 'arch-height number? "height of the hook of a system brace") +(grob-property-description 'arch-thick number? "thickness of the hook of system brace") +(grob-property-description 'arch-width number? "width of the hook of a system brace") +(grob-property-description 'arithmetic-basicspace number? "see @ref{spacing-spanner-interface}") +(grob-property-description 'arithmetic-multiplier number? "see @ref{spacing-spanner-interface}") (grob-property-description 'attachment pair? "cons of symbols, '(LEFT-TYPE . RIGHT-TYPE), where both types may be alongside-stem, stem, head or loose-end") -(grob-property-description 'attachment-offset pair? "cons of offsets, '(LEFT-offset . RIGHT-offset). This offset is added to the attachments to prevent ugly slurs.") -(grob-property-description 'axes list? "list of axis numbers. Should contain only one number.") -(grob-property-description 'axes list? "list of axis (number) in which this group works") -(grob-property-description 'bar-size number? "") -(grob-property-description 'bars list? "list of barline ptrs.") -(grob-property-description 'barsize-procedure procedure? "how to compute the size of a bar line") + +(grob-property-description 'attachment-offset pair? "cons of offsets, +'(LEFT-offset . RIGHT-offset). This offset is added to the +attachments to prevent ugly slurs. [fixme: we need more documentation here]. +") + +(grob-property-description 'axes list? "list of axis numbers. + +In the case of alignment grobs, this should contain only one number.") +(grob-property-description 'bar-size number? "size of a bar line") +(grob-property-description 'bars list? "list of barline pointers.") +(grob-property-description 'barsize-procedure procedure? "Procedure that computes the size of a bar line.") (grob-property-description 'bass list? " musical-pitch, optional") (grob-property-description 'beam ly-grob? "pointer to the beam, if applicable") (grob-property-description 'beam-space-function procedure? "function returning space given multiplicity") @@ -49,7 +55,6 @@ This procedure is called (using dependency resolution) after line breaking. Retu (grob-property-description 'beam-thickness number? "thickness, measured in staffspace") (grob-property-description 'beam-thickness number? "thickness, measured in staffspace") (grob-property-description 'beam-width number? "width of the tremolo sign") -(grob-property-description 'beam-width number? "width of the tremolo sign") (grob-property-description 'beamed-lengths list? "list of stem lengths given beam multiplicity ") (grob-property-description 'beamed-minimum-lengths list? "list of minimum stem lengths given beam multiplicity") (grob-property-description 'beamed-stem-shorten number? "shorten beamed stems in forced direction") @@ -66,8 +71,7 @@ notes. 0.0 means no extra space (accidentals are ignored)") to dump between two systems. Useful for forcing pagebreaks") (grob-property-description 'bounded-by-me list? "list of spanners that have this column as start/begin point. Only columns that have grobs or act as bounds are spaced.") -(grob-property-description 'bracket-thick number? "") -(grob-property-description 'bracket-width number? "") +(grob-property-description 'bracket-thick number? "width of a system start bracket. ") (grob-property-description 'break-align-symbol symbol? "the index in the spacing table (symbol) of the to be aligned item.") (grob-property-description 'break-glyph-function procedure? "function taking glyph and break-direction, returning the glyph at a line break") (grob-property-description 'breakable boolean? "boolean indicating if this is a breakable item (clef, barline, key sig, etc.)") @@ -77,16 +81,12 @@ column as start/begin point. Only columns that have grobs or act as bounds are s be at the center of the group after aligning (when using Align_interface::center_on_element). ") -(grob-property-description 'collapse-height number? "") +(grob-property-description 'collapse-height number? "Minimum height of system start delimiter. If smaller, the delimiter is removed.") (grob-property-description 'column-space-strength number? "relative strength of space following breakable columns (eg. prefatory matter)") -(grob-property-description 'columns list? "list of paper-columns") -(grob-property-description 'columns list? " list of note-columns.") -(grob-property-description 'columns list? "list of all paper columns") +(grob-property-description 'columns list? "list of grobs, typically containing paper-columns, list of note-columns") (grob-property-description 'contains-grace boolean? "Used to widen entries for grace notes.") -(grob-property-description 'control-points list? "List of 4 offsets (number-pairs) controlling the tie shape") -(grob-property-description 'control-points list? "[internal] control points of bezier curve") +(grob-property-description 'control-points list? "List of 4 offsets (number-pairs) that form control points for the tie/slur shape") (grob-property-description 'damping integer? "amount of beam slope damping should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams ") -(grob-property-description 'damping number? "damping factor.") (grob-property-description 'dash-length number? "the length of a dash") (grob-property-description 'dash-period number? "the length of one dash + white space") (grob-property-description 'dashed number? "[FIXME: use dash-period/dash length; see text-spanner] number representing the length of the dashes.") @@ -107,33 +107,27 @@ Align_interface::center_on_element). ") (grob-property-description 'duration-log integer? "log of the duration, ie. 0=whole note, 1 = half note, etc.") (grob-property-description 'edge-height pair? "a cons that specifies the heights of the vertical egdes '(LEFT-height . RIGHT-height)") (grob-property-description 'edge-text pair? "a cons that specifies the texts to be set at the edges '(LEFT-text . RIGHT-text)") -(grob-property-description 'elements list? " -- list of items.") -(grob-property-description 'elements list? "list of grobs (NoteColumn, -generally) participating in the collision. The -@code{rest-collision} property in @code{elements} is set -to a pointer to the collision") -(grob-property-description 'elements list? "to be aligned grobs ") +(grob-property-description 'elements 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-extent-X number-pair? "enlarge in X dimension by this much, measured in staff space") (grob-property-description 'extra-extent-Y number-pair? "see @code{extra-extent-Y}") (grob-property-description 'extra-offset number-pair? "pair of reals (a cons) forcing an extra offset before outputting") -(grob-property-description 'extra-space number-pair? "pair of distances") -(grob-property-description 'extra-space number-pair? "(cons LEFT RIGHT)") +(grob-property-description 'extra-space number-pair? "pair of distances (cons LEFT RIGHT)") (grob-property-description 'extremity-offset-alist list? "an alist (attachment stem-dir*dir slur-dir*dir) -> offset. The offset adds to the centre of the notehead, or stem.") (grob-property-description 'extremity-rules list? "an alist (procedure slur dir) -> attachment to determine the attachment (see above). If procedure returns #t, attachment is used. Otherwise, the next procedure is tried.") -(grob-property-description 'flag-style string? "") -(grob-property-description 'flag-width-function procedure? "") +(grob-property-description 'flag-style string? "style for flag (hook of a stem)") +(grob-property-description 'flag-width-function procedure? "Procedure that computes the width of a half-beam (a non-connecting beam.).") (grob-property-description 'font-family symbol? "partial font definition: music roman braces dynamic math ...") (grob-property-description 'font-name symbol? "partial font definition: base name of font file FIXME: should override other partials") (grob-property-description 'font-point-size number? "partial font definition: exact font size in points FIXME: should override font-relative-size") -(grob-property-description 'font-relative-size number? "partial font definition: the relative size, 0 is style-sheet's normal size, -1 is smaller, +1 is bigger") -(grob-property-description 'font-relative-size integer? "") +(grob-property-description 'font-relative-size number? "partial font definition: the relative size compared the `normal' size. + 0 is style-sheet's normal size, -1 is smaller, +1 is bigger, -1 is smaller") (grob-property-description 'font-series symbol? "partial font definition: medium, bold") (grob-property-description 'font-shape symbol? "partial font definition: upright or italic") @@ -145,19 +139,23 @@ dynamic") collision_note_width that overides automatic collision settings. This is used by @ref{note-collision-interface}") -(grob-property-description 'fraction number-pair? "") +(grob-property-description 'fraction number-pair? "fraction of a time signature.") (grob-property-description 'full-size-change boolean? "if set, don't make a change clef smaller.") (grob-property-description 'glyph symbol? "a string determining what (style) of glyph is typeset. Valid choices depend on the function that is reading this property. ") -(grob-property-description 'gap number? "Size of a gap in a variable symbol") (grob-property-description 'glyph-name string? "a name of character within font") +(grob-property-description 'gap number? "Size of a gap in a variable symbol") + (grob-property-description 'grow-direction dir? "crescendo or decrescendo?") (grob-property-description 'hair-thickness number? "thickness, measured in stafflinethickness") -(grob-property-description 'heads pair? "pair of grob pointers, pointing to the two heads of the tie. ") -(grob-property-description 'heads list? "list of note heads") +(grob-property-description 'heads pair? "list of note heads, + +FIXME: in Tie this is a pair of grob pointers, pointing to the two heads of the tie. + +") (grob-property-description 'height number? "in staffspace ") -(grob-property-description 'height-hs number? "in halfspace. Only used by Beam.") +(grob-property-description 'height-hs number? "in halfspace. Only used by Beam.") ; Remove-me (grob-property-description 'height-quants procedure? "function of type (beam staff-line-thickness) -> list of quants. Default value: default-beam-dy-quants. ") (grob-property-description 'horizontal-shift integer? "integer that identifies ranking of note-column for horizontal shifting. This is used by @ref{note-collision-interface}") @@ -166,8 +164,11 @@ is used by @ref{note-collision-interface}") (grob-property-description 'interfaces list? "list of symbols indicating the interfaces supported by this object. Is initialized from the @code{meta} field.") (grob-property-description 'inversion list? " musical-pitch, optional") (grob-property-description 'items-worth-living list? "list of interesting items. If empty in a particular system, clear that system.") -(grob-property-description 'kern number? "amount of extra white space to add before text. This is `relative'(?) to the current alignment.") -(grob-property-description 'kern number? "space after a thick line") +(grob-property-description 'kern number? "amount of extra white space to add. + +For text, this is `relative'(?) to the current alignment. + +For barline, space after a thick line") (grob-property-description 'left-padding number? "space left of accs") (grob-property-description 'length number? "Stem length for unbeamed stems, only for user override") (grob-property-description 'lengths list? "Stem length given multiplicity of flag") @@ -182,17 +183,15 @@ is used by @ref{note-collision-interface}") (grob-property-description 'minimum-distances list? "list of rods (ie. (OBJ . DIST) pairs)") (grob-property-description 'minimum-extent-X number-pair? "minimum size in X dimension, measured in staff space") (grob-property-description 'minimum-extent-Y number-pair? "see @code{minimum-extent-Y}") -(grob-property-description 'minimum-length number? "minimum length in staffspace") - (grob-property-description 'minimum-length number? "try to make the -hyphens at least this long. Also works as a scaling parameter for the -length") +Grob at least this long. + +Also works as a scaling parameter for the length of hyphen. ") ;; FIXME. (grob-property-description 'minimum-space number-pair? "(cons LEFT RIGHT)") (grob-property-description 'minimum-space number? "minimum distance that the victim should move (after padding)") - (grob-property-description 'minimum-width number? "minimum-width of rest symbol, in staffspace") (grob-property-description 'molecule-callback procedure? "Function taking grob as argument, returning a Scheme encoded Molecule.") (grob-property-description 'new-accidentals list? "list of (pitch, accidental) pairs") @@ -200,7 +199,7 @@ length") (grob-property-description 'no-stem-extend boolean? "should stem not be extended to middle staff line?") (grob-property-description 'non-default boolean? "not set because of existence of a bar?") (grob-property-description 'note-width number? "unit for horizontal translation, measured in staff-space.") -(grob-property-description 'number-gap number? "") +(grob-property-description 'number-gap number? "size of the gap for the number in a tuplet.") (grob-property-description 'old-accidentals list? "list of (pitch, accidental) pairs") (grob-property-description 'origin ly-input-location? "location in input file of the definition") (grob-property-description 'outer-stem-length-limit number? "catch @@ -208,12 +207,11 @@ suspect beam slopes, set slope to zero if outer stem is lengthened more than this (in staffspace)") (grob-property-description 'padding number? "add this much extra space between objects that are next to each other") - (grob-property-description 'parallel-beam boolean? "internal: true if there is a beam just as wide as the bracket ") (grob-property-description 'pitches list? "list of musical-pitch") (grob-property-description 'raise number? "height for text to be raised (a negative value lowers the text") (grob-property-description 'right-padding number? "space right of accs") -(grob-property-description 'right-trim-amount number? "") +(grob-property-description 'right-trim-amount number? "shortening of the lyric extender on the right") (grob-property-description 'script-priority number? "A sorting key that determines in what order a script is within a stack of scripts") (grob-property-description 'self-alignment-X number? "real number: -1 = left aligned, 0 = center, 1 right-aligned in X direction. @@ -236,7 +234,6 @@ itself. Return value is ignored") (grob-property-description 'stacking-dir dir? "stack contents of grobs in which direction ?") (grob-property-description 'staff-space number? "Amount of line leading relative to global staffspace") (grob-property-description 'staffline-clearance number? "don't get closer than this to stafflines.") -(grob-property-description 'stem ly-grob? "pointer to the stem object.") (grob-property-description 'stem ly-grob? "pointer to Stem object") (grob-property-description 'stem-centered boolean? "Center stems on note heads. Useful for mensural notation") (grob-property-description 'stem-end-position number? "Where does the stem end (the end is opposite to the support-head") @@ -319,4 +316,4 @@ function of type (beam multiplicity dy staff-line-thickness) -> real. Default v (grob-property-description 'x-gap number? "horizontal gap between notehead and tie") (grob-property-description 'y-free number? "minimal vertical gap between slur and noteheads or stems") (grob-property-description 'y-position number? "position of left edge") -(grob-property-description 'y-position-hs number? "in half space, position of left edge. Only used by Beam.") +(grob-property-description 'y-position-hs number? "in half space, position of left edge. Only used by Beam.") ;FXIME diff --git a/scm/ps.scm b/scm/ps.scm index be85c4c373..fee2173983 100644 --- a/scm/ps.scm +++ b/scm/ps.scm @@ -60,9 +60,9 @@ (define (comment s) (string-append "% " s)) - (define (bracket arch_angle arch_width arch_height width height arch_thick thick) + (define (bracket arch_angle arch_width arch_height height arch_thick thick) (string-append - (numbers->string (list arch_angle arch_width arch_height width height arch_thick thick)) " draw_bracket" )) + (numbers->string (list arch_angle arch_width arch_height height arch_thick thick)) " draw_bracket" )) (define (char i) (invoke-char " show" i)) diff --git a/scm/tex.scm b/scm/tex.scm index fb3212d412..0cf48cd80d 100644 --- a/scm/tex.scm +++ b/scm/tex.scm @@ -37,8 +37,8 @@ (define (beam width slope thick) (embedded-ps ((ps-scm 'beam) width slope thick))) - (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 (bracket arch_angle arch_width arch_height height arch_thick thick) + (embedded-ps ((ps-scm 'bracket) arch_angle arch_width arch_height height arch_thick thick))) (define (dashed-slur thick dash l) (embedded-ps ((ps-scm 'dashed-slur) thick dash l))) diff --git a/scm/translator-description.scm b/scm/translator-description.scm index 77a42612e8..32c66834b7 100644 --- a/scm/translator-description.scm +++ b/scm/translator-description.scm @@ -455,15 +455,9 @@ to any Graphic objects that satisfies the predicate." 'Piano_pedal_engraver (engraver-description "Piano_pedal_engraver" - "engrave Piano pedals symbols." + "Engrave piano pedal symbols." '(SostenutoPedal SustainPedal UnaChordaPedal) - '( - - startSustain - stopSustain - stopStartSustain - startUnaChorda - stopUnaChorda + '(pedalSostenutoStrings pedalSustainStrings pedalUnaChordaStrings ))) (cons diff --git a/scm/translator-property-description.scm b/scm/translator-property-description.scm index 866a237ef7..4c5b2199ca 100644 --- a/scm/translator-property-description.scm +++ b/scm/translator-property-description.scm @@ -29,7 +29,7 @@ than can be plugged into the backend directly. See the init file deprecated. ") (translator-property-description 'aDueText string? "text for begin of a due") -(translator-property-description 'associatedVoice string? "") +(translator-property-description 'associatedVoice string? "Name of the Voice that has the melody for this LyricsVoice.") (translator-property-description 'autoBeamSettings list? " Specifies when automatically generated beams should begin and end. The elements have the format: @@ -60,6 +60,7 @@ The head of the list: ) @end example") + (translator-property-description 'automaticPhrasing boolean? " If set, the @ref{Lyric_phrasing_engraver} will match note heads of context called Voice X to syllables from LyricsVoice called @@ -71,6 +72,7 @@ file @file{lyrics-multi-stanza.ly}. set, \addlyrics will assume that beams, slurs and ties signal melismata, and align lyrics accordingly. ") + (translator-property-description 'barAlways boolean? " If set to true a bar line is drawn after each note. ") (translator-property-description 'barCheckNoSynchronize boolean? "If set, don't reset measurePosition when finding a bbarcheck. This @@ -82,7 +84,6 @@ makes bar-checks for polyphonic music easier.") count if this property is set to zero. ") (translator-property-description 'beamMelismaBusy boolean? "Signal if a beam is set when automaticMelismata is set") -(translator-property-description 'beamMelismaBusy boolean? "") (translator-property-description 'breakAlignOrder list? "Defines the order in which prefatory matter (clefs, key signatures) appears, eg. this puts the key signatures after the bar lines: @@ -113,19 +114,18 @@ this much extra octavation. Values of 7 and -7 are common.") set, connect all arpeggios that are found. In this way, you can make arpeggios that cross staffs. ") -(translator-property-description 'createKeyOnClefChange boolean? "") -(translator-property-description 'currentBarNumber integer? "this is read to determine - the number to put on the bar ") +(translator-property-description 'createKeyOnClefChange boolean? "Print a key signature whenever the clef is changed.") (translator-property-description 'currentBarNumber integer? "Contains the current barnumber. This property is incremented at every barline. ") -(translator-property-description 'currentCommandColumn ly-grob? "") -(translator-property-description 'currentMusicalColumn ly-grob? "") +(translator-property-description 'currentCommandColumn ly-grob? "Grob that is X-parent to all current breakable (clef, key signature, etc.) items.") +(translator-property-description 'currentMusicalColumn ly-grob? "Grob that is X-parent to all non-breakable items (note heads, lyrics, etc.).") (translator-property-description 'defaultBarType string? "Sets the default type of bar line. Available bar types: [FIXME] ") (translator-property-description 'drarnChords boolean? "") (translator-property-description 'explicitClefVisibility procedure? "visibility-lambda function for clef changes.") -(translator-property-description 'explicitKeySignatureVisibility procedure? "") +(translator-property-description 'explicitKeySignatureVisibility procedure? "visibility-lambda function for explicit Key changes.") +(translator-property-description 'forceClef boolean? "Show clef symbol, even if it hasn't changed.") (translator-property-description 'forgetAccidentals boolean? "do not set localKeySignature when a note alterated differently from localKeySignature is found. @@ -144,22 +144,34 @@ remembered for the duration of a measure. property is used to label subsequent lines. If the @code{midiInstrument} property is not set, then @code{instrument} is used to determine the instrument for MIDI output.") -(translator-property-description 'keyAccidentalOrder list? "") +(translator-property-description 'keyAccidentalOrder list? " +Alist that defines in what order alterations should be printed. +The format is (NAME . ALTER), where NAME is from 0 .. 6 and ALTER from -1, 1. +") (translator-property-description 'keyOctaviation boolean? "") -(translator-property-description 'keySignature list? "") -(translator-property-description 'keySignature list? "") -(translator-property-description 'localKeySignature list? "the key signature at this point in the measure") -(translator-property-description 'measureLength moment? " How long does one measure in the current time signature last?") -(translator-property-description 'measurePosition moment? " - How much of the current measure (measured in whole notes) have we had? - -Set this manually to create incomplete measures (anacrusis, upbeat), eg. at the start of -the music. +(translator-property-description 'keySignature list? "The current key signature. This is an alist containing (NAME . ALTER) pairs, where NAME is from 0.. 6 and ALTER from -2,-1,0,1,2 ") + +(translator-property-description 'localKeySignature list? "the key +signature at this point in the measure. The format is an alist with +entries of the form (NAME . ALTER) +or ((OCTAVE . NAME) . ALTER), +where NAME is from 0.. 6 and ALTER from -2,-1,0,1,2" +) + +(translator-property-description 'measureLength moment? "Length of one +measure in the current time signature last?") +(translator-property-description 'measurePosition moment? " How much +of the current measure (measured in whole notes) have we had. This +can be set manually to create incomplete measures (anacrusis, upbeat), +the start of the music. ") -(translator-property-description 'melismaBusy boolean? "") -(translator-property-description 'melismaEngraverBusy boolean? "") -(translator-property-description 'midiInstrument string? "") -(translator-property-description 'noAutoBeaming boolean? " If set to true then beams are not generated automatically. +(translator-property-description 'melismaBusy boolean? "Signifies +whether a melisma is active. This can be used to signal melismas on +top of those automatically detected. ") +(translator-property-description 'melismaEngraverBusy boolean? "See @ref{melismaBusy}. This is set automatically.") +(translator-property-description 'midiInstrument string? "Name of the +MIDI instrument to use ") +(translator-property-description 'noAutoBeaming boolean? "If set to true then beams are not generated automatically. ") (translator-property-description 'noResetKey boolean? "Do not reset local key to the value of keySignature at the start of a measure, @@ -170,76 +182,81 @@ printed only once and are in effect until overridden, possibly many measures later. ") (translator-property-description 'oneBeat moment? " How long does one beat in the current time signature last?") +(translator-property-description 'pedalSustainStrings list? "List of string to print for sustain-pedal. Format is + (UP UPDOWN DOWN), where each of the three is the string to print when +this is done with the pedal.") +(translator-property-description 'pedalUnaChordaStrings string? "see pedalSustainStrings.") +(translator-property-description 'pedalSostenutoStrings string? "see pedalSustainStrings.") + (translator-property-description 'phrasingPunctuation string? "") (translator-property-description 'rehearsalMark number-or-string? "") (translator-property-description 'repeatCommands list? "This property is read to find any command of the form (volta . X), where X is a string or #f") (translator-property-description 'repeatCommands list? "") (translator-property-description 'scriptDefinitions list? " -Description of scripts to use. (fixme) +Description of scripts. This is used by Script_engraver for typesetting note-super/subscripts. See @file{scm/script.scm} for more information ") -(translator-property-description 'scriptHorizontal boolean? " Put scripts left or right of note heads. Support for this is - limited. Accidentals will collide with scripts. - + +(translator-property-description 'scriptHorizontal boolean? " Put +scripts left or right of note heads. Support for this is limited. +Accidentals will collide with scripts. ") -(translator-property-description 'scriptHorizontal boolean? " Put scripts left or right of note heads. Support for this is - limited. Accidentals will collide with scripts. - +(translator-property-description 'scriptHorizontal boolean? " Put +scripts left or right of note heads. Support for this is limited. +Accidentals will collide with scripts. ") -(translator-property-description 'skipBars boolean? " Set to true to skip the empty bars that are produced by - multimeasure notes and rests. These bars will not appear on the - printed output. If not set (the default) multimeasure - notes and rests expand into their full length, printing the appropriate - number of empty bars so that synchronization with other voices is - preserved. - -@c my @vebatim patch would help... + +(translator-property-description 'skipBars boolean? " Set to true to +skip the empty bars that are produced by multimeasure notes and rests. +These bars will not appear on the printed output. If not set (the +default) multimeasure notes and rests expand into their full length, +printing the appropriate number of empty bars so that synchronization +with other voices is preserved. + + @example @@lilypond[fragment,verbatim,center] -r1 r1*3 R1*3property Score.skipBars=1 r1*3 R1*3 +r1 r1*3 R1*3 \\\\property Score.skipBars= ##t r1*3 R1*3 @@end lilypond @end example ") -(translator-property-description 'slurBeginAttachment symbol? "translates to the car of grob-property 'attachment.") -(translator-property-description 'slurEndAttachment symbol? "translates to the cdr of grob-property 'attachment.") -(translator-property-description 'slurMelismaBusy boolean? "") +(translator-property-description 'slurBeginAttachment symbol? +"translates to the car of grob-property 'attachment of NoteColumn. See +@ref{Grob Slur}.") + +(translator-property-description 'slurEndAttachment symbol? "translates to the cdr of grob-property 'attachment of NoteColumn. See @ref{Grob Slur}.") (translator-property-description 'slurMelismaBusy boolean? "Signal a slur if automaticMelismata is set") -(translator-property-description 'solo boolean? "set if solo is detected") -(translator-property-description 'soloADue boolean? "set Solo/A due texts?") -(translator-property-description 'soloIIText string? "text for begin of solo for voice ``two''") -(translator-property-description 'soloText string? "text for begin of solo") +(translator-property-description 'solo boolean? "set if solo is detected by the part combiner") +(translator-property-description 'soloADue boolean? "set Solo/A due texts in the part combiner?") +(translator-property-description 'soloIIText string? "text for begin of solo for voice ``two'' when part-combining") +(translator-property-description 'soloText string? "text for begin of solo when part-combining") (translator-property-description 'sparseTies boolean? "only create one tie per chord.") -(translator-property-description 'split-interval number-pair? "always split into two voices for contained intervals") +(translator-property-description 'split-interval number-pair? "always split into two voices for contained intervals when part-combining") (translator-property-description 'squashedPosition integer? " Vertical position of -squashing.") +squashing for Pitch_squash_engraver.") (translator-property-description 'staffsFound list? "list of all staff-symbols found.") -(translator-property-description 'staffsFound list? "") -(translator-property-description 'stanza string? "Stanza `number' to print at start of a verse") -(translator-property-description 'startSustain string? "") -(translator-property-description 'startUnaChorda string? "") +(translator-property-description 'stanza string? "Stanza `number' to print at start of a verse. Use in LyricsVoice context.") + + (translator-property-description 'stemLeftBeamCount integer? " Specify the number of beams to draw on the left side of the next note. Overrides automatic beaming. The value is only used once, and then it is erased. ") (translator-property-description 'stemRightBeamCount integer? "idem, for the right side") -(translator-property-description 'stopStartSustain string? "") -(translator-property-description 'stopSustain string? "") -(translator-property-description 'stopUnaChorda string? "") -(translator-property-description 'stz string? "") +(translator-property-description 'stz string? "Abbreviated form for a stanza, see also Stanza property.") (translator-property-description 'textNonEmpty boolean? " If set to true then text placed above or below the staff is not assumed to -have zero width. @code{fatText} and @code{emptyText} are predefined +have zero width. @code{\fatText} and @code{\emptyText} are predefined settings. ") -(translator-property-description 'tieMelismaBusy boolean? "") (translator-property-description 'tieMelismaBusy boolean? "Signal ties when automaticMelismata is set") (translator-property-description 'timeSignatureFraction number-pair? " pair of numbers, signifying the time signature. For example #'(4 . 4) is a 4/4time signature.") (translator-property-description 'timing boolean? " Keep administration of measure length, position, bar number, etc? Switch off for cadenzas.") -(translator-property-description 'tremoloFlags integer? "") +(translator-property-description 'tremoloFlags integer? "Number of tremolo flags to add if none is specified.") (translator-property-description 'tupletInvisible boolean? " If set to true, tuplet bracket creation is switched off entirely. This has the same effect as setting both @@ -260,9 +277,9 @@ context Voice imes 2/3 @{ @@end lilypond @end example ") -(translator-property-description 'unirhythm boolean? "set if unirhythm is detected") -(translator-property-description 'unisilence boolean? "set if unisilence is detected") -(translator-property-description 'unison boolean? "set if unisono is detected ") +(translator-property-description 'unirhythm boolean? "set if unirhythm is detected by the part combiner.") +(translator-property-description 'unisilence boolean? "set if unisilence is detected by the part combiner.") +(translator-property-description 'unison boolean? "set if unisono is detected by the part combiner. ") (translator-property-description 'verticalAlignmentChildCallback procedure? "what callback to add to children of a vertical alignment. It determines what alignment procedure is used on the alignment @@ -277,15 +294,21 @@ have odd effects if the specified duration is longer than the music given in an @code{\\alternative}. ") (translator-property-description 'weAreGraceContext boolean? "") -(translator-property-description 'whichBar string? "This property is read to determine what type of barline to create. +(translator-property-description 'whichBar string? + "This property is read to determine what type of barline to create. + Example: @example \\property Staff.whichBar = \"|:\" @end example -will create a start-repeat bar in this staff only + +This will create a start-repeat bar in this staff only. + +If not set explicitly (by property or @code{\bar}), this is set +according to values of @code{defaultBarType}, @code{barAlways}, +@code{barNonAuto} and @code{measurePosition}. + +Legal values are described in @ref{(lilypond-internals)bar-line-interface}. + ") -(translator-property-description 'whichBar string? "") -(translator-property-description 'whichBar string? "if not set -explicitly (by property or bar), this is set according to values of -defaultBarType, barAlways, barNonAuto and measurePosition. - ") + -- 2.39.5