]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/translator-description.scm
patch::: 1.5.4.jcn3
[lilypond.git] / scm / translator-description.scm
index fad552e1393b2575d3efb599196724c385053714..ef856df0487711f3ec33e5ac8c7e4230767c2e29 100644 (file)
@@ -1,11 +1,8 @@
-(define (number-or-string? x) (or (number? x) (string? x)))
+
 (define (engraver-description name description created-elts properties)
   (list name description created-elts properties)
   )
 
-(define (translator-property-description symbol type? description)
-  (list symbol type? description)
-  )
 
 (define engraver-description-alist
   (list
     'Stem_engraver
     (engraver-description
      "Stem_engraver"
-     "Create stems and single-stem tremolos"
+     "Create stems and single-stem tremolos.  It also works together with
+the beam engraver for overriding beaming."
      '(Stem StemTremolo)
-     (list
-      (translator-property-description 'tremoloFlags integer? "")
-      (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")    
+     '(tremoloFlags
+      stemLeftBeamCount
+      stemRightBeamCount    
       )))
    
    (cons
@@ -31,7 +24,7 @@ is erased.
      "Hyphen_engraver"
      "Create lyric hyphens"
      '(LyricHyphen)
-     (list
+     '(
       )))
 
    (cons
@@ -40,7 +33,7 @@ is erased.
      "Extender_engraver"
      "Create lyric extenders"
      '(LyricExtender)
-     (list
+     '(
       )))
 
    
@@ -50,7 +43,7 @@ is erased.
      "Separating_line_group_engraver"
      "Generates objects for computing spacing parameters."
      '(SeparationItem SeparatingGroupSpanner)
-     (list
+     '(
       )))
 
    (cons
@@ -59,24 +52,8 @@ is erased.
      "Axis_group_engraver"
      "Group all objects created in this context in a VerticalAxisGroup spanner."
      '(VerticalAxisGroup)
-     (list
-      (translator-property-description
-       'CONTEXTNAMEVerticalExtent number-pair? "hard coded vertical extent.
-The format is a pair of dimensions, for example, this sets the sizes
-of a staff to 10 (5+5) staffspaces high.
-
-@example
-\property Staff.StaffVerticalExtent = #(-5.0 . 5.0)
-@end example
-
- [fixme, naming]")
-      (translator-property-description
-       'CONTEXTNAMEMinimumVerticalExtent number-pair?
-       "minimum vertical extent, same format as CONTEXTNAMEVerticalExtent [fixme, naming]")
-      (translator-property-description
-       'CONTEXTNAMExtraVerticalExtent number-pair?
-       "extra vertical extent, same format
-CONTEXTNAMEMinimumVerticalExtent [fixme, naming]") )))
+     '(VerticalExtent MinimumVerticalExtent ExtraVerticalExtent)
+     ))
 
    (cons
     'Hara_kiri_engraver
@@ -98,23 +75,10 @@ interesting items (ie. note heads, lyric syllables and normal rests)"
    with note heads), this needs to be in a context higher than Tie_engraver.
    (FIXME)."
      '(Accidentals)
-     (list
-      (translator-property-description 'localKeySignature list? "the key signature at this point  in the measure")
-      (translator-property-description 'forgetAccidentals boolean? "do
-not set localKeySignature when a note alterated differently from
-localKeySignature is found.
-
-Causes accidentals to be printed at every note instead of
-remembered for the duration of a measure.
-")
-      (translator-property-description 'noResetKey boolean? "Do not
-reset local key to the value of keySignature at the start of a measure,
-as determined by measurePosition.
-
-Do not reset the key at the start of a measure.  Accidentals will be
-printed only once and are in effect until overridden, possibly many
-measures later.
-")
+     '(
+      localKeySignature
+      forgetAccidentals
+      noResetKey
       
       )))
 
@@ -125,20 +89,7 @@ measures later.
      "Volta_engraver"
      "Make volta brackets"
      '(VoltaBracket)
-     (list
-      (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 'voltaSpannerDuration moment?
-                                      "maximum duration of the volta bracket.
-
-    Set to a duration to control the size of the brackets printed by
-@code{\alternative}.  It specifies the number of whole notes duration
-to use for the brackets.  This can be used to shrink the length of
-brackets in the situation where one alternative is very large.  It may
-have odd effects if the specified duration is longer than the music
-given in an @code{\alternative}.
-")
-      )
+     '(repeatCommands voltaSpannerDuration)
      ))
 
    (cons
@@ -147,99 +98,61 @@ given in an @code{\alternative}.
      "Clef_engraver"
      "Determine and set reference point for pitches"
      '(Clef OctavateEight)
-     (list
-      (translator-property-description 'clefPosition number? "Where should the center of the symbol go?")
-      (translator-property-description 'clefGlyph string? "Name of the symbol within the music font")
-      (translator-property-description 'centralCPosition number? "Place of the central C. Usually determined by looking at clefPosition and clefGlyph.")
-      (translator-property-description 'clefOctavation integer? "Add
-this much extra octavation. Values of 7 and -7 are common.")
-      (translator-property-description 'explicitClefVisibility procedure? "visibility-lambda function for clef changes.")
-      (translator-property-description 'clefPitches list? "an alist mapping GLYPHNAME to the position of the central C for that symbol")
-
-      )))
+     '( clefPosition clefGlyph centralCPosition clefOctavation explicitClefVisibility )))
    
    (cons
     'A2_engraver
     (engraver-description
      "A2_engraver"
-     "Part combine engraver for orchestral scores."
+     "Part combine engraver for orchestral scores.
+
+The markings @emph{a2}, @emph{Solo} and @emph{Solo II}, are
+created by this engraver.  It also acts upon instructions of the part
+combiner.  Another thing that the this engraver, is forcing of stem,
+slur and tie directions, always when both threads are not identical;
+up for the musicexpr called @code{one}, down for the musicexpr called
+@code{two}.
+
+"
      '(TextScript)
-     (list
-      (translator-property-description 'combineParts boolean? "try to combine parts?")
-      (translator-property-description 'soloADue  boolean? "set Solo/A due texts?")
-      (translator-property-description 'soloText  string? "text for begin of solo")
-      (translator-property-description 'soloIIText  string? "text for begin of solo for voice ``two''")
-      (translator-property-description 'aDueText string? "text for begin of a due")
-      (translator-property-description 'split-interval number-pair? "always split into two voices for contained intervals")
-      (translator-property-description 'unison  boolean? "set if unisono is detected  ")
-      (translator-property-description 'solo  boolean? "set if solo is detected")
-      (translator-property-description 'unisilence  boolean? "set if unisilence is detected")
-      (translator-property-description 'unirhythm  boolean? "set if unirhythm is detected")
+     '(
+      combineParts
+      noDirection
+      soloADue
+      soloText
+      soloIIText
+      aDueText
+      split-interval
+      unison
+      solo
+      unisilence
+      unirhythm
       )))
 
-   (cons
-    'Align_note_column_engraver
-    (engraver-description
-     "Align_note_column_engraver"
-     "Generate object to put grace notes from left to right."
-     '(GraceAlignment)
-     (list
-      
-      (translator-property-description 'graceAlignPosition dir? "put the grace note before or after the main note?")
-      (translator-property-description 'graceAccidentalSpace number? "amount space to alot for an accidental")
-      )))
-   
    (cons
     'Arpeggio_engraver
     (engraver-description
      "Arpeggio_engraver"
      "Generate an Arpeggio from a Arpeggio_req"
      '(Arpeggio)
-     (list
+     '(
       )))
 
    (cons
-    'Auto_beam_engraver
+   'Auto_beam_engraver
     (engraver-description
      "Auto_beam_engraver"
-     "Generate beams based on measure characteristics and observed Stems.
-Uses beatLength, measureLength and measurePosition to decide when to start and stop a beam.
+     "Generate beams based on measure characteristics and observed
+Stems.  Uses beatLength, measureLength and measurePosition to decide
+when to start and stop a beam.  Overriding beaming is done through
+@ref{Stem_engraver} properties stemLeftBeamCount and
+stemRightBeamCount.
 "
      '(
        Beam)
-     (list
-      (translator-property-description 'noAutoBeaming boolean? "  If set to true then beams are not generated automatically.
-")
-      (translator-property-description 'autoBeamSettings list? "
-Specifies when automatically generated beams should begin and end.  The elements have the format:
-
-@example
-
-   function shortest-duration-in-beam time-signature
-
-where
-
-    function = begin or end
-    shortest-duration-in-beam = numerator denominator; eg: 1 16
-    time-signature = numerator denominator, eg: 4 4
-
-unspecified or wildcard entries for duration or time-signature
-are given by * *
-
-The user can override beam begin or end time by pushing a wildcard entries
-'(begin * * * *) or '(end * * * *) resp., eg:
-
-    \property Voice.autoBeamSettings \push #'(end * * * *) = #(make-moment 1 4)
-
-The head of the list:
-    '(
-     ((end * * 3 2) . ,(make-moment 1 2))
-     ((end 1 16 3 2) . ,(make-moment 1 4))
-     ((end 1 32 3 2) . ,(make-moment 1 8))
-     ...
-    )
-
-@end example"))))
+     '(
+      noAutoBeaming
+      autoBeamSettings)))
 
    (cons
     'Bar_engraver
@@ -248,15 +161,9 @@ The head of the list:
      "Create barlines. This engraver is controlled through the
 @code{whichBar} property. If it has no bar line to create, it will forbid a linebreak at this point"
      '(BarLine)
-     (list
-      (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 
-")
-      (translator-property-description 'staffsFound list? "list of all staff-symbols found.")
+     '(
+      whichBar
+      stavesFound
       )))
 
 
@@ -265,11 +172,10 @@ will create a start-repeat bar in this staff only
     (engraver-description
      "Bar_number_engraver"
      "A bar number is created whenever measurePosition is zero. It is
-put on top of all staffs, and appears only at  left side of the staff."
+put on top of all staves, and appears only at  left side of the staff."
      '(BarNumber)
-     (list
-      (translator-property-description 'currentBarNumber integer? "this is read to determine
- the number to put on the bar ")
+     '(
+      currentBarNumber
       )))
 
 
@@ -280,33 +186,19 @@ put on top of all staffs, and appears only at  left side of the staff."
      "Handles Beam_requests by engraving Beams.    If omitted, then notes will be
     printed with flags instead of beams."
      '(Beam)
-     (list
-      (translator-property-description 'beamMelismaBusy boolean? "Signal if a beam is set when automaticMelismata is set")
+     '(
+      beamMelismaBusy
       )))
 
    (cons
     'Break_align_engraver
     (engraver-description
      "Break_align_engraver"
-     "Align graphic elements with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder"
+     "Align grobs with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder"
      '(BreakAlignment BreakAlignGroup LeftEdge)
-     (list
-      (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:
-
-@example
-       \\property Score.breakAlignOrder = #'(
-         Span_bar
-         Breathing_sign
-         Clef_item
-         Staff_bar
-         Key_item
-         Time_signature
-       )
-@end example
-")
+     '(
+      breakAlignOrder
+      
       )))
 
 
@@ -316,7 +208,7 @@ key signatures after the bar lines:
      "Breathing_sign_engraver"
      ""
      '(BreathingSign)
-     (list
+     '(
       )))
 
 
@@ -327,13 +219,7 @@ key signatures after the bar lines:
      "Catch Note_req's, Tonic_reqs, Inversion_reqs, Bass_req
 and generate the appropriate chordname."
      '(ChordName)
-     (list
-      (translator-property-description 'chordInversion boolean? " Determines whether LilyPond should look for chord inversions when
-    translating from notes to chord names.  Set to 1 to find
-    inversions.  The default is 0 which does not look for
-    inversions.")
-      (translator-property-description 'drarnChords boolean? "")
-      )))
+     '(chordChanges)))
 
 
    (cons
@@ -342,7 +228,7 @@ and generate the appropriate chordname."
      "Chord_tremolo_engraver"
      "Generates beams for the \repeat X tremolo ... construct"
      '(Beam)
-     (list
+     '(
       )))
 
 
@@ -354,7 +240,7 @@ and generate the appropriate chordname."
      ""
      '(NoteCollision
        )
-     (list
+     '(
       )))
 
    (cons
@@ -363,7 +249,7 @@ and generate the appropriate chordname."
      "Custos_engraver"
      ""
      '(Custos)
-     (list
+     '(
       )))
 
 
@@ -376,7 +262,7 @@ If omitted, then dots appear on top of the notes.
 "
      '(DotColumn
        )
-     (list
+     '(
       )))
 
 
@@ -386,31 +272,14 @@ If omitted, then dots appear on top of the notes.
      "Dynamic_engraver"
      ""
      '(DynamicLineSpanner
-       DynamicText Crescendo
+       DynamicText Hairpin
        TextSpanner)
-     (list
+     '(
       )))
 
 
 
 
-   (cons
-    'Grace_position_engraver
-    (engraver-description
-     "Grace_position_engraver"
-     "Attach a grace note alignment to a note-column "
-     '()
-     (list
-      )))
-
-   (cons
-    'Grace_engraver_group
-    (engraver-description
-     "Grace_engraver_group"
-     "An engraver that creates a `shielded' context-tree with separate notion of time"
-     '()
-     (list
-      )))
 
 
    (cons
@@ -421,16 +290,9 @@ If omitted, then dots appear on top of the notes.
     @code{Staff.instrument} and @code{Staff.instr}) at the left of the
     staff."
      '(InstrumentName)
-     (list
-      (translator-property-description 'instrument string? " If @code{Instrument_name_engraver}
-@cindex Instrument_name_engraver
- is
-    added to the Staff translator, then the @code{instrument} property
-    is used to label the first line of the staff and the @code{instr}
-    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 'instr string? "see @code{instrument}")
+     '(
+      instrument
+      instr
       )))
 
    (cons
@@ -439,7 +301,7 @@ If omitted, then dots appear on top of the notes.
      "Engraver_group_engraver"
      "A group of engravers taken together"
      '()
-     (list
+     '(
       )))
 
    (cons
@@ -449,22 +311,14 @@ If omitted, then dots appear on top of the notes.
      ""
      '(KeySignature
        )
-     (list
-      
-      (translator-property-description 'keySignature list? "")
-      (translator-property-description 'keyOctaviation boolean? "")
-      (translator-property-description 'explicitKeySignatureVisibility procedure? "")
-      (translator-property-description 'createKeyOnClefChange boolean? "")
-      (translator-property-description 'keyAccidentalOrder list? "")
-      (translator-property-description 'keySignature list? "")
-      )))
+     '( keySignature explicitKeySignatureVisibility createKeyOnClefChange keyAccidentalOrder keySignature )))
 
    (cons 'Lyric_engraver
         (engraver-description
          "Lyric_engraver"
          ""
          '()
-         (list
+         '(
           ;; FIXME
           )))
 
@@ -473,12 +327,12 @@ If omitted, then dots appear on top of the notes.
          "Lyric_phrasing_engraver"
          ""
          '()
-         (list
-          (translator-property-description 'automaticPhrasing boolean? "")
-          (translator-property-description 'weAreGraceContext boolean? "")
-          (translator-property-description 'melismaEngraverBusy boolean? "")
-          (translator-property-description 'associatedVoice string? "")
-          (translator-property-description 'phrasingPunctuation string? "")
+         '(
+          automaticPhrasing
+
+          melismaEngraverBusy
+          associatedVoice
+          phrasingPunctuation
           )))
 
    (cons
@@ -487,10 +341,10 @@ If omitted, then dots appear on top of the notes.
      "Mark_engraver"
      ""
      '(RehearsalMark)
-     (list
+     '(
 
-      (translator-property-description 'rehearsalMark number-or-string? "")
-      (translator-property-description 'staffsFound list? "")
+      rehearsalMark
+      stavesFound
       )))
 
 
@@ -500,12 +354,12 @@ If omitted, then dots appear on top of the notes.
      "Melisma_engraver"
      ""
      '()
-     (list
+     '(
 
-      (translator-property-description 'melismaBusy boolean? "")
-      (translator-property-description 'slurMelismaBusy boolean? "")
-      (translator-property-description 'tieMelismaBusy boolean? "")
-      (translator-property-description 'beamMelismaBusy boolean? "")
+      melismaBusy
+      slurMelismaBusy
+      tieMelismaBusy
+      beamMelismaBusy
       )))
 
 
@@ -517,19 +371,26 @@ If omitted, then dots appear on top of the notes.
 measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest
    "
      '(MultiMeasureRest)
-     (list
+     '(currentBarNumber currentCommandColumn measurePosition
       )))
 
-
    (cons
     'Note_heads_engraver
     (engraver-description
      "Note_heads_engraver"
      "Generate one or more noteheads from Music of type Note_req."
      '(NoteHead Dots)
-     (list
+     '(
       )))
 
+   (cons
+    'Note_head_line_engraver
+    (engraver-description
+     "Note_head_line_engraver"
+     "Engrave a line between two note heads, for example a glissando.
+If followVoice is set, staff switches also generate a line."
+     '(Glissando VoiceFollower)
+     '(followVoice)))
 
    (cons
     'Note_name_engraver
@@ -537,7 +398,7 @@ measurePosition and currentBarNumber to determine what number to print over the
      "Note_name_engraver"
      ""
      '(NoteName)
-     (list
+     '(
       )))
 
 
@@ -548,7 +409,7 @@ measurePosition and currentBarNumber to determine what number to print over the
      "Interpret Music of Output_property type, and apply a function
 to any Graphic objects that satisfies the predicate."
      '()
-     (list
+     '(
       )))
 
 
@@ -556,15 +417,9 @@ to any Graphic objects that satisfies the predicate."
     'Piano_pedal_engraver
     (engraver-description
      "Piano_pedal_engraver"
-     "engrave Piano pedals symbols."
-     '(SostenutoPedal SustainPedal UnaChordaPedal)
-     (list
-      
-       (translator-property-description 'startSustain string? "")
-       (translator-property-description 'stopSustain  string? "")
-       (translator-property-description 'stopStartSustain  string? "")
-       (translator-property-description 'startUnaChorda  string? "")
-       (translator-property-description 'stopUnaChorda string? "")
+     "Engrave piano pedal symbols."
+     '(SostenutoPedal SustainPedal UnaCordaPedal)
+     '(pedalSostenutoStrings pedalSustainStrings pedalUnaCordaStrings
       )))
 
    (cons 
@@ -576,9 +431,8 @@ the locations of accidentals stay the same.
 Set the position field of all note heads to zero. This useful for
 making a single line staff that demonstrates the rhythm of a melody."
      '()
-     (list
-      (translator-property-description 'squashedPosition integer? " Vertical position of
-squashing.")
+     '(
+      squashedPosition
       )))
    
    (cons
@@ -586,20 +440,13 @@ squashing.")
     (engraver-description
      "Property_engraver"
 "This is a engraver that converts \property settings into
-back-end element-property settings. Example: Voice.stemLength will set
+back-end grob-property settings. Example: Voice.stemLength will set
 #'length in all Stem objects.
 
 Due to CPU and memory requirements, the use of this engraver is deprecated."
      '()
-     (list
-      (translator-property-description 'Generic_property_list list? "description of the conversion.
-
-Defines names and types for generic properties. These are properties
-than can be plugged into the backend directly. See the init file
-@file{generic-property.scm} for details.  For internal use only,
-deprecated.
-")
-      )))
+     '(Generic_property_list)
+      ))
 
 
    (cons
@@ -610,9 +457,9 @@ deprecated.
      "Acknowledge repeated music, and convert the contents of
 repeatCommands ainto an appropriate setting for whichBar"
      '()
-     (list
-      (translator-property-description 'repeatCommands list? "")
-      (translator-property-description 'whichBar string? "")
+     '(
+      repeatCommands
+      whichBar
  
       )))
 
@@ -623,7 +470,7 @@ repeatCommands ainto an appropriate setting for whichBar"
      "Rest_collision_engraver"
      "Handles collisions of rests."
      '(RestCollision)
-     (list
+     '(
       )))
 
 
@@ -633,7 +480,7 @@ repeatCommands ainto an appropriate setting for whichBar"
      "Rest_engraver"
      ""
       '(Rest Dots)
-   (list
+   '(
       )))
 
 
@@ -643,7 +490,7 @@ repeatCommands ainto an appropriate setting for whichBar"
      "Rhythmic_column_engraver"
      "Generates NoteColumn, an objects that groups stems, noteheads and rests."
      '(NoteColumn)
-     (list
+     '(
       )))
 
 
@@ -653,7 +500,7 @@ repeatCommands ainto an appropriate setting for whichBar"
      "Script_column_engraver"
      ""
      '(ScriptColumn)
-     (list
+     '(
       )))
 
 
@@ -664,15 +511,9 @@ repeatCommands ainto an appropriate setting for whichBar"
      "    Handles note ornaments generated by @code{\script}.  
 "
      '(Script)
-     (list
-      (translator-property-description 'scriptDefinitions list? "
-Description of scripts to use.  (fixme) 
-")
-
-      (translator-property-description 'scriptHorizontal boolean? "    Put scripts left or right of note heads.  Support for this is
-    limited.  Accidentals will collide with scripts.
-    
-")
+     '(
+      scriptDefinitions 
+      scriptHorizontal
       )))
 
    (cons
@@ -690,9 +531,9 @@ that there are no beams or notes that prevent a breakpoint.)
 
 "
      '(LineOfScore PaperColumn NonMusicalPaperColumn)
-     (list
-      (translator-property-description 'currentMusicalColumn ly-element? "")
-      (translator-property-description 'currentCommandColumn ly-element? "")
+     '(
+      currentMusicalColumn
+      currentCommandColumn
       )))
    
    (cons 'Skip_req_swallow_translator
@@ -700,7 +541,7 @@ that there are no beams or notes that prevent a breakpoint.)
          "Skip_req_swallow_translator"
          ""
          '()
-         (list
+         '(
           ;; FIXME
           )))
 
@@ -711,10 +552,10 @@ that there are no beams or notes that prevent a breakpoint.)
      "Build slurs from Slur_reqs"
      '(Slur)
 
-     (list
-      (translator-property-description 'slurBeginAttachment symbol? "translates to the car of Slur.element-property 'attachment.")
-      (translator-property-description 'slurEndAttachment symbol? "translates to the cdr of Slur.element-property 'attachment.")
-      (translator-property-description 'slurMelismaBusy boolean? "Signal a slur if automaticMelismata is set")
+     '(
+      slurBeginAttachment
+      slurEndAttachment
+      slurMelismaBusy
       )))
 
 
@@ -724,7 +565,7 @@ that there are no beams or notes that prevent a breakpoint.)
      "Spacing_engraver"
      "make a SpacingSpanner and do bookkeeping of shortest starting and playing notes  "
      '(SpacingSpanner)
-     (list
+     '(
       )))
 
 
@@ -734,11 +575,8 @@ that there are no beams or notes that prevent a breakpoint.)
      "Span_arpeggio_engraver"
      ""
      '(Arpeggio)
-     (list
-      (translator-property-description 'connectArpeggios boolean? " If
-set, connect all arpeggios that are found.  In this way, you can make
-arpeggios that cross staffs.
-")
+     '(
+      connectArpeggios
       )))
 
 
