OUT_TXT_FILES = $(addprefix $(outdir)/, $(addsuffix .txt, $(README_TOP_FILES)))
-### Web site idiosyncrases
+### Web site idiosyncrasies
$(XREF_MAPS_DIR)/web.xref-map: XREF_MAP_FLAGS += --split=node
### AJAX scripts
ln -sf $(depth)/.. $(@)
-## Snippets rules idiosyncrases
+## Snippets rules idiosyncrasies
$(outdir)/%.itely: snippets/%-intro.itely snippets/%.snippet-list
xargs $(LYS_TO_TELY) -f doctitle,texidoc,verbatim --name=$@ --template=$< < $(filter %.snippet-list, $^)
make grand-replace
@end example
-Internally, this invokes the script @file{scripts/build/grand-replace.py},
+Internally, this invokes the script @file{scripts/@/build/@/grand@/-replace@/.py},
which performs a regular expression substitution for old-year -> new-year
wherever it finds a valid copyright notice.
-Note that snapshots of third party files such as @file{texinfo.tex} should
-not be included in the automatic update; @file{grand-replace.py} ignores these
+Note that snapshots of third party files such as @file{texinfo@/.tex} should
+not be included in the automatic update; @file{grand@/-replace@/.py} ignores these
files if they are listed in the variable @code{copied_files}.
@c Word counts are updated automatically by translations-status.py
-Translation of @file{Documentation/foo/bar} should be
-@file{Documentation/@var{LANG}/foo/bar}. Unmentioned files should not
+Translation of @file{Documentation/@/foo/@/bar} should be
+@file{Documentation/@/@var{LANG}/@/foo/@/bar}. Unmentioned files should not
be translated.
Priorities:
@enumerate
@item
-Ask on the lilypond-devel maillist if such a rewrite is necessary;
+Ask on the lilypond-devel mailing list if such a rewrite is necessary;
somebody else might already be working on this issue!
@item
Once you have followed these guidelines, please send a message to
lilypond-devel with your documentation submissions. Unfortunately
-there is a strict “no top-posting” check on the mailist; to avoid
+there is a strict “no top-posting” check on the mailing list; to avoid
this, add:
> I'm not top posting.
All manuals live in @file{Documentation/}.
In particular, there are four user manuals, their respective master
-source files are @file{learning.tely} (LM, Learning Manual),
-@file{notation.tely} (NR, Notation Reference),
-@file{music-glossary.tely} (MG, Music Glossary), and
-@file{lilypond-program} (AU). Each chapter is written in a separate
+source files are @file{learning@/.tely} (LM, Learning Manual),
+@file{notation@/.tely} (NR, Notation Reference),
+@file{music@/-glossary@/.tely} (MG, Music Glossary), and
+@file{lilypond@/-program} (AU). Each chapter is written in a separate
file, ending in @file{.itely} for files containing lilypond code, and
@file{.itexi} for files without lilypond code, located in a subdirectory
-associated to the manual (@file{learning/} for @file{learning.tely}, and
+associated to the manual (@file{learning/} for @file{learning@/.tely}, and
so on); list the subdirectory of each manual to determine the filename
of the specific chapter you wish to modify.
Developer manuals live in @file{Documentation/} too. Currently there is
-only one: the Contributor's Guide @file{contrib-guide.texi} you are
+only one: the Contributor's Guide @file{contrib@/-guide@/.texi} you are
reading.
Snippet files are part of documentation, and the Snippet List (SL) lives
@item
All context or layout object strings should be prefaced with @code{#}.
Again, LilyPond does not strictly require this, but it is helpful
-to get users accustomed to this scheme construct. i.e. @code{\set
+to get users accustomed to this scheme construct, i.e. @code{\set
Staff.instrumentName = #"cello"}
@item
context or layout properties outside of an @code{@@example} or @code{@@lilypond}, unless
the description explicitly requires it.
-ie @qq{...setting the @code{transparent} property leaves the object where it
+i.e. @qq{...setting the @code{transparent} property leaves the object where it
is, but makes it invisible.}
@item
@item
For clarity, always use @{ @} marks even if they are not technically
-required; ie
+required; i.e.
@example
not:
@end example
@item
-Add a space around @{ @} marks; ie
+Add a space around @{ @} marks; i.e.
@example
not: \chordmode@{c e g@}
@end example
@item
-Use @{ @} marks for additional @code{\markup} format comands; ie
+Use @{ @} marks for additional @code{\markup} format commands; i.e.
@example
not: c^\markup \tiny\sharp
@end example
@item
-Remove any space around @code{<} @code{>} marks; ie
+Remove any space around @code{<} @code{>} marks; i.e.
@example
not: < c e g > 4
@code{@@ruser@{@dots{}@}} --- link to Notation Reference.
@item
-@code{@@rweb@{@dots{}@}} --- link to General Informaion.
+@code{@@rweb@{@dots{}@}} --- link to General Information.
@end itemize
@item
@code{@@example} --- Use for examples of program code. Do not add
-extraneous indentation (ie. don't start every line with
+extraneous indentation (i.e. don't start every line with
whitespace). Use the following layout (notice the use of blank
lines). Omit the @code{@@noindent} if the text following the
example starts a new paragraph:
Introducing examples must be done with
@example
-. (ie finish the previous sentence/paragaph)
-: (ie `in this example:')
-, (ie `may add foo with the blah construct,')
+. (i.e. finish the previous sentence/paragraph)
+: (i.e. `in this example:')
+, (i.e. `may add foo with the blah construct,')
@end example
The old @qq{sentence runs directly into the example} method is not
@item
@@predefined ... @@endpredefined is for commands in
-@file{ly/*-init.ly}
+@file{ly/@/*-init@/.ly}
@item
-Do not include any real info in second-level sections (ie 1.1
+Do not include any real info in second-level sections (i.e. 1.1
Pitches). A first-level section may have introductory material,
but other than that all material goes into third-level sections
-(ie 1.1.1 Writing Pitches).
+(i.e. 1.1.1 Writing Pitches).
@end itemize
Material in the Internals reference is generated automatically
from our source code. Any doc work on Internals therefore
-requires modifying files in @file{scm/*.scm}. Texinfo is allowed
+requires modifying files in @file{scm/@/*.scm}. Texinfo is allowed
in these docstrings.
Most documentation writers never touch these, though. If you want
The mailing list @code{translations@@lilynet.net} is dedicated to
LilyPond web site and documentation translation; on this list, you will
get support from the Translations Meister and experimented translators,
-and we regularly discuss translations issues common to all languagues.
+and we regularly discuss translation issues common to all languages.
All people interested in LilyPond translations are invited to subscribe
to this list regardless of the amount of their contribution, by sending
an email to @code{translations-request@@lilynet.net} with subject
-@code{subscribe} and an empty message body. Unless mentioned explicitly
+@code{subscribe} and an empty message body. Unless mentioned explicitly,
or except if a translations coordinator contacts you privately, you
-should send questions, remarks, patches to this list
-@code{translations@@lilynet.net}; especially note that the traffic is so
-high on English-speaking list @code{lilypond-user@@gnu.org} that it may
-take months before your request or contribution is handled if you send a
-email to these lists.
+should send questions, remarks and patches to the list
+@code{translations@@lilynet.net}. Please note that traffic is high
+on the English-speaking list @code{lilypond-user@@gnu.org}, so it may
+take some time before your request or contribution is handled.
@menu
* Getting started with documentation translation::
where @var{MY-LANGUAGE} is the ISO 639 language code.
Finally, add a language definition for your language in
-@file{python/langdefs.py}.
+@file{python/@/langdefs@/.py}.
@node Documentation translation details
original text; for instance, in the translation of the web site section
Community, you may take this into account depending on what you know the
community in your language is willing to support, which is possible only
-if you personnally assume this support, or there exists a public forum
+if you personally assume this support, or there exists a public forum
or mailing list listed in Community for LilyPond in your language:
@itemize
Some pieces of text manipulated by build scripts that appear in the
output are translated in a @file{.po} file -- just like LilyPond output
-messages -- in @file{Documentation/po}. The Gettext domain is named
+messages -- in @file{Documentation/@/po}. The Gettext domain is named
@code{lilypond-doc}, and unlike @code{lilypond} domain it is not managed
through the Free Translation Project.
Take care of using typographic rules for your language, especially in
-@file{macros.itexi}.
+@file{macros@/.itexi}.
If you wonder whether a word, phrase or larger piece of text should be
translated, whether it is an argument of a Texinfo command or a small
piece sandwiched between two Texinfo commands, try to track whether and
where it appears in PDF and/or HTML output as visible text. This piece
-of advice is especially useful for translating @file{macros.itexi}.
+of advice is especially useful for translating @file{macros@/.itexi}.
Please keep verbatim copies of music snippets (in @code{@@lilypond}
blocs). However, some music snippets containing text that shows in
@end example
@noindent
-in the source, open @file{Documentation/snippets/@var{filename}.ly},
+in the source, open @file{Documentation/@/snippets/@/@var{filename}@/.ly},
translate the @code{texidoc} header field it contains, enclose it with
@code{texidoc@var{MY-LANGUAGE} = "} and @code{"}, and write it into
-@file{Documentation/@var{MY-LANGUAGE}/texidocs/@var{filename}.texidoc}.
-Additionnally, you may translate the snippet's title in @code{doctitle}
+@file{Documentation/@/@var{MY-LANGUAGE}/@/texidocs/@/@var{filename}@/.texidoc}.
+Additionally, you may translate the snippet's title in @code{doctitle}
header field, in case @code{doctitle} is a fragment option used in
@code{@@lilypondfile}; you can do this exactly the same way as
@code{texidoc}. For instance,
-@file{Documentation/@var{MY-LANGUAGE}/texidocs/@var{filename}.texidoc}
+@file{Documentation/@/@var{MY-LANGUAGE}/@/texidocs/@/@var{filename}@/.texidoc}
may contain
@example
@noindent
Then, you should get these translated strings into compiled snippets in
-@file{Documentation/snippets}, see @q{General guidelines} in @ref{Adding
+@file{Documentation/@/snippets}, see @q{General guidelines} in @ref{Adding
and editing snippets}.
@code{@@example} blocks need not be verbatim copies, e.g. variable
@seeCommittishesUpdate
Global state of the translation is recorded in
-@file{Documentation/translations.itexi}, which is used to generate
+@file{Documentation/@/translations@/.itexi}, which is used to generate
Translations status page. To update that page, do from
@file{Documentation/}
make translation-status
@end example
-This will also leave @file{out/translations-status.txt}, which contains
+This will also leave @file{out/@/translations@/-status@/.txt}, which contains
up-to-dateness percentages for each translated file, and update word
counts of documentation files in this Guide.
make CHECKED_FILES=@var{MY_LANGUAGE/@var{manual}/foo.itely} update-translation
@end example
-For each file to be udpated, @code{update-translation} will open your
+For each file to be updated, @code{update-translation} will open your
text editor with this file and a diff of the file in English; if the
diff cannot be generated or is bigger than the file in English itself,
the full file in English will be opened instead.
make ISOLANG=@var{MY_LANGUAGE} skeleton-update
@end example
-@file{.po} message catalogs in @file{Documentation/po/} may be updated
-by issuing from @file{Documentation/} or @file{Documentation/po/}
+@file{.po} message catalogs in @file{Documentation/@/po/} may be updated
+by issuing from @file{Documentation/} or @file{Documentation/@/po/}
@example
make po-update
@end example
This script overwrites music snippets in
-@file{@var{MY_LANGUAGE/foo/every.itely}} with music snippets from
-@file{@var{foo/every.itely}}. It ignores skeleton files, and keeps
+@file{@var{MY_LANGUAGE/@/foo/@/every@/.itely}} with music snippets from
+@file{@var{foo/@/every@/.itely}}. It ignores skeleton files, and keeps
intact music snippets preceded with a line starting with @code{@@c
KEEP LY}; it reports an error for each @file{.itely} that has not the
same music snippet count in both languages. Always use this script
no sense in their context.
When you have updated texidocs in
-@file{Documentation/@var{MY-LANGUAGE}/texidocs}, you can get these
-changes into compiled snippets in @file{Documentation/snippets}, see
+@file{Documentation/@/@var{MY-LANGUAGE}/@/texidocs}, you can get these
+changes into compiled snippets in @file{Documentation/@/snippets}, see
@q{General guidelines} in @ref{Adding and editing snippets}.
Finally, a command runs the three update processes above for all
@end example
A special case is updating Snippet documentation strings in
-@file{Documentation/@var{MY-LANGUAGE}/texidocs}. For these to be
+@file{Documentation/@/@var{MY-LANGUAGE}/@/texidocs}. For these to be
correctly marked as up-to-date, first run @code{makelsr.py} as
explained in @ref{Adding and editing snippets}, and commit the
-resulting compiled snippets left in @file{Documentation/snippets/}.
+resulting compiled snippets left in @file{Documentation/@/snippets/}.
Say the SHA1 ID code of this commit is <C>. Now edit again your
-translated files in @file{Documentation/@var{MY-LANGUAGE}/texidocs}
+translated files in @file{Documentation/@/@var{MY-LANGUAGE}/@/texidocs}
adjusting the 40-digit committish that appears in the text to be <C>;
finally, commit these updated files. Not doing so would result in
changes made both to your updates and original snippets to
no longer uses this macro.
@item Update @file{*.tely} files completely with
-@command{make check-translation} -- you may want to redirect ouptput
+@command{make check-translation} -- you may want to redirect output
to a file because of overwhelming output, or call check-translation.py
on individual files, see @ref{Check state of translation}.
@end example
@noindent
-This step requires a sucessful documentation build (with @command{make
+This step requires a successful documentation build (with @command{make
doc}). Some cross-references are broken because they point to a node
that exists in the documentation in English, which has not been added
to the translation; in this case, do not fix the cross-reference but
@item @code{lilypond/translation} Git branch may be merged into
master only if LilyPond (@command{make all}) and documentation
-(@command{make doc}) compile succesfully.
+(@command{make doc}) compile successfully.
@item @code{master} Git branch may be merged into
@code{lilypond/translation} whenever @command{make} and @command{make
-doc} are succesful (in order to ease documentation compilation by
+doc} are successful (in order to ease documentation compilation by
translators), or when significant changes had been made in
documentation in English in master branch.
A number of Python scripts handle a part of the documentation
translation process. All scripts used to maintain the translations
-are located in @file{scripts/auxiliar/}.
+are located in @file{scripts/@/auxiliar/}.
@itemize
@item @file{check_translation.py} -- show diff to update a translation,
"makeinfo --html" has been dropped.
@end itemize
-Other scripts are used in the build process, in @file{scripts/build/}:
+Other scripts are used in the build process, in @file{scripts/@/build/}:
@itemize
@item @file{mass-link.py} -- link or symlink files between English documentation
and documentation in other languages.
@end itemize
-Python modules used by scripts in @file{scripts/auxiliar/} or @file{scripts/build/} (but
-not by installed Python scripts) are located in @file{python/auxiliar/}:
+Python modules used by scripts in @file{scripts/@/auxiliar/} or @file{scripts/@/build/} (but
+not by installed Python scripts) are located in @file{python/@/auxiliar/}:
@itemize
@item @file{manuals_definitions.py} -- define manual names and name of
cross-reference Texinfo macros,
@item @file{buildlib.py} -- common functions (read piped output
of a shell command, use Git),
-@item @file{postprocess_html.py} (module imported by @file{www_post.py}) -- add footer and
+@item @file{postprocess_html.py} (module imported by @file{www_post@/.py}) -- add footer and
tweak links in HTML pages.
@end itemize
@item
Respond to questions from your contributor(s) promptly, even if
-the reponse is just @qq{sorry, I don't know} or @qq{sorry, I'm
+the response is just @qq{sorry, I don't know} or @qq{sorry, I'm
very busy for the next 3 days; I'll get back to you then}. Make
sure they feel valued.
what? Also, if you'll be unavailable for longer than usual (say,
if you normally reply within 24 hours, but you'll be at a
conference for a week), let your contributors know. Again, make
-sure thay feel valued, and that your silence (if they ask a
+sure they feel valued, and that your silence (if they ask a
question during that period) isn't their fault.
@item
@item
If the email is a question about how to use LilyPond, reply with
-this reponse:
+this response:
@example
For questions about how to use LilyPond, please read our
system (if this is a suspected cause of the problem)? In short,
if you cannot understand what the problem is, ask the user to
explain more. It is the user's responsibility to explain the
-problem, not your reponsibility to understand it.
+problem, not your responsibility to understand it.
@item
If the behavior is expected, the user should be told to read the
issue should also have an estimated time in a comment.
@item
-Maintainability: hinders developent of LilyPond. For example,
+Maintainability: hinders development of LilyPond. For example,
improvements to the build system, or @qq{helper} python scripts.
@item
@item
If the issue has a notation example which fits in one system,
-generate a small @file{bug.preview.png} file with:
+generate a small @file{bug@/.preview@/.png} file with:
@example
lilypond -dpreview bug.ly
@item
If the issue has an example which requires more than one system
-(i.e. a spacing bug), generate a @file{bug.png} file with:
+(i.e. a spacing bug), generate a @file{bug@/.png} file with:
@example
lilypond --png bug.ly
@item
If the issue requires multi-page output, then generate a
-@file{bug.pdf} file with the normal:
+@file{bug@/.pdf} file with the normal:
@example
lilypond --png bug.ly
If the new snippet uses new features that are not available in the
current LSR version, the snippet should be added to
-@file{Documentation/snippets/new} and a reference should be added to the
+@file{Documentation/@/snippets/@/new} and a reference should be added to the
manual.
-Snippets created or updated in @file{Documentation/snippets/new} should
-be copied to @file{Documentation/snippets} by invoking at top of the
+Snippets created or updated in @file{Documentation/@/snippets/@/new} should
+be copied to @file{Documentation/@/snippets} by invoking at top of the
source tree
@example
@noindent
This also copies translated texidoc fields and snippet titles into
-snippets in @file{Documentation/snippets}. Note: this, in turn, could
+snippets in @file{Documentation/@/snippets}. Note: this, in turn, could
make the translated texidoc fields to appear as out of sync when you
run @code{make check-translation}, if the originals changed from the
last translation update, even if the translations are also updated;
Be sure that @command{make doc} runs successfully before submitting a
patch, to prevent breaking compilation.
-@subheading Formatting snippets in @file{Documentation/snippets/new}
+@subheading Formatting snippets in @file{Documentation/@/snippets/@/new}
When adding a file to this directory, please start the file with
@}
@end example
-and name the file @file{snippet-title.ly}.
+\noindent
+and name the file @file{snippet@/-title@/.ly}.
@node Approving snippets
@end enumerate
Note that whenever there is one snippet from
-@file{Documentation/snippets/new} and the other from LSR with the same
-file name, the one from @file{Documentation/snippets/new} will be copied
+@file{Documentation/@/snippets/@/new} and the other from LSR with the same
+file name, the one from @file{Documentation/@/snippets/@/new} will be copied
by @command{makelsr.py}.
@node Fixing snippets in LilyPond sources
@section Fixing snippets in LilyPond sources
-In case some snippet from @file{Documentation/snippets} causes the
+In case some snippet from @file{Documentation/@/snippets} causes the
documentation compilation to fail, the following steps should be
followed to fix it reliably.
@enumerate
@item
-Look up the snippet filename @file{@var{foo}.ly} in the error output
-or log, then fix the file @file{Documentation/snippets/@var{foo}.ly} to make the
-documentation build succesfully.
+Look up the snippet filename @file{@var{foo}@/.ly} in the error output
+or log, then fix the file @file{Documentation/@/snippets/@/@var{foo}@/.ly} to make the
+documentation build successfully.
@item
Determine where it comes from by looking at its first line, e.g. run
when some features has been introduced or vastly changed so it requires
(or takes significant advantage of) important changes in the snippet, it
is simpler and recommended to write a new version of the snippet in
-@file{Documentation/snippets/new}, then run @command{makelsr.py}.
+@file{Documentation/@/snippets/@/new}, then run @command{makelsr.py}.
@item
@strong{In case the snippet comes from}
-@file{Documentation/snippets/new}, apply in
-@file{Documentation/snippets/new/@var{foo}.ly} the same fix you did in
-@file{Documentation/snippets/@var{foo}.ly}. In case the build failure
+@file{Documentation/@/snippets/@/new}, apply in
+@file{Documentation/@/snippets/@/new/@/@var{foo}@/.ly} the same fix you did in
+@file{Documentation/@/snippets/@/@var{foo}@/.ly}. In case the build failure
was caused by a translation string, you may have to fix
-@file{input/texidocs/@var{foo}.texidoc} instead.
+@file{input/@/texidocs/@/@var{foo}@/.texidoc} instead.
@item
In any case, commit all changes to Git.
@item
Copy relevant snippets (i.e., snippets whose version is equal to or less
than the new version of LilyPond) from
-@file{Documentation/snippets/new/} into the tarball.
+@file{Documentation/@/snippets/@/new/} into the tarball.
You must not rename any files during this, or the next, stage.
@item
When LSR has been updated, download another snippet tarball, verify that
-the relevant snippets from @file{Documentation/snippets/new/} were
+the relevant snippets from @file{Documentation/@/snippets/@/new/} were
included, then delete those snippets from
-@file{Documentation/snippets/new/}.
+@file{Documentation/@/snippets/@/new/}.
@end enumerate
PostScript is used to generate graphical output. A brief PostScript tutorial
is @uref{http://local.wasp.uwa.edu.au/~pbourke/dataformats/postscript/,
available online}. The
-@uref{http://www.adobe.com/devnet/postscript/pdfs/PLRM.pdf, PostScript Lanugage
+@uref{http://www.adobe.com/devnet/postscript/pdfs/PLRM.pdf, PostScript Language
Reference} is available online in PDF format.
@subsection Python
-Python is used for XML2ly and is used for buillding the documentation and the
+Python is used for XML2ly and is used for building the documentation and the
website.
Python documentation is available at @uref{http://www.python.org/doc/,
@subsection Using the ROADMAP
The file ROADMAP is located in the main directory of the lilypond source.
-ROADMAP lists all of the directories in the LilPond source tree, along
+ROADMAP lists all of the directories in the LilyPond source tree, along
with a brief description of the kind of files found in each directory.
This can be a very helpful tool for deciding which directories to search
when looking for a function.
autocmd BufWritePre * :%s/\s\+$//e
@end verbatim
-With this .vimrc, files can be reindented automatically by highlihting
+With this .vimrc, files can be reindented automatically by highlighting
the lines to be indented in visual mode (use V to enter visual mode)
and pressing =.
@item
Think about translation issues. In a lot of cases, it is better to
-translate a whole message. The english grammar must not be imposed
-on the translator. So, instead of
+translate a whole message. English grammar must not be imposed on the
+translator. So, instead of
@example
stem at + moment.str () + does not fit in beam
@item
Do not modularize too much; words frequently cannot be translated
-without context. It is probably safe to treat most occurences of
+without context. It is probably safe to treat most occurrences of
words like stem, beam, crescendo as separately translatable words.
@item
This is important as you will need to let gdb know where to find the
image containing the symbol tables. You can invoke gdb from the
-command line usinga the following:
+command line using the following:
@example
gdb out/bin/lilypond
In order for the Graphviz tool to work, config.make must be modified.
It is probably a good idea to first save a copy of config.make under
-a different name. Then, edit config.make by removing every occurence
+a different name. Then, edit config.make by removing every occurrence
of @code{-DNDEBUG}.
@item Rebuilding LilyPond
make -C lily clean && make -C lily
@end example
-@item Create a graphviz-compatible .ly file
+@item Create a graphviz-compatible @file{.ly} file
-In order to use the graphviz utility, the .ly file must include
-@file{ly/graphviz-init.ly}, and should then specify the
+In order to use the graphviz utility, the @file{.ly} file must include
+@file{ly/@/graphviz@/-init@/.ly}, and should then specify the
grobs and symbols that should be tracked. An example of this
is found in @file{input/regression/graphviz.ly}.
The logfile has standard lilypond output, as well as the Graphviz
output data. Delete everything from the beginning of the file
-up to but not including the first occurence of @code{digraph}.
+up to but not including the first occurrence of @code{digraph}.
@item Process the logfile with @code{dot}
* Write the code::
* Write regression tests::
* Write convert-ly rule::
-* Automaticaly update auxiliary information::
+* Automatically update auxiliary information::
* Manually update auxiliary information::
* Edit changes.tely::
* Verify successful build::
manual correction.
-@node Automaticaly update auxiliary information
+@node Automatically update auxiliary information
@subsection Automatically update auxiliary information
convert-ly should be used to update the documentation, the snippets,
longer.
Running @command{make@tie{}check} will leave an HTML page
-@file{out/test-results/index.html}. This page shows all the
+@file{out/@/test@/-results/@/index@/.html}. This page shows all the
important differences that your change introduced, whether in the
layout, MIDI, performance or error reporting.
Sometimes in response to comments on revisions, the best way to
work may require creation of a new branch in git. In order to
-associate the new branch with an existing Reitveld issue,
+associate the new branch with an existing Rietveld issue,
the following command can be used:
@example
@node LilyPond scoping
@section LilyPond scoping
-The Lilypond language has a concept of scoping, ie you can do
+The Lilypond language has a concept of scoping, i.e. you can do
@example
foo = 1
class) -notes, clefs, etc.
There are two other derived classes System (derived from Spanner,
-contaning a "line of music") and Paper_column (derived from Item, it
+containing a "line of music") and Paper_column (derived from Item, it
contains all items that happen at the same moment). They are separate
classes because they play a special role in the linebreaking process.
Han-Wen answered as follows:
-You can see the defintion by doing
+You can see the definition by doing
@example
#(display conditionalMark)
@uref{http://lilypond.org/test/}
@end example
-The test comparison shows all of the changes that occured between
+The test comparison shows all of the changes that occurred between
the current release and the prior release. Each test that has
a significant difference in output is displayed, with the old
version on the left and the new version on the right. Blurs
@end example
The regtest output will then be available in
-@file{input/regression/out-test}.
-@file{input/regression/out-test/collated-examples.html}
+@file{input/@/regression/@/out@/-test}.
+@file{input/@/regression/@/out@/-test/@/collated@/-examples@/.html}
contains a listing of all the regression tests that were run,
but none of the images are included. Individual images are
also available in this directory.
@section Identifying code regressions
Before modified code is committed to master, a regression test
-comparision must be completed to ensure that the changes have
+comparison must be completed to ensure that the changes have
not caused problems with previously working code. The comparison
is made automatically upon compiling the regression test suite
twice.
@end example
After @samp{make@tie{}check} is complete, a regression test comparison
-will be available at @file{out/test-results/index.html}.
+will be available at @file{out/@/test@/-results/@/index@/.html}.
For each regression test that differs between the baseline and the
changed code, a regression test entry will displayed. Ideally, the
only changes would be the changes that you were working on. If
code.
@warning{
-The special regression test @file{test-output-distance.ly} will always
+The special regression test @file{test@/-output@/-distance@/.ly} will always
show up as a regression. This test changes each time it is run, and
serves to verify that the regression tests have, in fact, run.}
make test-redo
@end example
-This updates the regression list at @file{out/test-results/index.html}.
-It does @emph{not} redo @file{test-output-distance.ly}.
+This updates the regression list at @file{out/@/test@/-results/@/index@/.html}.
+It does @emph{not} redo @file{test@/-output@/-distance@/.ly}.
When all regressions have been resolved, the output list will be empty.
can be used to test any MusicXML implementation.
The MusicXML regression tests are found at
-@file{input/regression/musicxml/}.
+@file{input/@/regression/@/musicxml/}.
The output resulting from running these tests
through @samp{muscxml2ly} followed by @samp{lilypond} is
make LILYPOND_BRANCH=stable/2.12 lilypond
@end example
-@item Check the regtest comparison in @file{uploads/webtest/} for
+@item Check the regtest comparison in @file{uploads/@/webtest/} for
any unintentional breakage. More info in
@ref{Precompiled regression tests}
@enumerate
@item If you're not right user on the webserver, remove the "t"
-from the rsync command in @file{test-lily/rsync-lily-doc.py} and
-@file{test-lily/rsync-test.py}
+from the rsync command in @file{test@/-lily/@/rsync@/-lily@/-doc@/.py} and
+@file{test@/-lily/@/rsync@/-test@/.py}
@code{graham} owns v2.13; @code{han-wen} owns v2.12.
@item
To run the program from the command line, navigate to the
-directory containing @file{lily-git.tcl} and enter:
+directory containing @file{lily@/-git@/.tcl} and enter:
@example
wish lily-git.tcl
@subsubheading 1. Get source / Update source
When you click the @qq{Get source} button, @command{lily-git} will
-create a directory called @file{lilypond-git/} within your home
+create a directory called @file{lilypond@/-git/} within your home
directory, and will download the source code into that
directory (around 55Mb). When the process is finished, the
@qq{Command output} window will display @qq{Done}, and the button
label will change to say @qq{Update source}.
-Navigate to the @file{lilypond-git/} directory to view the source
+Navigate to the @file{lilypond@/-git/} directory to view the source
files. You should now be able to modify the source files using
your normal text editor.
hopelessly confused!}
The button labeled @qq{Abort changes -- Reset to origin} will copy
-all changed files to a subdirectory of @file{lilypond-git/} named
-@file{aborted_edits/}, and will reset the repository to the
+all changed files to a subdirectory of @file{lilypond@/-git/} named
+@file{aborted@/_edits/}, and will reset the repository to the
current state of the remote repository (at @code{git.sv.gnu.org}).
Once Git is installed, you'll need to create a new directory where
your initial repository will be stored (the example below uses
-@file{~/lilypond-git/}, where @code{~} represents your home
+@file{~/lilypond@/-git/}, where @code{~} represents your home
directory). Run @command{git@tie{}init} from within the new
directory to initialize an empty repository:
@subsubheading Technical details
-This creates (within the @file{~/lilypond-git/} directory) a
+This creates (within the @file{~/lilypond@/-git/} directory) a
subdirectory called @file{.git/}, which Git uses to keep track of
changes to the repository, among other things. Normally you don't
need to access it, but it's good to know it's there.
@warning{Throughout the rest of this manual, all command-line
input should be entered from the top directory of the Git
-repository being discussed (eg. @file{~/lilypond-git/}). This is
+repository being discussed (eg. @file{~/lilypond@/-git/}). This is
referred to as a @emph{top source directory}.}
Before downloading a copy of the main LilyPond repository, you
Using the @command{git@tie{}config} command @emph{without} the
@command{--global} option configures repository-specific settings,
-which are stored in the file @file{.git/config}. This file is
+which are stored in the file @file{.git/@/config}. This file is
created when a repository is initialized (using
@command{git@tie{}init}), and by default contains these lines:
@end example
By now the source files should be accessible---you should be able
-to edit any files in the @file{lilypond-git/} directory using a
+to edit any files in the @file{lilypond@/-git/} directory using a
text editor of your choice. But don't start just yet! Before
editing any source files, learn how to keep your changes organized
and prevent problems later---read @ref{Basic Git procedures}.
@subsubheading Technical Details
The @command{git@tie{}remote@tie{}add} command should add some
-lines to your local repository's @file{.git/config} file:
+lines to your local repository's @file{.git/@/config} file:
@example
[remote "origin"]
The @command{git@tie{}config} command mentioned above adds the
line @code{rebase = true} to the master branch in your local
-repository's @file{.git/config} file:
+repository's @file{.git/@/config} file:
@example
[branch "master"]
A @emph{branch} is nothing more than a pointer to a particular
commit, which is called the @emph{head} of the branch; when
-referring to a branch, one often acutally thinks about its head
+referring to a branch, one often actually thinks about its head
and the ancestor commits of the head.
Now we will explain the two last commands you used to get the
The commands above don't only bring you the latest version of the
-sources, but also the full history of revisions (revisons, also
+sources, but also the full history of revisions (revisions, also
called commits, are changes made to the sources), stored in the
@file{.git} directory. You can browse this history with
@end example
When prompted for a location to save the key, press <ENTER> to
-accept the default location (@file{~/.ssh/id_dsa}).
+accept the default location (@file{~/.ssh/@/id_dsa}).
Next you are asked to enter an optional passphrase. On most
systems, if you use a passphrase, you will likely be prompted for
@end example
After setting up your passphrase, your private key is saved as
-@file{~/.ssh/id_dsa} and your public key is saved as
-@file{~/.ssh/id_dsa.pub}.
+@file{~/.ssh/@/id_dsa} and your public key is saved as
+@file{~/.ssh/@/id_dsa@/.pub}.
@item
Register your public SSH @q{dsa} key with Savannah. From the
@qq{My Account Configuration} page, click on @qq{Edit SSH Keys},
-then paste the contents of your @file{~/.ssh/id_dsa.pub} file into
+then paste the contents of your @file{~/.ssh/@/id_dsa@/.pub} file into
one of the @qq{Authorized keys} text fields, and click
@qq{Update}.
@item
-After your membership has been activated and you’ve configured Git
+After your membership has been activated and you've configured Git
to use SSH, test the connection with:
@example
@end example
The list of known hosts is stored in the file
-@file{~/.ssh/known_hosts}.
+@file{~/.ssh/@/known@/_hosts}.
At this point, you are prompted for your passphrase if you have
one, then Git will attempt a pull.
@item
The @command{git@tie{}config} commands above should modify your
-local repository's @file{.git/config} file. These lines:
+local repository's @file{.git/@/config} file. These lines:
@example
[remote "origin"]
@item
Similarly, the
@command{git@tie{}config@tie{}push.default@tie{}matching} command
-should add these lines to @file{.git/config}:
+should add these lines to @file{.git/@/config}:
@example
[push]
Git is a system for tracking the changes made to source files by a
distributed set of editors. It is designed to work without a
-master repository, but we have chosen to have a master respository
+master repository, but we have chosen to have a master repository
for LilyPond files. Editors hold a local copy of the master
repository together with any changes they have made locally.
Local changes are held in a local @q{branch}, of which there may
@subheading Initial setup
You should symlink your own @file{~/lilypond/} to
-@file{~graham/lilypond/}
+@file{~graham/@/lilypond/}
If this directory does not exist, make it. Git master should go
-in @file{~/lilypond/lilypond-git/} but make sure you enable:
+in @file{~/lilypond/@/lilypond@/-git/} but make sure you enable:
@example
git config core.filemode false
@end example
-If you have created any files in @file{~graham/lilypond/} then
+If you have created any files in @file{~graham/@/lilypond/} then
please run:
@example
To reduce the CPU burden on the shared host (as well as some
-security concerns), the @file{Documentation/pictures/} and
-@file{Documentation/web/ly-examples/} directories are @strong{not}
+security concerns), the @file{Documentation/@/pictures/} and
+@file{Documentation/@/web/@/ly-examples/} directories are @strong{not}
compiled. If you modify any files in those directories, a user in
-the @code{lilypond} group must upload them to @file{~graham/media}
+the @code{lilypond} group must upload them to @file{~graham/@/media}
on the host.
Upload latest pictures/ and ly-examples/ (local script):
@subsubheading Additional information
Some information about the website is stored in
-@file{~graham/lilypond/*.txt}; this information should not be
+@file{~graham/@/lilypond/@/*.txt}; this information should not be
shared with people without trusted access to the server.
however, please note that this command is not designed for being
run multiple times. If you see unexpected output (mainly the page
footers getting all messed up), then delete your
-@file{out-website} directory and run @code{make website} again.
+@file{out@/-website} directory and run @code{make website} again.
@item
Some of the translation infrastructure is defined in python files;
@item
Translations are not included by default in @code{make website}.
To test your translation, edit the @code{WEB_LANGS} line in
-@file{make/website.make}. Do not submit a patch to add your language
+@file{make/@/website@/.make}. Do not submit a patch to add your language
to this file unless @code{make website} completes with less than 5
warnings.
volume = 18,
number = 1,
- note = {Byrd (author of Nightinggale) shows four problematic
+ note = {Byrd (author of Nightingale) shows four problematic
fragments of notation, and rants about notation programs that try to
exhibit intelligent behaviour. HWN}
}
software packages would struggle with reproducing this example because
they are built on the nested box structure. With LilyPond, on the other
hand, we have tried to keep the input format and the structure as
-flexbile as possible.
+flexible as possible.
@node What symbols to engrave?
@unnumberedsubsec What symbols to engrave?
title = {Music Engraving and printing. Historical and Technical Treatise},
publisher = {Sir Isaac Pitman & Sons, ltd.},
year = 1923,
- note = {This pattriotic book was an attempt to promote and help
+ note = {This patriotic book was an attempt to promote and help
British music engravers. It is somewhat similar to Hader's
book\cite{hader48} in scope and style, but Gamble focuses more on
technical details (Which French punch cutters are worth buying from,
note={This is the style guide for Schirmer publications. This manual
specifically focuses on preparing print for publication by
Schirmer. It discusses many details that are not in other, normal
-notation books. It als gives a good idea of what is necessary to bring
+notation books. It also gives a good idea of what is necessary to bring
printouts to publication quality.
It can be ordered from the rental department.
@end example
So in our function, we need to clone this expression (so that we
-have two notes to build the sequence), add @code{SlurEvents} to the
+have two notes to build the sequence), add a @code{SlurEvent} to the
@code{'elements} property of each one, and finally make a
@code{SequentialMusic} with the two @code{EventChords}.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 4e85fe18924c40296828a906576cf891d84bdbf7
+ Translation of GIT committish: 7ae8371e16d414819ac7d9a4d0abd8370c5f3d8f
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Ce tutoriel est une introduction au langage musical utilisé
par LilyPond, qui vous permettra de faire fonctionner le logiciel pour
-produire une partition.
+produire une partition.
@menu
-* Compilation d'un fichier::
-* Composition d'un fichier source::
+* Compilation d'un fichier::
+* Composition d'un fichier source::
* Gestion des erreurs::
-* Bien lire le manuel::
+* Bien lire le manuel::
@end menu
appelé fichier source, qui décrit la notation musicale. La
@emph{compilation} de ce fichier source par LilyPond produit un
fichier graphique imprimable, et si on le désire un fichier MIDI qui
-peut être joué par un séquenceur.
+peut être joué par un séquenceur.
Voici un premier exemple simple de fichier source LilyPond.
@end lilypond
@c DIV specific
-Il est aussi possible d'utiliser les noms de notes français @qq{@w{do
+Il est aussi possible d'utiliser les noms de notes français @qq{@w{do
re mi fa sol la si}}, en insérant au début du fichier la ligne
@w{@code{\include@tie{}"italiano.ly"}}.
@c END DIV
@funindex '
@funindex ,
-Glossaire musical : @rglos{pitch}, @rglos{interval},
+Glossaire musicologique : @rglos{pitch}, @rglos{interval},
@rglos{scale}, @rglos{middle C}, @rglos{octave},
@rglos{accidental}.
@cindex note pointée
@cindex spécification des durées
-Glossaire musical : @rglos{beam}, @rglos{duration},
+Glossaire musicologique : @rglos{beam}, @rglos{duration},
@rglos{whole note}, @rglos{half note}, @rglos{quarter note},
@rglos{dotted note}.
@cindex silences
@cindex notation des silences
-Glossaire musical : @rglos{rest}.
+Glossaire musicologique : @rglos{rest}.
On saisit un @notation{silence} tout comme une note, mais avec la
lettre @code{r} (pour @emph{rest}).
@funindex \time
@funindex time
-Glossaire musical : @rglos{time signature}.
+Glossaire musicologique : @rglos{time signature}.
La @notation{métrique}, aussi appelée @notation{chiffre de mesure},
peut être définie à l'aide de la commande @code{\time}@tie{}:
@end lilypond
+@subheading Indication de tempo
+
+@cindex tempo, indication
+@cindex indication du tempo
+@cindex métronome, indication
+@cindex indication métronomique
+
+@funindex \tempo
+@funindex tempo
+
+Glossaire musicologique : @rglos{tempo indication}, @rglos{metronome}.
+
+La commande @code{\tempo} permet de stipuler aussi bien le @emph{tempo}
+que le métronome@tie{}:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+ \time 3/4
+ \tempo "Andante"
+ a4 a a
+ \time 6/8
+ \tempo 4. = 96
+ a4. a
+ \time 4/4
+ \tempo "Presto" 4 = 120
+ a4 a a a
+}
+@end lilypond
+
+
@subheading Clefs
@cindex clef
@funindex \clef
@funindex clef
-Glossaire musical : @rglos{clef}.
+Glossaire musicologique : @rglos{clef}.
La @notation{clef} peut être définie à l'aide de la commande
@code{\clef}@tie{}:
code de nombreux langages de programmation. La casse est prise
en compte, et les caractères considérés comme espaces ont généralement
peu d'importance. Les expressions sont délimitées par des accolades
-@w{@code{@{ @}}}, et les commentaires par @code{%} ou
+@w{@code{@{ @}}}, et les commentaires par @code{%} ou
@w{@code{%@{ @dots{} @}}}@tie{}.
Si cette phrase vous paraît incompréhensible, ne vous en faites pas@tie{}!
Si vous ne le mentionnez pas, Lilypond vous rappellera à l'ordre durant
la compilation.
-@item
+@item
@strong{La casse} :
LilyPond est sensible à la casse, c'est à dire qu'une lettre capitale
n'a pas la même valeur qu'une lettre minuscule. Les notes, par
@item
@strong{Les espaces multiples} :
LilyPond ne tient pas compte du nombre d'espaces, de tabulations ou de
-retours à la ligne. @w{@code{@{ c d e @}}} a le même sens que
+retours à la ligne. @w{@code{@{ c d e @}}} a le même sens que
@w{@code{@{ c @tie{} @tie{} d @tie{} e @}}} ou que
@example
ceux qui ne connaissent que des interfaces graphiques puisque rien
n'empèche de créer du code erroné. En pareil cas, il suffit souvent d'un
peu de logique pour être en mesure d'identifier les causes du problème
-et le résoudre simplement. Le chapitre
+et le résoudre simplement. Le chapitre
@rprogram{Résolution de problèmes} liste quelques directives à ce propos.
Il peut arriver qu'un message d'erreur ne soit pas suffisamment
explicite pour solutionner le problème. Quelques cas des plus courants
-sont répertoriés au chapitre
+sont répertoriés au chapitre
@rprogram{Quelques erreurs des plus courantes}.
manuel, la plupart des exemples ne feront pas apparaître ces signes.
Pour reproduire les exemples, vous pouvez copier et coller le code
-affiché, mais @strong{à condition} d'ajouter
+affiché, mais @strong{à condition} d'ajouter
@code{@w{\relative c'' @{ @}}} de la façon suivante@tie{}:
@example
@strong{Avant de vous lancer dans @emph{quoi que ce soit}}, lisez le
@ref{Tutoriel} contenu dans le manuel d'initiation ainsi que les
@ref{Bases de notation musicale}. Si vous y trouvez des termes que vous
-ne connaissez pas, n'hésitez pas à consulter le
+ne connaissez pas, n'hésitez pas à consulter le
@rglosnamed{Top, Glossaire}.
@item
\version "2.12.0"
\header {
texidoc = "@cindex Chord Names German
-The english naming of chords (default) can be changed to german
-(@code{\germanChords} replaces B and Bes to H and B), semi-german
-(@code{\semiGermanChords} replaces B and Bes to H and Bb), italian
-(@code{\italianChords} uses Do Re Mi Fa Sol La Si), or french
+The English naming of chords (default) can be changed to German
+(@code{\germanChords} replaces B and Bes to H and B), semi-German
+(@code{\semiGermanChords} replaces B and Bes to H and Bb), Italian
+(@code{\italianChords} uses Do Re Mi Fa Sol La Si), or French
(@code{\frenchChords} replaces Re to Ré).
" }
used by us. Hopefully this will change in the future.
-@subsubheading Version-specific texinfo macors
+@subsubheading Version-specific texinfo macros
@itemize
GOP will be our big recruiting drive for new contributors. We
desperately need to spread the development duties (including
@qq{simple tasks} which require no programming or interaction with
-soruce code!) over more people. We also need to document
+source code!) over more people. We also need to document
knowledge from existing developers so that it does not get lost.
Unlike most @qq{Grand Projects}, GOP is not about adding huge new
@menu
* Tutorial:: Basics of typesetting with LilyPond.
-* Common notation:: Writing very commmon notation.
+* Common notation:: Writing very common notation.
* Fundamental concepts:: Basic concepts required for reading the rest of the manuals.
* Tweaking output:: Introduction to modifying output.
@cindex voices, naming
@cindex voices crossing brackets
@cindex slurs crossing brackets
-@cindex ties crossing brackest
+@cindex ties crossing brackets
This example has just two voices, but the same construct may be
used to encode three or more voices by adding more back-slash
}
@end lilypond
+@subheading Tempo marks
+
+@cindex tempo marks
+@cindex metronome marks
+
+@funindex \tempo
+@funindex tempo
+
+Music Glossary: @rglos{tempo indication}, @rglos{metronome}.
+
+The @notation{tempo indication} and @notation{metronome mark} can be
+set with the @code{\tempo} command:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+ \time 3/4
+ \tempo "Andante"
+ a4 a a
+ \time 6/8
+ \tempo 4. = 96
+ a4. a
+ \time 4/4
+ \tempo "Presto" 4 = 120
+ a4 a a a
+}
+@end lilypond
+
@subheading Clef
\relative c, {
\clef "bass"
\time 3/4
+ \tempo "Andante" 4 = 120
c2 e8 c'
g'2.
f4 e d
@end lilypond
On to bar three and the start of the Moderato section. The tutorial
-showed how to add embolded text with the @code{\markup} command, so
+showed how to add bold text with the @code{\markup} command, so
adding @qq{Moderato} in bold is easy. But how do we merge notes in
different voices together? This is where we need to turn again to
the Notation Reference for help. A search for @qq{merge} in the
MACRO DEFINITIONS GUIDELINES
****************************
-This file should contain macro defintions which are common to all
+This file should contain macro definitions which are common to all
languages, i.e. all macro definitions which do not contain text that
should be translated (namely text visible in the output).
A family of blown musical instruments made of brass, all using a cup
formed mouth piece. The brass instruments commonly used in a symphony
-orchestra are trumpet, trombone, french horn, and tuba. In marching bands,
+orchestra are trumpet, trombone, French horn, and tuba. In marching bands,
sousaphones and contrabass bugles are common.
@seealso
enhances the readability of a score.
Custodes were frequently used in music notation until the 16th century.
-There were different appearences for different notation styles. Nowadays,
+There were different appearances for different notation styles. Nowadays,
they have survived only in special forms of musical notation such as the
@emph{Editio Vaticana}, dating from the beginning of the 20th century
FI: diatoninen asteikko.
A scale consisting of 5@w{ }whole tones and 2@w{ }semitones (S). Scales
-played on the white keys of a piano keybord are diatonic. These scales
+played on the white keys of a piano keyboard are diatonic. These scales
are sometimes called, somewhat inaccurately, @q{church modes}).
These @emph{modes} are used in Gregorian chant and in pre-baroque early music
A family of musical instruments which are played on by striking or
shaking. Percussion instruments commonly used in a symphony orchestra are
kettledrums (I: @emph{timpani}, D: @emph{Pauken}), snare drum, bass drum,
-tambourine, cymbals, chinese gong (tam-tam), triangle, celesta, glockenspiel,
+tambourine, cymbals, Chinese gong (tam-tam), triangle, celesta, glockenspiel,
and xylophone.
@seealso
In its present-day meaning a sonata denotes an instrumental
composition for piano or for some other instrument with piano
-accompaniment, which consists of three or four independant pieces,
+accompaniment, which consists of three or four independent pieces,
called movements.
@seealso
their appearance and behaviour. Some of these properties are common
to all spanners; others are restricted to a sub-set of the spanners.
-All spanners support the @code{spanner-interface}. A few, esentially
+All spanners support the @code{spanner-interface}. A few, essentially
those that draw a straight line between the two objects, support in
addition the @code{line-spanner-interface}.
@end lilypond
This property is not effective for all spanners. For example,
-seting it to @code{#t} has no effect on slurs or phrasing slurs
+setting it to @code{#t} has no effect on slurs or phrasing slurs
or on other spanners for which terminating on the bar line would
not be meaningful.
@funindex phrasingSlurDashPattern
@cindex phrasing slur, defining dash patterns
@cindex slur, phrasing, defining dash patterns
-@cindex slur, definind dash patterns for phrasing
+@cindex slur, defining dash patterns for phrasing
Custom dash patterns for phrasing slurs can be defined:
>>
@end lilypond
-The number of strings in a fret diagram can be changed to accomodate
+The number of strings in a fret diagram can be changed to accommodate
different instruments such as banjos and ukuleles with the fret-diagram
markup string.
@cindex chord shapes for fretted instruments
@funindex \addChordShape
-@funindex add ChordShape
+@funindex addChordShape
@funindex storePredefinedDiagram
@funindex \storePredefinedDiagram
In addition to fret diagrams, LilyPond stores an internal list of chord
shapes. The chord shapes are fret diagrams that can be shifted along
-the neck to different posistions to provide different chords. Chord
+the neck to different positions to provide different chords. Chord
shapes can be added to the internal list and then used to define
predefined fret diagrams. Because they can be moved to various
positions on the neck, chord shapes will normally not contain
>>
@end lilypond
-Another playing technique (especially used on electic guitars) is
+Another playing technique (especially used on electric guitars) is
called @notation{palm mute}. The string is hereby partly muted by the
palm of the striking hand (hence the name). Lilypond supports
the notation of palm mute-style notes by changing the note head to a
are reflected in tempo changes in the MIDI output. This command
will normally result in the metronome mark being printed, but this
can be suppressed, see @ref{Metronome marks}. An alternative way
-of specifying the inital or overall MIDI tempo is described below,
+of specifying the initial or overall MIDI tempo is described below,
see @ref{MIDI block}.
Due to some limitations on Windows, the default extension for
@itemize
-@item The glissando is the most characterisic harp technique,
+@item The glissando is the most characteristic harp technique,
@ref{Glissando}.
@item A @notation{bisbigliando} is written as a tremelo @ref{Tremolo
The @code{\harp-pedal} command accepts a string of characters, where
@code{^} is the highest pedal position (flattened pitch), @code{-} is
-the middle pedal postion (natural pitch), @code{v} is the lowest pedal
+the middle pedal position (natural pitch), @code{v} is the lowest pedal
position (sharpened pitch), and @code{|} is the divider. A prefixed
@code{o} will circle the following pedal symbol.
% It also defines the positions of the two lines.
\override Staff.StaffSymbol #'line-positions = #'(-2 3)
- % This is neccessary; if not entered, the barline would be too short!
+ % This is necessary; if not entered, the barline would be too short!
\override Staff.BarLine #'bar-size = #3
}
@cindex relative octave entry
@cindex octave entry, relative
@cindex relative octave specification
-@cindex ocatve specification, relative
+@cindex octave specification, relative
@funindex relative
@funindex \relative
This section discusses how to input short repeats. Short repeats can
take two forms: slashes or percent signs to represent repeats of a
-single note, a single measure or two measures, and tremelos otherwise.
+single note, a single measure or two measures, and tremolos otherwise.
@menu
* Percent repeats::
@cindex tempo marks within tuplet brackets
When using a tuplet at the beginning of a piece with a @code{\tempo}
-mark, the music must be explicitely entered in a @code{\new Voice}
+mark, the music must be explicitly entered in a @code{\new Voice}
block, as discussed in @rlearning{Voices contain music}.
@funindex \textLengthOn
@funindex textLengthOn
@funindex \textLengthOff
-@funindex textLenthOff
+@funindex textLengthOff
@funindex \fermataMarkup
@funindex fermataMarkup
@funindex \compressFullBarRests
The @code{<< @{...@} \\ @{...@} >>} construct, where the two (or
more) expressions are separated by double backslashes, behaves
differently to the similar construct without the double backslashes:
-@emph{all} the expressions within this contruct are assigned
+@emph{all} the expressions within this construct are assigned
to new @code{Voice} contexts. These new @code{Voice} contexts
are created implicitly and are given the fixed names @code{"1"},
@code{"2"}, etc.
staff lines accordingly."
Actually I found, that the @internalsref{StaffSymbol} at line 481
-sends to an uncomplete
+sends to an incomplete
documentation. The property staff-space is not explained here. I
thought Y-extent might be of
help, but it is in turn explained by x-space which again is
@}
\paper @{
%% In a part consisting mostly of text,
- %% ly:minimal-breaking may be prefered
+ %% ly:minimal-breaking may be preferred
#(define page-breaking ly:minimal-breaking)
@}
\markup @{ @dots{} @}
image files converted to the Encapsulated PostScript format
(@emph{eps}), or to directly embed graphics into the input file, using
native PostScript code. In such a case, it may be useful to
-explicitely specify the size of the drawing, as demonstrated below:
+explicitly specify the size of the drawing, as demonstrated below:
@lilypond[quote,verbatim,relative=1]
c1^\markup {
@strong{@i{Artificial harmonics}}
@cindex artificial harmonics
-@cindex harmonics, artifical
+@cindex harmonics, artificial
Artificial harmonics are notated with two notes, one with a normal
note head indicating the stopped position and one with an open
@unnumberedsubsubsec Spoken music
@cindex parlato
@cindex Sprechgesang
-Such effects as @q{parlato} or @q{Sprechgesang} require perfomers to speak
+Such effects as @q{parlato} or @q{Sprechgesang} require performers to speak
without pitch but still with rhythm; these are notated by cross
note heads, as demonstrated in @ref{Special note heads}.
@c verbose! --FV
@c duplicated: TODO fix
-Additionaly, you can make an extender line to be typeset to indicate
+Additionally, you can make an extender line to be typeset to indicate
the melisma in the score, writing a double underscore next to the
first syllable of the melisma. This example shows the three elements
that are used for this purpose (all of them surrounded by spaces):
@item Breathing can be specified by rests or @ref{Breath marks}.
@item Legato playing is indicated by @ref{Slurs}.
@item Different types of tonguings, ranging from legato to non-legato to
-stacatto are usually shown by articulation marks, sometimes combined
+staccato are usually shown by articulation marks, sometimes combined
with slurs, see @ref{Articulations and ornamentations} and @ref{List of
articulations}.
@item Flutter tonguing is usually indicated by placing a tremolo mark
instruments:
@itemize
-@item Many wind instruments are transposing intruments, see
+@item Many wind instruments are transposing instruments, see
@ref{Instrument transpositions}.
@item The slide glissando are characteristic of the trombone, but other
winds may perform keyed or valved glissandi. See @ref{Glissando}.
This directory contains examples generated automatically from LSR
http://lsr.dsi.unimi.it/
-To update this directory and find addtional information, see
+To update this directory and find additional information, see
the Contributor's Guide, section "LSR to Git".
\header {
lsrtags = "expressive-marks, editorial-annotations"
texidoc = "
-Any graphical object can be printed over a white backgound to
+Any graphical object can be printed over a white background to
mask parts of objects that lie beneath. This can be useful to
improve the appearance of collisions in complex situations when
repositioning objects is impractical. It is necessary to explicitly
\end{lilypond}
has also the \verb|eps| options, but is not floating because there
-are an emptry line before and after the lilypond block. That is
+are an empty line before and after the lilypond block. That is
correct behaviour because it follows La\TeX{} convention that an
empty line signals a new paragraph. The \verb|eps| option
is not necessary when you want the music in a paragraph on its own.
@item eps
-@cindex Postscript, encapulated
+@cindex Postscript, encapsulated
@cindex EPS (Encapsulated PostScript)
for encapsulated PostScript. This dumps every page (system) as a separate
according to platform; for instance the various forms of Linux and
MacOS use @code{bash}, while Windows uses @code{cmd}. Note that on
MacOS X, you need to configure the system to use the command-line
-intepreter. Here are some example makefiles, with versions for both
+interpreter. Here are some example makefiles, with versions for both
Linux/MacOS and Windows.
The first example is for an orchestral work in four
The LilyPond Snippet Repository is a large collection of
user-submitted examples, which can freely be copied and used
-in your owm works. See what other people have written,
+in your own works. See what other people have written,
and add your own!
@example
German forum}
@uref{http://groups.google.com/group/lilypond-brasil,
-Portugese group}
+Portuguese group}
@uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
French mailing list}
@divClass{heading-center}
@ifclear web_version
- @c yes, we want verisonDevel here, since the online links
+ @c yes, we want versionDevel here, since the online links
@c for @version won't be up yet!
@heading Downloads for LilyPond @versionDevel
has completed.
@item
-Or from witin the Control Panel,locate and select LilyPond and then
+Or from within the Control Panel, locate and select LilyPond and then
choose the option to uninstall/remove the software. Click the @q{Finish}
button when the uninstaller has completed.
@end enumerate
-@subsubheading Invoking individual excecutable files
+@subsubheading Invoking individual executable files
-LilyPond excecutable files
+LilyPond executable files
-- such as lilypond, lilypond-book, convert-ly, and so on --
can be run from the command-line by invoking them:
Item *text_;
protected:
void stop_translation_timestep ();
- DECLARE_ACKNOWLEDGER (break_aligned);
DECLARE_ACKNOWLEDGER (break_alignment);
void process_music ();
void create_items ();
text_ = 0;
}
-
-/*
- see rehearsal mark comments.
- */
-void
-Bar_number_engraver::acknowledge_break_aligned (Grob_info inf)
-{
- Grob *s = inf.grob ();
- if (text_
- && !text_->get_parent (X_AXIS)
- && dynamic_cast<Item *> (s)
- && (s->get_property_data ("break-align-symbol")
- == text_->get_property_data ("break-align-symbol")))
- {
- /*
- By default this would land on the Paper_column -- so why
- doesn't it work when you leave this out? */
- text_->set_parent (s, X_AXIS);
- }
-}
-
-
void
Bar_number_engraver::acknowledge_break_alignment (Grob_info inf)
{
}
-ADD_ACKNOWLEDGER (Bar_number_engraver, break_aligned);
ADD_ACKNOWLEDGER (Bar_number_engraver, break_alignment);
ADD_TRANSLATOR (Bar_number_engraver,
import book_base as BookBase
from book_snippets import *
import lilylib as ly
+global _;_=ly._
+
+progress = ly.progress
+warning = ly.warning
+error = ly.error
# Recognize special sequences in the input.
#