]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/translator-description.scm
release: 1.3.145
[lilypond.git] / scm / translator-description.scm
index fad552e1393b2575d3efb599196724c385053714..7edf9e0455f6b8cebca78babbb9991834afce334 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,14 +98,13 @@ 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
+      clefPitches
 
       )))
    
@@ -162,19 +112,29 @@ this much extra octavation. Values of 7 and -7 are common.")
     '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
@@ -183,10 +143,10 @@ this much extra octavation. Values of 7 and -7 are common.")
      "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")
+      graceAlignPosition
+      graceAccidentalSpace
       )))
    
    (cons
@@ -195,51 +155,24 @@ this much extra octavation. Values of 7 and -7 are common.")
      "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 +181,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
+      staffsFound
       )))
 
 
@@ -267,9 +194,8 @@ will create a start-repeat bar in this staff only
      "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."
      '(BarNumber)
-     (list
-      (translator-property-description 'currentBarNumber integer? "this is read to determine
- the number to put on the bar ")
+     '(
+      currentBarNumber
       )))
 
 
@@ -280,33 +206,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 +228,7 @@ key signatures after the bar lines:
      "Breathing_sign_engraver"
      ""
      '(BreathingSign)
-     (list
+     '(
       )))
 
 
@@ -327,13 +239,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 +248,7 @@ and generate the appropriate chordname."
      "Chord_tremolo_engraver"
      "Generates beams for the \repeat X tremolo ... construct"
      '(Beam)
-     (list
+     '(
       )))
 
 
@@ -354,7 +260,7 @@ and generate the appropriate chordname."
      ""
      '(NoteCollision
        )
-     (list
+     '(
       )))
 
    (cons
@@ -363,7 +269,7 @@ and generate the appropriate chordname."
      "Custos_engraver"
      ""
      '(Custos)
-     (list
+     '(
       )))
 
 
@@ -376,7 +282,7 @@ If omitted, then dots appear on top of the notes.
 "
      '(DotColumn
        )
-     (list
+     '(
       )))
 
 
@@ -386,9 +292,9 @@ If omitted, then dots appear on top of the notes.
      "Dynamic_engraver"
      ""
      '(DynamicLineSpanner
-       DynamicText Crescendo
+       DynamicText Hairpin
        TextSpanner)
-     (list
+     '(
       )))
 
 
@@ -400,7 +306,7 @@ If omitted, then dots appear on top of the notes.
      "Grace_position_engraver"
      "Attach a grace note alignment to a note-column "
      '()
-     (list
+     '(
       )))
 
    (cons
@@ -409,7 +315,7 @@ If omitted, then dots appear on top of the notes.
      "Grace_engraver_group"
      "An engraver that creates a `shielded' context-tree with separate notion of time"
      '()
-     (list
+     '(
       )))
 
 
@@ -421,16 +327,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 +338,7 @@ If omitted, then dots appear on top of the notes.
      "Engraver_group_engraver"
      "A group of engravers taken together"
      '()
-     (list
+     '(
       )))
 
    (cons
@@ -449,22 +348,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 +364,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
+          weAreGraceContext
+          melismaEngraverBusy
+          associatedVoice
+          phrasingPunctuation
           )))
 
    (cons
@@ -487,10 +378,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
+      staffsFound
       )))
 
 
@@ -500,12 +391,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 +408,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 +435,7 @@ measurePosition and currentBarNumber to determine what number to print over the
      "Note_name_engraver"
      ""
      '(NoteName)
-     (list
+     '(
       )))
 
 
@@ -548,7 +446,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 +454,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 +468,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 +477,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 +494,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 +507,7 @@ repeatCommands ainto an appropriate setting for whichBar"
      "Rest_collision_engraver"
      "Handles collisions of rests."
      '(RestCollision)
-     (list
+     '(
       )))
 
 
@@ -633,7 +517,7 @@ repeatCommands ainto an appropriate setting for whichBar"
      "Rest_engraver"
      ""
       '(Rest Dots)
-   (list
+   '(
       )))
 
 
@@ -643,7 +527,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 +537,7 @@ repeatCommands ainto an appropriate setting for whichBar"
      "Script_column_engraver"
      ""
      '(ScriptColumn)
-     (list
+     '(
       )))
 
 
@@ -664,15 +548,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 +568,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 +578,7 @@ that there are no beams or notes that prevent a breakpoint.)
          "Skip_req_swallow_translator"
          ""
          '()
-         (list
+         '(
           ;; FIXME
           )))
 
@@ -711,10 +589,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 +602,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 +612,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 +625,7 @@ arpeggios that cross staffs.
 bar lines, and draws a single span-bar across them."
 
      '(SpanBar)
-     (list
+     '(
       )))
 
 
@@ -760,7 +635,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 +646,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 +659,7 @@ bar lines, and draws a single span-bar across them."
      "System_start_delimiter_engraver"
      "creates a SystemStartDelimiter spanner"
      '(SystemStartDelimiter)
-     (list
+     '(
       )))
 
 
@@ -794,16 +669,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 +681,7 @@ settings.
      "Text_spanner_engraver"
      "Create text spanner from a  Span_req "
      '(TextSpanner)
-     (list
+     '(
       )))
 
 
@@ -821,8 +689,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 +708,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 +719,7 @@ either unison, unisilence or soloADue is set"
      "Time_signature_engraver"
      "Create a TimeSignature whenever @code{timeSignatureFraction} changes"
      '(TimeSignature)
-     (list
+     '(
       )))
 
 
@@ -860,54 +732,19 @@ either unison, unisilence or soloADue is set"
     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 +753,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 +763,7 @@ uses less memory and time.")
      "Vertical_align_engraver"
      "Catch Vertical axis groups and stack them."
      '(VerticalAlignment)
-     (list
+     '(
       )))
 
 
@@ -958,12 +773,13 @@ 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
   '(
@@ -974,7 +790,7 @@ uses less memory and time.")
     needs special interaction with the rest of LilyPond, you should
     not explicitly instantiate it.
 ")
-(LyricVoice . "
+(LyricsVoice . "
     Corresponds to a voice with lyrics.  Handles the printing of a
     single line of lyrics.
 ")
@@ -1000,7 +816,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
@@ -1049,3 +865,7 @@ uses less memory and time.")
 ")
 )
 )
+
+(set! context-description-alist
+      (sort context-description-alist alist<?))
+