@@ -750,7 +588,7 @@ arpeggios that cross staffs.
 bar lines, and draws a single span-bar across them."
 
      '(SpanBar)
-     (list
+     '(
       )))
 
 
@@ -760,7 +598,7 @@ bar lines, and draws a single span-bar across them."
      "Staff_symbol_engraver"
      "create the constellation of five (default) staff lines."
      '(StaffSymbol)
-     (list
+     '(
       )))
 
 
@@ -771,9 +609,9 @@ bar lines, and draws a single span-bar across them."
      ""
      '(StanzaNumber
        )
-     (list
-      (translator-property-description 'stz string? "")
-      (translator-property-description 'stanza string? "Stanza `number' to print at start of a verse")
+     '(
+      stz
+      stanza
       )))
 
 
@@ -784,7 +622,7 @@ bar lines, and draws a single span-bar across them."
      "System_start_delimiter_engraver"
      "creates a SystemStartDelimiter spanner"
      '(SystemStartDelimiter)
-     (list
+     '(
       )))
 
 
@@ -794,16 +632,9 @@ bar lines, and draws a single span-bar across them."
      "Text_engraver"
      "Create text-scripts"
      '(TextScript)
-     (list
-      (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 '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
-settings.
-")
+     '(
+      scriptHorizontal
+      textNonEmpty
       )))
 
 
