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 '(VerticalExtent MinimumVerticalExtent ExtraVerticalExtent)
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)
101 '( clefPosition clefGlyph centralCPosition clefOctavation explicitClefVisibility )))
105 (engraver-description
107 "Part combine engraver for orchestral scores.
109 The markings @emph{a2}, @emph{Solo} and @emph{Solo II}, are
110 created by this engraver. It also acts upon instructions of the part
111 combiner. Another thing that the this engraver, is forcing of stem,
112 slur and tie directions, always when both threads are not identical;
113 up for the musicexpr called @code{one}, down for the musicexpr called
133 'Align_note_column_engraver
134 (engraver-description
135 "Align_note_column_engraver"
136 "Generate object to put grace notes from left to right."
145 (engraver-description
147 "Generate an Arpeggio from a Arpeggio_req"
154 (engraver-description
156 "Generate beams based on measure characteristics and observed
157 Stems. Uses beatLength, measureLength and measurePosition to decide
158 when to start and stop a beam. Overriding beaming is done through
159 @ref{Stem_engraver} properties stemLeftBeamCount and
170 (engraver-description
172 "Create barlines. This engraver is controlled through the
173 @code{whichBar} property. If it has no bar line to create, it will forbid a linebreak at this point"
183 (engraver-description
184 "Bar_number_engraver"
185 "A bar number is created whenever measurePosition is zero. It is
186 put on top of all staffs, and appears only at left side of the staff."
195 (engraver-description
197 "Handles Beam_requests by engraving Beams. If omitted, then notes will be
198 printed with flags instead of beams."
205 'Break_align_engraver
206 (engraver-description
207 "Break_align_engraver"
208 "Align grobs with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder"
209 '(BreakAlignment BreakAlignGroup LeftEdge)
217 'Breathing_sign_engraver
218 (engraver-description
219 "Breathing_sign_engraver"
228 (engraver-description
229 "Chord_name_engraver"
230 "Catch Note_req's, Tonic_reqs, Inversion_reqs, Bass_req
231 and generate the appropriate chordname."
237 'Chord_tremolo_engraver
238 (engraver-description
239 "Chord_tremolo_engraver"
240 "Generates beams for the \repeat X tremolo ... construct"
249 (engraver-description
259 (engraver-description
269 (engraver-description
270 "Dot_column_engraver"
271 " Engraves dots on dotted notes shifted to the right of the note.
272 If omitted, then dots appear on top of the notes.
282 (engraver-description
295 'Grace_position_engraver
296 (engraver-description
297 "Grace_position_engraver"
298 "Attach a grace note alignment to a note-column "
304 'Grace_engraver_group
305 (engraver-description
306 "Grace_engraver_group"
307 "An engraver that creates a `shielded' context-tree with separate notion of time"
314 'Instrument_name_engraver
315 (engraver-description
316 "Instrument_name_engraver"
317 " Prints the name of the instrument (specified by
318 @code{Staff.instrument} and @code{Staff.instr}) at the left of the
327 'Engraver_group_engraver
328 (engraver-description
329 "Engraver_group_engraver"
330 "A group of engravers taken together"
337 (engraver-description
342 '( keySignature explicitKeySignatureVisibility createKeyOnClefChange keyAccidentalOrder keySignature )))
344 (cons 'Lyric_engraver
345 (engraver-description
353 (cons 'Lyric_phrasing_engraver
354 (engraver-description
355 "Lyric_phrasing_engraver"
368 (engraver-description
381 (engraver-description
395 'Multi_measure_rest_engraver
396 (engraver-description
397 "Multi_measure_rest_engraver"
398 "Engraves multi-measure rests that are produced with @code{R}. Reads
399 measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest
402 '(currentBarNumber currentCommandColumn measurePosition
407 (engraver-description
408 "Note_heads_engraver"
409 "Generate one or more noteheads from Music of type Note_req."
415 'Note_head_line_engraver
416 (engraver-description
417 "Note_head_line_engraver"
418 "Engrave a line between two note heads, for example a glissando.
419 If followVoice is set, staff switches also generate a line."
420 '(Glissando VoiceFollower)
425 (engraver-description
434 'Output_property_engraver
435 (engraver-description
436 "Output_property_engraver"
437 "Interpret Music of Output_property type, and apply a function
438 to any Graphic objects that satisfies the predicate."
445 'Piano_pedal_engraver
446 (engraver-description
447 "Piano_pedal_engraver"
448 "Engrave piano pedal symbols."
449 '(SostenutoPedal SustainPedal UnaCordaPedal)
450 '(pedalSostenutoStrings pedalSustainStrings pedalUnaCordaStrings
454 'Pitch_squash_engraver
455 (engraver-description
456 "Pitch_squash_engraver"
457 "Treat all pitches as middle C. Note that the notes move, but
458 the locations of accidentals stay the same.
459 Set the position field of all note heads to zero. This useful for
460 making a single line staff that demonstrates the rhythm of a melody."
468 (engraver-description
470 "This is a engraver that converts \property settings into
471 back-end grob-property settings. Example: Voice.stemLength will set
472 #'length in all Stem objects.
474 Due to CPU and memory requirements, the use of this engraver is deprecated."
476 '(Generic_property_list)
481 'Repeat_acknowledge_engraver
482 (engraver-description
483 "Repeat_acknowledge_engraver"
485 "Acknowledge repeated music, and convert the contents of
486 repeatCommands ainto an appropriate setting for whichBar"
496 'Rest_collision_engraver
497 (engraver-description
498 "Rest_collision_engraver"
499 "Handles collisions of rests."
507 (engraver-description
516 'Rhythmic_column_engraver
517 (engraver-description
518 "Rhythmic_column_engraver"
519 "Generates NoteColumn, an objects that groups stems, noteheads and rests."
526 'Script_column_engraver
527 (engraver-description
528 "Script_column_engraver"
537 (engraver-description
539 " Handles note ornaments generated by @code{\script}.
549 (engraver-description
551 "Top level engraver. Takes care of generating columns and the complete system (ie. LineOfScore)
553 This engraver decides whether a column is breakable. The default is
554 that a column is always breakable. However, when every Bar_engraver
555 that does not have a barline at a certain point will call
556 Score_engraver::forbid_breaks to stop linebreaks. In practice, this
557 means that you can make a breakpoint by creating a barline (assuming
558 that there are no beams or notes that prevent a breakpoint.)
561 '(LineOfScore PaperColumn NonMusicalPaperColumn)
567 (cons 'Skip_req_swallow_translator
568 (engraver-description
569 "Skip_req_swallow_translator"
578 (engraver-description
580 "Build slurs from Slur_reqs"
592 (engraver-description
594 "make a SpacingSpanner and do bookkeeping of shortest starting and playing notes "
601 'Span_arpeggio_engraver
602 (engraver-description
603 "Span_arpeggio_engraver"
613 (engraver-description
615 "This engraver makes cross-staff barlines: It catches all normal
616 bar lines, and draws a single span-bar across them."
624 'Staff_symbol_engraver
625 (engraver-description
626 "Staff_symbol_engraver"
627 "create the constellation of five (default) staff lines."
634 'Stanza_number_engraver
635 (engraver-description
636 "Stanza_number_engraver"
648 'System_start_delimiter_engraver
649 (engraver-description
650 "System_start_delimiter_engraver"
651 "creates a SystemStartDelimiter spanner"
652 '(SystemStartDelimiter)
659 (engraver-description
661 "Create text-scripts"
670 'Text_spanner_engraver
671 (engraver-description
672 "Text_spanner_engraver"
673 "Create text spanner from a Span_req "
680 'Thread_devnull_engraver
681 (engraver-description
682 "Thread_devnull_engraver"
683 "Kill elements whenever we are Voice called `two' and either
684 unison, unisilence or soloADue is set.@footnote{On unix systems, the
685 file @file{/dev/null} is special device: anything written to it is
686 discarded.}. This engraver works closely together with the part
687 combiner. When the part combiner notices that two threads are
688 identical, it tells the @code{Thread_devnull_engraver} to discard
689 everything in the second thread.
698 (engraver-description
700 "Generate ties between noteheads of equal pitch."
708 'Time_signature_engraver
709 (engraver-description
710 "Time_signature_engraver"
711 "Create a TimeSignature whenever @code{timeSignatureFraction} changes"
719 (engraver-description
721 " Responsible for synchronizing timing information from staffs.
722 Normally in @code{Score}. In order to create polyrhythmic music,
723 this engraver should be removed from @code{Score} and placed in
727 timeSignatureFraction
728 barCheckNoSynchronize
744 (engraver-description
746 "Catch Time_scaled_music and generate appropriate bracket "
748 '(tupletNumberFormatFunction tupletSpannerDuration tupletInvisible)))
752 'Vertical_align_engraver
753 (engraver-description
754 "Vertical_align_engraver"
755 "Catch Vertical axis groups and stack them."
762 'Voice_devnull_engraver
763 (engraver-description
764 "Voice_devnull_engraver"
765 "Kill off certain items and spanners if we're Voice `two' and unison or unisilence is set."
772 (set! engraver-description-alist
773 (sort engraver-description-alist alist<?))
775 (define context-description-alist
778 The context for handling grace notes. It is instantiated
779 automatically when you use @code{\grace}. Basically, it is an
780 `embedded' miniature of the Score context. Since this context
781 needs special interaction with the rest of LilyPond, you should
782 not explicitly instantiate it.
785 Corresponds to a voice with lyrics. Handles the printing of a
786 single line of lyrics.
789 Handles note heads, and is contained in the Voice context. You
790 have to instantiate this explicitly if you want to adjust the
791 style of individual note heads.
794 Corresponds to a voice on a staff. This context handles the
795 conversion of dynamic signs, stems, beams, super- and subscripts,
796 slurs, ties, and rests.
798 You have to instantiate this explicitly if you want to have
799 multiple voices on the same staff.")
802 A voice with chord names. Handles printing of a line of chord
806 Typesets chord names. Can contain @code{ChordNamesVoice}
810 Typesets lyrics. It can contain @code{LyricsVoice} contexts.
813 Handles clefs, bar lines, keys, accidentals. It can contain
814 @code{Voice} contexts.
817 A context like @code{Staff} but for printing rhythms. Pitches are
818 ignored; the notes are printed on one line. It can contain
819 @code{Voice} contexts.
822 Contains @code{Staff} or @code{RhythmicStaff} contexts. It adds a
823 brace on the left side, grouping the staffs together. The bar
824 lines of the contained staffs are connected vertically. It can
825 contain @code{Staff} contexts.")
828 Just like @code{GrandStaff} but with @code{minVerticalAlign} set
829 equal to @code{maxVerticalAlign} so that interstaff beaming and
830 slurring can be used.")
833 Contains @code{Staff} or @code{RhythmicStaff} contexts. Adds a
834 bracket on the left side, grouping the staffs together. The bar
835 lines of the contained staffs are connected vertically. It can
836 contain @code{Staff}, @code{RhythmicStaff}, @code{GrandStaff}, or
837 @code{Lyrics} contexts.
840 Identical to @code{StaffGroup} except that the contained staffs
841 are not connected vertically.
844 This is the top level notation context. No other context can
845 contain a @code{Score} context. This context handles the
846 administration of time signatures. It also makes sure that items
847 such as clefs, time signatures, and key-signatures are aligned
848 across staffs. It can contain @code{Lyrics}, @code{Staff},
849 @code{RhythmicStaff}, @code{GrandStaff}, @code{StaffGroup}, and
850 @code{ChoirStaff} contexts.
852 You cannot explicitly instantiate a Score context (since it is
853 not contained in any other context). It is instantiated
854 automatically when an output definition (a @code{\score} or
855 @code{\paper} block) is processed.
860 (set! context-description-alist
861 (sort context-description-alist alist<?))