]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/regression-test.tely
''
[lilypond.git] / Documentation / regression-test.tely
index e07ea7dfb995e82ccc80740068038fe9c03ba218..141cbd18b5d2c9231f8c9749b0e73f76eb4ddd3c 100644 (file)
 @setfilename regression-test.info
 @settitle LilyPond Regression test
 
+@html
+<!--- @@WEB-TITLE@@=Regression Test --->
+@end html
+
 @c fool ls-latex
 @ignore
 @author Han-Wen Nienhuys and Jan Nieuwenhuizen
 @title LilyPond Regression test
 @end ignore
 
-@node Top, , ,
+@node Top, , , (dir)
 
 @section Introduction
 
-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.
+This document presents 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}
+
+@lilypondfile[printfilename]{rest-ledger.ly}
 
-@mudelafile{rest.ly}
+@lilypondfile[printfilename]{note-head-style.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]{mensural.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]{easy-notation.ly}
 
-@mudelafile{noteheadstyle.ly}
+@lilypondfile[printfilename]{dots.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]{multi-measure-rest.ly}
 
-@mudelafile{dots.ly}
+@lilypondfile[printfilename]{mm-rests2.ly}
 
-Accidentals work: the second note does not get a sharp. The third and
-fourth show forced and courtesy accidentals
+@lilypondfile[printfilename]{rest-pitch.ly}
 
-@mudelafile{accidental.ly}
+@section Accidentals
 
-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. 
+Accidentals are currently in a development stage.
 
+@lilypondfile[printfilename]{accidental.ly}
 
-@mudelafile{multi-measure-rest.ly}
+@lilypondfile[printfilename]{accidental-single-double.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.
+@lilypondfile[printfilename]{accidentals.ly}
 
-@mudelafile{mm-rests2.ly}
+@lilypondfile[printfilename]{accidental-octave.ly}
 
-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]{accidental-voice.ly}
 
-@mudelafile{double-single-acc.ly}
 
 @section Stems
 
-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-tremolo.ly}
 
