James Lowe <james@james-lilybunto.(none)>
James Lowe <james@james-lily.(none)>
James Lowe <james.lowe@datacore.com>
+James Lowe <jlowe@james-ubuntu.(none)>
Jan Nieuwenhuizen <jan>
Jan Nieuwenhuizen <janneke>
Jan Nieuwenhuizen <janneke@gnu.org>
Joseph Wakeling <joseph.wakeling@webdrake.net>
Jürgen Reuter <reuter>
Jürgen Reuter <reuter@ipd.uka.de>
+Keith OHara <k-ohara5a5a@oco.net>
Kevin Dalley <kevin@kelphead.org>
Kieren MacMillan <kieren_macmillan@sympatico.ca>
Kurt Kroon <kroon@winfirst.com>
Till Rettig <till@urmeli.(none)>
Travis Briggs <briggs.travis@gmail.com>
Trevor Bača <trevorbaca@gmail.com>
+Trevor Daniels <tdanielsmusic@gmail.com>
Trevor Daniels <t.daniels@treda.co.uk>
Trevor Daniels <Trevor@Trevor-Laptop>
Valentin Villenave <valentin@localhost.(none)>
@end ignore
+@item
+@code{stringTunings} property values have changed from a list of
+semitones above middle C to a list of LilyPond pitch values.
+convert-ly will handle the change automatically where the value
+of @code{stringTunings} is set to a Scheme constant value.
+
+New commands @code{makeStringTuning} and @code{contextStringTuning}
+allow the creation of string tunings in the form of a Lilypond
+chord construct.
+
+@item
+By using @code{\cueDuringWithClef}, cue notes can now also have their own
+clef, which is correctly reset at the end of the cue notes. At the begin
+of each line, the standard clef is still displayed, but the cue clef is
+shown after the time/key signature in smaller size.
+@lilypond
+vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 }
+\addQuote vIQuote { \vI }
+
+Solo = \relative c {
+ \clef "bass"
+ \cueDuringWithClef #"vIQuote" #DOWN #"treble" { R1 } |
+ c4 \cueDuringWithClef #"vIQuote" #DOWN #"treble" {
+ r4 r2 |
+ r4
+ } c4 c2 |
+ \cueDuringWithClef #"vIQuote" #DOWN "soprano" { R1*2 \break R1 } |
+ c1
+}
+
+\score {
+ <<
+ \new Staff \new Voice \Solo
+ >>
+}
+@end lilypond
+
+
@item
Note names can be selected with a new
@code{@bs{}language "italiano"} command, which
@lilypond[verbatim,quote,relative=1]
\new TabStaff
\with {
- stringTunings = #'(17 14 9 5 2 -3)
+ stringTunings = #`(,(ly:make-pitch 1 3 NATURAL)
+ ,(ly:make-pitch 1 1 NATURAL)
+ ,(ly:make-pitch 0 5 NATURAL)
+ ,(ly:make-pitch 0 3 NATURAL)
+ ,(ly:make-pitch 0 1 NATURAL)
+ ,(ly:make-pitch -1 5 NATURAL))
tablatureFormat = #fret-letter-tablature-format
}
\new TabVoice {
(prep: 2 hours. discuss: 10 hours)
+@item @strong{Precise definition of Critical issues}:
+at the moment, a stable release is entirely dependent on the
+number of Critical issues, but there's some questions about
+precisely what a "Critical issue" should be. We should clarify
+this, in conjunction with a general discussion about how often we
+want to have stable releases, how permissive we want to be about
+patches, etc etc.
+
+(prep: 1 hour. discuss: 5 hours)
+
@end itemize
note with beam and phrase marks ending immediately after the last.
@example
-a8(\ ais16[ b cis( d] b) cis4~ b' cis,\)
+a8\( ais16[ b cis( d] b) cis4~ b' cis,\)
@end example
@item
commit which causes a problem. See the git manual page for
@code{git bisect}. This is a job that non-programmers can do,
although it requires familiarity with git, ability to compile
-LilyPond, and generally a fair amount of technical knowledge. An
-in-depth explanation of this process will not be given here.
+LilyPond, and generally a fair amount of technical knowledge. A
+brief summary is given below, but you may need to consult other
+documentation for in-depth explanations.
Even if you are not familiar with git or are not able to compile
LilyPond you can still help to narrow down the cause of a
LilyPond versions and testing them for the regression. Knowing
which version of LilyPond first exhibited the regression is
helpful to a developer as it shortens the @code{git bisect}
-procedure described above.
+procedure.
Once a problematic commit is identified, the programmers' job is
much easier. In fact, for most regression bugs, the majority of
More information is in @ref{Regression tests}.
+@subheading git bisect setup
+
+We need to set up the bisect for each problem we want to
+investigate.
+
+Suppose we have an input file which compiled in version 2.13.32,
+but fails in version 2.13.38 and above.
+
+@enumerate
+@item
+Begin the process:
+
+@example
+git bisect start
+@end example
+
+@item
+Give it the earliest known bad tag:
+
+@example
+git bisect bad release/2.13.38-1
+@end example
+
+(you can see tags with: @code{git tag} )
+
+@item
+Give it the latest known good tag:
+
+@example
+git bisect good release/2.13.32-1
+@end example
+
+You should now see something like:
+@example
+Bisecting: 195 revisions left to test after this (roughly 8 steps)
+[b17e2f3d7a5853a30f7d5a3cdc6b5079e77a3d2a] Web: Announcement
+update for the new "LilyPond Report"
+@end example
+
+@end enumerate
+
+@subheading git bisect actual
+
+@enumerate
+
+@item
+Compile the source:
+
+@example
+make
+@end example
+
+@item
+Test your input file:
+
+@example
+out/bin/lilypond test.ly
+@end example
+
+@item
+Test results?
+
+@itemize
+@item
+Does it crash, or is the output bad? If so:
+
+@example
+git bisect bad
+@end example
+
+@item
+Does your input file produce good output? If so:
+
+@example
+git bisect good
+@end example
+
+@end itemize
+
+@item
+Once the exact problem commit has been identified, git will inform
+you with a message like:
+
+@example
+6d28aebbaaab1be9961a00bf15a1ef93acb91e30 is the first bad commit
+%%% ... blah blah blah ...
+@end example
+
+If there is still a range of commits, then git will automatically
+select a new version for you to test. Go to step #1.
+
+@end enumerate
+
+@subheading Recommendation: use two terminal windows
+
+@itemize
+@item
+One window is open to the @code{build/} directory, and alternates
+between these commands:
+
+@example
+make
+out/bin/lilypond test.ly
+@end example
+
+@item
+One window is open to the top source directory, and alternates
+between these commands:
+
+@example
+git bisect good
+git bisect bad
+@end example
+
+@end itemize
+
@node Lilydev
@section Lilydev
-text.
+This section discusses how to install and use the Ubuntu LilyPond
+Development Remix.
@menu
* Installing lilydev::
@advanced{Some users might want these files, but if you don't
recognize what they are, then you don't want them:
+@*
@uref{http://files.lilynet.net/ubuntu-lilydev-remix-1.0.iso.md5}
+@*
@uref{http://files.lilynet.net/ubuntu-lilydev-remix-1.0.iso.torrent}
}
firefox ~/lilypond-git/build/out-www/offline-root/index.html
@end example
-@subsubheading Other options
-
-To select different build options, or isolate certain parts of the
-build, or to use multiple CPUs while building, read the rest of
-this chapter.
-
-@subsubheading Installing LilyPond with lilydev
+@subsubheading Installing
Don't. There is no reason to install lilypond within lilydev.
All development work can (and should) stay within the
or typesetting work should be done with an official GUB release.
+@subsubheading Problems and other options
+
+To select different build options, or isolate certain parts of the
+build, or to use multiple CPUs while building, read
+@ref{Compiling}.
+
+In particular, contributors working on the documentation should be
+aware of some bugs in the build system, and should read the
+workarounds in @ref{Generating documentation}.
+
+
@node Now start work!
@section Now start work!
their intended contributions:
@itemize
-@item @rcontrib{Documentation work}
-@item @rcontrib{Translating the documentation}
-@item @rcontrib{Website work}
-@item @rcontrib{Regression tests}
-@item @rcontrib{Programming work}
+@item @ref{Documentation work}
+@item @ref{Translating the documentation}
+@item @ref{Website work}
+@item @ref{Regression tests}
+@item @ref{Programming work}
+@end itemize
+
+These chapters are mainly intended for people not using LilyDev,
+but they contain extra information about the
+@qq{behind-the-scenes} activities. We recommend that you read
+these at your leisure, a few weeks after beginning work with
+LilyDev.
+
+@itemize
+@item @ref{Working with source code}
+@item @ref{Compiling}
@end itemize
is made automatically upon compiling the regression test suite
twice.
-Before making changes, a baseline should be established by running:
+@enumerate
+
+@item
+Before making changes, a baseline should be established by
+running:
@example
make test-baseline
@end example
-After making the changes, the code should be checked by running:
+@item
+Make your changes, or apply the patch(es) to consider.
+
+@item
+Compile the source with @samp{make} as usual.
+
+@item
+Check for unintentional changes to the regtests:
@example
make check
@end example
-After @samp{make@tie{}check} is complete, a regression test comparison
-will be available at @file{out/test-results/index.html}.
+After this has finished, a regression test comparison will be
+available at:
+
+@example
+out/test-results/index.html
+@end example
+
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
-regressions are introduced, they must be fixed before committing the
-code.
+changed code, a regression test entry will displayed. Ideally,
+the only changes would be the changes that you were working on.
+If regressions are introduced, they must be fixed before
+committing the code.
@warning{
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.}
-Once @samp{make@tie{}test-baseline} and @samp{make@tie{}check} have been
-run, the files that differ between @samp{test-baseline} and @samp{check}
-can be repeatedly examined by doing:
+@item
+If you are happy with the results, then stop now.
+
+If you want to continue programming, then make any additional code
+changes, and continue.
+
+@item
+Compile the source with @samp{make} as usual.
+
+@item
+To re-check files that differed between the initial
+@samp{make@tie{}test-baseline} and your post-changes
+@samp{make@tie{}check}, run:
@example
make test-redo
This updates the regression list at @file{out/test-results/index.html}.
It does @emph{not} redo @file{test-output-distance.ly}.
+@item
When all regressions have been resolved, the output list will be empty.
+@item
Once all regressions have been resolved, a final check should be completed
by running:
This cleans the results of the previous @samp{make@tie{}check}, then does the
automatic regression comparison again.
+@end enumerate
+
@node Memory and coverage tests
@section Memory and coverage tests
@uref{http://codereview.appspot.com/}
@end example
-@subsubheading Initial setup
+@subsubheading @command{git-cl} install
-@enumerate
+LilyDev users should skip over these @q{install} instructions.
-@item
-You must have a gmail account.
+@enumerate
@item
Install @command{git-cl} by entering:
scripts in one of your PATH directories (such as
@file{$HOME/bin}).
+@end enumerate
+
+@subsubheading @command{git-cl} configuration
+
+LilyDev users should perform these @q{configuration} instructions.
+
+@enumerate
+@item
+You must have a gmail account; please create one if you do not
+have one already.
@item
-Move into the top source directory and then configure
-@command{git cl}. If you do not understand any question, just
-answer with a newline (CR).
+Move into the top source directory and then configure @command{git
+cl} with the following commands. If you do not understand any
+question, just answer with a newline (CR).
@example
cd $HOME/lilypond-git/
@warning{Wir empfehlen, dass Beitragende, die Windows oder
MacOS X benutzen, @strong{nicht} ihre eigene Entwicklungsumgebung
einrichten, sondern anstattdessen lilybuntu benutzen, welches
-besprochen ist in @rcontribnamed{Quick start,Schnellstart}.
+besprochen ist in @rcontribnamed{Quick start,Schnellstart}.}
Beitragende, die Linux oder FreBSD benutzen, können auch lilybuntu
einsetzen, aber wenn Sie Ihre eigene Entwicklungsumgebung einrichten
Guide, node Updating translation committishes.
@end ignore
-@c \version "2.13.36"
+@c \version "2.13.46"
@c Translators: Till Paala
\mynotes
}
\new TabStaff {
- \set TabStaff.stringTunings = #'(21 14 7 0)
+ \set TabStaff.stringTunings = #`(,(ly:make-pitch 1 5 0)
+ ,(ly:make-pitch 1 1 0)
+ ,(ly:make-pitch 0 4 0)
+ ,(ly:make-pitch 0 0 0))
\mynotes
}
>>
@lilypond[verbatim,quote,relative=1]
\new TabStaff
\with {
- stringTunings = #'(17 14 9 5 2 -3)
+ stringTunings = #`(,(ly:make-pitch 1 3 NATURAL)
+ ,(ly:make-pitch 1 1 NATURAL)
+ ,(ly:make-pitch 0 5 NATURAL)
+ ,(ly:make-pitch 0 3 NATURAL)
+ ,(ly:make-pitch 0 1 NATURAL)
+ ,(ly:make-pitch -1 5 NATURAL))
tablatureFormat = #fret-letter-tablature-format
}
\new TabVoice {
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.13.46"
@node Instrumentos de cuerda con trastes
@section Instrumentos de cuerda con trastes
\mynotes
}
\new TabStaff {
- \set TabStaff.stringTunings = #'(21 14 7 0)
+ \set TabStaff.stringTunings = #`(,(ly:make-pitch 1 5 0)
+ ,(ly:make-pitch 1 1 0)
+ ,(ly:make-pitch 0 4 0)
+ ,(ly:make-pitch 0 0 0))
\mynotes
}
>>
@docLinksBare{Guía del colaborador, contributor,
@rcontribnamed{Top,Guía del colaborador},
- @manualDevelContributorSplit-es,
- @manualDevelContributorBig-es, 500 kB,
- @manualDevelContributorPdf-es, 2.8 MB}
+ @manualDevelContributorSplit,
+ @manualDevelContributorBig, 500 kB,
+ @manualDevelContributorPdf, 2.8 MB}
@divEnd
@docLinkPdf{Aprendizaje,learning,@manualDevelLearningPdf-es}
@item
-@docLinkSplit{Glosario,music-glossary,@manualDevelGlossarySplit-es}
+@docLinkSplit{Glosario,music-glossary,@manualDevelGlossarySplit}
@tab
-@docLinkBig{Glosario,music-glossary,@manualDevelGlossaryBig-es}
+@docLinkBig{Glosario,music-glossary,@manualDevelGlossaryBig}
@tab
-@docLinkPdf{Glosario,music-glossary,@manualDevelGlossaryPdf-es}
+@docLinkPdf{Glosario,music-glossary,@manualDevelGlossaryPdf}
@item
@docLinkSplit{Ensayo,essay,@manualDevelEssaySplit-es}
@docLinkPdf{Utilización,usage,@manualDevelUsagePdf-es}
@item
-@docLinkSplit{Fragmentos,snippets,@manualDevelSnippetsSplit-es}
+@docLinkSplit{Fragmentos,snippets,@manualDevelSnippetsSplit}
@tab
-@docLinkBig{Fragmentos,snippets,@manualDevelSnippetsBig-es}
+@docLinkBig{Fragmentos,snippets,@manualDevelSnippetsBig}
@tab
-@docLinkPdf{Fragmentos,snippets,@manualDevelSnippetsPdf-es}
+@docLinkPdf{Fragmentos,snippets,@manualDevelSnippetsPdf}
@headitem Poco frecuentes
@tab
@docLinkBig{Web,web,@manualDevelWebBig-es}
@tab
-@docLinkPdf{Web,web,@manualDevelWebPdf-es}
+@docLinkPdf{Web,web,@manualDevelWebPdf}
@item
-@docLinkSplit{Cambios,changes,@manualDevelChangesSplit-es}
+@docLinkSplit{Cambios,changes,@manualDevelChangesSplit}
@tab
-@docLinkBig{Cambios,changes,@manualDevelChangesBig-es}
+@docLinkBig{Cambios,changes,@manualDevelChangesBig}
@tab
@docLinkPdf{Cambios,changes,@manualDevelChangesPdf-es}
@docLinkPdf{Extensiones,extending,@manualDevelExtendingPdf-es}
@item
-@docLinkSplit{Funcionamiento interno,internals,@manualDevelInternalsSplit-es}
+@docLinkSplit{Funcionamiento interno,internals,@manualDevelInternalsSplit}
@tab
-@docLinkBig{Funcionamiento interno,internals,@manualDevelInternalsBig-es}
+@docLinkBig{Funcionamiento interno,internals,@manualDevelInternalsBig}
@tab
-@docLinkPdf{Funcionamiento interno,internals,@manualDevelInternalsPdf-es}
+@docLinkPdf{Funcionamiento interno,internals,@manualDevelInternalsPdf}
@ifset web_version
@headitem Para descargar
@unnumberedsubsubsec Quadrillage temporel
@translationof Grid lines
-@cindex cadrillage temporel
-@cindex temporel, cadrillage
+@cindex quadrillage temporel
+@cindex temporel, quadrillage
@funindex Grid_point_engraver
@funindex Grid_line_span_engraver
les notes.
LilyPond a recours à deux graveurs distincts afin d'afficher le
-cadrillage@tie{}: le @code{Grid_point_engraver} se charge de
+quadrillage@tie{}: le @code{Grid_point_engraver} se charge de
déterminer l'envergure du crochet, alors que le
@code{Grid_line_span_engraver} se consacrera au tracé des lignes.
Les lignes sont par défaut centrées horizontalement sous les notes et
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.13.46"
@c Translators: Matthieu Jacquot
@c Translation checkers: Jean-Charles Malahieude
\mynotes
}
\new TabStaff {
- \set TabStaff.stringTunings = #'(21 14 7 0)
+ \set TabStaff.stringTunings = #`(,(ly:make-pitch 1 5 0)
+ ,(ly:make-pitch 1 1 0)
+ ,(ly:make-pitch 0 4 0)
+ ,(ly:make-pitch 0 0 0))
\mynotes
}
>>
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: 97ecad3753202d0b887c669c05a4ced18bca5acb
+ Translation of GIT committish: f662ca41b36ba6f0bf4cf146b7e6e9bc04bd3756
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@section Travail sur des fichiers texte
@translationof Working with input files
-@untranslated
-
-
@menu
* Insertion de fichiers LilyPond::
* Différentes éditions à partir d'une même source::
@subsection Insertion de fichiers LilyPond
@translationof Including LilyPond files
-@untranslated
+@funindex \include
+@cindex inclusion de fichiers
+
+Lorsqu'un projet prend de l'importance en volume, il est judicieux de le
+scinder en plusieurs fichiers, auxquels vous fereez référence avec un
+simple
+
+@example
+\include "autrefichier.ly"
+@end example
+
+Une ligne @code{\include "autrefichier.ly"} dans un fichier revient à
+recopier intégralement le contenu de @file{autrefichier.ly} à l'endroit
+même ou est placée l'instruction @code{\include}. Vous pouvez par
+exemple écrire un fichier individuel par instrument, puis les regrouper
+pour former le fichier @qq{conducteur}. Les différentes variables
+définies dans les fichiers séparés seront normalement reprises et
+utilisables dans le fichier formant le conducteur. Les sections
+balisées dans les fichiers individuels peuvent être réutilisées en
+différents endroit de la partition , comme expliqué à la rubrique
+@ref{Différentes éditions à partir d'une même source}.
+
+Lorsque le fichier auquel il est fait référence se trouve dans le même
+répertoire, donner seulement son nom en argument à la commande
+@code{\include} suffit. S'il se trouve ailleurs, vous devrez indiquer
+le chemin d'accès, absolu ou relatif, en respectant toutefois la syntaxe
+UNIX -- autrement dit, le séparateur de répertoire est une oblique
+normale @code{/} et non l'oblique inverse @code{\} de DOS/Windows. Par
+exemple, si le fichier @file{truc.ly} se trouve dans le répertoire
+supérieur au répertoire de travail, la ligne devra être
+
+@example
+\include "../stuff.ly"
+@end example
+
+@noindent
+ou bien, si les fichiers correspondant aux parties d'orchestre se
+trouvent dans le sous-répertoire @file{parties} relativement au
+répertoire courant, vous devrez mentionner
+
+@example
+\include "parties/VI.ly"
+\include "parties/VII.ly"
+... etc.
+@end example
+
+Les fichiers à inclure peuvent eux-même contenir des instructions
+@code{\include}. Ces instructions @code{\include} de second niveau ne
+pourront, par défaut, être interprétées qu'une fois intégrées dans le
+fichier principal@tie{}; leur argument doit donc comporter le chemin
+relativement au fichier principal et non par rapport au fichier dan
+lesquel cette inclusion est mentionnée. Vous pouvez toutefois influer
+sur ce comportement à l'aide de l'option @code{-drelative-includes} en
+ligne de commande ou en ajoutant une clause
+@code{@w{#(ly:set-option 'relative-includes #t)}} en tête du fichier
+principal. Une fois @code{relative-include} activé, le chemin à suivre
+pour chacune des commandes @code{\include} sera pris relativement au
+fichier qui la contient.
+
+Vous pouvez inclure des fichiers dont vous spécifierez le chemin d'accès
+sur la ligne de commande au moment de lancer la compilation. L'appel à
+ces fichiers ne mentionnerra alors que leur nom. Par exemple, si vous
+voulez compiler avec cette méthode le fichier @file{principal.ly} qui
+inclut des fichiers situés dans le sous-répertoire @file{parties},
+placez vous dans le répertoire contenant @file{principal.ly}, puis tapez
+
+@example
+lilypond --include=parties principal.ly
+@end example
+
+tout en ayant bien dans @file{principal.ly}
+
+@example
+\include "VI.ly"
+\include "VII.ly"
+... etc
+@end example
+
+Lorsqu'un fichier est voué à être inclus dans nombre de partitions, vous
+pouvez le placer dans le répertoire de LilyPond @file{../ly}.
+Attention@tie{}: ce répertoire varie selon votre installation, comme
+indiqué au chapitre @rlearning{Autres sources de documentation}. Ce
+fichier sera inclus dès lors que vous fournirez uniquement son nom en
+argument à la fonction @code{\include}. C'est par exemple le cas du
+fichier de définition particulier @file{gregorian.ly}.
+
+Au moment où vous lancez LilyPond, un certain nombre de fichiers se
+retrouvent inclus par défaut@tie{}; il suffit d'activer le mode verbeux
+en faisant @code{lilypond --verbose} pour s'en rendre compte. Vous
+verrez ainsi défiler, en plus de nombreuses informations, le nom d'un
+certain nombre de fichier et de chemins d'accès. Les fichiers les plus
+important sont mentionnés au chapitre
+@rlearning{Autres sources de documentation}. Si vous venez à les
+modifier, rappelez-vous qu'ils seront écrasés à l'installation d'une
+nouvelle version de LilyPond.
+
+Vous trouverez quelques exemples simples d'utilisation de la commande
+@code{\include} au chapitre @rlearning{Conducteurs et parties}.
+
+
+@seealso
+Manuel d'initiation :
+@rlearning{Autres sources de documentation},
+@rlearning{Conducteurs et parties}.
+
+
+@knownissues
+
+Lorsque vous incluez un fichier qui porte le même nom que l'un des
+fichiers d'initialisation de LilyPond, le fichier de la distribution de
+LilyPond aura préséance.
@node Différentes éditions à partir d'une même source
@subsection Différentes éditions à partir d'une même source
@translationof Different editions from one source
-@untranslated
-
+Différents mécanismes permettent de générer plusieurs versions d'une
+partition à partir d'une même source. Les variables -- ou
+idendificateurs -- sont sûrement le moyen le plus simple de combiner de
+différente manière des passages relativement longs, alors que les
+balises permettront de sélectionner de courts fragments selon leur
+utilisation. Quelle que soit la méthode utilisée, séparer la notation
+de la structure de la partition vous donnera plus de liberté dans
+l'agencement de l'ouvrage final, puisque vous ne reviendrez pas sur la
+musique qui le compose.
@menu
* Utilisation de variables::
@unnumberedsubsubsec Utilisation de variables
@translationof Using variables
-@untranslated
+@cindex variables, utilisation de
+
+Un fragment musical identifié par une variable est réutilisable à divers
+endroits de la partition, comme nous l'avons vu à la rubrique
+@rlearning{Organisation du code source avec des variables}. Par
+exemple, une partition pour chœur @notation{a cappella} comporte souvent
+une réduction pour piano reprenant toutes les voix@tie{}; il s'agit de
+la même musique, et vous ne devrez donc la saisir qu'une seule fois.
+D'autre part, la musique issue de deux variables peut se combiner sur
+une seule portée, comme nous l'avons vu à la rubrique
+@ref{Regroupement automatique de parties}. Prenons l'exemple
+suivant@tie{}:
+
+@lilypond[verbatim,quote]
+sopranoMusic = \relative c'' { a4 b c b8( a) }
+altoMusic = \relative g' { e4 e e f }
+tenorMusic = \relative c' { c4 b e d8( c) }
+bassMusic = \relative c' { a4 gis a d, }
+allLyrics = \lyricmode {King of glo -- ry }
+<<
+ \new Staff = "Soprano" \sopranoMusic
+ \new Lyrics \allLyrics
+ \new Staff = "Alto" \altoMusic
+ \new Lyrics \allLyrics
+ \new Staff = "Tenor" {
+ \clef "treble_8"
+ \tenorMusic
+ }
+ \new Lyrics \allLyrics
+ \new Staff = "Bass" {
+ \clef "bass"
+ \bassMusic
+ }
+ \new Lyrics \allLyrics
+ \new PianoStaff <<
+ \new Staff = "RH" {
+ \set Staff.printPartCombineTexts = ##f
+ \partcombine
+ \sopranoMusic
+ \altoMusic
+ }
+ \new Staff = "LH" {
+ \set Staff.printPartCombineTexts = ##f
+ \clef "bass"
+ \partcombine
+ \tenorMusic
+ \bassMusic
+ }
+ >>
+>>
+@end lilypond
+
+Générer une partition chorale ou la réduction pour piano ne requiert que
+de modifier la structure des éléments, sans aucunement toucher à la
+musique.
+
+Dans le cas d'une partition relativement longue, vous pouvez isoler la
+définition des différentes variables dans des fichiers séparés que vous
+rappellerez ensuite, comme indiqué à la rubrique
+@ref{Insertion de fichiers LilyPond}.
@node Utilisation de balises
@unnumberedsubsubsec Utilisation de balises
@translationof Using tags
+
@funindex \tag
+@funindex \keepWithTag
+@funindex \removeWithTag
@cindex tag
+@cindex balise
+
+La commande @code{\tag #'@var{partieA}} affecte à une expression
+musicale le nom @var{partieA}. Les expressions ainsi balisées pourront
+être filtrées par la suite, à l'aide de
+@code{\keepWithTag@tie{}#'@var{nom}} ou
+@code{\removeWithTag@tie{}#'@var{nom}}. Ces filtres fonctionnent de la
+manière suivante@tie{}:
+
+@multitable @columnfractions .5 .5
+@headitem Filtre
+ @tab Résultat
+
+@item
+Musique balisée précédée de @code{\keepWithTag #'@var{nom}}
+ @tab Musique non balisée et musique balisée par @var{nom} seront
+ incluses@tie{}; la musique balisée autrement est exclue.
-La commande @code{\tag} affecte un nom à des expressions musicales.
-Les expressions ainsi balisées pourront être filtrées par la suite.
-Ce mécanisme permet d'obtenir différentes versions à partir d'une même
-source musicale.
+@item
+Musique balisée précédée de @code{\removeWithTag #'@var{nom}}
+ @tab Musique non balisée et fragments appelés autrement que @var{nom}
+ seront inclus@tie{}; la musique balisée par @var{nom} est exclue.
+
+@item
+Musiqeu balisée non précédée de @code{\keepWithTag} ou
+@code{\removeWithTag}
+ @tab Musique balisée et non balisée seront incluses.
+
+@end multitable
+
+Les arguments des commandes @code{\tag}, @code{\keepWithTag} et
+@code{\removeWithTag} doivent être un symbole (tel que
+@code{#'conducteur} ou @code{#'partie}), suivi d'une expression
+musicale.
Dans l'exemple qui suit, nous obtenons deux versions du même extrait,
l'une pour le conducteur, l'autre pour l'instrumentiste, et qui
-comportera les ornements.
+comportera les ornements développés.
-@example
-c1
-<<
- \tag #'partie <<
- R1 \\
- @{
- \set fontSize = #-1
- c4_"cue" f2 g4 @}
- >>
- \tag #'conducteur R1
->>
-c1
-@end example
+@lilypond[verbatim,quote]
+music = \relative g' {
+ g8. c32 d
+ \tag #'trills { d8.\trill }
+ \tag #'expand { \repeat unfold 3 { e32 d } }
+ c32 d
+ }
+
+\score {
+ \keepWithTag #'trills \music
+}
+\score {
+ \keepWithTag #'expand \music
+}
+@end lilypond
@noindent
-Ce principe peut s'appliquer aux articulations, textes, etc. Il
-suffit de positionner
+Il est parfois plus aisé d'exclure des fragments@tie{}:
+
+@lilypond[verbatim,quote]
+music = \relative g' {
+ g8. c32 d
+ \tag #'trills { d8.\trill }
+ \tag #'expand {\repeat unfold 3 { e32 d } }
+ c32 d
+ }
+
+\score {
+ \removeWithTag #'expand
+ \music
+}
+\score {
+ \removeWithTag #'trills
+ \music
+}
+@end lilypond
+
+Ce principe de filtrage peut s'appliquer aux articulations, textes, etc.
+Il suffit de positionner
@example
--\tag #@var{votre-balise}
+-\tag #@var{ma-balise}
@end example
@noindent
-avant l'articulation, comme ici :
+avant l'articulation ou le texte, comme ici :
@example
-c1-\tag #'part ^4
+c1-\tag #'doigt ^4
+c1-\tag #'gaffe ^"Attention !"
@end example
@noindent
-Ceci définira une note avec une indication de doigté conditionnelle.
+Ceci définira une note avec une indication conditionnelle de doigté ou
+un texte.
-@cindex keepWithTag
-@cindex removeWithTag
-C'est grâce aux commandes @code{\keepWithTag} et @code{\removeWithTag}
-que vous filtrerez les expressions balisées. Par exemple :
+Vous pouvez baliser différemment la même expression musicale en
+saisissant plusieurs @code{\tag}@tie{}:
-@example
+@lilypond[quote,verbatim]
+music = \relative c'' {
+ \tag #'a \tag #'both { a4 a a a }
+ \tag #'b \tag #'both { b4 b b b }
+}
<<
- @var{de la musique}
- \keepWithTag #'score @var{de la musique}
- \keepWithTag #'part @var{de la musique}
+\keepWithTag #'a \music
+\keepWithTag #'b \music
+\keepWithTag #'both \music
>>
-@end example
+@end lilypond
-@noindent
-donnerait :
+L'application concomitante de plusieurs filtres @code{\removeWithTag} à
+la même expression musicale permet d'exclure plusieurs balisages@tie{}:
-@lilypondfile[ragged-right,quote]{tag-filter.ly}
+@lilypond[verbatim,quote]
+music = \relative c'' {
+\tag #'A { a4 a a a }
+\tag #'B { b4 b b b }
+\tag #'C { c4 c c c }
+\tag #'D { d4 d d d }
+}
+{
+\removeWithTag #'B
+\removeWithTag #'C
+\music
+}
+@end lilypond
-Les arguments de la commande @code{\tag} doivent être un symbole (tel
-que @code{#'score} ou @code{#'part}), suivi d'une expression musicale.
-Vous pouvez utiliser de multiples balises dans un morceau en
-saisissant plusieurs @code{\tag}.
+L'application de plus d'un filtre @code{\keepWithTag} à la même
+expression musicale aboutit à l'exclusion de @b{tous} les balisages.
+En effet, si le premier filtre exclut tous les autres balisages,
+l'application du second exclura les effets du premier.
-@example
-\tag #'original-part \tag #'transposed-part @dots{}
-@end example
-@ignore
-FIXME
@seealso
-Exemples : @lsr{parts,tag@/-filter@/.ly}
-@end ignore
+Manuel d'initiation :
+@rlearning{Organisation du code source avec des variables}.
+
+Manuel de notation :
+@ref{Regroupement automatique de parties},
+@ref{Insertion de fichiers LilyPond}.
+
+@ignore
+@c This warning is more general than this placement implies.
+@c Rests are not merged whether or not they come from tagged sections.
+@c Should be deleted? -td
@knownissues
Lorsqu'elles comportent des silences, ceux-ci ne seront pas fusionnés
si vous imprimez une partition avec les deux sections balisées.
+@end ignore
+
@node Codage du texte
@subsection Codage du texte
@translationof Text encoding
-@untranslated
+@cindex Unicode
+@cindex UTF-8
+@cindex non-ASCII characters
+
+LilyPond utilise le jeu de caractères défini par le consortium Unicode
+et la norme ISO/CEI@tie{}10646. Chaque caractère est identifié par un
+nom unique et associé à un point de code, ce qui permet dans l'absolu de
+couvrir tous les langages. Unicode permet de coder tous les caractères
+utilisés par toutes les langues écrites du monde. LilyPond utilise le
+codage UTF-8 (UTF pour @emph{Unicode Transformation Format}) qui permet
+de représenter les caractères latins sur un octet et les autres sur une
+longueur allant jusqu'à quatre octets.
+
+L'apparence réelle des caractères est déterminée par les glyphes ou
+graphèmes tels que définis dans les différentes polices disponibles.
+Une police, ou une fonte, définit la mise en correspondance d'un
+sous-ensemble de points de code unicode en glyphes. LilyPond recourt à
+la bibliothèque Pango pour assurer le rendu des textes multilingues.
+
+LilyPond n'effectue aucune conversion d'encodage que ce soit. Ceci
+implique donc que tout texte, qu'il s'agisse d'un titre, de paroles ou
+même d'instruction musicale, comportant des caractères non ASCII soit
+codé en UTF-8. Le plus sûr moyen de saisir du texte de la sorte
+consiste à utiliser un éditeur supportant l'unicode et à enregistrer vos
+fichier en UTF-8. C'est le cas pour la plupart des éditeurs actuels,
+que ce soit vim, Emacs, jEdit et GEdit. Tous les systèmes Windows
+postérieurs à NT utilisent Unicode en natif@tie{}; même Notepad est
+capable d'éditer et sauvegarder un fichie en UTF-8 -- sans parler de
+l'excellente alternative qu'est BabelPad.
+
+La compilation d'un fichier LilyPond comportant des caractères non ASCII
+qui n'aurait pas été enregistré dans l'encodage UTF-8 vous renverra
+l'erreur
+
+@example
+FT_Get_Glyph_Name () erreur : invalid argument
+@end example
+
+Voici un exemple utilisant du texte en cyrilique, en hébreux et en
+portugais.
+
+@lilypond[quote]
+%c No verbatim here as the code does not display correctly in PDF
+% Cyrillic
+bulgarian = \lyricmode {
+ Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.
+}
+
+% Hebrew
+hebrew = \lyricmode {
+ זה כיף סתם לשמוע איך תנצח קרפד עץ טוב בגן.
+}
+
+% Portuguese
+portuguese = \lyricmode {
+ à vo -- cê uma can -- ção legal
+}
+
+\relative c' {
+ c2 d e f g f e
+}
+\addlyrics { \bulgarian }
+\addlyrics { \hebrew }
+\addlyrics { \portuguese }
+@end lilypond
+
+Lorsque vous avez besoin d'un caractère dont vous connaissez le point de
+code mais que votre éditeur ne permet pas de saisir directement, vous
+pouvez utitliser les instructions @code{\char@tie{}##xhhhh} ou
+@code{\char@tie{}#dddd} au sein d'un bloc @code{\markup} -- @code{hhhh}
+et @code{dddd} correspondant respectivement à la valeur hexadécimale ou
+décimale. Même s'il est inutile de saisir les zéros superflus, il est
+de bon ton de stipuler les quatre caractères formant la représentation
+hexadécimale. Évitez cependant l'encodage UTF-8 d'un point de code
+après un @code{\char}@tie{}; les encodages UTF-8 comprennent un bit
+supplémentaire indiquant le nombre d'octets. Une table de
+correspondance entre les codes Unicode et le nom des caractères ainsi
+que leur code hexadécimal est disponible sur le site du consortium
+Unicode, @uref{http://www.unicode.org/}.
+
+Par exemple, @code{\char ##x03BE} et @code{\char #958} correspondent
+tous deux au caractère unicode U+03BE, dénommé @qq{Greek Small Letter
+Xi}.
+
+Quel que soit le point de code spécifié de cette manière, il ne vous
+sera alors pas nécessaire d'enregistrer votre fichier en UTF-8. Vous
+devrez toutefois disposer d'une fonte contenant ce caractère qui soit
+accessible à LilyPond.
+
+L'exemple suivant illustre la manière d'insérer un caractère sous sa
+forme hexadécimale, à la fois dans un repère, dans une articulation,
+dans des paroles et dans du texte indépendant.
+
+@lilypond[quote,verbatim]
+\score {
+ \relative c'' {
+ c1 \mark \markup { \char ##x03EE }
+ c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
+ }
+ \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
+}
+\markup { "Copyright 2008--2010" \char ##x00A9 }
+@end lilypond
+
+@cindex copyright
+
+Le signe @emph{copyright} dans le champ de titrage consacré s'inscrit de
+la manière suivante@tie{}:
+
+@example
+\header @{
+ copyright = \markup @{ \char ##x00A9 "2008" @}
+@}
+@end example
@node Affichage de notation au format LilyPond
@subsection Affichage de notation au format LilyPond
@translationof Displaying LilyPond notation
-@untranslated
+@funindex \displayLilyMusic
+
+La fonction musicale @code{\displayLilyMusic}, disponible uniquement
+pour un traitement en ligne de commande, permet d'afficher en
+notation LilyPond une expression musicale. Par exemple,
+
+@example
+@{
+ \displayLilyMusic \transpose c a, @{ c4 e g a bes @}
+@}
+@end example
+
+affichera
+
+@example
+@{ a,4 cis e fis g @}
+@end example
+
+LilyPond affichera le résultat sous forme de message en console, au
+milieu de toutes les informations de compilation. Afin d'isoler ces
+messages et enregistrer le résultat de la fonction
+@code{\display@{STUFF@}}, pensez à rediriger la sortie vers un fichier.
+
+@example
+lilypond fichier.ly >display.txt
+@end example
@node Contrôle des sorties
@section Contrôle des sorties
@translationof Controlling output
-@untranslated
-
-
@menu
* Extraction de fragments musicaux::
* Ignorer des passages de la partition::
@subsection Extraction de fragments musicaux
@translationof Extracting fragments of music
-@untranslated
+LilyPond vous permet d'extraire des fragments d'une partition à l'instar
+du choriste amateur qui alimente son album avec des coupures de
+journaux.
+
+Vous devrez pour cela définir les mesures à découper. La définition
+suivante, incluse dans votre fichier source,
+
+@verbatim
+\layout {
+ clip-regions
+ = #(list
+ (cons
+ (make-rhythmic-location 5 1 2)
+ (make-rhythmic-location 7 3 4)))
+}
+@end verbatim
+
+@noindent
+vous permettra d'extraire un fragment compris entre le milieu de la
+cinquième mesure et quelque part dans la septième. Le triplet
+@code{5@tie{}1@tie{}2} signifie@tie{}: après la durée d'une blanche dans
+la mesure 5@tie{}; le @code{7@tie{}3@tie{}4} signifie quant à lui que
+l'on s'arrête à la mesure 7, après la durée de trois noires.
+
+Rien ne vous empêche d'extraire plusieurs fragments, dès lors que vous
+définissez dans la liste d'autres paires d'emplacements ryhtmiques.
+
+Cette fonctionnalité n'est toutefois effective que lorsque vous lancez
+LilyPond avec l'option @code{-dclip-systems}. Les @qq{coupures} seront
+générées sous la forme de fichiers EPS, convertis en PDF ou PNG selon le
+format que vous aurez stipulé.
+
+Pour de plus amples informations quant au format des résultats,
+consultez le chapitre @rprogram{Lancement de lilypond}.
@node Ignorer des passages de la partition
@subsection Ignorer des passages de la partition
@translationof Skipping corrected music
-@untranslated
+@funindex skipTypesetting
+@funindex showFirstLength
+@funindex showLastLength
+
+Dans un travail de transcription ou de recopie de la musique, ce qui
+vous intéresse plus particulièrement se situe à la fin, là même où vous
+en êtes dans la notation. Dans le but de gagner du temps dans le
+processus de correction, vous pouvez @qq{escamoter} le reste et ne
+générer que les dernières mesures en insérant
+
+@verbatim
+showLastLength = R1*5
+\score { ... }
+@end verbatim
+
+@noindent
+dans votre fichier source. Ceci aura pour effet de ne générer que les
+cinq dernières mesures -- si tant est que le morceau soit à 4/4 -- de
+tous les @code{\score} de votre fichier. Dans le cas d'un œuvre
+conséquente, cette pratique s'avère fort utile puisqu'elle évite de tout
+générer. Vous pourriez aussi être amené à retravailler le début d'une
+œuvre, pour y ajouter une partie par exemple, auquel cas c'est la
+propriété @code{showFirstLength} que vous utiliserez.
+
+Vous pouvez contrôler très finement les parties à escamoter, grâce u
+commutateur @code{Score.skipTypesetting}@tie{}: lorsqu'il est activé,
+aucune gravure n'est réalisée.
+
+Ce commutateur agit aussi sur la sortie MIDI. Notez bien que tous les
+événements seront escamotés, y compris les changements de tempo ou
+d'instrument -- vous voilà prévenu@tie{}!
+
+@lilypond[quote,relative=2,ragged-right,verbatim]
+c8 d
+\set Score.skipTypesetting = ##t
+e8 e e e e e e e
+\set Score.skipTypesetting = ##f
+c8 d b bes a g c2
+@end lilypond
+
+Dans le cadre de musique polyphonique, @code{Score.skipTypesetting}
+s'applique à toutes les voix et portées. Vous gagnerez donc encore plus
+de temps.
@node Formats de sortie alternatifs
@subsection Formats de sortie alternatifs
@translationof Alternative output formats
-@untranslated
+@cindex scalable vector graphics
+@cindex SVG, format de sortie
+@cindex encapsulated postscript
+@cindex EPS, format de sortie
+
+En matière de partition imprimable, LilyPond génère par défaut des
+documents au format PstScript (PS) et Portable Document Format (PDF).
+Vous pouvez aussi obtenir des documents au format Scalable Vector
+Graphics (SVG), Encapsulated PostScript (EPS) ou Portable Network
+Graphics (PNG) dès lors que vous aurez lancé LilyPond en ligne de
+commande avec l'option @i{ad hoc} -- voir
+@rprogram{Options en ligne de commande pour lilypond} à ce sujet.
@node Changement des fontes musicales
@subsection Changement des fontes musicales
@translationof Replacing the notation font
-@untranslated
+Gonville est ube alternative à la fonte Feta que LilyPond utilise par
+défaut. Vous pouvez la télécharger à partir de
+@example
+@uref{http://www.chiark.greenend.org.uk/~sgtatham/gonville/ ,http://www.chiark.greenend.org.uk/~sgtatham/gonville/}
+@end example
+
+Voici quelques mesures utilisant la police Gonville@tie{}:
+
+@c NOTE: these images are a bit big, but that's important
+@c for the font comparison. -gp
+@sourceimage{Gonville_after,,,}
+
+Et ces même mesures avec la police de LilyPond, Feta@tie{}:
+
+@sourceimage{Gonville_before,,,}
@subsubheading Instructions d'installation pour MacOS
@translationof Installation Instructions for MacOS
-@untranslated
+Téléchargez puis décompressez l'archive zip. Recopiez le répertoire
+@code{lilyfonts} dans @file{@var{SHARE_DIR}/lilypond/current} -- voir
+@rlearning{Autres sources de documentation} à ce sujet. Renommez le
+répertoire @code{fonts} qui s'y trouve en @code{fonts_orig}, puis les
+répertoire @code{lilyfonts} en @code{fonts}. Il vous suffira, pour
+retrouver la fonte Feta, de renommer @code{fonts_orig} en @code{fonts}.
+
+
+@seealso
+Manuel d'initiation :
+@rlearning{Autres sources de documentation}.
+
+@knownissues
+
+Gonville ne permet pas de générer de la notation ancienne. Consultez le
+site de l'auteur pour de plus amples informations ainsi qu'à propos des
+conditions d'utilisation.
@node Sortie MIDI
@section Sortie MIDI
@translationof MIDI output
-@untranslated
+MIDI (Musical Instrument Digital Interface) constitue un standard en
+matière de connexion et de contrôle des instruments électroniques. Un
+fichier MIDI contient une série de notes réparties dans différentes
+pistes. Il ne s'agit en rien d'un fichier sonore@tie{}; il vous faudra
+un logiciel capable de traduire ces séries de notes en sons.
+
+Vous pouvez convertir vos partition en fichier MIDI de manière à
+entendre ce que vous avez saisi. Ceci vous permet de contrôler aisément
+ce que vous avez saisi@tie{}: octaves et altérations erronées heuteront
+votre oreille avertie grâce au MIDI.
+@c TODO Check this
+Dans une sortie MIDI, LilyPond alloue un canal à chaque portée, plus un
+pour les réglages globaux. Par voie de conséquence, un fichier MIDI ne
+peut comporter au maximmum que quinze portées (quatorze en l'absence de
+percussions)@tie{}; les portées supplémentaires seront tout simplement
+silencieuses.
@menu
* Création de fichiers MIDI::
* MIDI et percussions::
@end menu
+
@node Création de fichiers MIDI
@subsection Création de fichiers MIDI
@translationof Creating MIDI files
-@untranslated
+LilyPond génèrera un fichier MIDI dès que vous ajouterez un bloc
+@code{\midi} à la structure de votre partition, comme ici@tie{}:
+
+@example
+\score @{
+ @var{...musique...}
+ \midi @{ @}
+@}
+@end example
+
+Lorsque le bloc @code{\score} contient un bloc @code{\midi} mais pas de
+bloc @code{\layout}, LilyPond ne produira qu'une sortie MIDI. Si donc
+vous avez besoin aussi d'un support visuel, vous devrez aussi mentionner
+un bloc @code{\layout}.
+
+@example
+\score @{
+ @var{...musique...}
+ \midi @{ @}
+ \layout @{ @}
+@}
+@end example
+
+Hauteurs, durées, liaisons de prolongation, nuances et changements de
+tempo seront interprétés et traduits en événements MIDI. Les
+indications de nuances, crescendos et decrescendos sont traduits en
+niveau de volume@tie{}; les indications sous la forme d'une fraction
+déterminée du volume disponible, et crescendos et decrescendos sous la
+forme d'une progression linéaire entre les deux extrêmes. Le rendu des
+indications de nuance peut être désactivé pour le MIDI -- voir
+@ref{Le bloc MIDI}.
+
+Le tempo initial ainsi que ses changements sont normalement indiqués au
+fil de la notation à l'aide de la commande @code{\tempo}@tie{}; ils
+seront retranscrits dans le fichier MIDI. La commande @code{\tempo}
+donne lieu à l'impression d'une indication métronomique que vous pouvez
+toutefois rendre invisible, comme indiqué à la rubrique
+@ref{Indication métronomique}. Une autre manière de spécifier le tempo
+initial pour un fichier MIDI est indiquée plus avant -- voir
+@ref{Le bloc MIDI}.
+
+En raison de certaines limitations de Windows, les fichiers MIDI doivent
+y porter l'extension @code{.mid}. D'autres systèmes utilisent
+l'extension @code{.midi}. Si besoin est, placez la ligne suivante au
+début de votre fichier source, avant l'ouverture de tout bloc
+@code{\book}, @code{\bookpart} ou @code{\score}@tie{}:
+
+@example
+#(ly:set-option 'midi-extension "midi")
+@end example
+
+Cette ligne déterminera @code{.midi} comme extension par défaut pour les
+fichiers MIDI.
+
+Vous pouvez aussi le faire en ligne de commande@tie{}:
+
+@example
+lilypond … -dmidi-extension=midi fichierLily.ly
+@end example
@unnumberedsubsubsec Noms d'instrument
@translationof Instrument names
+@cindex instrument, nom d'
+@funindex Staff.midiInstrument
+
+L'instrument MIDI affecté à un canal particulier est déterminé par la
+propiété @code{Staff.midiInstrument}. Vous pouvez choisr l'un des
+instruments répertoriés à l'annexe @ref{Instruments MIDI}.
+
+@example
+\new Staff @{
+ \set Staff.midiInstrument = #"glockenspiel"
+ @var{...notes...}
+@}
+@end example
+
+@example
+\new Staff \with @{midiInstrument = #"cello"@} @{
+ @var{...notes...}
+@}
+@end example
+
+Lorsque l'instrument choisi ne correspond pas exactement à l'une des
+dénominations consacrées, LilyPond le replacera par un piano de concert
+(@code{"acoustic grand"}).
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-midi-output-to-one-channel-per-voice.ly}
+
+@knownissues
+
+@c In 2.11 the following no longer seems to be a problem -td
+@ignore
+Un (de)crescendo non terminé ne sera pas correctement rendu en MIDI --
+il y a nécessairement du silence. Il vous faut donc lui donner une fin
+explicite. Par exemple,
+
+@example
+@{ a4\< b c d\f @}
+@end example
+
+@noindent
+ne fonctionnera pas correctement, contrairement à
+
+@example
+@{ a4\< b c d\!\f @}
+@end example
+@end ignore
+
+Un changement de volume ne peut intervenir que sur le démarrage d'une
+note. C'est la raison pour laquelle la succession d'un crescendo et
+d'un diminuendo ne peut se produire sur une même note.
+
+Certains lecteurs MIDI ne rendent pas correctement les changements de
+tempo. MS Windows Media Player et
+@uref{http://@/timidity@/.sourceforge@/.net/,timidity} le font sans
+problème.
+
@node Le bloc MIDI
@subsection Le bloc MIDI
@translationof MIDI block
-@untranslated
+Dès lors que vous désirez obtenir une sortie MIDI, vous devrez inscrire
+un bloc @code{\midi} au sein du bloc @code{\score}. Son fonctionnement
+est comparable à ce lui du bloc @code{\layout}, voire plus simple. Si
+le bloc @code{\midi} est la plupart du temps laissé vide, il peut
+contenir des aménagements pour certains contextes, la définition de
+contextes particuliers ou du code permettant de déterminer la valeur de
+certianes propriétés. L'exemple suivant détermine le tempo initial du
+fichier MIDI tout en se passant de son indication sur la partition
+imprimée.
+
+@example
+\score @{
+ @var{...musique...}
+ \midi @{
+ \context @{
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 4)
+ @}
+ @}
+@}
+@end example
+
+Ici, le tempo est fixé à 72 noires à la minute. Spécifier un tempo de
+la sorte ne permet pas de doner une valeur pour une note pointée. Vous
+devrez, en pareil cas, subdiviser la note pointée en durée plus courte.
+Par exemple, indiquer 90 à la noire pointée est équivalent à spécifier
+270 croches à la minute@tie{}:
+
+@example
+tempoWholesPerMinute = #(ly:make-moment 270 8)
+@end example
+
+@cindex MIDI et définition de contexte
+@cindex contexte, définition en MIDI
+
+La syntaxe permettant de définir un contexte pour le @code{\midi} est en
+tout point identique à celle que vous utilisez dans le bloc
+@code{\layout}, à ceci près que le @qq{graveur} est remplacé par un
+@qq{interprète}. Les différents contextes disponibles en matière de
+MIDI sont répertoriés dans le fichier d'initialisation
+@file{../ly/performer-init.ly} -- pour plus de détail, voir
+@rlearning{Autres sources de documentation}.
+Si vous voulez vous passer des nuances dans votre fichier MIDI, il vous
+suffit d'insérer les lignes suivantes dans votre bloc
+@code{\midi@{ @}}.
+
+@example
+\midi @{
+ ...
+ \context @{
+ \Voice
+ \remove "Dynamic_performer"
+ @}
+@}
+@end example
+
+LilyPond ne génèrera de sortie MIDI que si vous incluez un bloc
+@code{\midi} dans la structure de la partition, initialisée par la
+commande @code{\score}.
+
+@example
+\score @{
+ @{ @dots{}notes@dots{} @}
+ \midi @{ @}
+@}
+@end example
@node Contenu de la sortie MIDI
@subsection Contenu de la sortie MIDI
@translationof What goes into the MIDI output?
-@untranslated
+@c TODO Check grace notes - timing is suspect?
@unnumberedsubsubsec Éléments pris en compte dans le MIDI
@translationof Supported in MIDI
+
+@cindex hauteurs en MIDI
+@cindex MIDI, hauteurs
+@cindex quart de ton en MIDI
+@cindex MIDI, quart de ton
+@cindex microtonalité en MIDI
+@cindex MIDI, microtonalité
+@cindex accords nommés en MIDI
+@cindex MIDI, accords nommés
+@cindex Rythme en MIDI
+@cindex MIDI, Rythme
+@c TODO etc
+
+Un fichier MIDI généré par LilyPond comprendra les éléments de notation
+suivants@tie{}:
+
+@itemize
+@item
+les hauteurs ;
+
+@item
+les microtonalités -- voir @ref{Altérations}. Leur rendu nécessite
+cependant un lecteur qui prenne en charge la modulation@tie{};
+
+@item
+les accords nommés ;
+
+@item
+le rythme en tant que durée de note, y compris les nolets ;
+
+@item
+les tremolos, exceptés ceux utilisant la syntaxe
+@qq{@code{:}[@var{nombre}]}@tie{};
+
+@item
+les liaisons de prolongation ;
+
+@item
+les indications de nuance
+
+@item
+les crescendos et decrescendos s'étalant sur plusieurs notes@tie{};
+
+@item
+les changements de tempo indiqués par un @code{\tempo}@tie{};
+
+@item
+les paroles.
+@end itemize
+
+
@unnumberedsubsubsec Éléments non pris en compte dans le MIDI
@translationof Unsupported in MIDI
+@c TODO index as above
+
+LilyPond ne peut générer d'événement MIDI pour les éléments
+suivant@tie{}:
+
+@itemize
+@item
+le rythme indiqué sous forme d'annotation (p.ex. @emph{swing})@tie{};
+
+@item
+les changements de tempo indiqués sous forme d'annotation (sans
+@code{\tempo})@tie{};
+
+@item
+les staccatos et autres articulations ou ornementations@tie{};
+
+@item
+les liaisons d'articulation et de prhasé@tie{};
+
+@item
+les crescendos ou decrescendos sur une sele note@tie{};
+
+@item
+les tremolos indiqués par la syntaxe @qq{@code{:}[@var{nombre}]}@tie{};
+
+@item
+la basse chiffrée
+
+@item
+les accords en microtonalité.
+@end itemize
+
+
@node Répétitions et MIDI
@subsection Répétitions et MIDI
@translationof Repeats in MIDI
en reprises de type @code{unfold}.
-@lilypond[quote,verbatim,fragment,line-width=8.0\cm]
+@lilypond[quote,verbatim]
\unfoldRepeats {
\repeat tremolo 8 {c'32 e' }
\repeat percent 2 { c''8 d'' }
\bar "|."
@end lilypond
-
Lorsque l'on veut utiliser @code{\unfoldRepeats} seulement pour le rendu
-MIDI, il faut établir deux blocs @code{\score} : un pour le MIDI, avec
-des reprises explicites, et l'autre pour la partition, avec des reprises
-notées sous forme de barres de reprise, de trémolo ou de symboles de
-pourcentage. Par exemple
+MIDI, il faut établir deux blocs @code{\score}@tie{}: un pour le MIDI,
+avec des reprises explicites, et l'autre pour la partition, avec des
+reprises notées sous forme de barres de reprise, de trémolo ou de
+symboles de pourcentage. Par exemple
@example
\score @{
- @var{..musique..}
- \layout @{ .. @}
+ @var{..musique..}
+ \layout @{ .. @}
@}
\score @{
- \unfoldRepeats @var{..musique..}
- \midi @{ .. @}
+ \unfoldRepeats @var{..musique..}
+ \midi @{ .. @}
@}
@end example
@subsection Gestion des nuances en MIDI
@translationof Controlling MIDI dynamics
-@untranslated
+Les nuances MIDI sont générées par le @code{Dynamic_performer}, affecté
+par défaut au contexte @code{Voice}. Vous pouvez contrôler à la fois le
+volume général, celui des indications de nuance ainsi que celui des
+différents instruments.
@unnumberedsubsubsec Indications de nuance
@translationof Dynamic marks
+
+Les indications de nuances sont transcrites en fraction du volume MIDI.
+Nous allons, par défaut, de 0,25 pour un @notation{ppppp} à 0,95 pour un
+@notation{fffff}. Les correspondances entre nuance et fraction de
+volume sont répertoriées dans le fichier @file{../scm/midi.scm} --
+consultez la rubrique @rlearning{Autres sources de documentation} si
+vous ne savez comment le localiser. Vous pouvez modifier ou étendre ce
+jeu grâce à une fonction qui prendra en argument une indication de
+nuance et renverra la fraction désirée, puis en affectant cette fonction
+à @code{Score.dynamicAbsoluteVolumeFunction}.
+
+Prenons un exemple. Votre partition comporte un @notation{rinforzando}
+que vous avez indiqué par @code{\rfz}. Cette indication de nuance
+n'étant pas répertoriée dans le jeu par défaut, elle ne produira aucun
+effet en MIDI. Il en sera d'ailleurs de même pour toute indication
+créée de toute pièce à l'aide de l'instruction
+@code{make-dynamic-script}. Voici comment procéder pour ajuster le
+volume MIDI de ce @notation{rinforzando} que le compositeur a indiqué.
+La fonction Scheme définit une fraction de 0,9 en cas de @notation{rfz},
+et demande d'utiliser la fonction par défaut dans les autre cas.
+
+@lilypond[verbatim,quote]
+#(define (myDynamics dynamic)
+ (if (equal? dynamic "rfz")
+ 0.9
+ (default-dynamic-absolute-volume dynamic)))
+
+\score {
+ \new Staff {
+ \set Staff.midiInstrument = #"cello"
+ \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
+ \new Voice {
+ \relative c'' {
+ a4\pp b c-\rfz
+ }
+ }
+ }
+ \layout {}
+ \midi {}
+}
+@end lilypond
+
+Si vous étiez amené à devoir modifier l'intégralité du jeu des
+correspondances, nous vous conseillons d'utiliser la procédure
+@command{default-dynamic-absolute-volume} contenue dans le fichier
+@file{../scm/midi.scm} ansi que la table d'association comme base. Le
+dernier exemple de cette partie illustre la manière de procéder.
+
+
@unnumberedsubsubsec Amplitude du volume en MIDI
@translationof Overall MIDI volume
+
+Les valeurs extrêmes du volume MIDI des nuances se contrôlent à l'aide
+des propriétés @code{midiMinimumVolume} et @code{midiMaximumVolume} qui
+agissent au niveau @code{Score}. Ces propriétés sont effectives dès
+lors qu'une nuance est indiquée@tie{}; une nuance de départ est donc
+requise pour que le volume soit ajusté dès le début de la partition.
+Vous pouvez alors modifier la fraction correspondant à chaque nuance à
+l'aide de la formule
+
+@example
+midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction
+@end example
+
+Voici comment ajuster les nuances tout en limitant l'amplitude du volume
+entre 0,2 et 0,5@tie{}:
+
+@lilypond[verbatim,quote]
+\score {
+ <<
+ \new Staff {
+ \key g \major
+ \time 2/2
+ \set Staff.midiInstrument = #"flute"
+ \new Voice \relative c''' {
+ r2 g\mp g fis~
+ fis4 g8 fis e2~
+ e4 d8 cis d2
+ }
+ }
+ \new Staff {
+ \key g \major
+ \set Staff.midiInstrument = #"clarinet"
+ \new Voice \relative c'' {
+ b1\p a2. b8 a
+ g2. fis8 e
+ fis2 r
+ }
+ }
+ >>
+ \layout {}
+ \midi {
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 2)
+ midiMinimumVolume = #0.2
+ midiMaximumVolume = #0.5
+ }
+ }
+}
+@end lilypond
+
+
@unnumberedsubsubsec Égalisation de plusieurs instruments (i)
@translationof Equalizing different instruments (i)
+
+La définition de l'amplitude du volume MIDI au niveau d'un contexte
+@code{Staff} permet de gérer les volumes relatifs entre les différents
+instruments. Ceci constitue en quelque sorte un égaliseur, ce qui
+permet d'améliorer notablement la qualité de la sortie MIDI.
+
+La clarinette de l'exemple suivant jouera relativement moins fort que la
+flûte. Rappelez-vous que pour que cela fonctionne correctement, la
+première note de chacun des instruments doit être affublée d'une
+indication de nuance.
+
+@lilypond[verbatim,quote]
+\score {
+ <<
+ \new Staff {
+ \key g \major
+ \time 2/2
+ \set Staff.midiInstrument = #"flute"
+ \set Staff.midiMinimumVolume = #0.7
+ \set Staff.midiMaximumVolume = #0.9
+ \new Voice \relative c''' {
+ r2 g\mp g fis~
+ fis4 g8 fis e2~
+ e4 d8 cis d2
+ }
+ }
+ \new Staff {
+ \key g \major
+ \set Staff.midiInstrument = #"clarinet"
+ \set Staff.midiMinimumVolume = #0.3
+ \set Staff.midiMaximumVolume = #0.6
+ \new Voice \relative c'' {
+ b1\p a2. b8 a
+ g2. fis8 e
+ fis2 r
+ }
+ }
+ >>
+ \layout {}
+ \midi {
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 2)
+ }
+ }
+}
+@end lilypond
+
+
@unnumberedsubsubsec Égalisation de plusieurs instruments (ii)
@translationof Equalizing different instruments (ii)
+Lorsque les propriétés volume minimum et maximum n'ont pas été définies,
+LilyPond appliquera par défaut une légère égalisation pour quelques
+instruments. Les instrument concernés ainsi que le niveau d'égalisation
+sont répertoriés dans une table @notation{instrument-equalizer-alist}
+du fichier @file{../scm/midi.scm}.
+
+Vous pouvez remplacer l'égaliseur basique en définissant une nouvelle
+procédure Scheme @code{instrumentEqualizer} au sein du contexte
+@code{Score}. Cette procédure prend en unique argument le nom d'un
+instrument MIDI et renverra une paire de fractions correspondant au
+minimum et maximum de volume alloué à cet instrument. Cette
+substitution fonctionne selon le même principe que celui que nous avons
+vu en dédut de chapitre avec @code{dynamicAbsoluteVolumeFunction}.
+L'égaliseur par défaut, @notation{default-instrument-equalizer}, est
+défini dans le fichier @file{../scm/midi.scm}@tie{}; son analyse vous
+aidera à construire votre propre procédure.
+
+Nous allons, dans l'exemple suivant, régler le volume relatif de la
+flûte et de la clarinette -- au même niveau que dans le précédent.
+
+@lilypond[verbatim,quote]
+#(define my-instrument-equalizer-alist '())
+
+#(set! my-instrument-equalizer-alist
+ (append
+ '(
+ ("flute" . (0.7 . 0.9))
+ ("clarinet" . (0.3 . 0.6)))
+ my-instrument-equalizer-alist))
+
+#(define (my-instrument-equalizer s)
+ (let ((entry (assoc s my-instrument-equalizer-alist)))
+ (if entry
+ (cdr entry))))
+
+\score {
+ <<
+ \new Staff {
+ \key g \major
+ \time 2/2
+ \set Score.instrumentEqualizer = #my-instrument-equalizer
+ \set Staff.midiInstrument = #"flute"
+ \new Voice \relative c''' {
+ r2 g\mp g fis~
+ fis4 g8 fis e2~
+ e4 d8 cis d2
+ }
+ }
+ \new Staff {
+ \key g \major
+ \set Staff.midiInstrument = #"clarinet"
+ \new Voice \relative c'' {
+ b1\p a2. b8 a
+ g2. fis8 e
+ fis2 r
+ }
+ }
+ >>
+ \layout { }
+ \midi {
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 2)
+ }
+ }
+}
+@end lilypond
+
+@ignore
+@c Delete when satisfied this is adequately covered elsewhere -td
+
+@n ode Microtones in MIDI
+@s ubsection Microtones in MIDI
+
+@cindex microtones in MIDI
+
+Microtones consisting of half sharps and half flats are exported
+to the MIDI file and render correctly in MIDI players which support
+pitch bending. See @ref{Note names in other languages}. Here is
+an example showing all the half sharps and half flats. It can be
+copied out and compiled to test microtones in your MIDI player.
+
+@lilypond[verbatim,quote]
+\score {
+ \relative c' {
+ c4 cih cis cisih
+ d4 dih ees eeh
+ e4 eih f fih
+ fis4 fisih g gih
+ gis4 gisih a aih
+ bes4 beh b bih
+ }
+ \layout {}
+ \midi {}
+}
+@end lilypond
+@end ignore
+
@node MIDI et percussions
@subsection MIDI et percussions
@translationof Percussion in MIDI
-@untranslated
+La notation pour percussions recourt généralement à un contexte
+particulier -- le @code{DrumStaff} -- qui permet d'affecter directement
+les instruments concernés au canal@tie{}10 qui leur est réservé.
+
+Certains instruments, tels le xylophone, le marimba, le vibraphone ou
+les timbales, se traitent cependant comme des instruments
+@qq{classiques} puisqu'ils sont capables d'émettre des hauteurs
+différentes@tie{}; leurs notation relève donc d'un contexte @code{Staff}
+standard, et non d'un @code{DrumStaff} pour pouvoir être rendus
+correctement en MIDI.
+
+D'autres percussions, bien que n'émettant qu'un seul son et inclus dans
+le standard @emph{general MIDI}, comme le tom mélodique ou le tambour
+taiko, ne sont pas attachés au canal@tie{}10. Ces instruments doivent
+donc être saisi dans un contexte @code{Staff}, en utilisant la hauteur
+appropiée.
+
+De nombreux instruments de la famille des percussions, les castagnettes
+par exemple, n'existent pas dans le standard @emph{general MIDI}.
+L'alternative, bien que peu satisfaisante, consiste à leur attribuer le
+son le plus proche dans la banque standard.
+
+@c TODO Expand with examples, and any other issues
+
+@knownissues
+
+Le standard @emph{general MIDI} ne dispose pas du @emph{rim shot}@tie{};
+LilyPond lui subtitue un @emph{sidestick}.
--- /dev/null
+%% Translation of GIT committish: d7cf09411ee80eaf0092af0aa532de64c0c6248e
+ texidocfr = "
+Lorsque LilyPond génère un fichier MIDI, chaque portée sera par défaut
+affectée à un canal, quel que soit le nombre de voix qu'elle contient.
+Ceci permet d'éviter de se retrouver à court de canaux, sachant qu'il
+n'y en a que seize de disponibles.
+
+Le fait de déplacer le @code{Staff_performer} dans le contexte
+@code{Voice} permet d'affecter à chaque voix d'une même portée un canal
+MIDI spécifique. Dans l'exemple suivant, la même portée donnera lieu à
+deux canaux MIDI différents, chacun étant affecté de son propre
+@code{midiInstrument}.
+
+"
+ doctitlefr = "Affectation d'un canal MIDI par voix"
%% Translation of GIT committish: 9ccf7f0f5e52e074f3b7852416ad5b78718395c8
texidocfr = "
-Modifier certaines des propriétés du cadrillage temporel aura pour effet
+Modifier certaines des propriétés du quadrillage temporel aura pour effet
d'en changer l'apparence.
"
- doctitlefr = "Apparence du cadrillage temporel"
+ doctitlefr = "Apparence du quadrillage temporel"
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@ignore
- Translation of GIT committish: ede6552ee0a9954a6ced5922cfc0cfa2c40733af
+ Translation of GIT committish: 79165c00e7aadfefb0748ff55b29a1927cb87acd
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
@node Exécution de LilyPond
@chapter Exécution de @command{lilypond}
-@translationof Running LilyPond
+@translationof Running lilyPond
Ce chapitre passe en revue ce qui se passe lorsque vous lancez LilyPond.
@menu
* Lancement de lilypond::
-* Options en ligne de commande::
+* Options en ligne de commande pour lilypond::
* Variables d'environnement::
* Exécution de LilyPond en mode protégé::
@end menu
@unnumberedsubsubsec Commandes standard de l'interpréteur
+@translationof Standard shell commands
Si votre interpréteur -- terminal, console, etc. -- prend en charge les
redirections, les commandes qui suivent vous permettront de
qui n'ont rien à voir avec LilyPond.
-@node Options en ligne de commande
+@node Options en ligne de commande pour lilypond
@unnumberedsubsec Options en ligne de commande pour @command{lilypond}
-@translationof Command line options
+@translationof Command line options for lilypond
@cindex lancement de @command{lilypond}
@cindex ligne de commande, options pour @command{lilypond}
* Erreur renvoyant à ../ly/init.ly::
* Message d'erreur Unbound variable %::
* Message d'erreur FT_Get_Glyph_Name::
+* staff-affinities devraient aller en ordre décroissant::
@end menu
@node La musique déborde de la page
UTF-8. Pour plus de détails, reportez-vous au chapitre
@ruser{Codage du texte}.
+
+@node staff-affinities devraient aller en ordre décroissant
+@unnumberedsubsec staff-affinities devraient aller en ordre décroissant
+@translationof Warning staff affinities should only decrease
+
+Cet avertissement est émis lorsque la partition ne comporte pas de
+portée, comme par exemple une feuille de chant avec un contexte
+@code{ChordName} et un contexte @code{Lyrics}. Ce message disparaîtra
+dès lors que autoriserez l'un de ces contextes à se comporter comme une
+portée, à l'aide de l'instruction
+
+@example
+\override VerticalAxisGroup #'staff-affinity = ##f
+@end example
+
+@noindent
+que vous insérerez dès sa création. Pouur plus d'information,
+reportez-vous à la rubrique
+@ruser{Espacement des lignes rattachées à des portées}.
@c -*- coding: utf-8; mode: texinfo; documentlanguage : fr -*-
@ignore
- Translation of GIT committish: 87a9977bbd54e3822338e290716845d8e2e304e3
+ Translation of GIT committish: 17f11c2f5ab963bfb07b7652b4860dc4dda5540a
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
sans oublier le @code{>} au tout début de votre message@tie{}; c'est
@strong{impératif}.
+Si vous ne voulez ou ne pouvez pas envoyer un rapport de bogue selon les
+instructions et en anglais, envoyez votre rapport ou posez votre
+question sur la @uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
+liste francophone}@tie{}; nous nous chargerons de transmettre un rapport
+à la liste anglophone et assurerons le suivi.
+
@end itemize
+
+@divEnd
@divEnd
+@divClass{column-center-bottom}
+@subheading Étape 4: Notification de prise en compte
+
Une fois le message reçu, nos @qq{exterminateurs de bogues} analyseront
votre rapport et vous demanderont peut-être des informations
supplémentaires avant de l'ajouter au traceur. Dans la mesure où
Vous serez automatiquement notifié du traitement apporté à ce bogue, dès
lors que vous avez une compte chez google.
+@divEnd
-Si vous ne voulez ou ne pouvez pas envoyer un rapport de bogue selon les
-instructions et en anglais, envoyez votre rapport ou posez votre
-question sur la @uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
-liste francophone}@tie{}; nous transmettrons un rapport à
-la liste anglophone et assurerons le suivi.
+@divClass{column-center-bottom}
+@subheading Information complémentaire : indication du comportement escompté
+
+Une fois votre requête enregistrée, n'hésitez pas à nous indiquer le
+résultat que vous escomptiez. Qu'il s'agisse d'un bout de code ou d'une
+image -- réalisée à partir de n'importe quel outil --, tant qu'il nous
+aide à voir ce que vous désirez obtenir.
@divEnd
@itemize
-@item Mats Bengtsson:
-@email{mats.bengtsson@@ee.kth.se},
-@uref{http://www.s3.kth.se/~mabe/},
-Support guru
-
@item Trevor Daniels:
@email{t.daniels@@treda.co.uk},
Assistant documentation editor
@item Reinhold Kainhofer:
@email{reinhold@@kainhofer.com},
@uref{http://reinhold.kainhofer.com},
-Music2xml wrangler, bug squasher
+Core developer, Music2xml wrangler
@item David Kastrup:
@email{dak@@gnu.org}
@item Neil Puttock:
Core developer
-@item Nicolas Sceaux:
-Core developer, Schemer extraordinaire
-
@item Carl Sorensen:
@email{c_sorensen@@byu.edu},
Core developer, Frog meister
@c use colons not commas for @item entries.
+@item Mats Bengtsson:
+@email{mats.bengtsson@@ee.kth.se},
+@uref{http://www.s3.kth.se/~mabe/},
+Support guru
+
@item Pedro Kroeger:
Build meister
@item Erik Sandberg:
Bug meister
+@item Nicolas Sceaux:
+Core developer, Schemer extraordinaire
+
@end itemize
@end macro
@c use commas not colons
+Sven Axelsson,
Pál Benkő,
Frédéric Bron,
Hajo Dezelski,
Richard Gay,
+Keith OHara,
Andrew Hawryluk,
+Christian Hitz,
+Marc Hohl,
+Henning Hraban Ramm,
Ian Hulin,
Michael Käppler,
Marek Klein,
Kieren MacMillan,
Thomas Morgan,
+Benjamin Peterson,
+Nathan Reed,
+Julien Rioux,
Boris Shingarov,
-Andrew Wilson
+Patrick Schmidt,
+Mike Solomon,
+Owen Tuz,
+Andrew Wilson,
+Rodolfo Zitellini
@c no comma for last entry
@c use commas not colons
+Keith OHara,
Marc Hohl,
+Alexander Kobel,
+Mike Solomon,
Carsten Steger
@c no comma for last entry
@c use commas not colons
Colin Campbell,
+Andrew Hawryluk,
James Lowe,
+Mike Moral,
Ralph Palmer,
+David Pounder,
Patrick Schmidt
@c no comma for last entry
@macro bugsquadCurrent
-Dmytro O. Redchuk,
James E. Bailey,
-Ralph Palmer,
+Colin Campbell,
Phil Holmes,
Urs Liska,
-Kieren MacMillan
+Ralph Palmer,
+Kieren MacMillan,
+Dmytro O. Redchuk
@c no comma for last entry
@c use commas not colons
+Federico Bruni,
Dénes Harmath,
Jean-Charles Malahieude,
@c @email{lolyfan@@wanadoo.fr},
+Tineke de Munnik,
Till Paala,
+Ralf Wildenhues,
Yoshiki Sawada
@c no comma for last entry
@menu
* Running ./autogen.sh::
-* Running ./configure::
+* Running ../configure::
@end menu
command from your top source directory:
@example
-./autogen.sh
+./autogen.sh --noconfigure
@end example
-This will:
-
-@enumerate
-@item generate a number of files and directories to aid
+This will generate a number of files and directories to aid
configuration, such as @file{configure}, @file{README.txt}, etc.
-@item automatically run the @command{./configure} command.
-@end enumerate
+Next, create the build directory with:
+
+@example
+mkdir build/
+cd build/
+@end example
+
+We heavily recommend building lilypond inside a separate directory
+with this method.
+
+@node Running ../configure
+@subsection Running @command{../configure}
-@node Running ./configure
-@subsection Running @command{./configure}
@menu
* Configuration options::
* Checking build dependencies::
* Configuring target directories::
-* Making an out-of-tree build::
@end menu
@node Configuration options
@unnumberedsubsubsec Configuration options
-The @command{./configure} command (generated by
+@warning{make sure that you are in the @file{build/} subdirectory
+of your source tree.}
+
+The @command{../configure} command (generated by
@command{./autogen.sh}) provides many options for configuring
@command{make}. To see them all, run:
@example
-./configure --help
+../configure --help
@end example
@node Checking build dependencies
@unnumberedsubsubsec Checking build dependencies
-When @command{./configure} is run without any arguments, it will
+@warning{make sure that you are in the @file{build/} subdirectory
+of your source tree.}
+
+When @command{../configure} is run without any arguments, it will
check to make sure your system has everything required for
-compilation. This is done automatically when
-@command{./autogen.sh} is run. If any build dependency is
-missing, @command{./configure} will return with:
+compilation:
+
+@example
+../configure
+@end example
+
+If any build dependency is missing, @command{../configure} will
+return with:
@example
ERROR: Please install required programs: @var{foo}
If you intend to build the documentation locally, you will need to
install or update these programs accordingly.
-@warning{@command{./configure} may fail to issue warnings for
+@warning{@command{../configure} may fail to issue warnings for
certain documentation build requirements that are not met. If you
experience problems when building the documentation, you may need
to do a manual check of @ref{Requirements for building
@node Configuring target directories
@unnumberedsubsubsec Configuring target directories
+@warning{make sure that you are in the @file{build/} subdirectory
+of your source tree.}
+
If you intend to use your local build to install a local copy of
the program, you will probably want to configure the installation
directory. Here are the relevant lines taken from the output of
-@command{./configure@tie{}--help}:
+@command{../configure@tie{}--help}:
@quotation
By default, `@command{make@tie{}install}' will install all the
A typical installation prefix is @file{$HOME/usr}:
@example
-./configure --prefix=$HOME/usr
+../configure --prefix=$HOME/usr
@end example
Note that if you plan to install a local build on a system where
It is also possible to specify separate installation directories
for different types of program files. See the full output of
-@command{./configure@tie{}--help} for more information.
+@command{../configure@tie{}--help} for more information.
If you encounter any problems, please see @ref{Problems}.
-@node Making an out-of-tree build
-@unnumberedsubsubsec Making an out-of-tree build
-
-It is possible to compile LilyPond in a build tree different from
-the source tree, using the @option{--srcdir} option of
-@command{configure}. Note that in some cases you may need to
-remove the output of a previous @command{configure} command by
-running @command{make@tie{}distclean} in the main source directory
-before configuring the out-of-tree build:
-
-@example
-make distclean
-mkdir lily-build && cd lily-build
-@var{sourcedir}/configure --srcdir=@var{sourcedir}
-@end example
-
-
@node Compiling LilyPond
@section Compiling LilyPond
@node Using make
@subsection Using @command{make}
+@warning{make sure that you are in the @file{build/} subdirectory
+of your source tree.}
+
LilyPond is compiled with the @command{make} command. Assuming
@command{make} is configured properly, you can simply run:
@item
Reset:
-@example
-make doc-clean @emph{## use only as a last resort.}
-@end example
+In some cases, it is possible to clean the compiled documentation
+with @samp{make@tie{}doc-clean}, but this method is not guaranteed
+to fix everything. Instead, we recommend that you delete your
+@file{build/} directory, and begin compiling from scratch. Since
+the documentation compile takes much longer than the
+non-documentation compile, this does not increase the overall time
+by a great deal.
+
@end itemize
@node Building documentation
--- /dev/null
+\version "2.13.46"
+
+#(define (filter-instrument instrument-name tuning-alist)
+ (filter (lambda (entry)
+ (string-prefix? instrument-name
+ (symbol->string (car entry))))
+ tuning-alist))
+
+#(define (chord-display tuning-alist-entry)
+ (let* ((ch-mus (cdr tuning-alist-entry))
+ (tuning-symbol (car tuning-alist-entry))
+ (ev-chord (car (extract-named-music
+ ch-mus
+ 'EventChord)))
+ (elts (ly:music-property ev-chord 'elements)))
+ (music-map (lambda (m)
+ (begin
+ (if (not (null? (ly:music-property m 'duration)))
+ (ly:music-set-property!
+ m
+ 'duration
+ (ly:make-duration 0 0 1 1)))
+ m))
+ ev-chord)
+ (let ((elts (ly:music-property ev-chord 'elements))
+ (script (make-music 'TextScriptEvent
+ 'direction 1
+ 'text (symbol->string tuning-symbol))))
+ (ly:music-set-property!
+ ev-chord
+ 'elements
+ (cons script elts)))
+ ev-chord))
+
+displayInstrumentDefaultTunings =
+#(define-music-function (parser location instrument) (string?)
+ (let* ((filtered-instruments (filter-instrument instrument defaultStringTunings))
+ (display-elements (map chord-display filtered-instruments)))
+ (make-music 'SequentialMusic 'elements display-elements)))
+
+
+\score {
+ {
+ \new Staff {
+ \textLengthOn
+ \override Score.RehearsalMark #'self-alignment-X = #LEFT
+
+ \mark \markup {\left-align "Guitar tunings"}
+ \clef "treble_8"
+ \displayInstrumentDefaultTunings #"guitar"
+ \break
+
+ \mark \markup {\left-align "Bass tunings"}
+ \clef "bass_8"
+ \displayInstrumentDefaultTunings #"bass"
+ \break
+
+ \mark \markup {\left-align "Mandolin tunings"}
+ \clef "treble"
+ \displayInstrumentDefaultTunings #"mandolin"
+ \break
+
+ \mark \markup {\left-align "Banjo tunings"}
+ \clef "treble_8"
+ \displayInstrumentDefaultTunings #"banjo"
+ \break
+
+ \mark \markup {\left-align "Ukulele tunings"}
+ \clef "treble"
+ \displayInstrumentDefaultTunings #"ukulele"
+ \clef "alto"
+ \displayInstrumentDefaultTunings #"tenor-ukulele"
+ \displayInstrumentDefaultTunings #"baritone-ukulele"
+ \break
+
+ \mark \markup {\left-align "Orchestral string tunings"}
+ \clef "treble"
+ \displayInstrumentDefaultTunings #"violin"
+ \clef "alto"
+ \displayInstrumentDefaultTunings #"viola"
+ \clef "bass"
+ \displayInstrumentDefaultTunings #"cello"
+ \clef "bass_8"
+ \displayInstrumentDefaultTunings #"double-bass"
+ }
+ }
+}
@cindex clefs, visibility of octavation
The small octavation symbol on octavated clefs is produced by the
-@code{OctavateEight} layout object. Its visibility is controlled
-independently from that of the @code{Clef} object, so it is
-necessary to apply any required @code{break-visibility} overrides
-to both the @code{Clef} and the @code{OctavateEight} layout objects
-to fully suppress such clef symbols at the start of each line.
+@code{OctavateEight} layout object. Its visibility is automatically
+inherited from the @code{Clef} object, so it is not necessary to apply
+any required @code{break-visibility} overrides to the @code{OctavateEight}
+layout objects to suppress octavation symbols for invisible clefs.
For explicit clef changes, the @code{explicitClefVisibility}
property controls both the clef symbol and any octavation symbol
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.13.46"
@node Fretted string instruments
@section Fretted string instruments
@cindex tablature, predefined string tunings
@cindex fretted instruments, predefined string tunings
@cindex predefined string tunings for fretted instruments
+@cindex tablature, violin
+@cindex tablature, viola
+@cindex tablature, cello
+@cindex tablature, bass
+@cindex tablature, double bass
@funindex StringTunings
@code{stringTunings} property.
LilyPond comes with predefined string tunings for banjo, mandolin,
-guitar, bass guitar and ukulele. LilyPond automatically sets
+guitar, bass guitar, ukulele, violin, viola, cello, and double bass.
+LilyPond automatically sets
the correct transposition for predefined tunings. The following
example is for bass guitar, which sounds an octave lower than
written.
is the standard EADGBE tuning. Some other predefined tunings are
@code{guitar-open-g-tuning}, @code{mandolin-tuning} and
@code{banjo-open-g-tuning}. The predefined string tunings
-are found in @file{scm/tablature.scm}.
+are found in @file{ly/string-tuning-init.ly}.
+
+@funindex contextStringTunings
+@funindex \contextStringTunings
+@cindex tablature, custom string tunings
+@cindex custom string tunings
+
+Any desired string tuning can be created. The
+@code{\contextStringTuning} function can be
+used to define a string tuning and set it as the
+@code{stringTunings} for the current context.
+@code{\contextStringTuning} takes two arguments: the
+symbol in which the string tuning, and a chord construct
+that defines the pitches of each string in the tuning.
+The chord construct must be in absolute octave mode,
+see @ref{Absolute octave entry}. The string
+with the highest number (generally the lowest string) must
+come first in the chord. For example, we can
+define a string tuning for a four-string instrument with pitches
+of @code{a''}, @code{d''}, @code{g'}, and @code{c'}:
+
+@lilypond[quote,verbatim]
+
+mynotes = {
+ c'4 e' g' c'' |
+ e''4 g'' b'' c'''
+}
+
+<<
+ \new Staff {
+ \clef treble
+ \mynotes
+ }
+ \new TabStaff {
+ \contextStringTuning #'custom-tuning <c' g' d'' a''>
+ \mynotes
+ }
+>>
+@end lilypond
+
+The @code{stringTunings} property is also used by
+@code{FretBoards} to calculate automatic fret diagrams.
+
+@funindex makeStringTuning
+@funindex \makeStringTuning
+
+String tunings are used as part of the hash key
+for predefined fret diagrams
+(see @ref{Predefined fret diagrams}). The @code{\makeStringTuning}
+function is used to create a string tuning without setting the
+@code{stringTunings} property in the current context. The
+arguments to @code{\makeStringTuning} are the symbol to be
+used for the new string tuning and a chord construct used
+to define the tuning.
+The previous example could also be written as follows:
+
+@lilypond[quote,verbatim]
+\makeStringTuning #'custom-tuning <c' g' d'' a''>
-A string tuning is a Scheme list of string pitches,
+mynotes = {
+ c'4 e' g' c'' |
+ e''4 g'' b'' c'''
+}
+
+<<
+ \new Staff {
+ \clef treble
+ \mynotes
+ }
+ \new TabStaff {
+ \set TabStaff.stringTunings = #custom-tuning
+ \mynotes
+ }
+>>
+@end lilypond
+
+Internally, a string tuning is a Scheme list of string pitches,
one for each string, ordered by string number from 1 to N,
where string 1 is at the top of the tablature staff and
string N is at the bottom. This ordinarily results in ordering
from highest pitch to lowest pitch, but some instruments
(e.g. ukulele) do not have strings ordered by pitch.
-A string pitch in a string tuning list is the pitch difference
-of the open string from middle C measured in semitones. The
-string pitch must be an integer. LilyPond calculates the actual
-pitch of the string by adding the string tuning pitch to the
-actual pitch for middle C.
-
-LilyPond automatically calculates the number of strings in the
-@code{TabStaff} as the number of elements in @code{stringTunings}.
-
-Any desired string tuning can be created. For example, we can
-define a string tuning for a four-string instrument with pitches
-of @code{a''}, @code{d''}, @code{g'}, and @code{c'}:
+A string pitch in a string tuning list is a LilyPond pitch
+object. Pitch objects are created with the Scheme function
+@code{ly:make-pitch} (see @ref{Scheme functions}).
+If desired, a string tuning can be created as a Scheme
+literal. The example below recreates the examples above,
+but the string tuning is not saved as a separate object:
@lilypond[quote,verbatim]
mynotes = {
\mynotes
}
\new TabStaff {
- \set TabStaff.stringTunings = #'(21 14 7 0)
+ \set TabStaff.stringTunings = #`(,(ly:make-pitch 1 5 0)
+ ,(ly:make-pitch 1 1 0)
+ ,(ly:make-pitch 0 4 0)
+ ,(ly:make-pitch 0 0 0))
\mynotes
}
>>
@end lilypond
+LilyPond automatically calculates the number of strings in the
+@code{TabStaff} and the number of strings in an automatically
+calculated @code{FretBoard} as the number of elements
+in @code{stringTunings}.
+
@cindex moderntab clef
@cindex clef, moderntab
@cindex clef, tab
The modern tab clef supports tablatures from 4 to 7 strings.
@seealso
+Notation Reference:
+@ref{Absolute octave entry},
+@ref{Predefined fret diagrams},
+@ref{Scheme functions}.
+
Installed Files:
+@file{ly/string-tuning-init.ly}
@file{scm/tablature.scm}.
Snippets:
example of beam tweaking, see @rlearning{Fixing overlapping
notation}.
+@cindex cross-staff collisions
+@cindex collisions, cross-staff voices
+
+Overlapping notation can result when voices cross staves:
+
+@lilypond[verbatim,quote]
+\new PianoStaff <<
+ \new Staff = "up" {
+ \voiceOne
+ % Make space for fingering in the cross-staff voice
+ \once\override DynamicLineSpanner #'staff-padding = #3.4
+ e''2\p\< d''\> s1*0\!
+ }
+ \new Staff = "down" <<
+ {
+ \clef bass
+ s4. e,8\rest g,2\rest
+ } \\ {
+ c8\( g c'
+ \change Staff = "up"
+ e' g' b'-3 a' g'\)
+ }
+ >>
+>>
+@end lilypond
+
+The stem and slur overlap the intervening line of dynamics
+because automatic collision resolution is suspended for beams, slurs
+and other spanners that connect notes on different staves,
+as well as for stems and articulations if their placement is
+affected by a cross-staff spanner.
+The resulting collisions must be resolved manually, where necessary,
+using the methods in @rlearning{Fixing overlapping notation}.
@seealso
Learning Manual:
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.36"
+@c \version "2.13.46"
@node Notation manual tables
@appendix Notation manual tables
@menu
* Chord name chart::
* Common chord modifiers::
+* Predefined string tunings::
* Predefined fretboard diagrams::
* MIDI instruments::
* List of colors::
@end multitable
+@node Predefined string tunings
+@appendixsec Predefined string tunings
+
+The chart below shows the predefined string tunings.
+
+@lilypondfile{display-predefined-string-tunings.ly}
+
@node Predefined fretboard diagrams
@appendixsec Predefined fretboard diagrams
\header {
lsrtags = "keyboards"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los símbolos específicos de acordeón discanto se escriben mediante
@code{\\markup}. Se puede trucar la colocación vertical de los
\header {
lsrtags = "chords, ancient-notation, contexts-and-engravers"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Al escribir un bajo cifrado, podemos situar las cifras encima o debajo
\header {
lsrtags = "pitches, staff-notation, vocal-music"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Añadir un ámbito por voz"
texidoces = "
Se puede añadir un ámbito por cada voz. En este caso, el ámbito se
\header {
lsrtags = "staff-notation, contexts-and-engravers, breaks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Al añadir un pentagrama nuevo en un salto de línea, por desgracia
se añade un espacio adicional al final de la línea antes del salto
\header {
lsrtags = "staff-notation, contexts-and-engravers"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede añadir (posiblemente de forma temporal) un pentagrama
nuevo una vez que la pieza ha comenzado.
\header {
lsrtags = "chords"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Para añadir indicaciones de línea divisoria dentro del contexto de
los nombres de acorde @code{ChordNames}, incluya el grabador
\header {
lsrtags = "rhythms, expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La sintaxis de LilyPond puede implicar muchas colocaciones poco
comunes para los paréntesis, corchetes, etc, que a veces se tienen
\header {
lsrtags = "rhythms, percussion"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Mediante la utilización de las potentes herramientas preconfiguradas
como la función @code{\\drummode} y el contexto @code{DrumStaff}, la
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Para añadir digitaciones a las tablaturas, utilice una combinación de
@code{\\markup} y @code{\\finger}.
\header {
lsrtags = "staff-notation, vocal-music"
-%% Translation of GIT committish: 4c1aa3b16f7b94ca32b0c022f60ed66826d031b0
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este ejemplo muestra una forma de simplificar la adición de muchas
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La función @code{\\parenthesize} es un truco especial que encierra
objetos entre paréntesis. El grob asociado es @code{ParenthesesItem}.
\header {
lsrtags = "text, titles"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Con algo de código de Scheme, se puede añadir fácilmente la fecha
actual a una partitura.
\header {
lsrtags = "repeats"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El grabador @code{Volta_engraver} reside de forma predeterminada
dentro del contexto de @code{Score}, y los corchetes de la repetición
\header {
lsrtags = "simultaneous-notes"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Voces adicionales para evitar colisiones"
texidoces = "
En ciertos casos de polifonía compleja, se necesitan voces adicionales
\header {
lsrtags = "rhythms, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede ajustar la separación entre las notas de adorno utilizando la
propiedad @code{spacing-increment} de @code{Score.GraceSpacing}.
% Do not edit this file; it is automatically
% generated from Documentation/snippets/new
% This file is in the public domain.
-%% Note: this file works from version 2.13.39
-\version "2.13.42"
+%% Note: this file works from version 2.13.42
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 0b3f8eb5000541aacdb027a93db57c199fd8ba04
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este fragmento de código muestra cómo situar la línea de base de la
letra más cerca del pentagrama.
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Puede ser necesario trucar la propiedad
@code{shortest-duration-space} para poder ajustar el tamaño de las
\header {
lsrtags = "text, paper-and-layout, titles"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La alineación horizontal de los nombres de instrumento se puede
trucar modificando la propiedad @code{Staff.InstrumentName
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los números de compás se alinean de forma predeterminada por la
\header {
lsrtags = "text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Si están especificadas, las marcas de texto se pueden alinear con
objetos de notación distintos a las líneas divisorias. Entre estos
\header {
lsrtags = "editorial-annotations, fretted-strings, spacing"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las cifras de digitación orientadas verticalmente se colocan de forma
\header {
lsrtags = "pitches, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede variar la longitud de las plicas de las figuras unidas por
una barra mediante la sobreescritura de la propiedad
\header {
lsrtags = "pitches, vocal-music"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Ámbitos con varias voces"
texidoces = "
La adición del grabador @code{Ambitus_engraver} al contexto de
\header {
lsrtags = "editorial-annotations, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
De forma predeterminada se añaden corchetes de análisis sencillos
debajo del pentagrama. El ejemplo siguiente muestra una manera de
\header {
lsrtags = "ancient-notation"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Aquí se muestran muchos de (¿o quizá todos?) los símbolos que
están contemplados por la capacidad de LilyPond para la música
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
#(set-global-staff-size 15)
\paper {
\header {
lsrtags = "vocal-music, ancient-notation, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este ejemplo muestra cómo hacer una transcripción moderna de canto
gregoriano. El canto gregoriano no tiene compás ni plicas; utiliza
\header {
lsrtags = "ancient-notation, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Al transcribir música mensural, es útil un «incipit» al compienzo
de la pieza para indicar la tonalidad y el tempo
\header {
lsrtags = "ancient-notation"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las indicaciones de compás también se pueden grabar en estilo antiguo.
\header {
lsrtags = "pitches, editorial-annotations"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Aplicar estilos de cabeza según la nota de la escala"
texidoces = "
La propiedad @code{shapeNoteStyles} se puede usar para definir varios
\header {
lsrtags = "world-music"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Para las improvisaciones o @emph{taqasim} que son libres durante unos
momentos, se puede omitir la indicación de compás y se puede usar
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede hacer que una ligadura de expresión sea asimétrica para
adaptarse mejor a un patrón asimétrico de notas.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden subdividir las barras automáticamente. Estableciendo la
propiedad @code{subdivideBeams}, las barras se subdividen en
\header {
lsrtags = "rhythms, editorial-annotations, chords, tweaks-and-overrides"
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: cde045f4e833aa491fb63f2222e14bef49507577
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las reglas de final de barra especificadas en el contexto
@code{Score} se aplican a todos los pentagramas, pero se pueden
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
No está especificada ninguna agrupación predeterminada automática
de las barras para el compás de 7/8, de forma que si se requieren
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Normalmente están prohibidos los saltos de línea si las barras
atraviesan las líneas divisorias. Se puede cambiar este
\header {
lsrtags = "editorial-annotations, text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La instrucción @code{\\whiteout} intercala un rectángulo blanco
debajo de un elemento de marcado. Este rectángulo blanco no tapa
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Para hacer invisibles partes de un regulador de crescendo, se usa
el método de dibujar un rectángulo blanco encima de la parte
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
A veces se denota una «cesura» mediante una doble marca de respiración
parecida a las vías del tren, con un calderón encima. Este fragmento
\header {
lsrtags = "expressive-marks, text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este ejemplo proporciona una función para tipografiar un regulador con
texto por debajo, como @qq{molto} o @qq{poco}. El ejemplo ilustra
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
lsrtags = "text, tweaks-and-overrides, contexts-and-engravers"
\header {
lsrtags = "expressive-marks, unfretted-strings"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Para hacer más pequeño el círculo de @code{\\flageolet} (armónico)
utilice la siguiente función de Scheme.
\header {
lsrtags = "simultaneous-notes, editorial-annotations, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden modificar notas individuales de un acorde con la instrucción
@code{\\tweak}, alterando la propiedad @code{font-size}.
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se insertan automáticamente barras en ángulo cuando se detecta un
intervalo muy grande entre las notas. Se puede hacer un ajuste
\header {
lsrtags = "chords"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede establecer el separador entre las distintas partes del
nombre de un acorde para que sea cualquier elemento de marcado.
\header {
lsrtags = "rhythms, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Cambiar la forma de los silencios multicompás"
texidoces = "
Si hay diez compases de silencio o menos, se imprime en el pentagrama
\header {
lsrtags = "fretted-strings"
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
\version "2.13.39"
\header {
+%% Translation of GIT committish: d7cf09411ee80eaf0092af0aa532de64c0c6248e
+ texidocfr = "
+Lorsque LilyPond génère un fichier MIDI, chaque portée sera par défaut
+affectée à un canal, quel que soit le nombre de voix qu'elle contient.
+Ceci permet d'éviter de se retrouver à court de canaux, sachant qu'il
+n'y en a que seize de disponibles.
+
+Le fait de déplacer le @code{Staff_performer} dans le contexte
+@code{Voice} permet d'affecter à chaque voix d'une même portée un canal
+MIDI spécifique. Dans l'exemple suivant, la même portée donnera lieu à
+deux canaux MIDI différents, chacun étant affecté de son propre
+@code{midiInstrument}.
+
+"
+ doctitlefr = "Affectation d'un canal MIDI par voix"
+
lsrtags = "contexts-and-engravers, midi"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+
+
+
+
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Al producir una salida MIDI, el comportamiento predeterminado es
que cada pentagrama representa un canal MIDI, con todas las voces
\header {
lsrtags = "simultaneous-notes"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Al utilizar la posibilidad de combinación automática de partes, se
puede modificar el texto que se imprime para las secciones de solo
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede modificar el texto empleado para los crescendos y
decrescendos modificando las propiedades de contexto
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Es posible ajustar la separación en las indicaciones de tesitura.
\header {
lsrtags = "expressive-marks, editorial-annotations"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede cambiar el aspecto de las ligaduras de expresión de
continuas a punteadas o intermitentes.
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El glifo de la marca de respiración se puede ajustar
sobreescribiendo la propiedad de texto del objeto de presentación
\header {
lsrtags = "chords"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La nomenclatura inglesa (predeterminada) para los acordes del cifrado
americano se puede cambiar por la alemana (@code{\\germanChords}
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este código muestra cómo cambiar la cantidad de puntillos de una nota.
\header {
lsrtags = "chords"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las alteraciones y los signos «más» pueden aparecer antes o
después de los números, según el valor de las propiedades
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
\header {
lsrtags = "rhythms, tweaks-and-overrides, midi"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Para cambiar el tempo en la salida MIDI sin
imprimir nada, hacemos invisible la indicación metronómica:
\header {
lsrtags = "keyboards, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede usar @code{Staff.pedalSustainStrings} para fijar el texto de
las indicaciones de pisar pedal y levantar pedal. Observe que las
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La instrucción @code{\\time} establece las propiedades
@code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping} y
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Cambiar el número del grupo especial"
texidoces = "
\header {
lsrtags = "rhythms, contexts-and-engravers"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La propiedad @code{measureLength}, junto con
@code{measurePosition}, determina cuándo es necesario dibujar una
\header {
lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este tipo de notación se utiliza para el canto de los Salmos, en
que las estrofas no siempre tienen la misma longitud.
\header {
lsrtags = "chords"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede usar la propiedad @code{chordNameExceptions} para
almacenar una lista de notaciones espaciales para acordes
\header {
lsrtags = "chords"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La presentación del acorde de séptima mayor se
puede ajustar mediante majorSevenSymbol.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede hacer que los diagramas de posiciones se muestren sólo
cuando el acorde cambia o al comienzo de una nueva línea.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
#(set-global-staff-size 15)
\paper {
ragged-right = ##f
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este código muestra cómo recortar (extraer) fragmentos a partir de una
partitura completa.
\header {
lsrtags = "simultaneous-notes, chords, keyboards"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los «clusters» o racimos son un mecanismo para indicar la
interpretación de un ámbito de notas al mismo tiempo.
\header {
lsrtags = "expressive-marks, text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Ciertas indicaciones dinámicas pueden llevar textos (como @qq{più
forte} o @qq{piano subito}). Se pueden producir usando un bloque
\header {
lsrtags = "simultaneous-notes, text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La herramienta de combinación de partes (instrucción
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Indicaciones de compases compuestos"
texidoces = "
Las indicaciones de compás poco frecuentes como @qq{5/8} se pueden
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La agrupación de pulsos dentro de un compás está controlada por la
propiedad de contexto @code{beatStructure}. Hay establecidos valores
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede tipografiar un gissando contemporáneo sin nota final
utilizando una nota oculta y temporalización de cadenza.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La visibilidad de los objetos de extensión que acaban en la primera
\header {
lsrtags = "editorial-annotations, chords, keyboards, fretted-strings"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede controlar con precisión la colocación de los números de
digitación. Para que se tenga en cuenta la orientación de las
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El orden vertical que ocupan las inscripciones gráficas está
controlado con la propiedad @code{'script-priority}. Cuanto más
\version "2.13.39"
\header {
-%% Translation of GIT committish: 67e7cb93611fa389c7e86c6e47e894ff30a8395c
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El comportamiento predeterminado de la visibilidad de los corchetes de
+
+
+
+
%% Translation of GIT committish: 190a067275167c6dc9dd0afef683d14d392b7033
texidocfr = "
\header {
lsrtags = "expressive-marks, editorial-annotations, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La creación de un grupeto circular de anticipación entre dos notas,
donde la nota inferior del grupeto utiliza una alteración, requiere
\header {
lsrtags = "pitches"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
En una música que tenga muchas apariciones de la
misma secuencia de notas a distintas alturas, podría ser de
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede trazar un símbolo de arpegio entre notas de distintas
voces que están sobre el mismo pentagrama si el grabador
\header {
lsrtags = "staff-notation, editorial-annotations, contexts-and-engravers, paper-and-layout"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Para crear pentagramas en blanco, genere compases vacíos y después
elimine el grabador de números de compás @code{Bar_number_engraver}
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Dentro de un @code{PianoStaff}, es posible hacer que un arpegio
cruce entre los pentagramas ajustando la propiedad
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden crear arpegios que se cruzan entre pentagramas dentro de
contextos distintos a @code{GrandStaff}, @code{PianoStaff} y
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden crear indicaciones metronómicas nuevas en modo de
marcado, pero no cambian el tempo en la salida MIDI.
\header {
lsrtags = "expressive-marks, text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Aunque la manera más fácil de añadir paréntesis a una indicación
de dinámica es utilizar un bloque @code{\\markup}, este método
\header {
lsrtags = "expressive-marks, text, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
A diferencia de las inscripciones de texto, las lestras de ensayo
no se pueden apilar en un punto concreto de la partitura: sólo se
\header {
lsrtags = "expressive-marks, keyboards, unfretted-strings"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
En determinadas situaciones es necesario crear ligaduras de
expresión entre notas que están en voces distintas.
\header {
lsrtags = "expressive-marks, text, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las instrucciones @code{\\startTextSpan} y @code{\\stopTextSpan}
permiten la creación de elementos de extensión textuales tan
\header {
lsrtags = "repeats, keyboards"
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
\header {
lsrtags = "ancient-notation, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden tipografiar «custos» en diferentes estilos.
\header {
lsrtags = "fretted-strings, tweaks-and-overrides"
-%% Translation of GIT committish: 47c3d16c5044555afa49637310a7ee324b06af51
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden establecer las propiedades de los diagramas de
posiciones de acordes por medio de @code{'fret-diagram-details}.
\header {
lsrtags = "fretted-strings, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden establecer las propiedades de los diagramas de
posiciones a través de @code{'fret-diagram-details}. Para los
\header {
lsrtags = "editorial-annotations"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La dirección predeterminada de las plicas sobre la tercera línea
del pentagrama está determinada por la propiedad
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este ejemplo demuestra cómo se puede definir el grabador de ámbito en
-%% Do not edit this file; it is automatically
-%% generated from LSR http://lsr.dsi.unimi.it
-%% This file is in the public domain.
-\version "2.13.39"
+% Do not edit this file; it is automatically
+% generated from Documentation/snippets/new
+% This file is in the public domain.
+%% Note: this file works from version 2.13.46
+\version "2.13.46"
\header {
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
+ texidoces = "
+
+Se pueden añadir diagramas de posiciones predefinidas para
+instrumentos nuevos además de los estándar que se usan para la
+guitarra. Este archivo muestra cómo se hace, definiendo una afinación
+nueva y unas cuantas posiciones para el cuatro venezolano.
+
+Este archivo también muestra cómo se pueden incluir las digitaciones
+en los acordes que se usan como puntos de referencia para la búsqueda
+de acordes en la tabla, y mostrarse en el diagrama de posiciones y la
+tablatura @code{TabStaff}, pero no en la música.
+
+Estas posiciones no se pueden transportar porque contienen información
+de las cuerdas. Hay planes para corregir esto en un futuro.
+
+"
+ doctitlees = "Definición de posiciones predefinidas para otros instrumentos"
+
+
+%% Translation of GIT committish: f23429bc5cfa9d141ef7b4509afc46c140308a1e
+ texidocde = "
+Vordefinierte Bunddiagramme können für neue Instrumente hinzugefügt werden
+neben denen, die schon für die Gitarre definiert sind. Dieses Schnipsel
+zeigt, wie man eine neue Saitenstimmung definiert und dann eigene vordefinierte
+Bunddiagramme bestimmt. Das Beispiel ist für das venezualische Cuatro.
+
+Dieses Schnipsel zeigt auch, wie Fingersatz in die Akkorde eingebunden
+werden kann, um als Referenzpunkt für die Akkordauswahl benutzt werden
+kann. Dieser Fingersatz wird im Bunddiagramm und in der Tabulatur,
+aber nicht in den Noten angezeigt.
+
+Diese Bunddiagramme sind nicht transponierbar, weil sie Saiteninformationen
+enthalten. Das soll in der Zukunft verbessert werden.
+
+"
+ doctitlede = "Eigene vordefinierte Bunddiagramme für andere Instrumente erstellen"
+
+%% Translation of GIT committish: 4ab2514496ac3d88a9f3121a76f890c97cedcf4e
+
+ texidocfr = "
+La liste des diagrammes standards prédéfinis pour la guitare peut être
+augmentée d'autres définitions spécifiques à d'autres instruments.
+Voici comment définir un nouvel accordage ainsi que quelques diagrammes
+prédéfinis pour le @qq{cuatro vénézuélien}.
+
+Cet exemple illustre aussi la manière d'ajouter des doigtés aux
+accords ; ils serviront de référence pour la boucle d'accord et seront
+indiqués dans les diagrammes et le @code{TabStaff}, mais pas dans la musique.
+
+Ces diagrammes ne peuvent pas être transposés, dans la mesure où ils
+contiennent des informations sur les cordes. Ceci est amené à évoluer.
+
+"
+ doctitlefr = "Création de diagrammes de fret prédéfinis pour d'autres instruments"
+
+
lsrtags = "fretted-strings"
%% Translation of GIT committish: cde045f4e833aa491fb63f2222e14bef49507577
doctitle = "Defining predefined fretboards for other instruments"
} % begin verbatim
+
% add FretBoards for the Cuatro
% Note: This section could be put into a separate file
% predefined-cuatro-fretboards.ly
% and \included into each of your compositions
-cuatroTuning = #'(11 18 14 9)
+cuatroTuning = #`(,(ly:make-pitch 0 6 0)
+ ,(ly:make-pitch 1 3 SHARP)
+ ,(ly:make-pitch 1 1 0)
+ ,(ly:make-pitch 0 5 0))
dSix = { <a\4 b\1 d\3 fis\2> }
dMajor = { <a\4 d\1 d\3 fis \2> }
\new FretBoards {
\set stringTunings = #cuatroTuning
- \override FretBoard
- #'(fret-diagram-details string-count) = #'4
+% \override FretBoard
+% #'(fret-diagram-details string-count) = #'4
\override FretBoard
#'(fret-diagram-details finger-code) = #'in-dot
\primeros
\header {
lsrtags = "staff-notation, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Si hay un solo pentagrama en un de los tipos de sistema
@code{ChoirStaff} o @code{StaffGroup}, el comportamiento
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
He aquí una forma de imprimir un acorde en el que suena la misma nota
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Al trabajar con los callbacks de un grob, puede ser de mucha ayuda
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Alteraciones de estilo dodecafónico para todas las notas incluidas las naturales"
texidoces = "
En las obras de principios del s.XX, empezando por Schoenberg, Berg y
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Funciones postfijas para la creación de objetos de extensión de texto
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los objetos de extensión \cresc, \dim y \decresc ahora se pueden
lsrtags = "expressive-marks, tweaks-and-overrides"
- texidoc = "The \cresc, \dim and \decresc spanners can now be redefined as
-postfix operators and produce one text spanner. Defining custom spanners is
-also easy. Hairpin and text crescendi can be easily mixed. \< and \> produce
-hairpins by default, \cresc etc. produce text spanners by default.
-"
+ texidoc = "Custom text spanners can be defined and used with hairpin
+ and text crescendos. @code{\<} and @code{\>} produce hairpins by
+ default, @code{\\cresc} etc. produce text spanners by default."
doctitle = "Dynamics text spanner postfix"
} % begin verbatim
'span-direction START
'span-type 'text
'span-text "cresc. poco a poco")
-% Redefine the existing \cresc, \dim and \decresc commands to use postfix syntax
-cresc =
-#(make-music 'CrescendoEvent
- 'span-direction START
- 'span-type 'text
- 'span-text "cresc.")
-dim =
-#(make-music 'DecrescendoEvent
- 'span-direction START
- 'span-type 'text
- 'span-text "dim.")
-decresc =
-#(make-music 'DecrescendoEvent
- 'span-direction START
- 'span-type 'text
- 'span-text "decresc.")
\relative c' {
c4\cresc d4 e4 f4 |
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\include "english.ly"
#(set-global-staff-size 15)
\paper {
\header {
lsrtags = "editorial-annotations, text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede insertar códico PostScript directamente dentro de un
bloque @code{\\markup}.
\header {
lsrtags = "contexts-and-engravers"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Del problema central de la notación, esto es, crear un determinado
símbolo, se encargan los «plugins» o complementos añadidos. Cada
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Grabado manual de las ligaduras"
texidoces = "
Se pueden grabar a mano las ligaduras modificando la propiedad
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Escribir varios grupos especiales usando una sola instrucción \\times"
texidoces = "
La propiedad @code{tupletSpannerDuration} establece cuánto debe durar
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\include "english.ly"
#(set-global-staff-size 15)
\paper {
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede simular un @qq{hammer} o ligado ascendente con ligaduras de
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
#(set-global-staff-size 15)
\paper {
ragged-right = ##f
\header {
lsrtags = "winds"
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden conseguir símbolos especiales combinando glifos existentes,
lo que es de utilidad para la notación de instrumentos de viento.
\header {
lsrtags = "fretted-strings"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
En este ejemplo se combinan las digitaciones de la mano izquierda,
indicaciones del número de cuerda y digitaciones de la mano
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Son posibles tanto los corchetes rectos sobre notas sueltas como
extremos de barra sueltos en figuras unidas, con una combinación de
\header {
lsrtags = "simultaneous-notes, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Forzar el desplazamiento horizontal de las notas"
\header {
lsrtags = "vocal-music"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Si LilyPond no cree que haya sitio suficiente para un guión separador
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 67e7cb93611fa389c7e86c6e47e894ff30a8395c
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden crear tablas alternativas de diagramas de posiciones. Se
% on melodies from Bellini's "Norma" %
%*****************************************************************%
-\version "2.13.40"
+\version "2.13.46"
#(set-global-staff-size 15)
\paper {
\header {
lsrtags = "pitches"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este fragmento de código basado en Scheme genera
24 notas aleatorias (o tantas como se necesiten), basándose en la
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
En muchos casos, las llaves que no están en la columna central se
\header {
lsrtags = "editorial-annotations"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede cambiar el aspecto de las líneas de rejilla
sobreescribiendo algunas de sus propiedades.
%% Translation of GIT committish: 9ccf7f0f5e52e074f3b7852416ad5b78718395c8
texidocfr = "
-Modifier certaines des propriétés du cadrillage temporel aura pour effet
+Modifier certaines des propriétés du quadrillage temporel aura pour effet
d'en changer l'apparence.
"
- doctitlefr = "Apparence du cadrillage temporel"
+ doctitlefr = "Apparence du quadrillage temporel"
texidoc = "
\header {
lsrtags = "editorial-annotations"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden trazar líneas verticales normales entre pentagramas para
mostrar la relación entre notas; sin embargo, en caso de música
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los patrones de barrado se pueden alterar con la propiedad
@code{beatGrouping}:
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
\header {
lsrtags = "rhythms, fretted-strings"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Para la música de guitarra, es posible mostrar los ritmos de rasgueo,
además de las notas de la melodía, acordes y diagramas de posiciones.
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los reguladores pueden imprimirse en uno cualquiera de los estilos de
@code{line-interface}: discontinuo, punteado, línea, trino o zig-zag.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Aquí se muestra la manera de ocultar las alteraciones de las notas
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los cambios de dinámica con estilo de texto (como cresc. y dim.)
se imprimen con una línea intermitente que muestra su alcance.
\header {
lsrtags = "vocal-music, template"
-%% Translation of GIT committish: 8b9a694a483632437fb5110b3531074ddb31c04a
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este fragmento de código muestra una forma de preparar un himno cuando
cada línea comienza con un compás parcial. También muestra cómo
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los «incipit» se pueden escribir utilizando el grob del nombre del
instruemento, pero manteniendo independientes las definiciones del
\header {
lsrtags = "keyboards"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Un corchete de arpegio puede indicar que se tienen que tocar con la
misma mano notas que están en dos pentagramas distintos. Para hacerlo,
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las marcas de cesura se pueden crear sobreescribiendo la propiedad
@code{'text} del objeto @code{BreathingSign}. También está disponible
\header {
lsrtags = "repeats"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
También se pueden imprimir símbolos de porcentaje sueltos.
\header {
lsrtags = "keyboards, percussion, fretted-strings, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Ésta es una plantilla bastante avanzada, para un conjunto de
jazz. Observe que la notación de todos los instrumentos está en
\header {
lsrtags = "pitches, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Cuando se produce un cambio de clave, el símbolo de clave se imprime a
un tamaño menor que la clave inicial. Esto se puede ajustar con
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\include "english.ly"
#(set-global-staff-size 15)
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La tablatura se puede formatear utilizando letras en lugar de números.
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden aplicar puntas de flecha a los elementos de extensión de
texto y de línea (como el Glissando).
\header {
lsrtags = "text, vocal-music"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La alineación horizontal de la letra se puede ajustar sobreescribiendo
la propiedad @code{self-alignment-X} del objeto @code{LyricText}.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El «Makam» es un tipo de melodía de Turquía que
utiliza alteraciones microtonales de 1/9 de tono. Consulte el
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las ligaduras de expresión se pueden construir con patrones de
\header {
lsrtags = "staff-notation, editorial-annotations"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede engrosar una línea del pentagrama con fines pedagógicos
(p.ej. la tercera línea o la de la clave de Sol). Esto se puede
\header {
lsrtags = "repeats, staff-notation, editorial-annotations"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este fragmento de código proporciona una solución alternativa a la
producción de contadores de compás utilizando repeticiones
\header {
lsrtags = "staff-notation, ancient-notation, contexts-and-engravers, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La disposición «mensurstriche» en que las líneas divisorias no
están dibujadas sobre los pentagramas, sino entre ellos, se puede
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Utilice un texto de marcado para sustituir el glifo de clave (TAB) con
una fuente tipográfica moderna.
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las abreviaturas se encuentran definidas dentro del archivo
@file{ly/script-init.ly}, donde las variables @code{dashHat},
\header {
lsrtags = "rhythms, simultaneous-notes, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Cuando se puede una nota en la voz superior para evitar la colisión
con una nota de otra voz, el comportamiento predeterminado es
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede ajustar la posición vertical de una ligadura de
expresiónutilizando la propiedad @code{positions} del objeto
\header {
lsrtags = "rhythms, text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los elementos de marcado aplicados a un silencio multicompás se
centran encima o debajo de éste. Los elementos de marcado extensos
\header {
lsrtags = "staff-notation, contexts-and-engravers, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede utilizar la propiedad
@code{systemStartDelimiterHierarchy} para crear grupos de
--- /dev/null
+\version "2.13.46"
+
+\header {
+ lsrtags = "fretted-strings"
+
+%% Translation of GIT committish: cde045f4e833aa491fb63f2222e14bef49507577
+ texidoces = "
+
+Se pueden añadir diagramas de posiciones predefinidas para
+instrumentos nuevos además de los estándar que se usan para la
+guitarra. Este archivo muestra cómo se hace, definiendo una afinación
+nueva y unas cuantas posiciones para el cuatro venezolano.
+
+Este archivo también muestra cómo se pueden incluir las digitaciones
+en los acordes que se usan como puntos de referencia para la búsqueda
+de acordes en la tabla, y mostrarse en el diagrama de posiciones y la
+tablatura @code{TabStaff}, pero no en la música.
+
+Estas posiciones no se pueden transportar porque contienen información
+de las cuerdas. Hay planes para corregir esto en un futuro.
+
+"
+ doctitlees = "Definición de posiciones predefinidas para otros instrumentos"
+
+
+%% Translation of GIT committish: f23429bc5cfa9d141ef7b4509afc46c140308a1e
+ texidocde = "
+Vordefinierte Bunddiagramme können für neue Instrumente hinzugefügt werden
+neben denen, die schon für die Gitarre definiert sind. Dieses Schnipsel
+zeigt, wie man eine neue Saitenstimmung definiert und dann eigene vordefinierte
+Bunddiagramme bestimmt. Das Beispiel ist für das venezualische Cuatro.
+
+Dieses Schnipsel zeigt auch, wie Fingersatz in die Akkorde eingebunden
+werden kann, um als Referenzpunkt für die Akkordauswahl benutzt werden
+kann. Dieser Fingersatz wird im Bunddiagramm und in der Tabulatur,
+aber nicht in den Noten angezeigt.
+
+Diese Bunddiagramme sind nicht transponierbar, weil sie Saiteninformationen
+enthalten. Das soll in der Zukunft verbessert werden.
+
+"
+ doctitlede = "Eigene vordefinierte Bunddiagramme für andere Instrumente erstellen"
+
+%% Translation of GIT committish: 4ab2514496ac3d88a9f3121a76f890c97cedcf4e
+
+ texidocfr = "
+La liste des diagrammes standards prédéfinis pour la guitare peut être
+augmentée d'autres définitions spécifiques à d'autres instruments.
+Voici comment définir un nouvel accordage ainsi que quelques diagrammes
+prédéfinis pour le @qq{cuatro vénézuélien}.
+
+Cet exemple illustre aussi la manière d'ajouter des doigtés aux
+accords ; ils serviront de référence pour la boucle d'accord et seront
+indiqués dans les diagrammes et le @code{TabStaff}, mais pas dans la musique.
+
+Ces diagrammes ne peuvent pas être transposés, dans la mesure où ils
+contiennent des informations sur les cordes. Ceci est amené à évoluer.
+
+"
+ doctitlefr = "Création de diagrammes de fret prédéfinis pour d'autres instruments"
+
+
+ texidoc = "
+Predefined fret diagrams can be added for new instruments in addition
+to the standards used for guitar. This file shows how this is done by
+defining a new string-tuning and a few predefined fretboards for the
+Venezuelan cuatro.
+
+This file also shows how fingerings can be included in the chords used
+as reference points for the chord lookup, and displayed in the fret
+diagram and the @code{TabStaff}, but not the music.
+
+
+These fretboards are not transposable because they contain string
+information. This is planned to be corrected in the future.
+
+"
+ doctitle = "Defining predefined fretboards for other instruments"
+}
+
+% add FretBoards for the Cuatro
+% Note: This section could be put into a separate file
+% predefined-cuatro-fretboards.ly
+% and \included into each of your compositions
+
+cuatroTuning = #`(,(ly:make-pitch 0 6 0)
+ ,(ly:make-pitch 1 3 SHARP)
+ ,(ly:make-pitch 1 1 0)
+ ,(ly:make-pitch 0 5 0))
+
+dSix = { <a\4 b\1 d\3 fis\2> }
+dMajor = { <a\4 d\1 d\3 fis \2> }
+aMajSeven = { <a\4 cis\1 e\3 g\2> }
+dMajSeven = { <a\4 c\1 d\3 fis\2> }
+gMajor = { <b\4 b\1 d\3 g\2> }
+
+\storePredefinedDiagram #default-fret-table \dSix
+ #cuatroTuning
+ #"o;o;o;o;"
+\storePredefinedDiagram #default-fret-table \dMajor
+ #cuatroTuning
+ #"o;o;o;3-3;"
+\storePredefinedDiagram #default-fret-table \aMajSeven
+ #cuatroTuning
+ #"o;2-2;1-1;2-3;"
+\storePredefinedDiagram #default-fret-table \dMajSeven
+ #cuatroTuning
+ #"o;o;o;1-1;"
+\storePredefinedDiagram #default-fret-table \gMajor
+ #cuatroTuning
+ #"2-2;o;1-1;o;"
+
+% end of potential include file /predefined-cuatro-fretboards.ly
+
+
+#(set-global-staff-size 16)
+
+primerosNames = \chordmode {
+ d:6 d a:maj7 d:maj7
+ g
+}
+primeros = {
+ \dSix \dMajor \aMajSeven \dMajSeven
+ \gMajor
+}
+
+\score {
+ <<
+ \new ChordNames {
+ \set chordChanges = ##t
+ \primerosNames
+ }
+
+ \new Staff {
+ \new Voice \with {
+ \remove "New_fingering_engraver"
+ }
+ \relative c'' {
+ \primeros
+ }
+ }
+
+ \new FretBoards {
+ \set stringTunings = #cuatroTuning
+% \override FretBoard
+% #'(fret-diagram-details string-count) = #'4
+ \override FretBoard
+ #'(fret-diagram-details finger-code) = #'in-dot
+ \primeros
+ }
+
+ \new TabStaff \relative c'' {
+ \set TabStaff.stringTunings = #cuatroTuning
+ \primeros
+ }
+
+ >>
+
+ \layout {
+ \context {
+ \Score
+ \override SpacingSpanner
+ #'base-shortest-duration = #(ly:make-moment 1 16)
+ }
+ }
+ \midi { }
+}
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
LilyPond también proporciona funciones de formato para imprimir
números de grupo especial diferentes a la propia fracción, así
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Armaduras de tonalidad no tradicionales"
texidoces = "
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 67e7cb93611fa389c7e86c6e47e894ff30a8395c
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las cabezas de nota de notación fácil utilizan la propiedad
\header {
lsrtags = "pitches, staff-notation, vocal-music, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Esta plantilla muestra el uso de contextos @code{StaffGroup} y
@code{GrandStaff} anidados para sub-agrupar instrumentos del mismo
\header {
lsrtags = "pitches, text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Internamente, @code{\\ottava} establece las propiedades
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
\header {
lsrtags = "repeats, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden mostrar los contadores de las repeticiones del tipo
porcentaje a intervalos regulares mediante el establecimiento de
\header {
lsrtags = "repeats"
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las repeticiones de compases completos de más de dos repeticiones
pueden llevar un contador si se activa la propiedad adecuada, como se
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Permitir saltos de línea dentro de grupos especiales con barra"
texidoces = "
Este ejemplo artificial muestra cómo se pueden permitir tanto los
\header {
lsrtags = "keyboards, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Presentamos a continuación una plantilla de piano sencilla con algunas
notas.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Muchas partituras de piano tienen las indicaciones dinámicas centradas
entre los dos pentagramas. El contexto @code{Dynamics}, si se sitúa
\header {
lsrtags = "text, keyboards, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
En lugar de tener un pentagrama dedicado a la melodía y la letra, ésta
se puede centrar entre los pentagramas de un sistema de piano.
\header {
lsrtags = "vocal-music, keyboards, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
He aquí el típico formato dde una canción: un pentagrama con la
melodía y la letra, y el acompañamiento de piano por debajo.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\include "english.ly"
#(set-global-staff-size 15)
\paper {
\header {
lsrtags = "fretted-strings"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Es posible ejercer un mayor control sobre la colocación de las
digitaciones de la mano derecha estableciendo el valor de una
\header {
lsrtags = "fretted-strings"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La polifonía se crea de la misma forma en un @code{TabStaff} que
en una pauta normal.
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Si necesitamos alargar o acortar un símbolo de arpegio, podemos
modificar independientemente los extremos superior e inferior.
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Cuando se colocan figuras sobre líneas adicionales, sus barras se
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Al establecer la propiedad @code{'strict-grace-spacing} hacemos que
\header {
lsrtags = "rhythms, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Posicionar los silencios multicompás"
texidoces = "
A diferencia de los silencios normales, no existe una instrucción
\header {
lsrtags = "expressive-marks, editorial-annotations, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los elementos de marcado de texto deben tener la propiedad
\header {
lsrtags = "pitches"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Evitar que se añadan becuadros adicionales automáticamente"
texidoces = "
\header {
lsrtags = "pitches"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Evitar que se impriman becuadros cuando cambia la armadura"
texidoces = "
\header {
lsrtags = "repeats, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede imprimir una línea divisoria de la forma @code{|:} al
principio de la pieza, sobreescribiendo la propiedad correspondiente:
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden imprimir los números de compás a intervalos regulares
\header {
lsrtags = "rhythms, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los números de compás también se pueden imprimir dentro de rectángulos o de circunferencias.
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden imprimir reguladores con un círculo en la punta (notación
«al niente») estableciendo la propiedad @code{circled-tip} del objeto
\header {
lsrtags = "text"
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
\header {
lsrtags = "text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Aunque normalmente las marcas de texto sólo se imprimen sobre el
pentagrama superior, también se pueden imprimir en otro pentagrama
\header {
lsrtags = "rhythms, expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
De forma predeterminada, las indicaciones metronómicas y las
letras de ensayo se imprimen encima del pentagrama. Para
\header {
lsrtags = "tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede usar el contexto @code{NoteNames} para imprimir el valor
textual de las notas. La propiedad @code{printOctaveNames} activa o
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
De forma predeterminada se suprime el número del primer compás de una
\header {
lsrtags = "pitches, staff-notation"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los pasajes citados tienen en cuenta la transposición de la fuente
tanto como la del destino. En este ejemplo, todos los
\header {
lsrtags = "staff-notation"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La propiedad @code{quotedEventTypes} determina los tipos de eventos
\version "2.13.39"
\header {
-%% Translation of GIT committish: 67e7cb93611fa389c7e86c6e47e894ff30a8395c
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El ejemplo siguiente muestra cómo se pueden realizar diagramas de
+
+
+
+
%% Translation of GIT committish: 496c48f1f2e4d345ae3637b2c38ec748a55cda1d
texidocfr = "
Cet exemple illustre la manière de créer et afficher des indications de
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los valores predeterminados para las notas de adorno están
\header {
lsrtags = "rhythms, contexts-and-engravers"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden eliminar completamente los números de compás quitando el
\header {
lsrtags = "rhythms, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
De forma predeterminada, las líneas divisorias en los grupos
StaffGroup, PianoStaff o GrandStaff se conectan entre los pentagramas.
\header {
lsrtags = "staff-notation, tweaks-and-overrides, breaks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El primer pentagrama vacío también se puede suprimir de la
partitura estableciendo la propiedad @code{remove-first} de
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\include "english.ly"
#(set-global-staff-size 15)
\paper {
\header {
lsrtags = "rhythms, ancient-notation, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Estilos de silencios"
texidoces = "
Los silencios se pueden imprimir en distintos estilos.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Para tipografiar las barras agrupadas en la forma @code{3-4-3-2} sólo
es necesario modificar la estructura de pulsos:
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\include "english.ly"
#(set-global-staff-size 15)
\paper {
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
lsrtags = "headwords"
texidoc = "Random complex notation"
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Si la nota que da fin a un regulador cae sobre la primera parte de
un compás, el regulador se detiene en la línea divisoria
\header {
lsrtags = "staff-notation, tweaks-and-overrides, paper-and-layout"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden insertar separadores sistema entre los sistemas de una
página. Se puede usar cualquier elemento de marcado, pero
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Si los reguladores son demasiado cortos, se pueden alargar
modificando la propiedad @code{minimum-length} del objeto
\header {
lsrtags = "repeats"
-%% Translation of GIT committish: 67e7cb93611fa389c7e86c6e47e894ff30a8395c
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
De forma predeterminada, los corchetes de primera y segunda vez se
trazan encima de los finales alternativos completos, pero es posible
\header {
lsrtags = "chords"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden imprimir los acordes exclusivamente al comienzo de las
líneas y cuando cambia el acorde.
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
\header {
lsrtags = "chords"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Al juntar nombres de acorde en cifrado americano, melodía y letra,
obtenemos una hoja guía de acordes o «lead sheet»:
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\include "english.ly"
#(set-global-staff-size 15)
\paper {
\header {
lsrtags = "vocal-music, chords, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Esta plantilla facilita la preparación de una canción con melodía,
letra y acordes.
\header {
lsrtags = "vocal-music, chords, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Presentamos a continuación un ejemplo de plantilla para una hoja
guía de acordes con melodía, letra, acordes y diagramas de
\header {
lsrtags = "chords, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
¿Quiere preparar una hoja guía de acordes (o «lead sheet») con
melodía y acordes? ¡No busque más!
\header {
lsrtags = "vocal-music, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Esta pequeña plantilla muestra una melodía sencilla con letra. Córtela
y péguela, escriba las notas y luego la letra. Este ejemplo desactiva
\header {
lsrtags = "template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Esta plantilla simple prepara un pentagrama con notas, adecuado para
un instrumento solista o un fragmento melódico. Córtelo y péguelo en
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Marca de pizzicato de chasquido (`pizzicato de Bartók')"
texidoces = "
El pizzicato de chasquido (también llamado @q{Pizzicato de Bartók}) es un
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\include "catalan.ly"
#(set-global-staff-size 15)
\paper{
\header {
lsrtags = "text"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Los textos independientes se pueden disponer en varias columnas
utilizando instrucciones @code{\\markup}:
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La dirección de las plicas se contola de la misma forma en la
tablatura que en la notación tradicional. Las barras se pueden
\header {
lsrtags = "unfretted-strings, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Esta plantilla muestra un cuarteto de cuerda normal. También utiliza
una sección @code{\\global} para el compás y la armadura
\header {
lsrtags = "unfretted-strings, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El fragmento de código @qq{Plantilla de cuarteto de cuerda} produce un
resultado satisfactorio para el cuarteto, pero ¿y si tenemos que
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\include "english.ly"
#(set-global-staff-size 15)
\paper {
\header {
lsrtags = "rhythms, tweaks-and-overrides"
-%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
A veces, la indicación de compás no debe imprimir la fracción completa
\header {
lsrtags = "ancient-notation, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
A modo de alternativa para obtener auténticos «incipit»
independientes de la partitura principal, se incluyen como
\header {
lsrtags = "pitches"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Transportar música con el menor número de alteraciones"
texidoces = "
Este ejemplo utiliza código de Scheme para forzar las
\header {
lsrtags = "pitches, staff-notation, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Trucaje de las propiedades de clave"
texidoces = "
La instrucción @code{\\clef \"treble_8\"} equivale a un ajuste de
\header {
lsrtags = "rhythms, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
La disposición de las expresiones de adorno se puede cambiar a lo
-\version "2.13.40"
+\version "2.13.46"
#(set-global-staff-size 15)
%%%
\header {
lsrtags = "staff-notation, contexts-and-engravers"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se puede usar el delimitador de comienzo de un sistema
@code{SystemStartSquare} estableciéndolo explícitamente dentro de
\header {
lsrtags = "rhythms, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Se pueden imprimir estilos alternativos del corchete o gancho de las
\header {
lsrtags = "expressive-marks, vocal-music"
-%% Translation of GIT committish: 8b9a694a483632437fb5110b3531074ddb31c04a
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El corchete de arpegios @code{arpeggioBracket} se puede usar para
indicar la división de voces cuando no hay plicas que puedan ofrecer
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Algunos compositores escriben dos ligaduras cuando quieren acordes
legato. Esto se puede conseguir estableciendo @code{doubleSlurs}.
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Es posible aplicar la barrita que cruza la barra de las
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
\header {
lsrtags = "rhythms"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
doctitlees = "Uso de ligaduras en los arpegios"
texidoces = "
En ocasiones se usan ligaduras de unión para escribir los arpegios.
\header {
lsrtags = "tweaks-and-overrides, spacing"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Mediante el establecimiento de la propiedad @code{'Y-extent} a un valor
adecuado, todos los objetos @code{DynamicLineSpanner} (reguladores e
\header {
lsrtags = "expressive-marks"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Las expresiones dinámicas que se comienzan, terminan o se producen
en la misma nota se alinean verticalmente. Para asegurar que las
\header {
lsrtags = "vocal-music, tweaks-and-overrides, spacing"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Este fragmento de código muestra el uso de las propiedades de
contexto @code{alignBelowContext} y @code{alignAboveContext} para
\header {
lsrtags = "chords, tweaks-and-overrides"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Allí donde se utilicen líneas extensoras para el bajo cifrado mediante
el establecimiento de @code{useBassFigureExtenders} al valor
\header {
lsrtags = "vocal-music, keyboards, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Esta plantilla añade una reducción de piano automática a la partitura
\header {
lsrtags = "text, vocal-music, contexts-and-engravers, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Esta plantilla es, básicamente, la misma que la sencilla plantilla
@qq{Conjunto vocal}, excepto que aquí todas las líneas de letra se
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Esta plantilla crea una partitura que comienza con una estrofa para
\header {
lsrtags = "vocal-music, template"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
He aquí una partitura vocal estándar para cuatro voces SATB. Con
grupos mayores, suele ser útil incluir una sección que aparezca en
\header {
lsrtags = "repeats, staff-notation, chords"
-%% Translation of GIT committish: 5160eccb26cee0bfd802d844233e4a8d795a1e94
+%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
Mediante la adición del grabador @code{Volta_engraver} al
pentagrama pertinente, se pueden poner los corchetes de primera y
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
#(set-global-staff-size 15)
\paper {
line-width = 16\cm
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
% generated from Documentation/snippets/new
% This file is in the public domain.
%% Note: this file works from version 2.13.36
-\version "2.13.40"
+\version "2.13.46"
\header {
-%%% Translation of GIT committish: 298a2c322d7e4f437f3dd1a24db2839e3f35acce
+%%% Translation of GIT committish: a874fda3641c9e02f61be5c41b215b8304b8ed00
texidoces = "
El fragmento de música que aparece a continuación presenta todos los
diagramas de viento madera que se encuentran definidos en LilyPond por
view, and any syntax errors in your LilyPond tweaks are highlighted in
the text view when printed from there.
-@warning{Denemo officially supports an outdated Lilypond version 2.8.7,
-which lacks many of the features added since then. The Denemo developers
-are actively working to bring it up to our present stable version, 2.12.}
@divEnd
@divClass{column-center-top}
@c used for news about the upcoming release; see CG 10.2
+
+@newsItem
+@subsubheading LilyPond 2.13.45 released! @emph{Jan 3, 2010}
+
+We are happy to announce the release of LilyPond 2.13.45. This
+release contains the usual number of bugfixes. However, a number
+of critical issues still remain, so this release is intended for
+developers only.
+
+@newsEnd
+
+
@newsItem
@subsubheading Beta test three of 2.14 -- LilyPond 2.13.44 released! @emph{Dec 25, 2010}
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=13
-PATCH_LEVEL=45
+PATCH_LEVEL=46
MY_PATCH_LEVEL=
VERSION_STABLE=2.12.3
-VERSION_DEVEL=2.13.44
+VERSION_DEVEL=2.13.45
--- /dev/null
+\version "2.13.45"
+
+\header {
+
+ texidoc = "Octavation signs may be added to clefs. By default,
+their break-visibility is derived from the associated clef, but it may
+be overridden explicitly. The initial treble_8 clef should not have an
+8, while the treble_8 clef after the tenor clef should.
+These settings also need to apply to clefs on new lines."
+
+}
+\layout { ragged-right = ##t }
+
+
+\relative c' {
+ \override Staff.OctavateEight #'break-visibility = #all-invisible
+
+ \clef "treble_8"
+ c2 c |
+ c c | \break
+ c \clef "tenor" c |
+ \revert Staff.OctavateEight #'break-visibility
+ \clef "treble_8"
+ c2 c |
+ c c | \break
+ c c
+}
+
--- /dev/null
+\version "2.13.45"
+
+\header {
+ texidoc = "Clefs for cue notes at the start of a score should print the
+standard clef plus a small cue clef after the time/key signature."
+}
+
+vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 }
+\addQuote vIQuote { \vI }
+
+Solo = \relative c'' {
+ \clef "bass"
+ \cueDuringWithClef #"vIQuote" #DOWN #"treble" { r2 } d,,4 d4 |
+}
+
+\score {
+ <<
+ \new Staff \new Voice \Solo
+ >>
+}
--- /dev/null
+\version "2.13.45"
+
+\header {
+ texidoc = "Clefs for cue notes and line breaks. If the cue notes start in a
+new line, the cue clef should not be printed at the end of the previous line.
+Similarly, an end clef for cue notes ending at a line break should only be
+printed at the end of the line.
+
+Cue notes going over a line break should print the standard clef on the new
+line plus an additional cue clef after the time/key signature."
+}
+
+vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 }
+\addQuote vIQuote { \vI }
+
+Solo = \relative c {
+ \clef "bass"
+ c1 | \break
+ \cueDuringWithClef #"vIQuote" #UP #"tenor" { R1 } | \break
+ c1 |
+ \cueDuringWithClef #"vIQuote" #UP #"tenor" { R1 | \break
+ R1 } |
+ c1
+}
+
+\score {
+ <<
+ \new Staff \new Voice \Solo
+ >>
+}
--- /dev/null
+\version "2.13.45"
+
+\header {
+ texidoc = "Octavation for clefs for cue notes."
+}
+
+vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 }
+\addQuote vIQuote { \vI }
+
+Solo = \relative c' {
+ \clef "treble_8" c1 |
+ \cueDuringWithClef #"vIQuote" #UP #"bass^8" { R1 } |
+ c1 | \break
+ c c
+ \clef "bass^8" c1 |
+ \cueDuringWithClef #"vIQuote" #UP #"treble_8" { R1 R1 } |
+ c
+ \cueDuringWithClef #"vIQuote" #UP #"treble_8" { R1 \break R } |
+ c
+}
+
+\score {
+ <<
+ \new Staff \new Voice \Solo
+ >>
+}
--- /dev/null
+\version "2.13.45"
+
+\header {
+ texidoc = "Clefs for cue notes: Print a cue clef at the begin of the cue
+notes and a cancelling clef after the cue notes."
+}
+
+vI = \relative c'' { \clef "treble" \repeat unfold 16 g4 }
+\addQuote vIQuote { \vI }
+
+Solo = \relative c {
+ \clef "bass"
+ c4 \cueDuringWithClef #"vIQuote" #DOWN #"treble" {
+ r4 r2 |
+ r4
+ } c4 c2 |
+ \cueDuringWithClef #"vIQuote" #DOWN "soprano" { R1*2 } |
+ c1
+}
+
+\score {
+ <<
+ \new Staff \new Voice \Solo
+ >>
+}
-\version "2.13.10"
+\version "2.13.46"
-\header { texidoc = "A sample tablature with lettered tab,
+\header {
+ texidoc = "
+A sample tablature with lettered tab,
using fretLabels to modify the fret letters.
By default, letters are drawn sequentially from the alphabet,
\score {
\new TabStaff
\with {
- stringTunings = #'(17 14 9 5 2 -3)
+ stringTunings = #`(,(ly:make-pitch 1 3 0)
+ ,(ly:make-pitch 1 1 0)
+ ,(ly:make-pitch 0 5 0)
+ ,(ly:make-pitch 0 3 0)
+ ,(ly:make-pitch 0 1 0)
+ ,(ly:make-pitch -1 5 0))
tablatureFormat = #fret-letter-tablature-format
}
\new TabVoice {
\notes
}
}
-
-
-
+\version "2.13.46"
+
\header {
texidoc = "For other tunings, it is sufficient to set
}
-\version "2.12.0"
-
\new TabStaff {
- \set TabStaff.stringTunings = #'(5 10 15 20)
+ \set TabStaff.stringTunings = #`(,(ly:make-pitch 0 3 0)
+ ,(ly:make-pitch 0 5 SHARP)
+ ,(ly:make-pitch 1 1 SHARP)
+ ,(ly:make-pitch 1 4 SHARP))
\relative c'' { c4 d e f }
}
-
+
public:
TRANSLATOR_DECLARATIONS (Clef_engraver);
- Direction octave_dir_;
-
protected:
void stop_translation_timestep ();
void process_music ();
Clef_engraver::Clef_engraver ()
{
clef_ = 0;
- octave_dir_ = CENTER;
octavate_ = 0;
/*
void
Clef_engraver::acknowledge_bar_line (Grob_info info)
{
- Item *item = dynamic_cast<Item *> (info.grob ());
+ Item *item = info.item ();
if (item && scm_is_string (get_property ("clefGlyph")))
create_clef ();
}
vis = get_property ("explicitClefVisibility");
if (vis)
- {
- clef_->set_property ("break-visibility", vis);
- if (octavate_)
- octavate_->set_property ("break-visibility", vis);
- }
+ clef_->set_property ("break-visibility", vis);
clef_ = 0;
--- /dev/null
+/*
+ This file is part of LilyPond, the GNU music typesetter.
+
+ Copyright (C) 1997--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Mats Bengtsson <matsb@s3.kth.se>
+ Copyright (C) 2010 Reinhold Kainhofer <reinhold@kainhofer.com>
+
+ LilyPond is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ LilyPond is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <cctype>
+using namespace std;
+
+#include "item.hh"
+#include "context.hh"
+#include "bar-line.hh"
+#include "staff-symbol-referencer.hh"
+#include "engraver.hh"
+#include "direction.hh"
+#include "side-position-interface.hh"
+#include "warn.hh"
+#include "international.hh"
+
+#include "translator.icc"
+
+class Cue_clef_engraver : public Engraver
+{
+public:
+ TRANSLATOR_DECLARATIONS (Cue_clef_engraver);
+
+protected:
+ void stop_translation_timestep ();
+ void process_music ();
+ DECLARE_ACKNOWLEDGER (bar_line);
+
+ virtual void derived_mark () const;
+private:
+ Item *clef_;
+ Item *octavate_;
+
+ SCM prev_glyph_;
+ SCM prev_cpos_;
+ SCM prev_octavation_;
+ void create_clef ();
+ void create_end_clef ();
+ void set_glyph ();
+ void inspect_clef_properties ();
+ void create_octavate_eight (SCM oct);
+};
+
+void
+Cue_clef_engraver::derived_mark () const
+{
+ scm_gc_mark (prev_octavation_);
+ scm_gc_mark (prev_cpos_);
+ scm_gc_mark (prev_glyph_);
+}
+
+Cue_clef_engraver::Cue_clef_engraver ()
+{
+ clef_ = 0;
+ octavate_ = 0;
+
+ prev_octavation_ = prev_cpos_ = prev_glyph_ = SCM_EOL;
+}
+
+void
+Cue_clef_engraver::set_glyph ()
+{
+ SCM glyph_sym = ly_symbol2scm ("glyph");
+ SCM basic = ly_symbol2scm ("CueClef");
+ execute_pushpop_property (context (), basic, glyph_sym, SCM_UNDEFINED);
+ execute_pushpop_property (context (), basic, glyph_sym, get_property ("cueClefGlyph"));
+
+ basic = ly_symbol2scm ("CueEndClef");
+ execute_pushpop_property (context (), basic, glyph_sym, SCM_UNDEFINED);
+ execute_pushpop_property (context (), basic, glyph_sym, get_property ("clefGlyph"));
+}
+
+/**
+ Generate a clef at the start of a measure. (when you see a Bar,
+ ie. a breakpoint)
+*/
+void
+Cue_clef_engraver::acknowledge_bar_line (Grob_info info)
+{
+ Item *item = info.item ();
+ if (item && scm_is_string (get_property ("cueClefGlyph")))
+ create_clef ();
+}
+
+void
+Cue_clef_engraver::create_octavate_eight (SCM oct)
+{
+ if (scm_is_number (oct) && scm_to_int (oct))
+ {
+ Item *g = make_item ("OctavateEight", SCM_EOL);
+
+ int abs_oct = scm_to_int (oct);
+ int dir = sign (abs_oct);
+ abs_oct = abs (abs_oct) + 1;
+
+ SCM txt = scm_number_to_string (scm_from_int (abs_oct),
+ scm_from_int (10));
+
+ g->set_property ("text",
+ scm_list_n (ly_lily_module_constant ("vcenter-markup"),
+ txt, SCM_UNDEFINED));
+ Side_position_interface::add_support (g, clef_);
+
+ g->set_parent (clef_, Y_AXIS);
+ g->set_parent (clef_, X_AXIS);
+ g->set_property ("direction", scm_from_int (dir));
+ octavate_ = g;
+ }
+}
+
+void
+Cue_clef_engraver::create_clef ()
+{
+ if (!clef_)
+ {
+ Item *c = make_item ("CueClef", SCM_EOL);
+
+ clef_ = c;
+ SCM cpos = get_property ("cueClefPosition");
+ if (scm_is_number (cpos))
+ clef_->set_property ("staff-position", cpos);
+
+ create_octavate_eight (get_property ("cueClefOctavation"));
+ }
+}
+
+void
+Cue_clef_engraver::create_end_clef ()
+{
+ if (!clef_)
+ {
+ clef_ = make_item ("CueEndClef", SCM_EOL);
+ SCM cpos = get_property ("clefPosition");
+ if (scm_is_number (cpos))
+ clef_->set_property ("staff-position", cpos);
+
+ create_octavate_eight (get_property ("clefOctavation"));
+ }
+}
+
+void
+Cue_clef_engraver::process_music ()
+{
+ inspect_clef_properties ();
+}
+
+void
+Cue_clef_engraver::inspect_clef_properties ()
+{
+ SCM glyph = get_property ("cueClefGlyph");
+ SCM clefpos = get_property ("cueClefPosition");
+ SCM octavation = get_property ("cueClefOctavation");
+
+ if (scm_equal_p (glyph, prev_glyph_) == SCM_BOOL_F
+ || scm_equal_p (clefpos, prev_cpos_) == SCM_BOOL_F
+ || scm_equal_p (octavation, prev_octavation_) == SCM_BOOL_F)
+ {
+ set_glyph ();
+ if (scm_is_string (glyph))
+ {
+ create_clef ();
+ if (clef_)
+ clef_->set_property ("non-default", SCM_BOOL_T);
+ }
+ else
+ create_end_clef ();
+
+ prev_cpos_ = clefpos;
+ prev_glyph_ = glyph;
+ prev_octavation_ = octavation;
+ }
+
+}
+
+void
+Cue_clef_engraver::stop_translation_timestep ()
+{
+ if (clef_)
+ {
+ SCM vis = 0;
+ if (to_boolean (clef_->get_property ("non-default")))
+ vis = get_property ("explicitCueClefVisibility");
+
+ if (vis)
+ clef_->set_property ("break-visibility", vis);
+
+ clef_ = 0;
+ octavate_ = 0;
+ }
+}
+
+ADD_ACKNOWLEDGER (Cue_clef_engraver, bar_line);
+ADD_TRANSLATOR (Cue_clef_engraver,
+ /* doc */
+ "Determine and set reference point for pitches in cued voices.",
+
+ /* create */
+ "CueClef "
+ "CueEndClef "
+ "OctavateEight ",
+
+ /* read */
+ "cueClefGlyph "
+ "cueClefOctavation "
+ "cueClefPosition "
+ "explicitCueClefVisibility "
+ "middleCCuePosition "
+ "clefOctavation ",
+
+ /* write */
+ ""
+ );
struct Break_position
{
/*
- index in system_spec_index_, if VPOS start of book.
+ index into system_specs_, if this is VPOS, the Break_position represents the
+ start of the book.
*/
vsize system_spec_index_;
- /* if system_spec_index_ is a score, then we start at the score_brk_'th possible
- page-break in the score */
+ /* if system_spec_index_ indexes a score, then we start at the score_brk_'th
+ possible page-break in the score */
vsize score_break_;
- /* if system_spec_index_ is a score, this points to the broken column */
+ /* if system_spec_index_ indexes a score, this points to the broken column */
Grob *col_;
bool score_ender_;
}
else
{
+ /* If systems-per-page and page-count are both specified, we know exactly
+ how many systems should be present. */
+ if (systems_per_page () > 0)
+ {
+ ideal_sys_count = systems_per_page () * page_count;
+
+ if (ideal_sys_count > max_system_count (0, end)
+ || ideal_sys_count < min_system_count (0, end))
+ {
+ warning (_ ("could not satisfy systems-per-page and page-count at the same time, ignoring systems-per-page"));
+ ideal_sys_count = best.system_count ();
+ min_sys_count = page_count;
+ }
+ else
+ {
+ set_current_breakpoints (0, end, ideal_sys_count);
+ min_sys_count = max_sys_count = ideal_sys_count;
+ ideal_line_division = best_division = current_configuration (0);
+ }
+ }
+ else
+ min_sys_count = page_count;
+
/* TODO: the following line will spit out programming errors if the
ideal line spacing doesn't fit on PAGE_COUNT pages */
- /* TODO: the interaction between systems_per_page and page_count needs to
- be considered. */
best = space_systems_on_n_pages (0, page_count, first_page_num);
- min_sys_count = page_count;
}
if (page_count == 1)
/* try a smaller number of systems than the ideal number for line breaking */
Line_division bound = ideal_line_division;
- for (vsize sys_count = ideal_sys_count; --sys_count >= min_sys_count;)
+ for (vsize sys_count = ideal_sys_count + 1; --sys_count >= min_sys_count;)
{
Page_spacing_result best_for_this_sys_count;
set_current_breakpoints (0, end, sys_count, Line_division (), bound);
ret = scm_cons (page, ret);
--page_num;
}
+
+ // By reversing the table, we ensure that duplicated labels (eg. those
+ // straddling a page turn) will appear in the table with their last
+ // occurence first.
+ label_page_table = scm_reverse_x (label_page_table, SCM_EOL);
book_->top_paper ()->set_variable (ly_symbol2scm ("label-page-table"), label_page_table);
return ret;
}
return ret;
}
+// Returns the minimum number of _non-title_ lines.
vsize
Page_breaking::min_system_count (vsize start, vsize end)
{
return ret;
}
+// Returns the maximum number of _non-title_ lines.
vsize
Page_breaking::max_system_count (vsize start, vsize end)
{
return ret;
}
+// The numbers returned by this function represent either
+// the maximum or minimum number of _non-title_ lines
+// per chunk.
Page_breaking::Line_division
Page_breaking::system_count_bounds (vector<Break_position> const &chunks,
bool min)
assert (chunks.size () >= 2);
Line_division ret;
- ret.resize (chunks.size () - 1, 1);
+ ret.resize (chunks.size () - 1, 0);
for (vsize i = 0; i + 1 < chunks.size (); i++)
{
div.push_back (line_breaking_[sys].best_solution (start, end).size ());
}
else
- div.push_back (1);
+ div.push_back (0);
system_count_ += div.back ();
}
}
else
{
- assert (div[i] == 1);
+ assert (div[i] == 0);
uncompressed_line_details_.push_back (system_specs_[sys].prob_
? Line_details (system_specs_[sys].prob_, book_->paper_)
: Line_details ());
int real_min = max ((int) min_sys[my_index], (int) system_count - others_max);
int real_max = min ((int) max_sys[my_index], (int) system_count - others_min);
- if (real_min > real_max || real_min <= 0)
+ if (real_min > real_max || real_min < 0)
{
/* this should never happen within a recursive call. If it happens
at all, it means that we were called with an unsolvable problem
Context *c = unsmob_context (context);
int clef_pos = robust_scm2int (c->get_property ("middleCClefPosition"), 0);
int offset = robust_scm2int (c->get_property ("middleCOffset"), 0);
+ /* middleCCuePosition overrides the clef! */
+ SCM cue_pos = c->get_property ("middleCCuePosition");
+ if (scm_is_number (cue_pos))
+ clef_pos = robust_scm2int (cue_pos, 0);
c->set_property (ly_symbol2scm ("middleCPosition"), scm_from_int (clef_pos + offset));
return SCM_UNDEFINED;
% Some common timing tweaks.
% Sets the autobeamer to span quarter notes only. Use for fast music.
-% TODO: Needs more tweaking
quarterBeaming = {
\set Staff.beamExceptions = #'()
}
-
halfBeaming = {
\set Staff.beamExceptions = #'((end . (((1 . 8) . (4 4))
((1 . 12) . (3 3)))))
\time 2/2
\halfBeaming
}
-
% 4/4 marches are written with numerical time signature and with quarter beaming.
marchTime = {
\time 4/4
- \override Staff.TimeSignature #'style = #'()
+ \numericTimeSignature
\quarterBeaming
}
+% Add appropriate tweaks needed for piping grace notes to look great.
+stemspace = #(define-music-function (parser location extent) (pair?) #{
+ \once \override Staff.Stem #'X-extent = #$extent
+#})
+pgrace = #(define-music-function (parser location notes) (ly:music?) #{
+ \override Score.GraceSpacing #'spacing-increment = #0
+ \override Score.Stem #'beamlet-max-length-proportion = #'(0.5 . 0.5)
+ \grace $notes
+ \revert Score.Stem #'beamlet-default-length
+#})
+
% Single grace notes
-grG = { \grace { \small G32 } }
-gra = { \grace { \small a32 } }
-grb = { \grace { \small b32 } }
-grc = { \grace { \small c32 } }
-grd = { \grace { \small d32 } }
-gre = { \grace { \small e32 } }
-grf = { \grace { \small f32 } }
-grg = { \grace { \small g32 } }
-grA = { \grace { \small A32 } }
+grG = { \pgrace { \small G32 } }
+gra = { \pgrace { \small a32 } }
+grb = { \pgrace { \small b32 } }
+grc = { \pgrace { \small c32 } }
+grd = { \pgrace { \small d32 } }
+gre = { \pgrace { \small e32 } }
+grf = { \pgrace { \small f32 } }
+grg = { \pgrace { \small g32 } }
+grA = { \pgrace { \small A32 } }
% Doublings
-dblG = { \grace { \small g32[ G d] } }
-dbla = { \grace { \small g32[ a d] } }
-dblb = { \grace { \small g32[ b d] } }
-dblc = { \grace { \small g32[ c d] } }
-dbld = { \grace { \small g32[ d e] } }
-dble = { \grace { \small g32[ e f] } }
-dblf = { \grace { \small g32[ f g] } }
+dblG = { \pgrace { \small g32[ G d] } }
+dbla = { \pgrace { \small g32[ a d] } }
+dblb = { \pgrace { \small g32[ b d] } }
+dblc = { \pgrace { \small g32[ c d] } }
+dbld = { \pgrace { \small g32[ d e] } }
+dble = { \pgrace { \small g32[ e f] } }
+dblf = { \pgrace { \small g32[ f g] } }
% These are the same as the half doublings.
-dblg = { \grace { \small g32[ f] } }
-dblA = { \grace { \small A32[ g] } }
+dblg = { \pgrace { \small g32[ f] } }
+dblA = { \pgrace { \small A32[ g] } }
% Half doublings
-hdblG = { \grace { \small G32[ d] } }
-hdbla = { \grace { \small a32[ d] } }
-hdblb = { \grace { \small b32[ d] } }
-hdblc = { \grace { \small c32[ d] } }
-hdbld = { \grace { \small d32[ e] } }
-hdble = { \grace { \small e32[ f] } }
-hdblf = { \grace { \small f32[ g] } }
-hdblg = { \grace { \small g32[ f] } }
-hdblA = { \grace { \small A32[ g] } }
+hdblG = { \pgrace { \small G32[ d] } }
+hdbla = { \pgrace { \small a32[ d] } }
+hdblb = { \pgrace { \small b32[ d] } }
+hdblc = { \pgrace { \small c32[ d] } }
+hdbld = { \pgrace { \small d32[ e] } }
+hdble = { \pgrace { \small e32[ f] } }
+hdblf = { \pgrace { \small f32[ g] } }
+hdblg = { \pgrace { \small g32[ f] } }
+hdblA = { \pgrace { \small A32[ g] } }
% Thumb doublings
-tdblG = { \grace { \small A32[ G d] } }
-tdbla = { \grace { \small A32[ a d] } }
-tdblb = { \grace { \small A32[ b d] } }
-tdblc = { \grace { \small A32[ c d] } }
-tdbld = { \grace { \small A32[ d e] } }
-tdble = { \grace { \small A32[ e f] } }
-tdblf = { \grace { \small A32[ f g] } }
-tdblg = { \grace { \small A32[ g f] } }
+tdblG = { \pgrace { \small A32[ G d] } }
+tdbla = { \pgrace { \small A32[ a d] } }
+tdblb = { \pgrace { \small A32[ b d] } }
+tdblc = { \pgrace { \small A32[ c d] } }
+tdbld = { \pgrace { \small A32[ d e] } }
+tdble = { \pgrace { \small A32[ e f] } }
+tdblf = { \pgrace { \small A32[ f g] } }
+tdblg = { \pgrace { \small A32[ g f] } }
% Shakes
% A few of these can't really be played and are here only for consistency.
-shakea = { \grace { \small g32[ a d a G] } }
-shakeb = { \grace { \small g32[ b d b G] } }
-shakec = { \grace { \small g32[ c d c G] } }
-shaked = { \grace { \small g32[ d e d G] } }
-shakee = { \grace { \small g32[ e f e a] } }
-shakef = { \grace { \small g32[ f g f a] } }
-shakeg = { \grace { \small A32[ f g a] } }
-shakeA = { \grace { \small A32[ g A a] } }
+shakea = { \pgrace { \small g32[ a e a G] } }
+shakeb = { \pgrace { \small g32[ b e b G] } }
+shakec = { \pgrace { \small g32[ c e c G] } }
+shaked = { \pgrace { \small g32[ d e d G] } }
+shakee = { \pgrace { \small g32[ e f e a] } }
+shakef = { \pgrace { \small g32[ f g f a] } }
+shakeg = { \pgrace { \small A32[ f g a] } }
+shakeA = { \pgrace { \small A32[ g A a] } }
% Half shakes
-hshakea = { \grace { \small a32[ d a G] } }
-hshakeb = { \grace { \small b32[ d b G] } }
-hshakec = { \grace { \small c32[ d c G] } }
-hshaked = { \grace { \small d32[ e d G] } }
-hshakee = { \grace { \small e32[ f e a] } }
-hshakef = { \grace { \small f32[ g f a] } }
-hshakeg = { \grace { \small g32[ f g a] } }
-hshakeA = { \grace { \small A32[ g A a] } }
+hshakea = { \pgrace { \small a32[ d a G] } }
+hshakeb = { \pgrace { \small b32[ d b G] } }
+hshakec = { \pgrace { \small c32[ d c G] } }
+hshaked = { \pgrace { \small d32[ e d G] } }
+hshakee = { \pgrace { \small e32[ f e a] } }
+hshakef = { \pgrace { \small f32[ g f a] } }
+hshakeg = { \pgrace { \small g32[ f g a] } }
+hshakeA = { \pgrace { \small A32[ g A a] } }
% Thumb shakes
-tshakea = { \grace { \small A32[ a d a G] } }
-tshakeb = { \grace { \small A32[ b d b G] } }
-tshakec = { \grace { \small A32[ c d c G] } }
-tshaked = { \grace { \small A32[ d e d G] } }
-tshakee = { \grace { \small A32[ e f e a] } }
-tshakef = { \grace { \small A32[ f g f a] } }
-tshakeg = { \grace { \small A32[ f g a] } }
-tshakeA = { \grace { \small A32[ g A a] } }
+tshakea = { \pgrace { \small A32[ a d a G] } }
+tshakeb = { \pgrace { \small A32[ b d b G] } }
+tshakec = { \pgrace { \small A32[ c d c G] } }
+tshaked = { \pgrace { \small A32[ d e d G] } }
+tshakee = { \pgrace { \small A32[ e f e a] } }
+tshakef = { \pgrace { \small A32[ f g f a] } }
+tshakeg = { \pgrace { \small A32[ f g a] } }
+tshakeA = { \pgrace { \small A32[ g A a] } }
% Slurs
% A few of these can't really be played and are here only for consistency.
-slura = { \grace { \small g32[ a G] } }
-slurb = { \grace { \small g32[ b G] } }
-slurc = { \grace { \small g32[ c G] } }
-slurd = { \grace { \small g32[ d G] } }
-slure = { \grace { \small g32[ e a] } }
-slurf = { \grace { \small g32[ f a] } }
-slurg = { \grace { \small A32[ f a] } }
-slurA = { \grace { \small f32[ a] } }
+slura = { \pgrace { \small g32[ a G] } }
+slurb = { \pgrace { \small g32[ b G] } }
+slurc = { \pgrace { \small g32[ c G] } }
+slurd = { \pgrace { \small g32[ d G] } }
+wslurd = { \pgrace { \small g32[ d c] } }
+slure = { \pgrace { \small g32[ e a] } }
+slurf = { \pgrace { \small g32[ f a] } }
+slurg = { \pgrace { \small A32[ f a] } }
+slurA = { \pgrace { \small f32[ a] } }
% Half slurs
-hslura = { \grace { \small a32[ G] } }
-hslurb = { \grace { \small b32[ G] } }
-hslurc = { \grace { \small c32[ G] } }
-hslurd = { \grace { \small d32[ G] } }
-hslure = { \grace { \small e32[ a] } }
-hslurf = { \grace { \small f32[ a] } }
-hslurg = { \grace { \small g32[ a] } }
-hslurA = { \grace { \small A32[ a] } }
+hslura = { \pgrace { \small a32[ G] } }
+hslurb = { \pgrace { \small b32[ G] } }
+hslurc = { \pgrace { \small c32[ G] } }
+hslurd = { \pgrace { \small d32[ G] } }
+whslurd = { \pgrace { \small d32[ c] } }
+hslure = { \pgrace { \small e32[ a] } }
+hslurf = { \pgrace { \small f32[ a] } }
+hslurg = { \pgrace { \small g32[ a] } }
+hslurA = { \pgrace { \small A32[ a] } }
% Thumb slurs
-tslura = { \grace { \small A32[ a G] } }
-tslurb = { \grace { \small A32[ b G] } }
-tslurc = { \grace { \small A32[ c G] } }
-tslurd = { \grace { \small A32[ d a] } }
-tslure = { \grace { \small A32[ e a] } }
-tslurf = { \grace { \small A32[ f a] } }
-tslurg = { \grace { \small A32[ f a] } }
-tslurA = { \grace { \small f32[ a] } }
+tslura = { \pgrace { \small A32[ a G] } }
+tslurb = { \pgrace { \small A32[ b G] } }
+tslurc = { \pgrace { \small A32[ c G] } }
+tslurd = { \pgrace { \small A32[ d G] } }
+wtslurd = { \pgrace { \small A32[ d c] } }
+tslure = { \pgrace { \small A32[ e a] } }
+tslurf = { \pgrace { \small A32[ f a] } }
+tslurg = { \pgrace { \small A32[ f a] } }
+tslurA = { \pgrace { \small f32[ a] } }
% Catches
-catcha = { \grace { \small a32[ G d G] } }
-catchb = { \grace { \small b32[ G d G] } }
-catchc = { \grace { \small c32[ G d G] } }
-catchd = { \grace { \small d32[ G b G] } }
-catche = { \grace { \small e32[ G d G] } }
+catcha = { \pgrace { \small a32[ G d G] } }
+catchb = { \pgrace { \small b32[ G d G] } }
+catchc = { \pgrace { \small c32[ G d G] } }
+catchd = { \pgrace { \small d32[ G b G] } }
+catche = { \pgrace { \small e32[ G d G] } }
% G-grace catches
-gcatcha = { \grace { \small g32[ a G d G] } }
-gcatchb = { \grace { \small g32[ b G d G] } }
-gcatchc = { \grace { \small g32[ c G d G] } }
-gcatchd = { \grace { \small g32[ d G b G] } }
-gcatche = { \grace { \small g32[ e G d G] } }
+gcatcha = { \pgrace { \small g32[ a G d G] } }
+gcatchb = { \pgrace { \small g32[ b G d G] } }
+gcatchc = { \pgrace { \small g32[ c G d G] } }
+gcatchd = { \pgrace { \small g32[ d G b G] } }
+gcatche = { \pgrace { \small g32[ e G d G] } }
% Thumb catches
-tcatcha = { \grace { \small A32[ a G d G] } }
-tcatchb = { \grace { \small A32[ b G d G] } }
-tcatchc = { \grace { \small A32[ c G d G] } }
-tcatchd = { \grace { \small A32[ d G b G] } }
-tcatche = { \grace { \small A32[ e G d G] } }
+tcatcha = { \pgrace { \small A32[ a G d G] } }
+tcatchb = { \pgrace { \small A32[ b G d G] } }
+tcatchc = { \pgrace { \small A32[ c G d G] } }
+tcatchd = { \pgrace { \small A32[ d G b G] } }
+tcatche = { \pgrace { \small A32[ e G d G] } }
+
+% Triple strikes (BMW has them all, but I've never seen any but the A one used, so ...)
+tripleA = { \pgrace { \small A32[ g A g A g] } }
% Throws
-thrwd = { \grace { \small G32[ d c] } }
-Gthrwd = { \grace { \small d32[ c] } }
-gripthrwd = { \grace { \small G32[ d G c] } }
-thrwf = { \grace { \small f32[ e g e] } }
+thrwd = { \pgrace { \small G32[ d c] } }
+Gthrwd = { \pgrace { \small d32[ c] } }
+gripthrwd = { \pgrace { \small G32[ d G c] } }
+thrwe = { \pgrace { \small e32[ a f a] } }
+wthrwe = { \pgrace { \small e32[ d f d] } }
+thrwf = { \pgrace { \small f32[ e g e] } }
% Birls
-birl = { \grace { \small a32[ G a G] } }
-wbirl = { \grace { \small G32[ a G] } }
-gbirl = { \grace { \small g32[ a G a G] } }
-dbirl = { \grace { \small d32[ a G a G] } }
+birl = { \pgrace { \small a32[ G a G] } }
+wbirl = { \pgrace { \small G32[ a G] } }
+gbirl = { \pgrace { \small g32[ a G a G] } }
+dbirl = { \pgrace { \small d32[ a G a G] } }
% Grips
-grip = { \grace { \small G32[ d G] } }
-dgrip = { \grace { \small G32[ b G] } }
-egrip = { \grace { \small G32[ e G] } }
+grip = { \pgrace { \small G32[ d G] } }
+dgrip = { \pgrace { \small G32[ b G] } }
+egrip = { \pgrace { \small G32[ e G] } }
% Taorluaths
-taor = { \grace { \small G32[ d G e] } }
-dtaor = { \grace { \small G32[ b G e] } }
-Gtaor = { \grace { \small d32[ G e] } }
-taoramb = { \grace { \small G32[ d G b e] } }
-taoramc = { \grace { \small G32[ d G c e] } }
-taoramd = { \grace { \small G32[ d G c d e] } }
+taor = { \pgrace { \small G32[ d G e] } }
+taorjmd = { \pgrace { \small G32[ d a e] } }
+taorold = { \pgrace { \small G32[ d G a e] } }
+dtaor = { \pgrace { \small G32[ b G e] } }
+Gtaor = { \pgrace { \small d32[ G e] } }
+taoramb = { \pgrace { \small G32[ d G b e] } }
+taoramc = { \pgrace { \small G32[ d G c e] } }
+taoramd = { \pgrace { \small G32[ d G c d e] } }
% Crunluaths
-crun = { \grace { \small G32[ d G e a f a ] } }
-dcrun = { \grace { \small G32[ b G e a f a ] } }
-Gcrun = { \grace { \small d32[ G e G f a ] } }
-crunamb = { \grace { \small G32[ d G b e b f b ] } }
-crunamc = { \grace { \small G32[ d G c e c f c ] } }
-crunamd = { \grace { \small G32[ d G c d e d f d ] } }
+crun = { \pgrace { \small G32[ d G e a f a ] } }
+dcrun = { \pgrace { \small G32[ b G e a f a ] } }
+Gcrun = { \pgrace { \small d32[ G e G f a ] } }
+crunamb = { \pgrace { \small G32[ d G b e b f b ] } }
+crunamc = { \pgrace { \small G32[ d G c e c f c ] } }
+crunamd = { \pgrace { \small G32[ d G c d e d f d ] } }
+crunambfosg = { \pgrace { \small e32[ b f b ] } }
+crunamcfosg = { \pgrace { \small e32[ c f c ] } }
+crunamdfosg = { \pgrace { \small e32[ d f d ] } }
% Special piobaireachd notations
-grGcad = { \grace { \small G16 } }
-gracad = { \grace { \small a16 } }
-cad = { \grace { \small g32[ e8 d32] } }
-hcad = { \grace { \small g32[ e8] } }
-dre = { \grace { \small e32[ a f a] } }
+grGcad = { \pgrace { \small G16 } }
+gracad = { \pgrace { \small a16 } }
+cad = { \pgrace { \small \stemspace #'(0 . 0.5) g32[ e8 d32] } }
+hcad = { \pgrace { \small \stemspace #'(0 . 0.5) g32[ e8] } }
+tcad = { \pgrace { \small e8[ d32] } }
+thcad = { \pgrace { \small e8 } }
+% This is the same as thrwe
+dre = { \pgrace { \small e32[ a f a] } }
% This is the same as thrwf
-dare = { \grace { \small f32[ e g e] } }
-bari = { \grace { \small e32[ G f G] } }
-dari = { \grace { \small f32[ e g e f e] } }
-pthrwd = { \grace { \small G16[ d32 c] } }
-darodo = { \grace { \small G32[ d G c G] } }
-Gdarodo = { \grace { \small d32[ G c G] } }
+dare = { \pgrace { \small f32[ e g e] } }
+bari = { \pgrace { \small e32[ G f G] } }
+dari = { \pgrace { \small f32[ e g e f e] } }
+pthrwd = { \pgrace { \small G16[ d32 c] } }
+darodo = { \pgrace { \small G32[ d G c G] } }
+Gdarodo = { \pgrace { \small d32[ G c G] } }
+pdarodo = { \pgrace { \small G16[ d32 G c G16] } }
+pGdarodo = { \pgrace { \small d32[ G c G16] } }
+% Weird stuff from Joseph MacDonald’s book
+fifteenthcutting = { \pgrace { \small G32[ d a e a f a e a d] } }
+fifteenthcuttingG = { \pgrace { \small G32[ d a e G f G e G d] } }
+Gfifteenthcutting = { \pgrace { \small d32[ a e a f a e a d] } }
+GfifteenthcuttingG = { \pgrace { \small d32[ a e G f G e G d] } }
+seventeenthcutting = { \pgrace { \small G32[ d a e a f a e a d a c] } }
+seventeenthcuttingG = { \pgrace { \small G32[ d a e G f G e G d G c] } }
+Gseventeenthcutting = { \pgrace { \small d32[ a e a f a e a d a c] } }
+GseventeenthcuttingG = { \pgrace { \small d32[ a e G f G e G d G c] } }
+barluadh = { \pgrace { \small G32[ d a e a f a e a d a c a b a e a f a] } }
+barluadhG = { \pgrace { \small G32[ d a e G f G e G d G c G b G e G f G] } }
+Gbarluadh = { \pgrace { \small d32[ a e a f a e a d a c a b a e a f a] } }
+GbarluadhG = { \pgrace { \small d32[ a e G f G e G d G c G b G e G f G] } }
% Non-gracenote piobaireachd markup.
trebling = \markup {
- \override #'(baseline-skip . 0.3)
+ \override #'(baseline-skip . 0.4)
\column {
\musicglyph #"scripts.tenuto"
\musicglyph #"scripts.tenuto"
}
% Abbreviated notation common in piobaireachd scores.
% TODO: Make sure these are put on a fixed Y-position.
-txtaor = \markup { "T" }
-txcrun = \markup { "C" }
-txtaorcrun = \markup { \column { "T" "C" } }
-% TODO: These characters should be shown upside down.
-% Use a postscript markup command for this.
-txtaoram = \markup { "T" }
-txcrunam = \markup { "C" }
-txtaorcrunam = \markup { \column { "T" "C" } }
+txtaor = \markup { \center-align "T" }
+txcrun = \markup { \center-align "C" }
+txtaorcrun = \markup {
+ \override #'(baseline-skip . 1.8)
+ \column {
+ \center-align "T"
+ \center-align "C"
+ }
+}
+% Turn these upside down, as in the Kilberry book.
+txtaoram = \markup { \center-align \scale #'(-1 . -1) "T" }
+txcrunam = \markup { \center-align \scale #'(-1 . -1) "C" }
+txtaorcrunam = \markup {
+ \override #'(baseline-skip . 1.8)
+ \column {
+ \center-align \scale #'(-1 . -1) "T"
+ \center-align \scale #'(-1 . -1) "C"
+ }
+}
laissezVibrer = #(make-music 'LaissezVibrerEvent)
repeatTie = #(make-music 'RepeatTieEvent)
+\include "dynamic-scripts-init.ly"
+\include "spanners-init.ly"
+
+%% MAKE-HASH-TABLE in GUILE 1.6 takes mandatory size parameter.
+#(define musicQuotes (make-hash-table 29))
+
+#(define toplevel-book-handler print-book-with-defaults)
+#(define toplevel-bookpart-handler collect-bookpart-for-book)
+#(define toplevel-music-handler collect-music-for-book)
+#(define toplevel-score-handler collect-scores-for-book)
+#(define toplevel-text-handler collect-scores-for-book)
+
+#(define book-bookpart-handler ly:book-add-bookpart!)
+#(define book-music-handler collect-book-music-for-book)
+#(define book-score-handler ly:book-add-score!)
+#(define book-text-handler ly:book-add-score!)
+
+#(define bookpart-score-handler ly:book-add-score!)
+#(define bookpart-text-handler ly:book-add-score!)
+#(define bookpart-music-handler collect-book-music-for-book)
+
+\include "predefined-fretboards-init.ly"
+\include "string-tunings-init.ly"
+\include "property-init.ly"
+
\include "grace-init.ly"
\include "midi-init.ly"
\include "paper-defaults-init.ly"
}
#(set-default-paper-size (ly:get-option 'paper-size))
-
partCombineListener = \layout {
\context {
\Score
}
}
-\include "dynamic-scripts-init.ly"
-\include "spanners-init.ly"
-\include "property-init.ly"
-
setDefaultDurationToQuarter = { c4 }
-%% MAKE-HASH-TABLE in GUILE 1.6 takes mandatory size parameter.
-#(define musicQuotes (make-hash-table 29))
-#(define toplevel-book-handler print-book-with-defaults)
-#(define toplevel-bookpart-handler collect-bookpart-for-book)
-#(define toplevel-music-handler collect-music-for-book)
-#(define toplevel-score-handler collect-scores-for-book)
-#(define toplevel-text-handler collect-scores-for-book)
-
-#(define book-bookpart-handler ly:book-add-bookpart!)
-#(define book-music-handler collect-book-music-for-book)
-#(define book-score-handler ly:book-add-score!)
-#(define book-text-handler ly:book-add-score!)
-#(define bookpart-score-handler ly:book-add-score!)
-#(define bookpart-text-handler ly:book-add-score!)
-#(define bookpart-music-handler collect-book-music-for-book)
-
-\include "predefined-fretboards-init.ly"
\consists "Figured_bass_engraver"
\consists "Figured_bass_position_engraver"
\consists "Script_row_engraver"
+ \consists "Cue_clef_engraver"
localKeySignature = #'()
createSpacing = ##t
automaticBars = ##t
explicitClefVisibility = #all-visible
+ explicitCueClefVisibility = #end-of-line-invisible
explicitKeySignatureVisibility = #all-visible
implicitTimeSignatureVisibility = #end-of-line-invisible
(_i "Set the current clef to @var{type}.")
(make-clef-set type))
+cueClef =
+#(define-music-function (parser location type) (string?)
+ (_i "Set the current cue clef to @var{type}.")
+ (make-cue-clef-set type))
+cueClefUnset =
+#(define-music-function (parser location) ()
+ (_i "Unset the current cue clef.")
+ (make-cue-clef-unset))
+
cueDuring =
#(define-music-function
(parser location what dir main-music) (string? ly:dir? ly:music?)
'quoted-context-type 'Voice
'quoted-context-id "cue"
'quoted-music-name what
- 'quoted-voice-direction dir
- 'origin location))
+ 'quoted-voice-direction dir))
+
+cueDuringWithClef =
+#(define-music-function
+ (parser location what dir clef main-music) (string? ly:dir? string? ly:music?)
+ (_i "Insert contents of quote @var{what} corresponding to @var{main-music},
+in a CueVoice oriented by @var{dir}.")
+ (make-music 'QuoteMusic
+ 'element main-music
+ 'quoted-context-type 'Voice
+ 'quoted-context-id "cue"
+ 'quoted-music-name what
+ 'quoted-music-clef clef
+ 'quoted-voice-direction dir))
--- /dev/null
+%%%% This file is part of LilyPond, the GNU music typesetter.
+%%%%
+%%%% Copyright (C) 2010 Carl D. Sorensen <c_sorensen@byu.edu>
+%%%%
+%%%% LilyPond is free software: you can redistribute it and/or modify
+%%%% it under the terms of the GNU General Public License as published by
+%%%% the Free Software Foundation, either version 3 of the License, or
+%%%% (at your option) any later version.
+%%%%
+%%%% LilyPond is distributed in the hope that it will be useful,
+%%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%%%% GNU General Public License for more details.
+%%%%
+%%%% You should have received a copy of the GNU General Public License
+%%%% along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
+
+\version "2.13.46"
+
+%% A stringTuning is a list of pitches ordered by string number
+%% from 1 to N.
+%% Here we define a number of default string tunings.
+
+%% A scheme function for converting a chord to a string tuning
+#(define (chord->tuning parser tuning-symbol chord)
+ (let* ((ev-chord (car (extract-named-music chord 'EventChord)))
+ (pitches (event-chord-pitches ev-chord)))
+ (ly:parser-define! parser tuning-symbol (reverse pitches))))
+
+%% A music function for converting a chord to a string tuning.
+%% The music argument for \makeStringTuning must be a chord in
+%% absolute mode ordered from the highest string number to the
+%% lowest string number
+
+makeStringTuning =
+#(define-music-function (parser location tuning chord)
+ (symbol? ly:music?)
+ (_ "Convert @{chord} to a string tuning stored in @code{tuning}.
+@{chord} must be in absolute pitches and should have the highest
+string number (generally the lowest pitch) first. @code{tuning}
+should be a string that will be converted to a symbol.")
+ (begin
+ (chord->tuning parser tuning chord)
+ (make-music 'SequentialMusic 'void #t)))
+
+
+%% A music function for converting a chord to a string tuning
+%% and setting the current context stringTunings property to
+%% the newly-defined-string tuning.
+
+contextStringTuning =
+#(define-music-function (parser location tuning chord)
+ (symbol? ly:music?)
+ (_ "Convert @{chord} to a string tuning stored in @code{tuning},
+and set @code{stringTunings} of the current context to the
+newly-defined tuning.
+@{chord} must be in absolute pitches and should have the highest
+string number (generally the lowest pitch) first. @code{tuning}
+should be a string that will be converted to a symbol.")
+ (begin
+ (chord->tuning parser tuning chord)
+ #{
+ \set TabStaff.stringTunings = $(ly:parser-lookup parser tuning)
+ \set FretBoards.stringTunings = $(ly:parser-lookup parser tuning)
+ #}))
+
+%% A music function for converting an alist to string-tunings
+makeDefaultStringTunings =
+#(define-music-function (parser location default-tuning-alist)
+ (cheap-list?)
+ (_ "Define default string tunings for each element of
+@code{default-tuning-alist}.")
+ (begin
+ (for-each (lambda (alist-entry)
+ (chord->tuning parser (car alist-entry) (cdr alist-entry)))
+ default-tuning-alist)
+ (make-music 'SequentialMusic 'void #t)))
+
+% tuning definitions require default pitchnames
+\languageSaveAndChange #default-language
+
+%% Define alist of default string tunings
+defaultStringTunings =
+#`(
+ ;; guitar tunings
+ (guitar-tuning . ,#{<e, a, d g b e'>#})
+ (guitar-seven-string-tuning . ,#{<b,, e, a, d g b e'>#})
+ (guitar-drop-d-tuning . ,#{<d, a, d g b e'>#})
+ (guitar-open-g-tuning . ,#{<d, g, d g b d'>#})
+ (guitar-open-d-tuning . ,#{<d, a, d fis a d'>#})
+ (guitar-dadgad-tuning . ,#{<d, a, d g a d'>#})
+ (guitar-lute-tuning . ,#{<e, a, d fis b e'>#})
+ (guitar-asus4-tuning . ,#{<e, a, d e a e'>#})
+
+ ;; bass tunings
+ (bass-tuning . ,#{<e,, a,, d, g,>#})
+ (bass-four-string-tuning . ,#{<e,, a,, d, g,>#})
+ (bass-drop-d-tuning . ,#{<d,, a,, d, g,>#})
+ (bass-five-string-tuning . ,#{<b,,, e,, a,, d, g,>#})
+ (bass-six-string-tuning . ,#{<b,,, e,, a,, d, g, c>#})
+
+ ;; mandolin tunings
+ (mandolin-tuning . ,#{<g d' a' e''>#})
+
+ ;; tunings for 5-string banjo
+ (banjo-open-g-tuning . ,#{<g' d g b d'>#})
+ (banjo-c-tuning . ,#{<g' c g b d'>#})
+ (banjo-modal-tuning . ,#{<g' d g c' d'>#})
+ (banjo-open-d-tuning . ,#{<a' d fis a d'>#})
+ (banjo-open-dm-tuning . ,#{<a' d fis a d'>#})
+
+ ;; ukulele tunings
+ (ukulele-tuning . ,#{<g' c' e' a'>#})
+ (ukulele-d-tuning . ,#{<a' d' fis' b'>#})
+ (tenor-ukulele-tuning . ,#{<a' e' c' g>#})
+ (baritone-ukulele-tuning . ,#{<e' b g d>#})
+
+ ;; orchestral strings
+ (violin-tuning . ,#{<g d' a' e''>#})
+ (viola-tuning . ,#{<c g d' a'>#})
+ (cello-tuning . ,#{<c, g, d a>#})
+ (double-bass-tuning . ,#{<e,, a,, d, g,>#})
+ )
+
+%% convert 5-string banjo tuning to 4-string by removing the 5th string
+#(define-public (four-string-banjo tuning)
+ (reverse (cdr (reverse tuning))))
+
+%% make all of the default string tunings
+
+\makeDefaultStringTunings #defaultStringTunings
+
+% restore the language
+\languageRestore
+
return str
@rule ((2, 13, 44),
- _ ("Remove context from overrideTimeSignatureSettings and revertTimeSignatureSettings."))
+ _ ("Remove context from overrideTimeSignatureSettings and revertTimeSignatureSettings.\n"))
+
def conv(str):
str = re.sub (r"\\(override|revert)TimeSignatureSettings(\s+[^#]*)(#[^#]*)#", r"\\\1TimeSignatureSettings\2#", str)
return str
+@rule ((2, 13, 46),
+ _ ("Change stringTunings from a list of semitones to a list of pitches.\n"\
+ "Change tenor and baritone ukulele names in string tunings."))
+
+def conv(str):
+ def semitones2pitch(semitones):
+ steps = [0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6]
+ alterations = ["NATURAL", "SHARP", "NATURAL", "SHARP", "NATURAL", "NATURAL", "SHARP", "NATURAL", "SHARP", "NATURAL", "SHARP", "NATURAL"]
+ octave = 0
+ while semitones > 11:
+ octave += 1
+ semitones -=12
+ while semitones < 0:
+ octave -= 1
+ semitones += 12
+ pitchArgs = "%d %d %s" % (octave, steps[semitones], alterations[semitones])
+ return pitchArgs
+
+ def convert_tones (semitone_list):
+ tones = semitone_list.split ()
+ res = ""
+ for tone in tones:
+ args = semitones2pitch(int(tone))
+ res += ",(ly:make-pitch " + args + ") "
+ return res
+
+ def new_tunings (matchobj):
+ return "stringTunings = #`(" + convert_tones(matchobj.group(1)) + ")"
+ str = re.sub (r"stringTunings\s*=\s*#'\(([\d\s-]*)\)", \
+ new_tunings , str)
+
+ str = re.sub (r"ukulele-(tenor|baritone)-tuning", r"\1-ukulele-tuning", str)
+ return str
# Guidelines to write rules (please keep this at the end of this file)
#
if self.string_tunings or self.tablature_format:
printer.dump ("\\with {")
if self.string_tunings:
- printer.dump ("stringTunings = #'(")
+ printer.dump ("stringTunings = #`(")
for i in self.string_tunings:
- printer.dump ("%s" % i.semitones ())
+ printer.dump (",%s" % i.lisp_expression ())
printer.dump (")")
if self.tablature_format:
printer.dump ("tablatureFormat = #%s" % self.tablature_format)
a hairpin crescendo is used.")
(crescendoText ,markup? "The text to print at start of non-hairpin
crescendo, i.e., @samp{cresc.}.")
+ (cueClefGlyph ,string? "Name of the symbol within the music font.")
+ (cueClefOctavation ,integer? "Add this much extra octavation.
+Values of 7 and -7 are common.")
+ (cueClefPosition ,number? "Where should the center of the clef
+symbol go, measured in half staff spaces from the center of the
+staff.")
(currentBarNumber ,integer? "Contains the current barnumber.
This property is incremented at every bar line.")
(explicitClefVisibility ,vector? "@samp{break-visibility}
function for clef changes.")
+ (explicitCueClefVisibility ,vector? "@samp{break-visibility}
+function for cue clef changes.")
(explicitKeySignatureVisibility ,vector? "@samp{break-visibility}
function for explicit key changes. @samp{\\override} of the
@code{break-visibility} property will set the visibility for normal
(middleCClefPosition ,number? "The position of the middle C,
as determined only by the clef. This can be calculated by looking at
@code{clefPosition} and @code{clefGlyph}.")
+ (middleCCuePosition ,number? "The position of the middle C,
+as determined only by the clef of the cue notes. This can be calculated by
+looking at @code{cueClefPosition} and @code{cueClefGlyph}.")
(middleCOffset ,number? "The offset of
middle C from the position given by @code{middleCClefPosition} This
is used for ottava brackets.")
(break-visibility . ,begin-of-line-visible)
(non-musical . #t)
(space-alist . (
+ (cue-end-clef . (extra-space . 0.5))
(clef . (extra-space . 0.5))
+ (cue-clef . (extra-space . 0.5))
(key-signature . (extra-space . 0.0))
(staff-bar . (extra-space . 0.0))
(time-signature . (extra-space . 0.0))
(break-align-orders . ;; end of line
#((
left-edge
+ cue-end-clef
ambitus
breathing-sign
clef
+ cue-clef
staff-bar
key-cancellation
key-signature
;; unbroken
(
left-edge
+ cue-end-clef
ambitus
breathing-sign
clef
+ cue-clef
staff-bar
key-cancellation
key-signature
key-signature
staff-bar
time-signature
+ cue-clef
custos)))
(non-musical . #t)
(positioning-done . ,ly:break-alignment-interface::calc-positioning-done)
(time-signature . (minimum-space . 1.5))
(staff-bar . (minimum-space . 1.5))
(clef . (minimum-space . 2.0))
+ (cue-clef . (minimum-space . 2.0))
+ (cue-end-clef . (minimum-space . 2.0))
(first-note . (fixed-space . 1.0)) ;huh?
(right-edge . (extra-space . 0.1))))
(stencil . ,ly:text-interface::print)
(break-visibility . ,begin-of-line-visible)
(glyph-name . ,ly:clef::calc-glyph-name)
(non-musical . #t)
- (space-alist . ((ambitus . (extra-space . 2.0))
+ (space-alist . ((cue-clef . (extra-space . 2.0))
(staff-bar . (extra-space . 0.7))
(key-cancellation . (minimum-space . 3.5))
(key-signature . (minimum-space . 3.5))
text-interface
text-script-interface))))))
+ (CueClef
+ . (
+ (avoid-slur . inside)
+ (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
+ (break-align-symbol . cue-clef)
+ (break-visibility . ,begin-of-line-visible)
+ (font-size . -4)
+ (glyph-name . ,ly:clef::calc-glyph-name)
+ (non-musical . #t)
+ (full-size-change . #t)
+ (space-alist . ((staff-bar . (minimum-space . 2.7))
+ (key-cancellation . (minimum-space . 3.5))
+ (key-signature . (minimum-space . 3.5))
+ (time-signature . (minimum-space . 4.2))
+ (custos . (minimum-space . 0.0))
+ (first-note . (minimum-fixed-space . 3.0))
+ (next-note . (extra-space . 0.5))
+ (right-edge . (extra-space . 0.5))))
+ (stencil . ,ly:clef::print)
+ (extra-spacing-height . (-0.5 . 0.5))
+ (Y-offset . ,ly:staff-symbol-referencer::callback)
+ (meta . ((class . Item)
+ (interfaces . (break-aligned-interface
+ clef-interface
+ font-interface
+ staff-symbol-referencer-interface))))))
+
+ (CueEndClef
+ . (
+ (avoid-slur . inside)
+ (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
+ (break-align-symbol . cue-end-clef)
+ (break-visibility . ,begin-of-line-invisible)
+ (font-size . -4)
+ (glyph-name . ,ly:clef::calc-glyph-name)
+ (non-musical . #t)
+ (full-size-change . #t)
+ (space-alist . ((clef . (extra-space . 0.7))
+ (cue-clef . (extra-space . 0.7))
+ (staff-bar . (extra-space . 0.7))
+ (key-cancellation . (minimum-space . 3.5))
+ (key-signature . (minimum-space . 3.5))
+ (time-signature . (minimum-space . 4.2))
+ (first-note . (minimum-fixed-space . 5.0))
+ (next-note . (extra-space . 0.5))
+ (right-edge . (extra-space . 0.5))))
+ (stencil . ,ly:clef::print)
+ (extra-spacing-height . (-0.5 . 0.5))
+ (Y-offset . ,ly:staff-symbol-referencer::callback)
+ (meta . ((class . Item)
+ (interfaces . (break-aligned-interface
+ clef-interface
+ font-interface
+ staff-symbol-referencer-interface))))))
+
(Custos
. (
(break-align-symbol . custos)
(time-signature . (extra-space . 1.25))
(staff-bar . (extra-space . 0.6))
(key-signature . (extra-space . 0.5))
+ (cue-clef . (extra-space . 0.5))
(right-edge . (extra-space . 0.5))
(first-note . (fixed-space . 2.5))))
(stencil . ,ly:key-signature-interface::print)
(space-alist . (
(time-signature . (extra-space . 1.15))
(staff-bar . (extra-space . 1.1))
+ (cue-clef . (extra-space . 0.5))
(right-edge . (extra-space . 0.5))
(first-note . (fixed-space . 2.5))))
(stencil . ,ly:key-signature-interface::print)
(break-visibility . ,center-invisible)
(non-musical . #t)
(space-alist . (
- (custos . (extra-space . 0.0))
(ambitus . (extra-space . 2.0))
- (time-signature . (extra-space . 1.0))
- (staff-bar . (extra-space . 0.0))
(breathing-sign . (minimum-space . 0.0))
+ (cue-end-clef . (extra-space . 0.8))
(clef . (extra-space . 0.8))
+ (cue-clef . (extra-space . 0.8))
+ (staff-bar . (extra-space . 0.0))
+ (key-cancellation . (extra-space . 0.0))
+ (key-signature . (extra-space . 0.8))
+ (time-signature . (extra-space . 1.0))
+ (custos . (extra-space . 0.0))
(first-note . (fixed-space . 2.0))
(right-edge . (extra-space . 0.0))
- (key-signature . (extra-space . 0.8))
- (key-cancellation . (extra-space . 0.0))
))
(X-extent . (0 . 0))
(meta . ((class . Item)
(OctavateEight
. (
- (break-visibility . ,begin-of-line-visible)
+ (break-visibility . ,inherit-x-parent-visibility)
(font-shape . italic)
(font-size . -4)
(self-alignment-X . ,CENTER)
(extra-spacing-height . (-1.0 . 1.0))
(non-musical . #t)
(space-alist . (
+ (cue-clef . (extra-space . 1.5))
(first-note . (fixed-space . 2.0))
(right-edge . (extra-space . 0.5))
(staff-bar . (minimum-space . 2.0))))
direct quotes to, e.g., @code{Voice}.")
(quoted-events ,vector? "A vector of with @code{moment} and
@code{event-list} entries.")
+ (quoted-music-clef ,string? "The clef of the voice to quote.")
(quoted-music-name ,string? "The name of the voice to quote.")
(quoted-transposition ,ly:pitch? "The pitch used for the quote,
overriding @code{\\transposition}.")
(if (vector? (ly:music-property quote-music 'quoted-events))
(let* ((dir (ly:music-property quote-music 'quoted-voice-direction))
+ (clef (ly:music-property quote-music 'quoted-music-clef))
(main-voice (if (eq? 1 dir) 1 0))
(cue-voice (if (eq? 1 dir) 0 1))
(main-music (ly:music-property quote-music 'element))
;; to have opposite stems.
(begin
(set! return-value
-
;; cannot context-spec Quote-music, since context
;; for the quotes is determined in the iterator.
(make-sequential-music
(list
+ (if (null? clef)
+ (make-music 'Music)
+ (make-cue-clef-set clef))
(context-spec-music (make-voice-props-set cue-voice) 'CueVoice "cue")
quote-music
- (context-spec-music (make-voice-props-revert) 'CueVoice "cue"))))
+ (context-spec-music (make-voice-props-revert) 'CueVoice "cue")
+ (if (null? clef)
+ (make-music 'Music)
+ (make-cue-clef-unset)))))
(set! main-music
(make-sequential-music
(list
(define-public center-visible #(#f #t #f))
(define-public end-of-line-visible #(#t #f #f))
(define-public all-invisible #(#f #f #f))
+(define-public (inherit-x-parent-visibility grob)
+ (let ((parent (ly:grob-parent grob X)))
+ (ly:grob-property parent 'break-visibility all-invisible)))
+
(define-public spanbar-begin-of-line-invisible #(#t #f #f))
(sort (map car supported-clefs) string<?)))
(make-music 'Music)))))
+(define-public (make-cue-clef-set clef-name)
+ "Generate the clef setting commands for a cue clef with name CLEF-NAME."
+ (define (make-prop-set props)
+ (let ((m (make-music 'PropertySet)))
+ (map (lambda (x) (set! (ly:music-property m (car x)) (cdr x))) props)
+ m))
+ (let ((e '())
+ (c0 0)
+ (oct 0)
+ (match (string-match "^(.*)([_^])([1-9][0-9]*)$" clef-name)))
+ (if match
+ (begin
+ (set! clef-name (match:substring match 1))
+ (set! oct
+ (* (if (equal? (match:substring match 2) "^") -1 1)
+ (- (string->number (match:substring match 3)) 1)))))
+ (set! e (assoc-get clef-name supported-clefs))
+ (if e
+ (let* ((musics (map make-prop-set
+ `(((symbol . cueClefGlyph) (value . ,(car e)))
+ ((symbol . middleCCuePosition)
+ (value . ,(+ oct
+ (cadr e)
+ (assoc-get (car e) c0-pitch-alist))))
+ ((symbol . cueClefPosition) (value . ,(cadr e)))
+ ((symbol . cueClefOctavation) (value . ,(- oct))))))
+ (recalc-mid-C (make-music 'ApplyContext))
+ (seq (make-music 'SequentialMusic
+ 'elements (append musics (list recalc-mid-C))))
+ (csp (make-music 'ContextSpeccedMusic)))
+ (set! (ly:music-property recalc-mid-C 'procedure) ly:set-middle-C!)
+ (context-spec-music seq 'Staff))
+ (begin
+ (ly:warning (_ "unknown clef type `~a'") clef-name)
+ (ly:warning (_ "supported clefs: ~a")
+ (string-join
+ (sort (map car supported-clefs) string<?)))
+ (make-music 'Music)))))
+
+
+(define-public (make-cue-clef-unset)
+ "Reset the clef settings for a cue clef."
+ (define (make-prop-unset props)
+ (let ((m (make-music 'PropertyUnset)))
+ (set! (ly:music-property m (car props)) (cdr props))
+ m))
+ (let* ((musics (map make-prop-unset
+ `((symbol . cueClefGlyph)
+ (symbol . middleCCuePosition)
+ (symbol . cueClefPosition)
+ (symbol . cueClefOctavation))))
+ (recalc-mid-C (make-music 'ApplyContext))
+ (seq (make-music 'SequentialMusic
+ 'elements (append musics (list recalc-mid-C))))
+ (csp (make-music 'ContextSpeccedMusic)))
+ (set! (ly:music-property recalc-mid-C 'procedure) ly:set-middle-C!)
+ (context-spec-music seq 'Staff)))
+
+
;; a function to add new clefs at runtime
(define-public (add-new-clef clef-name clef-glyph clef-position octavation c0-position)
"Append the entries for a clef symbol to supported clefs and c0-pitch-alist"
;;;; You should have received a copy of the GNU General Public License
;;;; along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
-;; default tunings for common string instruments
-;; guitar tunings
-(define-public guitar-tuning '(4 -1 -5 -10 -15 -20))
-(define-public guitar-seven-string-tuning '(4 -1 -5 -10 -15 -20 -25))
-(define-public guitar-drop-d-tuning '(4 -1 -5 -10 -15 -22))
-(define-public guitar-open-g-tuning '(2 -1 -5 -10 -17 -22))
-(define-public guitar-open-d-tuning '(2 -3 -6 -10 -15 -22))
-(define-public guitar-dadgad-tuning '(2 -3 -5 -10 -15 -22))
-(define-public guitar-lute-tuning '(4 -1 -6 -10 -15 -20))
-(define-public guitar-asus4-tuning '(4 -3 -8 -10 -15 -20))
-;; bass tunings
-(define-public bass-tuning '(-17 -22 -27 -32))
-(define-public bass-four-string-tuning '(-17 -22 -27 -32))
-(define-public bass-drop-d-tuning '(-17 -22 -27 -34))
-(define-public bass-five-string-tuning '(-17 -22 -27 -32 -37))
-(define-public bass-six-string-tuning '(-12 -17 -22 -27 -32 -37))
-;; mandolin
-(define-public mandolin-tuning '(16 9 2 -5))
-;; tunings for 5-string banjo
-(define-public banjo-open-g-tuning '(2 -1 -5 -10 7))
-(define-public banjo-c-tuning '(2 -1 -5 -12 7))
-(define-public banjo-modal-tuning '(2 0 -5 -10 7))
-(define-public banjo-open-d-tuning '(2 -3 -6 -10 9))
-(define-public banjo-open-dm-tuning '(2 -3 -6 -10 9))
-;; convert 5-string banjo tuning to 4-string by removing the 5th string
-(define-public (four-string-banjo tuning)
- (reverse (cdr (reverse tuning))))
-;; ukulele tunings
-(define-public ukulele-tuning '(9 4 0 7)) ;ukulele a' e' c' g'
-(define-public ukulele-d-tuning '(11 6 2 9)) ;ukulele d tuning, b' fis' d' a'
-(define-public ukulele-tenor-tuning '(-5 0 4 9)) ;tenor ukulele, g c' e' a'
-(define-public ukulele-baritone-tuning '(-10 -5 -1 4)) ;baritone ukulele, d g b e'
-
;; for more control over glyph-name calculations,
;; we use a custom callback for tab note heads
;; use defaults, but combine all beats into a unit if possible
;;
;; set all beams to end on beats, but 1 8 to beam entire measure
- ;; in order to avoid beaming every beat for entier measure, we set
+ ;; in order to avoid beaming every beam type for the entire measure, we set
;; triplets back to every beat.
((3 . 4) .
- ((beamExceptions . ((end . (((1 . 8) . (6))
- ((1 . 12) . (3 3 3))))))))
+ ((beamExceptions . ((end . (((1 . 8) . (6)) ;1/8 note whole measure
+ ((1 . 12) . (3 3 3)))))))) ;Anything shorter by beat
;; in 3 8 time:
;; beam entire measure together
;; ly/engraver-init.ly where the default time signature is set
;; are set
((4 . 4) .
- ((beamExceptions . ((end . (((1 . 8) . (4 4))
- ((1 . 12) . (3 3 3 3))))))))
+ ((beamExceptions . ((end . (((1 . 8) . (4 4)) ; 1/8 notes half measure
+ ((1 . 12) . (3 3 3 3)))))))) ;Anything shorter by beat
;; in 4/8 time:
;; combine beats 1 and 2, so beam in 2
tuning)
(define (calc-fret pitch string tuning)
- (- (ly:pitch-semitones pitch) (list-ref tuning (1- string))))
+ (- (ly:pitch-semitones pitch) (ly:pitch-semitones (list-ref tuning (1- string)))))
(define (note-pitch a)
(ly:event-property a 'pitch))
global returnCode
# print "Node: ", nodeName, " in ", manualName, " found in ", fileName
if manualName+"/"+nodeName in self.Nodes.keys():
- print "Error: Duplicate nodename ",nodeName, " in ", fileName, " and ", self.Nodes[manualName+nodeName]
+ print "Error: Duplicate nodename ",nodeName, " in ", fileName, " and ", self.Nodes[manualName+"/"+nodeName][1]
returnCode=1
self.Nodes[manualName + "/" + nodeName] = [manualName, fileName]
self.nodeNames[nodeName] = fileName
if refStart >= 0:
refFound = True
if actualToManualName == File.CurrentManualName:
- print "Warning: xref should be internal around line ", lineNo, " in ", self.fileName
+ print "Warning: should xref be internal around line ", lineNo, " in ", self.fileName, "?"
twoLines = twoLines[refStart:]
refNodeStart = twoLines.find("{") + 1
# TODO Need to check here for nested {}