| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The notation problem, creating a certain symbol, is handled by plugins. Each plugin is called an Engraver. In this example, engravers are switched on one by one, in the following order:
- note heads,
- staff symbol,
- clef,
- stem,
- beams, slurs, accents,
- accidentals, bar lines, time signature and key signature.
Engravers are grouped. For example, note heads, slurs, beams etc. form
a Voice context. Engravers for key signature, accidentals, bar
line, etc. form a Staff context.
%% sample music
topVoice = \relative c' {
\key d \major
es8([ g] a[ fis])
b4
b16[-. b-. b-. cis-.]
d4->
}
botVoice = \relative c' {
\key d \major
c8[( f] b[ a)]
es4
es16[-. es-. es-. fis-.]
b4->
}
hoom = \relative c {
\key d \major
\clef bass
g8-. r
r4
fis8-.
r8
r4
b'4->
}
pah = \relative c' {
r8 b-.
r4
r8 g8-.
r16 g-. r8
\clef treble
fis'4->
}
%
% setup for Request->Element conversion. Guru-only
%
MyStaff = \context {
\type "Engraver_group"
\name Staff
\description "Handles clefs, bar lines, keys, accidentals. It can contain
@code{Voice} contexts."
\consists "Output_property_engraver"
\consists "Font_size_engraver"
\consists "Volta_engraver"
\consists "Separating_line_group_engraver"
\consists "Dot_column_engraver"
\consists "Ottava_spanner_engraver"
\consists "Rest_collision_engraver"
\consists "Piano_pedal_engraver"
\consists "Piano_pedal_align_engraver"
\consists "Instrument_name_engraver"
\consists "Grob_pq_engraver"
\consists "Forbid_line_break_engraver"
\consists "Axis_group_engraver"
\consists "Pitch_squash_engraver"
localAlterations = #'()
% explicitly set instrumentName, so we don't get
% weird effects when doing instrument names for
% piano staves
instrumentName = #'()
shortInstrumentName = #'()
\accepts "Voice"
\defaultchild "Voice"
}
MyVoice = \context {
\type "Engraver_group"
\name Voice
\description "
Corresponds to a voice on a staff. This context handles the
conversion of dynamic signs, stems, beams, super- and subscripts,
slurs, ties, and rests.
You have to instantiate this explicitly if you want to have
multiple voices on the same staff."
localAlterations = #'()
\consists "Font_size_engraver"
% must come before all
\consists "Output_property_engraver"
\consists "Arpeggio_engraver"
\consists "Multi_measure_rest_engraver"
\consists "Text_spanner_engraver"
\consists "Grob_pq_engraver"
\consists "Note_head_line_engraver"
\consists "Glissando_engraver"
\consists "Ligature_bracket_engraver"
\consists "Breathing_sign_engraver"
% \consists "Rest_engraver"
\consists "Grace_beam_engraver"
\consists "New_fingering_engraver"
\consists "Chord_tremolo_engraver"
\consists "Percent_repeat_engraver"
\consists "Slash_repeat_engraver"
%{
Must come before text_engraver, but after note_column engraver.
%}
\consists "Text_engraver"
\consists "Dynamic_engraver"
\consists "Dynamic_align_engraver"
\consists "Fingering_engraver"
\consists "Script_column_engraver"
\consists "Rhythmic_column_engraver"
\consists "Cluster_spanner_engraver"
\consists "Tie_engraver"
\consists "Tie_engraver"
\consists "Tuplet_engraver"
\consists "Note_heads_engraver"
\consists "Rest_engraver"
}
\score {
\topVoice
\layout {
\context { \MyStaff }
\context { \MyVoice }
}
}
MyStaff = \context {
\MyStaff
\consists "Staff_symbol_engraver"
}
\score {
\topVoice
\layout {
\context { \MyStaff }
\context { \MyVoice }
}
}
MyStaff = \context {
\MyStaff
\consists "Clef_engraver"
\remove "Pitch_squash_engraver"
}
\score {
\topVoice
\layout {
\context { \MyStaff }
\context { \MyVoice }
}
}
MyVoice = \context {
\MyVoice
\consists "Stem_engraver"
}
\score {
\topVoice
\layout {
\context { \MyStaff }
\context { \MyVoice }
}
}
MyVoice = \context {
\MyVoice
\consists "Beam_engraver"
}
\score {
\topVoice
\layout {
\context { \MyStaff }
\context { \MyVoice }
}
}
MyVoice = \context {
\MyVoice
\consists "Phrasing_slur_engraver"
\consists "Slur_engraver"
\consists "Script_engraver"
}
\score {
\topVoice
\layout {
\context { \MyStaff }
\context { \MyVoice }
}
}
MyStaff = \context {
\MyStaff
\consists "Bar_engraver"
\consists "Time_signature_engraver"
}
\score {
\topVoice
\layout {
\context { \MyStaff }
\context { \MyVoice }
}
}
MyStaff = \context {
\MyStaff
\consists "Accidental_engraver"
\consists "Key_engraver"
}
\score {
\topVoice
\layout {
\context { \MyStaff }
\context { \MyVoice }
}
}
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by gub on July 13, 2020 using texi2html 1.82.