-@mudelafile{stem-tremolo.ly}
+@lilypondfile[printfilename]{chord-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}
+@lilypondfile[printfilename]{stem-direction.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.
+@lilypondfile[printfilename]{stem-direction-down.ly}
 
-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.
 
-@mudelafile{stem-direction.ly}
+@section Scripts
 
-Similarly, if @code{stem_default_neutral_direction} is set to @code{-1}.
+@lilypondfile[printfilename]{staccato-pos.ly}
 
-@mudelafile{stem-direction-down.ly}
+@lilypondfile[printfilename]{arpeggio.ly}
 
-@section Scripts
+@lilypondfile[printfilename]{glissando.ly}
+
+@lilypondfile[printfilename]{fingering.ly}
+
+@section Dynamics
+
+@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.
+@lilypondfile[printfilename]{dynamics-unbound-hairpin.ly}
 
-@mudelafile{dyn-line.ly}
+@lilypondfile[printfilename]{pedal.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}
 
-@mudelafile{chord-names.ly}
+@lilypondfile[printfilename]{chord-changes.ly}
+
+@section Figured bass
+
+@lilypondfile[printfilename]{figured-bass.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.
+Grace note do weird things with timing. Fragile.
 
-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.
+@lilypondfile[printfilename]{grace.ly}
 
-@mudelafile{grace.ly}
+@lilypondfile[printfilename]{grace-bar-line.ly}
 
-@section Beams, slurs and other spanners
+@lilypondfile[printfilename]{grace-nest2.ly}
 
-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]{grace-nest3.ly}
 
-@mudelafile{beaming.ly}
+@lilypondfile[printfilename]{grace-nest4.ly}
 
-Beams should behave reasonably well, even under extreme circumstances.
-Stems may be short, but noteheads should never touch the beam.
+@lilypondfile[printfilename]{grace-nest5.ly}
 
-@mudelafile{beam-extreme.ly}
+@lilypondfile[printfilename]{grace-nest1.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]{grace-start.ly}
 
-@mudelafile{beam-position.ly}
+@lilypondfile[printfilename]{grace-sync.ly}
 
-Slurs should look nice and symmetric.  The curvature may increase
-only to avoid noteheads, and as little as possible.
+@lilypondfile[printfilename]{grace-bar-number.ly}
 
-@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.
+@section Beams
 
-@mudelafile{tie.ly}
+@lilypondfile[printfilename]{beaming.ly}
 
-When tieing chords, the outer slurs point outwards, the inner slurs
-point away from the center of the staff.  Override with
-@code{tieVerticalDirection}.
+@lilypondfile[printfilename]{beam-concave.ly}
 
-@mudelafile{tie-chord.ly}
+@lilypondfile[printfilename]{beam-extreme.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]{beam-position.ly}
 
-Pitches can be verified by printing them  with the @code{NoteNames} context.
+@lilypondfile[printfilename]{beam-center-slope.ly}
 
-@mudelafile{tie-accidental.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]{auto-beam-bar.ly}
 
-@mudelafile{beam-cross-staff.ly}
+@lilypondfile[printfilename]{beam-over-barline.ly}
 
-The same goes for slurs. They behave decently when broken across
-linebreak.
+@lilypondfile[printfilename]{beam-rest.ly}
 
-@mudelafile{slur-cross-staff.ly}
+@lilypondfile[printfilename]{beam-length.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.
+@lilypondfile[printfilename]{beam-dir-function.ly}
 
-@mudelafile{tup.ly}
+@lilypondfile[printfilename]{auto-knee.ly}
 
-@section Property details
+@lilypondfile[printfilename]{auto-isknee.ly}
 
-More specific settings take precendence over less specific settings. The
-second slur has slurDirection set to down, overriding the stemup  setting.
+@lilypondfile[printfilename]{triplets.ly}
 
-@mudelafile{generic-property-override.ly}
+@lilypondfile[printfilename]{beaming-ternary-metrum.ly}
 
-@section Repeats
+@section  Slurs 
+
+@lilypondfile[printfilename]{slur-nice.ly}
+
+@lilypondfile[printfilename]{slur-symmetry.ly}
+
+@lilypondfile[printfilename]{slur-symmetry-1.ly}
+
+@lilypondfile[printfilename]{slur-broken-trend.ly}
+
+@lilypondfile[printfilename]{slur-attachment.ly}
+
+@lilypondfile[printfilename]{slur-attachment-override.ly}
+
+@lilypondfile[printfilename]{slur-stem-broken.ly}
+
+@lilypondfile[printfilename]{drarn-slurs.ly}
+
+@lilypondfile[printfilename]{phrasing-slur.ly}
+
+@lilypondfile[printfilename]{slur-staccato.ly}
+
+
+@section Ties
+
+@lilypondfile[printfilename]{tie.ly}
+
+@lilypondfile[printfilename]{tie-busy-grobs.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.
+@lilypondfile[printfilename]{tie-chord.ly}
 
-Unfolded behavior:
+@lilypondfile[printfilename]{tie-accidental.ly}
 
-@mudelafile{repeat-unfold.ly}
+@lilypondfile[printfilename]{tup.ly}
 
-Volta (Semi folded) behavior.  Voltas can start on non-barline moments.
-If they don't barlines should still be shown.
+@lilypondfile[printfilename]{tuplet-beam.ly}
 
-@mudelafile{repeat-volta.ly}
+@lilypondfile[printfilename]{tuplet-staffline-collision.ly}
 
-Folded.  This doesn't make sense without alternatives, but it works.
+@lilypondfile[printfilename]{tuplet-nest.ly}
 
-@mudelafile{repeat-fold.ly}
 
-Across linebreaks, the left edge of a first and second alternative
-bracket should be equal
+@section Property details
+
+@lilypondfile[printfilename]{generic-property-override.ly}
+
+
+
+@section Repeats
+
+@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}
+
+@lilypondfile[printfilename]{lyrics-multi-stanza.ly}
+
+@lilypondfile[printfilename]{lyric-phrasing.ly}
+
 
-@mudelafile{lyric-combine.ly}
 
 @section Multiple notes
 
-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.
+@lilypondfile[printfilename]{rest-collision.ly}
 
-@mudelafile{rest-collision.ly}
+@lilypondfile[printfilename]{collisions.ly}
 
-Normal collisions. We have support for polyphony, where the
-middle voices are horizontally shifted.
+@lilypondfile[printfilename]{collision-dots.ly}
 
-@mudelafile{collisions.ly}
+@lilypondfile[printfilename]{collision-mesh.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]{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
+@lilypondfile[printfilename]{spacing-accidental.ly}
 
-@mudelafile{stem-spacing.ly}
+@lilypondfile[printfilename]{spacing-accidental-staffs.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-folded-clef.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-ended-voice.ly}
 
-Tight:
+@lilypondfile[printfilename]{spacing-stem-direction.ly}
 
-@mudelafile{spacing-tight.ly}
+@lilypondfile[printfilename]{spacing-stem-same-direction.ly}
 
-Natural:
+@lilypondfile[printfilename]{spacing-individual-tuning.ly}
 
-@mudelafile{spacing-natural.ly}
+@lilypondfile[printfilename]{spacing-note-flags.ly}
 
-Loose:
+@lilypondfile[printfilename]{spacing-rest.ly}
 
-@mudelafile{spacing-loose.ly}
+@lilypondfile[printfilename]{lyrics-bar.ly}
 
-Adding a @code{Bar_engraver} to the LyricsVoice context makes sure that
-lyrics don't collide with barlines.
+@lilypondfile[printfilename]{spacing-knee.ly}
 
-@mudelafile{lyrics-bar.ly}
 
-Text is set with empty horizontal dimensions.  The boolean property
-textNonEmpty is used to respect the horizontal size of text.
 
-@mudelafile{non-empty-text.ly}
+@lilypondfile[printfilename]{non-empty-text.ly}
 
-@section Global stuff
+@lilypondfile[printfilename]{prefatory-spacing-matter.ly}
 
-Breaks can be encouraged and discouraged using @code{\break} and
-@code{\nobreak}.  They are abbrevs for @code{\penalty} commands.
+@lilypondfile[printfilename]{spacing-clef-first-note.ly}
 
-@mudelafile{break.ly}
+@lilypondfile[printfilename]{spacing-bar-stem.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.
+@c @l ilypondfile[printfilename]{spacing-tight.ly}
 
-@mudelafile{bar-scripts.ly}
+@c @l ilypondfile[printfilename]{spacing-natural.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
+@c @l ilypondfile[printfilename]{spacing-loose.ly}
 
-@mudelafile{staff-margin.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:
 
-@mudelafile{breathing-sign.ly}
+@section PianoStaff
 
-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]{beam-cross-staff.ly}
 
-@mudelafile{hara-kiri-short.ly}
+@lilypondfile[printfilename]{slur-cross-staff.ly}
 
+@lilypondfile[printfilename]{percent-repeat.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]{auto-change.ly}
 
-@mudelafile[nofly]{size11.ly}
+@lilypondfile[printfilename]{follow-thread.ly}
 
-@mudelafile[nofly]{size13.ly}
 
-@mudelafile[nofly]{size16.ly}
 
-@mudelafile[nofly]{size20.ly}
+@section Global stuff
 
-@mudelafile[nofly]{size23.ly}
+@lilypondfile[printfilename]{break.ly}
 
-@mudelafile[nofly]{size26.ly}
+@lilypondfile[printfilename]{bar-number.ly}
 
+@lilypondfile[printfilename]{span-bar.ly}
 
-@section Clefs and Time Signatures
+@lilypondfile[printfilename]{bar-scripts.ly}
 
-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.
+@lilypondfile[printfilename]{staff-margin.ly}
 
-@mudelafile{clefs.ly}
+@lilypondfile[printfilename]{breathing-sign.ly}
 
+@lilypondfile[printfilename]{hara-kiri-short.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.
+@lilypondfile[printfilename]{part-combine.ly}
 
-@mudelafile{keys.ly}
+@lilypondfile[printfilename]{font-magnification.ly}
 
+@lilypondfile[printfilename]{system-extents.ly}
 
+@lilypondfile[printfilename,nofragment]{size11.ly}
 
+@lilypondfile[printfilename,nofragment]{size13.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,nofragment]{size16.ly}
 
+@lilypondfile[printfilename,nofragment]{size20.ly}
+
+@lilypondfile[printfilename,nofragment]{size23.ly}
+
+@lilypondfile[printfilename,nofragment]{size26.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.
+@section Clefs and Time Signatures
+
+@lilypondfile[printfilename]{clefs.ly}
+
+@lilypondfile[printfilename]{keys.ly}
+
+@lilypondfile[printfilename]{key-signature-scordatura.ly}
+
+@section Hacks and Features
 
-@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