@@ -813,7 +644,7 @@ settings.
      "Text_spanner_engraver"
      "Create text spanner from a  Span_req "
      '(TextSpanner)
-     (list
+     '(
       )))
 
 
@@ -821,8 +652,15 @@ settings.
     'Thread_devnull_engraver
     (engraver-description
      "Thread_devnull_engraver"
-     "Kill elements whenever we are Voice called `two' and
-either unison, unisilence or soloADue is set"
+     "Kill elements whenever we are Voice called `two' and either
+unison, unisilence or soloADue is set.@footnote{On unix systems, the
+file @file{/dev/null} is special device: anything written to it is
+discarded.}. This engraver works closely together with the part
+combiner.  When the part combiner notices that two threads are
+identical, it tells the @code{Thread_devnull_engraver} to discard
+everything in the second thread.
+"
+
      '()
      '()))
 
@@ -833,11 +671,8 @@ either unison, unisilence or soloADue is set"
      "Tie_engraver"
      "Generate ties between noteheads of equal pitch."
      '(Tie TieColumn)
-     (list
-      
-
-      (translator-property-description 'sparseTies boolean? "only create one tie per chord.")
-      (translator-property-description 'tieMelismaBusy boolean? "Signal ties when automaticMelismata is set")
+     '(sparseTies
+      tieMelismaBusy
       )))
 
 
@@ -847,7 +682,7 @@ either unison, unisilence or soloADue is set"
      "Time_signature_engraver"
      "Create a TimeSignature whenever @code{timeSignatureFraction} changes"
      '(TimeSignature)
-     (list
+     '(
       )))
 
 
