-% -*-LaTeX-*-
+% -*-LaTeX-*- vim:tw=72
\documentclass{article}
\title{LilyPond feature test}
\begin{document}
\maketitle
-This document tries give an brief overview of LilyPond features. When
+This document tries give an brief overview of LilyPond features. When
the text correspond with the shown notation, we consider LilyPond
-Officially BugFree (tm).
+Officially BugFree (tm). This document is intended for finding bugs,
+and documenting bugfixes.
\section{Notes and rests}
\mudelafile{noteheadstyle.ly}
+Noteheads can have dots, and ---although this is bad style in duple
+meters--- rests can too. Augmentation dots should never be printed on
+a staff line, but rather be shifted vertically. They should go up, but
+in case of multiple parts, the down stems have down shifted dots.
+(Wanske p. 186) In case of chords, all dots should be in a column.
+The dots go along as rests are shifted to avoid collisions.
+
+\mudelafile{dots.fly}
+
Multiple measure rests do not collide with barlines and clefs. They
-are not expanded when you set Score.SkipBars
+are not expanded when you set \verb+Score.SkipBars+. Although the
+multi-measure-rest is a Spanner, minimum distances are set to keep it
+colliding from barlines.
\mudelafile{multi-measure-rest.ly}
\mudelafile{stem-tremolo.ly}
+Chord tremolos look like beams, but are a kind of repeat symbol.
+To avoid confusion, chord tremolo beams do not reach the stems, but
+leave a gap. Chord tremolo beams on half notes are not ambiguous,
+as half notes cannot appear in a regular beam, and should reach the
+stems.
+
+\mudelafile{chord-tremolo.sly}
+
Beams, stems and noteheads often have communication troubles, since
the two systems for y dimensions (1 unit = staffspace, 1 unit = 1
point) are mixed.
-\section{Grace notes}
+Stems, beams, ties and slurs should behave similarly, when placed
+on the middle staff line. Of course stem-direction is down for high
+notes, and up for low notes.
-Grace notes are typeset as an encapsulated piece of music. You can
-have beams, notes, chords, stems etc. within a \verb|\grace|
-section. Slurs that start within a grace section, but aren't ended are
-attached to the next normal note. Grace notes have zero duration
+\mudelafile{stem-direction.sly}
+
+Similarly, if \verb+stem_default_neutral_direction+ is set to \verb+-1+.
+\mudelafile{stem-direction-down.ly}
+
+\section{Scripts}
+
+The staccato dot (and all scripts with follow-into-staff set), must
+not be on staff lines.
+
+\mudelafile{staccato-pos.sly}
+
+\section{Grace notes}
+Grace notes are typeset as an encapsulated piece of music. You can
+have beams, notes, chords, stems etc. within a \verb|\grace| section.
+Slurs that start within a grace section, but aren't ended are attached
+to the next normal note. Grace notes have zero duration. If there
+are tuplets, the grace notes won't be under the brace. Grace notes
+can have accidentals, but they are (currently) spaced at a fixed
+distance. Grace notes (of course) come before the accidentals of the
+main note. Grace notes can also be positioned after the main note.
\mudelafile{grace.ly}
\mudelafile{beaming.ly}
-%Beams should not interfere with various items on the staff (amongst
-%others repeat signs)
-%
-% \mud elafile{beam-repeat.ly}
+Beams should behave reasonably well, even under extreme circumstances.
+Stems may be short, but noteheads should never touch the beam.
+
+\mudelafile{beam-extreme.ly}
+
+Beams should always reach the middle staff line, the second beam
+counting from the note head side, should never be lower than the
+second staff line. This does not hold for grace note beams.
+
+\mudelafile{beam-position.sly}
+
+Slurs should look nice and symmetric. The curvature may increase
+only to avoid noteheads, and as little as possible.
+
+\mudelafile{slur-symmetry.ly}
+\mudelafile{slur-symmetry-1.ly}
+
+Ties are strictly horizontal. They are placed in between note heads.
+The horizontal middle should not overlap with a staffline.
+
+\mudelafile{tie.ly}
Beams can be typeset over fixed distance aligned staffs, beam
beautification doesn't really work, but knees do. Beams should be
\mudelafile{repeat-unfold.ly}
Semi (un)folded behavior. Voltas can start on non-barline moments.
+If they don't barlines should still be shown.
\mudelafile{repeat-semifold.ly}
\mudelafile{repeat-fold.ly}
+\section{Lyrics}
+
+Lyrics can be set to a melody automatically. Excess lyrics will be
+dumped. Lyrics will not be set over rests. You can have melismata
+either by setting a property melismaBusy, or by setting
+automaticMelismas (which will set melismas during slurs and ties). If
+you want a different order than first Music, then Lyrics, you must
+precook a chord of staffs/lyrics and label those. Of course
+\verb+\rhythm+ ignores any other rhythms in the piece. Hyphens and
+extenders do not assume anything about lyric lengths, so they continue
+to work.
+
+\mudelafile{lyric-combine.ly}
+
\section{Multiple notes}
Rests should not collide with beams, stems and noteheads. Rests may
\mudelafile{rest-collision.ly}
-Normal collisions. We have support for four voice polyphony, where the
-middle voices are horizontally shifted in a limited number of cases.
+Normal collisions. We have support for polyphony, where the
+middle voices are horizontally shifted.
\mudelafile{collisions.ly}
The number of stafflines of a staff can be set with the property
-numberOfStaffLines. Ledger lines both on note heads and rests are adjusted.
+numberOfStaffLines. Ledger lines both on note heads and rests are
+adjusted. Barlines also are adjusted.
+
\mudelafile{number-staff-lines.fly}
\mudelafile{stem-spacing.sly}
+If there are accidentals in the music, we add space, but the space
+between note and accidentals is less than between the notes with the
+same value. Clef changes also get extra space, but not as much as
+barlines.
+
+
+Even if a line is very tightly spaced, there will still be room
+between prefatory matter and the following notes. The space after the
+prefatory is very rigid. In contrast, the space before the barline
+must stretch like the space within the measure.
+
+Tight:
+
+\mudelafile{spacing-tight.ly}
+
+Natural:
+
+\mudelafile{spacing-natural.ly}
+
+Loose:
+
+\mudelafile{spacing-loose.ly}
+
+
\section{Global stuff}
Markings that are attached to (invisible) barlines are
\mudelafile{bar-scripts.ly}
Staff margins are also markings attached to barlines. They should be
-left otf the staff, and be centered vertically wrt the staff. They
-may be on normal staffs, but also on compound staffs, like the
-PianoStaff
+left of the staff, and be centered vertically wrt the staff. They may
+be on normal staffs, but also on compound staffs, like the PianoStaff
\mudelafile{staff-margin.ly}
\mudelafile{breathing-sign.ly}
+Fonts are available in a default set of sizes: 11, 13, 16, 20, 23 and
+26pt staffheight. Sizes of the text fonts and symbol fonts are made
+to match the staff dimensions.
+
+\mudelafile{size11.ly}
+
+\mudelafile{size13.ly}
+
+\mudelafile{size16.ly}
+
+\mudelafile{size20.ly}
+
+\mudelafile{size23.ly}
+
+\mudelafile{size26.ly}
+
\section{Clefs and Time Signatures}
The transparent clef should not occupy any space and with style
\texttt{fullSizeChanges}, the changing clef should be typeset in full
size. For octaviated clefs, the ``8'' should appear closely above or
-below the clef respectively. The ``8'' is processed in a rather
-convoluted way, so this is fragile as well.
+below the clef respectively. The ``8'' is processed in a convoluted
+way, so this is fragile as well.
\mudelafile{clefs.ly}
+\def\bla#1{%the input file is too long and does not test for specific bugs
By default, time signatures are written with two numbers. With style
``C'', 4/4 and 2/2 are written with their corresponding symbols and
-with style ``old'', 2/2, 3/2, 3/4, 4/4, 6/4, 9/4, 6/8 and 9/8 are
-typeset with symbols, all other signatures retain the default layout.
-The style ``1'', gives single number signatures for all signatures.
-
-\mudelafile{time.fly}
-
+with style ``old'', 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and
+9/8 are typeset with symbols, all other signatures retain the default
+layout. The style ``1'', gives single number signatures for all
+signatures.
+%
+\mu delafile{time.fly}
+}
\end{document}