@end itemize
Indem eine dieser grob- (graph. Obj.)-Eigenschaften verändert wird,
-ändert sich auch die Erscheindung der grafischen Objekte zu einem
+ändert sich auch die Erscheinung der grafischen Objekte zu einem
bestimmten Notationsstil, ohne dass neue Notationskonzepte
bemüht werden müssen.
sich vom Standard (@code{default}) nur in sofern, als eine viereckige Form für
die Brevis (@code{\breve}) benutzt wird. Der @code{neomensural}-Stil
unterscheidet sich vom barocken Stil darin, dass hier rhomboide Notenköpfe für
-ganze Noten und kleinere Notenwerte eingesetzt ewrden. Hälse werden über oder
+ganze Noten und kleinere Notenwerte eingesetzt werden. Hälse werden über oder
unter den Notenköpfen zentriert. Dieser Stil ist vor allem dann sinnvoll, wenn
mensurale Musik transkribiert werden soll, etwa für ein Incipit. Der
mensurale (@code{mensural}) Stil erstellt Notenköpfe, die das Aussehen
Wie zu sehen ist, werden nicht alle Versetzungszeichen von jedem Stil
unterstützt. Wenn versucht wird, ein Versetzungszeichen zu notieren,
-das von einem bestimmten Stil nicht untersützt wird, wechselt LilyPond zu einem
+das von einem bestimmten Stil nicht unterstützt wird, wechselt LilyPond zu einem
anderen Stil, wie in dem Beispiel @lsr{ancient,ancient-accidentals.ly}
demonstriert wird.
@knownissues
-Der mensurale G-Schlüssel ist als Petrucci-G-schlüssel deklariert.
+Der mensurale G-Schlüssel ist als Petrucci-G-Schlüssel deklariert.
@cindex Taktart, Alte Musik
@cindex Mensur
-LilyPond besitzt grundlegende Untersützung für mensurale Taktangaben. Die
+LilyPond besitzt grundlegende Unterstützung für mensurale Taktangaben. Die
Symbole sind starr verknüpft mit bestimmten Brüchen. Darum müssen die Werte
@code{n} und @code{m} der folgenden Tabelle in den Befehl
@code{\time n/m} eingesetzt werden, um die entsprechenden Symbole zu erhalten.
Ligaturen und Zeilenumbrüche sind ungenügend. Text lässt sich auch nicht
richtig an Ligaturen ausrichten.
-Akzidenzien dürfen nicht innerhalb von einer Ligatur gedruckt werden, sondern
+Akzidentien dürfen nicht innerhalb von einer Ligatur gedruckt werden, sondern
müssen gesammelt und vor der Ligatur ausgegeben werden.
Die Syntax verwendet immer noch den verworfenen Infix-Stil (@code{\[
@cindex Quadratische Neumenligaturen
@cindex Gregorianische quadratische Neumenligaturen
-@cindex Ligaturen der quadratischen Neumennoation
+@cindex Ligaturen der quadratischen Neumennotation
Beschränkte Unterstützung für gregorianische Quadratneumen-Ligaturen
(nach dem Stil der Editio Vaticana) ist vorhanden. Die wichtigsten
@noindent zu schreiben.
@code{bagpipe.ly} enthält außerdem Definitionen für Tonhöhen von
-Dudelsacknoten in bestimmten Oktoven, so dass man sich nicht mehr um
+Dudelsacknoten in bestimmten Oktaven, so dass man sich nicht mehr um
@code{\relative} oder @code{\transpose} kümmern muss.
@lilypond[ragged-right,verbatim,quote,notime]
{ \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
@end lilypond
-Musik für den Dudelsack wird dem Namen nach in D-dur
+Musik für den Dudelsack wird dem Namen nach in D-Dur
geschrieben (auch wenn das eigentlich nicht stimmt). Weil
das aber die einzige Tonart ist, die benutzt werden kann, werden
die Vorzeichen meistens nicht geschrieben. Damit das funktioniert,
@cindex Grundton eines Akkordes
@cindex Additionen in Akkorden
-@cindex Subtration in Akkorden
+@cindex Subtraktion in Akkorden
@cindex Hinzufügen von Tönen in Akkorden
@cindex Entfernen von Tönen aus Akkorden
Die Standardeinstellungen für die Symbole entsprechen den Konventionen
im Jazz, wie sie von Klaus Ignatzek (siehe @ref{Literature list}).
vorgeschlagen wurden. Mit den folgenden Befehlen könne aber
-Anpssungen vorgenommen werden:
+Anpassungen vorgenommen werden:
@table @code
@funindex chordNameExceptions
@item chordNameExceptions
-Das ist eine Liste, die alle Akkorder aufführt, die angewöhnliche
+Das ist eine Liste, die alle Akkorde aufführt, die ungewöhnliche
Form haben.
Die Liste muss nach dem Schema
@item chordNameSeparator
Verschiedene Teile eines Akkordsymboles werden normalerweise
durch einen Schrägstrich markiert. Indem @code{chordNameSeparator}
-ein anderer Wert zugewiesen wird, kann das Ausehen des Trenners
+ein anderer Wert zugewiesen wird, kann das Aussehen des Trenners
verändert werden, z. B.:
@lilypond[quote,ragged-right,fragment,verbatim]
\new ChordNames \chordmode {
eventuell die selbe Saite für zwei Töne eines Akkordes auswählen kann.
Damit die Kombination von Stimmen (@code{\partcombine}) richtig funktioniert,
-müssen spziell erstellte Stimmen innerhalb des Tabulatursystems
+müssen speziell erstellte Stimmen innerhalb des Tabulatursystems
(@code{TabStaff}) benutzt werden:
@lilypond[quote,ragged-right,verbatim]
Modi werden angewählt, indem an den Befehl @code{fret-diagram} die Begriffe
@code{-standard}, @code{-verbose} bzw. @code{-terse} angehängt werden.
Die Modi produzieren gleichwertige Ausgaben, haben aber unterschiedliche
-Informationen in dem Beschriftungs-Befehl. Details über die
+Informationen im Beschriftungsbefehl. Details über die
Beschriftungsbefehle finden sich im Abschnitt
@ref{Overview of text markup commands}. Alle drei Modi werden im obigen
Beispiel gezeigt.
@end lilypond
Gedämpfte (X) Notenköpfe werden in der Gitarrenmusik benutzt, um
-zu signalisieren, dass der Gitarist eine Note oder einen Akkord spielen
+zu signalisieren, dass der Gitarrist eine Note oder einen Akkord spielen
soll, indem seine Finger die Saiten nur berühren, anstatt sie vollständig
herunterzudrücken. Damit werden schlagzeugartige Geräusche erreicht,
die aber noch die ursprüngliche Tonhöhe ahnen lassen. Diese Spielart
nicht so oft blättern muss.
Dies sind die Anforderungen der Typographie: Das Layout sollte
-schön sein -- nicht aus Selbszweck, sondern um dem Leser zu helfen. Für
+schön sein -- nicht aus Selbstzweck, sondern um dem Leser zu helfen. Für
Aufführungsmaterial ist das umso wichtiger, denn Musiker haben eine begrenzte
Aufmerksamkeit. Je weniger Mühe nötig ist, die Noten zu erfassen, desto mehr
Zeit bleibt für die Gestaltung der eigentlichen Musik. Das heißt: Gute
in einer Gruppe mit dem Namen @qq{Voice context} (Stimmenkontext)
zusammengefasst, die engraver für den Schlüssel, die Vorzeichen,
Taktstriche usw. dagegen in einer Gruppe mit dem Namen @qq{Staff context}
-(Systemkontext). Im Falle von Polyphonie hat ein Staff context dann also
-mehr als nur einen Voice context. Auf gleiche Weise können auch mehrere Staff
- contexte in einen großen Score context (Partiturkontext) eingebunden werden.
+(Systemkontext). Im Falle von Polyphonie hat ein Staff-Kontext dann also
+mehr als nur einen Voice-Kontext. Auf gleiche Weise können auch mehrere Staff-Kontexte
+in einen großen Score-Kontext (Partiturkontext) eingebunden werden.
@seealso
Die Benutzerschnittstelle und die Syntax werden als erstes vom Benutzer
wahrgenommen. Teilweise sind sie eine Frage des Geschmackes und werden viel
-disskutiert. Auch wenn Geschmacksfragen ihre Berechtigung
+diskutiert. Auch wenn Geschmacksfragen ihre Berechtigung
haben, sind sie nicht sehr produktiv. Im großen Rahmen von LilyPond
spielt die Eingabe-Syntax nur eine geringe Rolle, denn eine logische
Syntax zu schreiben ist einfach, guten Formatierungscode aber sehr viel
In diesem Buch wird erklärt, wie man das Programm LilyPond erlernt; mit
einfachen Begriffen werden einige Schlüsselkonzepte erklärt. Die Kapitel
-sollten hintereinander gelsen werden.
+sollten hintereinander gelesen werden.
@c we need to completely rewrite this once GDP is finished. -gp
@ignore
@item
@emph{@rprogram{Install}},
-erklärt wie LilyPond installiert wird (inclusive Kompilation, wenn es
+erklärt wie LilyPond installiert wird (inklusive Kompilation, wenn es
nötig sein sollte).
@item
@item
@emph{@rprogram{Running LilyPond}},
-zeigt, wie LilyPond und seine Hilfprogramme gestartet werden. Zusätzlich
+zeigt, wie LilyPond und seine Hilfsprogramme gestartet werden. Zusätzlich
wird hier erklärt, wie Quelldateien von alten LilyPond-Versionen aktualisiert
werden können.
GNU Free Documentation Lizenz (Version 1.1 oder
spätere, von der Free Software Foundation publizierte Versionen, ohne Invariante Abschnitte),
zu kopieren, verbreiten und/oder
-zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU
+zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
Free Documentation License'' angefügt.
@end quotation
GNU Free Documentation Lizenz (Version 1.1 oder
spätere, von der Free Software Foundation publizierte Versionen, ohne Invariante Abschnitte),
zu kopieren, verbreiten und/oder
-zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU
+zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
Free Documentation License'' angefügt.
@end quotation
GNU Free Documentation Lizenz (Version 1.1 oder
spätere, von der Free Software Foundation publizierte Versionen, ohne Invariante Abschnitte),
zu kopieren, verbreiten und/oder
-zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU
+zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
Free Documentation License'' angefügt.
@end quotation
@author Das LilyPond-Entwicklerteam
-Copyright @copyright{} 1999--2007 bei den Authoren
+Copyright @copyright{} 1999--2007 bei den Autoren
@emph{The translation of the following copyright notice is provided
for courtesy to non-English speakers, but only the notice in English
spätere, von der Free Software Foundation publizierte Versionen, ohne
Invariante Abschnitte),
zu kopieren, verbreiten und/oder
-zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU
+zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
Free Documentation License'' angefügt.
@end quotation
@end titlepage
@copying
-Copyright @copyright{} 1999--2007 bei den Authoren
+Copyright @copyright{} 1999--2007 bei den Autoren
@emph{The translation of the following copyright notice is provided
for courtesy to non-English speakers, but only the notice in English
spätere, von der Free Software Foundation publizierte Versionen, ohne
Invariante Abschnitte),
zu kopieren, verbreiten und/oder
-zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU
+zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
Free Documentation License'' angefügt.
@end quotation
@ifnottex
Diese Datei dokumentiert die Programmbenutzung von GNU LilyPond.
-Copyright 1999--2007 bei den Authoren
+Copyright 1999--2007 bei den Autoren
@emph{The translation of the following copyright notice is provided
for courtesy to non-English speakers, but only the notice in English
spätere, von der Free Software Foundation publizierte Versionen, ohne
Invariante Abschnitte),
zu kopieren, verbreiten und/oder
-zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU
+zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
Free Documentation License'' angefügt.
@end quotation
spätere, von der Free Software Foundation publizierte Versionen, ohne
invariante Abschnitte),
zu kopieren, verbreiten und/oder
-zu verändern. Eie Kopie der Lizenz ist im Abschnitt ``GNU
+zu verändern. Eine Kopie der Lizenz ist im Abschnitt ``GNU
Free Documentation License'' angefügt.
@end quotation
@menu
* Musical notation:: Allgemeine Notation von Musik.
* Specialist notation:: Notation, die nur für spezielle Zwecke eingesetzt wird.
-* Input syntax:: Allgemeine Information über die Quelledateien von LilyPond.
+* Input syntax:: Allgemeine Information über die Quelldateien von LilyPond.
* Non-musical notation:: Alles, was nicht Musiknotation ist.
* Spacing issues:: Anzeige der Ausgabe auf dem Papier.
* Changing defaults:: Das Notenbild verfeinern.
Tom Gerou and Linda Lusk, Essential Dictionary of Music
Notation. Alfred Publishing, Van Nuys CA ISBN 0-88284-768-6.
-Eine ausführliche, alphabetische Liste vieler Belange des Musikasatzes
+Eine ausführliche, alphabetische Liste vieler Belange des Musiksatzes
und der Notation; die üblichen Fälle werden behandelt.
@item Read 1968
Dieses Buch handelt vom Musiksatz, also vom professionellen Notenstich.
Hier sind Anweisungen über Stempel, die Benutzung von Stiften und
nationale Konventionen versammelt. Die Kapitel zu Reproduktionstechniken
-und der historische Ãœberlick sind auch interessant.
+und der historische Ãœberblick sind auch interessant.
@item Schirmer 2001
The G.Schirmer/AMP Manual of Style and Usage. G.Schirmer/AMP, NY, 2001.
@cindex Perkussion
@cindex Schlagzeug
-Ein Schlagzeug-System besteht überlicherweise aus einem Notensystem
+Ein Schlagzeug-System besteht üblicherweise aus einem Notensystem
mit mehreren Linien, wobei jede Linie ein bestimmtes Schlagzeug-Instrument
darstellt.
@end example
@end quotation
-Der Wechsel wird automatisch besierend auf der Tonhöhe der Note
+Der Wechsel wird automatisch basierend auf der Tonhöhe der Note
vorgenommen (als Wechselpunkt gilt das eingestrichene C). Dabei
wird die Richtung auch über Pausen hinweg im Voraus bestimmt.
Der Systemwechsel wird nicht immer an der optimalen Stelle vorgenommen.
Für hohe Qualität muss der Wechsel mit der Hand eingegeben werden.
-@code{\autochange} kann sich nicht innerhalb einer @code{\times}-Umbegung
+@code{\autochange} kann sich nicht innerhalb einer @code{\times}-Umgebung
befinden.
@node Manual staff switches
Ãœblicherweise ist die Systembezeichnung @code{"up"} oder
@code{"down"}. Dieses System (@context{Staff}), auf das verweisen wird,
muss auch wirklich existieren, weshalb die Aufstellung eines Klaviersystems
-dann überlicherweise damit beginnt, die Systeme zu benennen. Hierbei können
+dann üblicherweise damit beginnt, die Systeme zu benennen. Hierbei können
natürlich beliebige Namen vergeben werden.
@example
@end lilypond
Die Einstellungen für linkes @c ?
-und mittleres Pedal ist überlicherweise ein @code{#'text}-Stil. Für das
+und mittleres Pedal ist üblicherweise ein @code{#'text}-Stil. Für das
mittlere Pedal ist der gemischte Stil voreingestellt.
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
@code{edge-width}, @code{edge-height} und @code{shorten-pair} des
@code{PianoPedalBracket}-Objekts verändert werden (siehe
@internalsref{PianoPedalBracket} in der Programmreferenz). Zum
-Beispiel kann die Klammer bis zum rechten Einde eines Notenkopfes
+Beispiel kann die Klammer bis zum rechten Ende eines Notenkopfes
verlängert werden.
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
@cindex Notenbezeichnungen, Standard
@cindex Vorzeichen, Deutsch
@cindex Versetzungszeichen
-@cindex Akzidenzen
+@cindex Akzidentien
Ein Kreuz wird eingegeben, indem man @code{-is} an die
Notenbezeichnung hängt, ein b durch @code{-es}. Doppelkreuze
@commonprop
Den Satzregeln für den Notensatz folgend wird ein Auflösungszeichen
-dann ausgegeben, wenn eine vorhergehende Akzidenz rückgängig
+dann ausgegeben, wenn ein vorhergehendes Versetzungszeichen rückgängig
gemacht werden soll. Um dieses Verhalten zu ändern, muss
@code{\set Staff.extraNatural = ##f} eingesetzt werden.
\repeat tremolo 4 c'16
@end lilypond
-Ähnliche Darstellung wird erreicht durch eine innere Tremolountereilung,
+Ähnliche Darstellung wird erreicht durch eine innere Tremolounterteilung,
die im Abschnitt @ref{Tremolo subdivisions} beschrieben wird.
@funindex ##f
@item Zahlen
-Zahlen werden wie üblich eingegeben, @code{1} ist die (integre)
+Zahlen werden wie üblich eingegeben, @code{1} ist die (ganze)
Zahl Eins, während @code{-1.5} ist eine Gleitkommazahl (also
-eine nicht-integre).
+eine nicht-ganze).
@item Zeichenketten
Zeichenketten werden in doppelte Anführungszeichen gesetzt:
Scheme kann verwendet werden, um Berechnungen durchzuführen. Es
verwendet eine @emph{Präfix}-Syntax. Um 1 und@tie{}2 zu addieren, muss
-man @code{(+ 1 2)} schreiben, und nicht @math{1+2}, wie in tranditioneller
+man @code{(+ 1 2)} schreiben, und nicht @math{1+2}, wie in traditioneller
Mathematik.
@lisp
Diese Anweisung verändert die Erscheinung der Notenhälse. Der Wert
@code{2.6} wird der Variable @code{thickness} (Dicke) eines
-@code{Stem}-(Hals)-Ojektes gleichgesetzt.
-@code{thickness} wird realtiv zu den Notenlinien errechnet, in diesem
+@code{Stem}-(Hals)-Objektes gleichgesetzt.
+@code{thickness} wird relativ zu den Notenlinien errechnet, in diesem
Fall sind die Hälse also 2,6 mal so dick wie die Notenlinien. Dadurch
werden Hälse fast zweimal so dick dargestellt, wie sie normalerweise sind.
Um zwischen Variablen zu unterscheiden, die in den Quelldateien direkt
Systembreiten gemessen, so dass der Befehl das Objekt eine Systembreite
nach rechts verschiebt und zwei Breiten nach oben.
-Die zwei Elemente eines Paares können von arbiträrem Inhalt sein, etwa
+Die zwei Elemente eines Paares können von beliebigem Inhalt sein, etwa
@example
#'(1 . 2)
@node Setup for specific Operating Systems
@section Setup for specific Operating Systems
-Dieser Abschnitt erklärt zusätzliche Einstellungen für bestimmte Betriebsysteme.
+Dieser Abschnitt erklärt zusätzliche Einstellungen für bestimmte Betriebssysteme.
@menu
* MacOS X on the command-line::
@noindent
beinhaltet. Die Datei muss mit einer Leerzeile enden.
-Beachten Sie, dass @var{Pfad/zu} überlicherweise @code{/Applications/} ist.
+Beachten Sie, dass @var{Pfad/zu} üblicherweise @code{/Applications/} ist.
@node Text editor support
@subsection Emacs mode
Emacs hat einen LilyPond-Modus (@file{lilypond-mode}), eine Datei, die
-die Verfollständigung von Befehlen, Einrückungen, für LilyPond spezifische
+die Vervollständigung von Befehlen, Einrückungen, für LilyPond spezifische
Klammerschließungen und die Markierung der Syntax beherrscht.
Zusätzlich stehen noch praktische Tastaturkombinationen zum
Programmaufruf und zum Nachschlagen in den Handbüchern zur
Point and click erlaubt es, die Noten in der Quelldatei zu finden, indem man sie
im PDF anklickt. Das erleichtert es, fehlerhafte Stellen zu finden.
-Wenn diese Funktionalität aktiv ist, fügt LilyPond hyperlinks zum PDF hinzu.
+Wenn diese Funktionalität aktiv ist, fügt LilyPond Hyperlinks zum PDF hinzu.
Diese werden dann bei einem Klick zum Browser geschickt, der wiederum
einen Texteditor mit dem Cursor an der richtigen Stelle öffnet.
@end example
@end table
-Die Umgebunsvariable @code{LYEDITOR} wird verwendet, um dieses zu
+Die Umgebungsvariable @code{LYEDITOR} wird verwendet, um dieses zu
überschreiben. Sie enthält den Befehl, um den Editor aufzurufen, wobei
die Variablen @code{%(file)s},
@code{%(column)s}, @code{%(line)s} mit der Datei, Spalte und Zeile
@end lilypond
Der relative Modus kann zunächst verwirrend erscheinen, aber es ist die
-einfachste Art, die meisten Melodien zu notieren. Schaun wir uns an,
+einfachste Art, die meisten Melodien zu notieren. Schauen wir uns an,
wie diese relative Berechnung in der Praxis funktioniert. Wenn wir mit
einem H beginnen (@code{b} in der LilyPond-Syntax), welches sich auf der
-mittleren Linie im Violinschlüssel begindet, können wir C, D und E
+mittleren Linie im Violinschlüssel befindet, können wir C, D und E
aufwärts notieren, und A, G und F unter dem H. Wenn also die Note, die
auf das H folgt, ein C, D oder E ist, setzt LilyPond es oberhalb des
Hs, wenn es ein A, G oder F ist, wird es darunter gesetzt.
Um @notation{punktierte Noten} zu erzeugen, wird einfach ein Punkt
@code{.} hinter die Notendauer geschrieben. Die Dauer einer
-punktierten Note muss explizit, also inclusive der Nummer,
+punktierten Note muss explizit, also inklusive der Nummer,
angegeben werden.
@lilypond[quote,ragged-right,verbatim]
Die Anordnung von Ausrücken funktioniert ähnlich wie mathematische
Gleichungen. Eine längere Gleichung entsteht durch die
Kombination kleinerer Gleichungen. Solche Gleichungen
-werderden auch Ausdruck genannt und ihre Definition ist
+werden auch Ausdruck genannt und ihre Definition ist
rekursiv, sodass beliebig komplexe und lange Ausdrücke
erstellt werden können. So etwa hier:
einfachsten Ausdrücke sind Zahlen, und größere werden durch die
Kombination von Ausdrücken mit Hilfe von Operatoren (wie @q{+},
@q{*} und @q{/}) sowie Klammern. Genauso wie mathematische
-Ausdrücke könen auch musikalische Ausdrücke beliebig tief verschachtelt
+Ausdrücke können auch musikalische Ausdrücke beliebig tief verschachtelt
werden. Das wird benötigt für komplexe Musik mit vielen Stimmen.
Mit dieser Technik kann @notation{polyphone} Musik gesetzt werden.
Musikalische
-Ausdrücke werden einfach paralell kombiniert, damit sie gleichzeitig
+Ausdrücke werden einfach parallel kombiniert, damit sie gleichzeitig
als eigene Stimmen in dem gleichen Notensystem gesetzt werden. Um
anzuzeigen, dass an dieser Stelle gleichzeitige Noten gesetzt werden,
muss nur ein Kombinationszeichen eingefügt werden. Parallel werden
Es ist noch zu bemerken, dass wir hier für jede Ebene innerhalb der
Quelldatei eine andere Einrückung geschrieben haben. Für LilyPond
-spielt es keine Rolle, wieviel Leerzeichen am Anfang einer Zeile sind,
+spielt es keine Rolle, wie viele Leerzeichen am Anfang einer Zeile sind,
aber für Menschen ist es eine große Hilfe, sofort zu sehen, welche
Teile des Quelltextes zusammen gehören.
>>
@end lilypond
-Sowohl die Noten als auch der Text sind jeweil in geschweifte
+Sowohl die Noten als auch der Text sind jeweils in geschweifte
Klammern eingefasst, und der gesamte Ausdruck ist zwischen
@code{<< ... >>} positioniert. Damit wird garantiert, dass
Text und Noten gleichzeitig gesetzt werden.
@ref{Automatic and manual beams}).
Alternativ kann das Melisma auch im Text angezeigt werden, indem
-für jede Note, die übersrpungen werden soll, ein Unterstrich
+für jede Note, die übersprungen werden soll, ein Unterstrich
@code{_} im Text geschrieben wird:
@lilypond[verbatim,quote,ragged-right]
@end lilypond
Keins der bisherigen Beispiele hat bisher Wörter benutzt, die länger
-als eine Silbe waren. Solche Wörter werden üblichweise auf die
+als eine Silbe waren. Solche Wörter werden üblicherweise auf die
Noten aufgeteilt, eine Silbe pro Note, mit Bindestrichen zwischen
den Silben. Diese Silben werden durch zwei Minuszeichen notiert und
von LilyPond als ein zentrierter Bindestrich zwischen den Silben
Einige Texte, besonders in italienischer Sprache, brauchen das
Gegenteil: mehr als eine Silbe muss zu einer einzelnen Note
gesetzt werden. Das ist möglich, indem die Silben durch einen
-einzlnen Unterstrich @code{_} zusammengekoppelt werden. Dazwischen
+einzelnen Unterstrich @code{_} zusammengekoppelt werden. Dazwischen
dürfen sich keine Leerzeichen befinden, oder indem man die
relevanten Silben in Anführungszeichen @code{"} setzt.
Hier ein Beispiel aus dem Figaro von Rossini, wo die Silbe
@node Organizing pieces with variables
@subsection Organizing pieces with variables
-Wenn alle die Elemente, die angesprochen wurden, zu großeren Dateien
+Wenn alle die Elemente, die angesprochen wurden, zu größeren Dateien
zusammengefügt werden, werden auch die musikalischen Ausdrücke sehr
viel größer. In polyphonen Dateien mit vielen Systemen kann das
sehr chaotisch aussehen. Das Chaos kann aber deutlich reduziert werden,
aber die gebräuchlichsten finden sich hier:
@multitable @columnfractions .33 .66
-@headitem Objekttyp @tab Objektbzeichnung
+@headitem Objekttyp @tab Objektbezeichnung
@item Dynamikzeichen (vertikal) @tab @code{DynamicLineSpanner}
@item Dynamikzeichen (horizontal) @tab @code{DynamicText}
@item Bindebögen @tab @code{Tie}
@file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
Um diese Ordner anzuschauen, wechseln Sie entweder mit @code{cd} im Terminal
zu der Adresse oder klicken Sie mit der rechten Maustaste auf das LilyPond-Symbol
-und wählen Sie @q{Schow Package Contents}.
+und wählen Sie @q{Show Package Contents}.
@item Windows: @file{@var{installdir}/LilyPond/usr/share/lilypond/current/}
@item Was ist, wenn Sie Ihre Dateien mit jemandem austauschen
wollen? Oder Ihre Dateien nach einige Jahren noch einmal überarbeiten
-wollen? Manche LilyPond-Dateien vesteht man auf den ersten Blick,
+wollen? Manche LilyPond-Dateien versteht man auf den ersten Blick,
über anderen muss man eine Stunde grübeln, um die Struktur zu ahnen.
@item Was ist, wenn sie Ihre Dateien auf eine neuere LilyPond-Version
aktualisieren wollen? Die Syntax der Eingabesprache verändert sich
-allmählich mit Verbesserungen im Programm. Die meisten Verändernungen
+allmählich mit Verbesserungen im Programm. Die meisten Veränderungen
können automatisch durch @code{convert-ly} gelöst werden, aber
-bestimmte Änderungen brauchen Hanbarbeit. LilyPond-Dateien können
+bestimmte Änderungen brauchen Handarbeit. LilyPond-Dateien können
strukturiert werden, damit sie einfacher aktualisierbar sind.
@end itemize
@item @strong{Schreiben Sie immer mit @code{\version} die
Versionsnummer
in jede Datei}. Beachten Sie, dass in allen Vorlagen die Versionsnummer
-@code{\version "2.11.38"} eingetragen ist. Es empfielt sich, in alle
+@code{\version "2.11.38"} eingetragen ist. Es empfiehlt sich, in alle
Dateien, unabhängig von ihrer Größe, den @code{\version}-Befehl
einzufügen. Persönliche Erfahrung hat gezeigt, dass es ziemlich
frustrierend sein kann zu erinnern, welche Programmversion man etwa
@item @strong{Ein Takt pro Textzeile}. Wenn irgendetwas kompliziertes
vorkommt, entweder in der Musik selber oder in der Anpassung der
Ausgabe,
-empfielt es sich oft, nur einen Takt pro Zeile zu schreiben.
+empfiehlt es sich oft, nur einen Takt pro Zeile zu schreiben.
Bildschirmplatz zu sparen, indem Sie acht Takte in eine Zeile zwängen,
hilft nicht weiter, wenn Sie ihre Datei @qq{debuggen} müssen.
Partitur fertig gestellt haben, könne Sie @code{mBreak = @{ @}},
also leer definieren, um diese manuellen Zeilenumbrüche zu entfernen.
Damit kann dann LilyPond selber entscheiden, wohin es passende
-Zeilenumbrüche plaziert.
+Zeilenumbrüche platziert.
@end itemize
@node Style sheets
@subsection Style sheets
-Die Ausgabe, die LilyPond erstellt, kann sehr start modifiziert
+Die Ausgabe, die LilyPond erstellt, kann sehr stark modifiziert
werden, siehe @ruser{Tweaking output} für Einzelheiten. Aber wie
kann man diese Änderungen auf eine ganze Serie von Dateien
anwenden? Oder die Einstellungen von den Noten trennen? Das
Es treten einige Probleme mit überlappenden Symbolen auf. Sie
werden beseitigt mit den Tricks aus dem Kapitel @ruser{Moving objects}.
-Aber auch die @code{mpdolce} und @code{tempoMark}-Defintiionen
+Aber auch die @code{mpdolce} und @code{tempoMark}-Definitionen
können verbessert werden. Sie produzieren das Ergebnis, das
gewünscht ist, aber es wäre schön, sie auch in anderen Stücken
verwenden zu können. Man könnte sie natürlich einfach kopieren
und in die anderen Dateien einfügen, aber das ist lästig. Die
-Defintionen verbleiben auch in der Notendatei und diese @code{#()}
+Definitionen verbleiben auch in der Notendatei und diese @code{#()}
sehen nicht wirklich schön aus. Sie sollen in einer anderen
Datei versteckt werden:
Stück jetzt veröffentlichen. Ihr Kompositionsprofessor mag
die @qq{C}-Taktangaben nicht, aber Sie finden sie irgendwie
schöner. Also kopieren Sie die Datei @file{definitions.ly} nach
-@file{web-publish.ly} und veränderen diese. Weil die Noten
-in einer PDF-Datei auf dem Bilschirm angezeigt werden sollen,
+@file{web-publish.ly} und verändern diese. Weil die Noten
+in einer PDF-Datei auf dem Bildschirm angezeigt werden sollen,
bietet es sich auch an, die gesamte Ausgabe zu vergrößern.
@example
Durch diese Herangehensweise kann auch bei der Erstellung
von nur einer Ausgabeversion Arbeit gespart werden. Ich
-benutze ein halbes Dutzent verschidener Stilvorlagen
+benutze ein halbes Dutzend verschiedener Stilvorlagen
für meine Projekte. Jede Notationsdatei fängt an mit
@code{\include "../global.ly"}, welches folgenden Inhalt hat:
in vielen Fällen müssen Sie nach der Fehlerquelle
auf die Suche gehen.
-Die besten Hilfmittel sind in diesem Fall das Zeilen-
+Die besten Hilfsmittel sind in diesem Fall das Zeilen-
und Blockkommentar (angezeigt durch @code{%} bzw.
@code{%@{ ... %@}}). Wenn Sie nicht bestimmen können,
wo sich das Problem befindet, beginnen Sie damit, große
@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: a7074882aac1078e15104577c36ac4b35ece0ae4
+ Translation of GIT committish: b258483467822a7fee6ec2d060e67e209e456582
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@node Pitches
@section Pitches
-@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16]
-{pitches-headword.ly}
+@lilypondfile[quote]{pitches-headword.ly}
En esta sección se discute cómo especificar la altura de las notas.
Este proceso se compone de tres fases: entrada, modificación y salida.
@node Absolute octave entry
-@subsubsection Absolute octave entry
+@unnumberedsubsubsec Absolute octave entry
@cindex nombres de las notas
@cindex alturas
@code{a} a la @code{g}. Las notas cuyos nombres van desde @code{c}
hasta @code{b} se imprimen en la octava inferior al Do central.
-@c NOTE: don't use c' here.
+@c don't use c' here.
@lilypond[verbatim,quote,ragged-right,fragment]
\clef bass
c d e f
@seealso
-Music Glossary: @rglos{Pitch names}.
+Music Glossary:
+@rglos{Pitch names}.
-Snippets: @lsrdir{Pitches,Pitches}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
@node Relative octave entry
-@subsubsection Relative octave entry
+@unnumberedsubsubsec Relative octave entry
-@cindex Relativo
-@cindex Relativas, especificación de octavas
+@cindex relativo
+@cindex relativas, especificación de octavas
@funindex \relative
-Las octavas se especifican añadiendo @code{'} y @code{,} a los nombres de las notas.
-Cuando copie música existente, es fácil poner por accidente una nota en la octava
-equivocada y luego es difÃcil encontrar dicho error. La octava relativa
-previene estos errores haciendo que éstos tengan consecuencias mucho mayores:
-un solo error transporta una octava el resto de la pieza
+Cuando las octavas se especifican en modo absoluto, es fácil poner por
+accidente una nota en la octava equivocada. El modo de octavas
+relativas reduce estos errores porque casi todo el tiempo es
+innecesario indicar octava alguna. Es más, en el modo absoluto puede
+ser difÃcil encontrar un error aislado, mientras que en el modo
+relativo un solo fallo hace que el resto de la pieza esté una octava
+más alta o más baja de lo que deberÃa.
+
@example
\relative @var{altura_inicial} @var{expresión_musical}
@end example
-@noindent
-o bien
+En el modo relativo, se supone que cada nota se encuentra lo más cerca
+posible de la nota anterior. Esto significa que la octava de una nota
+que está dentro de @var{expresión_musical} se calcula como sigue:
-@example
-\relative @var{expresión_musical}
-@end example
+@itemize
+@item
+Si no se usa ninguna marca de cambio de octava en una nota, su octava
+se calcula de forma que el intervalo que forme con la nota anterior
+sea menor de una quinta. Este intervalo se determina sin considerar
+las alteraciones.
+
+@item
+Se puede añadir una marca de cambio de octava@tie{}@code{'}
+o@tie{}@code{,} para elevar o bajar la altura, respectivamente, en una
+octava más en relación con la altura calculada sin esta marca.
+
+@item
+Se pueden usar varias marcas de cambio de octava. Por ejemplo,
+@code{''}@tie{}y @code{,,}@tie{} alteran la altura en dos octavas.
+
+@item
+La altura de la primera nota es relativa a
+@code{@var{altura_inicial}}. @var{altura_inicial} se especifica en
+modo de octava absoluta, y se recomienda que sea un Do (una octava de
+@code{c}).
+
+@end itemize
-@noindent
-@code{c'} se usa por defecto si no se define una altura inicial.
-
-La octava de las notas que aparecen dentro de @var{expresión_musical} se calculan como
-sigue: si no se usa ninguna marca de cambio de octava, el intervalo básico
-entre la nota actual y la anterior se toma siempre como si fuera una cuarta o menos.
-Esta distancia se determina independientemente de las alteraciones; un
-@code{fisis} (Fa doble sostenido) después de un @code{ceses} (Do doble bemol) se colocará
-por encima del @code{ceses}. En otras palabras, una cuarta doble aumentada se considera
-un intervalo menor que una quinta disminuida, incluso aunque la cuarta doble aumentada
-tiene siete semitonos mientras que la quinta disminuida sólo tiene seis semitonos.
-
-Las marcas de cambio de octava @code{'} y @code{,} se pueden añadir para
-elevar o bajar la altura en una octava más. Al entrar en el modo relativo,
-se puede especificar una altura de inicio absoluta que se comportará como
-la nota precedente a la primera nota de la @var{expresión_musical}. Si no
-se especifica ninguna altura inicial, se utilizará el Do central como
-comienzo.
Aquà podemos ver el modo relativo en acción:
-@lilypond[quote,fragment,ragged-right,verbatim]
-\relative c'' {
- b c d c b c bes a
+
+@lilypond[verbatim,quote,ragged-right]
+\relative c {
+ \clef bass
+ c d e f
+ g a b c
+ d e f g
}
@end lilypond
-Las marcas de cambio de octava se utilizan para intervalos mayores de la cuarta
+Las marcas de cambio de octava se utilizan para intervalos mayores de
+la cuarta:
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[verbatim,quote,ragged-right]
\relative c'' {
- c g c f, c' a, e''
+ c g c f,
+ c' a, e'' c
+}
+@end lilypond
+
+Una serie de notas sin ninguna marca de octava puede, a pesar de todo,
+abarcar intervalos muy grandes:
+
+@lilypond[verbatim,quote,ragged-right]
+\relative c {
+ c f b e
+ a d g c
}
@end lilypond
-Si el elemento anterior es un acorde, la primera nota del acorde se utiliza para
-determinar la primera nota del siguiente acorde
-@lilypond[quote,ragged-right,fragment,verbatim]
+Si el elemento anterior es un acorde, la primera nota del acorde se
+utiliza para determinar la primera nota del siguiente acorde. Dentro
+de los acordes, la siguiente nota siempre está en relación a la
+anterior.
+
+@lilypond[verbatim,quote,ragged-right]
\relative c' {
- c <c e g>
- <c' e g>
- <c, e' g>
+ c
+ <c e g>
+ % the C is now an octave higher
+ <c' e g'>
+ % the C returns to the original pitch
+ <c, e, g''>
}
@end lilypond
-La altura después del @code{\relative} contiene un nombre de nota.
+Como se explicó más arriba, la octava de las notas se calcula
+solamente a partir de sus nombres, sin tener encuenta alteración
+alguna. Por tanto, un Mi doble sostenido después de un Si se
+escribirá más agudo, mientras que un Fa doble sostenido se escribirá
+más grave. En otras palabras, se considera a la cuarta doble
+aumentada un intervalo menor que la quinta doble disminuida,
+independientemente del número de semitonos de cada uno de ellos.
-La conversión relativa no afecta a las secciones @code{\transpose},
-@code{\chordmode} o @code{\relative} en su argumento. Para usar
-el modo relativo dentro de música transportada, se debe escribir
-un @code{\relative} adicional dentro de @code{\transpose}.
+@lilypond[verbatim,quote,ragged-right]
+\relative c'' {
+ c2 fis
+ c2 ges
+ b2 eisis
+ b2 feses
+}
+@end lilypond
-@node Accidentals
-@subsubsection Accidentals
+@seealso
-@cindex nombres de las notas, holandés
-@cindex nombres de las notas, por omisión
+Glosario musical:
+@rglos{fifth},
+@rglos{interval},
+@rglos{Pitch names}.
-Un sostenido se forma añadiendo @code{-is} al final del nombre de la nota y
-un bemol se forma añadiendo @code{-es}. Los dobles sostenidos y dobles bemoles
-se obtienen añadiendo @code{-isis} o @code{-eses} al nombre de la nota.
+Referencia de la notación:
+@ref{Octave checks}.
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-a2 ais a aes
-a2 aisis a aeses
-@end lilypond
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
-@noindent
-Estos son los nombres de las notas en holandés. En holandés, @code{aes} se contrae en
-@code{as}, pero las dos formas se aceptan. De forma similar, se aceptan
-tanto @code{es} como @code{ees}
+Referencia de funcionamiento interno:
+@internalsref{RelativeOctaveMusic}.
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-a2 as e es
-@end lilypond
-Un becuadro cancelará el efecto de una alteración accidental o de la armadura.
-Sin embargo, los becuadros no se codifican dentro de la sintaxis del nombre de la nota con un
-sufijo; una nota becuadro se muestra como un simple nombre de nota natural
+@funindex \transpose
+@funindex \chordmode
+@funindex \relative
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-a4 aes a2
-@end lilypond
+@knownissues
-La entrada @code{d e f} se interpreta como @q{imprimir un Re natural,
-Mi natural y Fa natural}, independientemente de la armadura de la tonalidad.
-Para ver más información acerca de la distinción entre
-el contenido musical y la presentación de ese contenido, consulte
-@rlearning{Accidentals and key signatures}.
-@lilypond[fragment,quote,ragged-right,verbatim,relative]
-\key d \major
-d e f g
-d e fis g
-@end lilypond
+La conversión relativa no afecta a las secciones @code{\transpose},
+@code{\chordmode} o @code{\relative} en su argumento. Para usar el
+modo relativo dentro de música transportada, se debe escribir un
+@code{\relative} adicional dentro de @code{\transpose}.
+@c DEPRECATED
+Si no se especifica ninguna @var{altura_inicial} para
+@code{\relative}, entonces se supone que es@tie{}@code{c'}. Sin
+embargo, ésta es una opción en desuso y podrÃa desaparecer en
+versiones posteriores, por lo que su utilización está desaconsejada.
-@commonprop
-De acuerdo con las reglas estándar del tipografiado, se imprime un signo de becuadro
-antes de un sostenido o un bemol siempre que una alteración anterior tiene que cancelarse.
-Para modificar este comportamiento, utilice
-@code{\set Staff.extraNatural = ##f}
+@node Accidentals
+@unnumberedsubsubsec Accidentals
+
+@cindex accidental
+@cindex key signature
+@cindex clef
+
+@c duplicated in Key signature and Accidentals
+@warning{Las alteraciones accidentales y las armaduras son una
+frecuente causa de confusión para los nuevos usuarios. En LilyPond,
+los nombres de las notas son el código de entrada en bruto; la
+armadura y la clave determinan de qué forma se presenta este código en
+bruto. Una nota sin alteración como@tie{}@code{c} significa @q{Do
+natural}, si que le afecten la armadura ni la clave. Para ver más
+información, consulte @rlearning{Accidentals and key signatures}.}
+
+@cindex notas, nombres holandeses de
+@cindex notas, nombres predeterminados
+@cindex sostenido
+@cindex bemol
+@cindex doble sostenido
+@cindex sostenido, doble
+@cindex doble bemol
+@cindex bemol, doble
+@cindex becuadro
+
+Se escribe una nota @notation{sostenida} añadiendo @code{is} al nombre
+de la nota, y un @notation{bemol} añadiendo @code{es}. Como es de
+esperar, un @notation{dobles sostenido} y un @notation{doble bemol} se
+obtiene añadiendo @code{isis} o @code{eses}. Esta sintaxis deriva de
+los nombres de las notas en holandés. Para utilizar otros nombres
+para las alteraciones, consulte @ref{Note names in other languages}.
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+ais1 aes aisis aeses
+@end lilypond
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-ceses4 ces cis c
-\set Staff.extraNatural = ##f
-ceses4 ces cis c
+Un becuadro cancelará el efecto de una alteración accidental o de la
+armadura. Sin embargo, los becuadros no se codifican dentro de la
+sintaxis del nombre de la nota con un sufijo; una nota becuadro se
+muestra como un simple nombre de nota natural:
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+a4 aes a2
@end lilypond
+@cindex cuartos de tono
+@cindex semi-bemoles, semi-sostenidos
+
+Se pueden escribir medios bemoles y los medios sostenidos; a
+continuación presentamos una serie de DOs cada vez más agudos:
-@seealso
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+ceseh1 ces ceh c cih cis cisih
+@end lilypond
-Referencia del programa: @internalsref{LedgerLineSpanner},
-@internalsref{NoteHead}.
@cindex alteración recordatoria
@cindex paréntesis, alteración con
@funindex !
-Normalmente las alteraciones accidentales se imprimen automáticamente, pero también puede
-imprimirlas manualmente. Un alteración recordatoria
-se puede forzar añadiendo un signo de admiración @code{!}
-después de la altura de la nota. Una alteración de precaución
-(o sea, una alteración entre paréntesis) se puede obtener añadiendo el
-signo de interrogación @samp{?} después del nombre de la nota. Estas alteraciones adicionales
-se pueden usar también para producir notas con becuadro.
+Normalmente las alteraciones accidentales se imprimen automáticamente,
+pero también puede imprimirlas manualmente. Un alteración
+recordatoria se puede forzar añadiendo un signo de
+admiración@tie{}@code{!} después de la altura de la nota. Se puede
+obtener una alteración de precaución (o sea, una alteración entre
+paréntesis) añadiendo el signo de interrogación@tie{}@code{?} después
+del nombre de la nota. Estas alteraciones adicionales se pueden usar
+también para producir notas con becuadro.
@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
cis cis cis! cis? c c? c! c
@end lilypond
+Las alteraciones sobre notas unidas por ligadura sólo se imprimen al
+comienzo de un sistema:
-@seealso
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+cis1 ~ cis ~
+\break
+cis
+@end lilypond
-La producción automática de alteraciones accidentales se puede ajustar de muchas formas.
-Para ver más información, consulte @ref{Automatic accidentals}.
+@snippets
-@cindex cuartos de tono
-@cindex semi-bemoles, semi-sostenidos
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{preventing-extra-naturals-from-being-automatically-added.ly}
+
+@seealso
-Los medios bemoles y los medios sostenidos se forman añadiendo @code{-eh} y
-@code{-ih}; a continuación presentamos una serie de DOs cada vez más agudos
+Glosario musical:
+@rglos{sharp},
+@rglos{flat},
+@rglos{double sharp},
+@rglos{double flat},
+@rglos{Pitch names},
+@rglos{quarter-tone}.
-@lilypond[verbatim,ragged-right,quote,relative=2,fragment]
-\set Staff.extraNatural = ##f
-ceseh ceh cih cisih
-@end lilypond
+Manual de aprendizaje:
+@rlearning{Accidentals and key signatures}.
-Los microtonos también se exportan al archivo MIDI.
+Referencia de la notación:
+@ref{Automatic accidentals},
+@ref{Musica ficta accidentals},
+@ref{Note names in other languages}.
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+Referencia de funcionamiento interno:
+@internalsref{Accidental_engraver},
+@internalsref{Accidental},
+@internalsref{AccidentalCautionary},
+@internalsref{accidental-interface}.
@knownissues
@node Note names in other languages
-@subsubsection Note names in other languages
+@unnumberedsubsubsec Note names in other languages
-Existen conjuntos predefinidos de nombres de notas para algunos idiomas
-aparte del inglés. Para usarlos, incluya el archivo de inicio
-especÃfico del idioma. Por ejemplo, añada @code{\include "english.ly"}
-al principio del archivo de entrada. Los archivos de idioma disponibles
-y los nombres de las notas que definen son los siguientes:
+Existen conjuntos predefinidos de nombres de notas para algunos
+idiomas aparte del inglés. Para usarlos, incluya el archivo de inicio
+especÃfico del idioma. Por ejemplo, para usar los nombres de las
+notas en español, escriba @code{\include "espanol.ly"} al principio
+del archivo de entrada. Los archivos de idioma disponibles y los
+nombres de las notas que definen son los siguientes:
@c Should this be made into a multitable?
-@cindex idiomas, nombres de las notas en otros
-@example
- Nombres de las notas sostenido bemol doble doble
- sostenido bemol
-
-nederlands.ly c d e f g a bes b -is -es -isis -eses
-english.ly c d e f g a bf b -s/-sharp -f/-flat -ss/-x/ -ff/
- -sharpsharp -flatflat
-deutsch.ly c d e f g a b h -is -es -isis -eses
-norsk.ly c d e f g a b h -iss/-is -ess/-es -ississ/-isis -essess/-eses
-svenska.ly c d e f g a b h -iss -ess -ississ -essess
-italiano.ly do re mi fa sol la sib si -d -b -dd -bb
-catalan.ly do re mi fa sol la sib si -d/-s -b -dd/-ss -bb
-espanol.ly do re mi fa sol la sib si -s -b -ss -bb
-@end example
+@cindex nombres de las notas en otros idiomas
+@cindex notas en otros idiomas, nombres de
+
+@smallexample
+@multitable {nederlands.ly} {do re mi fa sol la sib si} {-iss/-is} {-ess/-es} {-ss/-x/-sharpsharp} {-essess/-eses}
+@headitem Language
+ @tab Note names
+ @tab sharp @tab flat @tab double sharp @tab double flat
+@item nederlands.ly
+ @tab c d e f g a bes b
+ @tab -is @tab -es @tab -isis @tab -eses
+@item english.ly
+ @tab c d e f g a bf b
+ @tab -s/-sharp @tab -f/-flat @tab -ss/-x/-sharpsharp
+ @tab -ff/-flatflat
+@item deutsch.ly
+ @tab c d e f g a b h
+ @tab -is @tab -es @tab -isis @tab -eses
+@item norsk.ly
+ @tab c d e f g a b h
+ @tab -iss/-is @tab -ess/-es @tab -ississ/-isis
+ @tab -essess/-eses
+@item svenska.ly
+ @tab c d e f g a b h
+ @tab -iss @tab -ess @tab -ississ @tab -essess
+@item suomi.ly
+ @tab c d e f g a b h
+ @tab -is @tab -es @tab -isis @tab -eses
+@item italiano.ly
+ @tab do re mi fa sol la sib si
+ @tab -d @tab -b @tab -dd @tab -bb
+@item catalan.ly
+ @tab do re mi fa sol la sib si
+ @tab -d/-s @tab -b @tab -dd/-ss @tab -bb
+@item espanol.ly
+ @tab do re mi fa sol la sib si
+ @tab -s @tab -b @tab -ss @tab -bb
+@item portugues.ly
+ @tab do re mi fa sol la sib si
+ @tab -s @tab -b @tab -ss @tab -bb
+@item vlaams.ly
+ @tab do re mi fa sol la sib si
+ @tab -k @tab -b @tab -kk @tab -bb
+@end multitable
+@end smallexample
-@noindent
-Tenga en cuenta que en holandés, alemán, noruego y sueco, los bemoles
-del @samp{La} como por ejemplo @code{aes} y @code{aeses}
-se contraen normalmente como @code{as} y @code{ases} (o más frecuentemente
-como @code{asas}). Algunas veces se definen sólo estas contracciones
-en los archivos de idioma correspondientes (esto también se aplica a los
-sufijos para cuartos de tono que se ven más abajo).
+En holandés, @code{aes} se contrae como @code{as}, pero las dos formas
+se aceptan en LilyPond. De forma similar, se aceptan tanto @code{es}
+como @code{ees}. Esto se aplica también a
+@code{aeses}@tie{}/@tie{}@code{ases} y a
+@code{eeses}@tie{}/@tie{}@code{eses}. A veces se definen solamente
+estos nombres contraÃdos en los archivos de idioma correspondientes.
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+a2 as e es a ases e eses
+@end lilypond
@noindent
Algunas músicas utilizan microtonos cuyas alteraciones son fracciones
listados en la tabla siguiente. Aquà los prefijos @q{semi-} y @q{sesqui-} significan
@q{medio} y @q{uno y medio} respectivamente. Para el noruego,
sueco, catalán y español no se ha definido aún ningún nombre especial.
-@c What about Turkish Maquam music and similar microtonal systems?
-@c
-@c Note that the term "three-quarter-sharp/-flat" used in lilypond's source code
-@c is actually misleading since the alteration is in fact one and a half
-@c of a regular sharp/flat. Whence the naming "sesqui-sharp/-flat" used below.
-@example
- Nombres de las notas semi- semi- sesqui- sesqui-
- sostenido bemol sostenido bemol
-
-nederlands.ly c d e f g a bes b -ih -eh -isih -eseh
-english.ly c d e f g a bf b -qs -qf -tqs -tqf
-deutsch.ly c d e f g a b h -ih -eh -isih -eseh
-norsk.ly c d e f g a b h
-svenska.ly c d e f g a b h
-italiano.ly do re mi fa sol la sib si -sd -sb -dsd -bsb
-catalan.ly do re mi fa sol la sib si
-espanol.ly do re mi fa sol la sib si
-@end example
+@smallexample
+@multitable {nederlands.ly} {do re mi fa sol la sib si} {-iss/-is} {-ess/-es} {-ississ/-isis} {-ississ/-isis}
+@headitem Idioma
+ @tab Nombre de la nota
+ @tab semi-sharp @tab semi-flat @tab sesqui-sharp @tab sesqui-flat
+
+@item nederlands.ly
+ @tab c d e f g a bes b
+ @tab -ih @tab -eh @tab -isih @tab -eseh
+@item english.ly
+ @tab c d e f g a bf b
+ @tab -qs @tab -qf @tab -tqs @tab -tqf
+@item deutsch.ly
+ @tab c d e f g a b h
+ @tab -ih @tab -eh @tab -isih @tab -eseh
+@item italiano.ly
+ @tab do re mi fa sol la sib si
+ @tab -sd @tab -sb @tab -dsd @tab -bsb
+@item portugues.ly
+ @tab do re mi fa sol la sib si
+ @tab -sqt @tab -bqt @tab -stqt @tab -btqt
+@end multitable
+@end smallexample
+
+
+@seealso
+
+Glosario musical:
+@rglos{Pitch names}.
+
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
@node Changing multiple pitches
@subsection Changing multiple pitches
+
+Esta sección trata de la manera de modificar las alturas.
+
+
@menu
* Octave checks::
* Transpose::
@node Octave checks
-@subsubsection Octave checks
+@unnumberedsubsubsec Octave checks
@cindex octava, comprobación de
@cindex octava, corrección de
@funindex =
@funindex \octave
-Las comprobaciones de octava hacen que los errores de octava sean más
-fáciles de corregir: una nota puede venir seguida de @code{=}@var{comillas}
-lo que indica cuál deberÃa ser su octava absoluta. En el siguiente ejemplo,
-
-@example
-\relative c'' @{ c='' b=' d,='' @}
-@end example
-
-@noindent
-la @code{d} generará una advertencia, porque se esperaba un @code{d''}
-(a causa de que el intervalo de @code{b'} a @code{d''} es de una tercera solamente),
-pero aparece un @code{d'}. En la salida, la octava se corrige para que sea un @code{d''} y
-la siguiente nota se calcula de forma relativa a @code{d''} en lugar de a @code{d'}.
+En el modo relativo, es fácil olvidar una marca de cambio de octava.
+Las comprobaciones de octava hacen más fácil encontrar estos errores,
+mediante la presentación de una advertencia y corrigiendo la octava si
+la nota se encuentra en una octava distinta de lo esperado.
-También existe una comprobación de octava que no produce ninguna salida visible. La sintaxis
+Para comprobar la octava de una nota, especifique la octava absoluta
+después del sÃmbolo@tie{}@code{=}. Este ejemplo genera un mensaje de
+advertencia (y corrige la altura) porque la segunda nota es la octava
+absoluta @code{d''} en lugar de @code{d'} como indica la corrección de
+octava.
-@example
-\octave @var{altura}
-@end example
-
-comprueba que @var{altura} (sin las comillas) produce @var{altura} (con
-las comillas) en modo @code{\relative} comparado con la nota que se da en el
-comando @code{\relative}. Si no es asÃ, se imprime una advertencia, y la
-octava se corrige. La @var{altura} no se imprime como una nota.
-
-En el ejemplo que aparece a continuación, la primera comprobación
-se aprueba sin más problema, porque el @code{e} (en modo @code{relative})
-está dentro de una quinta desde @code{a'}. Sin embargo
-la segunda comprobación produce una advertencia porque el @code{e} no está dentro
-de una quinta del @code{b'}. Se imprime el mensaje de advertencia y la octava se ajusta
-de modo que las notas siguientes están en la octava correcta
-de nuevo.
+@lilypond[verbatim,quote,ragged-right,fragment]
+\relative c'' {
+ c2 d='4 d
+ e2 f
+}
+@end lilypond
-@example
-\relative c' @{
- e
- \octave a'
- \octave b'
-@}
-@end example
+La octava de las notas se puede comprobar también con la instrucción
+@code{\octave}@tie{}@var{altura_de_control}. @var{altura_de_control}
+se eespecifica en modo absoluto. Esto comprueba que el intervalo
+entre la nota anterior y la @var{altura_de_control} se encuntra dentro
+de una cuarta (es decir, el cálculo normal para el modo relativo). Si
+esta comprobación fracasa se imprimie un mensaje de advertencia, pero
+la nota previa no se modifica. Las notas posteriores están en
+relación a la @var{altura_de_control}.
+@lilypond[verbatim,quote,ragged-right,fragment]
+\relative c'' {
+ c2 d
+ \octave c'
+ e2 f
+}
+@end lilypond
-La octava de una nota que sigue a una comprobación de octava
-se determina con respecto a la nota que la precede. En el siguiente fragmento,
-la última nota es una @code{a'}, por encima del Do central. Esto
-significa que la comprobación de @code{\octave} se aprueba satisfactoriamente,
-asà que la comprobación se puede borrar sin que cambie la salida de la pieza.
+Compare los dos compases siguientes. La primera y tercera
+comprobaciones de @code{\octave} fracasan, pero el segundo es
+correcto.
-@lilypond[quote,ragged-right,verbatim,fragment]
-\relative c' {
- e
- \octave b
- a
+@lilypond[verbatim,quote,ragged-right,fragment]
+\relative c'' {
+ c4 f g f
+
+ c4
+ \octave c'
+ f
+ \octave c'
+ g
+ \octave c'
+ f
}
@end lilypond
@seealso
-Snippets: @lsrdir{Pitches,Pitches}.
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+Referencia de funcionamiento interno:
+@internalsref{RelativeOctaveCheck}.
@node Transpose
-@subsubsection Transpose
+@unnumberedsubsubsec Transpose
-@cindex Transposición
-@cindex Transposición de alturas
+@cindex transporte
+@cindex transposición
+@cindex transposición de alturas
@funindex \transpose
-Una expresión musical se puede transportar mediante @code{\transpose}. La
-sintaxis es
+Una expresión musical se puede transportar mediante @code{\transpose}.
+La sintaxis es
@example
-\transpose @var{desde} @var{hacia} @var{expresión_musical}
+\transpose @var{nota_origen} @var{nota_destino} @var{expresión_musical}
@end example
-Esto significa que la @var{expresión_musical} se transporta el intervalo
-que hay entre las notas @var{desde} y @var{hacia}: cualquier nota con la altura @code{desde}
-se cambia por @code{hacia}.
+Esto significa que la @var{expresión_musical} se transporta el
+intervalo que hay entre las notas @var{nota_origen} y
+@var{nota_destino}: cualquier nota con la altura de @code{nota_origen}
+se cambia por @code{nota_destino} y cualquier otra nota se transporta
+el mismo intervalo. Las dos notas se introducen en modo absoluto.
Por ejemplo, tomemos una pieza escrita en la tonalidad de Re mayor.
-Si esta pieza es demasiado grave para el ejecutante, se puede transportar
-hacia arriba a Mi mayor con
-@example
-\transpose d e @dots{}
-@end example
+Se puede transportar hacia arriba a Mi mayor; observe que también la
+armadura de la tonalidad se transporta automáticamente.
+
+@lilypond[verbatim,quote,ragged-right]
+\transpose d e {
+ \relative c' {
+ \key d \major
+ d4 fis a d
+ }
+}
+@end lilypond
+
+Si una particella escrita en Do (@notation{afinación de concierto}
+normal) se debe tocar con un clarinete en La (para el que un La se
+escribe como un Do, y que suena una tercera menor por debajo de lo que
+está escrito), la particella correspondiente se produce mediante:
+
+@lilypond[verbatim,quote,ragged-right]
+\transpose a c' {
+ \relative c' {
+ \key c \major
+ c4 d e g
+ }
+}
+@end lilypond
+
+@noindent
+Observe que especificamos @code{\key c \major} de forma explÃcita. Si
+no especificamos ninguna tonalidad, las notas se transportan pero no
+se imprime la armadura.
-Suponga una pieza escrita para el violÃn (que es un instrumento en Do). Si
-esta parte se tiene que tocar con un clarinete en La (para el que un La
-se escribe como un Do, y que suena una tercera menor por debajo de lo que
-está escrito), el siguiente transporte producirá la particella correcta:
-@example
-\transpose a c @dots{}
-@end example
@code{\transpose} distingue entre notas enarmónicas: tanto
@code{\transpose c cis} como @code{\transpose c des} transportarán un
-semitono hacia arriba. La primera versión imprimirá sostenidos y la
-segunda imprimirá bemoles
+semitono hacia arriba. La primera versión imprimirá sostenidos y las
+notas no se moverán de su lugar en la escala, la segunda imprimirá
+bemoles de la nota siguiente.
-
-@lilypond[quote,ragged-right,verbatim]
-mus = { \key d \major cis d fis g }
+@lilypond[verbatim,quote,ragged-right]
+mus = \relative c' { c d e f }
\new Staff {
- \clef "F" \mus
- \clef "G"
- \transpose c g' \mus
- \transpose c f' \mus
+ \transpose c cis { \mus }
+ \transpose c des { \mus }
}
@end lilypond
-@code{\transpose} también se puede usar para introducir notas escritas para un
-instrumento transpositor. Las alturas se introducen normalmente en LilyPond
-en Do (o en @q{afinación de concierto}), pero se pueden introducir en otra
-tonalidad. Por ejemplo, al introducir música para una trompeta en Si bemol
-que comienza en un Re de concierto, se puede escribir
+@cindex transpositores, instrumentos
+
+@code{\transpose} también se puede usar para introducir notas escritas
+para un instrumento transpositor. Los ejemplos anteriores muestran
+cómo escribir alturas en Do (o en @notation{afinación de concierto}) y
+tipografiarlas para un instrumento transpositor, pero también es
+posible el caso contrario si, por ejemplo, tenemos un conjunto de
+partes instrumentales y quiere hacer un guión en Do para el director.
+Por ejemplo, al introducir música para trompeta en Si bemol que
+comienza por un Mi en la partitura (Re de concierto), se puede
+escribir:
@example
-\transpose c bes @{ e4 @dots{} @}
+musicaEnSiBemol = @{ e4 @dots{} @}
+\transpose c bes, \musicaEnSiBemol
@end example
-Para imprimir esta música en Si bemol de nuevo (o sea, para producir una particella de trompeta
-en vez de una partitura para el director en afinación de concierto), puede envolver la música existente
-con otro @code{transpose}
+@noindent
+Para imprimir esta música en Fa (por ejemplo, al arreglarla para
+trompa) puede envolver la música existente con otro @code{\transpose}:
@example
-\transpose bes c @{ \transpose c bes @{ e4 @dots{} @} @}
+musicaEnSiBemol = @{ e4 @dots{} @}
+\transpose f c' @{ \transpose c bes, \musicaEnSiBemol @}
@end example
+@noindent
+Para ver más información sobre instrumentos transpositores, consulte
+@ref{Instrument transpositions}.
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{transposing-pitches-with-minimum-accidentals-smart-transpose.ly}
+
@seealso
-Referencia del programa: @internalsref{TransposedMusic}.
+Referencia de la notación:
+@ref{Instrument transpositions}.
-Ejemplo: @lsr{scheme,transpose-pitches-with-minimum-accidentals.ly}.
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+Referencia de funcionamiento interno:
+@internalsref{TransposedMusic}.
+
+@funindex \transpose
+@funindex \chordmode
+@funindex \relative
@knownissues
-Si quiere usar al mismo tiempo @code{\transpose} y @code{\relative},
-debe escribir @code{\transpose} por fuera de @code{\relative}, porque
-@code{\relative} no tendrá ningún efecto sobre la música que aparezca dentro de un
-@code{\transpose}.
+
+La conversión relativa no afecta a las secciones @code{\transpose},
+@code{\chordmode} ni @code{\relative} dentro de su argumento. Para
+usar el modo relativo dentro de música transportada, se debe colocar
+otro @code{\relative} dentro de @code{\transpose}.
@node Displaying pitches
@subsection Displaying pitches
+Esta sección trata de cómo alterar la presentación de la altura de las
+notas.
+
@menu
* Clef::
* Key signature::
@end menu
@node Clef
-@subsubsection Clef
+@unnumberedsubsubsec Clef
@funindex \clef
-
-La clave indica qué lÃneas del pentagrama corresponden a qué
-notas. La clave se establece con el comando @code{\clef}
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-{ c''2 \clef alto g'2 }
-@end lilypond
-
+@cindex Sol, clave de
+@cindex Do, clave de
+@cindex Fa, clave de
+@cindex violÃn, clave de
+@cindex alto, clave de
+@cindex tenor, clave de
+@cindex bajo, clave de
+@cindex francesa, clave
+@cindex soprano, clave de
+@cindex mezzosoprano, clave de
+@cindex barÃtono, clave de
+@cindex contrabajo, clave de
+@cindex clave
+@cindex antiguas, claves
+@cindex clave antigua
@cindex clave de Sol
+@cindex clave de Do
+@cindex clave de Fa
@cindex clave de violÃn
-@cindex clave de Do en tercera (clave de viola)
-@cindex clave de Do en cuarta (clave de tenor)
-@cindex clave de Fa en cuarta (clave de bajo)
-@cindex clave de Sol en primera (clave de violÃn francesa)
-@cindex clave de Do en primera (clave de soprano)
-@cindex clave de Do en segunda (clave de mezzosoprano)
-@cindex clave de Do en quinta (clave de barÃtono)
-@cindex clave de Fa en tercera (clave de varbarÃtono)
-@cindex clave de Fa en quinta (clave de sub-bajo)
-
-Las claves contempladas son
-
-@multitable @columnfractions .33 .66
-@headitem Clave @tab Posición
-@item @code{treble}, violin, G, G2 @tab
-clave de Sol en 2ª
-@item @code{alto, C} @tab
-clave de Do en 3ª
-@item @code{tenor} @tab
-clave de Do en 4ª
-@item @code{bass, F} @tab
-clave de Fa en 4ª
-@item @code{french} @tab
-clave de Sol en 1ª, conocida también como clave de violÃn francesa
-@item @code{soprano} @tab
-clave de Do en 1ª
-@item @code{mezzosoprano} @tab
-clave de Do en 2ª
-@item @code{baritone} @tab
-@item @code{varbaritone} @tab
-clave de Fa en 3ª
-@item @code{subbass} @tab
-clave de Fa en 5ª
-@item @code{percussion} @tab
-clave de percusión
-@item @code{tab} @tab
-clave de tablatura
-@end multitable
+@cindex clave de alto
+@cindex clave de tenor
+@cindex clave de bajo
+@cindex clave francesa
+@cindex clave de soprano
+@cindex clave de mezzosoprano
+@cindex clave de barÃtono
+@cindex clave de contrabajo
+
+La clave se establece con la instrucción @code{\clef}
+@var{nombre_de_clave}. En todos los ejemplos se muestra el Do
+central.
-Al añadir @code{_8} o @code{^8} al nombre de la clave, la clave se transpone
-una octava hacia abajo o hacia arriba, respectivamente, y @code{_15} y
-@code{^15} la transpone dos octavas. El argumento @var{nombre_de_clave}
-se debe encerrar entre comillas cuando contiene guiones bajos o dÃgitos. Por
-ejemplo:
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+\clef treble
+c2 c
+\clef alto
+c2 c
+\clef tenor
+c2 c
+\clef bass
+c2 c
+@end lilypond
+
+Otras claves son las siguientes:
-@cindex clave de tenor coral
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\clef "G_8" c4
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+\clef french
+c2 c
+\clef soprano
+c2 c
+\clef mezzosoprano
+c2 c
+\clef baritone
+c2 c
+
+\break
+
+\clef varbaritone
+c2 c
+\clef subbass
+c2 c
+\clef percussion
+c2 c
+\clef tab
+c2 c
@end lilypond
+Están contempladas claves adicionales que se describen bajo
+@ref{Ancient clefs}.
-@commonprop
+@cindex transpositoras, claves
+@cindex clave transpositora
+@cindex octava, transposición de
-El comando @code{\clef "treble_8"} equivale a establecer
-@code{clefGlyph},
-@code{clefPosition} (que controla la posición Y de la clave),
-@code{middleCPosition} y @code{clefOctavation}. Se imprime una clave
-cuando se cambia cualquiera de estas propiedades. El siguiente ejemplo muestra
-las posibilidades que se ofrecen estableciendo manualmente las propiedades.
+Al añadir @code{_8} o @code{^8} al nombre de la clave, la clave se
+transpone una octava hacia abajo o hacia arriba, respectivamente, y
+@code{_15} y @code{^15} la transpone dos octavas. El argumento
+@var{nombre_de_clave} se debe encerrar entre comillas cuando contiene
+guiones bajos o dÃgitos.
-@lilypond[quote,ragged-right,verbatim]
-{
- \set Staff.clefGlyph = #"clefs.F"
- \set Staff.clefPosition = #2
- c'4
- \set Staff.clefGlyph = #"clefs.G"
- c'4
- \set Staff.clefGlyph = #"clefs.C"
- c'4
- \set Staff.clefOctavation = #7
- c'4
- \set Staff.clefOctavation = #0
- \set Staff.clefPosition = #0
- c'4
- \clef "bass"
- c'4
- \set Staff.middleCPosition = #4
- c'4
-}
+@cindex choral, clave de tenor
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
+\clef "treble_8"
+c2 c
+\clef "bass^15"
+c2 c
@end lilypond
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{tweaking-clef-properties.ly}
+
@seealso
-En el presente manual: @ref{Grace notes}.
+Referencia de la notación:
+@ref{Ancient clefs}.
+
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
-Referencia del programa: @internalsref{Clef}.
+Referencia de funcionamiento interno:
+@internalsref{Clef_engraver},
+@internalsref{Clef},
+@internalsref{OctavateEight},
+@internalsref{clef-interface}.
@node Key signature
-@subsubsection Key signature
+@unnumberedsubsubsec Key signature
@cindex Armadura de la tonalidad
@funindex \key
-La armadura indica la tonalidad en que se toca una pieza. Está
-denotada por un conjunto de alteraciones (bemoles o sostenidos) al comienzo del
-pentagrama.
+Las alteraciones accidentales y las armaduras son una frecuente causa de confusión para los nuevos usuarios,
+porque las notas sin alteración pueden llevar signos de becuadro en función de la armadura.
+Para ver más información, consulte @ref{Accidentals} o @rlearning{Accidentals and key signatures}.
-El establecimiento o modificación de la armadura se hace con el
-comando @code{\key}
+@c duplicated in Key signature and Accidentals
+@warning{Las alteraciones accidentales y las armaduras son una
+frecuente causa de confusión para los nuevos usuarios. En LilyPond,
+los nombres de las notas son el código de entrada en bruto; la
+armadura y la clave determinan de qué forma se presenta este código en
+bruto. Una nota sin alteración como@tie{}@code{c} significa @q{Do
+natural}, si que le afecten la armadura ni la clave. Para ver más
+información, consulte @rlearning{Accidentals and key signatures}.}
+
+La armadura indica la tonalidad en que se toca una pieza. Está
+denotada por un conjunto de alteraciones (bemoles o sostenidos) al
+comienzo del pentagrama. El establecimiento o modificación de la
+armadura se hace con la instrucción @code{\key}:
@example
-@code{\key} @var{nota} @var{tipo}
+\key @var{nota} @var{tipo}
@end example
@funindex \minor
@funindex \phrygian
@funindex \dorian
@cindex modos eclesiásticos
+@cindex modos
AquÃ, @var{tipo} debe ser @code{\major} o @code{\minor} para obtener
-la tonalidad @var{nota}-mayor o @var{nota}-menor, respectivamente. También puede
-usar los nombres estándar de modo (también conocidos como @q{modos eclesiásticos}): @code{\ionian} (jónico),
-@code{\locrian} (locrio), @code{\aeolian} (eolio), @code{\mixolydian} (mixolidio), @code{\lydian} (lidio),
-@code{\phrygian} (frigio) y @code{\dorian} (dórico).
-
-Este comando establece la propiedad de contexto
-@code{Staff.keySignature}. Se pueden especificar armaduras no estándar
-estableciendo esta propiedad directamente.
-
-Las alteraciones accidentales y las armaduras son una frecuente causa de confusión para los nuevos usuarios,
-porque las notas sin alteración pueden llevar signos de becuadro en función de la armadura.
-Para ver más información, consulte @ref{Accidentals} o @rlearning{Accidentals and key signatures}.
-
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+la tonalidad @var{nota} mayor o @var{nota} menor, respectivamente.
+También puede usar los nombres estándar de modo (también conocidos
+como @notation{modos eclesiásticos}): @code{\ionian} (jónico),
+@code{\dorian} (dórico), @code{\phrygian} (frigio), @code{\lydian}
+(lidio), @code{\mixolydian} (mixolidio), @code{\aeolian} (eolio) y
+@code{\locrian} (locrio).
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
\key g \major
-f1
+fis1
+f
fis
@end lilypond
-@commonprop
+@snippets
-Se imprime un sÃmbolo de becuadro para cancelar las alteraciones anteriores. Se puede
-suprimir esto estableciendo la propiedad
-@code{Staff.printKeyCancellation}.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly}
-@lilypond[quote,fragment,ragged-right,fragment,verbatim,relative=2]
-\key d \major
-a b cis d
-\key g \minor
-a bes c d
-\set Staff.printKeyCancellation = ##f
-\key d \major
-a b cis d
-\key g \minor
-a bes c d
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{non-traditional-key-signatures.ly}
@seealso
-Referencia del programa: @internalsref{KeyCancellation},
-@internalsref{KeySignature}.
+Glosario musical:
+@rglos{church mode},
+@rglos{scordatura}.
-@node Ottava brackets
-@subsubsection Ottava brackets
+Manual de aprendizaje:
+@rlearning{Accidentals and key signatures}.
+
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+Referencia de funcionamiento interno:
+@internalsref{KeyChangeEvent},
+@internalsref{Key_engraver},
+@internalsref{Key_performer},
+@internalsref{KeyCancellation},
+@internalsref{KeySignature},
+@internalsref{key-cancellation-interface},
+@internalsref{key-signature-interface}.
-Los corchetes de @q{Ottava} introducen un trasporte adicional de una octava para el pentagrama.
-Se crean por medio de la invocación de la función
-@code{set-octavation}
+
+@node Ottava brackets
+@unnumberedsubsubsec Ottava brackets
@cindex ottava
@cindex 15ma
+@cindex 8va
@cindex octavación
-@lilypond[quote,ragged-right,verbatim,fragment]
-\relative c''' {
- a2 b
- #(set-octavation 1)
- a b
- #(set-octavation 0)
- a b
-}
+Los @notation{corchetes de Ottava} introducen un trasporte adicional
+de una octava para el pentagrama.
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+a'2 b
+#(set-octavation 1)
+a b
+#(set-octavation 0)
+a b
@end lilypond
-La función @code{set-octavation} también admite los valores -1 (para 8va bassa), 2@tie{}(para 15ma) y
--2 (para 15ma bassa) como argumentos. Internamente, la función establece las propiedades
-@code{ottavation} (p.ej., para @code{"8va"} o @code{"8vb"}) y
-@code{centralCPosition}. Para sobreescribir el texto del corchete, establezca
-@code{ottavation} después de invocar a @code{set-octavation}, es decir
-@lilypond[quote,ragged-right,verbatim]
-{
- #(set-octavation 1)
- \set Staff.ottavation = #"8"
- c'''
-}
-@end lilypond
+La función @code{set-octavation} también admite los valores -1 (para
+8va bassa), 2@tie{}(para 15ma) y -2 (para 15ma bassa) como argumentos.
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{ottava-text.ly}
@seealso
-Referencia del programa: @internalsref{OttavaBracket}.
+Music Glossary:
+@rglos{octavation}.
+Snippets:
+@lsrdir{Pitches,Pitches}.
-@knownissues
+Internals Reference:
+@internalsref{Ottava_spanner_engraver},
+@internalsref{OttavaBracket},
+@internalsref{ottava-bracket-interface}.
-@code{set-octavation} se confundirá cuando se produzcan cambios de clave
-en el interior de un corchete de octavación.
@node Instrument transpositions
-@subsubsection Instrument transpositions
+@unnumberedsubsubsec Instrument transpositions
@cindex transposición de MIDI
@cindex transposición instrumental
+@cindex transpositor, instrumento
+@cindex MIDI
+@funindex \transposition
+
+When typesetting scores that involve transposing instruments, some
+parts can be typeset in a different pitch than the
+@notation{concert pitch}. In these cases, the key of the
+@notation{transposing instrument} should be specified; otherwise
+the MIDI output and cues in other parts will produce incorrect
+pitches. For more information about quotations, see @ref{Quoting
+other voices}.
+
+@example
+\transposition @var{pitch}
+@end example
+
+El tono usado para @code{\transposition} debe corresponderse con el
+sonido real que se oye cuando el instrumento transpositor interpreta
+un Do central @code{c'} escrito en el pentagrama. Esta nota se
+escribe en altura absoluta, por tanto un instrumento que produce un
+sonido real un tono más agudo que la música impresa (un instrumento en
+Re) debe usar @code{\transposition d'}. La instrucción
+@code{\transposition} se debe usar @emph{solamente} si las notas
+@emph{no} se van a escribir en afinación de concierto.
+
+A continuación pueden verse algunas notas para violÃn y para clarinete
+en Si bemol, donde las partes se han introducido usando las notas y la
+armadura tal y como aparecen en la partitura del director. Lo que
+tocan los dos instrumentos está sonando al unÃsono.
+
+@lilypond[verbatim,quote,ragged-right]
+\new GrandStaff <<
+ \new Staff = "Vln" {
+ \relative c'' {
+ \set Staff.instrumentName = "Vln"
+ \set Staff.midiInstrument = "violin"
+ % strictly speaking not necessary, but a good reminder
+ \transposition c'
+
+ \key c \major
+ g4( c8) r c r c4
+ }
+ }
+ \new Staff = "clarinet" {
+ \relative c'' {
+ \set Staff.instrumentName = \markup { Cl (B\flat) }
+ \set Staff.midiInstrument = "clarinet"
+ \transposition bes
+
+ % not concert pitch
+ \key d \major
+ a4( d8) r d r d4
+ }
+ }
+>>
+@end lilypond
+
+La @code{\transposition} se puede cambiar durante la pieza. Por
+ejemplo, un clarinetista puede cambiar del clarinete en La al
+clarinete en Si bemol.
-También se puede especificar el tono de un instrumento transpositor. Esto se
-aplica a muchos instrumentos de viento, por ejemplo: los clarinetes (en Si bemol, La y
-Mi bemol), la trompa (en Fa) y la trompeta (en Si bemol, Do, Re y Mi bemol).
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+\set Staff.instrumentName = "Cl (A)"
+\key a \major
+\transposition a
+c d e f
+\textLengthOn
+s1*0^\markup { Switch to B\flat clarinet }
+R1
+
+\key bes \major
+\transposition bes
+c2 g
+@end lilypond
+
+
+@seealso
+
+Glosario musical:
+@rglos{concert pitch},
+@rglos{transposing instrument}.
+
+Referencia de la notación:
+@ref{Quoting other voices}, @ref{Transpose}.
+
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+
+@node Automatic accidentals
+@unnumberedsubsubsec Automatic accidentals
-La transposición se escribe después de la palabra clave @code{\transposition}
+@cindex automáticas, alteraciones
+@cindex alteraciones automáticas
+@cindex alteraciones accidentales
+@cindex alteraciones, estilo de las
+@cindex predeterminado, estilo de las alteraciones
+@cindex alteraciones, estilo predeterminado de las
+@funindex set-accidental-style
+
+Existen muchas convenciones distintas sobre la forma de tipografiar
+las alteraciones. LilyPond proporciona una función para especificar
+qué estilo de alteraciones usar. Esta función se invoca como sigue:
@example
-\transposition bes %% clarinete en Si bemol
+\new Staff <<
+ #(set-accidental-style 'voice)
+ @{ @dots{} @}
+>>
@end example
-@noindent
-Esta instrucción establece la propiedad @code{instrumentTransposition}. El valor de esta
-propiedad se utiliza para la salida MIDI y para las citas guÃa. No afecta
-a la forma en que se imprimen las notas en el pentagrama en curso. Para cambiar la salida impresa,
-véase @ref{Transpose}.
-
-El tono usado para @code{\transposition} debe corresponderse con el sonido
-real que se oye cuando el instrumento transpositor interpreta un Do central @code{c'} escrito en el
-pentagrama. Por ejemplo, cuando escribimos una partitura en afinación de
-concierto, normalmente todas las voces se escriben en Do, por lo que
-se introducen como
+El estilo de alteraciones se aplica al @code{Staff} en curso de forma
+predeterminada (con la excepción de los estilos @code{piano} y
+@code{piano-cautionary}, que se explican más adelante).
+Opcionalmente, la función puede tomar un segundo argumento que
+determina en qué ámbito se debe cambiar el estilo. Por ejemplo, para
+usar el mismo estilo en todos los pentagramas del @code{StaffGroup} en
+curso, use
@example
-clarinet = @{
- \transposition c'
- ...
-@}
-saxophone = @{
- \transposition c'
- ...
-@}
+#(set-accidental-style 'voice 'StaffGroup)
@end example
-La orden @code{\transposition} se debe usar cuando la música se escribe a partir de una
-particella orquestal (transportada). Por ejemplo, en
-particellas clásicas para trompa, el tono del instrumento con frecuencia se modifica
-durante la pieza. Al copiar las notas de la particella, utilice
-@code{\transposition}, p.ej.,
+Están contemplados los siguientes estilos de alteración. Para dar una
+muestra de cada uno de los estilos, utilizamos el ejemplo siguiente:
+
+@lilypond[verbatim,quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ %%% change the next line as desired:
+ #(set-accidental-style 'default)
+ \musicA
+ }
+ \context Staff = "down" {
+ %%% change the next line as desired:
+ #(set-accidental-style 'default)
+ \musicB
+ }
+ >>
+}
+@end lilypond
+Observe que las últimas lÃneas de este ejemplo se pueden sustituir por
+las siguientes, siempre y cuando queramos usar el mismo estilo en los
+dos pentagramas.
@example
-\transposition d'
-c'4^"en Re"
-...
-\transposition g'
-c'4^"en Sol"
-...
+\new PianoStaff @{
+ <<
+ \context Staff = "up" @{
+ %%% cambie la lÃnea siguiente como desee:
+ #(set-accidental-style 'default 'Score)
+ \musicA
+ @}
+ \context Staff = "down" @{
+ \musicB
+ @}
+ >>
+@}
@end example
-@node Automatic accidentals
-@subsubsection Automatic accidentals
-UNTRANSLATED NODE: IGNORE ME
+@c don't use verbatim in this table.
+@table @code
+@item default (predeterminado)
+Es el comportamiento de composición tipográfica predeterminado.
+Corresponde a la práctica común del s. XVIII: las alteraciones
+accidentales se recuerdan hasta el final del compás en el que aparecen
+y sólo en la misma octava. AsÃ, en el ejemplo siguiente, no se
+imprimen becuadros antes del Si natural en el segundo compás ni en el
+último Do:
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'default)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'default)
+ \musicB
+ }
+ >>
+}
+@end lilypond
+
+@item voice (voz)
+El comportamiento normal es recordar las alteraciones accidentales al
+nivel de @code{Staff}. En este estilo, sin embargo, se tipografÃan
+las alteraciones individualmente para cada voz. Aparte de esto, la
+regla es similar a @code{default}.
+
+Como resultado, las alteraciones de una voz no se cancelan en las
+otras voces, lo que con frecuencia lleva a un resultado no deseado: en
+el ejemplo siguientem es difÃfil determinar si el segundo La se debe
+tocar natural o sostenido. Por tanto, la opción @code{voice} se debe
+usar sólo si las voces se van a leer individualmente por músicos
+distintos. Si el pentagrama va a utilizarse por parte de un solo
+músico (p.ej., un director, o en una partitura de piano), entonces se
+deben usar en su lugar los estilos @code{modern} o
+@code{modern-cautionary}.
+
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'voice)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'voice)
+ \musicB
+ }
+ >>
+}
+@end lilypond
+
+@item modern (moderno)
+@cindex alteraciones, estilo moderno
+@cindex moderno, alteraciones de estilo
+@funindex modern
+
+Esta regla corresponde a la práctica común del s. XX. Imprime las
+mismas alteraciones que el estilo @code{default}, con dos excepciones
+que sirven para evitar la ambigüedad: después de alteraciones
+temporales se imprimen indicaciones de cancelación también en el
+compás siguiente (para notas en la misma octava) y, en el mismo
+compás, para notas en octavas distintas. De aquà los becuadros antes
+del Si natural y del Do en el segundo compás del pentagrama superior:
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'modern)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'modern)
+ \musicB
+ }
+ >>
+}
+@end lilypond
+
+@item modern-cautionary (moderno de precaución)
+@cindex alteraciones, estilo moderno de precaución
+@cindex moderno, alteraciones de estilo
+@cindex moderno de precaución, alteraciones de estilo
+@funindex modern-cautionary
+
+Eesta regla es similar a @code{modern}, pero las alteraciones
+@q{añadidas} (las que no se imprimen en el estilo @code{default}) se
+imprimen como alteraciones de precacución. Se imprimen de forma
+predeterminada con paréntesis, pero también se pueden imprimir en
+tamaño reducido definiendo la propiedad @code{cautionary-style} de
+@code{AccidentalSuggestion}.
+
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'modern-cautionary)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'modern-cautionary)
+ \musicB
+ }
+ >>
+}
+@end lilypond
+
+@item modern-voice (moderno, para voces)
+@cindex alteraciones, en varias voces
+@cindex alteraciones modernas
+@cindex moderno, alteraciones de estilo
+@cindex voces, alteraciones en varias
+@cindex alteración, estilo moderno de
+@funindex modern-voice
+
+Esta regla se usa para que puedan leer las alteraciones en varias
+voces, tanto músicos que tocan una voz como músicos que tocan todas
+las voces. Se imprimen las alteraciones para cada voz, pero @emph{se
+cancelan} entre voces dentro del mismo @code{Staff}. Por tanto, el La
+en el último compás se cancela porque la cancelación anterior estaba
+en una voz distinta, y el Re en el pentagrama inferior se cancela a
+causa de la alteración en otra voz en el compás previo:
+
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'modern-voice)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'modern-voice)
+ \musicB
+ }
+ >>
+}
+@end lilypond
+
+@cindex alteración, estilo de voz de precaución moderno
+@cindex alteración de voz de precaución moderno, estilo de
+@cindex alteración, moderno de precaución, voz, estilo de
+@funindex modern-voice-cautionary
+@item modern-voice-cautionary (moderno, voz, de precaución)
+
+Esta regla es la misma que @code{modern-voice}, pero con las
+alteraciones añadidas (las que el estilo @code{voice} no imprime)
+compuestas como de precaución. Incluso aunque todas las alteraciones
+impresas por el estilo @code{default} @emph{son} impresas con esta
+regla, algunas de ellas se tipografÃan como de precaución.
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'modern-voice-cautionary)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'modern-voice-cautionary)
+ \musicB
+ }
+ >>
+}
+@end lilypond
+
+@item piano
+@cindex piano, alteraciones de
+@cindex alteraciones de piano
+@cindex piano, estilo de alteraciones de
+
+Esta regla refleja la práctica del s.XX para la notación de piano. Su
+comportamiento es muy similar al estilo @code{modern}, pero aquà las
+alteraciones también se cancelan entre distintos pentagramas del mismo
+grupo @code{GrandStaff} o @code{PianoStaff}, de ahà todas las
+cancelaciones de las últimas notas.
+
+Este estilo de alteración se aplica de manera predeterminada al grupo
+@code{GrandStaff} o @code{PianoStaff} en curso.
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'piano)
+ \musicA
+ }
+ \context Staff = "down" {
+ \musicB
+ }
+ >>
+}
+@end lilypond
+
+@item piano-cautionary (piano, de precaución)
+@funindex #(set-accidental-style 'piano-cautionary)
+@cindex alteraciones, piano de precaución, estilo de
+@cindex alteraciones, piano de precaución
+@cindex precaución, estilo de alteraciones, piano
+@cindex precaución, alteraciones de piano de
+@cindex piano de precaución, estilo de alteraciones
+@cindex piano de precaución, alteraciones
+
+Igual que @code{#(set-accidental-style 'piano)} pero con las
+alteraciones añadidas compuestas como de precaución.
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'piano-cautionary)
+ \musicA
+ }
+ \context Staff = "down" {
+ \musicB
+ }
+ >>
+}
+@end lilypond
+
+@item no-reset (no restablecer)
+@funindex no-reset accidental style
+@cindex alteraciones no restablecer, estilo de
+@cindex no restablecer, estilo de alteraciones
+
+Es el mismo que @code{default} pero con alteraciones que duran @q{para
+siempre} y no sólo dentro del mismo compás:
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'no-reset)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'no-reset)
+ \musicB
+ }
+ >>
+}
+@end lilypond
+
+@item forget (olvidar)
+@funindex forget accidental style
+@cindex olvidar, estilo de alteraciones
+@cindex alteración, estilo de, olvidar
+
+Es lo opuesto a @code{no-reset}: Las alteraciones no se recuerdan en
+absoluto: de aquà que todas las alteraciones se compongan
+tipográficamente en relación a la armadura de la tonalidad, sin que
+estén afectadas por lo que viene antes:
+
+@lilypond[quote,ragged-right]
+musicA = {
+ <<
+ \relative c' {
+ cis'8 fis, d'4 <a cis>8 f bis4 |
+ cis2. <c, g'>4 |
+ }
+ \\
+ \relative c' {
+ ais'2 cis, |
+ fis8 b a4 cis2 |
+ }
+ >>
+}
+
+musicB = {
+ \clef bass
+ \new Voice {
+ \voiceTwo \relative c' {
+ <fis, a cis>4
+ \change Staff = up
+ cis'
+ \change Staff = down
+ <fis, a>
+ \change Staff = up
+ dis' |
+ \change Staff = down
+ <fis, a cis>4 gis <f a d>2 |
+ }
+ }
+}
+
+\new PianoStaff {
+ <<
+ \context Staff = "up" {
+ #(set-accidental-style 'forget)
+ \musicA
+ }
+ \context Staff = "down" {
+ #(set-accidental-style 'forget)
+ \musicB
+ }
+ >>
+}
+@end lilypond
+@end table
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{dodecaphonic-style-accidentals-for-each-note-including-naturals.ly}
+
+
+@seealso
+
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+Referencia de funcionamiento interno:
+@internalsref{Accidental},
+@internalsref{Accidental_engraver},
+@internalsref{GrandStaff} and
+@internalsref{PianoStaff},
+@internalsref{Staff},
+@internalsref{AccidentalSuggestion},
+@internalsref{AccidentalPlacement},
+@internalsref{accidental-suggestion-interface}.
+
+
+@cindex alteraciones y notas simultáneas
+@cindex simultáneas, notas y alteraciones
+@cindex alteraciones en acordes
+@cindex acordes, alteraciones dentro de
+
+@knownissues
+
+Las notas simultáneas se consideran introducidas en modo secuencial.
+Esto significa que dentro de un acorde las alteraciones se tipografÃan
+como si las notas del acorde se sucedieran una a una en el tiempo, en
+el orden en que aparecen en el archivo de entrada. Esto plantea un
+problema cuando las alteraciones de un acorde dependen unas de otras,
+lo que no se da en el estilo ds alteraciones predeterminado. El
+problema se puede resolver insertando manualmente@tie{}@code{!}
+y@tie{}@code{?} para las notas problemáticas.
@node Ambitus
-@subsubsection Ambitus
+@unnumberedsubsubsec Ambitus
@cindex ambitus
@cindex rango de alturas
\layout {
\context {
\Voice
- \consists Ambitus_engraver
+ \consists "Ambitus_engraver"
}
}
\relative c'' {
- aes c e2 cis,2
+ aes c e2
+ cis,1
}
@end lilypond
-Si tiene varias voces en un pentagrama único y quiere tener una sola indicación de ámbito
-por pentagrama en lugar de una por cada voz, añada el grabador
-@internalsref{Ambitus_engraver} al contexto @internalsref{Staff}
-y no al contexto @internalsref{Voice}. He aquà un ejemplo:
+@snippets
-@lilypond[verbatim,ragged-right,quote]
-\new Staff \with {
- \consists "Ambitus_engraver"
-}
-<<
- \new Voice \with {
- \remove "Ambitus_engraver"
- } \relative c'' {
- \override Ambitus #'X-offset = #-1.0
- \voiceOne
- c4 a d e f2
- }
- \new Voice \with {
- \remove "Ambitus_engraver"
- } \relative c' {
- \voiceTwo
- es4 f g as b2
- }
->>
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{adding-ambitus-per-voice.ly}
-@noindent
-Este ejemplo utiliza una capacidad avanzada,
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{ambitus-with-multiple-voices.ly}
-@example
-\override Ambitus #'X-offset = #-1.0
-@end example
-
-@noindent
-Este código mueve el ámbito a la izquierda. Se podrÃa haber conseguido el mismo
-efecto con @code{extra-offset}, pero en tal caso el sistema de formateo no
-reservarÃa espacio para el objeto que se ha movido.
@seealso
-Referencia del programa: @internalsref{Ambitus},
-@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
-@internalsref{AmbitusAccidental}.
+Glosario musical:
+@rglos{ambitus}.
+
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+Referencia de funcionamiento interno:
+@internalsref{Ambitus_engraver},
+@internalsref{Voice},
+@internalsref{Staff},
+@internalsref{Ambitus},
+@internalsref{AmbitusAccidental},
+@internalsref{AmbitusLine},
+@internalsref{AmbitusNoteHead},
+@internalsref{ambitus-interface}.
-Ejemplos:
-@lsr{vocal,ambitus@/.ly}.
@knownissues
-No se efectúa un tratamiento de las posibles colisiones en caso de varias indicaciones de ámbito
-simultáneas en distintas voces.
+No se efectúa un tratamiento de las posibles colisiones en caso de
+varias indicaciones de ámbito simultáneas en distintas voces.
@node Note heads
@subsection Note heads
+Esta sección propone formas de alterar las cabezas de las figuras.
+
@menu
* Special note heads::
* Easy notation note heads::
@end menu
@node Special note heads
-@subsubsection Special note heads
-
-@cindex note heads, special
-@cindex note heads, cross
-@cindex note heads, diamond
-@cindex note heads, parlato
-@cindex note heads, harmonic
-@cindex note heads, guitar
-@cindex special note heads
-@cindex cross note heads
-@cindex diamond note heads
-@cindex parlato note heads
-@cindex harmonic note heads
-@cindex guitar note heads
-
-Different note heads are used by various instruments for various
-meanings -- crosses are used for @q{parlato} with vocalists,
-stopped notes on guitar; diamonds are used for harmonics on string
-instruments, etc. There is a shorthand (@code{\harmonic}) for
-diamond shapes; the other note head styles are produced by
-tweaking the property:
+@unnumberedsubsubsec Special note heads
+
+@cindex figura, cabeza de la
+@cindex nota, cabeza especial de
+@cindex nota, cabeza de, en aspas
+@cindex nota, cabeza de, en rombo
+@cindex nota, cabeza de, en parlato
+@cindex nota, cabeza de, armónico
+@cindex nota, cabeza de, guitarra
+@cindex especiales, cabezas de figura
+@cindex aspas, cabezas de nota
+@cindex rombo, cabezas de nota
+@cindex parlato, cabezas de nota
+@cindex armónicos, cabezas de nota
+@cindex guitarra, cabezas de nota
+
+Varios instrumentos usan distintas formas para la cabeza de las notas
+con distintos significados: las aspas se usan para el @q{parlato} de
+los vocalistas, las notas apagadas en la guitarra; los romps se usan
+para los armónicos de los instrumentos de arco, etc. Hay una
+abreviatura (@code{\harmonic}) para las formas en rombo; los otros
+estilos de cabeza se producen trucando la propiedad:
@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
c4 d
@end lilypond
@noindent
-To see all note head styles, see @ref{Note head styles}.
+Para ver todos los estilos de cabeza de las notas, consulte @ref{Note
+head styles}.
@seealso
-Snippets: @lsrdir{Pitches,Pitches}.
-Notation Reference: @ref{Note head styles}.
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+Referencia de la notación:
+@ref{Note head styles}.
-Internals Reference: @internalsref{NoteHead},
-@internalsref{LedgerLineSpanner}.
+Referencia de funcionamiento interno:
+@internalsref{note-event},
+@internalsref{Note_heads_engraver},
+@internalsref{Ledger_line_engraver},
+@internalsref{NoteHead},
+@internalsref{LedgerLineSpanner},
+@internalsref{note-head-interface},
+@internalsref{ledger-line-spanner-interface}.
@node Easy notation note heads
-@subsubsection Easy notation note heads
+@unnumberedsubsubsec Easy notation note heads
+@cindex Hal Leonard
+@cindex principiantes, música para
+@cindex fácil, notación, cabezas de nota de
+@cindex música para principiantes
@cindex notas, cabezas de, estudio
@cindex notas, cabezas de, notación simplificada
+@cindex nots, cabezas de, para precticar
@cindex simplificada, notación
-@cindex Hal Leonard
-Las cabezas @q{easy play} (fáciles de tocar) tienen el nombre de la nota (en inglés) dentro de la cabeza. Se usa
-en la música para principiantes
+Las cabezas @q{easy play} (fáciles de tocar) tienen el nombre de la
+nota (en inglés) dentro de la cabeza. Se usa en la música para
+principiantes.
@lilypond[verbatim,quote,ragged-right]
#(set-global-staff-size 26)
}
@end lilypond
-La orden @code{\easyHeadsOn} sobreescribe los ajustes del objeto
+La instrucción @code{\easyHeadsOn} sobreescribe los ajustes del objeto
@code{NoteHead}. Estos ajustes se pueden deshacer mediante la
isntrucción @code{\easyHeadsOff}. Para que las letras sean legibles,
se tienen que imprimir en un tamaño grande de la tipografÃa. Para
@funindex \easyHeadsOff
@code{\easyHeadsOn}, @code{\easyHeadsOff}
+@seealso
+
+Referencia de la notación:
+@ref{Setting the staff size}.
+
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+Referencia de funcionamiento interno:
+@internalsref{note-event},
+@internalsref{Note_heads_engraver},
+@internalsref{NoteHead},
+@internalsref{note-head-interface}.
+
@node Shape note heads
-@subsubsection Shape note heads
+@unnumberedsubsubsec Shape note heads
@cindex notas, cabezas de, con formas
@cindex notas, cabezas de, Aiken
-@cindex notas, cabezas de, sacred harp(?)
+@cindex notas, cabezas de, arpa sacra
@cindex formas, notas con
@cindex Aiken, cabezas de nota con forma de
-@cindex sacred harp, cabezas de nota de
+@cindex arpa sacra, cabezas de nota de
@funindex \key
@funindex shapeNoteStyles
@funindex \aikenHeads
@funindex \sacredHarpHeads
-En notación de cabezas con forma, la forma de la cabeza corresponde
-a la función armónica de una nota dentro de la escala. Esta notación se hizo popular
-en los libros americanos de canciones durante el s.XIX.
+En la notación de cabezas con forma, la forma de la cabeza corresponde
+a la función armónica de una nota dentro de la escala. Esta notación
+se hizo popular en los libros americanos de canciones durante el
+s.XIX.
+
+Las cabezas con formas se pueden producir estableciendo
+@code{\aikenHeads} o @code{\sacredHarpHeads}, según el estilo deseado.
+
+@lilypond[verbatim,fragment,quote,ragged-right,relative=1]
+\aikenHeads
+c8 d4 e8 a2
+g1
+\sacredHarpHeads
+c,8 d4 e8 a2
+g1
+@end lilypond
-Las cabezas con formas se pueden producir estableciendo @code{\aikenHeads} o
-@code{\sacredHarpHeads}, según el estilo deseado.
+Las formas se determinan en función del grado de la escala, donde la
+tónica está determinada por la instrucción @code{\key}
-@lilypond[verbatim,relative=1,fragment]
- \aikenHeads
- c8 d4 e8 a2 g1
- \sacredHarpHeads
- c8 d4. e8 a2 g1
-@end lilypond
+@snippets
-Las formas se determinan en función del grado de la escala, donde la tónica
-está determinada por la instrucción @code{\key}
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{applying-note-head-styles-depending-on-the-step-of-the-scale.ly}
-@funindex \key
-@funindex shapeNoteStyles
-@funindex \aikenHeads
-@funindex \sacredHarpHeads
+@noindent
+Para ver todos los estilos de formas de cabeza de nota, consulte
+@ref{Note head styles}.
-Las cabezas con formas están programadas a través de la propiedad @code{shapeNoteStyles}.
-Su valor es un vector de sÃmbolos. El elemento en el lugar k indica qué estilo
-usa el grado k de la escala. Son posibles las combinaciones
-arbitrarias, p.ej.:
+@seealso
-@lilypond[verbatim,relative=1,fragment]
- \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond)
- c8 d4. e8 a2 g1
-@end lilypond
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+Referencia de la notación:
+@ref{Note head styles}.
+
+Referencia de funcionamiento interno:
+@internalsref{note-event},
+@internalsref{Note_heads_engraver},
+@internalsref{NoteHead},
+@internalsref{note-head-interface}.
@node Improvisation
-@subsubsection Improvisation
+@unnumberedsubsubsec Improvisation
+
+@cindex improvisación
+@cindex barradas, cabezas de nota
+@cindex notas, cabezas de, improvisación
+@cindex notas, cabezas de, barradas
+
+La improvisación se denota a veces mediante cabezas de nota en forma
+de barra inclinada, donde el ejecutante puede elegir cualquier nota
+pero con el ritmo especificado. Estas cabezas de nota se crean asÃ:
+
+@lilypond[verbatim,quote,ragged-right]
+\new Voice \with {
+ \consists "Pitch_squash_engraver"
+} \transpose c c' {
+ e8 e g a a16( bes) a8 g
+ \improvisationOn
+ e8 ~
+ e2 ~ e8 f4 f8 ~
+ f2
+ \improvisationOff
+ a16( bes) a8 g e
+}
+@end lilypond
+
+
+@predefined
+
+@funindex \improvisationOn
+@funindex \improvisationOff
+
+@code{\improvisationOn}, @code{\improvisationOff}
+
+@seealso
+
+Fragmentos de código:
+@lsrdir{Pitches,Pitches}.
+
+Referencia de funcionamiento interno:
+@internalsref{Pitch_squash_engraver},
+@internalsref{Voice},
+@internalsref{RhythmicStaff}.
-UNTRANSLATED NODE: IGNORE ME
# todo: add latex.
PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
-# this prevents aux files from being reused for translated docs
-TEXI2PDF_FLAGS = --tidy
MAIN_INFO_DOC = lilypond
INFO_DOCS = lilypond lilypond-internals music-glossary lilypond-program lilypond-learning
+++ /dev/null
-@c -*- coding: utf-8; mode: texinfo; -*-
-@ignore
- Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
- When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
-@end ignore
-
-@c \version "2.11.38"
-
-@node Bagpipes
-@section Bagpipes
-
-This section includes extra information for writing for bagpipes.
-
-@menu
-* Bagpipe sections::
-@end menu
-
-
-@node Bagpipe sections
-@subsection Bagpipe sections
-
-@menu
-* Bagpipe definitions::
-* Bagpipe example::
-@end menu
-
-@node Bagpipe definitions
-@subsubsection Bagpipe definitions
-
-LilyPond contains special definitions for music for the Scottish
-highland bagpipe; to use them, add
-
-@example
-\include "bagpipe.ly"
-@end example
-
-@noindent
-at the top of your input file. This lets you add the special grace notes
-common to bagpipe music with short commands. For example, you could
-write @code{\taor} instead of
-
-@example
-\grace @{ \small G32[ d G e] @}
-@end example
-
-@code{bagpipe.ly} also contains pitch definitions for the bagpipe
-notes in the appropriate octaves, so you do not need to worry about
-@code{\relative} or @code{\transpose}.
-
-@lilypond[ragged-right,verbatim,quote,notime]
-\include "bagpipe.ly"
-{ \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
-@end lilypond
-
-Bagpipe music nominally uses the key of D Major (even though that
-isn't really true). However, since that is the only key that can be used,
-the key signature is normally not written out. To set this up correctly,
-always start your music with @code{\hideKeySignature}. If you for some
-reason want to show the key signature, you can use @code{\showKeySignature}
-instead.
-
-Some modern music use cross fingering on c and f to flatten those notes.
-This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
-piobaireachd high g can be written @code{gflat} when it occurs in light
-music.
-
-
-@node Bagpipe example
-@subsubsection Bagpipe example
-
-This is what the well known tune Amazing Grace looks like in bagpipe
-notation.
-
-@lilypond[verbatim,quote]
-\include "bagpipe.ly"
-\layout {
- indent = 0.0\cm
- \context { \Score \remove "Bar_number_engraver" }
-}
-
-\header {
- title = "Amazing Grace"
- meter = "Hymn"
- arranger = "Trad. arr."
-}
-
-{
- \hideKeySignature
- \time 3/4
- \grg \partial 4 a8. d16
- \slurd d2 \grg f8[ e32 d16.]
- \grg f2 \grg f8 e
- \thrwd d2 \grg b4
- \grG a2 \grg a8. d16
- \slurd d2 \grg f8[ e32 d16.]
- \grg f2 \grg e8. f16
- \dblA A2 \grg A4
- \grg A2 f8. A16
- \grg A2 \hdblf f8[ e32 d16.]
- \grg f2 \grg f8 e
- \thrwd d2 \grg b4
- \grG a2 \grg a8. d16
- \slurd d2 \grg f8[ e32 d16.]
- \grg f2 e4
- \thrwd d2.
- \slurd d2
- \bar "|."
-}
-@end lilypond
-
-
-
-
-
@c \version "2.11.38"
-@node Chords
-@section Chords
+@node Chord notation
+@section Chord notation
Intro text.
+++ /dev/null
-
-@node Full Grob interface list
-@unnumbered Full Grob interface list
-
-The automatic documentation failed to build.
-Visit @uref{http://@/www@/.lilypond@/.nl/@doc/@/v2.5,prebuilt LilyPond Documentation online}.
@node Selecting notation font size
@unnumberedsubsubsec Selecting notation font size
-@cindex font size
-@cindex font size, selecting
-@cindex selecting font size
+@cindex font size (notation)
+@cindex selecting font size (notation)
The font size of notation elements may be altered. It does not
change the size of variable symbols, such as beams or slurs.
+@warning{For @strong{text} font sizes, see
+@ref{Common markup commands}.}
+
@lilypond[quote,fragment,relative=2,verbatim,ragged-right]
\huge
c4.-> d8---3
c4.-> d8---3
\tiny
c4.-> d8---3
-\normalsize
-c2
+\teeny
+c4.-> d8---3
@end lilypond
-@cindex font size scaling
+@cindex font size (notation) scaling
-Internally, this sets the @code{fontSize} property. This in turns
+Internally, this sets the @code{fontSize} property. This in turn
causes the @code{font-size} property to be set in all layout
objects. The value of @code{font-size} is a number indicating the
size relative to the standard size for the current staff height.
Each step up is an increase of approximately 12% of the font size.
-Six steps is exactly a factor two. The Scheme function
+Six steps is exactly a factor of two. The Scheme function
@code{magstep} converts a @code{font-size} number to a scaling
factor. The @code{font-size} property can also be set directly,
so that only certain layout objects are affected.
c4.-> d8---3
@end lilypond
-@cindex standard font size
-@cindex font size, standard
+@cindex standard font size (notation)
+@cindex font size (notation), standard
Font size changes are achieved by scaling the design size that is
closest to the desired size. The standard font size (for
-@code{font-size} equals 0), depends on the standard staff height.
+@code{font-size = #0}), depends on the standard staff height.
For a 20pt staff, a 10pt font is selected.
The @code{font-size} property can only be set on layout objects
@predefined
+@funindex \teeny
+@code{\teeny},
@funindex \tiny
@code{\tiny},
@funindex \small
@lsrdir{Editorial,Editorial-annotations}.
Internals Reference:
+@internalsref{fontSize},
+@internalsref{font-size},
@internalsref{font-interface}.
@cindex thumb-script
-You can use the thumb-script (e.g., in cello music)to indicate that a
+You can use the thumb-script (e.g., in cello music) to indicate that a
note should be played with the thumb.
@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
chord by adding them after the pitches.
@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-< c-1 e-2 g-3 b-5 >2 < d-1 f-2 a-3 c-5 >
+<c-1 e-2 g-3 b-5>2 <d-1 f-2 a-3 c-5>
@end lilypond
Fingering instructions may be manually placed above or below the
@cindex coloring notes
@cindex notes, colored
-Individual objects may be assigned colors. You may use the color
-names listed in the @ref{List of colors}.
+Individual objects may be assigned colors. Valid color names
+are listed in the @ref{List of colors}.
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
\override NoteHead #'color = #red
b2 cis
@end lilypond
-You can get exact RGB colors by specifying the rgb-color number.
+Exact RGB colors can be specified using the Scheme function
+@code{rgb-color}.
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
\with-color #(x11-color 'navy) "Clarinet"
}
-%black
+% black
\override Stem #'color = #(rgb-color 0 0 0)
gis8 a
% white
@lsrdir{Editorial,Editorial-annotations}.
@knownissues
-An x11 color is not necessarily exactly the same shade as a
+An X11 color is not necessarily exactly the same shade as a
similarly named normal color.
-Not all x11 colors are distinguishable in a web browser i.e. a web browser
-might not display a difference between 'LimeGreen and 'ForestGreen. For
-web use normal colors are recommended (i.e. #blue, #green, #red).
+Not all X11 colors are distinguishable in a web browser, i.e.,
+a web browser might not display a difference between @code{'LimeGreen}
+and @code{'ForestGreen}. For web use normal colors are recommended
+(i.e., @code{#blue}, @code{#green}, @code{#red}).
Notes in a chord cannot be colored with @code{\override}; use
{
\balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
a8
- \balloonGrobText #'Rest #' (-4 . -4) \markup { "I'm a rest" }
+ \balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" }
r
<c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
}
@end lilypond
There are two music functions, @code{balloonGrobText} and
-@code{balloonText}; The former is used like @code{\once \override} to
-attach text to any grob, and the latter is used like @code{ \tweak},
+@code{balloonText}; the former is used like @code{\once \override} to
+attach text to any grob, and the latter is used like @code{\tweak},
typically within chords, to attach text to an individual note.
@cindex balloon
\layout {
\context {
\Staff
- % sets up grids
+ % set up grids
\consists "Grid_point_engraver"
- % this sets the grid interval to 1 quarternote (crotchet)
+ % set the grid interval to one quarter note
gridInterval = #(ly:make-moment 1 4)
- }
-}
-
-\new Score \with {
- % by default this centers grid lines horizontally below and to the
- % left side of the notehead, the grid lines extend from
- % the middle lines of each staff
- \consists "Grid_line_span_engraver"
}
+ \context {
+ \Score
+ % by default this centers grid lines horizontally below
+ % and to the left side of the note head, the grid lines
+ % extending from the middle lines of each staff
+ \consists "Grid_line_span_engraver"
+ }
+}
-\new ChoirStaff <<
- \new Staff {
- \relative c'' {
+\score {
+ \new ChoirStaff <<
+ \new Staff \relative c'' {
\stemUp
c4. d8 e8 f g4
}
- }
- \new Staff {
- \clef bass
- \relative c {
+ \new Staff \relative c {
+ \clef bass
\stemDown
- c4 g' f e
+ c4 g' f e
}
- }
->>
+ >>
+}
@end lilypond
@snippets
@cindex note grouping bracket
Brackets are used in musical analysis to indicate structure in musical
-pieces. LilyPond supports a simple form of horizontal brackets.
+pieces. Simple horizontal brackets are supported.
@lilypond[quote,verbatim,ragged-right]
\layout {
\context {
- \Staff \consists "Horizontal_bracket_engraver"
+ \Staff
+ \consists "Horizontal_bracket_engraver"
}
}
\relative c'' {
@lilypond[quote,verbatim,ragged-right]
\layout {
\context {
- \Staff \consists "Horizontal_bracket_engraver"
+ \Staff
+ \consists "Horizontal_bracket_engraver"
}
}
\relative c'' {
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+@c \version "2.11.38"
+
+@node Fretted string instruments
+@section Fretted string instruments
+
+@cindex tablature
+@cindex guitar tablature
+
+@menu
+* Common notation for fretted strings::
+* Guitar::
+* Banjo::
+@end menu
+
+@node Common notation for fretted strings
+@subsection Common notation for fretted strings
+
+@menu
+* References for fretted strings::
+* String number indications::
+* Default tablatures::
+* Custom tablatures::
+* Fret diagrams::
+* Right hand fingerings::
+@end menu
+
+@node References for fretted strings
+@subsubsection References for fretted strings
+
+@c TODO Add refs
+TBC
+
+@node String number indications
+@subsubsection String number indications
+
+@cindex String numbers
+
+String numbers can be added to chords, by indicating the string number
+with @code{\}@var{number},
+
+@lilypond[relative,relative=1,ragged-right,fragment]
+<c\1 e\2 g\3>
+@end lilypond
+
+
+@seealso
+
+Internals Reference: @internalsref{StringNumber},
+@c @lsr{guitar/,string-number.ly}.
+
+
+@node Default tablatures
+@subsubsection Default tablatures
+@cindex Tablatures, basic
+@cindex Tablatures, default
+
+Tablature notation is used for notating music for plucked string
+instruments. Pitches are not denoted with note heads, but by
+numbers indicating on which string and fret a note must be played. LilyPond
+offers limited support for tablature.
+
+The string number associated to a note is given as a backslash
+followed by a number, e.g., @code{c4\3} for a C quarter on the third
+string. By default, string 1 is the highest one, and the tuning
+defaults to the standard guitar tuning (with 6 strings). The notes
+are printed as tablature, by using @internalsref{TabStaff} and
+@internalsref{TabVoice} contexts
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new TabStaff {
+ a,4\5 c'\2 a\3 e'\1
+ e\4 c'\2 a\3 e'\1
+}
+@end lilypond
+
+@funindex minimumFret
+@cindex fret
+
+When no string is specified, the first string that does not give a
+fret number less than @code{minimumFret} is selected. The default
+value for @code{minimumFret} is 0
+
+
+@example
+e16 fis gis a b4
+\set TabStaff.minimumFret = #8
+e16 fis gis a b4
+@end example
+@lilypond[quote,ragged-right]
+frag = {
+ \key e \major
+ e16 fis gis a b4
+ \set TabStaff.minimumFret = #8
+ e16 fis gis a b4
+}
+ \new StaffGroup <<
+ \new Staff { \clef "G_8" \frag }
+ \new TabStaff { \frag }
+ >>
+@end lilypond
+
+
+@snippets
+
+To print tablatures with stems down and horizontal beams,
+initialize the @code{TabStaff} with this code:
+
+@example
+\stemDown
+\override Beam #'damping = #100000
+@end example
+
+@seealso
+
+Internals Reference: @internalsref{TabNoteHead}, @internalsref{TabStaff}, @internalsref{TabVoice}.
+
+@knownissues
+
+Chords are not handled in a special way, and hence the automatic
+string selector may easily select the same string to two notes in a
+chord.
+
+In order to handle @code{\partcombine}, a @code{TabStaff} must use
+specially-created voices:
+
+@lilypond[quote,ragged-right,verbatim]
+melodia = \partcombine { e4 g g g }{ e4 e e e }
+<<
+ \new TabStaff <<
+ \new TabVoice = "one" s1
+ \new TabVoice = "two" s1
+ \new TabVoice = "shared" s1
+ \new TabVoice = "solo" s1
+ { \melodia }
+ >>
+>>
+@end lilypond
+
+
+@node Custom tablatures
+@subsubsection Custom tablatures
+@cindex Tablatures, custom
+
+You can change the tuning of the strings. A string tuning is given as
+a Scheme list with one integer number for each string, the number
+being the pitch (measured in semitones relative to middle C) of an
+open string. The numbers specified for @code{stringTunings} are the
+numbers of semitones to subtract or add, starting the specified pitch
+by default middle C, in string order. LilyPond automatically calculates
+the number of strings by looking at @code{stringTunings}.
+
+In the next example,
+@code{stringTunings} is set for the pitches e, a, d, and g
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new TabStaff <<
+ \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
+ {
+ a,4 c' a e' e c' a e'
+ }
+>>
+@end lilypond
+
+LilyPond comes with predefined string tunings for banjo, mandolin, guitar
+and bass guitar.
+
+@example
+\set TabStaff.stringTunings = #bass-tuning
+@end example
+
+The default string tuning is @code{guitar-tuning} (the standard EADGBE
+tuning).
+Some other predefined tunings are @code{guitar-open-g-tuning},
+@code{mandolin-tuning} and @code{banjo-open-g-tuning}.
+
+@seealso
+
+The file @file{scm/@/output@/-lib@/.scm} contains the predefined string
+tunings.
+Internals Reference: @internalsref{Tab_note_heads_engraver}.
+
+@knownissues
+
+No guitar special effects have been implemented.
+
+
+
+@node Fret diagrams
+@subsubsection Fret diagrams
+@cindex fret diagrams
+@cindex chord diagrams
+
+Fret diagrams can be added to music as a markup to the desired note. The
+markup contains information about the desired fret diagram, as shown in the
+following example
+
+@lilypond[verbatim, ragged-right, quote]
+\new Voice {
+ d'^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
+ d' d' d'
+ fis'^\markup \override #'(size . 0.75) {
+ \override #'(finger-code . below-string) {
+ \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
+ (place-fret 5 4 3) (place-fret 4 4 4)
+ (place-fret 3 3 2) (place-fret 2 2 1)
+ (place-fret 1 2 1))
+ }
+ }
+ fis' fis' fis'
+ c'^\markup \override #'(dot-radius . 0.35) {
+ \override #'(finger-code . in-dot) {
+ \override #'(dot-color . white) {
+ \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
+ }
+ }
+ }
+ c' c' c'
+}
+@end lilypond
+
+
+There are three different fret-diagram markup interfaces: standard, terse,
+and verbose. The three interfaces produce equivalent markups, but have
+varying amounts of information in the markup string. Details about the
+markup interfaces are found at @ref{Text markup commands}.
+
+You can set a number of graphical properties according to your preference.
+Details about the property interface to fret diagrams are found at
+@internalsref{fret-diagram-interface}.
+
+
+@seealso
+
+Examples: @c @lsrdir{guitar}
+
+
+@node Right hand fingerings
+@subsubsection Right hand fingerings
+
+Right hand fingerings in chords can be entered using
+@code{@var{note}-\rightHandFinger @var{finger}}
+
+@lilypond[verbatim,fragment,relative=2]
+ <c-\rightHandFinger #1 e-\rightHandFinger #2 >
+@end lilypond
+
+for brevity, you can abbreviate @code{\rightHandFinger} to something
+short, for example @code{RH},
+
+@example
+#(define RH rightHandFinger)
+@end example
+
+@cindex fingerings, right hand, for guitar
+@cindex right hand fingerings for guitar
+
+@snippets
+
+You may exercise greater control over right handing fingerings by
+setting @code{strokeFingerOrientations},
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+#(define RH rightHandFinger)
+{
+ \set strokeFingerOrientations = #'(up down)
+ <c-\RH #1 es-\RH #2 g-\RH #4 > 4
+ \set strokeFingerOrientations = #'(up right down)
+ <c-\RH #1 es-\RH #2 g-\RH #4 > 4
+}
+@end lilypond
+
+The letters used for the fingerings are contained in the property
+@code{digit-names}, but they can also be set individually by supplying
+@code{\rightHandFinger} with a string argument, as in the following example
+
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+#(define RH rightHandFinger)
+{
+ \set strokeFingerOrientations = #'(right)
+ \override StrokeFinger #'digit-names = ##("x" "y" "z" "!" "@")
+ <c-\RH #5 >4
+ <c-\RH "@">4
+}
+@end lilypond
+
+@seealso
+
+Internals Reference: @internalsref{StrokeFinger}
+
+
+@node Guitar
+@subsection Guitar
+
+@menu
+* Guitar tablatures::
+* Indicating position and barring::
+@end menu
+
+@node Guitar tablatures
+@subsubsection Guitar tablatures
+
+@c TODO Add text
+TBC
+
+@node Indicating position and barring
+@subsubsection Indicating position and barring
+
+This example demonstrates how to include guitar position and
+barring indications.
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=0]
+\clef "G_8"
+b16 d16 g16 b16 e16
+\textSpannerDown
+\override TextSpanner #'bound-details #'left #'text = #"XII "
+ g16\startTextSpan
+ b16 e16 g16 e16 b16 g16\stopTextSpan
+e16 b16 g16 d16
+@end lilypond
+
+
+Stopped (X) note heads are used in guitar music to signal a place where the
+guitarist must play a certain note or chord, with its fingers just
+touching the strings instead of fully pressing them. This gives the sound a
+percussive noise-like sound that still maintains part of the original
+pitch. It is notated with cross note heads; this is
+demonstrated in @ref{Special note heads}.
+
+
+@node Banjo
+@subsection Banjo
+
+@menu Banjo tablatures
+* Banjo tablatures::
+@end menu
+
+@node Banjo tablatures
+@subsubsection Banjo tablatures
+@cindex Banjo tablatures
+
+LilyPond has basic support for five stringed banjo. When making tablatures
+for five stringed banjo, use the banjo tablature format function to get
+correct
+fret numbers for the fifth string:
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new TabStaff <<
+ \set TabStaff.tablatureFormat = #fret-number-tablature-format-banjo
+ \set TabStaff.stringTunings = #banjo-open-g-tuning
+ {
+ \stemDown
+ g8 d' g'\5 a b g e d' |
+ g4 d''8\5 b' a'\2 g'\5 e'\2 d' |
+ g4
+ }
+>>
+@end lilypond
+
+A number of common tunings for banjo are predefined in LilyPond:
+@code{banjo-c-tuning} (gCGBD), @code{banjo-modal-tuning} (gDGCD),
+@code{banjo-open-d-tuning} (aDF#AD) and @code{banjo-open-dm-tuning}
+(aDFAD).
+
+These tunings may be converted to four string banjo tunings using the
+@code{four-string-banjo} function:
+
+@example
+\set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
+@end example
+
+@seealso
+
+The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings.
+
+
but more complex scores.
@menu
-* How LilyPond files work::
+* How LilyPond input files work::
* Voices contain music::
* Contexts and engravers::
* Extending the templates::
@end menu
-@node How LilyPond files work
-@section How LilyPond files work
+@node How LilyPond input files work
+@section How LilyPond input files work
The LilyPond input format is quite free-form, giving experienced
users a lot of flexibility to structure their files however they
@cindex Music expression, compound
We saw the general organization of LilyPond input files in the
-previous section, @ref{How LilyPond files work}. But we seemed to
+previous section, @ref{How LilyPond input files work}. But we seemed to
skip over the most important part: how do we figure out what to
write after @code{\score}?
known to LilyPond it will not cause any action to be taken.
This is one of the reasons why it is highly recommended to
use a context-sensitive editor with syntax highlighting for
-editing LilyPond files, such as Vim, Jedit, ConTEXT or Emacs,
+editing LilyPond input files, such as Vim, Jedit, ConTEXT or Emacs,
since unknown property names will be highlighted differently.
The @code{instrumentName} property will take effect only
if it is set in the @code{Staff} context, but
some properties can be set in more than one context.
For example, the property @code{extraNatural} is by
-default set to ##t (true) for all staves.
-If it is set to ##f (false) in one particular @code{Staff}
+default set to ##t (true) for all staves.
+If it is set to ##f (false) in one particular @code{Staff}
context it applies just to the accidentals on that staff.
If it is set to false in the @code{Score} context
it applies to all staves.
+++ /dev/null
-@c -*- coding: utf-8; mode: texinfo; -*-
-@ignore
- Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
- When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
-@end ignore
-
-@c \version "2.11.38"
-
-@node Guitar
-@section Guitar
-
-@cindex tablature
-@cindex guitar tablature
-
-@menu
-* Guitar sections::
-@end menu
-
-@node Guitar sections
-@subsection Guitar sections
-
-@menu
-* String number indications::
-* Tablatures basic::
-* Non-guitar tablatures::
-* Banjo tablatures::
-* Fret diagrams::
-* Right hand fingerings::
-* Other guitar issues::
-@end menu
-
-@node String number indications
-@subsubsection String number indications
-
-@cindex String numbers
-
-String numbers can be added to chords, by indicating the string number
-with @code{\}@var{number},
-
-@lilypond[relative,relative=1,ragged-right,fragment]
-<c\1 e\2 g\3>
-@end lilypond
-
-
-@seealso
-
-Internals Reference: @internalsref{StringNumber},
-@c @lsr{guitar/,string-number.ly}.
-
-
-@node Tablatures basic
-@subsubsection Tablatures basic
-@cindex Tablatures basic
-
-Tablature notation is used for notating music for plucked string
-instruments. Pitches are not denoted with note heads, but by
-numbers indicating on which string and fret a note must be played. LilyPond
-offers limited support for tablature.
-
-The string number associated to a note is given as a backslash
-followed by a number, e.g., @code{c4\3} for a C quarter on the third
-string. By default, string 1 is the highest one, and the tuning
-defaults to the standard guitar tuning (with 6 strings). The notes
-are printed as tablature, by using @internalsref{TabStaff} and
-@internalsref{TabVoice} contexts
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\new TabStaff {
- a,4\5 c'\2 a\3 e'\1
- e\4 c'\2 a\3 e'\1
-}
-@end lilypond
-
-@funindex minimumFret
-@cindex fret
-
-When no string is specified, the first string that does not give a
-fret number less than @code{minimumFret} is selected. The default
-value for @code{minimumFret} is 0
-
-
-@example
-e16 fis gis a b4
-\set TabStaff.minimumFret = #8
-e16 fis gis a b4
-@end example
-@lilypond[quote,ragged-right]
-frag = {
- \key e \major
- e16 fis gis a b4
- \set TabStaff.minimumFret = #8
- e16 fis gis a b4
-}
- \new StaffGroup <<
- \new Staff { \clef "G_8" \frag }
- \new TabStaff { \frag }
- >>
-@end lilypond
-
-
-@snippets
-
-To print tablatures with stems down and horizontal beams,
-initialize the @code{TabStaff} with this code:
-
-@example
-\stemDown
-\override Beam #'damping = #100000
-@end example
-
-@seealso
-
-Internals Reference: @internalsref{TabNoteHead}, @internalsref{TabStaff}, @internalsref{TabVoice}.
-
-@knownissues
-
-Chords are not handled in a special way, and hence the automatic
-string selector may easily select the same string to two notes in a
-chord.
-
-In order to handle @code{\partcombine}, a @code{TabStaff} must use
-specially-created voices:
-
-@lilypond[quote,ragged-right,verbatim]
-melodia = \partcombine { e4 g g g }{ e4 e e e }
-<<
- \new TabStaff <<
- \new TabVoice = "one" s1
- \new TabVoice = "two" s1
- \new TabVoice = "shared" s1
- \new TabVoice = "solo" s1
- { \melodia }
- >>
->>
-@end lilypond
-
-
-@node Non-guitar tablatures
-@subsubsection Non-guitar tablatures
-@cindex Non-guitar tablatures
-
-You can change the tuning of the strings. A string tuning is given as
-a Scheme list with one integer number for each string, the number
-being the pitch (measured in semitones relative to middle C) of an
-open string. The numbers specified for @code{stringTunings} are the
-numbers of semitones to subtract or add, starting the specified pitch
-by default middle C, in string order. LilyPond automatically calculates
-the number of strings by looking at @code{stringTunings}.
-
-In the next example,
-@code{stringTunings} is set for the pitches e, a, d, and g
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\new TabStaff <<
- \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
- {
- a,4 c' a e' e c' a e'
- }
->>
-@end lilypond
-
-LilyPond comes with predefined string tunings for banjo, mandolin, guitar
-and bass guitar.
-
-@example
-\set TabStaff.stringTunings = #bass-tuning
-@end example
-
-The default string tuning is @code{guitar-tuning} (the standard EADGBE
-tuning).
-Some other predefined tunings are @code{guitar-open-g-tuning},
-@code{mandolin-tuning} and @code{banjo-open-g-tuning}.
-
-@seealso
-
-The file @file{scm/@/output@/-lib@/.scm} contains the predefined string
-tunings.
-Internals Reference: @internalsref{Tab_note_heads_engraver}.
-
-@knownissues
-
-No guitar special effects have been implemented.
-
-
-
-@node Banjo tablatures
-@subsubsection Banjo tablatures
-@cindex Banjo tablatures
-
-LilyPond has basic support for five stringed banjo. When making tablatures
-for five stringed banjo, use the banjo tablature format function to get
-correct
-fret numbers for the fifth string:
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\new TabStaff <<
- \set TabStaff.tablatureFormat = #fret-number-tablature-format-banjo
- \set TabStaff.stringTunings = #banjo-open-g-tuning
- {
- \stemDown
- g8 d' g'\5 a b g e d' |
- g4 d''8\5 b' a'\2 g'\5 e'\2 d' |
- g4
- }
->>
-@end lilypond
-
-A number of common tunings for banjo are predefined in LilyPond:
-@code{banjo-c-tuning} (gCGBD), @code{banjo-modal-tuning} (gDGCD),
-@code{banjo-open-d-tuning} (aDF#AD) and @code{banjo-open-dm-tuning}
-(aDFAD).
-
-These tunings may be converted to four string banjo tunings using the
-@code{four-string-banjo} function:
-
-@example
-\set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
-@end example
-
-@seealso
-
-The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings.
-
-
-@node Fret diagrams
-@subsubsection Fret diagrams
-@cindex fret diagrams
-@cindex chord diagrams
-
-Fret diagrams can be added to music as a markup to the desired note. The
-markup contains information about the desired fret diagram, as shown in the
-following example
-
-@lilypond[verbatim, ragged-right, quote]
-\new Voice {
- d'^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
- d' d' d'
- fis'^\markup \override #'(size . 0.75) {
- \override #'(finger-code . below-string) {
- \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
- (place-fret 5 4 3) (place-fret 4 4 4)
- (place-fret 3 3 2) (place-fret 2 2 1)
- (place-fret 1 2 1))
- }
- }
- fis' fis' fis'
- c'^\markup \override #'(dot-radius . 0.35) {
- \override #'(finger-code . in-dot) {
- \override #'(dot-color . white) {
- \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
- }
- }
- }
- c' c' c'
-}
-@end lilypond
-
-
-There are three different fret-diagram markup interfaces: standard, terse,
-and verbose. The three interfaces produce equivalent markups, but have
-varying amounts of information in the markup string. Details about the
-markup interfaces are found at @ref{Text markup commands}.
-
-You can set a number of graphical properties according to your preference.
-Details about the property interface to fret diagrams are found at
-@internalsref{fret-diagram-interface}.
-
-
-@seealso
-
-Examples: @c @lsrdir{guitar}
-
-
-@node Right hand fingerings
-@subsubsection Right hand fingerings
-
-Right hand fingerings in chords can be entered using
-@code{@var{note}-\rightHandFinger @var{finger}}
-
-@lilypond[verbatim,fragment,relative=2]
- <c-\rightHandFinger #1 e-\rightHandFinger #2 >
-@end lilypond
-
-for brevity, you can abbreviate @code{\rightHandFinger} to something
-short, for example @code{RH},
-
-@example
-#(define RH rightHandFinger)
-@end example
-
-@cindex fingerings, right hand, for guitar
-@cindex right hand fingerings for guitar
-
-@snippets
-
-You may exercise greater control over right handing fingerings by
-setting @code{strokeFingerOrientations},
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-#(define RH rightHandFinger)
-{
- \set strokeFingerOrientations = #'(up down)
- <c-\RH #1 es-\RH #2 g-\RH #4 > 4
- \set strokeFingerOrientations = #'(up right down)
- <c-\RH #1 es-\RH #2 g-\RH #4 > 4
-}
-@end lilypond
-
-The letters used for the fingerings are contained in the property
-@code{digit-names}, but they can also be set individually by supplying
-@code{\rightHandFinger} with a string argument, as in the following example
-
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-#(define RH rightHandFinger)
-{
- \set strokeFingerOrientations = #'(right)
- \override StrokeFinger #'digit-names = ##("x" "y" "z" "!" "@")
- <c-\RH #5 >4
- <c-\RH "@">4
-}
-@end lilypond
-
-@seealso
-
-Internals Reference: @internalsref{StrokeFinger}
-
-
-
-@node Other guitar issues
-@subsubsection Other guitar issues
-
-This example demonstrates how to include guitar position and
-barring indications.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=0]
-\clef "G_8"
-b16 d16 g16 b16 e16
-\textSpannerDown
-\override TextSpanner #'bound-details #'left #'text = #"XII "
- g16\startTextSpan
- b16 e16 g16 e16 b16 g16\stopTextSpan
-e16 b16 g16 d16
-@end lilypond
-
-
-Stopped (X) note heads are used in guitar music to signal a place where the
-guitarist must play a certain note or chord, with its fingers just
-touching the strings instead of fully pressing them. This gives the sound a
-percussive noise-like sound that still maintains part of the original
-pitch. It is notated with cross note heads; this is
-demonstrated in @ref{Special note heads}.
-
-
-
For more information on output formats, see @rprogram{Invoking LilyPond}.
-@seealso
-
-Examples: @c @lsr{non-notation,clip-systems.ly}
-
@node Including LilyPond files
@subsection Including LilyPond files
@end example
-@seealso
-
-@c @lsr{text,utf-8.ly}
-
-
@node Different editions from one source
@subsection Different editions from one source
@end example
-@seealso
-
-Examples: @c @lsr{parts,tag@/-filter@/.ly}
-
-
@knownissues
Multiple rests are not merged if you create the score with both tagged
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+@c \version "2.11.38"
+
+@node Keyboard instruments
+@section Keyboard instruments
+
+@menu
+* Common notation for keyboards::
+* Piano::
+* Accordion::
+@end menu
+
+@node Common notation for keyboards
+@subsection Common notation for keyboards
+
+@menu
+* References for keyboards::
+* The piano staff::
+* Changing staff manually::
+* Changing staff automatically::
+* Staff-change lines::
+* Cross-staff stems::
+@end menu
+
+@node References for keyboards
+@subsubsection References for keyboards
+
+@c TODO add refs
+TBC
+
+@node The piano staff
+@subsubsection The piano staff
+
+Keyboard instruments are usually notated with Piano staves.
+These are two normal staves coupled with a brace. The staves
+are largely independent, but sometimes voices can cross between the
+two staves. The same notation is also used for harps and other key
+instruments. The @internalsref{PianoStaff} is especially built to
+handle this cross-staffing behavior. In this section we discuss the
+@internalsref{PianoStaff} and some other pianistic peculiarities.
+
+
+@knownissues
+
+Dynamics are not centered, but workarounds do exist. See the
+@q{piano centered dynamics} template in @rlearning{Piano templates}.
+
+@cindex cross staff stem
+@cindex stem, cross staff
+@cindex distance between staves in piano music
+
+@node Changing staff manually
+@subsubsection Changing staff manually
+
+@cindex manual staff switches
+@cindex staff switch, manual
+
+Voices can be switched between staves manually, using the command
+@example
+\change Staff = @var{staffname} @var{music}
+@end example
+
+@noindent
+The string @var{staffname} is the name of the staff. It switches the
+current voice from its current staff to the Staff called
+@var{staffname}. Typically @var{staffname} is @code{"up"} or
+@code{"down"}. The @code{Staff} referred to must already exist, so
+usually the setup for a score will start with a setup of the staves,
+
+@example
+<<
+ \new Staff = "up" @{
+ \skip 1 * 10 % @emph{keep staff alive}
+ @}
+ \new Staff = "down" @{
+ \skip 1 * 10 % @emph{idem}
+ @}
+>>
+@end example
+
+
+and the @code{Voice} is inserted afterwards
+
+@example
+\context Staff = down
+ \new Voice @{ @dots{} \change Staff = up @dots{} @}
+@end example
+
+
+@node Changing staff automatically
+@subsubsection Changing staff automatically
+@cindex Automatic staff changes
+
+Voices can be made to switch automatically between the top and the bottom
+staff. The syntax for this is
+
+@quotation
+@example
+\autochange @dots{}@var{music}@dots{}
+@end example
+@end quotation
+
+@noindent
+This will create two staves inside the current PianoStaff, called
+@code{up} and @code{down}. The lower staff will be in bass clef by
+default.
+
+A @code{\relative} section that is outside of @code{\autochange} has
+no effect on the pitches of @var{music}, so, if necessary, put
+@code{\relative} inside @code{\autochange} like
+
+@quotation
+@example
+\autochange \relative @dots{} @dots{}
+@end example
+@end quotation
+
+
+The autochanger switches on basis of the pitch (middle C is the turning
+point), and it looks ahead skipping over rests to switch in
+advance. Here is a practical example
+
+@lilypond[quote,verbatim,ragged-right]
+\new PianoStaff
+ \autochange \relative c'
+ {
+ g4 a b c d r4 a g
+ }
+@end lilypond
+
+
+@seealso
+
+@c Notation Reference: @ref{Manual staff switches}.
+
+Internals Reference: @internalsref{AutoChangeMusic}.
+
+
+
+@knownissues
+
+The staff switches may not end up in optimal places. For high
+quality output, staff switches should be specified manually.
+
+
+@code{\autochange} cannot be inside @code{\times}.
+
+@node Staff-change lines
+@subsubsection Staff-change lines
+
+
+@cindex follow voice
+@cindex staff switching
+@cindex cross staff
+
+@funindex followVoice
+
+Whenever a voice switches to another staff, a line connecting the notes
+can be printed automatically. This is switched on by setting
+@code{followVoice} to true
+
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+\new PianoStaff <<
+ \new Staff="one" {
+ \set followVoice = ##t
+ c1
+ \change Staff=two
+ b2 a
+ }
+ \new Staff="two" { \clef bass \skip 1*2 }
+>>
+@end lilypond
+
+@seealso
+
+Internals Reference: @internalsref{VoiceFollower}.
+
+@predefined
+
+@funindex \showStaffSwitch
+@code{\showStaffSwitch},
+@funindex \hideStaffSwitch
+@code{\hideStaffSwitch}.
+
+@node Cross-staff stems
+@subsubsection Cross-staff stems
+
+Chords that cross staves may be produced by increasing the length
+of the stem in the lower staff, so it reaches the stem in the upper
+staff, or vice versa.
+
+@lilypond[ragged-right,verbatim,quote]
+stemExtend = {
+ \once \override Stem #'length = #10
+ \once \override Stem #'cross-staff = ##t
+}
+noFlag = \once \override Stem #'flag-style = #'no-flag
+\new PianoStaff <<
+ \new Staff {
+ \stemDown \stemExtend
+ f'4
+ \stemExtend \noFlag
+ f'8
+ }
+ \new Staff {
+ \clef bass
+ a4 a8
+ }
+>>
+@end lilypond
+
+@node Piano
+@subsection Piano
+
+@menu
+* Piano pedals::
+@end menu
+
+@node Piano pedals
+@subsubsection Piano pedals
+@cindex Pedals
+
+Pianos have pedals that alter the way sound is produced. Generally, a
+piano has three pedals, sustain, una corda, and sostenuto.
+
+
+Piano pedal instruction can be expressed by attaching
+@code{\sustainDown}, @code{\sustainUp}, @code{\unaCorda},
+@code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp} to a
+note or chord
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+c'4\sustainDown c'4\sustainUp
+@end lilypond
+
+What is printed can be modified by setting @code{pedal@var{X}Strings},
+where @var{X} is one of the pedal types: @code{Sustain},
+@code{Sostenuto} or @code{UnaCorda}. Refer to
+@internalsref{SustainPedal} in the program reference for more
+information.
+
+Pedals can also be indicated by a sequence of brackets, by setting the
+@code{pedalSustainStyle} property to bracket objects
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\set Staff.pedalSustainStyle = #'bracket
+c\sustainDown d e
+b\sustainUp\sustainDown
+b g \sustainUp a \sustainDown \bar "|."
+@end lilypond
+
+A third style of pedal notation is a mixture of text and brackets,
+obtained by setting the @code{pedalSustainStyle} property to
+@code{mixed}
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\set Staff.pedalSustainStyle = #'mixed
+c\sustainDown d e
+b\sustainUp\sustainDown
+b g \sustainUp a \sustainDown \bar "|."
+@end lilypond
+
+The default @q{*Ped.} style for sustain and damper pedals corresponds to
+style @code{#'text}. The sostenuto pedal uses @code{mixed} style by
+default.
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+c\sostenutoDown d e c, f g a\sostenutoUp
+@end lilypond
+
+For fine-tuning the appearance of a pedal bracket, the properties
+@code{edge-width}, @code{edge-height}, and @code{shorten-pair} of
+@code{PianoPedalBracket} objects (see
+@internalsref{PianoPedalBracket} in the Internals Reference) can be
+modified. For example, the bracket may be extended to the right edge
+of the note head
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
+c\sostenutoDown d e c, f g a\sostenutoUp
+@end lilypond
+
+@seealso
+
+Notation Reference: @ref{Ties} (laissez vibrer).
+
+@node Accordion
+@subsection Accordion
+
+@menu
+* Discant symbols::
+@end menu
+
+@node Discant symbols
+@subsubsection Discant symbols
+
+@c TODO Add text from -user and lsr 194
+TBC
+
+
+
+
+
@section Percussion
@menu
-* Percussion sections::
+* Common notation for percussion::
@end menu
-@node Percussion sections
-@subsection Percussion sections
+@node Common notation for percussion
+@subsection Common notation for percussion
Rhythmic music is primarily used for percussion and drum notation, but it can
also be used to show the rhythms of melodies.
@menu
-* Showing melody rhythms::
-* Entering percussion::
-* Percussion staves::
-* Ghost notes::
+* References for percussion::
+* Basic percussion notation::
+* Percussion staves::
+* Ghost notes::
@end menu
+@node References for percussion
+@subsubsection References for percussion
+
+@c TODO Add refs
+TBC
+
+@ignore
+TODO This section needs splitting.
+ The part showing the rhythm of a melody should be moved to
+ 1.2.3 Displaying rhythms, but the example should be changed
+ to omit the drum roll.
+ A better example of drum rolls should be devised and placed in
+ Basic percussion notation. -td
@node Showing melody rhythms
@subsubsection Showing melody rhythms
Internals Reference: @internalsref{RhythmicStaff}.
+@end ignore
+
-@node Entering percussion
-@subsubsection Entering percussion
+@node Basic percussion notation
+@subsubsection Basic percussion notation
@cindex percussion
@cindex drums
+++ /dev/null
-@c -*- coding: utf-8; mode: texinfo; -*-
-@ignore
- Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
- When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
-@end ignore
-
-@c \version "2.11.38"
-
-@node Piano music
-@section Piano music
-
-@menu
-* Piano sections::
-@end menu
-
-@node Piano sections
-@subsection Piano sections
-
-Piano staves are two normal staves coupled with a brace. The staves
-are largely independent, but sometimes voices can cross between the
-two staves. The same notation is also used for harps and other key
-instruments. The @internalsref{PianoStaff} is especially built to
-handle this cross-staffing behavior. In this section we discuss the
-@internalsref{PianoStaff} and some other pianistic peculiarities.
-
-@menu
-* Automatic staff changes::
-* Manual staff switches::
-* Pedals::
-* Staff switch lines::
-* Cross staff stems::
-@end menu
-
-@knownissues
-
-Dynamics are not centered, but workarounds do exist. See the
-@q{piano centered dynamics} template in @rlearning{Piano templates}.
-
-@cindex cross staff stem
-@cindex stem, cross staff
-@cindex distance between staves in piano music
-
-
-@node Automatic staff changes
-@subsubsection Automatic staff changes
-@cindex Automatic staff changes
-
-Voices can be made to switch automatically between the top and the bottom
-staff. The syntax for this is
-
-@quotation
-@example
-\autochange @dots{}@var{music}@dots{}
-@end example
-@end quotation
-
-@noindent
-This will create two staves inside the current PianoStaff, called
-@code{up} and @code{down}. The lower staff will be in bass clef by
-default.
-
-A @code{\relative} section that is outside of @code{\autochange} has
-no effect on the pitches of @var{music}, so, if necessary, put
-@code{\relative} inside @code{\autochange} like
-
-@quotation
-@example
-\autochange \relative @dots{} @dots{}
-@end example
-@end quotation
-
-
-The autochanger switches on basis of the pitch (middle C is the turning
-point), and it looks ahead skipping over rests to switch in
-advance. Here is a practical example
-
-@lilypond[quote,verbatim,ragged-right]
-\new PianoStaff
- \autochange \relative c'
- {
- g4 a b c d r4 a g
- }
-@end lilypond
-
-
-@seealso
-
-Notation Reference: @ref{Manual staff switches}.
-
-Internals Reference: @internalsref{AutoChangeMusic}.
-
-
-
-@knownissues
-
-The staff switches may not end up in optimal places. For high
-quality output, staff switches should be specified manually.
-
-
-@code{\autochange} cannot be inside @code{\times}.
-
-
-@node Manual staff switches
-@subsubsection Manual staff switches
-
-@cindex manual staff switches
-@cindex staff switch, manual
-
-Voices can be switched between staves manually, using the command
-@example
-\change Staff = @var{staffname} @var{music}
-@end example
-
-@noindent
-The string @var{staffname} is the name of the staff. It switches the
-current voice from its current staff to the Staff called
-@var{staffname}. Typically @var{staffname} is @code{"up"} or
-@code{"down"}. The @code{Staff} referred to must already exist, so
-usually the setup for a score will start with a setup of the staves,
-
-@example
-<<
- \new Staff = "up" @{
- \skip 1 * 10 % @emph{keep staff alive}
- @}
- \new Staff = "down" @{
- \skip 1 * 10 % @emph{idem}
- @}
->>
-@end example
-
-
-and the @code{Voice} is inserted afterwards
-
-@example
-\context Staff = down
- \new Voice @{ @dots{} \change Staff = up @dots{} @}
-@end example
-
-
-@node Pedals
-@subsubsection Pedals
-@cindex Pedals
-
-Pianos have pedals that alter the way sound is produced. Generally, a
-piano has three pedals, sustain, una corda, and sostenuto.
-
-
-Piano pedal instruction can be expressed by attaching
-@code{\sustainDown}, @code{\sustainUp}, @code{\unaCorda},
-@code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp} to a
-note or chord
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-c'4\sustainDown c'4\sustainUp
-@end lilypond
-
-What is printed can be modified by setting @code{pedal@var{X}Strings},
-where @var{X} is one of the pedal types: @code{Sustain},
-@code{Sostenuto} or @code{UnaCorda}. Refer to
-@internalsref{SustainPedal} in the program reference for more
-information.
-
-Pedals can also be indicated by a sequence of brackets, by setting the
-@code{pedalSustainStyle} property to bracket objects
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\set Staff.pedalSustainStyle = #'bracket
-c\sustainDown d e
-b\sustainUp\sustainDown
-b g \sustainUp a \sustainDown \bar "|."
-@end lilypond
-
-A third style of pedal notation is a mixture of text and brackets,
-obtained by setting the @code{pedalSustainStyle} property to
-@code{mixed}
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\set Staff.pedalSustainStyle = #'mixed
-c\sustainDown d e
-b\sustainUp\sustainDown
-b g \sustainUp a \sustainDown \bar "|."
-@end lilypond
-
-The default @q{*Ped.} style for sustain and damper pedals corresponds to
-style @code{#'text}. The sostenuto pedal uses @code{mixed} style by
-default.
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-c\sostenutoDown d e c, f g a\sostenutoUp
-@end lilypond
-
-For fine-tuning the appearance of a pedal bracket, the properties
-@code{edge-width}, @code{edge-height}, and @code{shorten-pair} of
-@code{PianoPedalBracket} objects (see
-@internalsref{PianoPedalBracket} in the Internals Reference) can be
-modified. For example, the bracket may be extended to the right edge
-of the note head
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
-c\sostenutoDown d e c, f g a\sostenutoUp
-@end lilypond
-
-@seealso
-
-Notation Reference: @ref{Ties} (laissez vibrer).
-
-@node Staff switch lines
-@subsubsection Staff switch lines
-
-
-@cindex follow voice
-@cindex staff switching
-@cindex cross staff
-
-@funindex followVoice
-
-Whenever a voice switches to another staff, a line connecting the notes
-can be printed automatically. This is switched on by setting
-@code{followVoice} to true
-
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-\new PianoStaff <<
- \new Staff="one" {
- \set followVoice = ##t
- c1
- \change Staff=two
- b2 a
- }
- \new Staff="two" { \clef bass \skip 1*2 }
->>
-@end lilypond
-
-@seealso
-
-Internals Reference: @internalsref{VoiceFollower}.
-
-@predefined
-
-@funindex \showStaffSwitch
-@code{\showStaffSwitch},
-@funindex \hideStaffSwitch
-@code{\hideStaffSwitch}.
-
-
-@node Cross staff stems
-@subsubsection Cross staff stems
-
-Chords that cross staves may be produced by increasing the length
-of the stem in the lower staff, so it reaches the stem in the upper
-staff, or vice versa.
-
-@lilypond[ragged-right,verbatim,quote]
-stemExtend = {
- \once \override Stem #'length = #10
- \once \override Stem #'cross-staff = ##t
-}
-noFlag = \once \override Stem #'flag-style = #'no-flag
-\new PianoStaff <<
- \new Staff {
- \stemDown \stemExtend
- f'4
- \stemExtend \noFlag
- f'8
- }
- \new Staff {
- \clef bass
- a4 a8
- }
->>
-@end lilypond
-
-
-
-
@table @code
@item volta
-The repeated music is not written out but enclosed between repeat bar
+The repeated music is not written out but enclosed in repeat bar
lines. If the repeat is at the beginning of a piece, a repeat bar
line is only printed at the end. Alternative endings (volte) are
-printed, left to right with brackets. This is the standard notation
-for repeats with alternatives.
+printed, left to right with brackets. This is the standard
+notation for repeats with alternatives.
@item unfold
The repeated music is fully written out, as many times as
entering repetitious music.
@item percent
-These are beat or measure repeats. They look like percent signs.
+Write beat or measure repeats. These look like percent signs.
Percent repeats must be declared within a @code{Voice} context.
@item tremolo
-This is used to write tremolo beams.
+Write tremolo beams.
@end table
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
c4
- \set Score.repeatCommands = #'((volta "93") end-repeat)
-c4 b4
- \set Score.repeatCommands = #'((volta #f))
-d4 e4
+\set Score.repeatCommands = #'((volta "93") end-repeat)
+c4 c4
+\set Score.repeatCommands = #'((volta #f))
+c4 c4
@end lilypond
@c FIXME: improve visibility of bar lines link?
@cindex repeats, written-out
By using the @code{unfold} command, repeats can be used to simplify
-the writing out of repetitious music. The syntax is
+the writing out of repetitious music. The syntax is
@example
\repeat unfold @var{repeatcount} @var{repeatbody}
@end example
-Unfold repeats can be made with or without alternate endings. Unfold
-repeats without alternate endings:
+where @var{repeatbody} is a music expression. Unfold repeats can be
+made with or without alternate endings. Unfold repeats without
+alternate endings:
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
c1
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
c1
-\repeat unfold 2 { g4 f e d }
+\repeat unfold 2 { g f e d }
\alternative {
{ cis2 g' }
{ cis,2 b }
@cindex percent repeats
@cindex measure repeats
-A note pattern can be repeated with the @code{\repeat percent
-@var{number}} syntax. The music is printed once, and the pattern
-is replaced with a special sign. Patterns of one and two measures
-are replaced by percent-like signs, patterns that divide the
-measure length are replaced by slashes. Percent repeats must be
-declared within a @code{Voice} context.
+Repeated short patterns of notes are also supported. The music is
+printed once, and the pattern is replaced with a special sign.
+Patterns of one and two measures are replaced by percent-like signs,
+patterns that are shorter than onee measure are replaced by slashes.
+Percent repeats must be declared within a @code{Voice} context. The
+syntax is
+
+@example
+@code{\repeat percent @var{number} @var{repeatbody}}
+@end example
+
+where @var{repeatbody} is a music expression.
@lilypond[quote,verbatim,ragged-right]
\new Voice \relative c' {
\repeat percent 4 { c4 }
- \repeat percent 2 { b4 a4 g4 f4 }
\repeat percent 2 { c2 es2 f4 fis4 g4 c4 }
}
@end lilypond
@seealso
-Snippets: @lsrdir{Repeats,Repeats}.
+Snippets: @lsrdir{Repeats,Repeats}
Internals Reference: @internalsref{RepeatSlash},
@internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat},
notated as two whole notes joined by tremolo beams.
There are two ways to put tremolo marks on a single note. The
-@code{\repeat tremolo} syntax can be used even here, in which case
+@code{\repeat tremolo} syntax is also used here, in which case
the note should not be surrounded by braces:
@lilypond[quote,verbatim,ragged-right]
* Unmetered music::
* Polymetric notation::
* Automatic note splitting::
+* Showing melody rhythms::
@end menu
@node Time signature
split rests.
+@node Showing melody rhythms
+@subsubsection Showing melody rhythms
+
+TODO
+
+
@node Beams
@subsection Beams
@node Specialist notation
@chapter Specialist notation
-This chapter explains how to create musical notation.
+This chapter explains how to create musical notation for specific
+types of instrument or in specific styles.
@menu
* Vocal music::
-* Chords::
-* Piano music::
+* Keyboard instruments::
+* Unfretted string instruments::
+* Fretted string instruments::
* Percussion::
-* Guitar::
-* Orchestral strings::
-* Bagpipes::
+* Wind instruments::
+* Chord notation::
* Ancient notation::
@end menu
@include vocal.itely
-@include chords.itely
-@include piano.itely
+@include keyboards.itely
+@include unfretted-strings.itely
+@include fretted-strings.itely
@include percussion.itely
-@include guitar.itely
-@include strings.itely
-@include bagpipes.itely
+@include wind.itely
+@include chords.itely
@include ancient.itely
@cindex tabstaff
@cindex tablature
-The lines of a staff (pl. staves) are produced by the @code{staff symbol}
-layout object. Staves are created with the @code{\new} or
+Staves (sg. staff) are created with the @code{\new} or
@code{\context} commands. For an explanation on these commands,
see @ref{Creating contexts}.
@itemize
@item
The default is @code{Staff}:
-@lilypond[verbatim,ragged-right,quote]
-\relative c'' {
- \new Staff { c d e f }
-}
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative=2]
+\new Staff { c d e f }
@end lilypond
@item
@code{DrumStaff} creates a five line staff set up for a typical drum set.
It uses different names for each instrument. The instrument names have to
be set using the @code{drummode}. See @ref{Percussion staves}.
+
@lilypond[verbatim,ragged-right,quote]
\new DrumStaff {
\drummode { cymc hh ss tomh }
}
@end lilypond
+@c FIXME: remove when mentioned in NR 2.8
@item
@code{GregorianTranscriptionStaff} sets up a staff to notate modern
Gregorian chant. It does not show bar lines.
-@lilypond[verbatim,ragged-right,quote]
-\relative c'' {
- \new GregorianTranscriptionStaff { c d e f }
-}
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative=2]
+\new GregorianTranscriptionStaff { c d e f }
@end lilypond
@item
@code{RhythmicStaff} can be used to show the rhythm of some music. The
notes are printed on one line regardless of their pitch, but the duration
is preserved. See @ref{Showing melody rhythms}.
-@lilypond[verbatim,ragged-right,quote]
-\relative c'' {
- \new RhythmicStaff { c d e f }
-}
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative=2]
+\new RhythmicStaff { c d e f }
@end lilypond
@item
@code{TabStaff} creates by default a tablature with six strings in
-standard guitar tuning. See @ref{Tablatures basic}.
-@lilypond[verbatim,ragged-right,quote]
-\relative c'' {
- \new TabStaff { c d e f }
-}
+standard guitar tuning. See @ref{Guitar tablatures}.
+
+@lilypond[verbatim,ragged-right,quote,fragment,relative=2]
+\new TabStaff { c d e f }
@end lilypond
@end itemize
Music Glossary: @rglos{staff}, @rglos{staves}.
Notation Reference: @ref{Percussion staves},
-@ref{Tablatures basic}, @ref{Gregorian Chant contexts}, and
+@ref{Guitar tablatures}, @ref{Gregorian Chant contexts},
@ref{Mensural contexts}.
Snippets: @lsrdir{Staff,Staff-notation}.
Internals Reference: @internalsref{Staff}, @internalsref{DrumStaff},
@internalsref{GregorianTranscriptionStaff}, @internalsref{RhythmicStaff},
@internalsref{TabStaff}, @internalsref{MensuralStaff},
-@internalsref{VaticanaStaff}.
+@internalsref{VaticanaStaff}, @internalsref{StaffSymbol}.
of the system start delimiter, but they have also influence on the
behavior of the bar lines.
-Each staff group context sets the property
-@code{systemStartDelimiter} to one of the values
-@code{SystemStartBar}, @code{SystemStartBrace},
-and @code{SystemStartBracket}. A fourth delimiter,
-@code{systemStartSquare}, is also available, but must be
-instantiated manually. The usage of this last delimiter is shown further
-down in the snippet section.
-
-
@itemize
@item
If no context is specified, the default properties for the score
bar lines are not connected. The name of the beginning bar line
grob is @code{SystemStartBar}.
-@lilypond[verbatim,ragged-right,quote]
-\relative c'' <<
+@lilypond[verbatim,ragged-right,quote,fragment,relative=2]
+<<
\new Staff { c1 c }
\new Staff { c c }
>>
In a @code{StaffGroup}, the bar lines will be drawn through
all the staves, and the group is started with a bracket.
-@lilypond[verbatim,ragged-right,quote]
-\new StaffGroup {
- \relative c'' <<
- \new Staff { c1 c }
- \new Staff { c c }
- >>
-}
+@lilypond[verbatim,ragged-right,quote,fragment,relative=2]
+\new StaffGroup <<
+ \new Staff { c1 c }
+ \new Staff { c c }
+>>
@end lilypond
@item
In a @code{ChoirStaff}, the group is
started with a bracket, but bar lines are not connected.
-@lilypond[verbatim,ragged-right,quote]
-\new ChoirStaff {
- \relative c'' <<
- \new Staff { c1 c }
- \new Staff { c c }
- >>
-}
+@lilypond[verbatim,ragged-right,quote,fragment,relative=2]
+\new ChoirStaff <<
+ \new Staff { c1 c }
+ \new Staff { c c }
+>>
@end lilypond
@item
In a @code{GrandStaff}, the group is started with a brace
at the left, and bar lines are connected between the staves.
-@lilypond[verbatim,ragged-right,quote]
-\new GrandStaff {
- \relative c'' <<
- \new Staff { c1 c }
- \new Staff { c c }
- >>
-}
+@lilypond[verbatim,ragged-right,quote,fragment,relative=2]
+\new GrandStaff <<
+ \new Staff { c1 c }
+ \new Staff { c c }
+>>
@end lilypond
@item
optimized for setting piano music. In particular it supports the printing
of an instrument name directly, see @ref{Instrument names}.
-@lilypond[verbatim,ragged-right,quote]
-\new PianoStaff {
- \relative c'' <<
- \new Staff { c1 c }
- \new Staff { c c }
- >>
-}
+@lilypond[verbatim,ragged-right,quote,fragment,relative=2]
+\new PianoStaff <<
+ \new Staff { c1 c }
+ \new Staff { c c }
+>>
@end lilypond
@end itemize
+Each staff group context sets the property
+@code{systemStartDelimiter} to one of the values
+@code{SystemStartBar}, @code{SystemStartBrace},
+and @code{SystemStartBracket}. A fourth delimiter,
+@code{systemStartSquare}, is also available, but must be
+instantiated manually. The usage of this last delimiter is shown further
+down in the snippet section.
+
According to classic engraver rules an orchestral score consists of
staves connected only with a single line at the beginning of the system.
In LilyPond this is produced grouping the @code{Staff} contexts with
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
{mensurstriche-layout-bar-lines-between-the-staves.ly}
-
+@c FIXME: move to NR 2.8.x when sectioning is ready
@seealso
Snippets: @lsrdir{Staff,Staff-notation}
-Internals Reference: @internalsref{ChoirStaff},
-@internalsref{GrandStaff}, @internalsref{StaffGroup},
+Internals Reference: @internalsref{Staff}, @internalsref{ChoirStaff},
+@internalsref{GrandStaff}, @internalsref{PianoStaff},
+@internalsref{StaffGroup}, @internalsref{systemStartDelimiter},
@internalsref{SystemStartBar}, @internalsref{SystemStartBrace},
-@internalsref{SystemStartBracket}, and @internalsref{systemStartSquare}.
+@internalsref{SystemStartBracket}, @internalsref{systemStartSquare}.
@node Deeper nested staff groups
Here is an example of an orchestral score using groupings and nesting
of these groupings. Note that the instrument names are omitted from the
-source code, see @ref{Instrument names} how to set them.
+source code, for instructions how to set them see @ref{Instrument names}.
@cindex staff, nested
@cindex staves, nested
@seealso
-Internals Reference: @internalsref{SystemStartBar},
+Snippets: @lsrdir{Staff,Staff-notation}
+
+Internals Reference: @internalsref{InnerChoirStaffGroup},
+@internalsref{InnerStaffGroup}, @internalsref{SystemStartBar},
@internalsref{SystemStartBrace}, @internalsref{SystemStartBracket},
@internalsref{systemStartDelimiterHierarchy}.
@cindex stop staff lines
@cindex start staff lines
@cindex staff lines, amount of
+@cindex staff lines, number of
@cindex staff line, thickness of
@cindex amount of staff lines
@cindex thickness of staff lines
@cindex ledger lines, setting
@cindex setting of ledger lines
@cindex spacing of ledger lines
+@cindex number of staff lines
The layout object which draws the lines of a staff is called
@code{staff symbol}. The staff symbol may be tuned in number,
@node Ossia staves
@subsubsection Ossia staves
-@cindex staves, Frenched
+@cindex staff, Frenched
@cindex ossia
@cindex Frenched staves
+@cindex staff, resizing of
+@cindex resizing of staves
Tweaking the staff object allows to resize the staff:
@noindent
This involves shrinking the staff spaces, the staff lines and
-the font size. See @ref{Setting the staff size}.
+the font size by the factor 3. You find a more precise explanation
+in @ref{Setting the staff size}.
-In combination with Frenched staves, this may be used to typeset
-@emph{ossia} sections. An example is shown here
+The @emph{ossia} section in the next example are just put parallel
+to the main staff with @code{<<} and @code{>>} brackets. The @emph{ossia}
+staff is stopped and started explicitely and white space is inserted
+with the @code{\skip} command.
@lilypond[verbatim,relative=2,quote]
<<
\new Staff \with
{
+ %No time signature in the ossia staff
\remove "Time_signature_engraver"
- fontSize = #-2
- \override StaffSymbol #'staff-space = #(magstep -2)
+ fontSize = #-3
+ \override StaffSymbol #'staff-space = #(magstep -3)
+ \override StaffSymbol #'thickness = # (magstep -3)
firstClef = ##f
}
\relative c'' {
\startStaff
f8 d g4
}
- \new Staff \relative
- {
+ \new Staff \relative c'' {
\time 2/4
c4 c g' g a a g2
}
-
>>
@end lilypond
-@cindex staff lines, setting number of
-@cindex staff lines, setting thickness of
-@cindex thickness of staff lines, setting
-@cindex number of staff lines, setting
@snippets
Music Glossary: @rglos{ossia}, @rglos{staff}, @rglos{Frenched staff}.
-Snippets: @lsrdir{Staff,Staff-notation}
+Snippets: @lsrdir{Staff,Staff-notation}.
-Internals Reference: @internalsref{StaffSymbol},
-@internalsref{DrumStaff}.
+Internals Reference: @internalsref{StaffSymbol}.
@node Hiding staves
@subsubsection Hiding staves
@cindex Frenched scores
-@cindex staves, hiding
-@cindex staves, empty
+@cindex staff, hiding
+@cindex staff, empty
+@cindex hiding of staves
+@cindex empty staves
+@cindex Frenched staves
In orchestral scores, staff lines that only have rests are usually
removed; this saves some space. This style is called @q{French
-Score}. For @code{Lyrics}, @code{ChordNames} and
-@code{FiguredBass}, this is switched on by default. When
+Score}. For the @code{Lyrics}, @code{ChordNames}, and
+@code{FiguredBass} contexts, this is switched on by default. When
the lines of these contexts turn out empty after the line-breaking
process, they are removed.
-For normal staves, a specialized @code{Staff} context is
-available, which does the same: staves containing nothing (or only
-multi-measure rests) are removed. The context definition is
-stored in @code{\RemoveEmptyStaffContext} variable. Observe how
-the second staff in this example disappears in the second line
+For normal staves this behaviour is called
+with the @code{\RemoveEmptyStaffContext} command. It is set
+in the @code{\layout} block. As a result staves containing
+nothing or whole mesure rests are removed after a line break.
@lilypond[quote,ragged-right,verbatim]
\layout {
\context { \RemoveEmptyStaffContext }
}
-
-{
- \relative c' <<
+\relative c'' {
+ <<
\new Staff { e4 f g a \break c1 }
\new Staff { c4 d e f \break R1 }
- >>
+ >>
}
@end lilypond
-The first system shows all staves in full. If empty staves should
-be removed from the first system too, set @code{remove-first} to
-true in @code{VerticalAxisGroup}.
-
-@example
-\override Score.VerticalAxisGroup #'remove-first = ##t
-@end example
To remove other types of contexts, use
@code{\AncientRemoveEmptyStaffContext} or
Another application of the @code{\RemoveEmptyStaffContext} is to
make ossia sections, i.e., alternative melodies on a separate
-piece of staff, with help of a Frenched staff. See @ref{Staff
-symbol}.
+piece of staff, with help of a Frenched staff. See @ref{Ossia staves}.
You can make the staff lines invisible by removing the
@code{Staff_symbol_engraver} from the @code{Staff} context.
}
@end lilypond
+@snippets
+
+The first empty staff can also be removed from the score with a
+setting in the @code{VerticalAxisGroup} property. This can be done
+globally inside the @code{\layout} block, or locally inside the
+specific staff that should be removed. In the latter case,
+you have to specify the context (@code{Staff} applies only to the
+current staff) in front of the property.
+
+The lower staff of the second staff group is not removed,
+because the setting applies only to the specific staff inside
+of which it is written.
+
+@lilypond[quote,ragged-right,verbatim,relative=2]
+\layout {
+ \context {
+ \RemoveEmptyStaffContext
+ %To use the setting globally, uncomment the following line:
+ %\override VerticalAxisGroup #'remove-first = ##t
+ }
+}
+\new StaffGroup
+ \relative c'' <<
+ \new Staff {
+ e4 f g a \break c1 }
+ \new Staff {
+ %To use the setting globally, comment this line, uncomment the line above
+ \override Staff.VerticalAxisGroup #'remove-first = ##t
+ R1 \break R1 }
+ >>
+\new StaffGroup
+ <<
+ \new Staff { e4 f g a \break c1 }
+ \new Staff { R \break R1 }
+ >>
+@end lilypond
+
+@c FIXME not yet in master
+@c lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@c {remove-the-first-empy-line.ly}
+
+@predefined
+
+@code{\RemoveEmptyStaffContext},
+@code{\AncientRemoveEmptyStaffContext},
+@code{\RemoveEmptyRhythmicStaffContext},
+
@seealso
Notation Reference: @ref{Staff symbol}.
+++ /dev/null
-@c -*- coding: utf-8; mode: texinfo; -*-
-@ignore
- Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
- When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
-@end ignore
-
-@c \version "2.11.38"
-
-@node Orchestral strings
-@section Orchestral strings
-
-This section includes extra information for writing for orchestral
-strings.
-
-@menu
-* Orchestral strings sections::
-@end menu
-
-
-
-@node Orchestral strings sections
-@subsection Orchestral strings sections
-
-@menu
-* Artificial harmonics (strings)::
-@end menu
-
-@node Artificial harmonics (strings)
-@subsubsection Artificial harmonics (strings)
-
-@cindex artificial harmonics
-
-Artificial harmonics are notated with a different note head style. They
-are entered by marking the harmonic pitch with @code{\harmonic}.
-
-@lilypond[ragged-right,verbatim,quote,fragment,relative=1]
-<c g'\harmonic>4
-@end lilypond
-
-
-
@lilypondfile[quote]{text-headword.ly}
This section explains how to include text (with various
-formatting) in your scores.
+formatting) in music scores.
@noindent
Some text elements that are not dealt with here are discussed in other
@menu
* Writing text::
-* Formatting text::
+* Formatting text::
+* Fonts::
@end menu
@node Writing text
@subsection Writing text
-@menu
+This section introduces different ways of adding text to a score.
+
+@menu
* Text scripts::
* Text spanners::
* Text marks::
-* Separate text::
+* Separate text::
@end menu
@funindex \markup
A @code{\markup} block can exist by itself, outside of any
-any @code{\score} block. This syntax is called a @q{top-level
-expression}, and is described in @code{File structure}.
-
-@c TODO: turn this into a @lilypond example
+any @code{\score} block, as a @qq{top-level
+expression}. This syntax is described in @ref{File structure}.
-@example
-\markup @{
- @var{..}
-@}
-@end example
+@lilypond[quote,ragged-right,verbatim]
+\markup {
+ Tomorrow, and tomorrow, and tomorrow...
+}
+@end lilypond
@noindent
This allows to print text separately
several music pieces, as described in
@ref{Multiple scores in a book}.
-@example
-\score @{
- @var{..}
-@}
-\markup @{
- @var{..}
-@}
-\score @{
- @var{..}
-@}
-@end example
+@lilypond[quote,ragged-right,verbatim]
+\score {
+ c'1
+}
+\markup {
+ Tomorrow, and tomorrow, and tomorrow...
+}
+\score {
+ c'1
+}
+@end lilypond
Using a specific syntax, text blocks can be spread
over multiple pages, making possible to print
text documents or books -- and therefore to
use LilyPond as a word processor. This syntax is described in
-@ref{Page wrapping text}.
+@ref{Multi-page markup}.
@ignore
@snippets
-TODO: add convenient snippets, e.g.
-"Inserting large plain text sections"
-(this requires the LSR to be updated) -vv
+TODO: add convenient snippets in input/new -vv
@end ignore
@seealso
Notation Reference: @code{Formatting text},
@code{File structure},
@ref{Multiple scores in a book},
-@ref{Page wrapping text}.
+@ref{Multi-page markup}.
Snippets: @lsrdir{Text,Text}.
@node Formatting text
@subsection Formatting text
+This section presents basic and advanced text formatting,
+using the @code{\markup} mode specific syntax.
+
@menu
* Text markup introduction::
-* Nested scores::
-* Page wrapping text::
-* Font selection::
+* Common markup commands::
+* Text alignment::
+* Graphic notation inside markup::
+* Music notation inside markup::
+* Multi-page markup::
@end menu
@node Text markup introduction
An exhaustive list of @code{\markup}-specific commands can be found in
@ref{Text markup commands}.
-@code{\markup} blocks can be used anywhere text is called,
-and not only for @internalsref{TextScript}s objects.
@lilypond[quote,verbatim]
\header{ title = \markup{ \bold { foo \italic { bar! } } } }
}
@end lilypond
-A @code{\markup} block can also be printed on its own at the top-level
-of the input file, away from
-any @code{\score} block. This syntax is described in
-@ref{Multiple scores in a book}.
-@lilypond[quote,ragged-right,verbatim]
-\markup{ Here is some text. }
-@end lilypond
@cindex font switching
advisable to cancel those properties with @code{normal-text}. See
@ref{Text markup commands}, for more details.
+@ignore
+TODO: here are some commands that could be described here.
+I'm putting them in bulk, prior to working on this section. -vv
+
+\simple
+
+\char
+\fraction
+
+\combine
+\concat
+\put-adjacent
+
+
+\page-ref (see also "Table of contents")
+\fromproperty
+\verbatim-file
+\with-url
+
+\on-the-fly
+\override
+
+
+\null
+\hspace
+
+\lower
+\raise
+\translate
+\translate-scaled
+\rotate
+\transparent
+\whiteout
+
+@end ignore
@seealso
Syntax errors for markup mode are confusing.
+@node Common markup commands
+@subsubsection Common markup commands
+
+Some basic formatting can be used blah blah
+
+\italic
+\upright
+\bold
+\medium
+\underline
+
+
+@c TODO: what's the difference between the following commands? -vv
+\smallCaps
+\caps
+\fontCaps
+
+
+Some alternate font families can easily be selected:
+
+\sans
+\typewriter
+\roman
+\number (only for numbers, such as fingerings and time signatures)
+@c TODO: add \slashed-digit here? -vv
+
+The size can be blah blah blah
+
+\fontsize
+
+Some predefined font sizes can be used blah blah
+
+\teeny
+\tiny
+\small
+\normalsize
+\large
+\huge
+
+Some shorcuts allow to change the font size relatively to its previous value
+
+\smaller
+\bigger
+\larger
+
+\magnify
+
+Text may be printed as subscript or superscript:
+
+\sub
+\super
+
+To obtain subscripts or superscripts in a normal text size, use
+\normal-size-sub
+\normal-size-super
+
+All these settings (except the size) can be reverted to the default font:
+
+\normal-text
+
+
+@node Text alignment
+@subsubsection Text alignment
+
+Alignment basics:
+\left-align
+\center-align
+\right-align
+
+Horizontal alignment:
+\hcenter
+\general-align
+\halign
+
+
+Vertical alignment:
+\vcenter
+\column
+\dir-column
+
+Building a "large" markup:
+
+\line
+
+\fill-line
+
+\hcenter-in
+
+\pad-around
+\pad-markup
+\pad-to-box
+\pad-x
+
+Alignment inside a "large" markup:
+
+\justify-field
+\justify
+\justify-string
+
+\wordwrap-field
+\wordwrap
+\wordwrap-string
+
+@node Graphic notation inside markup
+@subsubsection Graphic notation inside markup
+Graphics around text:
+\box
+\circle
+
+\bracket
+\hbracket
+
+"Standalone" graphics:
+
+\arrow-head
+\draw-line
+\draw-circle
+\filled-box
+\triangle
+\strut
+
+\with-color
+
+
+Advanced graphics:
+\stencil
+
+\postscript
+\epsfile
+
+\with-dimensions
+
+@node Music notation inside markup
+@subsubsection Music notation inside markup
+
+Notes can be printed in markup mode blah blah:
+
+\note
+\note-by-number
+
+Accidental symbols can be obtained easily:
+
+\doubleflat
+\sesquiflat
+\flat
+\semiflat
+\natural
+\semisharp
+\sharp
+\sesquisharp
+\doublesharp
-@node Nested scores
-@subsubsection Nested scores
+Some other notation objects blah blah
+
+\beam
+\finger
+\dynamic
+\tied-lyric
+\markalphabet
+\markletter
+@c TODO: add \text here? -vv
+
+Any musical symbol can be printed
+
+\musicglyph
+@c TODO: add \lookup here? -vv
+
+
+The markup mode has support for fret diagrams:
+
+\fret-diagram
+\fret-diagram-terse
+\fret-diagram-verbose
+
+An entire @code{\score} block can even be nested in a @code{\markup}
+block. In such a case, the @code{\score} must contain a @code{\layout} block.
+
+
+\score
-It is possible to nest music inside markups, by adding a
-@code{\score} block to a markup expression. Such a score must
-contain a @code{\layout} block.
@lilypond[quote,verbatim,ragged-right]
\relative {
Snippets: @lsrdir{Text,Text}
-@node Page wrapping text
-@subsubsection Page wrapping text
+@node Multi-page markup
+@subsubsection Multi-page markup
Whereas @code{\markup} is used to enter a non-breakable block of
text, @code{\markuplines} can be used at top-level to enter lines
@funindex \markuplines
@code{\markuplines}
-@node Font selection
-@subsubsection Font selection
+
+
+@c TODO: move the following subsubsec into NR3 -vv
+@c maybe. -gp
+@node Fonts
+@subsection Fonts
+
+@menu
+* Entire document fonts::
+* Single entry fonts::
+@end menu
+
+@node Entire document fonts
+@subsubsection Entire document fonts
+
+It is also possible to change the default font family for the
+entire document. This is done by calling the
+@code{make-pango-font-tree} from within the @code{\paper} block.
+The function takes names for the font families to use for roman,
+sans serif and monospaced text. For example,
+
+@cindex font families, setting
+@cindex Pango
+
+
+@lilypond[verbatim]
+\paper {
+ myStaffSize = #20
+
+ #(define fonts
+ (make-pango-font-tree "Times New Roman"
+ "Nimbus Sans"
+ "Luxi Mono"
+ (/ myStaffSize 20)))
+}
+
+{
+ c'^\markup { roman: foo \sans bla \typewriter bar }
+}
+@end lilypond
+
+@c we don't do Helvetica / Courier, since GS incorrectly loads
+@c Apple TTF fonts
+
+
+@node Single entry fonts
+@subsubsection Single entry fonts
@cindex font selection
@cindex font magnification
@cindex font magnification
-It is also possible to change the default font family for the
-entire document. This is done by calling the
-@code{make-pango-font-tree} from within the @code{\paper} block.
-The function takes names for the font families to use for roman,
-sans serif and monospaced text. For example,
-
-@cindex font families, setting
-@cindex Pango
-
-
-@lilypond[verbatim]
-\paper {
- myStaffSize = #20
-
- #(define fonts
- (make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
- "Luxi Mono"
- (/ myStaffSize 20)))
-}
-
-{
- c'^\markup { roman: foo \sans bla \typewriter bar }
-}
-@end lilypond
-
-@c we don't do Helvetica / Courier, since GS incorrectly loads
-@c Apple TTF fonts
-
@seealso
@menu
* Compiling a file::
* Simple notation::
-* Working on text files::
-* How to read the manual::
+* Working on input files::
+* How to read the manual::
@end menu
@node Compiling a file
@subsection Compiling a file
-@qq{Compiling} is the term used for processing an input text file
+@qq{Compiling} is the term used for processing an input file
in LilyPond format to produce a file which can be printed and
-(optionally) a MIDI file which can be played. The first example
-shows what a simple input text file looks like.
+(optionally) a MIDI file which can be played. LilyPond input
+files are simple text files. The first example
+shows what a simple input file looks like.
-To create sheet music, we write a text file that specifies the
+To create sheet music, we write an input file that specifies the
notation. For example, if we write:
@example
@ruser{Time signature}, @ruser{Clef}.
-@node Working on text files
-@subsection Working on text files
+@node Working on input files
+@subsection Working on input files
LilyPond input files are similar to source files in many common
programming languages. They are case sensitive, and white-space
@subsection How to read the manual
LilyPond input must be surrounded by @{ @} marks or a
-@code{\relative c'' @{ ... @}}, as we saw in @ref{Working on text
+@code{\relative c'' @{ ... @}}, as we saw in @ref{Working on input
files}. For the rest of this manual, most examples will omit
this. To replicate the examples, you may copy and paste the
displayed input but you @strong{must} add the @code{\relative c''
There are more tips for constructing input files in
-@ref{Suggestions for writing LilyPond files}. But it might be
+@ref{Suggestions for writing LilyPond input files}. But it might be
best to read through the rest of the tutorial first.
@node Other uses for tweaks
@subsection Other uses for tweaks
-@itemize
-
@cindex transparent property, use of
@cindex objects, making invisible
@cindex removing objects
@cindex invisible objects
@cindex tying notes across voices
-@item
@subheading Tying notes across voices
The following example demonstrates how to connect notes in
>>
@end lilypond
-@item
@subheading Simulating a fermata
@cindex stencil property, use of
(transparent) metronome mark still influences the note spacing
while the second (with no stencil) does not.
-@end itemize
-
@node Using variables for tweaks
@subsection Using variables for tweaks
@node Avoiding tweaks with slower processing
@subsection Avoiding tweaks with slower processing
-LilyPond can perform extra checks while it processes files. These
+LilyPond can perform extra checks while it processes input files. These
checks will take extra time to perform, but fewer manual tweaks
may be required to obtain an acceptable result. If a text script
or part of the lyrics extends over the margins these checks will
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+@c \version "2.11.38"
+
+@node Unfretted string instruments
+@section Unfretted string instruments
+
+This section includes extra information for writing for unfretted
+string instruments.
+
+@ignore
+The subsection on Bowed instruments is commmented out
+until we have something to say about them -td
+@end ignore
+
+@menu
+* Common notation for unfretted strings::
+@c * Bowed instruments::
+* Plucked instruments::
+@end menu
+
+@node Common notation for unfretted strings
+@subsection Common notation for unfretted strings
+
+@menu
+* References for unfretted strings::
+@end menu
+
+@node References for unfretted strings
+@subsubsection References for unfretted strings
+
+@c TODO Add refs to fingerings, \thumb, bowings, harmonics
+TBC
+
+@ignore
+
+@node Bowed instruments
+@subsection Bowed instruments
+
+@menu
+* Artificial harmonics (strings)::
+@end menu
+
+@node Artificial harmonics (strings)
+@subsubsection Artificial harmonics (strings)
+
+@cindex artificial harmonics
+
+Artificial harmonics are notated with a different note head style. They
+are entered by marking the harmonic pitch with @code{\harmonic}.
+
+@lilypond[ragged-right,verbatim,quote,fragment,relative=1]
+<c g'\harmonic>4
+@end lilypond
+
+@end ignore
+
+@node Plucked instruments
+@subsection Plucked instruments
+
+@menu
+* Harp::
+@end menu
+
+@node Harp
+@subsubsection Harp
+
+@c TODO add \sacredHarpHeads, expanded or ref?
+TBC
by examining the simplest method, and gradually increase complexity.
@menu
-* Simple lyrics::
-* Aligning lyrics to a melody::
-* Vocals and variables::
-* Flexibility in placement::
-* Spacing vocals::
-* More about stanzas::
+* Common notation for vocals::
+* Aligning lyrics to a melody::
+* Placement of lyrics::
+* Stanzas::
@end menu
@snippets
@}
@end example
-
-@node Simple lyrics
-@subsection Simple lyrics
+@node Common notation for vocals
+@subsection Common notation for vocals
@menu
-* Setting simple songs::
-* Entering lyrics::
+* References for vocal music::
+* Setting simple songs::
+* Entering lyrics::
+* Working with lyrics and variables::
@end menu
+@node References for vocal music
+@subsubsection References for vocal music
+
+TBC
+@c TODO Add @refs
+
+@q{Parlato} is spoken without pitch but still with rhythm; it is
+notated by cross note heads. This is demonstrated in
+@ref{Special note heads}.
+
+
@node Setting simple songs
@subsubsection Setting simple songs
combination of a backslash followed by one of @code{`}, @code{'},
@code{"}, or @code{^}.
+@c " to balance double quotes for not-so-bright context-sensitive editors
+
To define variables containing lyrics, the function @code{lyricmode}
must be used.
Internals Reference: @internalsref{LyricText}, @internalsref{LyricSpace}.
+@node Working with lyrics and variables
+@subsubsection Working with lyrics and variables
+
+@cindex lyrics, variables
+
+To define variables containing lyrics, the function @code{\lyricmode}
+must be used. You do not have to enter durations though, if you add
+@code{\addlyrics} or @code{\lyricsto}
+when invoking your variable.
+
+@example
+verseOne = \lyricmode @{ Joy to the world the Lord is come @}
+\score @{
+ <<
+ \new Voice = "one" \relative c'' @{
+ \autoBeamOff
+ \time 2/4
+ c4 b8. a16 g4. f8 e4 d c2
+ @}
+ \addlyrics @{ \verseOne @}
+ >>
+@}
+@end example
+
+For different or more complex orderings, the best way is to setup the
+hierarchy of staves and lyrics first, e.g.,
+@example
+\new ChoirStaff <<
+ \new Voice = "soprano" @{ @emph{music} @}
+ \new Lyrics = "sopranoLyrics" @{ s1 @}
+ \new Lyrics = "tenorLyrics" @{ s1 @}
+ \new Voice = "tenor" @{ @emph{music} @}
+>>
+@end example
+
+and then combine the appropriate melodies and lyric lines
+
+@example
+\context Lyrics = sopranoLyrics \lyricsto "soprano"
+@emph{the lyrics}
+@end example
+
+@noindent
+
+The final input would resemble
+
+@example
+<<\new ChoirStaff << @emph{setup the music} >>
+ \lyricsto "soprano" @emph{etc}
+ \lyricsto "alto" @emph{etc}
+@emph{etc}
+>>
+@end example
+
+@seealso
+
+@c TODO: document \new Staff << Voice \lyricsto >> bug
+Internals Reference: @internalsref{LyricCombineMusic},
+@internalsref{Lyrics}.
+
@node Aligning lyrics to a melody
@subsection Aligning lyrics to a melody
@end itemize
@menu
-* Automatic syllable durations::
-* Another way of entering lyrics::
-* Assigning more than one syllable to a single note::
-* More than one note on a single syllable::
-* Extenders and hyphens::
+* Automatic syllable durations::
+* Manual syllable durations::
+* Multiple syllables to one note::
+* Multiple notes to one syllable::
+* Skipping notes::
+* Extenders and hyphens::
+* Lyrics and repeats::
@end menu
@node Automatic syllable durations
\new Lyrics \lyricsto "blah" @{ LYRICS @}
@end example
-@node Another way of entering lyrics
-@subsubsection Another way of entering lyrics
+@node Manual syllable durations
+@subsubsection Manual syllable durations
Lyrics can also be entered without @code{\addlyrics} or
@code{\lyricsto}. In this case,
syllables are entered like notes -- but with pitches replaced by text -- and the
duration of each syllable must be entered explicitly. For example:
-
+
@example
play2 the4 game2.
sink2 or4 swim2.
@end example
-
+
The alignment to a melody can be specified with the
@code{associatedVoice} property,
-
+
@example
\set associatedVoice = #"lala"
@end example
-
+
@noindent
The value of the property (here: @code{"lala"}) should be the name of
a @internalsref{Voice} context. Without this setting, extender lines
will not be formatted properly.
-
+
Here is an example demonstrating manual lyric durations,
-
+
@lilypond[relative=1,ragged-right,verbatim,fragment,quote]
<< \new Voice = "melody" {
\time 3/4
@end lilypond
@seealso
-
+
Internals Reference: @internalsref{Lyrics}.
-@node Assigning more than one syllable to a single note
-@subsubsection Assigning more than one syllable to a single note
+@node Multiple syllables to one note
+@subsubsection Multiple syllables to one note
@funindex _
@c the new title might be more self-explanatory
-@node More than one note on a single syllable
-@subsubsection More than one note on a single syllable
+@node Multiple notes to one syllable
+@subsubsection Multiple notes to one syllable
@cindex melisma
@cindex melismata
beamed, and automatic beaming (see @ref{Setting automatic beam
behavior}) is switched off.
-@c TODO: there might be some more relevant place for
+@c TODO: there might be some more relevant place for
@c the following link (?)
@cindex SATB
Melismata are not detected automatically, and extender lines must be
inserted by hand.
+@node Skipping notes
+@subsubsection Skipping notes
+
+Making a lyric line run slower than the melody can be achieved by
+inserting @code{\skip}s into the lyrics. For every @code{\skip},
+the text will be delayed another note.
+
+For example,
+
+@lilypond[verbatim,ragged-right,quote]
+\relative { c c g' }
+\addlyrics {
+ twin -- \skip 4
+ kle
+}
+@end lilypond
+
+
@node Extenders and hyphens
@subsubsection Extenders and hyphens
Internals Reference: @internalsref{LyricExtender},
@internalsref{LyricHyphen}
+@node Lyrics and repeats
+@subsubsection Lyrics and repeats
-@node Vocals and variables
-@subsection Vocals and variables
+@c TODO New section. Add text
+TBC
-@menu
-* Working with lyrics and variables::
-@end menu
-@node Working with lyrics and variables
-@subsubsection Working with lyrics and variables
-
-@cindex lyrics, variables
-
-To define variables containing lyrics, the function @code{\lyricmode}
-must be used. You do not have to enter durations though, if you add
-@code{\addlyrics} or @code{\lyricsto}
-when invoking your variable.
-
-@example
-verseOne = \lyricmode @{ Joy to the world the Lord is come @}
-\score @{
- <<
- \new Voice = "one" \relative c'' @{
- \autoBeamOff
- \time 2/4
- c4 b8. a16 g4. f8 e4 d c2
- @}
- \addlyrics @{ \verseOne @}
- >>
-@}
-@end example
-
-For different or more complex orderings, the best way is to setup the
-hierarchy of staves and lyrics first, e.g.,
-@example
-\new ChoirStaff <<
- \new Voice = "soprano" @{ @emph{music} @}
- \new Lyrics = "sopranoLyrics" @{ s1 @}
- \new Lyrics = "tenorLyrics" @{ s1 @}
- \new Voice = "tenor" @{ @emph{music} @}
->>
-@end example
-
-and then combine the appropriate melodies and lyric lines
-
-@example
-\context Lyrics = sopranoLyrics \lyricsto "soprano"
-@emph{the lyrics}
-@end example
-
-@noindent
-
-The final input would resemble
-
-@example
-<<\new ChoirStaff << @emph{setup the music} >>
- \lyricsto "soprano" @emph{etc}
- \lyricsto "alto" @emph{etc}
-@emph{etc}
->>
-@end example
-
-@seealso
-
-@c TODO: document \new Staff << Voice \lyricsto >> bug
-Internals Reference: @internalsref{LyricCombineMusic},
-@internalsref{Lyrics}.
-
-
-@node Flexibility in placement
-@subsection Flexibility in placement
+@node Placement of lyrics
+@subsection Placement of lyrics
Often, different stanzas of one song are put to one melody in slightly
differing ways. Such variations can still be captured with
@code{\lyricsto}.
@menu
-* Lyrics to multiple notes of a melisma::
-* Divisi lyrics::
-* Switching the melody associated with a lyrics line::
-* Lyrics independent of notes::
+* Divisi lyrics::
+* Lyrics independent of notes::
+* Chants::
+* Spacing out syllables::
+* Centering lyrics between staves::
@end menu
-@node Lyrics to multiple notes of a melisma
-@subsubsection Lyrics to multiple notes of a melisma
-
-One possibility is that the text has a melisma in one stanza, but
-multiple syllables in another one. One solution is to make the faster
-voice ignore the melisma. This is done by setting
-@code{ignoreMelismata} in the Lyrics context.
-
-There is one tricky aspect: the setting for @code{ignoreMelismata}
-must be set one syllable @emph{before} the non-melismatic syllable
-in the text, as shown here,
-
-@c TODO: breaks compile
-@lilypond[verbatim,ragged-right,quote]
-%{
-<<
- \relative \new Voice = "lahlah" {
- \set Staff.autoBeaming = ##f
- c4
- \slurDotted
- f8.[( g16])
- a4
- }
- \new Lyrics \lyricsto "lahlah" {
- more slow -- ly
- }
- \new Lyrics \lyricsto "lahlah" {
- \set ignoreMelismata = ##t % applies to "fas"
- go fas -- ter
- \unset ignoreMelismata
- still
- }
->>
-%}
-@end lilypond
-
-
-The @code{ignoreMelismata} applies to the syllable @q{fas}, so it
-should be entered before @q{go}.
-
-The reverse is also possible: making a lyric line slower than the
-standard. This can be achieved by insert @code{\skip}s into the
-lyrics. For every @code{\skip}, the text will be delayed another note.
-For example,
-
-@lilypond[verbatim,ragged-right,quote]
-\relative { c c g' }
-\addlyrics {
- twin -- \skip 4
- kle
-}
-@end lilypond
-
@node Divisi lyrics
@subsubsection Divisi lyrics
-@node Switching the melody associated with a lyrics line
-@subsubsection Switching the melody associated with a lyrics line
-
-More complex variations in text underlay are possible. It is possible
-to switch the melody for a line of lyrics during the text. This is
-done by setting the @code{associatedVoice} property. In the example
-
-@lilypond[ragged-right,quote]
-<<
- \relative \new Voice = "lahlah" {
- \set Staff.autoBeaming = ##f
- c4
- <<
- \new Voice = "alternative" {
- \voiceOne
- \times 2/3 {
- % show associations clearly.
- \override NoteColumn #'force-hshift = #-3
- f8 f g
- }
- }
- {
- \voiceTwo
- f8.[ g16]
- \oneVoice
- } >>
- a8( b) c
- }
- \new Lyrics \lyricsto "lahlah" {
- Ju -- ras -- sic Park
- }
- \new Lyrics \lyricsto "lahlah" {
- % Tricky: need to set associatedVoice
- % one syllable too soon!
- \set associatedVoice = alternative % applies to "ran"
- Ty --
- ran --
- no --
- \set associatedVoice = lahlah % applies to "rus"
- sau -- rus Rex
- } >>
-@end lilypond
-
-@noindent
-the text for the first stanza is set to a melody called @q{lahlah},
-
-@example
-\new Lyrics \lyricsto "lahlah" @{
- Ju -- ras -- sic Park
-@}
-@end example
-
-
-The second stanza initially is set to the @code{lahlah} context, but
-for the syllable @q{ran}, it switches to a different melody.
-This is achieved with
-@example
-\set associatedVoice = alternative
-@end example
-
-@noindent
-Here, @code{alternative} is the name of the @code{Voice} context
-containing the triplet.
-
-Again, the command must be one syllable too early, before @q{Ty} in
-this case.
-
-@example
-\new Lyrics \lyricsto "lahlah" @{
- \set associatedVoice = alternative % applies to "ran"
- Ty --
- ran --
- no --
- \set associatedVoice = lahlah % applies to "rus"
- sau -- rus Rex
-@}
-@end example
-
-@noindent
-The underlay is switched back to the starting situation by assigning
-@code{lahlah} to @code{associatedVoice}.
-
-
@node Lyrics independent of notes
@subsubsection Lyrics independent of notes
>>
@end lilypond
+@node Chants
+@subsubsection Chants
-@node Spacing vocals
-@subsection Spacing vocals
-
-@menu
-* Spacing lyrics::
-@end menu
+@c TODO Add text from lsr and -user
+TBC
-@node Spacing lyrics
-@subsubsection Spacing lyrics
+@node Spacing out syllables
+@subsubsection Spacing out syllables
@cindex Spacing lyrics
@cindex Lyrics, increasing space between
}
@end lilypond
+@node Centering lyrics between staves
+@subsubsection Centering lyrics between staves
-@node More about stanzas
-@subsection More about stanzas
+@c TODO Add text from -user
+TBC
+
+@node Stanzas
+@subsection Stanzas
@menu
-* Adding stanza numbers ::
-* Adding dynamics marks::
-* Adding singer names::
-* Printing stanzas at the end ::
-* Printing stanzas at the end in multiple columns ::
+* Adding stanza numbers ::
+* Adding dynamics marks to stanzas::
+* Adding singers' names to stanzas::
+* Stanzas with different rhythms::
+* Printing stanzas at the end ::
+* Printing stanzas at the end in multiple columns ::
@end menu
-@node Adding stanza numbers
-@subsubsection Adding stanza numbers
+@node Adding stanza numbers
+@subsubsection Adding stanza numbers
@cindex stanza number
These numbers are put just before the start of the first syllable.
-@node Adding dynamics marks
-@subsubsection Adding dynamics marks
+@node Adding dynamics marks to stanzas
+@subsubsection Adding dynamics marks to stanzas
Stanzas differing in loudness may be indicated by putting a
dynamics mark before each stanza. In LilyPond, everything coming in
>>
@end lilypond
-@node Adding singer names
-@subsubsection Adding singer names
+@node Adding singers' names to stanzas
+@subsubsection Adding singers' names to stanzas
@cindex singer name
@cindex name of singer
}
@end lilypond
+@node Stanzas with different rhythms
+@subsubsection Stanzas with different rhythms
+
+@subsubheading Ignoring melismata
+
+One possibility is that the text has a melisma in one stanza, but
+multiple syllables in another one. One solution is to make the faster
+voice ignore the melisma. This is done by setting
+@code{ignoreMelismata} in the Lyrics context.
+
+There is one tricky aspect: the setting for @code{ignoreMelismata}
+must be set one syllable @emph{before} the non-melismatic syllable
+in the text, as shown here,
+
+@c TODO: breaks compile
+@lilypond[verbatim,ragged-right,quote]
+%{
+<<
+ \relative \new Voice = "lahlah" {
+ \set Staff.autoBeaming = ##f
+ c4
+ \slurDotted
+ f8.[( g16])
+ a4
+ }
+ \new Lyrics \lyricsto "lahlah" {
+ more slow -- ly
+ }
+ \new Lyrics \lyricsto "lahlah" {
+ \set ignoreMelismata = ##t % applies to "fas"
+ go fas -- ter
+ \unset ignoreMelismata
+ still
+ }
+>>
+%}
+@end lilypond
+
+
+The @code{ignoreMelismata} applies to the syllable @q{fas}, so it
+should be entered before @q{go}.
+
-@node Printing stanzas at the end
+@subsubheading Switching to an alternative melody
+
+More complex variations in text underlay are possible. It is possible
+to switch the melody for a line of lyrics during the text. This is
+done by setting the @code{associatedVoice} property. In the example
+
+@lilypond[ragged-right,quote]
+<<
+ \relative \new Voice = "lahlah" {
+ \set Staff.autoBeaming = ##f
+ c4
+ <<
+ \new Voice = "alternative" {
+ \voiceOne
+ \times 2/3 {
+ % show associations clearly.
+ \override NoteColumn #'force-hshift = #-3
+ f8 f g
+ }
+ }
+ {
+ \voiceTwo
+ f8.[ g16]
+ \oneVoice
+ } >>
+ a8( b) c
+ }
+ \new Lyrics \lyricsto "lahlah" {
+ Ju -- ras -- sic Park
+ }
+ \new Lyrics \lyricsto "lahlah" {
+ % Tricky: need to set associatedVoice
+ % one syllable too soon!
+ \set associatedVoice = alternative % applies to "ran"
+ Ty --
+ ran --
+ no --
+ \set associatedVoice = lahlah % applies to "rus"
+ sau -- rus Rex
+ } >>
+@end lilypond
+
+@noindent
+the text for the first stanza is set to a melody called @q{lahlah},
+
+@example
+\new Lyrics \lyricsto "lahlah" @{
+ Ju -- ras -- sic Park
+@}
+@end example
+
+
+The second stanza initially is set to the @code{lahlah} context, but
+for the syllable @q{ran}, it switches to a different melody.
+This is achieved with
+@example
+\set associatedVoice = alternative
+@end example
+
+@noindent
+Here, @code{alternative} is the name of the @code{Voice} context
+containing the triplet.
+
+Again, the command must be one syllable too early, before @q{Ty} in
+this case.
+
+@example
+\new Lyrics \lyricsto "lahlah" @{
+ \set associatedVoice = alternative % applies to "ran"
+ Ty --
+ ran --
+ no --
+ \set associatedVoice = lahlah % applies to "rus"
+ sau -- rus Rex
+@}
+@end example
+
+@noindent
+The underlay is switched back to the starting situation by assigning
+@code{lahlah} to @code{associatedVoice}.
+
+
+@node Printing stanzas at the end
@subsubsection Printing stanzas at the end
Sometimes it is appropriate to have one stanza set
Internals Reference: @internalsref{LyricText}, @internalsref{StanzaNumber},
@internalsref{VocalName}.
-@c TODO: stick elsewhere
-@ignore
-@n ode Other vocal issues
-@s ubsection Other vocal issues
-
-yeah, I'm giving up somewhat by stuffing a bunch of things in
-here. But at least they're in the manual now; it's easier to
-move them around in the manual once they're already here.
-
-Besides, if users complain about everything stuffed in here, I
-can ask them for specific instructions about where to move these
-examples, and that might get them more involved in the docs. -gp
-
-
-@q{Parlato} is spoken without pitch but still with rhythm; it is
-notated by cross note heads. This is demonstrated in
-@ref{Special note heads}.
-@end ignore
-
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+@c \version "2.11.38"
+
+@node Wind instruments
+@section Wind instruments
+
+This section includes extra information for writing for bagpipes.
+
+@menu
+* Common notation::
+* Bagpipes::
+@end menu
+
+@node Common notation
+@subsection Common notation
+
+@menu
+* References for wind instruments::
+* Half-holes::
+@end menu
+
+@node References for wind instruments
+@subsubsection References for wind instruments
+
+@c TODO Add refs
+TBC
+
+@node Half-holes
+@subsubsection Half-holes
+@c TODO Add text; search -user
+TBC
+
+@node Bagpipes
+@subsection Bagpipes
+
+@menu
+* Bagpipe definitions::
+* Bagpipe example::
+@end menu
+
+@node Bagpipe definitions
+@subsubsection Bagpipe definitions
+
+LilyPond contains special definitions for music for the Scottish
+highland bagpipe; to use them, add
+
+@example
+\include "bagpipe.ly"
+@end example
+
+@noindent
+at the top of your input file. This lets you add the special grace notes
+common to bagpipe music with short commands. For example, you could
+write @code{\taor} instead of
+
+@example
+\grace @{ \small G32[ d G e] @}
+@end example
+
+@code{bagpipe.ly} also contains pitch definitions for the bagpipe
+notes in the appropriate octaves, so you do not need to worry about
+@code{\relative} or @code{\transpose}.
+
+@lilypond[ragged-right,verbatim,quote,notime]
+\include "bagpipe.ly"
+{ \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
+@end lilypond
+
+Bagpipe music nominally uses the key of D Major (even though that
+isn't really true). However, since that is the only key that can be used,
+the key signature is normally not written out. To set this up correctly,
+always start your music with @code{\hideKeySignature}. If you for some
+reason want to show the key signature, you can use @code{\showKeySignature}
+instead.
+
+Some modern music use cross fingering on c and f to flatten those notes.
+This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
+piobaireachd high g can be written @code{gflat} when it occurs in light
+music.
+
+
+@node Bagpipe example
+@subsubsection Bagpipe example
+
+This is what the well known tune Amazing Grace looks like in bagpipe
+notation.
+
+@lilypond[verbatim,quote]
+\include "bagpipe.ly"
+\layout {
+ indent = 0.0\cm
+ \context { \Score \remove "Bar_number_engraver" }
+}
+
+\header {
+ title = "Amazing Grace"
+ meter = "Hymn"
+ arranger = "Trad. arr."
+}
+
+{
+ \hideKeySignature
+ \time 3/4
+ \grg \partial 4 a8. d16
+ \slurd d2 \grg f8[ e32 d16.]
+ \grg f2 \grg f8 e
+ \thrwd d2 \grg b4
+ \grG a2 \grg a8. d16
+ \slurd d2 \grg f8[ e32 d16.]
+ \grg f2 \grg e8. f16
+ \dblA A2 \grg A4
+ \grg A2 f8. A16
+ \grg A2 \hdblf f8[ e32 d16.]
+ \grg f2 \grg f8 e
+ \thrwd d2 \grg b4
+ \grG a2 \grg a8. d16
+ \slurd d2 \grg f8[ e32 d16.]
+ \grg f2 e4
+ \thrwd d2.
+ \slurd d2
+ \bar "|."
+}
+@end lilypond
+
+
+
+
+
@menu
-* Suggestions for writing LilyPond files::
+* Suggestions for writing LilyPond input files::
* When things don't work::
* Scores and parts::
@end menu
-@node Suggestions for writing LilyPond files
-@section Suggestions for writing LilyPond files
+@node Suggestions for writing LilyPond input files
+@section Suggestions for writing LilyPond input files
-Now you're ready to begin writing larger LilyPond files -- not just the
-little examples in the tutorial, but whole pieces. But how should you
-go about doing it?
+Now you're ready to begin writing larger LilyPond input files --
+not just the little examples in the tutorial, but whole pieces.
+But how should you go about doing it?
-As long as LilyPond can understand your files and produces the output
-that you want, it doesn't matter what your files look like. However,
-there are a few other things to consider when writing LilyPond files.
+As long as LilyPond can understand your input files and produce
+the output that you want, it doesn't matter what your input files
+look like. However, there are a few other things to consider when
+writing LilyPond input files.
@itemize
@item What if you make a mistake? The structure of a LilyPond
file can make certain errors easier (or harder) to find.
-@item What if you want to share your files with somebody
-else? In fact, what if you want to alter your own files in
-a few years? Some LilyPond files are understandable at
-first glance; other files may leave you scratching your head
+@item What if you want to share your input files with somebody
+else? In fact, what if you want to alter your own input files in
+a few years? Some LilyPond input files are understandable at
+first glance; others may leave you scratching your head
for an hour.
@item What if you want to upgrade your LilyPond file for use
with a later version of LilyPond? The input syntax changes
occasionally as LilyPond improves. Most changes can be
done automatically with @code{convert-ly}, but some changes
-might require manual assistance. LilyPond files can be
+might require manual assistance. LilyPond input files can be
structured in order to be easier (or harder) to update.
@end itemize
either in the music
itself or in the output you desire, it's often good to write only one bar
per line. Saving screen space by cramming eight bars per line just isn't
-worth it if you have to @q{debug} your files.
+worth it if you have to @q{debug} your input files.
-@item @strong{Comment your files}. Use either bar numbers (every so often)
-or
+@item @strong{Comment your input files}. Use either bar numbers
+(every so often) or
references to musical themes (@q{second theme in violins,} @q{fourth
variation,} etc.). You may not need comments when you're writing the piece
for the first time, but if you want to go back to change something two or
@subsection Large projects
When working on a large project, having a clear structure to your
-lilypond files becomes vital.
+lilypond input files becomes vital.
@itemize
@end lilypond
Using variables is also a good way to reduce work if the
-LilyPond input syntax changes (see @ref{Updating old files}). If
+LilyPond input syntax changes (see @ref{Updating old input files}). If
you have a single definition (such as @code{\dolce}) for all your
-files (see @ref{Style sheets}), then if the syntax changes, you
+input files (see @ref{Style sheets}), then if the syntax changes, you
only need to update your single @code{\dolce} definition,
instead of making changes throughout every @code{.ly} file.
The output that LilyPond produces can be heavily modified; see
@ref{Tweaking output}, for details. But what if you have many
-files that you want to apply your tweaks to? Or what if you
+input files that you want to apply your tweaks to? Or what if you
simply want to separate your tweaks from the actual music? This
is quite easy to do.
definitions. They produce the output we desire, but we might want
to use them in another piece. We could simply copy-and-paste them
at the top of every file, but that's an annoyance. It also leaves
-those definitions in our music files, and I personally find all
+those definitions in our input files, and I personally find all
the @code{#()} somewhat ugly. Let's hide them in another file:
@example
@section When things don't work
@menu
-* Updating old files::
+* Updating old input files::
* Troubleshooting (taking it all apart)::
* Minimal examples::
@end menu
-@node Updating old files
-@subsection Updating old files
+@node Updating old input files
+@subsection Updating old input files
The LilyPond input syntax occasionally changes. As LilyPond itself
improves, the syntax (input language) is modified accordingly. Sometimes
@code{ë} must be entered directly into the LilyPond file as an
UTF-8 character. @code{convert-ly} cannot change all the LaTeX
special characters into UTF-8 characters; you must manually update
-your old LilyPond files.
+your old LilyPond input files.
@node Troubleshooting (taking it all apart)
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=11
-PATCH_LEVEL=43
+PATCH_LEVEL=44
MY_PATCH_LEVEL=
notags_files = []
# mark the section that will be printed verbatim by lilypond-book
-end_header_re = re.compile ('(\\header {.+?(?:"\\s*|\\s+)}\n)\n', re.M | re.S)
+end_header_re = re.compile ('(\\header {.+?doctitle = ".+?})\n', re.M | re.S)
def mark_verbatim_section (ly_code):
- return end_header_re.sub ('\\1% begin verbatim\n', ly_code, 1)
+ return end_header_re.sub ('\\1 % begin verbatim\n', ly_code, 1)
begin_header_re = re.compile ('\\header\\s*{', re.M)
# must come before any header checks
STEPMAKE_COMPILE
-# os.path.realpath() requires python 2.2 and unix
-STEPMAKE_PYTHON(REQUIRED, 2.2)
AC_CHECK_PROG(FCMATCH, fc-match, fc-match)
AC_MSG_CHECKING([New Century Schoolbook PFB files])
AC_SUBST(NCSB_SOURCE_FILES)
\header {
lsrtags = "chords, ancient-notation, contexts-and-engravers"
- texidoc = "
+
+ texidoc = "
When writing a figured bass, here's a way to specify if you want your
figures to be placed above or below the bass notes, by defining the
@code{BassFigureAlignmentPositioning #'direction} property (exclusively
As you can see here, this property can be changed as many times as you
wish. Use @code{\\once \\override} if you don't want the tweak to apply
to the whole score.
-" }
-% begin verbatim
+
+"
+ doctitle = "Adding a figured bass above or below the notes"
+} % begin verbatim
bass = { \clef bass g4 b, c d e d8 c d2}
continuo = \figuremode {
< _ >4 < 6 >8
\header {
lsrtags = "pitches, staff-notation, vocal-music"
- texidoc = "
+
+ texidoc = "
Ambitus can be added per voice. In this case, the ambitus must be moved
manually to prevent collisions.
-" }
-% begin verbatim
+
+"
+ doctitle = "Adding ambitus per voice"
+} % begin verbatim
\new Staff <<
\new Voice \with {
\consists "Ambitus_engraver"
\header {
lsrtags = "staff-notation, contexts-and-engravers, breaks"
- texidoc = "
-When adding a new staff at a line break, LilyPond will unfortunately
-add some extra space at the end of the line before the break (to fit in
+
+ texidoc = "
+When adding a new staff at a line break, some extra space is
+unfortunately added at the end of the line before the break (to fit in
a key signature change, which will never be printed anyway). The
workaround is to add a setting of
@code{Staff.explicitKeySignatureVisibility} as is shown in the example.
-In version 2.10 and earlier, you have to do a similar setting for the
-time signatures, see the example.
+In versions 2.10 and earlier, a similar setting for the time signatures
+is also required (see the example).
+
-" }
-% begin verbatim
+"
+ doctitle = "Adding an extra staff at a line break"
+} % begin verbatim
\score {
- \new StaffGroup \relative c''{
+ \new StaffGroup \relative c'' {
\new Staff
\key f \major
c1 c^"Unwanted extra space" \break
\header {
lsrtags = "staff-notation, contexts-and-engravers"
- texidoc = "
-You can add (possibly temporarily) an extra staff after the beginning
-of a piece.
-" }
-% begin verbatim
+
+ texidoc = "
+An extra staff can be added (possibly temporarily) after the start of a
+piece.
+
+"
+ doctitle = "Adding an extra staff"
+} % begin verbatim
\score {
<<
\new Staff \relative c'' { c1 c c c c }
\header {
lsrtags = "rhythms, expressive-marks"
- texidoc = "
+
+ texidoc = "
LilyPond syntax can involve many unusual placements for parentheses,
brackets etc., which might sometimes have to be interleaved. For
example, when entering a manual beam, the left square bracket has to be
inside a tuplet section. This snippet demonstrates how to combine
manual beaming, manual slurs, ties and phrasing slurs with tuplet
sections (enclosed within curly braces).
-" }
-% begin verbatim
+
+"
+ doctitle = "Adding beams, slurs, ties etc. when using tuplet and non-tuplet rythms."
+} % begin verbatim
{
r16[ g16 \times 2/3 { r16 e'8] }
g16( a \times 2/3 { b d e') }
\header {
lsrtags = "rhythms, percussion"
- texidoc = "
-LilyPond makes drums input quite easy, with powerful pre-configured
-tools such as the @code{\\drummode} function and the @code{DrumStaff}
-context: drums are placed at their own staff positions (with a special
-clef symbol) and have note heads according to the drum. You can easily
-attach an extra symbol to the drum, and restrict the number of lines.
-" }
-% begin verbatim
+
+ texidoc = "
+Using the powerful pre-configured tools such as the @code{\\drummode}
+function and the @code{DrumStaff} context, inputting drum parts is
+quite easy: drums are placed at their own staff positions (with a
+special clef symbol) and have note heads according to the drum.
+Attaching an extra symbol to the drum or restricting the number of
+lines is possible.
+
+"
+ doctitle = "Adding drum parts"
+} % begin verbatim
drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh hhc8 hho hhc8 hh16 hh hhc4 r4 r2 }
drl = \drummode { bd4 sn8 bd bd4 << bd ss >> bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
timb = \drummode { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb }
\header {
lsrtags = "guitar"
- texidoc = "
+
+ texidoc = "
To add fingerings to tablatures, you can use a combination of
@code{\\markup} and @code{\\finger}.
-" }
-% begin verbatim
+
+"
+ doctitle = "Adding fingerings to tablatures"
+} % begin verbatim
one = \markup { \finger "1" }
two = \markup { \finger "2" }
threeTwo = \markup { \column { \finger "3" \finger "2" } }
\header {
lsrtags = "expressive-marks"
- texidoc = "
+
+ texidoc = "
The @code{\\parenthesize} function is a special tweak that encloses
objects in parentheses. The associated grob is
@code{Score.ParenthesesItem}.
-" }
-% begin verbatim
+
+"
+ doctitle = "Adding parentheses around an expressive mark or chordal note"
+} % begin verbatim
\relative {
c2-\parenthesize ->
\override ParenthesesItem #'padding = #0.1
\header {
lsrtags = "titles"
- texidoc = "
+
+ texidoc = "
I often find it useful to include a date on printed music, so that I
can see if I'm using the latest version, or tell someone else that he
should only use the version after a certain date. A simple solution is
solution, you can format the date just as you like it by adapting the
@code{\"%d-%m-%Y\"} string. See the Guile documentation for more
details on this format string: Formatting Calendar Time.
-" }
-% begin verbatim
+
+"
+ doctitle = "Adding the current date to a score"
+} % begin verbatim
\version "2.11.38"
% first, define a variable to hold the formatted date:
date = #(strftime "%d-%m-%Y" (localtime (current-time)))
\header {
lsrtags = "repeats"
- texidoc = "
+
+ texidoc = "
The @code{Volta_engraver} by default resides in the @code{Score}
context, and brackets for the repeat are thus normally only printed
over the topmost staff. This can be adjusted by adding the
-@code{Volta_engraver} to the @code{Staff} context where you want the
-brackets to appear; see also the \"Volta multi staff\" snippet.
-" }
-% begin verbatim
+@code{Volta_engraver} to the @code{Staff} context where the brackets
+should appear; see also the \"Volta multi staff\" snippet.
+
+"
+ doctitle = "Adding volta brackets to additional staves"
+} % begin verbatim
<<
\new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
\new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
\header {
lsrtags = "text, vocal-music, spacing"
- texidoc = "
+
+ texidoc = "
This snippet shows you how to bring the lyrics line closer to the
staff.
-" }
-% begin verbatim
+
+"
+ doctitle = "Adjusting lyrics vertical spacing"
+} % begin verbatim
% Default layout:
<<
\new Staff \new Voice = melody \relative c '{ c4 d e f g f e d c1 }
\header {
lsrtags = "text, paper-and-layout, titles"
- texidoc = "
+
+ texidoc = "
Instrument names are generally printed at the left side of the staves.
To align the names of several different intruments, you can put them in
a @code{\\markup} block and use one of the following possibilites:
with an @code{\\hspace #n} object.
-" }
-% begin verbatim
+
+"
+ doctitle = "Aligning and centering instrument names"
+} % begin verbatim
\paper {
indent = #0
left-margin = #30
\header {
lsrtags = "text, vocal-music"
- texidoc = "
+
+ texidoc = "
You can specify different horizontal alignment for your lyrics, by
overriding the @code{self-alignment-X} property of the @code{LyricText}
object. @code{#-1} is left, @code{#0} is center and @code{#1} is right;
however, you can use @code{#LEFT}, @code{#CENTER} and @code{#RIGHT} as
well.
-" }
-% begin verbatim
+
+"
+ doctitle = "Aligning lyrics"
+} % begin verbatim
\relative c'' {
c1 c c
}
\header {
lsrtags = "text"
- texidoc = "
+
+ texidoc = "
If specified, text marks may be aligned with notation objects other
than bar lines. These objects include @code{ambitus},
@code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar},
be done for all the staves).
-" }
-% begin verbatim
+
+"
+ doctitle = "Aligning marks with various notation objects"
+} % begin verbatim
\relative c' {
e1
\header {
lsrtags = "tweaks-and-overrides, paper-and-layout, spacing"
- texidoc = "
+
+ texidoc = "
By setting properties in @code{NonMusicalPaperColumn}, vertical spacing
of alignments can be adjusted per system.
For technical reasons, @code{\\overrideProperty} has to be used for
setting properties on individual objects. @code{\\override} in a
@code{\\context} block may still be used for global overrides.
-" }
-% begin verbatim
+
+"
+ doctitle = "Alignment vertical spacing"
+} % begin verbatim
#(set-global-staff-size 13)
\relative c''
\header {
lsrtags = "editorial-and-educational-use, spacing"
- texidoc = "
+
+ texidoc = "
By default, fingering numbers will be printed outside the staff.
However, this behavior can be canceled.
-" }
-% begin verbatim
+
+"
+ doctitle = "Allowing fingerings to be printed inside the staff"
+} % begin verbatim
\relative c' {
<c-1 e-2 g-3 b-5>2
\once \override Fingering #'staff-padding = #'()
\header {
lsrtags = "rhythms, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
You can alter the number of stems in a beam. In this example, two sets
of four 32nds are joined, as if they were 8th notes.
-" }
-% begin verbatim
+
+"
+ doctitle = "Altering the number of stems in a beam"
+} % begin verbatim
\relative {
#(override-auto-beam-setting '(end * * * *) 1 4)
f32 g a b b a g f
\header {
lsrtags = "pitches, vocal-music"
- texidoc = "
-If you have multiple voices in a single staff and you want a single
-ambitus per staff rather than per voice, add the
-@code{Ambitus_engraver} to the @code{Staff} context rather than to the
-@code{Voice} context.
-" }
-% begin verbatim
+
+ texidoc = "
+Adding the @code{Ambitus_engraver} to the @code{Staff} context create a
+single ambitus per staff, even in the case of staves with multiple
+voices.
+
+"
+ doctitle = "Ambitus with multiple voices"
+} % begin verbatim
\new Staff \with {
\consists "Ambitus_engraver"
}
\header {
lsrtags = "ancient-notation"
- texidoc = "
+
+ texidoc = "
Here are shown many (all?) of the symbols that are included in
LilyPond's support of ancient notation.
-" }
-% begin verbatim
+
+"
+ doctitle = "Ancient fonts"
+} % begin verbatim
upperStaff = \context GregorianStaff = "upperStaff" <<
\context GregorianVoice <<
\set Score.timing = ##f
\header {
lsrtags = "ancient-notation, template"
- texidoc = "
+
+ texidoc = "
This example demonstrates how to do modern transcription of Gregorian
music. Gregorian music has no measure, no stems; it uses only half and
quarter noteheads, and special marks, indicating rests of different
length.
-" }
-% begin verbatim
+
+"
+ doctitle = "Ancient notation template -- modern transcription of gregorian music"
+} % begin verbatim
\include "gregorian-init.ly"
chant = \relative c' {
\header {
lsrtags = "ancient-notation, template"
- texidoc = "
+
+ texidoc = "
When transcribing mensural music, an incipit at the beginning of the
piece is useful to indicate the original key and tempo. While today
musicians are used to bar lines in order to faster recognize rhythmic
music; in fact, the meter often changed after every few notes. As a
compromise, bar lines are often printed between the staves rather than
on the staves.
-" }
-% begin verbatim
+
+"
+ doctitle = "Ancient notation template -- modern transcription of mensural music"
+} % begin verbatim
global = {
\set Score.skipBars = ##t
transcription-of-ancient-music-with-incipit.ly
chant-or-psalms-notation.ly
adding-a-figured-bass-above-or-below-the-notes.ly
+incipit.ly
ancient-notation-template----modern-transcription-of-mensural-music.ly
ancient-fonts.ly
ancient-time-signatures.ly
\header {
lsrtags = "ancient-notation"
- texidoc = "
+
+ texidoc = "
Time signatures may also be engraved in an old style.
-" }
-% begin verbatim
+
+"
+ doctitle = "Ancient time signatures"
+} % begin verbatim
\score {
{
\override Staff.TimeSignature #'style = #'neomensural
\header {
lsrtags = "pitches, editorial-and-educational-use"
- texidoc = "
-The @code{shapeNoteStyles} property gives you the ability to define
-various note head styles for each step of the scale (as defined by the
-key signature or the \"tonic\" property). This property requires a set
-of symbols, which can be purely arbitrary (geometrical expressions such
-as @code{triangle}, @code{cross}, @code{xcircle} etc. are allowed) or
-based on old American engraving tradition (you can use some latin note
-names as well). That said, if you're trying to imitate old American
-song books, you may also want to try LilyPond's predefined note head
-styles, through shortcut commands such as @code{\\aikenHeads} or
-@code{\\sacredHarpHeads}. This example shows different ways to obtain
-shape note heads, and demonstrates the ability to transpose a melody
-without losing the correspondence between harmonic functions and note
-head styles.
-" }
-% begin verbatim
+
+ texidoc = "
+The @code{shapeNoteStyles} property can be used to define various note
+head styles for each step of the scale (as set by the key signature or
+the \"tonic\" property). This property requires a set of symbols, which
+can be purely arbitrary (geometrical expressions such as
+@code{triangle}, @code{cross}, and @code{xcircle} are allowed) or based
+on old American engraving tradition (some latin note names are also
+allowed).
+
+That said, to imitate old American song books, there are several
+predefined note head styles available through shortcut commands such as
+@code{\\aikenHeads} or @code{\\sacredHarpHeads}.
+
+This example shows different ways to obtain shape note heads, and
+demonstrates the ability to transpose a melody without losing the
+correspondence between harmonic functions and note head styles.
+
+"
+ doctitle = "Applying note head styles depending on the step of the scale"
+} % begin verbatim
fragment = {
\key c \major
c2 d e f g a b c
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
Beams can be subdivided automatically. By setting the property
@code{subdivideBeams}, beams are subdivided at beat positions (as
specified in @code{beatLength}).
-" }
-% begin verbatim
+
+"
+ doctitle = "Automatic beam subdivisions"
+} % begin verbatim
\score {
\new Staff \relative {
<< {
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
In a simple time signature of 2/2 or 4/4, 8th notes are beamed by
-default as two sets of four. Using a macro which overrides the
-autobeaming behavior, this snippet changes the beaming to quarter note
-beats.
-" }
-% begin verbatim
+default as two sets of four.
+
+Using a macro which overrides the autobeaming behavior, this snippet
+changes the beaming to quarter note beats.
+
+"
+ doctitle = "Automatic beams two per two in 4/4 or 2/2 time signature"
+} % begin verbatim
% Automatic beams two per two in 4/4 or 2/2 time signature
% _____
% Default | | | |
% The good way adapted from David Bobroff
% macro for beamed two per two in 2/2 and 4/4 time signature
-qbeam= {
+qBeam = {
#(override-auto-beam-setting '(end 1 8 * *) 1 4 'Staff)
#(override-auto-beam-setting '(end 1 8 * *) 2 4 'Staff)
#(override-auto-beam-setting '(end 1 8 * *) 3 4 'Staff)
%Use the macro
\new Staff \relative c'' {
\time 4/4
- \qbeam
+ \qBeam
g8^\markup { with the macro } g g g g g g g |
g g g g4 g8 g g |
}
+++ /dev/null
-@node Bagpipes
-@chapter Bagpipes
-
-@lysnippets
-
\header {
lsrtags = "rhythms, breaks"
- texidoc = "
-By default, beams can't be printed across line breaks. Here's a way to
-force the line break, by setting the @code{#'breakable} property. See
-also in the manual the \"Line Breaking\" and \"Manual beams\" sections.
-" }
-% begin verbatim
-\layout { ragged-right= ##t }
+ texidoc = "
+By default, beams can't be printed across line breaks. This behavior
+can be overridden by setting the @code{breakable} property. See also in
+the manual the \"Line breaking\" and \"Manual beams\" sections.
+
+"
+ doctitle = "Beams across line breaks"
+} % begin verbatim
+\layout { ragged-right = ##t }
\relative c'' {
\override Score.Beam #'breakable = ##t
- \time 3/16 c16[ d e \break f]
+ \time 3/16
+ c16[ d e \break
+ f] r r
}
\header {
lsrtags = "editorial-and-educational-use, text"
- texidoc = "
+
+ texidoc = "
The @code{\\whiteout} command underlays a white box under a markup.
Since staff lines are in a lower layer than most other grobs, this
white box will not overlap any other grob.
-" }
-% begin verbatim
+
+"
+ doctitle = "Blanking staff lines using the \whiteout command"
+} % begin verbatim
\relative {
\override TextScript #'extra-offset = #'(2 . 4)
c2-\markup { \whiteout \pad-markup #0.5 "middle C" } c
\header {
lsrtags = "expressive-marks"
- texidoc = "
+
+ texidoc = "
Breathing signs are available in different tastes: commas (default),
ticks, vees and \"railroad tracks\" (caesura).
-" }
-% begin verbatim
+
+"
+ doctitle = "Breathing signs"
+} % begin verbatim
\new Staff \relative c'' {
\key es \major
\time 3/4
\version "2.11.38"
\header {
- doctitle = "Broken crescendo hairpin"
lsrtags = "expressive-marks"
texidoc = "
In order to make parts of a crescendo hairpin invisible, the following
Make sure to put the hairpin in a lower layer than the text markup to
actually draw the rectangle above the hairpin.
-" }
+"
+ doctitle = "Broken crescendo hairpin"
+} % begin verbatim
\score {
\relative c' {
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
A caesura is sometimes denoted with a double \"railtracks\" breath mark
with a fermata sign positioned over the top of the railtracks. This
snippet should present an optically pleasing combination of railtracks
and a fermata.
-" }
-% begin verbatim
+
+"
+ doctitle = "Caesura (\"railtracks\") with fermata"
+} % begin verbatim
{
c''2.
% construct the symbol
\header {
lsrtags = "expressive-marks, text"
- texidoc = "
+
+ texidoc = "
This example provides a function to typeset a hairpin (de)crescendo
with some additional text below it, such as \"molto\" or \"poco\". The
example also illustrates how to modify the way an object is normally
printed, using some Scheme code.
-" }
-% begin verbatim
+
+"
+ doctitle = "Center text below hairpin dynamics"
+} % begin verbatim
hairpinWithCenteredText = #(define-music-function (parser location text) (markup?)
#{
\override Voice.Hairpin #'stencil = #(lambda (grob)
\header {
lsrtags = "expressive-marks"
- texidoc = "
-To make the @code{\\flageolet} circle smaller you can use the following
-Scheme code.
-" }
-% begin verbatim
+
+ texidoc = "
+To make the @code{\\flageolet} circle smaller use the following Scheme
+function.
+
+"
+ doctitle = "Changing \flageolet mark size"
+} % begin verbatim
smallFlageolet = #(let ((m (make-music 'ArticulationEvent
'articulation-type "flageolet")))
(set! (ly:music-property m 'tweaks)
\header {
lsrtags = "simultaneous-notes, editorial-and-educational-use, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
Individual note heads in a chord can be modified with the
-@code{\\tweak} command inside a chord, by altering the
-@code{'font-size} property.
+@code{\\tweak} command inside a chord, by altering the @code{font-size}
+property.
Inside the chord (within the brackets @code{< >}), before the note to
notehead).
-The code for the chord example shown: @code{}
-" }
-% begin verbatim
+
+"
+ doctitle = "Changing a single note's size in a chord"
+} % begin verbatim
\layout { ragged-right = ##t }
\relative {
<\tweak #'font-size #+2 c e g c \tweak #'font-size #-2 e>1^\markup { A tiny e }_\markup { A big c }
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
\version "2.11.42"
-\layout { ragged-right= ##t }
+\layout { ragged-right = ##t }
\header {
- doctitle = "Changing form of multi-measure rests"
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
-If there are ten or fewer measures of rests, LilyPond prints
-a series of longa and breve rests (called in German
-\"Kirchenpausen\" - church rests) within the staff and
-prints a simple line otherwise. This default number of ten
-may be changed by an override:
-"}
-% begin verbatim
+If there are ten or fewer measures of rests, a series of longa
+and breve rests (called in German \"Kirchenpausen\" - church rests)
+is printed within the staff; otherwise a simple line is shown.
+This default number of ten may be changed by overriding the
+@code{expand-limit} property:
+"
+ doctitle = "Changing form of multi-measure rests"
+} % begin verbatim
+
\relative c'' {
\compressFullBarRests
R1*2 | R1*5 | R1*9
\header {
lsrtags = "tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
The @code{\\applyOutput} command gives you the ability to tune any
layout object, in any context. It requires a Scheme function with three
arguments; advanced users can write it quite easily, whereas new users
may want to use pre-defined functions such as this snippet, or the
example in the manual.
-" }
-% begin verbatim
+
+"
+ doctitle = "Changing properties for individual grobs"
+} % begin verbatim
% ****************************************************************
% ly snippet:
% ****************************************************************
\header {
lsrtags = "expressive-marks, editorial-and-educational-use"
- texidoc = "
+
+ texidoc = "
The appearance of slurs may be changed from solid to dotted or dashed.
-" }
-% begin verbatim
+
+"
+ doctitle = "Changing the appearance of a slur from solid to dotted or dashed"
+} % begin verbatim
\relative c' {
c( d e c) |
\slurDotted
\header {
lsrtags = "chords"
- texidoc = "
+
+ texidoc = "
The english naming of chords (default) can be changed to german
(@code{\\germanChords} replaces B and Bes to H and B) or semi-german
(@code{\\semiGermanChords} replaces B and Bes to H and Bb).
-" }
-% begin verbatim
+
+"
+ doctitle = "Changing the chord names to German or semi-German notation"
+} % begin verbatim
music = \chordmode {
c1/c cis/cis
b/b bis/bis bes/bes
\header {
lsrtags = "text, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
The default font families for text can be overridden with
@code{make-pango-font-tree}.
-" }
-% begin verbatim
+
+"
+ doctitle = "Changing the default text font family"
+} % begin verbatim
\paper {
% change for other default global staff size.
myStaffSize = #20
\header {
lsrtags = "staff-notation"
- texidoc = "
-The number of lines in a staff may changed by overriding
-@code{line-count} in the properties of @code{StaffSymbol}.
+ texidoc = "
+The number of lines in a staff may changed by overriding the
+@code{StaffSymbol} property @code{line-count}.
-" }
-% begin verbatim
+
+
+
+"
+ doctitle = "Changing the number of lines in a staff"
+} % begin verbatim
upper = \relative c'' {
c1 d e f
}
lower = \relative c {
+ \clef bass
c1 b a g
}
\score {
\context PianoStaff <<
- \new Staff <<
+ \new Staff {
\upper
- >>
- \new Staff {
- \override Staff.StaffSymbol #'line-count = #4
- \clef bass
- \lower
+ }
+ \new Staff {
+ \override Staff.StaffSymbol #'line-count = #4
+ \lower
}
>>
-
}
-
\header {
lsrtags = "staff-notation, tweaks-and-overrides, paper-and-layout"
- texidoc = "
-In order to change staff sizes, both @code{staff-space} and
-@code{fontSize} must be scaled.
-If you do not want to resize staves individually, the simplest way is
-to use @code{#(set-global-staff-size xx)}.
-" }
-% begin verbatim
+ texidoc = "
+Though the simplest way to resize staves is to use
+@code{#(set-global-staff-size xx)}, an individual staff's size can be
+changed by scaling the properties @code{staff-space} and
+@code{fontSize}.
+
+"
+ doctitle = "Changing the staff size"
+} % begin verbatim
<<
- \new Staff \relative c'' { \dynamicDown c8 \ff c c c c c c c }
+ \new Staff \relative c'' { \dynamicDown c8\ff c c c c c c c }
\new Staff \with {
fontSize = #-3
\override StaffSymbol #'staff-space = #(magstep -3)
}
{
\clef bass
- c8 c c c c c c c
+ c8 c c c c\f c c c
}
>>
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
By default, only the numerator of the tuplet number is printed over the
tuplet bracket, i.e., the denominator of the argument to the
@code{\\times} command. Alternatively, num:den of the tuplet number may
be printed, or the tuplet number may be suppressed altogether.
-" }
-% begin verbatim
+
+"
+ doctitle = "Changing the tuplet number"
+} % begin verbatim
\relative c'' {
\times 2/3 { c8 c c } \times 2/3 { c8 c c }
\override TupletNumber #'text = #tuplet-number::calc-fraction-text
\header {
lsrtags = "rhythms, contexts-and-engravers"
- texidoc = "
+
+ texidoc = "
The @code{measureLength} property, together with
@code{measurePosition}, determines when a bar line is needed. However,
when using @code{\\compressMusic}, the scaling of durations makes it
Therefore, @code{measureLength} has to be set manually, using the
@code{ly:make-moment} callback. The second argument must be the same as
the second argument of @code{\\compressMusic}.
-" }
-% begin verbatim
+
+"
+ doctitle = "Changing time signatures inside a polymetric section using \compressMusic"
+} % begin verbatim
\layout {
\context {
\Score
\header {
lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers"
- texidoc = "
+
+ texidoc = "
This form of notation is used for the chant of the Psalms, where verses
aren't always the same length.
-" }
-% begin verbatim
+
+"
+ doctitle = "Chant or psalms notation"
+} % begin verbatim
stemOn = { \override Staff.Stem #'transparent = ##f }
stemOff = { \override Staff.Stem #'transparent = ##t }
\header {
lsrtags = "chords"
- texidoc = "
+
+ texidoc = "
The property @code{chordNameExceptions} can used to store a list of
special notations for specific chords.
-" }
-% begin verbatim
+
+"
+ doctitle = "Chord name exceptions"
+} % begin verbatim
% 7sus4 denoted with ^7 wahh
chExceptionMusic = {
<c f g bes>1-\markup { \super "7" "wahh" }
\version "2.11.38"
\layout { ragged-right= ##t }
\header {
- doctitle = "Clip systems"
lsrtags = "paper-and-layout" % a new tag like "Mixing text and music" or
% "Special output" might be more adequate -jm
texidoc = "
-This code shows how to clip (extracts) snippets from a full score.
+This code shows how to clip (extract) snippets from a full score.
This file needs to be run separately with @code{-dclip-systems}; the
snippets page may not adequately show the results.
@file{@var{base}-from-@var{start}-to-@var{end}[-@var{count}].eps}.
@itemize @bullet
-@item If system starts and ends are included, they include extents of the System grob, eg. instrument names.
+@item If system starts and ends are included, they include extents of the System grob, e.g., instrument names.
@item Grace notes at the end point of the region are not included.
@item Regions can span multiple systems. In this case, multiple EPS files are generated.
@end itemize
"
-}
-% begin verbatim
-#(ly:set-option 'clip-systems)
+ doctitle = "Clip systems"
+} % begin verbatim
+#(ly:set-option 'clip-systems)
#(set! output-count 1)
-origScore = \score{
- \relative {
- \set Staff.instrumentName = #"bla"
- c1
- d
- \grace c16
- e1
- \key d\major
-
- f
- \break \clef bass
- g,
- fis
- }
+origScore = \score {
+ \relative c' {
+ \set Staff.instrumentName = #"bla"
+ c1
+ d
+ \grace c16 e1
+ \key d \major
+ f \break
+ \clef bass
+ g,
+ fis
+ }
}
-\book {
+\book {
\score {
\origScore
\layout {
-
- %% each clip-region is a (START . END) pair
- %% where both are rhythmic-locations.
+ % Each clip-region is a (START . END) pair
+ % where both are rhythmic-locations.
- %% (make-rhythmic-locations BAR-NUMBER NUM DEN)
- %% means NUM/DEN whole-notes into bar numbered BAR-NUMBER
+ % (make-rhythmic-locations BAR-NUMBER NUM DEN)
+ % means NUM/DEN whole-notes into bar numbered BAR-NUMBER
- clip-regions
- = #(list
- (cons
- (make-rhythmic-location 2 0 1)
- (make-rhythmic-location 4 0 1))
+ clip-regions = #(list
+ (cons
+ (make-rhythmic-location 2 0 1)
+ (make-rhythmic-location 4 0 1))
+
+ (cons
+ (make-rhythmic-location 0 0 1)
+ (make-rhythmic-location 4 0 1))
- (cons
- (make-rhythmic-location 0 0 1)
- (make-rhythmic-location 4 0 1))
-
- (cons
- (make-rhythmic-location 0 0 1)
- (make-rhythmic-location 6 0 1))
- )
+ (cons
+ (make-rhythmic-location 0 0 1)
+ (make-rhythmic-location 6 0 1))
+ )
}
}
}
\header {
lsrtags = "simultaneous-notes, chords, piano-music"
- texidoc = "
+
+ texidoc = "
Clusters are a device to denote that a complete range of notes is to be
played.
-" }
-% begin verbatim
+
+"
+ doctitle = "Clusters"
+} % begin verbatim
\layout {
ragged-right = ##t
}
\header {
lsrtags = "expressive-marks, text"
- texidoc = "
+
+ texidoc = "
Some dynamics may involve text indications (such as \"più forte\" or
\"piano subito\"). They can be produced using a @code{\\markup} block.
-" }
-% begin verbatim
+
+"
+ doctitle = "Combining dynamics with markup texts"
+} % begin verbatim
piuF = \markup { \italic "più" \dynamic "f" }
\relative c'' {
- c2 c-\piuF
+ c2\f c-\piuF
}
\header {
lsrtags = "simultaneous-notes, text"
- texidoc = "
-The part combiner tool ( @code{\\partcombine} command ) allows you to
-combine different parts on the same staff. Text directions such as
-\"solo\" or \"a2\" are added by default; to remove them, simply set the
-property @code{printPartCombineTexts} to \"false\". For vocal scores
-(hymns), there is no need to add \"solo\"/\"a2\" texts, so they should
-be switched off. However, you'd better not use it if there are any
-solos, as they won't be indicated. In such cases, you may simply want
-to use standard LilyPond polyphony. This snippet presents the three
-ways two parts can be printed on a same staff: standard polyphony,
-@code{\\partcombine} without texts, and @code{\\partcombine} with texts.
-
-
-
-" }
-% begin verbatim
+
+ texidoc = "
+The part combiner tool ( @code{\\partcombine} command ) allows the
+combination of several different parts on the same staff. Text
+directions such as \"solo\" or \"a2\" are added by default; to remove
+them, simply set the property @code{printPartCombineTexts} to
+\"false\". For vocal scores (hymns), there is no need to add
+\"solo\"/\"a2\" texts, so they should be switched off. However, it
+might be better not to use it if there are any solos, as they won't be
+indicated. In such cases, standard polyphonic notation may be
+preferable.
+
+This snippet presents the three ways two parts can be printed on a same
+staff: standard polyphony, @code{\\partcombine} without texts, and
+@code{\\partcombine} with texts.
+
+
+
+
+"
+ doctitle = "Combining two parts on the same staff"
+} % begin verbatim
musicUp = \relative c'' {
\time 4/4
a4 c4.( g8) a4 |
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
Odd 20th century time signatures (such as \"5/8\") can often be played
as compound time signatures (e.g. \"3/8 + 2/8\"), which combine two or
more inequal metrics. LilyPond can make such music quite easy to read
and play, by explicitly printing the compound time signatures and
-adapting the automatic beaming behavior. (You can even add graphic
-measure grouping indications; see the appropriate snippet in this
+adapting the automatic beaming behavior. (Graphic measure grouping
+indications can also be added; see the appropriate snippet in this
database.)
-" }
-% begin verbatim
+
+"
+ doctitle = "Compound time signatures"
+} % begin verbatim
#(define (compound-time one two num)
(markup #:override '(baseline-skip . 0) #:number
(#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))))
#(override-auto-beam-setting '(end 1 8 5 8) 1 4)
c8 d e fis gis |
c fis, gis e d |
- c8 d e4 gis8
+ c8 d e4 gis8
}
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
The Scheme function @code{set-time-signature}, in combination with the
@code{Measure_grouping_engraver}, creates measure grouping signs. Such
signs ease reading rhythmically complex modern music. In the following
2 3)}.
-" }
-% begin verbatim
+
+"
+ doctitle = "Conducting signs, measure grouping signs"
+} % begin verbatim
\score {
\relative c'' {
#(set-time-signature 9 8 '(2 2 2 3))
- g8[ g] d[ d] g[ g] a8[( bes g]) |
+ #(revert-auto-beam-setting '(end * * 9 8) 3 8)
+ #(override-auto-beam-setting '(end 1 8 9 8) 1 4)
+ #(override-auto-beam-setting '(end 1 8 9 8) 2 4)
+ #(override-auto-beam-setting '(end 1 8 9 8) 3 4)
+ g8 g d d g g a( bes g) |
#(set-time-signature 5 8 '(3 2))
a4. g4
}
}
}
}
-
\header {
lsrtags = "expressive-marks"
- texidoc = "
+
+ texidoc = "
A contemporary glissando without a final note can be typeset using a
hidden note and cadenza timing.
-" }
-% begin verbatim
+
+"
+ doctitle = "Contemporary glissando"
+} % begin verbatim
\relative c'' {
\time 3/4
\override Glissando #'style = #'zigzag
adding-a-figured-bass-above-or-below-the-notes.ly
adding-an-extra-staff-at-a-line-break.ly
adding-an-extra-staff.ly
-mensurstriche-layout-bar-lines-between-the-staves.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
engravers-one-by-one.ly
use-square-bracket-at-the-start-of-a-staff-group.ly
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
nesting-staves.ly
\header {
lsrtags = "editorial-and-educational-use, chords, piano-music"
- texidoc = "
+
+ texidoc = "
The placement of fingering numbers can be controlled precisely.
-" }
-% begin verbatim
-\relative c'{
+
+"
+ doctitle = "Controlling the placement of chord fingerings"
+} % begin verbatim
+\relative c' {
\set fingeringOrientations = #'(left)
- <c-1 e-3 a-5 > 4
+ <c-1 e-3 a-5>4
\set fingeringOrientations = #'(down)
- <c-1 e-3 a-5 >
+ <c-1 e-3 a-5>
\set fingeringOrientations = #'(right)
- <c-1 e-3 a-5 >
+ <c-1 e-3 a-5>
\set fingeringOrientations = #'(up)
- <c-1 e-3 a-5 >
+ <c-1 e-3 a-5>
\set fingeringOrientations = #'(left down)
- <c-1 e-3 a-5 > 2
+ <c-1 e-3 a-5>2
\set fingeringOrientations = #'(up right down)
- <c-1 e-3 a-5 >
+ <c-1 e-3 a-5>
}
\header {
lsrtags = "rhythms, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
The default behavior of tuplet-bracket visibility is to print a bracket
unless there is a beam of the same length as the tuplet. To control the
visibility of tuplet brackets, set the property @code{TupletBracket
#'bracket-visibility} to either @code{##t} (always print a bracket),
@code{##f} (never print a bracket) or @code{#'if-no-beam} (only print a
bracket if there is no beam).
-" }
-% begin verbatim
+
+"
+ doctitle = "Controlling tuplet bracket visibility"
+} % begin verbatim
mus = \relative c'' {
\times 2/3 { c16[ d e } f8]
\times 2/3 { c8 d e }
\header {
lsrtags = "pitches"
- texidoc = "
+
+ texidoc = "
In music that contains many occurrences of the same sequence of notes
-at different pitches, you can use the following music function. It
-takes a note, of which the pitch is used. The supporting Scheme
+at different pitches, the following music function may prove useful. It
+takes a note, of which only the pitch is used. The supporting Scheme
functions were borrowed from the \"Tips and tricks\" document in the
manual for version 2.10. This example creates the rhythm used
throughout Mars, from Gustav Holst's The Planets.
-" }
-% begin verbatim
+
+"
+ doctitle = "Creating a sequence of notes on various pitches"
+} % begin verbatim
#(define (make-note-req p d)
(make-music 'NoteEvent
'duration d
\header {
lsrtags = "staff-notation, editorial-and-educational-use, contexts-and-engravers, paper-and-layout"
- texidoc = "
-To create blank staves, you must generate empty measures, removing also
-from the @code{Score} context the @code{Bar_number_engraver}, and from
-the @code{Staff} context the @code{Time_signature_engraver}, the
-@code{Clef_engraver} and the @code{Bar_engraver}.
-" }
-% begin verbatim
+
+ texidoc = "
+To create blank staves, generate empty measures then remove the
+@code{Bar_number_engraver} from the @code{Score} context, and the
+@code{Time_signature_engraver}, @code{Clef_engraver} and
+@code{Bar_engraver} from the @code{Staff} context.
+
+"
+ doctitle = "Creating blank staves"
+} % begin verbatim
#(set-global-staff-size 20)
\score {
\header {
lsrtags = "expressive-marks, text"
- texidoc = "
+
+ texidoc = "
Although the easiest way to add parentheses to a dynamic mark is to use
a @code{\\markup} block, this method has a downside: the created
objects will behave like text markups, and not like dynamics.
commands such as @code{\\dynamicUp} or @code{\\dynamicDown}.
-" }
-% begin verbatim
+
+"
+ doctitle = "Creating "real" parenthesized dynamics"
+} % begin verbatim
\paper { ragged-right = ##t }
parenF = #(make-dynamic-script (markup #:line (#:normal-text #:italic
- #:fontsize 2 "(" #:hspace -0.8 #:dynamic "f" #:normal-text #:italic
- #:fontsize 2 ")"
+ #:fontsize 2 "(" #:hspace -0.8 #:dynamic "f" #:normal-text
+ #:italic #:fontsize 2 ")"
)))
-{
- c''4\parenF c'' c'' \dynamicUp c''\parenF
+\relative c'' {
+ c4\parenF c c \dynamicUp c\parenF
}
\header {
lsrtags = "expressive-marks, text, tweaks-and-overrides"
- texidoc = "
-The @code{\\startTextSpan} and @code{\\stopTextSpan} commands give you
-the ability to create text spanners as easily as pedal indications or
+
+ texidoc = "
+The @code{\\startTextSpan} and @code{\\stopTextSpan} commands allow the
+creation of text spanners as easily as pedal indications or
octavations. Override some properties of the @code{TextSpanner} object
to modify its output.
-" }
-% begin verbatim
+
+"
+ doctitle = "Creating text spanners"
+} % begin verbatim
\relative c'' {
\override TextSpanner #'edge-text = #'("bla" . "blu")
a \startTextSpan
\header {
lsrtags = "ancient-notation, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
Custodes may be engraved in various styles.
-" }
-% begin verbatim
+
+"
+ doctitle = "Custodes"
+} % begin verbatim
\layout { ragged-right = ##t }
\new Staff \with { \consists "Custos_engraver" } \relative c' {
\header {
lsrtags = "editorial-and-educational-use"
- texidoc = "
-The direction of stems on the center line of the staff can be changed,
-as demonstrated in this example.
-" }
-% begin verbatim
+
+ texidoc = "
+The default direction of stems on the center line of the staff is set
+by the @code{Stem} property @code{neutral-direction}.
+
+"
+ doctitle = "Default direction of stems on the center line of the staff"
+} % begin verbatim
\relative c'' {
a b c b
\override Stem #'neutral-direction = #up
\header {
lsrtags = "vocal-music, piano-music, strings, midi"
- texidoc = "
+
+ texidoc = "
Problem: How to know which @code{midiInstrument} would be best for your
composition?Solution: A LilyPond demo file.
-" }
-% begin verbatim
+
+"
+ doctitle = "Demo MidiInstruments"
+} % begin verbatim
\header {
title = "Demo of all midi sounds"
arranger = "Myself "
\header {
lsrtags = "text, paper-and-layout, titles"
- texidoc = "
+
+ texidoc = "
A demonstration of all headers.
-" }
-% begin verbatim
+
+"
+ doctitle = "Demonstrating all headers"
+} % begin verbatim
\header {
copyright = "copyright"
title = "title"
\header {
lsrtags = "staff-notation, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
If there is only one staff in one of the staff types @code{ChoirStaff},
@code{InnerChoirStaff}, @code{InnerStaffGroup} or @code{StaffGroup},
the bracket and the starting bar line will not be displayed as standard
-behavior. This can be changed with:
-
-
-@code{\\override [staffcontext].SystemStartBracket #'collapse-height =
-#1}
- and
-
-@code{\\override [staffcontext].SystemStartBar #'collapse-height = #1}
-
-
-This applies to all staff contexts with
-@code{systemStartDelimiter}-property set to @code{'SystemStartBracket}.
-
-
-
-For staff contexts with @code{'SystemStartBrace}, such as
-@code{PianoStaff}, this tweaking can be used as well.
-
-
-
-" }
-% begin verbatim
-\layout {
- ragged-right = ##t
- indent = 0\cm
-}
-
-\score {
- \new StaffGroup <<
- % Must be lower than your actual amount off staff lines
+behavior. This can be changed by overriding the relevant properties,
+as demonstrated in this example.
+
+Note that in some contexts such as @code{PianoStaff} where the systems
+begin with a brace instead of a bracket, another property has to be
+set, as shown on the second system in the example.
+
+"
+ doctitle = "Display bracket with only one staff in a system"
+} % begin verbatim
+\markup \column {
+ \score {
+ \new StaffGroup <<
+ % Must be lower than your actual amount of staff lines
\override StaffGroup.SystemStartBracket #'collapse-height = #1
\override Score.SystemStartBar #'collapse-height = #1
\new Staff {
- c'4 d' e' f'
+ c'1
}
- >>
-}
-
-\score {
- \new PianoStaff <<
+ >>
+ \layout {ragged-right = ##t}
+ }
+ \score {
+ \new PianoStaff <<
\override PianoStaff.SystemStartBrace #'collapse-height = #1
\override Score.SystemStartBar #'collapse-height = #1
\new Staff {
- c'4 d' e' f'
+ c'
}
- >>
-}
+ >>
+ \layout {ragged-right = ##t}
+ }
+}
\header {
lsrtags = "pitches"
- texidoc = "
+
+ texidoc = "
In early 20th century works, starting with Schoenberg, Berg and Webern
(the \"Second\" Viennese school), every pitch in the twelve-tone scale
has to be regarded as equal, without any hierarchy such as the
classical (tonal) degrees. Therefore, these composers print one
accidental for each note, even at natural pitches, to emphasize their
-new approach to music theory and language. This snippet shows how to
-achieve such notation rules.
-" }
-% begin verbatim
+new approach to music theory and language.
+
+This snippet shows how to achieve such notation rules.
+
+"
+ doctitle = "Dodecaphonic-style accidentals for each note including naturals"
+} % begin verbatim
webernAccidentals = {
% the 5s are just "a value different from any accidental"
\set Staff.keySignature = #'((0 . 5) (1 . 5) (2 . 5) (3 . 5)
c' c' dis' des'
}
\layout {
- \context { \Staff \remove "Key_engraver" }
+ \context {
+ \Staff
+ \remove "Key_engraver"
+ }
}
}
\version "2.11.38"
\layout { ragged-right= ##t }
\header {
- doctitle = "Drawing boxes around grobs"
lsrtags = "tweaks-and-overrides"
texidoc = "
The @code{print-function} can be overridden to draw a box around an
arbitrary grob.
"
-}
-% begin verbatim
+ doctitle = "Drawing boxes around grobs"
+} % begin verbatim
+
\relative c'' {
\override TextScript #'stencil =
#(make-stencil-boxer 0.1 0.3 ly:text-interface::print)
-
c'4^"foo"
\override Stem #'stencil =
#(make-stencil-boxer 0.05 0.25 ly:stem::print)
-
\override Score.RehearsalMark #'stencil =
#(make-stencil-boxer 0.15 0.3 ly:text-interface::print)
b8
+
\revert Stem #'stencil
-
c4. c4 \mark "F" c1
}
\version "2.11.38"
\layout { ragged-right= ##t }
\header {
- doctitle = "Drawing circles around various objects"
lsrtags = "tweaks-and-overrides"
texidoc = "
The @code{\circle} command allows you to draw circles around various objects,
You can tweak the printing of your circles by setting some properties
such as @code{#'thickness}, @code{#'circle-padding} or @code{#'font-size}.
-" }
-% begin verbatim
+"
+ doctitle = "Drawing circles around various objects"
+} % begin verbatim
+
\relative c'{
c1
\set Score.markFormatter
making-some-staff-lines-thicker-than-the-others.ly
applying-note-head-styles-depending-on-the-step-of-the-scale.ly
changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
+embedding-native-postscript-in-a--markup-block.ly
default-direction-of-stems-on-the-center-line-of-the-staff.ly
changing-a-single-notes-size-in-a-chord.ly
-grid-lines-emphasizing-rhythms-and-notes-synchronization.ly
controlling-the-placement-of-chord-fingerings.ly
allowing-fingerings-to-be-printed-inside-the-staff.ly
blanking-staff-lines-using-the--whiteout-command.ly
+grid-lines-emphasizing-rhythms-and-notes-synchronization.ly
grid-lines-changing-their-appearance.ly
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.38"
+
+\header {
+ lsrtags = "editorial-and-educational-use, text"
+
+ texidoc = "
+PostScript code can be directly inserted inside a @code{\\markup}
+block.
+
+"
+ doctitle = "Embedding native PostScript in a \markup block"
+} % begin verbatim
+% PostScript is a registred trademark by Adobe Systems Inc.
+
+\relative c'' {
+ a-\markup { \postscript #"3 4 moveto 5 3 rlineto stroke" }
+ -\markup { \postscript #"[ 0 1 ] 0 setdash 3 5 moveto 5 -3 rlineto stroke " }
+
+ b-\markup { \postscript #"3 4 moveto 0 0 1 2 8 4 20 3.5 rcurveto stroke" }
+ s2
+ a'1
+}
\header {
lsrtags = "contexts-and-engravers"
- texidoc = "
+
+ texidoc = "
The notation problem, creating a certain symbol, is handled by plugins.
Each plugin is called an Engraver. In this example, engravers are
switched on one by one, in the following order:
You may only see the first example in this document; please download
this snippet and run it from your own computer.
-" }
-% begin verbatim
+
+"
+ doctitle = "Engravers one-by-one"
+} % begin verbatim
%% sample music
topVoice = \relative c' {
\key d\major
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
Ties may be engraved manually by changing the @code{tie-configuration}
property of the @code{TieColumn} object. The first number indicates the
distance from the center of the staff in staff-spaces, and the second
number indicates the direction (1 = up, -1 = down).
-" }
-% begin verbatim
+
+"
+ doctitle = "Engraving ties manually"
+} % begin verbatim
\relative c' {
<c e g>2 ~ <c e g> |
\override TieColumn #'tie-configuration =
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
The property @code{tupletSpannerDuration} sets how long each of the
tuplets contained within the brackets after @code{\\times} should last.
Many consecutive tuplets can then be placed within a single
For more information about @code{make-moment}, see \"Time
administration\".
-" }
-% begin verbatim
-\relative {
+
+"
+ doctitle = "Entering several tuplets using only one \times command"
+} % begin verbatim
+\relative c' {
\time 2/4
\set tupletSpannerDuration = #(ly:make-moment 1 4)
\times 2/3 { c8 c c c c c }
creating-text-spanners.ly
adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly
changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
-breathing-signs.ly
-creating-real-parenthesized-dynamics.ly
caesura-railtracks-with-fermata.ly
+piano-template-with-centered-dynamics.ly
+creating-real-parenthesized-dynamics.ly
+breathing-signs.ly
contemporary-glissando.ly
+center-text-below-hairpin-dynamics.ly
adding-parentheses-around-an-expressive-mark-or-chordal-note.ly
line-arrows.ly
changing--flageolet-mark-size.ly
-piano-template-with-centered-dynamics.ly
broken-crescendo-hairpin.ly
-center-text-below-hairpin-dynamics.ly
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
This snippet demonstrates how to obtain automatic ordered rehearsal
marks, but from the letter or number you want.
-" }
-% begin verbatim
+
+"
+ doctitle = "Forcing rehearsal marks to start from a given letter or number"
+} % begin verbatim
\relative c''{
c1 \mark \default
c1 \mark \default
\header {
lsrtags = "text, vocal-music"
- texidoc = "
+
+ texidoc = "
To format individual syllables in lyrics, use @code{\\markup @{ ....
@}} on these lyrics.
-" }
-% begin verbatim
+
+"
+ doctitle = "Formatting lyrics syllables"
+} % begin verbatim
% Tip taken from http://lists.gnu.org/archive/html/lilypond-user/2007-12/msg00215.html
\header {
title = "Markup can be used inside lyrics!"
\header {
lsrtags = "pitches"
- texidoc = "
+
+ texidoc = "
This Scheme-based snippet generates 24 random notes (or as many as
-required), based on the current time (or any randomish number you might
-wish to specify instead, so you can obtain the same random notes each
-time): i.e., to get different random notes patterns, just change this
-number.
-" }
-% begin verbatim
+required), based on the current time (or any randomish number specified
+instead, in order to obtain the same random notes each time): i.e., to
+get different random note patterns, just change this number.
+
+"
+ doctitle = "Generating random notes"
+} % begin verbatim
\score {
-{ #(let ((random-state (seed->random-state (current-time))))
+ { #(let ((random-state (seed->random-state (current-time))))
(ly:export
(make-music 'SequentialMusic 'elements
(map (lambda x
(remainder idx 7)
0))))))
(make-list 24)))))
- }
+ }
}
\header {
lsrtags = "editorial-and-educational-use"
- texidoc = "
-Grid lines can look differently, by modifying some of their properties
-using the @code{\\override} command.
-" }
-% begin verbatim
+
+ texidoc = "
+The appearance of grid lines can be changed by overriding some of their
+properties.
+
+"
+ doctitle = "Grid lines: changing their appearance"
+} % begin verbatim
\layout {
\context {
\Staff
- % sets up grids
+ % set up grids
\consists "Grid_point_engraver"
- % this sets the grid interval to 1 quarternote (crotchet)
+ % set the grid interval to one quarter note
gridInterval = #(ly:make-moment 1 4)
}
}
\new Staff {
\relative c {
% this moves them up one staff space from the default position
- \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
+ \override Score.GridLine #'extra-offset = #'(0.0 . 1.0)
\stemDown
\clef bass
\once \override Score.GridLine #'thickness = #5.0
\header {
lsrtags = "editorial-and-educational-use"
- texidoc = "
+
+ texidoc = "
Regular vertical lines can be drawn between staves to show notes
synchronization; however, in case of monophonic music, you may want to
make the second stave invisible, and make the lines shorter like in
this snippet.
-" }
-% begin verbatim
+
+"
+ doctitle = "Grid lines: emphasizing rhythms and notes synchronization"
+} % begin verbatim
%% sets of grid
\layout {
\context {
\header {
lsrtags = "rhythms, percussion"
- texidoc = "
+
+ texidoc = "
Though the polymetric time signature shown was not the most essential
item here, it has been included to show the beat of this piece (which
is the template of a real Balkan song!).
-" }
-% begin verbatim
+
+"
+ doctitle = "Heavily customized polymetric time signatures"
+} % begin verbatim
#(define (set-time-signature one two three four five six seven eight nine ten
-eleven num)
- (markup #:override '(baseline-skip . 0) #:number
- (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))
-#:vcenter "+" (#:column (three num)) #:vcenter "+" (#:column (four num))
-#:vcenter "+" (#:column (five num)) #:vcenter "+" (#:column (six num))
-#:vcenter "+" (#:column (seven num)) #:vcenter "+" (#:column (eight
-num)) #:vcenter "+" (#:column (nine num)) #:vcenter "+" (#:column (ten
-num)) #:vcenter "+" (#:column (eleven num))))))
-
-
-melody =
-{ \relative c'' {
- \set Staff.instrumentName = "Bb Sop."
- \key g \major \time 25/8
- \override Staff.TimeSignature #'stencil = #ly:text-interface::print
- \override Staff.TimeSignature #'text = #(set-time-signature "3" "2" "2" "3"
-"2" "2" "2" "2 " "3" "2" "2" "8" )
- \set Staff.beatGrouping = #'(3 2 2 3 2 2 2 2 3 2 2)
- #(override-auto-beam-setting '(end * * 25 8) 3 8)
- #(override-auto-beam-setting '(end * * 25 8) 5 8)
- #(override-auto-beam-setting '(end * * 25 8) 7 8)
- #(override-auto-beam-setting '(end * * 25 8) 10 8)
- #(override-auto-beam-setting '(end * * 25 8) 12 8)
- #(override-auto-beam-setting '(end * * 25 8) 14 8)
- #(override-auto-beam-setting '(end * * 25 8) 16 8)
- #(override-auto-beam-setting '(end * * 25 8) 18 8)
- #(override-auto-beam-setting '(end * * 25 8) 21 8)
- #(override-auto-beam-setting '(end * * 25 8) 23 8)
-
- c8 c c d4 c8 c b c b a4 g fis8 e d c b' c d e4-^ fis8 g | \break
- c,4. d4 c4 d4. c4 d c2 d4. e4-^ d4 |
- c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break
- c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 |
- c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break }
+ eleven num)
+ (markup #:override '(baseline-skip . 0) #:number
+ (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))
+ #:vcenter "+" (#:column (three num)) #:vcenter "+" (#:column (four num))
+ #:vcenter "+" (#:column (five num)) #:vcenter "+" (#:column (six num))
+ #:vcenter "+" (#:column (seven num)) #:vcenter "+" (#:column (eight num))
+ #:vcenter "+" (#:column (nine num)) #:vcenter "+" (#:column (ten num))
+ #:vcenter "+" (#:column (eleven num))))
+ ))
+
+
+melody = \relative c'' {
+ \set Staff.instrumentName = "Bb Sop."
+ \key g \major
+ \time 25/8
+ \override Staff.TimeSignature #'stencil = #ly:text-interface::print
+ \override Staff.TimeSignature #'text = #(set-time-signature "3" "2" "2" "3"
+ "2" "2" "2" "2 " "3" "2" "2" "8" )
+ \set Staff.beatGrouping = #'(3 2 2 3 2 2 2 2 3 2 2)
+ #(override-auto-beam-setting '(end * * 25 8) 3 8)
+ #(override-auto-beam-setting '(end * * 25 8) 5 8)
+ #(override-auto-beam-setting '(end * * 25 8) 7 8)
+ #(override-auto-beam-setting '(end * * 25 8) 10 8)
+ #(override-auto-beam-setting '(end * * 25 8) 12 8)
+ #(override-auto-beam-setting '(end * * 25 8) 14 8)
+ #(override-auto-beam-setting '(end * * 25 8) 16 8)
+ #(override-auto-beam-setting '(end * * 25 8) 18 8)
+ #(override-auto-beam-setting '(end * * 25 8) 21 8)
+ #(override-auto-beam-setting '(end * * 25 8) 23 8)
+
+ c8 c c d4 c8 c b c b a4 g fis8 e d c b' c d e4-^ fis8 g | \break
+ c,4. d4 c4 d4. c4 d c2 d4. e4-^ d4 |
+ c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break
+ c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 |
+ c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break
}
-drum = {
- \new DrumStaff \drummode
- {
- \bar "|:" bd4. ^\markup { "Drums" } sn4 bd \bar ":" sn4.
-bd4 sn \bar ":"
- bd sn bd4. sn4 bd \bar ":|"
- }
+
+drum = \new DrumStaff \drummode {
+ \bar "|:" bd4.^\markup { "Drums" } sn4 bd \bar ":" sn4.
+ bd4 sn \bar ":" bd sn bd4. sn4 bd \bar ":|"
}
{
- \melody
- \drum
+ \melody
+ \drum
}
\header {
lsrtags = "text, vocal-music"
- texidoc = "
+
+ texidoc = "
This can be achieved by separating those syllables by tildes.
-" }
-% begin verbatim
+
+"
+ doctitle = "How to put ties between syllables in lyrics"
+} % begin verbatim
\lyrics {
wa~o~a
}
%% This file is in the public domain.
\version "2.11.39"
\header {
- doctitle = "Incipit"
- lsrtags = "staff-notation,Ancient notation"
+ lsrtags = "staff-notation,ancient-notation"
texidoc = "Incipits can be added using the instrument name grob, but
keeping separate the instrument name definition and the incipit definition."
-}
-% begin verbatim
+ doctitle = "Incipit"
+} % begin verbatim
+
incipit =
#(define-music-function (parser location incipit-music) (ly:music?)
#{
\header {
lsrtags = "staff-notation"
- texidoc = "
+
+ texidoc = "
The @code{\\markup} command is quite versatile. In this snippet, it
contains a @code{\\score} block instead of texts or marks.
-" }
-% begin verbatim
+
+"
+ doctitle = "Inserting score fragments above a staff, as markups"
+} % begin verbatim
tuning = \markup {
\score {
\new Staff \with { \remove "Time_signature_engraver" }
\header {
lsrtags = "piano-music, percussion, guitar, template"
- texidoc = "
+
+ texidoc = "
This is quite an advanced template, for a jazz ensemble. Note that all
instruments are notated in \\key c \\major. This refers to the key in
concert pitch; LilyPond will automatically transpose the key if the
music is within a \\transpose section.
-" }
-% begin verbatim
+
+"
+ doctitle = "Jazz combo template"
+} % begin verbatim
\header {
title = "Song"
subtitle = "(tune)"
\version "2.11.38"
\header {
- doctitle = "Letter tablature formatting"
lsrtags = "guitar"
texidoc = "
You can format a tablature with letters instead of numbers - so that
0->a, 1->b, 2->c, etc.
BROKEN IN 2.11, COMMENTED OUT."
-}
+ doctitle = "Letter tablature formatting"
+} % begin verbatim
{ c'4 }
\version "2.11.38"
\layout { ragged-right= ##t }
\header {
- doctitle = "Line arrows"
lsrtags = "expressive-marks"
texidoc = "Arrows can be applied to text-spanners and line-spanners (such as the Glissando)"
-}
-% begin verbatim
+ doctitle = "Line arrows"
+} % begin verbatim
+
\relative c'' {
\override TextSpanner #'bound-padding = #1.0
\override TextSpanner #'dash-fraction = #'()
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
\version "2.11.38"
-\layout { ragged-right = ##t }
\header {
- doctitle = "Makam"
lsrtags = "pitches"
texidoc = "Makam is a type of melody from Turkey using 1/9th-tone
- microtonal alterations."
-}
-% begin verbatim
-% Define 1/9 alterations.
-
-#(define-public KOMA 1/9)
-#(define-public BAKIYE 4/9)
-#(define-public KUCUK 5/9)
-#(define-public BUYUKMUCENNEB 8/9)
-
-
-% Define pitch names
-
-makamPitchNames = #`(
- (c . ,(ly:make-pitch -1 0 NATURAL))
- (d . ,(ly:make-pitch -1 1 NATURAL))
- (e . ,(ly:make-pitch -1 2 NATURAL))
- (f . ,(ly:make-pitch -1 3 NATURAL))
- (g . ,(ly:make-pitch -1 4 NATURAL))
- (a . ,(ly:make-pitch -1 5 NATURAL))
- (b . ,(ly:make-pitch -1 6 NATURAL))
-
- (cc . ,(ly:make-pitch -1 0 KOMA))
- (dc . ,(ly:make-pitch -1 1 KOMA))
- (ec . ,(ly:make-pitch -1 2 KOMA))
- (fc . ,(ly:make-pitch -1 3 KOMA))
- (gc . ,(ly:make-pitch -1 4 KOMA))
- (ac . ,(ly:make-pitch -1 5 KOMA))
- (bc . ,(ly:make-pitch -1 6 KOMA))
-
- (cb . ,(ly:make-pitch -1 0 BAKIYE))
- (db . ,(ly:make-pitch -1 1 BAKIYE))
- (eb . ,(ly:make-pitch -1 2 BAKIYE))
- (fb . ,(ly:make-pitch -1 3 BAKIYE))
- (gb . ,(ly:make-pitch -1 4 BAKIYE))
- (ab . ,(ly:make-pitch -1 5 BAKIYE))
- (bb . ,(ly:make-pitch -1 6 BAKIYE))
-
- (ck . ,(ly:make-pitch -1 0 KUCUK))
- (dk . ,(ly:make-pitch -1 1 KUCUK))
- (ek . ,(ly:make-pitch -1 2 KUCUK))
- (fk . ,(ly:make-pitch -1 3 KUCUK))
- (gk . ,(ly:make-pitch -1 4 KUCUK))
- (ak . ,(ly:make-pitch -1 5 KUCUK))
- (bk . ,(ly:make-pitch -1 6 KUCUK))
-
- (cbm . ,(ly:make-pitch -1 0 BUYUKMUCENNEB))
- (dbm . ,(ly:make-pitch -1 1 BUYUKMUCENNEB))
- (ebm . ,(ly:make-pitch -1 2 BUYUKMUCENNEB))
- (fbm . ,(ly:make-pitch -1 3 BUYUKMUCENNEB))
- (gbm . ,(ly:make-pitch -1 4 BUYUKMUCENNEB))
- (abm . ,(ly:make-pitch -1 5 BUYUKMUCENNEB))
- (bbm . ,(ly:make-pitch -1 6 BUYUKMUCENNEB))
-
- ;; f for flat.
- (cfc . ,(ly:make-pitch -1 0 (- KOMA)))
- (dfc . ,(ly:make-pitch -1 1 (- KOMA)))
- (efc . ,(ly:make-pitch -1 2 (- KOMA)))
- (ffc . ,(ly:make-pitch -1 3 (- KOMA)))
- (gfc . ,(ly:make-pitch -1 4 (- KOMA)))
- (afc . ,(ly:make-pitch -1 5 (- KOMA)))
- (bfc . ,(ly:make-pitch -1 6 (- KOMA)))
-
- (cfb . ,(ly:make-pitch -1 0 (- BAKIYE)))
- (dfb . ,(ly:make-pitch -1 1 (- BAKIYE)))
- (efb . ,(ly:make-pitch -1 2 (- BAKIYE)))
- (ffb . ,(ly:make-pitch -1 3 (- BAKIYE)))
- (gfb . ,(ly:make-pitch -1 4 (- BAKIYE)))
- (afb . ,(ly:make-pitch -1 5 (- BAKIYE)))
- (bfb . ,(ly:make-pitch -1 6 (- BAKIYE)))
-
- (cfk . ,(ly:make-pitch -1 0 (- KUCUK)))
- (dfk . ,(ly:make-pitch -1 1 (- KUCUK)))
- (efk . ,(ly:make-pitch -1 2 (- KUCUK)))
- (ffk . ,(ly:make-pitch -1 3 (- KUCUK)))
- (gfk . ,(ly:make-pitch -1 4 (- KUCUK)))
- (afk . ,(ly:make-pitch -1 5 (- KUCUK)))
- (bfk . ,(ly:make-pitch -1 6 (- KUCUK)))
-
- (cfbm . ,(ly:make-pitch -1 0 (- BUYUKMUCENNEB)))
- (dfbm . ,(ly:make-pitch -1 1 (- BUYUKMUCENNEB)))
- (efbm . ,(ly:make-pitch -1 2 (- BUYUKMUCENNEB)))
- (ffbm . ,(ly:make-pitch -1 3 (- BUYUKMUCENNEB)))
- (gfbm . ,(ly:make-pitch -1 4 (- BUYUKMUCENNEB)))
- (afbm . ,(ly:make-pitch -1 5 (- BUYUKMUCENNEB)))
- (bfbm . ,(ly:make-pitch -1 6 (- BUYUKMUCENNEB)))
-)
-
-% Set pitch names.
-pitchnames = \makamPitchNames
-#(ly:parser-set-note-names parser makamPitchNames)
+ microtonal alterations. Consult the initialization file
+ @code{makam-init.ly} (in @code{/usr/share/lilypond/current/ly})
+ for details of pitch names and alterations.
+ "
+ doctitle = "Makam"
+} % begin verbatim
-makamGlyphs = #'(
- (1 . "accidentals.doublesharp")
- (8/9 . "accidentals.sharp.slashslashslash.stemstem")
- (5/9 . "accidentals.sharp.slashslashslash.stem")
- (4/9 . "accidentals.sharp")
- (1/9 . "accidentals.sharp.slashslash.stem")
- (0 . "accidentals.natural")
- (-1/9 . "accidentals.mirroredflat")
- (-4/9 . "accidentals.flat.slash")
- (-5/9 . "accidentals.flat")
- (-8/9 . "accidentals.flat.slashslash")
- (-1 . "accidentals.flatflat")
- )
+% Initialize makam settings
+\include "makam-init.ly"
-\relative {
-
- %{ define alteration <-> symbol mapping. The following glyphs are available.
- accidentals.sharp
- accidentals.sharp.slashslash.stem
- accidentals.sharp.slashslashslash.stemstem
- accidentals.sharp.slashslashslash.stem
- accidentals.sharp.slashslash.stemstemstem
- accidentals.natural
- accidentals.flat
- accidentals.flat.slash
- accidentals.flat.slashslash
- accidentals.mirroredflat.flat
- accidentals.mirroredflat
- accidentals.flatflat
- accidentals.flatflat.slash
- accidentals.doublesharp
- %}
-
- \override Accidental #'glyph-name-alist = \makamGlyphs
- \override Staff.KeySignature #'glyph-name-alist = \makamGlyphs
- \set Staff.keySignature = #'((3 . 4/9) (6 . -1/9))
-
+\relative c' {
+ \set Staff.keySignature = #`((3 . ,BAKIYE) (6 . ,(- KOMA)))
c cc db fk
gbm gfc gfb efk
fk db cc c
\version "2.11.38"
\layout { ragged-right = ##t }
\header {
- doctitle = "Making an object invisible with the transparent property"
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
Setting the @code{transparent} property will cause an object to be
introducing a tie in a different voice, and blanking the first up-stem
in that voice, the tie appears to cross voices. To prevent the blanked stem's
flag from interfering with tie positioning, the stem is extended.
-" }
+"
+ doctitle = "Making an object invisible with the transparent property"
+} % begin verbatim
\relative c'' {
\time 2/4
\header {
lsrtags = "staff-notation, editorial-and-educational-use"
- texidoc = "
+
+ texidoc = "
For pedagogical purposes, you may want to make one staff line thicker
(e.g. the middle line, to emphasize the line of the G clef). This can
be achieved by adding extra lines very close to the line you want to
make thicker, using the @code{'line-positions} property of the
@code{StaffSymbol} object.
-" }
-% begin verbatim
+
+"
+ doctitle = "Making some staff lines thicker than the others"
+} % begin verbatim
{
\override Staff.StaffSymbol #'line-positions = #'(-4 -2 -0.2 0 0.2 2 4)
d'4 e' f' g'
\header {
lsrtags = "rhythms, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
Beam positions may be controlled manually, by overriding the
@code{positions} setting of the @code{Beam} grob.
-" }
-% begin verbatim
-\relative c {
+
+"
+ doctitle = "Manually controlling beam positions"
+} % begin verbatim
+\relative c' {
\time 2/4
- % from upper staffline (position 4) to centre (position 0)
- \override Beam #'positions = #'(2 . 0)
- c'8 c
- % from centre to one above centre (position 2)
- \override Beam #'positions = #'(0 . 1)
+ % from upper staffline (position 4) to center (position 0)
+ \override Beam #'positions = #'(2 . 0)
+ c8 c
+ % from center to one above center (position 2)
+ \override Beam #'positions = #'(0 . 1)
c c
}
\version "2.11.38"
\header {
- doctitle = "Markup lines"
lsrtags = "text"
texidoc = "Text that can spread over pages is entered with the
@code{\\markuplines} command."
-}
-% begin verbatim
+ doctitle = "Markup lines"
+} % begin verbatim
+
#(set-default-paper-size "a6")
#(define-markup-list-command (paragraph layout props args) (markup-list?)
\header {
lsrtags = "staff-notation, ancient-notation, contexts-and-engravers, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
The mensurstriche-layout where the bar lines do not show on the staves
but between staves can be achieved with a @code{StaffGroup} instead of
a @code{ChoirStaff}. The bar line on staves is blanked out with an
@code{\\override} command.
-" }
-% begin verbatim
+
+"
+ doctitle = "Mensurstriche layout (bar lines between the staves)"
+} % begin verbatim
global = {
\override Staff.BarLine #'transparent = ##t
s1 s
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
Tuplet brackets can be made to run to prefatory matter or the next
note. Default tuplet brackets end at the right edge of the final note
of the tuplet; full-length tuplet brackets extend farther to the right,
that a clef, time signature, key signature, or another note. The
example shows how to switch tuplets to full length mode and how to
modify what material they cover.
-" }
-% begin verbatim
+
+"
+ doctitle = "Modifying tuplet bracket length"
+} % begin verbatim
\new RhythmicStaff {
% Set tuplets to be extendable...
\set tupletFullLength = ##t
\version "2.11.38"
% possible rename to scheme- or something like that. -gp
\header {
- doctitle = "Move specific text"
lsrtags = "tweaks-and-overrides"
texidoc = "@cindex Scheme Move Text
Objects of the same type, like text, can be moved around by using some Scheme code.
-" }
-% begin verbatim
+"
+ doctitle = "Move specific text"
+} % begin verbatim
+
#(define (make-text-checker text)
(lambda (grob) (equal? text (ly:grob-property grob 'text))))
\header {
lsrtags = "staff-notation, contexts-and-engravers, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
The property @code{systemStartDelimiterHierarchy} can be used to make
more complex nested staff groups. The command @code{\\set
StaffGroup.systemStartDelimiterHierarchy} takes an alphabetical list of
staves. The possibilities are @code{SystemStartBar},
@code{SystemStartBracket}, @code{SystemStartBrace}, and
@code{SystemStartSquare}.
-" }
-% begin verbatim
+
+"
+ doctitle = "Nesting staves"
+} % begin verbatim
\new StaffGroup
\relative c'' <<
\set StaffGroup.systemStartDelimiterHierarchy
\header {
lsrtags = "pitches, staff-notation"
- texidoc = "
+
+ texidoc = "
The commonly used @code{\\key} command sets the @code{keySignature}
property, in the @code{Staff} context.
-For non-standard key signatures, you can set this property directly.
-The format of this command is a list:
+To create non-standard key signatures, set this property directly. The
+format of this command is a list:
@code{ \\set Staff.keySignature = #`(((octave . step) . alter) ((octave
. step) . alter) ...) } where, for each element in the list,
etc. (Note the leading comma.)
-However, for each item in the list, you can also use the alternative
-format @code{(step . alter)}, which specifies that the same alteration
-should hold in all octaves.
+Alternatively, for each item in the list, using the more concise format
+@code{(step . alter)} specifies that the same alteration should hold in
+all octaves.
Here is an example of a possible key signature for generating a
whole-tone scale:
-" }
-% begin verbatim
+
+"
+ doctitle = "Non-traditional key signatures"
+} % begin verbatim
\relative c' {
\set Staff.keySignature = #`(((0 . 3) . ,SHARP) ((0 . 5) . ,FLAT) ((0 . 6) . ,FLAT))
c4 d e fis
\header {
lsrtags = "pitches, text"
- texidoc = "
+
+ texidoc = "
Internally, the @code{set-octavation} function sets the properties
@code{ottavation} (for example, to @code{\"8va\"} or @code{\"8vb\"})
and @code{middleCPosition}. To override the text of the bracket, set
@code{ottavation} after invoking @code{set-octavation}.
-" }
-% begin verbatim
+
+"
+ doctitle = "Ottava text"
+} % begin verbatim
{
#(set-octavation 1)
\set Staff.ottavation = #"8"
\version "2.11.38"
\header {
- doctitle = "Outputting the version number"
lsrtags = "text"
texidoc = "
By putting the output of @code{lilypond-version} into a lyric or a
text markup, it is possible to print the version number of LilyPond in
a score, or in a document generated with @code{lilypond-book}.
"
-}
-% begin verbatim
+ doctitle = "Outputting the version number"
+} % begin verbatim
+
\score { \context Lyrics {
\override Score.RehearsalMark #'self-alignment-X = #LEFT
\mark #(ly:export (string-append "Processed with LilyPond version " (lilypond-version)))
\version "2.11.38"
\layout { ragged-right= ##t }
\header {
- doctitle = "Page label"
lsrtags = "spacing"
texidoc = "Page labels may be placed inside music or at top-level,
and refered to in markups."
-}
-% begin verbatim
+ doctitle = "Page label"
+} % begin verbatim
+
#(set-default-paper-size "a6")
#(define-markup-command (toc-line layout props label text) (symbol? markup?)
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
This artificial example shows how both manual and automatic line breaks
may be permitted to within a beamed tuplet. Note that such off-beat
tuplets have to be beamed manually.
-" }
-% begin verbatim
+
+"
+ doctitle = "Permitting line breaks within beamed tuplets"
+} % begin verbatim
\layout {
\context {
\Voice
piano-template-with-centered-dynamics.ly
clusters.ly
-jazz-combo-template.ly
+piano-template-with-centered-lyrics.ly
vocal-ensemble-template-with-automatic-piano-reduction.ly
piano-template-simple.ly
controlling-the-placement-of-chord-fingerings.ly
piano-template-with-melody-and-lyrics.ly
-piano-template-with-centered-lyrics.ly
+jazz-combo-template.ly
demo-midiinstruments.ly
\header {
lsrtags = "piano-music, template"
- texidoc = "
+
+ texidoc = "
Here is a simple piano staff with some notes.
-" }
-% begin verbatim
+
+"
+ doctitle = "Piano template (simple)"
+} % begin verbatim
upper = \relative c'' {
\clef treble
\key c \major
\version "2.11.38"
\header {
- doctitle = "Piano template with centered dynamics"
lsrtags = "expressive-marks,piano-music,template"
texidoc = "
Many piano scores have the dynamics centered between the two staves.
This requires a bit of tweaking to implement, but since the template is
right here, you don't have to do the tweaking yourself.
-" }
-% begin verbatim
+"
+ doctitle = "Piano template with centered dynamics"
+} % begin verbatim
+
upper = \relative c'' {
\clef treble
\key c \major
\header {
lsrtags = "text, piano-music, template"
- texidoc = "
+
+ texidoc = "
Instead of having a full staff for the melody and lyrics, you can place
the lyrics between the piano staff (and omit the separate melody
staff).
-" }
-% begin verbatim
+
+"
+ doctitle = "Piano template with centered lyrics"
+} % begin verbatim
upper = \relative c'' {
\clef treble
\key c \major
\header {
lsrtags = "vocal-music, piano-music, template"
- texidoc = "
+
+ texidoc = "
Here is a typical song format: one staff with the melody and lyrics,
with piano accompaniment underneath.
-" }
-% begin verbatim
+
+"
+ doctitle = "Piano template with melody and lyrics"
+} % begin verbatim
melody = \relative c'' {
\clef treble
\key c \major
ottava-text.ly
tweaking-clef-properties.ly
preventing-extra-naturals-from-being-automatically-added.ly
-ambitus-with-multiple-voices.ly
generating-random-notes.ly
+ambitus-with-multiple-voices.ly
dodecaphonic-style-accidentals-for-each-note-including-naturals.ly
preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly
quoting-another-voice-with-transposition.ly
\version "2.11.42"
\layout { ragged-right = ##t }
\header {
- doctitle = "Positioning multi-measure rests"
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
Unlike ordinary rests, there is no predefined command
in polyphonic music multi-measure rests in odd-numbered and
even-numbered voices are vertically separated. The positioning
of multi-measure rests can be controlled as follows:
- "}
-% begin verbatim
+ "
+ doctitle = "Positioning multi-measure rests"
+} % begin verbatim
+
\relative c'' {
% Multi-measure rests by default are set under the second line
R1
<< { R1 } \\ { a1 } >>
% Multi-measure rests in even-numbered voices are under the bottom line
<< { c1 } \\ { R1 } >>
- % They remain separated even in empty bars
+ % They remain separated even in empty measures
<< { R1 } \\ { R1 } >>
% This brings them together even though there are two voices
\compressFullBarRests
\header {
lsrtags = "repeats, breaks"
- texidoc = "
+
+ texidoc = "
If you want to place an exiting segno sign and add text like \"D.S. al
Coda\" next to it where usually the staff lines are you can use this
snippet. The coda will resume in a new line. There is a variation
documented in this snippet, where the coda will remain on the same
line.
-" }
-% begin verbatim
+
+"
+ doctitle = "Positioning segno and coda (with line break)"
+} % begin verbatim
{
\clef treble
\key g \major
% text and symbols center-aligned
% ===============================
% Move text to the desired position and tweak spacing for optimum text alignment
- \once \override TextScript #'extra-offset = #'( 8 . -5.5 )
+ %\once \override TextScript #'extra-offset = #'( 8 . -5.5 )
\once \override TextScript #'word-space = #1.5
+ \once \override TextScript #'X-offset = #8
+ \once \override TextScript #'Y-offset = #1.5
| s1*0^\markup { \center-align { "D.S. al Coda" \line { \musicglyph #"scripts.coda" \musicglyph #"scripts.tenuto" \musicglyph #"scripts.coda"} } }
% Increasing the unfold counter will expand the staff-free space
altération précédente. Pour modifier ce comportement, assignez la propriété
@code{extraNatural} du contexte @code{Staff} Ã la valeur @code{##f} (faux).
"
- texidoc = "
+
+ texidoc = "
In accordance with standard typesetting rules, a natural sign is
printed before a sharp or flat if a previous accidental on the same
note needs to be canceled. To change this behavior, set the
@code{extraNatural} property to \"false\" in the @code{Staff} context.
-" }
-% begin verbatim
+
+"
+ doctitle = "Preventing extra naturals from being automatically added"
+} % begin verbatim
\relative {
aeses'4 aes ais a
\set Staff.extraNatural = ##f
\header {
lsrtags = "pitches"
- texidoc = "
+
+ texidoc = "
When the key signature changes, natural signs are automatically printed
to cancel any accidentals from previous key signatures. This may be
-altered by setting to \"false\" the @code{printKeyCancellation}
+prevented by setting to \"false\" the @code{printKeyCancellation}
property in the @code{Staff} context.
-" }
-% begin verbatim
-\relative {
+
+"
+ doctitle = "Preventing natural signs from being printed when the key signature changes"
+} % begin verbatim
+\relative c' {
\key d \major
a b cis d
\key g \minor
\header {
lsrtags = "text"
- texidoc = "
+
+ texidoc = "
Marks can be printed at the end of the current line, instead of the
beginning of the following line. This is particularly useful when a
mark has to be added at the end of a score -- when there is no next
In such cases, the right end of the mark has to be aligned with the
final bar line, as demonstrated on the second line of this example.
-" }
-% begin verbatim
+
+"
+ doctitle = "Printing marks at the end of a line or a score"
+} % begin verbatim
\relative c'' {
\override Score.RehearsalMark #'break-visibility = #begin-of-line-invisible
g2 c
\header {
lsrtags = "text"
- texidoc = "
+
+ texidoc = "
Although text marks are normally only printed above the topmost staff,
they may also be printed on every staff.
-" }
-% begin verbatim
+
+"
+ doctitle = "Printing marks on every staff"
+} % begin verbatim
{
\new Score \with {
\remove "Mark_engraver"
\header {
lsrtags = "rhythms, percussion"
- texidoc = "
+
+ texidoc = "
In the following snippet, two parts have a completely different time
-signature, yet remain synchronized. The bar lines can't be printed at
-the @code{Score} level anymore, so you have to remove the
-@code{Barline_engraver} and put it in the @code{Staff} context.
-" }
-% begin verbatim
+signature, yet remain synchronized. The bar lines can no longer be
+printed at the @code{Score} level; to allow independent bar lines in
+each part, the @code{Barline_engraver} is moved from the @code{Score}
+context to the @code{Staff} context.
+
+"
+ doctitle = "Printing music with different time signatures"
+} % begin verbatim
% Thanks to Adam James Wilson for this snippet
\paper {
\header {
lsrtags = "tweaks-and-overrides, spacing"
- texidoc = "
+
+ texidoc = "
If @code{strict-note-spacing} is set spacing of notes is not influenced
by bars or clefs part way along the system. Rather, they are put just
before the note that occurs at the same time. This may cause
collisions.
-" }
-% begin verbatim
+
+"
+ doctitle = "Proportional strict notespacing"
+} % begin verbatim
\paper {
ragged-right = ##t
indent = 0
%% This file is in the public domain.
\version "2.11.38"
\header {
- doctitle = "Quoting another voice with transposition"
lsrtags = "pitches,staff-notation"
texidoc = "Quotations take into account the transposition of both
source and target. In this example, all instruments play sounding
middle C; the target is an instrument in F. The target part may be
transposed using @code{\\transpose}. In this case, all the pitches (including the
quoted ones) are transposed."
-}
-% begin verbatim
+ doctitle = "Quoting another voice with transposition"
+} % begin verbatim
+
\addQuote clarinet {
\transposition bes
\repeat unfold 8 { d'16 d'16 d'8 }
\version "2.11.38"
\layout { ragged-right= ##t }
\header {
- doctitle = "Quoting another voice"
lsrtags = "staff-notation"
texidoc = "With @code{\\quote}, fragments of previously entered
music may be quoted. @code{quotedEventTypes} will determines what
things are quoted. In this example, a 16th rest is not quoted, since
@code{rest-event} is not in @code{quotedEventTypes}."
-}
-% begin verbatim
+ doctitle = "Quoting another voice"
+} % begin verbatim
+
quoteMe = \relative c' { fis4 r16 a8.-> b4-\ff c }
\addQuote quoteMe \quoteMe
\header {
lsrtags = "rhythms, ancient-notation, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
Rests may be used in various styles.
-" }
-% begin verbatim
+
+"
+ doctitle = "Rest styles"
+} % begin verbatim
\layout {
indent = 0.0
\context {
\header {
lsrtags = "rhythms, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
In \"simple\" lead-sheets, sometimes no actual notes are written,
instead only \"rhythmic patterns\" and chords above the measures are
notated giving the structure of a song. Such a feature is for example
rests to be printed as slashes. (If the duration of each beat is not a
quarter note, replace the @code{r4} in the definitions with a rest of
the appropriate duration).
-" }
-% begin verbatim
+
+"
+ doctitle = "Rhythmic slashes"
+} % begin verbatim
% Macro to print single slash
rs = {
\once \override Rest #'stencil = #ly:percent-repeat-item-interface::beat-slash
\header {
lsrtags = "template"
- texidoc = "
+
+ texidoc = "
A template to write score for a diatonic accordion.
- There is a horizontal staff indicating if the accordion  must be
This snippet comes with a useful optional macro for the jEdit text
editor.
-" }
-% begin verbatim
+
+"
+ doctitle = "Score for diatonic accordion"
+} % begin verbatim
% Created on Sat Aug 17 2007 by ak
verse= \lyricmode { Wie gross bist du! Wie gross bist du! }
\header {
lsrtags = "repeats"
- texidoc = "
+
+ texidoc = "
By default, the volta brackets will be drawn over all of the
alternative music, but it is possible to shorten them by setting
@code{voltaSpannerDuration}. In the next example, the bracket only
lasts one measure, which is a duration of 3/4.
-" }
-% begin verbatim
+
+"
+ doctitle = "Shortening volta brackets"
+} % begin verbatim
\relative c'' {
\time 3/4
c c c
\header {
lsrtags = "vocal-music, chords, template"
- texidoc = "
+
+ texidoc = "
This template allows you to prepare a song with melody, words, and
chords.
-" }
-% begin verbatim
+
+"
+ doctitle = "Single staff template with notes, lyrics, and chords"
+} % begin verbatim
melody = \relative c' {
\clef treble
\key c \major
\header {
lsrtags = "chords, template"
- texidoc = "
+
+ texidoc = "
Want to prepare a lead sheet with a melody and chords? Look no further!
-" }
-% begin verbatim
+
+"
+ doctitle = "Single staff template with notes and chords"
+} % begin verbatim
melody = \relative c' {
\clef treble
\key c \major
\header {
lsrtags = "vocal-music, template"
- texidoc = "
+
+ texidoc = "
This small template demonstrates a simple melody with lyrics. Cut and
paste, add notes, then words for the lyrics. This example turns off
automatic beaming, which is common for vocal parts. If you want to use
automatic beaming, you'll have to change or comment out the relevant
line.
-" }
-% begin verbatim
+
+"
+ doctitle = "Single staff template with notes and lyrics"
+} % begin verbatim
melody = \relative c' {
\clef treble
\key c \major
\header {
lsrtags = "template"
- texidoc = "
+
+ texidoc = "
This very simple template gives you a staff with notes, suitable for a
solo instrument or a melodic fragment. Cut and paste this into a file,
add notes, and you're finished!
-" }
-% begin verbatim
+
+"
+ doctitle = "Single staff template with only notes"
+} % begin verbatim
melody = \relative c' {
\clef treble
\key c \major
\header {
lsrtags = "rhythms, vocal-music"
- texidoc = "
-Although you can't use @code{s} in @code{\\lyricmode} (it's taken to be
-a literal \"s\", not a space) you can use either @code{\"\"} or
-@code{_}So for example:
-" }
-% begin verbatim
+
+ texidoc = "
+Although @code{s} skips cannot be used in @code{\\lyricmode} (it is
+taken to be a literal \"s\", not a space), double quotes (@code{\"\"})
+or underscores (@code{_}) are available.So for example:
+
+"
+ doctitle = "Skips in lyric mode (2)"
+} % begin verbatim
<<
\relative c'' { a4 b c d }
\new Lyrics \lyricmode { a4 "" _ gap }
\header {
lsrtags = "rhythms, vocal-music"
- texidoc = "
+
+ texidoc = "
The @code{s} syntax for skips is only available in note mode and chord
-mode. In other situations, for example, when entering lyrics, you
-should use the @code{\\skip} command.
-" }
-% begin verbatim
+mode. In other situations, for example, when entering lyrics, using the
+@code{\\skip} command is recommended.
+
+"
+ doctitle = "Skips in lyric mode"
+} % begin verbatim
<<
\relative { a'1 a }
\new Lyrics \lyricmode { \skip 1 bla1 }
adding-an-extra-staff.ly
changing-the-staff-size.ly
use-square-bracket-at-the-start-of-a-staff-group.ly
-quoting-another-voice-with-transposition.ly
quoting-another-voice.ly
volta-multi-staff.ly
inserting-score-fragments-above-a-staff,-as-markups.ly
+quoting-another-voice-with-transposition.ly
nesting-staves.ly
non-traditional-key-signatures.ly
making-some-staff-lines-thicker-than-the-others.ly
\header {
lsrtags = "strings, template"
- texidoc = "
+
+ texidoc = "
This template demonstrates a simple string quartet. It also uses a
\\global section for time and key signatures
-" }
-% begin verbatim
+
+"
+ doctitle = "String quartet template (simple)"
+} % begin verbatim
global= {
\time 4/4
\key c \major
\header {
lsrtags = "strings, template"
- texidoc = "
+
+ texidoc = "
The \"String quartet template\" snippet produces a nice string quartet,
but what if you needed to print parts? This new template demonstrates
how to use the \\tag feature to easily split a piece into individual
Do not forget to remove specified comments when using separate files!
-" }
-% begin verbatim
+
+"
+ doctitle = "String quartet template with separate parts"
+} % begin verbatim
%%%%% piece.ly
%%%%% (This is the global definitions file)
\version "2.11.38"
\layout { ragged-right= ##t }
\header {
- doctitle = "Table of contents"
lsrtags = "paper-and-layout"
texidoc = "A table of contents is included using
@code{\\markuplines \\table-of-contents}. The TOC items are added with
the @code{\\tocItem} command."
-}
-% begin verbatim
+ doctitle = "Table of contents"
+} % begin verbatim
+
#(set-default-paper-size "a6")
\book {
piano-template-with-centered-dynamics.ly
single-staff-template-with-notes-and-lyrics.ly
single-staff-template-with-only-notes.ly
-jazz-combo-template.ly
+piano-template-with-centered-lyrics.ly
score-for-diatonic-accordion.ly
piano-template-simple.ly
-ancient-notation-template----modern-transcription-of-mensural-music.ly
+string-quartet-template-with-separate-parts.ly
ancient-notation-template----modern-transcription-of-gregorian-music.ly
-single-staff-template-with-notes-and-chords.ly
+ancient-notation-template----modern-transcription-of-mensural-music.ly
+piano-template-with-melody-and-lyrics.ly
string-quartet-template-simple.ly
single-staff-template-with-notes,-lyrics,-and-chords.ly
-piano-template-with-melody-and-lyrics.ly
-string-quartet-template-with-separate-parts.ly
-vocal-ensemble-template.ly
+single-staff-template-with-notes-and-chords.ly
vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
-piano-template-with-centered-lyrics.ly
+jazz-combo-template.ly
+vocal-ensemble-template.ly
vocal-ensemble-template-with-automatic-piano-reduction.ly
creating-text-spanners.ly
creating-real-parenthesized-dynamics.ly
+ottava-text.ly
+embedding-native-postscript-in-a--markup-block.ly
center-text-below-hairpin-dynamics.ly
demonstrating-all-headers.ly
printing-marks-at-the-end-of-a-line-or-a-score.ly
changing-the-default-text-font-family.ly
-combining-two-parts-on-the-same-staff.ly
+how-to-put-ties-between-syllables-in-lyrics.ly
aligning-and-centering-instrument-names.ly
outputting-the-version-number.ly
formatting-lyrics-syllables.ly
-how-to-put-ties-between-syllables-in-lyrics.ly
+combining-two-parts-on-the-same-staff.ly
combining-dynamics-with-markup-texts.ly
vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
aligning-marks-with-various-notation-objects.ly
markup-lines.ly
-printing-marks-on-every-staff.ly
-three-sided-box.ly
piano-template-with-centered-lyrics.ly
+three-sided-box.ly
utf-8.ly
blanking-staff-lines-using-the--whiteout-command.ly
-ottava-text.ly
+printing-marks-on-every-staff.ly
adjusting-lyrics-vertical-spacing.ly
aligning-lyrics.ly
\header {
lsrtags = "rhythms, text"
- texidoc = "
+
+ texidoc = "
This example shows how to add a markup command to get a three sided box
around some text (or other markup).
-" }
-% begin verbatim
+
+"
+ doctitle = "Three-sided box"
+} % begin verbatim
% New command to add a three sided box, with sides north, west and south
% Based on the box-stencil command defined in scm/stencil.scm
% Note that you use ";" to comment a line in Scheme
\header {
lsrtags = "staff-notation, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
You may put the time signature in parentheses.
-" }
-% begin verbatim
+
+"
+ doctitle = "Time signature in parentheses"
+} % begin verbatim
tsMarkup = \markup {
\override #'(baseline-skip . 2) \number {
\bracket \column { "2" "4" }
\header {
lsrtags = "ancient-notation, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
As a workaround to get real incipits which are independent from the
main score these are included as a markup into the field normally used
for the instrument name. As for now lyrics can only be added as a
direct markup. It doesn't unfortunately conform with the spacing of the
main lyrics.
-" }
-% begin verbatim
+
+"
+ doctitle = "Transcription of Ancient music with incipit"
+} % begin verbatim
global = {
\set Score.skipBars = ##t
\key g \major
%% This file is in the public domain.
\version "2.11.38"
\header {
- doctitle = "Transposing music with minimum accidentals"
lsrtags = "pitches"
- texidoc = "There is a way to enforce enharmonic modifications for
+ texidoc = "This example uses some Scheme code to enforce enharmonic modifications for
notes in order to have the minimum number of accidentals. In this
case, the following rules apply:
-\"Double accidentals should be removed, as well as E sharp (-> F),
-C flat (-> B), F flat (-> E) and B sharp (-> C)\".
+@itemize
+@item
+Double accidentals should be removed
+
+@item
+B sharp -> C
+
+@item
+E sharp -> F
+
+@item
+C flat -> B
+
+@item
+F flat -> E
+
+@end itemize
In this manner, the most natural enharmonic notes are chosen.
-"}
-% begin verbatim
+"
+ doctitle = "Transposing music with minimum accidentals"
+} % begin verbatim
+
#(define (naturalize-pitch p)
(let* ((o (ly:pitch-octave p))
(a (* 4 (ly:pitch-alteration p)))
\header {
lsrtags = "pitches, staff-notation, tweaks-and-overrides"
- texidoc = "
+
+ texidoc = "
The command @code{\\clef \"treble_8\"} is equivalent to setting
-@code{clefGlyph}, @code{clefPosition} (which controls the Y-position of
-the clef), @code{middleCPosition} and @code{clefOctavation}. A clef is
-printed when any of these properties are changed.
+@code{clefGlyph}, @code{clefPosition} (which controls the vertical
+position of the clef), @code{middleCPosition} and
+@code{clefOctavation}. A clef is printed when any of the properties
+except @code{middleCPosition} are changed.
Note that changing the glyph, the position of the clef, or the
-octavation, does not in itself change the position of subsequent notes
+octavation does not in itself change the position of subsequent notes
on the staff: the position of middle C must also be specified to do
this. The positional parameters are relative to the staff center line,
positive numbers displacing upwards, counting one for each line and
properties manually. On the first line, the manual changes preserve the
standard relative positioning of clefs and notes, whereas on the second
line, they do not.
-" }
-% begin verbatim
+
+"
+ doctitle = "Tweaking clef properties"
+} % begin verbatim
{
% The default treble clef
c'1
display-bracket-with-only-one-staff-in-a-system.ly
-rhythmic-slashes.ly
+time-signature-in-parentheses.ly
changing-the-default-text-font-family.ly
drawing-boxes-around-grobs.ly
manually-controlling-beam-positions.ly
creating-text-spanners.ly
caesura-railtracks-with-fermata.ly
changing-form-of-multi--measure-rests.ly
-time-signature-in-parentheses.ly
+rhythmic-slashes.ly
changing-a-single-notes-size-in-a-chord.ly
nesting-staves.ly
\header {
lsrtags = "staff-notation, contexts-and-engravers"
- texidoc = "
+
+ texidoc = "
The system start delimiter @code{SystemStartSquare} can be used by
setting it explicitly in a @code{StaffGroup} or @code{ChoirStaffGroup}
context.
-" }
-% begin verbatim
+
+"
+ doctitle = "Use square bracket at the start of a staff group"
+} % begin verbatim
\score {
\new StaffGroup { <<
\set StaffGroup.systemStartDelimiter = #'SystemStartSquare
\version "2.11.38"
\layout { ragged-right= ##t }
\header {
- doctitle = "Using the @code{\tweak} command to tweak individual grobs"
lsrtags = "tweaks-and-overrides"
texidoc = "
With the @code{\tweak} command, you can tune every grob directly. Here
are some examples of available tweaks.
"
-}
-% begin verbatim
+ doctitle = "Using the @code{\tweak} command to tweak individual grobs"
+} % begin verbatim
+
{
\set fingeringOrientations = #'(right)
<
\header {
lsrtags = "rhythms"
- texidoc = "
+
+ texidoc = "
Ties are sometimes used to write out arpeggios. In this case, two tied
notes need not be consecutive. This can be achieved by setting the
-@code{tieWaitForNote} property to true. The same feature is also
+@code{tieWaitForNote} property to \"true\". The same feature is also
useful, for example, to tie a tremolo to a chord, but in principle, it
can also be used for ordinary consecutive notes, as demonstrated in
this example.
-" }
-% begin verbatim
+
+"
+ doctitle = "Using ties with arpeggios"
+} % begin verbatim
\relative c' {
\set tieWaitForNote = ##t
\grace { c16[~ e~ g]~ } <c, e g>2
%}
\header {
- doctitle = "UTF-8"
lsrtags = "text"
texidoc = "Various scripts may be used for texts (like titles and
lyrics) introduced by entering them in UTF-8 encoding, and using a
Pango based backend. Depending on the fonts installed, this fragment
will render Bulgarian (Cyrillic), Hebrew, Japanese and Portuguese.
-
"
-
-}
-% begin verbatim
+ doctitle = "UTF-8"
+} % begin verbatim
+
% end verbatim - this comment is a hack to prevent texinfo.tex
% from choking on non-European UTF-8 subsets
% Cyrillic font
\header {
lsrtags = "vocal-music, tweaks-and-overrides, spacing"
- texidoc = "
+
+ texidoc = "
This snippet shows of to use the @code{alignBelowContext} and
@code{alignAboveContext} properties, which may be needed for text
elements (e.g. lyrics) positioning, but also for musical contents such
as ossias.
-" }
-% begin verbatim
+
+"
+ doctitle = "Vertically aligning ossias and lyrics"
+} % begin verbatim
\paper {
ragged-right = ##t
}
\header {
lsrtags = "tweaks-and-overrides, spacing"
- texidoc = "
+
+ texidoc = "
By setting the @code{Y-extent} property to a fixed value, all
@code{DynamicLineSpanner} objects (hairpins and dynamic texts) are
aligned to a common reference point, regardless of their actual extent.
trick is only applied on the second line).
The same idea is used to align the text scripts along their baseline.
-" }
-% begin verbatim
+
+"
+ doctitle = "Vertically centered dynamics and textscripts"
+} % begin verbatim
music = \relative c'' {
c2\p^\markup { "gorgeous" } c\f^\markup { "fantastic" }
c4\p c\f\> c c\!\p
\header {
lsrtags = "vocal-music, piano-music, template"
- texidoc = "
+
+ texidoc = "
This template adds an automatic piano reduction to the standard SATB
vocal score demonstrated in \"Vocal ensemble template\". This
demonstrates one of the strengths of LilyPond – you can use a music
definition more than once. If you make any changes to the vocal notes
(say, tenorMusic), then the changes will also apply to the piano
reduction.
-" }
-% begin verbatim
+
+"
+ doctitle = "Vocal ensemble template with automatic piano reduction"
+} % begin verbatim
global = {
\key c \major
\time 4/4
\header {
lsrtags = "text, vocal-music, contexts-and-engravers, template"
- texidoc = "
+
+ texidoc = "
This template is basically the same as the simple \"Vocal ensemble\"
template, with the exception that here all the lyrics lines are placed
using @code{alignAboveContext} and @code{alignBelowContext}.
-" }
-% begin verbatim
+
+"
+ doctitle = "Vocal ensemble template with lyrics aligned below and above the staves"
+} % begin verbatim
global = {
\key c \major
\time 4/4
\header {
lsrtags = "vocal-music, template"
- texidoc = "
+
+ texidoc = "
Here is a standard four-part SATB vocal score. With larger ensembles,
it's often useful to include a section which is included in all parts.
For example, the time signature and key signatures are almost always
the same for all parts. Like in the \"Hymn\" template, the four voices
are regrouped on only two staves.
-" }
-% begin verbatim
+
+"
+ doctitle = "Vocal ensemble template"
+} % begin verbatim
global = {
\key c \major
\time 4/4
single-staff-template-with-notes-and-lyrics.ly
adding-ambitus-per-voice.ly
skips-in-lyric-mode-2.ly
-skips-in-lyric-mode.ly
vocal-ensemble-template-with-automatic-piano-reduction.ly
-ambitus-with-multiple-voices.ly
-how-to-put-ties-between-syllables-in-lyrics.ly
-vertically-aligning-ossias-and-lyrics.ly
vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+how-to-put-ties-between-syllables-in-lyrics.ly
+piano-template-with-melody-and-lyrics.ly
single-staff-template-with-notes,-lyrics,-and-chords.ly
+ambitus-with-multiple-voices.ly
+demo-midiinstruments.ly
formatting-lyrics-syllables.ly
-piano-template-with-melody-and-lyrics.ly
+vertically-aligning-ossias-and-lyrics.ly
aligning-lyrics.ly
vocal-ensemble-template.ly
adjusting-lyrics-vertical-spacing.ly
-demo-midiinstruments.ly
+skips-in-lyric-mode.ly
\version "2.11.38"
\layout { ragged-right= ##t }
\header {
- doctitle = "Volta multi-staff"
lsrtags = "repeats,staff-notation"
texidoc = "By adding @code{Volta_engraver}, repeat brackets
can be put over staves other than the topmost one in a score."
-}
-% begin verbatim
+ doctitle = "Volta multi-staff"
+} % begin verbatim
+
vmus = \relative c'' {
\repeat volta 2 c1 \alternative { d e }
}
\version "2.x.y"
\header {
- doctitle = "Snippet title"
- lsrtags = "rhythms,expressive-marks" % use existing LSR tags other than
-% 'docs'; see makelsr.py for the list of tags used to sort snippets.
- texidoc = "This code demonstrates ..." % this will be formated by Texinfo
+ lsrtags = "rhythms,expressive-marks" % use existing LSR tags other than
+% 'docs'; see makelsr.py for the list of tags used to sort snippets.
+ texidoc = "This code demonstrates ..." % this will be formated by Texinfo
+ doctitle = "Snippet title" % please put this at the end so that
+ the '% begin verbatim' mark is added correctly by makelsr.py.
}
\version "2.11.38"
\header {
- doctitle = "Broken crescendo hairpin"
lsrtags = "expressive-marks"
texidoc = "
In order to make parts of a crescendo hairpin invisible, the following
Make sure to put the hairpin in a lower layer than the text markup to
actually draw the rectangle above the hairpin.
-" }
+"
+ doctitle = "Broken crescendo hairpin"
+}
\score {
\relative c' {
\version "2.11.42"
-\layout { ragged-right= ##t }
+\layout { ragged-right = ##t }
\header {
- doctitle = "Changing form of multi-measure rests"
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
-If there are ten or fewer measures of rests, LilyPond prints
-a series of longa and breve rests (called in German
-\"Kirchenpausen\" - church rests) within the staff and
-prints a simple line otherwise. This default number of ten
-may be changed by an override:
-"}
+If there are ten or fewer measures of rests, a series of longa
+and breve rests (called in German \"Kirchenpausen\" - church rests)
+is printed within the staff; otherwise a simple line is shown.
+This default number of ten may be changed by overriding the
+@code{expand-limit} property:
+"
+ doctitle = "Changing form of multi-measure rests"
+}
\relative c'' {
\compressFullBarRests
\version "2.10.0"
\layout { ragged-right= ##t }
\header {
- doctitle = "Clip systems"
lsrtags = "paper-and-layout" % a new tag like "Mixing text and music" or
% "Special output" might be more adequate -jm
texidoc = "
-This code shows how to clip (extracts) snippets from a full score.
+This code shows how to clip (extract) snippets from a full score.
This file needs to be run separately with @code{-dclip-systems}; the
snippets page may not adequately show the results.
@file{@var{base}-from-@var{start}-to-@var{end}[-@var{count}].eps}.
@itemize @bullet
-@item If system starts and ends are included, they include extents of the System grob, eg. instrument names.
+@item If system starts and ends are included, they include extents of the System grob, e.g., instrument names.
@item Grace notes at the end point of the region are not included.
@item Regions can span multiple systems. In this case, multiple EPS files are generated.
@end itemize
"
+ doctitle = "Clip systems"
}
#(ly:set-option 'clip-systems)
-
#(set! output-count 1)
-origScore = \score{
- \relative {
- \set Staff.instrumentName = #"bla"
- c1
- d
- \grace c16
- e1
- \key d\major
-
- f
- \break \clef bass
- g,
- fis
- }
+origScore = \score {
+ \relative c' {
+ \set Staff.instrumentName = #"bla"
+ c1
+ d
+ \grace c16 e1
+ \key d \major
+ f \break
+ \clef bass
+ g,
+ fis
+ }
}
-\book {
+\book {
\score {
\origScore
\layout {
-
- %% each clip-region is a (START . END) pair
- %% where both are rhythmic-locations.
+ % Each clip-region is a (START . END) pair
+ % where both are rhythmic-locations.
- %% (make-rhythmic-locations BAR-NUMBER NUM DEN)
- %% means NUM/DEN whole-notes into bar numbered BAR-NUMBER
+ % (make-rhythmic-locations BAR-NUMBER NUM DEN)
+ % means NUM/DEN whole-notes into bar numbered BAR-NUMBER
- clip-regions
- = #(list
- (cons
- (make-rhythmic-location 2 0 1)
- (make-rhythmic-location 4 0 1))
+ clip-regions = #(list
+ (cons
+ (make-rhythmic-location 2 0 1)
+ (make-rhythmic-location 4 0 1))
+
+ (cons
+ (make-rhythmic-location 0 0 1)
+ (make-rhythmic-location 4 0 1))
- (cons
- (make-rhythmic-location 0 0 1)
- (make-rhythmic-location 4 0 1))
-
- (cons
- (make-rhythmic-location 0 0 1)
- (make-rhythmic-location 6 0 1))
- )
+ (cons
+ (make-rhythmic-location 0 0 1)
+ (make-rhythmic-location 6 0 1))
+ )
}
}
}
\version "2.11.23"
\layout { ragged-right= ##t }
\header {
- doctitle = "Drawing boxes around grobs"
lsrtags = "tweaks-and-overrides"
texidoc = "
The @code{print-function} can be overridden to draw a box around an
arbitrary grob.
"
+ doctitle = "Drawing boxes around grobs"
}
\relative c'' {
\override TextScript #'stencil =
#(make-stencil-boxer 0.1 0.3 ly:text-interface::print)
-
c'4^"foo"
\override Stem #'stencil =
#(make-stencil-boxer 0.05 0.25 ly:stem::print)
-
\override Score.RehearsalMark #'stencil =
#(make-stencil-boxer 0.15 0.3 ly:text-interface::print)
b8
+
\revert Stem #'stencil
-
c4. c4 \mark "F" c1
}
\version "2.11.23"
\layout { ragged-right= ##t }
\header {
- doctitle = "Drawing circles around various objects"
lsrtags = "tweaks-and-overrides"
texidoc = "
The @code{\circle} command allows you to draw circles around various objects,
You can tweak the printing of your circles by setting some properties
such as @code{#'thickness}, @code{#'circle-padding} or @code{#'font-size}.
-" }
+"
+ doctitle = "Drawing circles around various objects"
+}
\relative c'{
c1
\version "2.11.39"
\header {
- doctitle = "Incipit"
- lsrtags = "staff-notation,Ancient notation"
+ lsrtags = "staff-notation,ancient-notation"
texidoc = "Incipits can be added using the instrument name grob, but
keeping separate the instrument name definition and the incipit definition."
+ doctitle = "Incipit"
}
incipit =
\version "2.11.35"
\header {
- doctitle = "Letter tablature formatting"
lsrtags = "guitar"
texidoc = "
You can format a tablature with letters instead of numbers - so that
0->a, 1->b, 2->c, etc.
BROKEN IN 2.11, COMMENTED OUT."
+ doctitle = "Letter tablature formatting"
}
{ c'4 }
\version "2.10.0"
\layout { ragged-right= ##t }
\header {
- doctitle = "Line arrows"
lsrtags = "expressive-marks"
texidoc = "Arrows can be applied to text-spanners and line-spanners (such as the Glissando)"
+ doctitle = "Line arrows"
}
\relative c'' {
\version "2.11.6"
-\layout { ragged-right = ##t }
\header {
- doctitle = "Makam"
lsrtags = "pitches"
texidoc = "Makam is a type of melody from Turkey using 1/9th-tone
- microtonal alterations."
+ microtonal alterations. Consult the initialization file
+ @code{makam-init.ly} (in @code{/usr/share/lilypond/current/ly})
+ for details of pitch names and alterations.
+ "
+ doctitle = "Makam"
}
-% Define 1/9 alterations.
-
-#(define-public KOMA 1/9)
-#(define-public BAKIYE 4/9)
-#(define-public KUCUK 5/9)
-#(define-public BUYUKMUCENNEB 8/9)
-
-
-% Define pitch names
-
-makamPitchNames = #`(
- (c . ,(ly:make-pitch -1 0 NATURAL))
- (d . ,(ly:make-pitch -1 1 NATURAL))
- (e . ,(ly:make-pitch -1 2 NATURAL))
- (f . ,(ly:make-pitch -1 3 NATURAL))
- (g . ,(ly:make-pitch -1 4 NATURAL))
- (a . ,(ly:make-pitch -1 5 NATURAL))
- (b . ,(ly:make-pitch -1 6 NATURAL))
-
- (cc . ,(ly:make-pitch -1 0 KOMA))
- (dc . ,(ly:make-pitch -1 1 KOMA))
- (ec . ,(ly:make-pitch -1 2 KOMA))
- (fc . ,(ly:make-pitch -1 3 KOMA))
- (gc . ,(ly:make-pitch -1 4 KOMA))
- (ac . ,(ly:make-pitch -1 5 KOMA))
- (bc . ,(ly:make-pitch -1 6 KOMA))
-
- (cb . ,(ly:make-pitch -1 0 BAKIYE))
- (db . ,(ly:make-pitch -1 1 BAKIYE))
- (eb . ,(ly:make-pitch -1 2 BAKIYE))
- (fb . ,(ly:make-pitch -1 3 BAKIYE))
- (gb . ,(ly:make-pitch -1 4 BAKIYE))
- (ab . ,(ly:make-pitch -1 5 BAKIYE))
- (bb . ,(ly:make-pitch -1 6 BAKIYE))
-
- (ck . ,(ly:make-pitch -1 0 KUCUK))
- (dk . ,(ly:make-pitch -1 1 KUCUK))
- (ek . ,(ly:make-pitch -1 2 KUCUK))
- (fk . ,(ly:make-pitch -1 3 KUCUK))
- (gk . ,(ly:make-pitch -1 4 KUCUK))
- (ak . ,(ly:make-pitch -1 5 KUCUK))
- (bk . ,(ly:make-pitch -1 6 KUCUK))
-
- (cbm . ,(ly:make-pitch -1 0 BUYUKMUCENNEB))
- (dbm . ,(ly:make-pitch -1 1 BUYUKMUCENNEB))
- (ebm . ,(ly:make-pitch -1 2 BUYUKMUCENNEB))
- (fbm . ,(ly:make-pitch -1 3 BUYUKMUCENNEB))
- (gbm . ,(ly:make-pitch -1 4 BUYUKMUCENNEB))
- (abm . ,(ly:make-pitch -1 5 BUYUKMUCENNEB))
- (bbm . ,(ly:make-pitch -1 6 BUYUKMUCENNEB))
-
- ;; f for flat.
- (cfc . ,(ly:make-pitch -1 0 (- KOMA)))
- (dfc . ,(ly:make-pitch -1 1 (- KOMA)))
- (efc . ,(ly:make-pitch -1 2 (- KOMA)))
- (ffc . ,(ly:make-pitch -1 3 (- KOMA)))
- (gfc . ,(ly:make-pitch -1 4 (- KOMA)))
- (afc . ,(ly:make-pitch -1 5 (- KOMA)))
- (bfc . ,(ly:make-pitch -1 6 (- KOMA)))
-
- (cfb . ,(ly:make-pitch -1 0 (- BAKIYE)))
- (dfb . ,(ly:make-pitch -1 1 (- BAKIYE)))
- (efb . ,(ly:make-pitch -1 2 (- BAKIYE)))
- (ffb . ,(ly:make-pitch -1 3 (- BAKIYE)))
- (gfb . ,(ly:make-pitch -1 4 (- BAKIYE)))
- (afb . ,(ly:make-pitch -1 5 (- BAKIYE)))
- (bfb . ,(ly:make-pitch -1 6 (- BAKIYE)))
-
- (cfk . ,(ly:make-pitch -1 0 (- KUCUK)))
- (dfk . ,(ly:make-pitch -1 1 (- KUCUK)))
- (efk . ,(ly:make-pitch -1 2 (- KUCUK)))
- (ffk . ,(ly:make-pitch -1 3 (- KUCUK)))
- (gfk . ,(ly:make-pitch -1 4 (- KUCUK)))
- (afk . ,(ly:make-pitch -1 5 (- KUCUK)))
- (bfk . ,(ly:make-pitch -1 6 (- KUCUK)))
-
- (cfbm . ,(ly:make-pitch -1 0 (- BUYUKMUCENNEB)))
- (dfbm . ,(ly:make-pitch -1 1 (- BUYUKMUCENNEB)))
- (efbm . ,(ly:make-pitch -1 2 (- BUYUKMUCENNEB)))
- (ffbm . ,(ly:make-pitch -1 3 (- BUYUKMUCENNEB)))
- (gfbm . ,(ly:make-pitch -1 4 (- BUYUKMUCENNEB)))
- (afbm . ,(ly:make-pitch -1 5 (- BUYUKMUCENNEB)))
- (bfbm . ,(ly:make-pitch -1 6 (- BUYUKMUCENNEB)))
-)
-
-% Set pitch names.
-pitchnames = \makamPitchNames
-#(ly:parser-set-note-names parser makamPitchNames)
-
-makamGlyphs = #'(
- (1 . "accidentals.doublesharp")
- (8/9 . "accidentals.sharp.slashslashslash.stemstem")
- (5/9 . "accidentals.sharp.slashslashslash.stem")
- (4/9 . "accidentals.sharp")
- (1/9 . "accidentals.sharp.slashslash.stem")
- (0 . "accidentals.natural")
- (-1/9 . "accidentals.mirroredflat")
- (-4/9 . "accidentals.flat.slash")
- (-5/9 . "accidentals.flat")
- (-8/9 . "accidentals.flat.slashslash")
- (-1 . "accidentals.flatflat")
- )
+% Initialize makam settings
+\include "makam-init.ly"
-\relative {
-
- %{ define alteration <-> symbol mapping. The following glyphs are available.
- accidentals.sharp
- accidentals.sharp.slashslash.stem
- accidentals.sharp.slashslashslash.stemstem
- accidentals.sharp.slashslashslash.stem
- accidentals.sharp.slashslash.stemstemstem
- accidentals.natural
- accidentals.flat
- accidentals.flat.slash
- accidentals.flat.slashslash
- accidentals.mirroredflat.flat
- accidentals.mirroredflat
- accidentals.flatflat
- accidentals.flatflat.slash
- accidentals.doublesharp
- %}
-
- \override Accidental #'glyph-name-alist = \makamGlyphs
- \override Staff.KeySignature #'glyph-name-alist = \makamGlyphs
- \set Staff.keySignature = #'((3 . 4/9) (6 . -1/9))
-
+\relative c' {
+ \set Staff.keySignature = #`((3 . ,BAKIYE) (6 . ,(- KOMA)))
c cc db fk
gbm gfc gfb efk
fk db cc c
\version "2.11.23"
\layout { ragged-right = ##t }
\header {
- doctitle = "Making an object invisible with the transparent property"
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
Setting the @code{transparent} property will cause an object to be
introducing a tie in a different voice, and blanking the first up-stem
in that voice, the tie appears to cross voices. To prevent the blanked stem's
flag from interfering with tie positioning, the stem is extended.
-" }
+"
+ doctitle = "Making an object invisible with the transparent property"
+}
\relative c'' {
\time 2/4
\version "2.11.25"
\header {
- doctitle = "Markup lines"
lsrtags = "text"
texidoc = "Text that can spread over pages is entered with the
@code{\\markuplines} command."
+ doctitle = "Markup lines"
}
#(set-default-paper-size "a6")
\version "2.10.0"
% possible rename to scheme- or something like that. -gp
\header {
- doctitle = "Move specific text"
lsrtags = "tweaks-and-overrides"
texidoc = "@cindex Scheme Move Text
Objects of the same type, like text, can be moved around by using some Scheme code.
-" }
+"
+ doctitle = "Move specific text"
+}
#(define (make-text-checker text)
(lambda (grob) (equal? text (ly:grob-property grob 'text))))
\version "2.11.23"
\header {
- doctitle = "Outputting the version number"
lsrtags = "text"
texidoc = "
By putting the output of @code{lilypond-version} into a lyric or a
text markup, it is possible to print the version number of LilyPond in
a score, or in a document generated with @code{lilypond-book}.
"
+ doctitle = "Outputting the version number"
}
\score { \context Lyrics {
\version "2.11.26"
\layout { ragged-right= ##t }
\header {
- doctitle = "Page label"
lsrtags = "spacing"
texidoc = "Page labels may be placed inside music or at top-level,
and refered to in markups."
+ doctitle = "Page label"
}
#(set-default-paper-size "a6")
\version "2.11.35"
\header {
- doctitle = "Piano template with centered dynamics"
lsrtags = "expressive-marks,piano-music,template"
texidoc = "
Many piano scores have the dynamics centered between the two staves.
This requires a bit of tweaking to implement, but since the template is
right here, you don't have to do the tweaking yourself.
-" }
+"
+ doctitle = "Piano template with centered dynamics"
+}
upper = \relative c'' {
\clef treble
\version "2.11.42"
\layout { ragged-right = ##t }
\header {
- doctitle = "Positioning multi-measure rests"
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
Unlike ordinary rests, there is no predefined command
in polyphonic music multi-measure rests in odd-numbered and
even-numbered voices are vertically separated. The positioning
of multi-measure rests can be controlled as follows:
- "}
+ "
+ doctitle = "Positioning multi-measure rests"
+}
\relative c'' {
% Multi-measure rests by default are set under the second line
<< { R1 } \\ { a1 } >>
% Multi-measure rests in even-numbered voices are under the bottom line
<< { c1 } \\ { R1 } >>
- % They remain separated even in empty bars
+ % They remain separated even in empty measures
<< { R1 } \\ { R1 } >>
% This brings them together even though there are two voices
\compressFullBarRests
\version "2.11.10"
\header {
- doctitle = "Quoting another voice with transposition"
lsrtags = "pitches,staff-notation"
texidoc = "Quotations take into account the transposition of both
source and target. In this example, all instruments play sounding
middle C; the target is an instrument in F. The target part may be
transposed using @code{\\transpose}. In this case, all the pitches (including the
quoted ones) are transposed."
+ doctitle = "Quoting another voice with transposition"
}
\addQuote clarinet {
\version "2.11.10"
\layout { ragged-right= ##t }
\header {
- doctitle = "Quoting another voice"
lsrtags = "staff-notation"
texidoc = "With @code{\\quote}, fragments of previously entered
music may be quoted. @code{quotedEventTypes} will determines what
things are quoted. In this example, a 16th rest is not quoted, since
@code{rest-event} is not in @code{quotedEventTypes}."
+ doctitle = "Quoting another voice"
}
quoteMe = \relative c' { fis4 r16 a8.-> b4-\ff c }
\version "2.11.26"
\layout { ragged-right= ##t }
\header {
- doctitle = "Table of contents"
lsrtags = "paper-and-layout"
texidoc = "A table of contents is included using
@code{\\markuplines \\table-of-contents}. The TOC items are added with
the @code{\\tocItem} command."
+ doctitle = "Table of contents"
}
#(set-default-paper-size "a6")
\version "2.11.33"
\header {
- doctitle = "Transposing music with minimum accidentals"
lsrtags = "pitches"
- texidoc = "There is a way to enforce enharmonic modifications for
+ texidoc = "This example uses some Scheme code to enforce enharmonic modifications for
notes in order to have the minimum number of accidentals. In this
case, the following rules apply:
-\"Double accidentals should be removed, as well as E sharp (-> F),
-C flat (-> B), F flat (-> E) and B sharp (-> C)\".
+@itemize
+@item
+Double accidentals should be removed
+
+@item
+B sharp -> C
+
+@item
+E sharp -> F
+
+@item
+C flat -> B
+
+@item
+F flat -> E
+
+@end itemize
In this manner, the most natural enharmonic notes are chosen.
-"}
+"
+ doctitle = "Transposing music with minimum accidentals"
+}
#(define (naturalize-pitch p)
(let* ((o (ly:pitch-octave p))
\version "2.11.23"
\layout { ragged-right= ##t }
\header {
- doctitle = "Using the @code{\tweak} command to tweak individual grobs"
lsrtags = "tweaks-and-overrides"
texidoc = "
With the @code{\tweak} command, you can tune every grob directly. Here
are some examples of available tweaks.
"
+ doctitle = "Using the @code{\tweak} command to tweak individual grobs"
}
{
%}
\header {
- doctitle = "UTF-8"
lsrtags = "text"
texidoc = "Various scripts may be used for texts (like titles and
lyrics) introduced by entering them in UTF-8 encoding, and using a
Pango based backend. Depending on the fonts installed, this fragment
will render Bulgarian (Cyrillic), Hebrew, Japanese and Portuguese.
-
"
-
+ doctitle = "UTF-8"
}
% end verbatim - this comment is a hack to prevent texinfo.tex
\version "2.11.36"
\layout { ragged-right= ##t }
\header {
- doctitle = "Volta multi-staff"
lsrtags = "repeats,staff-notation"
texidoc = "By adding @code{Volta_engraver}, repeat brackets
can be put over staves other than the topmost one in a score."
+ doctitle = "Volta multi-staff"
}
vmus = \relative c'' {
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
+ "http://www.musicxml.org/dtds/partwise.dtd">\r
+<score-partwise>\r
+ <movement-title>All MusicXML chord names/types with <root></movement-title>\r
+ <identification/>\r
+ <part-list>\r
+ <score-part id="P1">\r
+ <part-name>MusicXML Part</part-name>\r
+ <score-instrument id="P1-I1">\r
+ <instrument-name>Acoustic Grand Piano</instrument-name>\r
+ </score-instrument>\r
+ </score-part>\r
+ </part-list>\r
+ <!--=========================================================-->\r
+ <part id="P1">\r
+ <measure number="1">\r
+ <attributes>\r
+ <divisions>2</divisions>\r
+ <key>\r
+ <fifths>0</fifths>\r
+ <mode>major</mode>\r
+ </key>\r
+ <time symbol="common">\r
+ <beats>4</beats>\r
+ <beat-type>4</beat-type>\r
+ </time>\r
+ <clef>\r
+ <sign>G</sign>\r
+ <line>2</line>\r
+ </clef>\r
+ </attributes>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>major</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>minor</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>minor</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>augmented</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>augmented</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>diminished</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>diminished</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="2">\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>dominant</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>dominant</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major-seventh</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>major-seventh</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>minor-seventh</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>minor-seventh</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>diminished-seventh</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>diminished-seventh</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="3">\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>augmented-seventh</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>augmented-seventh</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>half-diminished</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>half-diminished</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major-minor</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>major-minor</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major-sixth</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>major-sixth</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="4">\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>minor-sixth</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>minor-sixth</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>dominant-ninth</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>dominant-ninth</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major-ninth</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>major-ninth</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>minor-ninth</kind>\r
+ <lyric number="1"><text>minor-ninth</text></lyric>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>minor-ninth</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="5">\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>dominant-11th</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>dominant-11th</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major-11th</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>major-11th</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>minor-11th</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>minor-11th</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>dominant-13th</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>dominant-13th</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="6">\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major-13th</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>major-13th</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>minor-13th</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>minor-13th</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>suspended-second</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>suspended-second</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>suspended-fourth</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>suspended-fourth</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="7">\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>Neapolitan</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>Neapolitan</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>Italian</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>Italians</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>French</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>French</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>German</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>German</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="8">\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>pedal</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>pedal</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>power</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>power</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>Tristan</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>Tristan</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>other</kind>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>other</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="9">\r
+ <harmony>\r
+ <root>\r
+ <root-step>F</root-step>\r
+ <root-alter>1</root-alter>\r
+ </root>\r
+ <kind>major</kind>\r
+ <inversion>2</inversion>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>4</duration>\r
+ <voice>1</voice>\r
+ <type>half</type>\r
+ <lyric number="1"><text>Inversion</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>F</root-step>\r
+ <root-alter>-2</root-alter>\r
+ </root>\r
+ <kind>major</kind>\r
+ <bass>\r
+ <bass-step>C</bass-step>\r
+ </bass>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <lyric number="1"><text>Fbb/C</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>G</root-step>\r
+ <root-alter>1</root-alter>\r
+ </root>\r
+ <kind>major</kind>\r
+ <bass>\r
+ <bass-step>D</bass-step>\r
+ <bass-alter>1</bass-alter>\r
+ </bass>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>eighth</type>\r
+ <lyric number="1"><text>G#/D#</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major</kind>\r
+ </harmony>\r
+ <note>\r
+ <rest/>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>C</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ <measure number="10">\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major</kind>\r
+ <degree>\r
+ <degree-value>3</degree-value>\r
+ <degree-alter>0</degree-alter>\r
+ <degree-type>subtract</degree-type>\r
+ </degree>\r
+ <degree>\r
+ <degree-value>5</degree-value>\r
+ <degree-alter>-1</degree-alter>\r
+ <degree-type>alter</degree-type>\r
+ </degree>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>C-3+5b</text></lyric>\r
+ </note>\r
+ <harmony>\r
+ <root>\r
+ <root-step>C</root-step>\r
+ </root>\r
+ <kind>major</kind>\r
+ <degree>\r
+ <degree-value>1</degree-value>\r
+ <degree-alter>0</degree-alter>\r
+ <degree-type>subtract</degree-type>\r
+ </degree>\r
+ <degree>\r
+ <degree-value>6</degree-value>\r
+ <degree-alter>-1</degree-alter>\r
+ <degree-type>add</degree-type>\r
+ </degree>\r
+ </harmony>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>2</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>C-1+6b</text></lyric>\r
+ </note>\r
+ <barline location="right">\r
+ <bar-style>light-heavy</bar-style>\r
+ </barline>\r
+ </measure>\r
+ </part>\r
+ <!--=========================================================-->\r
+</score-partwise>\r
<duration>4</duration>
<voice>1</voice>
<type>eighth</type>
- <stem>up</stem>
</note>
<note>
<pitch><step>G</step><octave>4</octave></pitch>
<duration>4</duration>
<voice>1</voice>
<type>eighth</type>
- <stem>up</stem>
</note>
<figured-bass>
<figure><prefix>sharp</prefix><figure-number>1</figure-number></figure>
<voice>1</voice>
<type>eighth</type>
<dot/>
- <stem>up</stem>
</note>
<figured-bass parentheses="yes">
<figure><figure-number>6</figure-number></figure>
- <duration>2</duration>
</figured-bass>
<note>
<pitch><step>G</step><octave>4</octave></pitch>
<duration>2</duration>
<voice>1</voice>
<type>16th</type>
- <stem>up</stem>
</note>
<figured-bass>
<figure><figure-number>5</figure-number><suffix>slash</suffix></figure>
<voice>1</voice>
<type>eighth</type>
<dot/>
- <stem>up</stem>
</note>
<!-- Check how well the application handles an empty element (invalid MusicXML!) -->
<figured-bass>
<duration>8</duration>
<voice>1</voice>
<type>quarter</type>
- <stem>up</stem>
</note>
<barline location="right">
<bar-style>light-heavy</bar-style>
out_file_name.ext_ = "";
out_file_name.root_ = "";
- out_file_name.dir_ = "";
-
+ if (ly_get_option (ly_symbol2scm ("gui")) != SCM_BOOL_T
+ && ly_get_option (ly_symbol2scm ("strip-output-dir")) == SCM_BOOL_T) {
+ out_file_name.dir_ = "";
+ }
+
/* When running from gui, generate output in .ly source directory. */
- if (output_name_global.empty ()
- && ly_get_option (ly_symbol2scm ("gui")) == SCM_BOOL_T)
- {
- File_name f (file);
- f.base_ = "";
- f.ext_ = "";
- output_name_global = f.to_string ();
- }
-
- if (!output_name_global.empty ())
+ string output_name = output_name_global;
+ if (!output_name.empty ())
{
-
/* Interpret --output=DIR to mean --output=DIR/BASE. */
string dir;
- if (is_dir (output_name_global))
+ if (is_dir (output_name))
{
- dir = output_name_global;
- output_name_global = "";
+ dir = output_name;
+ output_name = "";
}
else
{
- File_name out (output_name_global);
+ File_name out (output_name);
if (is_dir (out.dir_part ()))
{
dir = out.dir_part ();
chdir (dir.c_str ());
}
else
- out_file_name = File_name (output_name_global);
+ out_file_name = File_name (output_name);
}
string init;
init = "init.ly";
string out_file = out_file_name.to_string ();
-
if (init.length () && global_path.find (init).empty ())
{
warning (_f ("cannot find init file: `%s'", init));
try_load_text_metrics (out_name);
// TODO: use $parser
- lexer_->set_identifier (ly_symbol2scm ("parser"),
- self_scm ());
+ lexer_->set_identifier (ly_symbol2scm ("parser"), self_scm ());
output_basename_ = out_name;
lexer_->main_input_name_ = name;
OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
*/
warning (_f ("strange time signature found: %d/%d",
- den,
- int (scm_to_int (scm_car (fr)))));
+ int (scm_to_int (scm_car (fr))),
+ den));
}
time_signature_ = make_item ("TimeSignature", SCM_EOL);
\revert Beam #'color
}
-
+teeny = {
+ \set fontSize = #-3
+}
+
tiny = {
\set fontSize = #-2
}
for e in self.elements:
l = max(l, e.get_length())
return l
-
+
+ def get_duration (self):
+ note_events = [e for e in self.elements if
+ isinstance (e, NoteEvent) or isinstance (e, RestEvent)]
+ if note_events:
+ return note_events[0].duration
+ else:
+ return None
+
def print_ly (self, printer):
note_events = [e for e in self.elements if
isinstance (e, NoteEvent)]
basepitch = previous_pitch
printer ('<%s>' % string.join (pitches))
previous_pitch = basepitch
- note_events[0].duration.print_ly (printer)
+ duration = self.get_duration ()
+ if duration:
+ duration.print_ly (printer)
else:
pass
else:
return ''
+class ChordPitch:
+ def __init__ (self):
+ self.alteration = 0
+ self.step = 0
+ def __repr__(self):
+ return self.ly_expression()
+ def ly_expression (self):
+ return pitch_generating_function (self)
+
+class ChordModification:
+ def __init__ (self):
+ self.alteration = 0
+ self.step = 0
+ self.type = 0
+ def ly_expression (self):
+ if self.type:
+ val = {1: ".", -1: "^" }.get (self.type, "")
+ val += "%s" % self.step
+ val += {1: "+", -1: "-"}.get (self.alteration, "")
+ return val
+ else:
+ return ''
+
+class ChordNameEvent (Event):
+ def __init__ (self):
+ Event.__init__ (self)
+ self.root = None
+ self.kind = None
+ self.duration = None
+ self.modifications = []
+ self.bass = None
+ def add_modification (self, mod):
+ self.modifications.append (mod)
+ def ly_expression (self):
+ if not self.root:
+ return ''
+ value = self.root.ly_expression ()
+ if self.duration:
+ value += self.duration.ly_expression ()
+ if self.kind:
+ value += ":"
+ value += self.kind
+ # First print all additions/changes, and only afterwards all subtractions
+ for m in self.modifications:
+ if m.type == 1:
+ value += m.ly_expression ()
+ for m in self.modifications:
+ if m.type == -1:
+ value += m.ly_expression ()
+ if self.bass:
+ value += "/+%s" % self.bass.ly_expression ()
+ return value
+
+
class TremoloEvent (ArticulationEvent):
def __init__ (self):
Event.__init__ (self)
sub_staff_type = self.stafftype
for [staff_id, voices] in self.part_information:
+ # Chord names need to come before the staff itself!
+ for [v, lyrics, figuredbass, chordnames] in voices:
+ if chordnames:
+ printer ('\context ChordNames = "%s" \\%s' % (chordnames, chordnames))
+
+ # now comes the real staff definition:
if staff_id:
printer ('\\context %s = "%s" << ' % (sub_staff_type, staff_id))
else:
printer.newline ()
n = 0
nr_voices = len (voices)
- for [v, lyrics, figuredbass] in voices:
+ for [v, lyrics, figuredbass, chordnames] in voices:
n += 1
voice_count_text = ''
if nr_voices > 1:
class Harmony (Music_xml_node):
pass
+class ChordPitch (Music_xml_node):
+ def step_class_name (self):
+ return u'root-step'
+ def alter_class_name (self):
+ return u'root-alter'
+ def get_step (self):
+ ch = self.get_unique_typed_child (get_class (self.step_class_name ()))
+ return ch.get_text ().strip ()
+ def get_alteration (self):
+ ch = self.get_maybe_exist_typed_child (get_class (self.alter_class_name ()))
+ alter = 0
+ if ch:
+ alter = int (ch.get_text ().strip ())
+ return alter
+
+class Root (ChordPitch):
+ pass
+
+class Bass (ChordPitch):
+ def step_class_name (self):
+ return u'bass-step'
+ def alter_class_name (self):
+ return u'bass-alter'
+
+class ChordModification (Music_xml_node):
+ def get_type (self):
+ ch = self.get_maybe_exist_typed_child (get_class (u'degree-type'))
+ return {'add': 1, 'alter': 1, 'subtract': -1}.get (ch.get_text ().strip (), 0)
+ def get_value (self):
+ ch = self.get_maybe_exist_typed_child (get_class (u'degree-value'))
+ value = 0
+ if ch:
+ value = int (ch.get_text ().strip ())
+ return value
+ def get_alter (self):
+ ch = self.get_maybe_exist_typed_child (get_class (u'degree-alter'))
+ value = 0
+ if ch:
+ value = int (ch.get_text ().strip ())
+ return value
+
+
class Frame (Music_xml_node):
def get_frets (self):
return self.get_named_child_value_number ('frame-frets', 4)
return self.get_named_child_value_number ('frame-strings', 6)
def get_first_fret (self):
return self.get_named_child_value_number ('first-fret', 1)
+
class Frame_Note (Music_xml_node):
def get_string (self):
return self.get_named_child_value_number ('string', 1)
'attributes': Attributes,
'barline': Barline,
'bar-style': BarStyle,
+ 'bass': Bass,
'beam' : Beam,
'beat-unit': BeatUnit,
'beat-unit-dot': BeatUnitDot,
'bracket' : Bracket,
'chord': Chord,
'dashes' : Dashes,
+ 'degree' : ChordModification,
'dot': Dot,
'direction': Direction,
'direction-type': DirType,
'per-minute': PerMinute,
'pitch': Pitch,
'rest': Rest,
- 'score-part': Score_part,
+ 'root': Root,
+ 'score-part': Score_part,
'slide': Slide,
'slur': Slur,
'staff': Staff,
(define-public (postscript->pdf paper-width paper-height name)
(let* ((pdf-name (string-append
- (basename (basename name ".ps") ".eps")
+ (dir-basename name ".ps" ".eps")
".pdf"))
(is-eps (string-match "\\.eps$" name))
(paper-size-string (if is-eps
(use-modules (scm ps-to-png))
(define-public (postscript->png resolution paper-width paper-height name)
- ;; Do not try to guess the name of the png file,
- ;; GS produces PNG files like BASE-page%d.png.
- ;;(ly:message (_ "Converting to `~a'...")
- ;; (string-append (basename name ".ps") "-page1.png" )))
(let* ((verbose (ly:get-option 'verbose))
(rename-page-1 #f))
+
+ ;; Do not try to guess the name of the png file,
+ ;; GS produces PNG files like BASE-page%d.png.
(ly:message (_ "Converting to ~a...") "PNG")
(make-ps-images name
#:resolution resolution
(output-scale (ly:output-def-lookup defs 'output-scale)))
(postscript->pdf (* paper-width output-scale (/ (ly:bp 1)))
(* paper-height output-scale (/ (ly:bp 1)))
- (string-append (basename name ".tex") ".ps"))))
+ (string-append (dir-basename name ".tex") ".ps"))))
(define-public (convert-to-png book name)
(let* ((defs (ly:paper-book-paper book))
(* paper-width output-scale (/ (ly:bp 1)))
(* paper-height output-scale (/ (ly:bp 1)))
- (string-append (basename name ".tex") ".ps"))))
+ (string-append (dir-basename name ".tex") ".ps"))))
(define-public (convert-to-ps book name)
(let* ((paper (ly:paper-book-paper book))
(preview? (string-contains name ".preview"))
(papersizename (ly:output-def-lookup paper 'papersizename))
(landscape? (eq? #t (ly:output-def-lookup paper 'landscape)))
- (base (basename name ".tex"))
+ (base (dir-basename name ".tex"))
(ps-name (format "~a.ps" base ".ps"))
(cmd (string-append "dvips"
(if preview?
#f " *%.*\n?"
(ly:kpathsea-expand-variable "extra_mem_top")
'pre "" 'post)))
- (base (basename name ".tex"))
+ (base (dir-basename name ".tex"))
(cmd (format
#f "latex \\\\nonstopmode \\\\input '~a'" name)))
(string-append (ly:number->string (car c)) " "
(ly:number->string (cdr c))))
+(define-public (dir-basename file . rest)
+ "Strip suffixes in REST, but leave directory component for FILE."
+ (define (inverse-basename x y) (basename y x))
+ (simple-format #f "~a/~a" (dirname file)
+ (fold inverse-basename file rest)))
(define-public (write-me message x)
"Return X. Display MESSAGE and write X. Handy for debugging,
(safe #f "Run safely")
(strict-infinity-checking #f "If yes, crash on encountering Inf/NaN.")
+ (strip-output-dir #t "If yes, strip directories from input files.")
(separate-log-files #f "Output to FILE.log per file.")
(trace-memory-frequency #f "Record Scheme cell usage this many times per second, and dump to file.")
(trace-scheme-coverage #f "Record coverage of Scheme files")
(define (dump-profile base last this)
(let*
- ((outname (format "~a.profile" (basename base ".ly")))
+ ((outname (format "~a.profile" (dir-basename base ".ly")))
(diff (map (lambda (y) (apply - y)) (zip this last))))
(ly:progress "\nWriting timing to ~a..." outname)
(define-public (lilypond-main files)
"Entry point for LilyPond."
-
(eval-string (ly:command-line-code))
(if (ly:get-option 'help)
((start-measurements (if do-measurements
(profile-measurements)
#f))
- (base (basename x ".ly"))
+ (base (dir-basename x ".ly"))
(all-settings (ly:all-options)))
(if separate-logs
(gui-no-files-handler))
(if (not (string? (ly:get-option 'log-file)))
- (let* ((base (basename (car files) ".ly"))
+ (let* ((base (dir-basename (car files) ".ly"))
(log-name (string-append base ".log")))
(if (not (ly:get-option 'gui))
(ly:message (_ "Redirecting output to ~a...") log-name))
((string-contains format-str "jpeg") "jpeg")
(else
(ly:error "Unknown pixmap format ~a" pixmap-format))))
- (base (basename (re-sub "[.]e?ps" "" ps-name)))
+ (base (dir-basename ps-name ".ps" ".eps"))
(png1 (format "~a.~a" base extension))
(pngn (format "~a-page%d.~a" base extension))
(page-count (ps-page-count ps-name))
'''
+import glob
import md5
import os
import re
return self.checksum
def basename (self):
- if FILENAME in self.option_dict:
- return self.option_dict[FILENAME]
-
cs = self.get_checksum ()
-
- # TODO: use xx/xxxxx directory layout.
- name = 'lily-%s' % cs[:10]
+ name = '%s/lily-%s' % (cs[:2], cs[2:10])
return name
def write_ly (self):
base = self.basename ()
path = os.path.join (global_options.lily_output_dir, base)
-
+ directory = os.path.split(path)[0]
+ if not os.path.isdir (directory):
+ os.makedirs (directory)
out = file (path + '.ly', 'w')
out.write (self.full_ly ())
file (path + '.txt', 'w').write ('image of music')
src = os.path.join (output_dir, name)
dst = os.path.join (destination, name)
+ dst_path = os.path.split(dst)[0]
+ if not os.path.isdir (dst_path):
+ os.makedirs (dst_path)
os.link (src, dst)
checksum = snippet_list_checksum (snippets)
contents = '\n'.join (['snippet-map-%d.ly' % checksum]
- + [snip.basename() for snip in snippets])
+ + [snip.basename() + '.ly' for snip in snippets])
name = os.path.join (lily_output_dir,
- 'snippet-names-%d' % checksum)
+ 'snippet-names-%d.ly' % checksum)
file (name, 'wb').write (contents)
system_in_directory (' '.join ([cmd, name]),
""" % '\n'.join(['("%s.ly" . "%s")\n' % (ly.basename (), name)
for ly in lys]))
+def split_output_files(directory):
+ """Returns directory entries in DIRECTORY/XX/ , where XX are hex digits.
+
+ Return value is a set of strings.
+ """
+ files = []
+ for subdir in glob.glob (os.path.join (directory, '[a-f0-9][a-f0-9]')):
+ base_subdir = os.path.split (subdir)[1]
+ sub_files = [os.path.join (base_subdir, name)
+ for name in os.listdir (subdir)]
+ files += sub_files
+ return set (files)
+
def do_process_cmd (chunks, input_name, options):
snippets = [c for c in chunks if isinstance (c, LilypondSnippet)]
-
- output_files = set(os.listdir(options.lily_output_dir))
+ output_files = split_output_files (options.lily_output_dir)
outdated = [c for c in snippets if c.is_outdated (options.lily_output_dir, output_files)]
write_file_map (outdated, input_name)
progress (_ ("All snippets are up to date..."))
if options.lily_output_dir != options.output_dir:
- output_files = set(os.listdir(options.lily_output_dir))
+ output_files = split_output_files (options.lily_output_dir)
for snippet in snippets:
snippet.link_all_output_files (options.lily_output_dir,
output_files,
if global_options.padding_mm:
global_options.process_cmd += " -deps-box-padding=%f " % global_options.padding_mm
- global_options.process_cmd += " -dread-file-list "
+ global_options.process_cmd += " -dread-file-list -dno-strip-output-dir"
if global_options.lily_output_dir:
global_options.lily_output_dir = os.path.abspath(global_options.lily_output_dir)
ev = musicxml_frame_to_lily_event (f)
if ev:
res.append (ev)
+ return res
+
+
+def musicxml_chordpitch_to_lily (mxl_cpitch):
+ r = musicexp.ChordPitch ()
+ r.alteration = mxl_cpitch.get_alteration ()
+ r.step = musicxml_step_to_lily (mxl_cpitch.get_step ())
+ return r
+
+chordkind_dict = {
+ 'major': '5',
+ 'minor': 'm5',
+ 'augmented': 'aug5',
+ 'diminished': 'dim5',
+ # Sevenths:
+ 'dominant': '7',
+ 'major-seventh': 'maj7',
+ 'minor-seventh': 'm7',
+ 'diminished-seventh': 'dim7',
+ 'augmented-seventh': 'aug7',
+ 'half-diminished': 'dim5m7',
+ 'major-minor': '7m5',
+ # Sixths:
+ 'major-sixth': '6',
+ 'minor-sixth': 'm6',
+ # Ninths:
+ 'dominant-ninth': '9',
+ 'major-ninth': 'maj9',
+ 'minor-ninth': 'm9',
+ # 11ths (usually as the basis for alteration):
+ 'dominant-11th': '11',
+ 'major-11th': 'maj11',
+ 'minor-11th': 'm11',
+ # 13ths (usually as the basis for alteration):
+ 'dominant-13th': '13.11',
+ 'major-13th': 'maj13.11',
+ 'minor-13th': 'm13',
+ # Suspended:
+ 'suspended-second': 'sus2',
+ 'suspended-fourth': 'sus4',
+ # Functional sixths:
+ # TODO
+ #'Neapolitan': '???',
+ #'Italian': '???',
+ #'French': '???',
+ #'German': '???',
+ # Other:
+ #'pedal': '???',(pedal-point bass)
+ #'power': '???',(perfect fifth)
+ #'Tristan': '???',
+ 'other': '1',
+ 'none': None,
+}
+
+def musicxml_chordkind_to_lily (kind):
+ res = chordkind_dict.get (kind, None)
+ # Check for None, since a major chord is converted to ''
+ if res == None:
+ error_message (_ ("Unable to convert chord type %s to lilypond.") % kind)
+ return res
+
+def musicxml_harmony_to_lily_chordname (n):
+ res = []
+ root = n.get_maybe_exist_named_child ('root')
+ if root:
+ ev = musicexp.ChordNameEvent ()
+ ev.root = musicxml_chordpitch_to_lily (root)
+ kind = n.get_maybe_exist_named_child ('kind')
+ if kind:
+ ev.kind = musicxml_chordkind_to_lily (kind.get_text ())
+ if not ev.kind:
+ return res
+ bass = n.get_maybe_exist_named_child ('bass')
+ if bass:
+ ev.bass = musicxml_chordpitch_to_lily (bass)
+ inversion = n.get_maybe_exist_named_child ('inversion')
+ if inversion:
+ # TODO: Lilypond does not support inversions, does it?
+ pass
+ for deg in n.get_named_children ('degree'):
+ d = musicexp.ChordModification ()
+ d.type = deg.get_type ()
+ d.step = deg.get_value ()
+ d.alteration = deg.get_alter ()
+ ev.add_modification (d)
+ #TODO: convert the user-symbols attribute:
+ #major: a triangle, like Unicode 25B3
+ #minor: -, like Unicode 002D
+ #augmented: +, like Unicode 002B
+ #diminished: (degree), like Unicode 00B0
+ #half-diminished: (o with slash), like Unicode 00F8
+ if ev and ev.root:
+ res.append (ev)
return res
self.begin_moment = Rational (0)
self.pending_multibar = Rational (0)
self.ignore_skips = False
+ self.has_relevant_elements = False
def _insert_multibar (self):
r = musicexp.MultiMeasureRest ()
if self.pending_multibar > Rational (0):
self._insert_multibar ()
+ self.has_relevant_elements = True
self.elements.append (music)
self.begin_moment = self.end_moment
self.set_duration (duration)
assert isinstance (command, musicexp.Music)
if self.pending_multibar > Rational (0):
self._insert_multibar ()
+ self.has_relevant_elements = True
self.elements.append (command)
def add_barline (self, barline):
# TODO: Implement merging of default barline and custom bar line
self.pending_dynamics.append (dynamic)
def add_bar_check (self, number):
+ # re/store has_relevant_elements, so that a barline alone does not
+ # trigger output for figured bass, chord names
+ has_relevant = self.has_relevant_elements
b = musicexp.BarLine ()
b.bar_number = number
self.add_barline (b)
+ self.has_relevant_elements = has_relevant
def jumpto (self, moment):
current_end = self.end_moment + self.pending_multibar
self.voicedata = None
self.ly_voice = None
self.figured_bass = None
+ self.chordnames = None
self.lyrics_dict = {}
self.lyrics_order = []
current_staff = None
pending_figured_bass = []
+ pending_chordnames = []
# Make sure that the keys in the dict don't get reordered, since
# we need the correct ordering of the lyrics stanzas! By default,
voice_builder = LilyPondVoiceBuilder ()
figured_bass_builder = LilyPondVoiceBuilder ()
+ chordnames_builder = LilyPondVoiceBuilder ()
for n in voice._elements:
if n.get_name () == 'forward':
voice_builder.add_dynamics (a)
else:
voice_builder.add_command (a)
+ for a in musicxml_harmony_to_lily_chordname (n):
+ pending_chordnames.append (a)
continue
-
+
if isinstance (n, musicxml.FiguredBass):
a = musicxml_figured_bass_to_lily (n)
if a:
number = 0
if number > 0:
voice_builder.add_bar_check (number)
+ figured_bass_builder.add_bar_check (number)
+ chordnames_builder.add_bar_check (number)
for a in musicxml_attributes_to_lily (n):
voice_builder.add_command (a)
num = 0
if num > 0:
voice_builder.add_bar_check (num)
+ figured_bass_builder.add_bar_check (num)
+ chordnames_builder.add_bar_check (num)
main_event = musicxml_note_to_lily_main_event (n)
if main_event and not first_pitch:
# if we have a figured bass, set its voice builder to the correct position
# and insert the pending figures
if pending_figured_bass:
- try:
- figured_bass_builder.jumpto (n._when)
- except NegativeSkip, neg:
- pass
- for fb in pending_figured_bass:
- figured_bass_builder.add_music (fb, fb.real_duration)
- pending_figured_bass = []
+ try:
+ figured_bass_builder.jumpto (n._when)
+ except NegativeSkip, neg:
+ pass
+ for fb in pending_figured_bass:
+ # if a duration is given, use that, otherwise the one of the note
+ dur = fb.real_duration
+ if not dur:
+ dur = ev_chord.get_length ()
+ if not fb.duration:
+ fb.duration = ev_chord.get_duration ()
+ figured_bass_builder.add_music (fb, dur)
+ pending_figured_bass = []
+
+ if pending_chordnames:
+ try:
+ chordnames_builder.jumpto (n._when)
+ except NegativeSkip, neg:
+ pass
+ for cn in pending_chordnames:
+ # Assign the duration of the EventChord
+ cn.duration = ev_chord.get_duration ()
+ chordnames_builder.add_music (cn, ev_chord.get_length ())
+ pending_chordnames = []
notations_children = n.get_typed_children (musicxml.Notations)
return_value.ly_voice = v
# create \figuremode { figured bass elements }
- if figured_bass_builder.elements:
+ if figured_bass_builder.has_relevant_elements:
fbass_music = musicexp.SequentialMusic ()
fbass_music.elements = figured_bass_builder.elements
v = musicexp.ModeChangingMusicWrapper()
v.element = fbass_music
return_value.figured_bass = v
+ # create \chordmode { chords }
+ if chordnames_builder.has_relevant_elements:
+ cname_music = musicexp.SequentialMusic ()
+ cname_music.elements = chordnames_builder.elements
+ v = musicexp.ModeChangingMusicWrapper()
+ v.mode = 'chordmode'
+ v.element = cname_music
+ return_value.chordnames = v
+
return return_value
def musicxml_id_to_lily (id):
str = "Part%sVoice%sFiguredBass" % (part_id, voicename)
return musicxml_id_to_lily (str)
+def music_xml_chordnames_name_to_lily_name (part_id, voicename):
+ str = "Part%sVoice%sChords" % (part_id, voicename)
+ return musicxml_id_to_lily (str)
+
def print_voice_definitions (printer, part_list, voices):
for part in part_list:
part_id = part.id
printer.dump ('%s = ' % k)
voice.ly_voice.print_ly (printer)
printer.newline()
+ if voice.chordnames:
+ cnname = music_xml_chordnames_name_to_lily_name (part_id, name)
+ printer.dump ('%s = ' % cnname )
+ voice.chordnames.print_ly (printer)
+ printer.newline()
for l in voice.lyrics_order:
lname = music_xml_lyrics_name_to_lily_name (part_id, name, l)
printer.dump ('%s = ' % lname )
# raw_voices is of the form [(voicename, lyricsids, havefiguredbass)*]
def format_staff_info (part_id, staff_id, raw_voices):
voices = []
- for (v, lyricsids, figured_bass) in raw_voices:
+ for (v, lyricsids, figured_bass, chordnames) in raw_voices:
voice_name = music_xml_voice_name_to_lily_name (part_id, v)
voice_lyrics = [music_xml_lyrics_name_to_lily_name (part_id, v, l)
for l in lyricsids]
figured_bass_name = ''
if figured_bass:
figured_bass_name = music_xml_figuredbass_name_to_lily_name (part_id, v)
- voices.append ([voice_name, voice_lyrics, figured_bass_name])
+ chordnames_name = ''
+ if chordnames:
+ chordnames_name = music_xml_chordnames_name_to_lily_name (part_id, v)
+ voices.append ([voice_name, voice_lyrics, figured_bass_name, chordnames_name])
return [staff_id, voices]
def update_score_setup (score_structure, part_list, voices):
staves = uniq_list (staves)
staves.sort ()
for s in staves:
- thisstaff_raw_voices = [(voice_name, voice.lyrics_order, voice.figured_bass)
+ thisstaff_raw_voices = [(voice_name, voice.lyrics_order, voice.figured_bass, voice.chordnames)
for (voice_name, voice) in nv_dict.items ()
if voice.voicedata._start_staff == s]
staves_info.append (format_staff_info (part_id, s, thisstaff_raw_voices))
else:
- thisstaff_raw_voices = [(voice_name, voice.lyrics_order, voice.figured_bass)
+ thisstaff_raw_voices = [(voice_name, voice.lyrics_order, voice.figured_bass, voice.chordnames)
for (voice_name, voice) in nv_dict.items ()]
staves_info.append (format_staff_info (part_id, None, thisstaff_raw_voices))
score_structure.set_part_information (part_id, staves_info)
# symlinks, see replace_symlinks_urls in
# buildscripts/add_html_footer.py.
-ifneq ($(INFO_IMAGES_DIR),)
-
# make dereferences symlinks, and $(INFO_IMAGES_DIR) is a symlink
# to $(outdir), so we can't use directly $(INFO_IMAGES_DIR) as a
# prerequisite, otherwise %.info are always outdated (because older
# than $(outdir), hence this .dep file
-$(outdir)/%.info-images-dir.dep: $(outdir)/%.texi
- rm -f $*
- ln -s $(outdir) $*
- mkdir -p $(outdir)/$*
- find $(outdir)/$*/ -name '*'.png | xargs rm -f
- (cd $(outdir)/$*/ ; ln -sf ../*.png . )
- touch $@
-
-else
-
-$(outdir)/.info-images-dir.dep:
- touch $@
-
+$(outdir)/$(INFO_IMAGES_DIR).info-images-dir.dep: $(INFO_DOCS:%=$(outdir)/%.texi)
+ifneq ($(INFO_IMAGES_DIR),)
+ rm -f $(INFO_IMAGES_DIR)
+ ln -s $(outdir) $(INFO_IMAGES_DIR)
+ mkdir -p $(outdir)/$(INFO_IMAGES_DIR)
+ rm -f $(outdir)/$(INFO_IMAGES_DIR)/[a-f0-9][a-f0-9]
+ cd $(outdir)/$(INFO_IMAGES_DIR) && $(PYTHON) $(top-src-dir)/buildscripts/mass-link.py symbolic .. . [a-f0-9][a-f0-9]
endif
+ touch $@
$(outdir)/%.info: $(outdir)/%.texi $(outdir)/$(INFO_IMAGES_DIR).info-images-dir.dep $(outdir)/version.texi
$(MAKEINFO) -I$(outdir) --output=$@ $<
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2008-03-31.10}
+\def\texinfoversion{2008-04-09.09}
%
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
-% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space.
+% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
%
% \argremovec might leave us with trailing space, e.g.,
% @end itemize @c foo
% to get _exactly_ the rest of the line, we had to prevent such situation.
% We prepended an \empty token at the very beginning and we expand it now,
% just before passing the control to \argtorun.
-% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
+% (Similarly, we have to think about #3 of \argcheckspacesY above: it is
% either the null string, or it ends with \^^M---thus there is no danger
% that a pair of braces would be stripped.
%
% used to check whether the current environment is the one expected.
%
% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
-% are not treated as enviroments; they don't open a group. (The
+% are not treated as environments; they don't open a group. (The
% implementation of @end takes care not to call \endgroup in this
% special case.)
-% At runtime, environments start with this:
+% At run-time, environments start with this:
\def\startenvironment#1{\begingroup\def\thisenv{#1}}
% initialize
\let\thisenv\empty
\fi
}
-% Evironment mismatch, #1 expected:
+% Environment mismatch, #1 expected:
\def\badenverr{%
\errhelp = \EMsimple
\errmessage{This command can appear only \inenvironment\temp,
\pushthisfilestack
\def\thisfile{#1}%
{%
- \makevalueexpandable % we want to expand any @value in FILE.
+ \makevalueexpandable % we want to expand any @value in FILE.
\turnoffactive % and allow special characters in the expansion
\edef\temp{\noexpand\input #1 }%
%
}
}
-% @bullet and @minus need the same treatment as @math, just above.
+% Some math mode symbols.
\def\bullet{$\ptexbullet$}
-\def\minus{$-$}
+\def\geq{\ifmmode \ge\else $\ge$\fi}
+\def\leq{\ifmmode \le\else $\le$\fi}
+\def\minus{\ifmmode -\else $-$\fi}
% @dots{} outputs an ellipsis using the current font.
% We do .5em per period so that it has the same spacing in the cm
%
% A straightforward implementation would start like this:
% \def\entry#1#2{...
-% But this frozes the catcodes in the argument, and can cause problems to
+% But this freezes the catcodes in the argument, and can cause problems to
% @code, which sets - active. This problem was fixed by a kludge---
% ``-'' was active throughout whole index, but this isn't really right.
%
\def\Edefun{\endgraf\medbreak}
% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
-% the only thing remainnig is to define \deffnheader.
+% the only thing remaining is to define \deffnheader.
%
\def\makedefun#1{%
\expandafter\let\csname E#1\endcsname = \Edefun
% In case a @footnote appears in a vbox, save the footnote text and create
% the real \insert just after the vbox finished. Otherwise, the insertion
% would be lost.
-% Similarily, if a @footnote appears inside an alignment, save the footnote
+% Similarly, if a @footnote appears inside an alignment, save the footnote
% text to a box and make the \insert when a row of the table is finished.
% And the same can be done for other insert classes. --kasal, 16nov03.