X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fregression-test.tely;h=1f9b51238b03e881f93f93068a1de5dbd3ce3964;hb=7ce39dc5ed0387b639ca5de2448e2fffbd4e8e76;hp=9cdf84384116c188709400d8ea5db45a08b662ea;hpb=bc1e5cfa4aef13a1b9bd2d251dd9cb25dbaf9d03;p=lilypond.git diff --git a/Documentation/regression-test.tely b/Documentation/regression-test.tely index 9cdf843841..1f9b51238b 100644 --- a/Documentation/regression-test.tely +++ b/Documentation/regression-test.tely @@ -8,403 +8,246 @@ @title LilyPond Regression test @end ignore -@node Top, , , +@node Top, , , (dir) @section Introduction -This document tries give an brief overview of LilyPond features. When +This document tries give a brief overview of LilyPond features. When the text correspond with the shown notation, we consider LilyPond Officially BugFree (tm). This document is intended for finding bugs, and documenting bugfixes. @section Notes and rests -Rests. Note that the dot of 8th, 16th and 32nd rests rest should be -next to the top of the rest. All rests except the whole rest are -centered on the middle staff line. +@lilypondfile[printfilename]{rest.ly} -@mudelafile{rest.ly} +@lilypondfile[printfilename]{rest-ledger.ly} -Note head shapes are settable. The stem endings should be adjusted -per note head. If you want different note head styles on one stem, -you must create a special context called Thread. +@lilypondfile[printfilename]{note-head-style.ly} -Harmonic notes have a different shape and different -dimensions. Nevertheless, noteheads in both styles can be combined, on -either up or down stems. +@lilypondfile[printfilename]{mensural.ly} -@mudelafile{noteheadstyle.ly} +@lilypondfile[printfilename]{easy-notation.ly} -Noteheads can have dots, and 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. +@lilypondfile[printfilename]{dots.ly} -@mudelafile{dots.ly} +@lilypondfile[printfilename]{accidental.ly} -Accidentals work: the second note does not get a sharp. The third and -fourth show forced and courtesy accidentals +@lilypondfile[printfilename]{multi-measure-rest.ly} -@mudelafile{accidental.ly} +@lilypondfile[printfilename]{mm-rests2.ly} -Multiple measure rests do not collide with barlines and clefs. They -are not expanded when you set @code{Score.skipBars}. Although the -multi-measure-rest is a Spanner, minimum distances are set to keep it -colliding from barlines. +@lilypondfile[printfilename]{accidental-single-double.ly} -@mudelafile{multi-measure-rest.ly} - -If @code{Score.skipBars} is set, -the signs for four, two, and one measure rest are combined to -produce the graphical representation of rests for up to 10 bars. -The number of bars will be written above the sign. - -@mudelafile{mm-rests2.ly} +@section Stems -A sharp sign after a double sharp sign, as well as a flat sign -after a double flat sign is automatically prepended with a -natural sign. +@lilypondfile[printfilename]{stem-tremolo.ly} -@mudelafile{double-single-acc.ly} +@lilypondfile[printfilename]{chord-tremolo.ly} -@section Stems +@lilypondfile[printfilename]{stem-direction.ly} -Stem tremolos or rolls are tremolo signs that look like beam segments -crossing stems. If the stem is in a beam, the tremolo must be parallel -to the beam. If the stem is invisible (eg. on a whole note), the -tremolo must be centered on the note. +@lilypondfile[printfilename]{stem-direction-down.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.ly} -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 Scripts -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. +@lilypondfile[printfilename]{staccato-pos.ly} -@mudelafile{stem-direction.ly} +@lilypondfile[printfilename]{arpeggio.ly} -Similarly, if @code{stem_default_neutral_direction} is set to @code{-1}. +@lilypondfile[printfilename]{glissando.ly} -@mudelafile{stem-direction-down.ly} +@section Dynamics -@section Scripts +@lilypondfile[printfilename]{dynamics-line.ly} -The staccato dot (and all scripts with follow-into-staff set), must -not be on staff lines. +@lilypondfile[printfilename]{hairpin-ending.ly} -@mudelafile{staccato-pos.ly} +@lilypondfile[printfilename]{dynamics-broken-hairpin.ly} -Dynamics appear below or above the staff. If multiple dynamics are -linked with (de)crescendi, they should be on the same line. -@mudelafile{dyn-line.ly} @section Chord names -Chord names are generated from a list pitches, and are customisable -from guile. For some unlogical names, guile customisation is used -by default. +@lilypondfile[printfilename]{chord-names.ly} +@lilypondfile[printfilename]{chord-changes.ly} + -@mudelafile{chord-names.ly} @section Grace notes -Grace notes are typeset as an encapsulated piece of music. You can -have beams, notes, chords, stems etc. within a @code{\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. +@lilypondfile[printfilename]{grace.ly} -Grace notes without beams should have a slash, if @code{flagStyle} is -not set. Main note scripts don't end up on the grace note. -@mudelafile{grace.ly} -@section Beams, slurs and other spanners +@section Beams -Beaming is generated automatically. Beams may cross bar lines. In that -case, line breaks are forbidden. Yet clef and key signatures are -hidden just as with breakable bar lines. +@lilypondfile[printfilename]{beaming.ly} -@mudelafile{beaming.ly} +@lilypondfile[printfilename]{beam-extreme.ly} -Beams should behave reasonably well, even under extreme circumstances. -Stems may be short, but noteheads should never touch the beam. +@lilypondfile[printfilename]{beam-position.ly} -@mudelafile{beam-extreme.ly} +@lilypondfile[printfilename]{auto-beam-bar.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. -Override with @code{noStemExtend}. +@lilypondfile[printfilename]{beam-rest.ly} -@mudelafile{beam-position.ly} +@lilypondfile[printfilename]{beam-length.ly} -Slurs should look nice and symmetric. The curvature may increase -only to avoid noteheads, and as little as possible. +@lilypondfile[printfilename]{beam-dir-function.ly} -@mudelafile{slur-symmetry.ly} -@mudelafile{slur-symmetry-1.ly} +@lilypondfile[printfilename]{auto-knee.ly} -Ties are strictly horizontal. They are placed in between note heads. -The horizontal middle should not overlap with a staffline. +@lilypondfile[printfilename]{auto-isknee.ly} -@mudelafile{tie.ly} +@lilypondfile[printfilename]{triplets.ly} -When tieing chords, the outer slurs point outwards, the inner slurs -point away from the center of the staff. Override with -@code{tieVerticalDirection}. +@section Slurs -@mudelafile{tie-chord.ly} +@lilypondfile[printfilename]{slur-nice.ly} -When tieing notes with accidentals across a bar boundary, the accidental -must not be drawn on the note in the new bar. Instead, the next note of -the same pitch in this bar should always show the accidental (even if -it's natural). Slurring a accidentaled note to a natural one across bar -boundaries should be explicit. +@lilypondfile[printfilename]{slur-symmetry.ly} -Pitches can be verified by printing them with the @code{NoteNames} context. +@lilypondfile[printfilename]{slur-symmetry-1.ly} -@mudelafile{tie-accidental.ly} +@lilypondfile[printfilename]{slur-broken-trend.ly} -Beams can be typeset over fixed distance aligned staffs, beam -beautification doesn't really work, but knees do. Beams should be -behave well, wherever the switching point is. +@lilypondfile[printfilename]{slur-attachment.ly} -@mudelafile{beam-cross-staff.ly} +@lilypondfile[printfilename]{slur-attachment-override.ly} -The same goes for slurs. They behave decently when broken across -linebreak. +@lilypondfile[printfilename]{drarn-slurs.ly} -@mudelafile{slur-cross-staff.ly} +@lilypondfile[printfilename]{phrasing-slur.ly} -Tuplets are indicated by a bracket with a number. There should be no -bracket if there is one beam that matches the length of the tuplet. -The bracket does not interfere with the stafflines, and the number is -centered in the gap in the bracket. +@section Ties -@mudelafile{tup.ly} +@lilypondfile[printfilename]{tie.ly} -@section Property details +@lilypondfile[printfilename]{tie-chord.ly} -More specific settings take precendence over less specific settings. The -second slur has slurDirection set to down, overriding the stemup setting. +@lilypondfile[printfilename]{tie-accidental.ly} -@mudelafile{generic-property-override.ly} -@section Repeats +@lilypondfile[printfilename]{tup.ly} -LilyPond has three modes for repeats: folded, unfolded and -semi-unfolded. Unfolded repeats are fully written out. Semi unfolded -repeats have the body written and all alternatives sequentially. -Folded repeats have the body written and all alternatives -simultaneo.ly. If the number of alternatives is larger than the -repeat count, the excess alternatives are ignored. If the number of -alternatives is smaller, the first alternative is multiplied to get to -the number of repeats. -Unfolded behavior: -@mudelafile{repeat-unfold.ly} +@section Property details -Volta (Semi folded) behavior. Voltas can start on non-barline moments. -If they don't barlines should still be shown. +@lilypondfile[printfilename]{generic-property-override.ly} -@mudelafile{repeat-volta.ly} -Folded. This doesn't make sense without alternatives, but it works. -@mudelafile{repeat-fold.ly} +@section Repeats -Across linebreaks, the left edge of a first and second alternative -bracket should be equal +@lilypondfile[printfilename]{repeat-unfold.ly} -@mudelafile{repeat-line-break.ly} +@lilypondfile[printfilename]{repeat-volta.ly} +@lilypondfile[printfilename]{repeat-fold.ly} +@lilypondfile[printfilename]{repeat-line-break.ly} + +@lilypondfile[printfilename]{volta-broken-left-edge.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 -@code{\rhythm} ignores any other rhythms in the piece. Hyphens and -extenders do not assume anything about lyric lengths, so they continue -to work. +@lilypondfile[printfilename]{lyric-combine.ly} -@mudelafile{lyric-combine.ly} +@lilypondfile[printfilename]{lyrics-multi-stanza.ly} -@section Multiple notes +@lilypondfile[printfilename]{lyric-phrasing.ly} -Rests should not collide with beams, stems and noteheads. Rests may -be under beams. Rests should be move by integral number of spaces -inside the staff, and by half spaces outside. Notice that the half -and whole rests just outside the staff get ledger lines in different -cases. -@mudelafile{rest-collision.ly} -Normal collisions. We have support for polyphony, where the -middle voices are horizontally shifted. +@section Multiple notes -@mudelafile{collisions.ly} +@lilypondfile[printfilename]{rest-collision.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. Barlines also are adjusted. +@lilypondfile[printfilename]{collisions.ly} +@lilypondfile[printfilename]{number-staff-lines.ly} -@mudelafile{number-staff-lines.ly} -@section Spacing -In a limited number of cases, LilyPond corrects for optical spacing -effects. In this example, space for opposite pointed stems is adjusted +@section Spacing -@mudelafile{stem-spacing.ly} +@lilypondfile[printfilename]{stem-spacing.ly} -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. +@lilypondfile[printfilename]{spacing-tight.ly} +@lilypondfile[printfilename]{spacing-natural.ly} -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. +@lilypondfile[printfilename]{spacing-loose.ly} -Tight: +@lilypondfile[printfilename]{lyrics-bar.ly} -@mudelafile{spacing-tight.ly} +@lilypondfile[printfilename]{non-empty-text.ly} -Natural: -@mudelafile{spacing-natural.ly} -Loose: +@section PianoStaff -@mudelafile{spacing-loose.ly} +@lilypondfile[printfilename]{beam-cross-staff.ly} -Adding a @code{Bar_engraver} to the LyricsVoice context makes sure that -lyrics don't collide with barlines. +@lilypondfile[printfilename]{slur-cross-staff.ly} -@mudelafile{lyrics-bar.ly} +@lilypondfile[printfilename]{percent-repeat.ly} -@section Global stuff +@lilypondfile[printfilename]{auto-change.ly} -Breaks can be encouraged and discouraged using @code{\break} and -@code{\nobreak}. They are abbrevs for @code{\penalty} commands. +@lilypondfile[printfilename]{follow-thread.ly} -@mudelafile{break.ly} -Markings that are attached to (invisible) barlines are -delicate: the are attached to the rest of the score without the score -knowing it. Consequently, they fall over often. +@section Global stuff -@mudelafile{bar-scripts.ly} +@lilypondfile[printfilename]{break.ly} -Staff margins are also markings attached to barlines. They should be -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 +@lilypondfile[printfilename]{bar-number.ly} -@mudelafile{staff-margin.ly} +@lilypondfile[printfilename]{bar-scripts.ly} -Breathing signs, also used for phrasing, do normally not influence -global spacing -- only if space gets tight, notes are shifted to make -room for the breathing sign. Breathing signs break beams running -through their voice. In the following example, the notes in the first -two measures all have the same distance from each other: +@lilypondfile[printfilename]{staff-margin.ly} -@mudelafile{breathing-sign.ly} +@lilypondfile[printfilename]{breathing-sign.ly} -Hara kiri staffs kill themselves if they are empty. This example really -contains two staffs, but the second contains only spaces, and is -therefore removed. +@lilypondfile[printfilename]{hara-kiri-short.ly} -@mudelafile{hara-kiri-short.ly} +@lilypondfile[printfilename]{part-combine.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. +@lilypondfile[printfilename,nofragment]{size11.ly} -@mudelafile[nofly]{size11.ly} +@lilypondfile[printfilename,nofragment]{size13.ly} -@mudelafile[nofly]{size13.ly} +@lilypondfile[printfilename,nofragment]{size16.ly} -@mudelafile[nofly]{size16.ly} +@lilypondfile[printfilename,nofragment]{size20.ly} -@mudelafile[nofly]{size20.ly} +@lilypondfile[printfilename,nofragment]{size23.ly} -@mudelafile[nofly]{size23.ly} +@lilypondfile[printfilename,nofragment]{size26.ly} -@mudelafile[nofly]{size26.ly} @section Clefs and Time Signatures -The transparent clef should not occupy any space and with style -@code{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 convoluted -way, so this is fragile as well. - -@mudelafile{clefs.ly} - - -Key signatures appear on key changes. They may also -appear without barlines. The restoration accidentals are not printed at -the start of the line. If @code{createKeyOnClefChange} is set, they're -also created on a clef change. - -@mudelafile{keys.ly} - -@ignore -@c 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, 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.ly} -@end ignore - +@lilypondfile[printfilename]{clefs.ly} +@lilypondfile[printfilename]{keys.ly} @section Hacks and Features -As a last resort, the placement of items can be adjusted manually, by -setting the @code{extra-offset} of an output object. - -@mudelafile{generic-output-property.ly} +@lilypondfile[printfilename]{generic-output-property.ly} -The same mechanism can be used to force pagebreaks. +@lilypondfile[printfilename]{between-systems.ly} -@mudelafile{between-systems.ly} +@lilypondfile{molecule-hacking.ly} @bye