]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.99
authorfred <fred>
Wed, 27 Mar 2002 00:01:37 +0000 (00:01 +0000)
committerfred <fred>
Wed, 27 Mar 2002 00:01:37 +0000 (00:01 +0000)
CHANGES
Documentation/user/glossary.tely
scm/element-descriptions.scm
scm/generate-documentation.scm
scm/interface.scm

diff --git a/CHANGES b/CHANGES
index 374d366791f7d6b3e6582cac247a79e7badb7e5c..e5751612536b950241cee0770d538350476a5cab 100644 (file)
--- 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
 ======
 
index 4d1ad3a606d1af9845b28f6713f4799b7062cffa..484f9fa621205c48f39dd44cee97709e83143693 100644 (file)
@@ -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
index dedecbf7a17ffcc7fb958818e158d260aa6daf5b..4e88fcdf2878e1a2ed56dd1623d6e11ec7d5fe5c 100644 (file)
@@ -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))
        ))
 
                 (style-to-font-name . ,style-to-font-name)
                 (markup-to-properties . ,markup-to-properties)
                (self-alignment-Y . 0)
-
                (meta . ,(element-description "DynamicText" text-interface ))
        ))
        
        
        (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))
        ))
 
                (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))
        ))
        
                (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))
        ))
                (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 ))
        ))
        
                 (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))
                (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)
        
        (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))
         ))
        
        (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))
                (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))
        ))
 
                 (,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)
                (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)
                 (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)
index 4868dfa3a026e213663c085012ce751607d7a0d8..a2f445ac783894d5ad2329a7d69fca7c3ae90165 100644 (file)
 ;
 ; 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?"))
   )
 
 (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))
    ))
 
 ; (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)
index e8d62d020b1be88da84e01dbeca157fab15d2186..5e79f3d764059e36c5b7bfa0c8701534cd52cfa8 100644 (file)
   )
 
 
-(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 <code> X-offset-callbacks</code>")
     (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 <code> X-extent-callback </code>")
-    (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 <code>meta</code> 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. <p> 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:
+<p>
+
+TEXT : STRING | (MARKUP SENTENCE)<br>
+MARKUP: PROPERTY | ABBREV<br>
+SENTENCE: TEXT | SENTENCE TEXT<br>
+PROPERTY: (key . value)<br>
+ABBREV: rows lines roman music bold italic named super sub text, or any font-style
+<p>
+
+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.
+<p>
+
+The following abbreviations are currently defined:
+<dl>
+<dt>rows<dd> horizontal mode: set all text on one line (default)
+<dt>lines<dd> vertical mode: set every text on new line
+<dt>roman<dd> select roman font
+<dt>music<dd> select feta font
+<dt>bold<dd> select bold series
+<dt>italic<dd> select italic shape
+<dt>named<dd> lookup by character name
+<dt>text<dd> plain text lookup (by character value)
+<dt>super<dd> superscript
+<dt>sub<dd> subscript
+<dt> any font-style<dd> finger volta timesig mmrest mark script large Large dynamic
+</dl>
+" )
+    (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