*** NOTE
- This license applies to all files that do not explicitely
+ This license applies to all files that do not explicitly
specify another license. This license does not apply to the included
example input files (which are in the subdirectory input/).
2004-03-22 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * spelling patch courtesy Edward Sutton.
+
* Documentation/user/changing-defaults.itely (Changing context
default settings): new node.
(Defining new contexts): new node.
The images below illustrate the difference between traditional
engraving and typical computer output, and the third picture shows how
-LilyPond mimicks the traditional look. The left picture shows a scan
+LilyPond mimics the traditional look. The left picture shows a scan
of a flat symbol from a Henle edition published in 2000. In the center
show symbol from a hand engraved B@"{a}renreiter edition of the same
music. The left scan illustrates typical flaws of computer print: the
ten years to become true masters, how could we simple hackers ever
write a program to take over their jobs?
-The answer is: we cannot. Typography relies on human judgement of
+The answer is: we cannot. Typography relies on human judgment of
appearance, so people cannot be replaced ultimately. However, much of
the dull work can be automated. If LilyPond solves most of the common
situations correctly, then this will be a huge improvement over
be fixed by us at compile time, but they must be accessible for users
at run-time.
-@item Engraving is a matter of visual judgement, and therefore a matter of
+@item Engraving is a matter of visual judgment, and therefore a matter of
taste. As knowledgeable as we are, users can disagree with our
personal decisions. Therefore, the definitions of typographical style
must also be accessible to the user.
@cindex bitmap
@cindex pixmap
@cindex thumbnail
-@cindex screenshot
+@cindex screen shot
@item -s,--set=@var{key}=@var{val}
Add @var{key}= @var{val} to the settings, overriding those specified
system defaults from within Scheme.}
We strongly advise against making LilyPond formatting available
-through a webserver. That is, processing input from untrusted users,
+through a web server. That is, processing input from untrusted users,
and returning the resulting PDF file. LilyPond is a big and complex
program. It was not written with security in mind. Making it available
to the outside world is a huge risk; consider the security
@node Point and click
@section Point and click
-@cindex poind and click
+@cindex point and click
@cindex source specials
@cindex specials, source
@example
#(ly:set-point-and-click 'line-column)
@end example
-@cindex line-colomn-location
+@cindex line-column-location
and set @code{XEDITOR} to @code{emacsclient --no-wait +%l:%c %f}. Vim
users can set @var{XEDITOR} to @code{gvim --remote +:%l:norm%c| %f}.
Program reference: the bar line objects that are created at
@internalsref{Staff} level are called @internalsref{BarLine}, the bar
-lines that span staves are @internalsref{SpanBar}s.
+lines that span staves are @internalsref{SpanBar} objects.
@cindex bar lines at start of system
@cindex start of system
@internalsref{Lyrics}s are marked @code{duet-1} and @code{duet-2}:
@example
\context Lyrics = "duet-1" @{
- Hi, my name is bert. @}
+ Hi, my name is Bert. @}
\context Lyrics = "duet-2" @{
Ooooo, ch\'e -- ri, je t'aime. @}
@end example
g2 e4 a2 f4 g2. }
\lyrics << \lyricsto "duet" \new Lyrics {
\set vocNam = "Bert"
- Hi, my name is bert. }
+ Hi, my name is Bert. }
\lyricsto "duet" \new Lyrics {
\set vocNam = "Ernie"
Ooooo, ch\'e -- ri, je t'aime.
g2 e4 a2 f4 g2. }
\lyrics \lyricsto "duet" \new Lyrics {
\set vocNam = "1. "
- Hi, my name is bert.
+ Hi, my name is Bert.
}
>>
@end lilypond
@cindex Sound
Entered music can also be converted to MIDI output. The performance
-is intented for proof-hearing the music for errors.
+is intended for proof-hearing the music for errors.
Ties, dynamics and tempo changes are interpreted. Dynamic marks,
crescendi and decrescendi translate into MIDI volume levels. Dynamic
One can not feed the @code{#:line} (resp @code{#:center},
@code{#:column}) command with a variable or the result of a function
-call. Eg:
+call. E.g.:
@lisp
(markup #:line (fun-that-returns-markups))
@end lisp
c d e f g a b
@end lilypond
-The duration of a note is specfied by a number after the note name.
+The duration of a note is specified by a number after the note name.
@samp{1} for a @rglos{whole note}, @samp{2} for a @rglos{half note},
and so on
@cindex xdvi
The result is the file @file{test.pdf}@footnote{For @TeX{}
-afficionados: there is also a @file{test.dvi} file. It can be viewed
+aficionados: there is also a @file{test.dvi} file. It can be viewed
with @code{xdvi}. The DVI uses a lot of PostScript specials, which do
not show up in the magnifying glass. The specials also mean that the
DVI file cannot be processed with @code{dvilj}. Use @code{dvips} for
viewing and printing PDF and PostScript files.}
On Windows, start up a text-editor@footnote{Any programmer-oriented
-editor will do, for example NotePad. Do not use word processor. Its
+editor will do, for example Notepad. Do not use word processor. Its
formatting codes will confuse LilyPond} and enter
parallel. Two voices that should play at the same time, are entered as
a simultaneous combination of two sequences. A ``simultaneous'' music
expression is formed by enclosing expressions in @code{<<} and
-@code{>>}. In the following example, three sequences (all contaning
+@code{>>}. In the following example, three sequences (all containing
two notes) are combined simultaneously:
@lilypond[verbatim,relative=2]
\chords { c2 f4:m g4:maj7 gis1:dim7 }
@end lilypond
-For leadsheets, chords are not printed on staves, but as names on a
+For lead sheets, chords are not printed on staves, but as names on a
line of themselves. Hence, we have to override the context with
@code{\new}, rendering the music expression in a @code{ChordNames}
context
;;; where
;;;
;;; function = begin or end
-;;; shortest-duration-in-beam = numerator denominator; eg: 1 16
-;;; time-signature = numerator denominator, eg: 4 4
+;;; shortest-duration-in-beam = numerator denominator; e.g.: 1 16
+;;; time-signature = numerator denominator, e.g.: 4 4
;;;
;;; unspecified or wildcard entries for duration or time-signature
;;; are given by * *
(alignBassFigureAccidentals ,boolean?
"If true, then the accidentals are aligned in bass figure context.")
- (allowBeamBreak ,boolean? "If true allow line breaks for beams over barlines.")
+ (allowBeamBreak ,boolean? "If true allow line breaks for beams over bar lines.")
(associatedVoice ,string? "Name of the
@code{Voice} that has the melody for this @code{Lyrics} line.")
(autoBeamSettings ,list? "Specifies
list of @code{BassFigureEvent}s, a context, and the grob to format.")
(beatLength ,ly:moment? "The length of one beat in this time signature.")
(beatGrouping ,list?
- "List of beatgroups. Eg. in 5/8 time @code{'(2 3)}.")
+ "List of beatgroups, e.g., in 5/8 time @code{'(2
+3)}.")
(connectArpeggios ,boolean? " If set, connect arpeggios across
piano staff.")
(createKeyOnClefChange ,boolean? "Print a key signature whenever the clef is changed.")
- (crescendoText ,markup? "Text to print at start of non-hairpin crecscendo, ie: @samp{cresc.}")
+ (crescendoText ,markup? "Text to print at start of non-hairpin crescendo, i.e.: @samp{cresc.}")
(crescendoSpanner ,symbol? "Type of spanner to be used for crescendi.
One of: @samp{hairpin}, @samp{line}, @samp{dashed-line},
@samp{dotted-line}. If unset, hairpin type is used.")
- (decrescendoText ,markup? "Text to print at start of non-hairpin decrecscendo, ie: @samp{dim.}")
+ (decrescendoText ,markup? "Text to print at start of non-hairpin decrescendo, i.e.: @samp{dim.}")
(drumPitchTable ,hash-table? "A table mapping percussion
instruments (symbols) to pitches.")
@samp{timbales-style}, @samp{congas-style}, @samp{bongos-style} and
@samp{percussion-style}.
-The layout style is a hash table, containing the drum-pitches (eg. the
+The layout style is a hash table, containing the drum-pitches (e.g. the
symbol @samp{hihat}) as key, and a list (@var{notehead-style}
@var{script} @var{vertical-position}) as values.
")
(currentBarNumber ,integer? "Contains the current barnumber. This property is incremented at
-every barline.
+every bar line.
")
(defaultBarType ,string? "Sets the default type of bar line.
See @code{whichBar} for information on available bar types.
the system/staff? Set to @code{SystemStartBrace},
@code{SystemStartBracket} or @code{SystemStartBar}.")
- (tablatureFormat ,procedure? "Function formatting a tab notehead; it
+ (tablatureFormat ,procedure? "Function formatting a tab note head; it
takes a string number, a list of string tunings and Pitch object. It
returns the text as a string.")
(whichBar
,string?
- "This property is read to determine what type of barline to create.
+ "This property is read to determine what type of bar line to create.
Example:
@example
(finalizations ,list? "List of expressions to evaluate before proceeding to next time step. Internal variable.")
(busyGrobs ,list? "a queue of (@var{end-moment} . @var{GROB})
conses. This is for internal (C++) use only. This property contains
-the grobs which are still busy (eg. noteheads, spanners, etc.)
+the grobs which are still busy (e.g. note heads, spanners, etc.)
")
- (barCheckLastFail ,ly:moment? "Where in the measurze did the last barcheck fail?")
+ (barCheckLastFail ,ly:moment? "Where in the measure did the last barcheck fail?")
(associatedVoiceContext ,ly:context? "The context object of the Voice that has the melody for this Lyrics.")
(acceptHashTable ,vector? "Internal
variable: store table with MusicName to Engraver entries.")
documentation here].")
- (auto-knee-gap ,ly:dimension? "If a gap is found between noteheads
+ (auto-knee-gap ,ly:dimension? "If a gap is found between note heads
where a horizontal beam fits that is larger than this number, make a kneed beam.")
(axes ,list? "list of axis numbers.
In the case of alignment grobs, this should contain only one number.")
potential line breaks.")
(between-cols ,pair? "Where to attach a loose column to")
(between-system-string ,string? "string
- to dump between two systems. Useful for forcing pagebreaks.")
+ to dump between two systems. Useful for forcing page breaks.")
(bracket-thick ,number? "width of a system start bracket.")
(break-align-symbol ,symbol? "This key is used for aligning and
spacing breakable items.")
time-signature))
@end example")
(break-glyph-function ,procedure? "This function determines the
-appearance of a barline at the line break. It takes a glyph and
+appearance of a bar line at the line break. It takes a glyph and
break-direction and returns the glyph at a line break.")
(breakable ,boolean? "Can this object appear at a line break,
-like clefs and barlines?")
+like clefs and bar lines?")
(c0-position ,integer? "An integer indicating the position of
middle C.")
(cautionary-style ,symbol? "How to print cautionary
(cautionary ,boolean? "Is this a cautionary accidental?")
(concaveness-gap ,ly:dimension? "A beam is printed horizontally
if its concaveness-gap is larger than this value. The concaveness-gap
-is the distance of an inner notehead to the line between two outer
-noteheads. ")
+is the distance of an inner note head to the line between two outer
+note heads. ")
(concaveness-threshold ,number? "A beam is printed horizontally
if its concaveness is bigger than this threshold.
Concaveness is calculated as the sum of the vertical distances of
-inner noteheads that fall outside the interval of the two outer
-noteheads, to the vertically nearest outer notehead, divided by the
+inner note heads that fall outside the interval of the two outer
+note heads, to the vertically nearest outer note head, divided by the
square of the inner notes involved.")
(collapse-height ,ly:dimension? "Minimum height of system start delimiter. If equal or smaller, the bracket is removed.")
(direction ,ly:dir? "Up or down, left or right?")
(dot-count ,integer? "The number of dots.")
- (duration-log ,integer? "The 2-log of the notehead duration, i.e. 0=whole note, 1 = half note, etc.")
+ (duration-log ,integer? "The 2-log of the note head duration, i.e. 0=whole note, 1 = half note, etc.")
(edge-height ,pair? "A pair of number specifying the heights of
the vertical edges '(@var{left-height} . @var{right-height}).")
(bracket-flare ,number-pair? "A pair of numbers specifying how
;; docme.
(extremity-offset-alist ,list? "The offset adds to the centre of
-the notehead, or stem.
+the note head, or stem.
Format: alist (attachment stem-dir*dir slur-dir*dir) -> offset.
")
of the @code{spacing-increment}.")
(grow-direction ,ly:dir? "Crescendo or decrescendo?")
- (hair-thickness ,number? "Thickness of the thin line in a barline.")
+ (hair-thickness ,number? "Thickness of the thin line in a bar line.")
(height ,ly:dimension? "Height of an object in staffspace.")
(height-limit ,ly:dimension? "Maximum slur height: the longer the
slur, the closer it is to this height.")
of note-column for horizontal shifting. This is used by
@internalsref{note-collision-interface}.")
(kern ,ly:dimension? "Amount of extra white space to add. For
-barline, this is the amount of space after a thick line.")
+bar line, this is the amount of space after a thick line.")
(knee ,boolean? "Is this beam kneed?")
(knee-spacing-correction ,number? "Factor for the optical
correction amount for kneed beams. Set between 0 for no correction and
objects in higher layers.")
(ledger-line-thickness ,number-pair?
"The thickness of ledger lines: it is the
-sum of 2 numbers. The first is the factor for linethickness, and the
+sum of 2 numbers. The first is the factor for line thickness, and the
second for staff space. Both contributions are added.")
(left-position ,number? "Vertical position of left part of spanner.")
(left-padding ,ly:dimension? "The amount of space that is put
(measure-count ,integer? "The number of measures for a
multimeasure rest.")
(merge-differently-headed ,boolean? "Merge
-noteheads in collisions, even if they have different note heads. The
+note heads in collisions, even if they have different note heads. The
smaller of the two heads will be rendered invisible. This used
polyphonic guitar notation. The value of this setting is used by
@internalsref{note-collision-interface} .")
- (merge-differently-dotted ,boolean? "Merge noteheads in
+ (merge-differently-dotted ,boolean? "Merge note heads in
collisions, even if they have a different number of dots. This normal
notation for some types of polyphonic music. ")
"The most common shortest note length.
This is used in spacing. Enlarging this will set the score tighter.")
(shortest-duration-space ,ly:dimension? "Start with this much
-space for the shortest duration. This is explessed in
+space for the shortest duration. This is expressed in
@code{spacing-increment} as unit. See also
@internalsref{spacing-spanner-interface}.")
(shortest-playing-duration ,ly:moment? "The duration of the shortest playing here.")
steeper than this.")
(space-alist ,list? "A table that specifies distances between
-prefatory itmes, like clef and time-signature. The format is an alist
+prefatory items, like clef and time-signature. The format is an alist
of spacing tuples: @code{(@var{break-align-symbol} @var{type}
. @var{distance})}, where @var{type} can be the symbols
@code{minimum-space} or @code{extra-space}.")
staff lines.")
(stem-attachment-function ,procedure? "A function that calculates
-where a stem attaches to the notehead? This is a fallback when this
+where a stem attaches to the note head? This is a fallback when this
information is not specified in the font. The function takes a grob
and axis argument, and returns a (@var{x} . @var{y}) pair, specifying
location in terms of note head bounding box.")
(word-space ,ly:dimension? "space to insert between lyrics or
words in texts.")
(width ,ly:dimension? "The width of a grob measured in staff space.")
- (x-gap ,ly:dimension? "The horizontal gap between notehead and tie.")
+ (x-gap ,ly:dimension? "The horizontal gap between note head and tie.")
(y-free ,ly:dimension? "The minimal vertical gap between slur and
-noteheads or stems.")
+note heads or stems.")
(y-offset ,ly:dimension? "Extra vertical offset for ties away
from the center line.")
(zigzag-length ,ly:dimension? "The length of the lines of a
(rest ,ly:grob? "the staff symbol grob that we're in.")
(rest-collision ,ly:grob? "rest collision that a rest is in.")
(accidental-grob ,ly:grob? "Accidental for this note.")
- (bars ,grob-list? "list of barline pointers.")
+ (bars ,grob-list? "list of bar line pointers.")
(bounded-by-me ,grob-list? "list of spanners that have this
column as start/begin point. Only columns that have grobs or act as bounds are spaced.")
(columns ,grob-list? "list of grobs, typically containing
(deminutum ,boolean? "is this neume deminished?")
(flexa-height ,ly:dimension? "height of a flexa shape in a ligature grob in staff_space.")
(flexa-width ,ly:dimension? "width of a flexa shape in a ligature grob in staff_space.")
- (join-heads ,boolean? "Whether to join the noteheads of an ambitus grob with a vertical line.")
+ (join-heads ,boolean? "Whether to join the note heads of an ambitus grob with a vertical line.")
(linea ,boolean? "attach vertical lines to this neume?")
arg))
(def-markup-command (fontsize paper props mag arg) (number? markup?)
- "This sets the relative font size, eg.
+ "This sets the relative font size, e.g.
@example
A \\fontsize #2 @{ B C @} D
@end example
(def-markup-command (dynamic paper props arg) (markup?)
"Use the dynamic font. This font only contains @b{s}, @b{f}, @b{m},
-@b{z}, @b{p}, and @b{r}. When producing phrases, like ``piu @b{f}'', the
-normal words (like ``piu'') should be done in a different font. The
+@b{z}, @b{p}, and @b{r}. When producing phrases, like ``più @b{f}'', the
+normal words (like ``più'') should be done in a different font. The
recommend font for this is bold and italic"
(interpret-markup
paper (prepend-alist-chain 'font-encoding 'dynamic props) arg))
(lambda (z) (inexact->exact (/ (log z) divisor)))))
(define (parse-simple-duration duration-string)
- "Parse the `duration-string', eg ''4..'' or ''breve.'', and return a (log dots) list."
+ "Parse the `duration-string', e.g. ''4..'' or ''breve.'', and return a (log dots) list."
(let ((match (regexp-exec (make-regexp "(breve|longa|maxima|[0-9]+)(\\.*)") duration-string)))
(if (and match (string=? duration-string (match:substring match 0)))
(let ((len (match:substring match 1))
(drum-type ,symbol? "Which percussion instrument to play this note on.")
(tags ,list? "List of symbols that for denoting extra details,
-eg. @code{\\tag #'part ...} could tag a piece of music as only being active in a part.")
+e.g. @code{\\tag #'part ...} could tag a piece of music as only being active in a part.")
- (text-type ,symbol? "Particular type of text script (eg. finger, dynamic).")
+ (text-type ,symbol? "Particular type of text script (e.g. finger, dynamic).")
(tempo-unit ,ly:duration? "The unit for the metronome count.")
(tonic ,ly:pitch? "Base of the scale")
(element ,ly:music? "The single child of a Music_wrapper music object, or the body of a repeat.")
(define-public (set-accidental-style style . rest)
"Set accidental style to STYLE. Optionally takes a context argument,
-eg. 'Staff or 'Voice. The context defaults to Voice, except for piano styles, which
+e.g. 'Staff or 'Voice. The context defaults to Voice, except for piano styles, which
use PianoStaff as a context. "
(let ((context (if (pair? rest)
(car rest) 'Staff))
(define (compile-all-markup-expressions expr)
- "Return a list of canonical markups expressions, eg:
+ "Return a list of canonical markups expressions, e.g.:
(#:COMMAND1 arg11 arg12 #:COMMAND2 arg21 arg22 arg23)
===>
((make-COMMAND1-markup arg11 arg12)
(set! rest r))))
(define (keyword->make-markup key)
- "Transform a keyword, eg. #:COMMAND, in a make-COMMAND-markup symbol."
+ "Transform a keyword, e.g. #:COMMAND, in a make-COMMAND-markup symbol."
(string->symbol (string-append "make-" (symbol->string (keyword->symbol key)) "-markup")))
(define (compile-markup-expression expr)
"Return two values: the first complete canonical markup expression found in `expr',
-eg (make-COMMAND-markup arg1 arg2 ...), and the rest expression."
+e.g. (make-COMMAND-markup arg1 arg2 ...), and the rest expression."
(cond ((and (pair? expr)
(keyword? (car expr)))
;; expr === (#:COMMAND arg1 ...)
("|:" . ("|" . "|:"))
("|." . ("|." . ()))
- ;; hmm... should we end with a barline here?
+ ;; hmm... should we end with a bar line here?
(".|" . ("|" . ".|"))
(":|" . (":|" . ()))
("||" . ("||" . ()))
;; todo: take dimension arguments.
(define (set-paper-dimensions m w h)
- "M is a module (ie. paper->scope_ )"
+ "M is a module (i.e. paper->scope_ )"
(let* ((mm (eval 'mm m)))
(module-define! m 'hsize w)
(module-define! m 'vsize h)