@@ -855,59 +690,24 @@ either unison, unisilence or soloADue is set"
     'Timing_engraver
     (engraver-description
      "Timing_engraver"
-     " Responsible for synchronizing timing information from staffs. 
+     " Responsible for synchronizing timing information from staves. 
     Normally in @code{Score}.  In order to create polyrhythmic music,
     this engraver should be removed from @code{Score} and placed in
     @code{Staff}."
      '()
-     (list
-      (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 'barCheckNoSynchronize boolean?
-"If set, don't reset measurePosition when finding a bbarcheck. This
-makes bar-checks for polyphonic music easier.")
-
-      (translator-property-description 'barNonAuto boolean? " If set to true then bar lines will not be printed
-    automatically; they must be explicitly created with @code{\bar}
-    keywords.  Unlike with the @code{\cadenza} keyword, measures are
-    still counted.  Bar generation will resume according to that
-    count if this property is set to zero.
-")
-      (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.
- ")
-      
-      (translator-property-description 'barAlways boolean? " If set to true a bar line is drawn after each note.
-")
-      (translator-property-description 'defaultBarType string? "Sets the default type of bar line.  Available bar types: [FIXME]
-")
-      (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...
-@example
-@@lilypond[fragment,verbatim,center]
-r1 r1*3 R1*3\property Score.skipBars=1 r1*3 R1*3
-
-@@end lilypond
-@end example
-
-")
-      (translator-property-description 'timing boolean? " Keep administration of measure length, position, bar number, etc?
-Switch off for cadenzas.")
-      (translator-property-description 'oneBeat moment? "  How long does one beat in the current time signature last?")
-      (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?
-")
-      (translator-property-description 'currentBarNumber integer? "Contains the current barnumber. This property is incremented at
-every barline.
-")
+     '(
+      timeSignatureFraction
+      barCheckNoSynchronize
+      barNonAuto
+      whichBar      
+      barAlways
+      defaultBarType
+      skipBars
+      timing
+      oneBeat
+      measureLength
+      measurePosition 
+      currentBarNumber
       )))
 
 
@@ -916,30 +716,8 @@ every barline.
     (engraver-description
      "Tuplet_engraver"
      "Catch Time_scaled_music and generate appropriate bracket  "
-     '(
-       TupletBracket)
-     (list
-      (translator-property-description 'tupletSpannerDuration moment? "
-Normally a tuplet bracket is as wide as the
-@code{\times} expression that gave rise to it. By setting this
-property, you can make brackets last shorter. Example
-
-@example
-@@lilypond[verbatim,fragment]
-\context Voice \times 2/3 @{
-  \property Voice.tupletSpannerDuration = #(make-moment 1 4)
-  [c8 c c] [c c c]
-@}
-@@end lilypond
-@end example
-")
-      (translator-property-description 'tupletInvisible boolean? "
-    If set to true, tuplet bracket creation is switched off
-entirely. This has the same effect as setting both
-@code{tupletNumberVisibility} and @code{tupletBracketVisibility} to
-@code{#f}, but as this does not even create elements, this setting
-uses less memory and time.")
-      )))
+     '( TupletBracket)
+     '(tupletNumberFormatFunction tupletSpannerDuration tupletInvisible)))
 
 
    (cons
@@ -948,7 +726,7 @@ uses less memory and time.")
      "Vertical_align_engraver"
      "Catch Vertical axis groups and stack them."
      '(VerticalAlignment)
-     (list
+     '(
       )))
 
 
@@ -958,23 +736,26 @@ uses less memory and time.")
      "Voice_devnull_engraver"
      "Kill off certain items and spanners if we're Voice `two' and unison or unisilence is set."
      '()
-     (list
+     '(
       )))
    ))
 
 
-
+(set! engraver-description-alist
+      (sort engraver-description-alist alist<?))
 
 (define context-description-alist
   '(
 (Grace . "
-    The context for handling grace notes.  It is instantiated
+    The context for handling grace notes.  It used to be instantiated
     automatically when you use @code{\grace}.  Basically, it is an
     `embedded' miniature of the Score context.  Since this context
     needs special interaction with the rest of LilyPond, you should
     not explicitly instantiate it.
+
+   DEPRECATED.
 ")
-(LyricVoice . "
+(LyricsVoice . "
     Corresponds to a voice with lyrics.  Handles the printing of a
     single line of lyrics.
 ")
@@ -1000,7 +781,7 @@ uses less memory and time.")
     contexts.")
 
 (Lyrics . "
-    Typesets lyrics.  It can contain @code{LyricVoice} contexts.
+    Typesets lyrics.  It can contain @code{LyricsVoice} contexts.
 ")
 (Staff . "
     Handles clefs, bar lines, keys, accidentals.  It can contain
@@ -1013,8 +794,8 @@ uses less memory and time.")
 ")
 (GrandStaff . "
     Contains @code{Staff} or @code{RhythmicStaff} contexts.  It adds a
-    brace on the left side, grouping the staffs together.  The bar
-    lines of the contained staffs are connected vertically.  It can
+    brace on the left side, grouping the staves together.  The bar
+    lines of the contained staves are connected vertically.  It can
     contain @code{Staff} contexts.")
 
 (PianoStaff . "
@@ -1024,13 +805,13 @@ uses less memory and time.")
 
 (StaffGroup . "
     Contains @code{Staff} or @code{RhythmicStaff} contexts.  Adds a
-    bracket on the left side, grouping the staffs together.  The bar
-    lines of the contained staffs are connected vertically.  It can
+    bracket on the left side, grouping the staves together.  The bar
+    lines of the contained staves are connected vertically.  It can
     contain @code{Staff}, @code{RhythmicStaff}, @code{GrandStaff}, or
     @code{Lyrics} contexts.
 ")
 (ChoirStaff . "
-    Identical to @code{StaffGroup} except that the contained staffs
+    Identical to @code{StaffGroup} except that the contained staves
     are not connected vertically.
 ")
 (Score . "
@@ -1038,7 +819,7 @@ uses less memory and time.")
     contain a @code{Score} context.  This context handles the
     administration of time signatures.  It also makes sure that items
     such as clefs, time signatures, and key-signatures are aligned
-    across staffs.  It can contain @code{Lyrics}, @code{Staff},
+    across staves.  It can contain @code{Lyrics}, @code{Staff},
     @code{RhythmicStaff}, @code{GrandStaff}, @code{StaffGroup}, and
     @code{ChoirStaff} contexts.
 
@@ -1049,3 +830,7 @@ uses less memory and time.")
 ")
 )
 )
+
+(set! context-description-alist
+      (sort context-description-alist alist<?))
+