2 (define (engraver-description name description created-elts properties)
3 (list name description created-elts properties)
7 (define engraver-description-alist
13 "Create stems and single-stem tremolos. It also works together with
14 the beam engraver for overriding beaming."
25 "Create lyric hyphens"
34 "Create lyric extenders"
41 'Separating_line_group_engraver
43 "Separating_line_group_engraver"
44 "Generates objects for computing spacing parameters."
45 '(SeparationItem SeparatingGroupSpanner)
53 "Group all objects created in this context in a VerticalAxisGroup spanner."
55 '(CONTEXTNAMEVerticalExtent CONTEXTNAMEMinimumVerticalExtent CONTEXTNAMExtraVerticalExtent)
62 "Like Axis_group_engraver, but make a hara kiri spanner, and add
63 interesting items (ie. note heads, lyric syllables and normal rests)"
64 '(HaraKiriVerticalGroup)
73 "Make accidentals. Catches note heads, ties and notices key-change
74 events. Due to interaction with ties (which don't come together
75 with note heads), this needs to be in a context higher than Tie_engraver.
92 '(repeatCommands voltaSpannerDuration)
99 "Determine and set reference point for pitches"
100 '(Clef OctavateEight)
106 explicitClefVisibility
113 (engraver-description
115 "Part combine engraver for orchestral scores."
131 'Align_note_column_engraver
132 (engraver-description
133 "Align_note_column_engraver"
134 "Generate object to put grace notes from left to right."
144 (engraver-description
146 "Generate an Arpeggio from a Arpeggio_req"
153 (engraver-description
155 "Generate beams based on measure characteristics and observed
156 Stems. Uses beatLength, measureLength and measurePosition to decide
157 when to start and stop a beam. Overriding beaming is done through
158 @ref{Stem_engraver} properties stemLeftBeamCount and
169 (engraver-description
171 "Create barlines. This engraver is controlled through the
172 @code{whichBar} property. If it has no bar line to create, it will forbid a linebreak at this point"
182 (engraver-description
183 "Bar_number_engraver"
184 "A bar number is created whenever measurePosition is zero. It is
185 put on top of all staffs, and appears only at left side of the staff."
194 (engraver-description
196 "Handles Beam_requests by engraving Beams. If omitted, then notes will be
197 printed with flags instead of beams."
204 'Break_align_engraver
205 (engraver-description
206 "Break_align_engraver"
207 "Align grobs with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder"
208 '(BreakAlignment BreakAlignGroup LeftEdge)
216 'Breathing_sign_engraver
217 (engraver-description
218 "Breathing_sign_engraver"
227 (engraver-description
228 "Chord_name_engraver"
229 "Catch Note_req's, Tonic_reqs, Inversion_reqs, Bass_req
230 and generate the appropriate chordname."
239 'Chord_tremolo_engraver
240 (engraver-description
241 "Chord_tremolo_engraver"
242 "Generates beams for the \repeat X tremolo ... construct"
251 (engraver-description
261 (engraver-description
271 (engraver-description
272 "Dot_column_engraver"
273 " Engraves dots on dotted notes shifted to the right of the note.
274 If omitted, then dots appear on top of the notes.
284 (engraver-description
297 'Grace_position_engraver
298 (engraver-description
299 "Grace_position_engraver"
300 "Attach a grace note alignment to a note-column "
306 'Grace_engraver_group
307 (engraver-description
308 "Grace_engraver_group"
309 "An engraver that creates a `shielded' context-tree with separate notion of time"
316 'Instrument_name_engraver
317 (engraver-description
318 "Instrument_name_engraver"
319 " Prints the name of the instrument (specified by
320 @code{Staff.instrument} and @code{Staff.instr}) at the left of the
329 'Engraver_group_engraver
330 (engraver-description
331 "Engraver_group_engraver"
332 "A group of engravers taken together"
339 (engraver-description
348 explicitKeySignatureVisibility
349 createKeyOnClefChange
354 (cons 'Lyric_engraver
355 (engraver-description
363 (cons 'Lyric_phrasing_engraver
364 (engraver-description
365 "Lyric_phrasing_engraver"
378 (engraver-description
391 (engraver-description
405 'Multi_measure_rest_engraver
406 (engraver-description
407 "Multi_measure_rest_engraver"
408 "Engraves multi-measure rests that are produced with @code{R}. Reads
409 measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest
417 (engraver-description
418 "Note_heads_engraver"
419 "Generate one or more noteheads from Music of type Note_req."
425 'Note_head_line_engraver
426 (engraver-description
427 "Note_head_line_engraver"
428 "Engrave a line between two note heads."
429 '(Glissando FollowThread)
435 (engraver-description
444 'Output_property_engraver
445 (engraver-description
446 "Output_property_engraver"
447 "Interpret Music of Output_property type, and apply a function
448 to any Graphic objects that satisfies the predicate."
455 'Piano_pedal_engraver
456 (engraver-description
457 "Piano_pedal_engraver"
458 "Engrave piano pedal symbols."
459 '(SostenutoPedal SustainPedal UnaChordaPedal)
460 '(pedalSostenutoStrings pedalSustainStrings pedalUnaChordaStrings
464 'Pitch_squash_engraver
465 (engraver-description
466 "Pitch_squash_engraver"
467 "Treat all pitches as middle C. Note that the notes move, but
468 the locations of accidentals stay the same.
469 Set the position field of all note heads to zero. This useful for
470 making a single line staff that demonstrates the rhythm of a melody."
478 (engraver-description
480 "This is a engraver that converts \property settings into
481 back-end grob-property settings. Example: Voice.stemLength will set
482 #'length in all Stem objects.
484 Due to CPU and memory requirements, the use of this engraver is deprecated."
486 '(Generic_property_list)
491 'Repeat_acknowledge_engraver
492 (engraver-description
493 "Repeat_acknowledge_engraver"
495 "Acknowledge repeated music, and convert the contents of
496 repeatCommands ainto an appropriate setting for whichBar"
506 'Rest_collision_engraver
507 (engraver-description
508 "Rest_collision_engraver"
509 "Handles collisions of rests."
517 (engraver-description
526 'Rhythmic_column_engraver
527 (engraver-description
528 "Rhythmic_column_engraver"
529 "Generates NoteColumn, an objects that groups stems, noteheads and rests."
536 'Script_column_engraver
537 (engraver-description
538 "Script_column_engraver"
547 (engraver-description
549 " Handles note ornaments generated by @code{\script}.
559 (engraver-description
561 "Top level engraver. Takes care of generating columns and the complete system (ie. LineOfScore)
563 This engraver decides whether a column is breakable. The default is
564 that a column is always breakable. However, when every Bar_engraver
565 that does not have a barline at a certain point will call
566 Score_engraver::forbid_breaks to stop linebreaks. In practice, this
567 means that you can make a breakpoint by creating a barline (assuming
568 that there are no beams or notes that prevent a breakpoint.)
571 '(LineOfScore PaperColumn NonMusicalPaperColumn)
577 (cons 'Skip_req_swallow_translator
578 (engraver-description
579 "Skip_req_swallow_translator"
588 (engraver-description
590 "Build slurs from Slur_reqs"
602 (engraver-description
604 "make a SpacingSpanner and do bookkeeping of shortest starting and playing notes "
611 'Span_arpeggio_engraver
612 (engraver-description
613 "Span_arpeggio_engraver"
623 (engraver-description
625 "This engraver makes cross-staff barlines: It catches all normal
626 bar lines, and draws a single span-bar across them."
634 'Staff_symbol_engraver
635 (engraver-description
636 "Staff_symbol_engraver"
637 "create the constellation of five (default) staff lines."
644 'Stanza_number_engraver
645 (engraver-description
646 "Stanza_number_engraver"
658 'System_start_delimiter_engraver
659 (engraver-description
660 "System_start_delimiter_engraver"
661 "creates a SystemStartDelimiter spanner"
662 '(SystemStartDelimiter)
669 (engraver-description
671 "Create text-scripts"
680 'Text_spanner_engraver
681 (engraver-description
682 "Text_spanner_engraver"
683 "Create text spanner from a Span_req "
690 'Thread_devnull_engraver
691 (engraver-description
692 "Thread_devnull_engraver"
693 "Kill elements whenever we are Voice called `two' and
694 either unison, unisilence or soloADue is set"
701 (engraver-description
703 "Generate ties between noteheads of equal pitch."
711 'Time_signature_engraver
712 (engraver-description
713 "Time_signature_engraver"
714 "Create a TimeSignature whenever @code{timeSignatureFraction} changes"
722 (engraver-description
724 " Responsible for synchronizing timing information from staffs.
725 Normally in @code{Score}. In order to create polyrhythmic music,
726 this engraver should be removed from @code{Score} and placed in
730 timeSignatureFraction
731 barCheckNoSynchronize
747 (engraver-description
749 "Catch Time_scaled_music and generate appropriate bracket "
753 tupletSpannerDuration
759 'Vertical_align_engraver
760 (engraver-description
761 "Vertical_align_engraver"
762 "Catch Vertical axis groups and stack them."
769 'Voice_devnull_engraver
770 (engraver-description
771 "Voice_devnull_engraver"
772 "Kill off certain items and spanners if we're Voice `two' and unison or unisilence is set."
779 (set! engraver-description-alist
780 (sort engraver-description-alist alist<?))
782 (define context-description-alist
785 The context for handling grace notes. It is instantiated
786 automatically when you use @code{\grace}. Basically, it is an
787 `embedded' miniature of the Score context. Since this context
788 needs special interaction with the rest of LilyPond, you should
789 not explicitly instantiate it.
792 Corresponds to a voice with lyrics. Handles the printing of a
793 single line of lyrics.
796 Handles note heads, and is contained in the Voice context. You
797 have to instantiate this explicitly if you want to adjust the
798 style of individual note heads.
801 Corresponds to a voice on a staff. This context handles the
802 conversion of dynamic signs, stems, beams, super- and subscripts,
803 slurs, ties, and rests.
805 You have to instantiate this explicitly if you want to have
806 multiple voices on the same staff.")
809 A voice with chord names. Handles printing of a line of chord
813 Typesets chord names. Can contain @code{ChordNamesVoice}
817 Typesets lyrics. It can contain @code{LyricsVoice} contexts.
820 Handles clefs, bar lines, keys, accidentals. It can contain
821 @code{Voice} contexts.
824 A context like @code{Staff} but for printing rhythms. Pitches are
825 ignored; the notes are printed on one line. It can contain
826 @code{Voice} contexts.
829 Contains @code{Staff} or @code{RhythmicStaff} contexts. It adds a
830 brace on the left side, grouping the staffs together. The bar
831 lines of the contained staffs are connected vertically. It can
832 contain @code{Staff} contexts.")
835 Just like @code{GrandStaff} but with @code{minVerticalAlign} set
836 equal to @code{maxVerticalAlign} so that interstaff beaming and
837 slurring can be used.")
840 Contains @code{Staff} or @code{RhythmicStaff} contexts. Adds a
841 bracket on the left side, grouping the staffs together. The bar
842 lines of the contained staffs are connected vertically. It can
843 contain @code{Staff}, @code{RhythmicStaff}, @code{GrandStaff}, or
844 @code{Lyrics} contexts.
847 Identical to @code{StaffGroup} except that the contained staffs
848 are not connected vertically.
851 This is the top level notation context. No other context can
852 contain a @code{Score} context. This context handles the
853 administration of time signatures. It also makes sure that items
854 such as clefs, time signatures, and key-signatures are aligned
855 across staffs. It can contain @code{Lyrics}, @code{Staff},
856 @code{RhythmicStaff}, @code{GrandStaff}, @code{StaffGroup}, and
857 @code{ChoirStaff} contexts.
859 You cannot explicitly instantiate a Score context (since it is
860 not contained in any other context). It is instantiated
861 automatically when an output definition (a @code{\score} or
862 @code{\paper} block) is processed.
867 (set! context-description-alist
868 (sort context-description-alist alist<?))