diff options
Diffstat (limited to 'Documentation/automated-engraving/implementing-notation.itexi')
-rw-r--r-- | Documentation/automated-engraving/implementing-notation.itexi | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/Documentation/automated-engraving/implementing-notation.itexi b/Documentation/automated-engraving/implementing-notation.itexi new file mode 100644 index 0000000000..ee9711c963 --- /dev/null +++ b/Documentation/automated-engraving/implementing-notation.itexi @@ -0,0 +1,129 @@ +\input texinfo @c -*- coding: utf-8; mode: texinfo; -*- +@ignore + Translation of GIT committish: FILL-IN-HEAD-COMMITTISH + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore + + + +@node implementing-notation + +@unnumberedsec Music notation + +Common music notation encompasses some 500 years of music. Its +applications range from monophonic melodies to monstruous counterpoint +for large orchestras. How can we get a grip on such a many-headed +beast? Our solution is to make a strict distinction between notation, +@emph{what} symbols to use, and engraving, @emph{where} to put +them. For tackling notation, we have broken up the problem into +digestible (and programmable) chunks: every type of symbol is handled +by a separate plugin. All plugins cooperate through the LilyPond +architecture. They are completely modular and independent, so each +can be developed and improved separately. + +@itemize +@item +The most basic plug-in creates Note-heads: + +@divClass{float-center} +@divEnd +@image{pictures/engraver-noteheads,,,.png} + +This plug-in creates graphical objects from musical events. People +that put graphics to musical ideas are called copyists or engravers, +so by analogy, this plug-in is called @code{Note_head_engraver}. + + +@item + The @code{Staff_symbol_engraver} generates the object +representing the staff lines. + +@divClass{float-center} +@divEnd +@image{pictures/engraver-staff,,,.png} + +@item + + The @code{Clef_engraver} tells @code{Note_head_engraver} how high +each head should be placed. + +@divClass{float-center} +@divEnd +@image{pictures/engraver-clef,,,.png} + + + +@item + +For the flags and stems we add a @code{Stem_engraver}: + +@divClass{float-center} +@divEnd +@image{pictures/engraver-stem,,,.png} + +This engraver is notified of any note head coming along. Every time +one (or more, for a chord) note head is seen, a stem object is +created, and attached to the note head. + +@item + +Beams, slurs, accents are handled by separate engravers. Like the +@code{Stem_engraver}, they create objects and connect them to stems, +note heads, etc.: + +@divClass{float-center} +@divEnd +@image{pictures/engraver-slur,,,.png} + + + +@item + +Accidentals, bar lines, time signature, and key signature each have a +separate +engraver. + +@divClass{float-center} +@divEnd +@image{pictures/engraver-acc,,,.png} + +The @code{Accidental_engraver} is the most complex plug-in: it has +to look at the key signature, note pitches, ties, and bar lines to +decide when to print accidentals. + + +@end itemize + + +@unnumberedsec Polyphonic notation + +The system shown in the last section works well for monophonic music, +but what about polyphony? In polyphonic notation, many voices can +share a staff: + +@divClass{float-center} +@divEnd +@image{pictures/engraver-final,,,.png} + +In this situation, the accidentals and staff are shared, but the +stems, slurs, beams, etc. are private to each voice. Hence, engravers +should be grouped. The engravers for note head, stems, slurs, etc. go +into a group called "Voice context," while the engravers for key, +accidental, bar, etc. go into a group called "Staff context." In the +case of polyphony, a single Staff context contains more than one Voice +context. Similarly, more Staff contexts can be put into a single +Score context: + +@divClass{float-center} +@divEnd +@image{pictures/engraver-score,,,.png} + +@divClass{float-right} +@divEnd +Next: @ref{engraving.html,The art of stamping}: +how @emph{did} they make hand-made music? + +@bye + |