From: fred Date: Wed, 27 Mar 2002 00:01:37 +0000 (+0000) Subject: lilypond-1.3.99 X-Git-Tag: release/1.5.59~1198 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=2a4508601f5d1f6828f70d274484e11a1e2c4ba3;p=lilypond.git lilypond-1.3.99 --- diff --git a/CHANGES b/CHANGES index 374d366791..e575161253 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,42 @@ +1.3.98.jcn2 +=========== + +* Renamed all occurrences of font-size to font-relative-size + +* Renamed all occurrences of font-point to font-point-size + +* Fixed interface.scm descriptions to use symbols iso strings + +* Fixes for chord names, and added jazz style (James Hammons) + +* Some font-size fixes. + +* Added dynamics font in all staff-sizes. + +* Quick fix for regtest. + +1.3.98.hwn2 +=========== + +* Removed all paper vars except linewidth, indent, staffspace and +stafflinethickness. + +* Rewrote Scheme side of font-selection. + +* Bugfix: deprecate group-center-element thoroughly. + +* Bugfix: LeftEdge must also have Break_align_item::alignment_callback +X-offset-callback. + +* Add use music property "direction" for storing direction in +Script_req, use music property "text-type" for storing 'dynamic, +'finger, etc. Remove Dynamic_script_req. Resurrect fingerings. + +1.3.98.lec1 +=========== + +* fixed scale-definition.ly for greek mode names. + 1.3.98 ====== diff --git a/Documentation/user/glossary.tely b/Documentation/user/glossary.tely index 4d1ad3a606..484f9fa621 100644 --- a/Documentation/user/glossary.tely +++ b/Documentation/user/glossary.tely @@ -2738,6 +2738,10 @@ des @tab des @tab des @item +@item @strong{e-flat} [todo] + +@item + @item @strong{e} @tab mi @tab mi @tab E @tab e @tab e @tab e @tab e @item diff --git a/scm/element-descriptions.scm b/scm/element-descriptions.scm index dedecbf7a1..4e88fcdf28 100644 --- a/scm/element-descriptions.scm +++ b/scm/element-descriptions.scm @@ -41,7 +41,8 @@ (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (font-family . "roman") + (font-family . roman) + (font-relative-size . -1) (meta . ,(element-description "BarNumber" text-interface break-aligned-interface)) )) @@ -93,8 +94,9 @@ (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (font-size . "0") ;; Hmm, 0 should be the default, maybe?? - (font-family . "roman") + (font-relative-size . 0) + (font-family . roman) + (font-shape . upright) (meta . ,(element-description "ChordNames" chord-name-interface)) )) @@ -140,7 +142,6 @@ (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) (self-alignment-Y . 0) - (meta . ,(element-description "DynamicText" text-interface )) )) @@ -153,19 +154,20 @@ (LeftEdge . ( (break-align-symbol . Left_edge_item) + (X-offset-callbacks . (,Break_align_interface::alignment_callback)) (breakable . #t) (meta . ,(element-description "LeftEdge" break-aligned-interface)) )) (Fingering . ( (molecule-callback . ,Text_item::brew_molecule) + (X-offset-callbacks . (,Side_position::centered_on_parent ,Side_position::aligned_on_self)) (padding . 3.0) (self-alignment-X . 0) - (font-style . dynamic) + (font-style . finger) (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (meta . ,(element-description "Fingering" finger-interface text-script-interface text-interface side-position-interface)) )) @@ -204,7 +206,7 @@ (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (font-family . "roman") + (font-family . roman) (meta . ,(element-description "InstrumentName" text-interface break-aligned-interface)) )) @@ -248,7 +250,7 @@ (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (font-family . "roman") + (font-family . roman) (meta . ,(element-description "LyricText" lyric-syllable-interface text-interface)) )) @@ -275,7 +277,7 @@ (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (font-family . "number") + (font-style . mmrest) (meta . ,(element-description "MultiMeasureRest" multi-measure-rest-interface )) )) @@ -299,8 +301,8 @@ (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (font-family . "roman") - (font-size . "0") + (font-family . roman) + (font-relative-size . 0) (meta . ,(element-description "NoteName" note-name-interface general-element-interface)) @@ -313,7 +315,7 @@ (X-offset-callbacks . (,Side_position::centered_on_parent ,Side_position::aligned_on_self)) (Y-offset-callbacks . (,Side_position::aligned_side)) (molecule-callback . ,Text_item::brew_molecule) - (font-shape . "italic") + (font-shape . italic) (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) @@ -323,12 +325,14 @@ (PaperColumn . ( (axes 0) + (before-grace-spacing-factor . 1.2) (before-musical-spacing-factor . 0.4) (meta . ,(element-description "PaperColumn" paper-column-interface axis-group-interface spaceable-element-interface)) )) (NonMusicalPaperColumn . ( (axes 0) (before-musical-spacing-factor . 1.0) + (column-space-strength . 2.0) (meta . ,(element-description "NonMusicalPaperColumn" paper-column-interface axis-group-interface spaceable-element-interface)) )) @@ -359,7 +363,9 @@ (Slur . ,default-basic-slur-properties) (SpacingSpanner . ( (spacing-procedure . ,Spacing_spanner::set_springs) - + (stem-spacing-correction . 0.5) + (arithmetic-basicspace . 2.0) + (arithmetic-multiplier . ,(* 0.9 1.32)) ;; assume that notes at least this long are present. (maximum-duration-for-spacing . ,(make-moment 1 8)) (meta . ,(element-description "SpacingSpanner" spacing-spanner-interface)) @@ -396,7 +402,7 @@ (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (font-family . "roman") + (font-family . roman) (meta . ,(element-description "StanzaNumber" break-aligned-interface text-interface)) )) @@ -413,7 +419,7 @@ (,Side_position::aligned_side ,Side_position::centered_on_parent)) (no-spacing-rods . #t) - (font-shape . "italic") + (font-shape . italic) (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) @@ -492,12 +498,12 @@ (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (font-family . "roman") + (font-family . roman) (meta . ,(element-description "TextScript" text-script-interface text-interface side-position-interface )) )) (TextSpanner . ( (molecule-callback . ,Text_spanner::brew_molecule) - (font-shape . "italic") + (font-shape . italic) (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) @@ -543,14 +549,14 @@ (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) - (font-shape . "italic") - (meta . ,(element-description "TupletBracket" + (font-shape . italic) + (meta . ,(element-description "TupletBracket" text-interface tuplet-bracket-interface)) )) (UnaChordaPdeal . ( (molecule-callback . ,Text_item::brew_molecule) - (font-shape . "italic") + (font-shape . italic) (properties-to-font-name . ,properties-to-font-name) (style-to-font-name . ,style-to-font-name) (markup-to-properties . ,markup-to-properties) diff --git a/scm/generate-documentation.scm b/scm/generate-documentation.scm index 4868dfa3a0..a2f445ac78 100644 --- a/scm/generate-documentation.scm +++ b/scm/generate-documentation.scm @@ -73,8 +73,10 @@ ; ; generate HTML, return filename. ; -(define (document-element description) +(define (document-element iname description) + (display (string-append "Processing " iname " ... ") (current-error-port)) (let* ((metah (assoc 'meta description)) + (meta (if (pair? metah) (cdr metah) '((properties . ()) (name . "huh?")) @@ -98,7 +100,7 @@ ) (define (document-elements elts) - (let* ((files (map (lambda (x) (document-element (cdr x))) + (let* ((files (map (lambda (x) (document-element (car x) (cdr x))) elts)) (outname (string-append "backend.html")) (out (open-output-file outname)) @@ -120,7 +122,7 @@ )) ; (display (document-interface stem-interface '())) -; (define b (cdr (assoc 'Beam all-element-descriptions))) +; (define b (cdr (assoc 'Dyna all-element-descriptions))) ;(display b) ;(document-element b) diff --git a/scm/interface.scm b/scm/interface.scm index e8d62d020b..5e79f3d764 100644 --- a/scm/interface.scm +++ b/scm/interface.scm @@ -14,13 +14,6 @@ ) -(define (merge-interfaces ifs) - (list - (apply append (map car ifs)) - (apply append (map cadr ifs)) - (apply append (map caddr ifs)) - )) - (define (uniqued-alist alist acc) (if (null? alist) acc (if (assoc (caar alist) acc) @@ -31,6 +24,8 @@ (define (element-description name . interfaces) (let* ((ifs (cons general-element-interface interfaces)) (props (map caddr ifs)) + (prop-typep-pairs (map (lambda (x) (cons (car x) (cadr x))) + (apply append props))) (syms (map car ifs)) ) (list (cons 'separator "\n\n\n") ;easy printing. @@ -39,7 +34,7 @@ (cons 'interface-descriptions ifs) ; (cons 'interface-descriptions (cadr merged)) ;; description of the element itself? - (cons 'properties (apply append props)) + (cons 'properties prop-typep-pairs) ))) @@ -52,7 +47,7 @@ (property-description 'Y-offset-callbacks list? "see X-offset-callbacks") (property-description 'X-extent-callback procedure? "procedure taking an element and axis argument, returning a number-pair. The return value is the extent of the element.") (property-description 'Y-extent-callback procedure? "see X-extent-callback ") - (property-description 'font-size integer? "") + (property-description 'font-relative-size integer? "") (property-description 'extra-offset number-pair? "pair of reals (a cons) forcing an extra offset before outputting") (property-description 'interfaces list? "list of symbols indicating the interfaces supported by this object. Is initialized from the meta field.") (property-description 'dependencies list? "list of score-element pointers that indicate who to compute first for certain global passes") @@ -189,7 +184,12 @@ one end of the stem") (property-description 'side-relative-direction dir? "if set: get the direction from a different object, and multiply by this.") (property-description 'minimum-space number? "minimum distance that the victim should move (after padding)") (property-description 'padding number? "add this much extra space between victim and support") - (property-description 'self-alignment-X number? "real number: -1 = left aligned, 0 = center, 1 right-aligned in X direction. Set to an element pointer, if you want that element to be the center. ") + (property-description 'self-alignment-X number? "real number: -1 = +left aligned, 0 = center, 1 right-aligned in X direction.

Set to +an element pointer, if you want that element to be the center. In +this case, the center element should have this object as a reference +point. +") (property-description 'self-alignment-Y number? "like self-alignment-X but for Y axis") ) @@ -286,13 +286,12 @@ This procedure is called (using dependency resolution) after line breaking. Retu " Order elements top to bottom/left to right/right to left etc." (list (property-description 'stacking-dir dir? "stack contents of elements in which direction ?") - (property-description 'align-dir dir? "Which side to align? -1: left side, 0: centered around center-element if not nil, or around center of width), 1: right side") + (property-description 'align-dir dir? "Which side to align? -1: left side, 0: around center of width, 1: right side") (property-description 'threshold number-pair? "(cons MIN MAX), where MIN and MAX are dimensions in staffspace") (property-description 'alignment-done boolean? "boolean to administrate whether we've done the alignment already (to ensure that the process is done only once)") (property-description 'center-element ly-element? "element which will be at the center of the group after aligning (when using -Align_interface::center_on_element). The center element should have -this object as a reference point.") +Align_interface::center_on_element). ") (property-description 'elements list? "to be aligned elements ") (property-description 'axes list? "list of axis numbers. Should contain only one number.") ))) @@ -394,14 +393,46 @@ this object as a reference point.") 'text-interface "A scheme markup text" (list - (property-description 'text (lambda (x) (or (string? x) (list? x))) "the scheme markup text. Either a string, or a list of which the CAR is a markup '(MARKUP text text ...). MARKUP is either a CONS: an element property '(key . value) or a symbol: an abbreviation for a list of element properties. These abbreviations are currently defined: rows lines roman music bold italic named super sub text, as well as all font-style's.") - (property-description 'font-style string? "font definition for a special purpose, one of: finger volta timesig mark script large Large dynamic") - (property-description 'font-series string? "partial font definition: medium, bold") - (property-description 'font-shape string? "partial font definition: upright or italic") - (property-description 'font-family string? "partial font definition: music roman braces dynamic math ...") - (property-description 'font-name string? "partial font definition: base name of font file FIXME: should override other partials") - (property-description 'font-point string? "partial font definition: exact font size in points FIXME: should override font-size") - (property-description 'font-size string? "partial font definition: the relative size, 0 is style-sheet's normal size, -1 is smaller, +1 is bigger") + (property-description 'text (lambda (x) (or (string? x) (list? x))) " +Scheme markup text. It is defined as follows: +

+ +TEXT : STRING | (MARKUP SENTENCE)
+MARKUP: PROPERTY | ABBREV
+SENTENCE: TEXT | SENTENCE TEXT
+PROPERTY: (key . value)
+ABBREV: rows lines roman music bold italic named super sub text, or any font-style +

+ +So, TEXT is either a string, or a list of which the CAR is a MARKUP. +MARKUP is either a CONS: an element property '(key . value) or a symbol: +a predefined abbreviation for a list of element properties. +

+ +The following abbreviations are currently defined: +

+
rows
horizontal mode: set all text on one line (default) +
lines
vertical mode: set every text on new line +
roman
select roman font +
music
select feta font +
bold
select bold series +
italic
select italic shape +
named
lookup by character name +
text
plain text lookup (by character value) +
super
superscript +
sub
subscript +
any font-style
finger volta timesig mmrest mark script large Large dynamic +
+" ) + (property-description 'font-style symbol? "font definition for a special purpose, one of: finger volta timesig mark script large Large dynamic") + (property-description 'font-series symbol? "partial font definition: medium, bold") + (property-description 'font-shape symbol? "partial font definition: upright or italic") + (property-description 'font-family symbol? "partial font definition: music roman braces dynamic math ...") + (property-description 'font-name symbol? "partial font definition: base name of font file FIXME: should override other partials") + (property-description 'font-point-size number? "partial font definition: exact font size in points FIXME: should override font-relative-size") + (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") + + ;; Should move this somewhere else? (property-description 'align number? "the alignment of the text, 0 is horizontal, 1 is vertical") (property-description 'lookup symbol? "lookup method: 'value for plain text, 'name for character-name") (property-description 'raise number? "height for text to be raised (a negative value lowers the text") @@ -409,7 +440,6 @@ this object as a reference point.") (property-description 'magnify number? "the magnification factor. FIXME: doesn't work for feta fonts") ))) - (define dot-column-interface (lily-interface 'dot-column-interface @@ -537,6 +567,13 @@ syllables. The length of the hyphen line should stretch based on the 'paper-column-interface "" (list + (property-description 'column-space-strength number? "relative strength of space following breakable columns (eg. prefatory matter)") + (property-description 'before-musical-spacing-factor number? +"space before musical columns (eg. taken by accidentals) get this much +stretched when they follow a musical column, in absence of grace +notes. 0.0 means no extra space (accidentals are ignored)") + (property-description 'stem-spacing-correction number? "optical correction amount.") + (property-description 'before-grace-spacing-factor number? " stretch space this much if there are grace notes before the column") (property-description 'when moment? "when does this column happen?") (property-description 'bounded-by-me list? "list of spanners that have this column as start/begin point. Only columns that have elements or act as bounds are spaced.") @@ -594,6 +631,47 @@ to a pointer to the collision") "" (list (property-description 'maximum-duration-for-spacing moment? "space as if a duration of this type is available in this measure.") + (property-description 'arithmetic-basicspace number? "The space taken by a note is determined by the formula + + SPACE = arithmetic_multiplier * ( C + log2 (TIME) )) + +where TIME is the amount of time a note occupies. The value of C is +chosen such that the smallest space within a measure is +arithmetic_basicspace: + + C = arithmetic_basicspace - log2 (mininum (SHORTEST, 1/8)) + +The smallest space is the one following the shortest note in the +measure, or the space following a hypothetical 1/8 note. Typically +arithmetic_basicspace is set to a value so that the shortest note +takes about two noteheads of space (ie, is followed by a notehead of +space): + + 2*quartwidth = arithmetic_multiplier * ( C + log2 (SHORTEST) )) + + { using: C = arithmetic_basicspace - log2 (mininum (SHORTEST, 1/8)) } + { assuming: SHORTEST <= 1/8 } + + = arithmetic_multiplier * + ( arithmetic_basicspace - log2 (SHORTEST) + log2 (SHORTEST) ) + + = arithmetic_multiplier * arithmetic_basicspace + + { choose: arithmetic_multiplier = 1.0*quartwidth (why?)} + + = quartwidth * arithmetic_basicspace + + => + + arithmetic_basicspace = 2/1 = 2 + +If you want to space your music wider, use something like: + + arithmetic_basicspace = 4.; + +") + (property-description 'arithmetic-multiplier number? "see arithmetic-basicspace") + ))) (define staff-symbol-interface