considerations.
@menu
-* Removing the stencil::
-* Making objects transparent::
-* Painting objects white::
-* Using break-visibility::
-* Special considerations::
+* Removing the stencil::
+* Making objects transparent::
+* Painting objects white::
+* Using break-visibility::
+* Special considerations::
@end menu
@tab @b{Example}
@item @code{1 2 8 16}
-@tab durations
+@tab durations
@tab
@lilypond[fragment,relative=2,notime]
\set Staff.autoBeaming = ##f
@tab
@lilypond[fragment,relative=2,notime]
\override Staff.Clef #'break-visibility = #all-invisible
-c4. c4..
+c4. c4..
@end lilypond
@item @code{c d e f g a b }
-@tab scale
+@tab scale
@tab
@lilypond[fragment,relative=1,notime]
c d e f g a b
@end lilypond
@item @code{fis bes}
-@tab alteration
+@tab alteration
@tab
@lilypond[fragment,relative=1,notime]
fis bes
@tab time signature
@tab
@lilypond[fragment]
-\override Staff.Clef #'transparent = ##t
+\override Staff.Clef #'transparent = ##t
\time 3/4
s4_" "
\time 4/4
@item @code{r4 r8}
-@tab rest
+@tab rest
@tab
@lilypond[relative=2,notime,fragment]
\override Staff.Clef #'break-visibility = #all-invisible
@lilypond[notime,fragment]
\clef treble
\key es \major
-s4
+s4
@end lilypond
@item @var{note}@code{'}
} >>
@end lilypond
-
+
@item @code{c-> c-.}
@tab articulations
@tab
@tab
@lilypond[fragment,relative=2]
\set Staff.implicitTimeSignatureVisibility = #all-invisible
-<c e>
+<c e>
@end lilypond
@end lilypond
@item @code{twin -- kle}
-@tab lyric hyphen
+@tab lyric hyphen
@tab
@lilypond[fragment,relative=2]
\set Staff.implicitTimeSignatureVisibility = #all-invisible
<<
{ g'1 g }
\new Lyrics \lyricsto "" { twin -- kle }
->>
+>>
@end lilypond
@item @code{\chordmode @{ c:dim f:maj7 @}}
-@tab chords
+@tab chords
@tab
@lilypond[fragment,relative=2]
\set Staff.implicitTimeSignatureVisibility = #all-invisible
@end lilypond
@item @code{\context ChordNames}
-@tab printing chord names
+@tab printing chord names
@tab
@lilypond[fragment,relative=2]
\chords { c:dim f:maj7 }
}
@end lilypond
-@item
+@item
m, m7
@tab
The minor chord. This modifier lowers the 3rd and (if present) the
@end lilypond
-@item
+@item
dim, dim7
@tab
The diminished chord. This modifier lowers the 3rd, 5th and (if
}
@end lilypond
-@item
+@item
aug
@tab
The augmented chord. This modifier raises the 5th step.
}
@end lilypond
-@item
+@item
maj, maj7
@tab
The major 7th chord. This modifier adds a raised 7th step. The
@funindex ^
-Following any steps to be added, a series of steps to be removed
-is introduced in a modifier string with a prefix of @code{^}.
+Following any steps to be added, a series of steps to be removed
+is introduced in a modifier string with a prefix of @code{^}.
If more than one step is to be removed, the steps to be
removed are separated by @code{.} following the
-initial @code{^}.
+initial @code{^}.
@lilypond[quote,verbatim,fragment,relative=1]
\chordmode {
@end lilypond
Chord modifiers that can be used to produce a variety of
-standard chords are shown in
+standard chords are shown in
@ref{Common chord modifiers}.
@seealso
@menu
* Invoking midi2ly:: Importing MIDI.
* Invoking musicxml2ly:: Importing MusicXML.
-* Invoking abc2ly:: Importing ABC.
+* Invoking abc2ly:: Importing ABC.
* Invoking etf2ly:: Importing Finale.
* Generating LilyPond files:: GUIs, transcribers, and algorithmic composition programs.
@end menu
operating system. See @ref{Converting from other formats}, for
more information about this.
-If the given filename is @file{-}, @command{musicxml2ly} reads input
+If the given filename is @file{-}, @command{musicxml2ly} reads input
from the command line.
The following options are supported by @command{musicxml2ly}:
articulations, dynamics, etc.
@item --no-beaming
-do not convert beaming information, use LilyPond's automatic
+do not convert beaming information, use LilyPond's automatic
beaming instead.
@item -o,--output=@var{file}
which imports MIDI
@item
@uref{http://@/common-lisp@/.net/project/fomus/,FOMUS},
-a LISP library to generate music notation
+a LISP library to generate music notation
@item
@uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml},
has experimental export for LilyPond.
@lilypondfile[quote]{editorial-headword.ly}
-This section discusses the various ways to change the appearance of
+This section discusses the various ways to change the appearance of
notes and add analysis or educational emphasis.
@menu
-* Inside the staff::
-* Outside the staff::
+* Inside the staff::
+* Outside the staff::
@end menu
@node Inside the staff
@subsection Inside the staff
-This section discusses how to add emphasis to elements that are
+This section discusses how to add emphasis to elements that are
inside the staff.
@menu
-* Selecting notation font size::
-* Fingering instructions::
-* Hidden notes::
-* Coloring objects::
-* Parentheses::
-* Stems::
+* Selecting notation font size::
+* Fingering instructions::
+* Hidden notes::
+* Coloring objects::
+* Parentheses::
+* Stems::
@end menu
@node Selecting notation font size
c4-1 d-2 f-4 e-3
@end lilypond
-Markup texts may be used for finger changes.
+Markup texts may be used for finger changes.
@lilypond[verbatim,quote,relative=2]
c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
@funindex thumb
A thumb-script can be added (e.g., in cello music) to indicate
-that a note should be played with the thumb.
+that a note should be played with the thumb.
@lilypond[verbatim,quote,relative=2]
<a_\thumb a'-3>2 <b_\thumb b'-3>
e4 f
\unHideNotes
g a
-\hideNotes
+\hideNotes
b
\unHideNotes
c
possible to access X11 colors by the multi-word form of its name.
If @code{x11-color} cannot make sense of the parameter then the
-color returned defaults to black.
+color returned defaults to black.
@lilypond[verbatim,quote,relative=2]
\override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
\set Staff.instrumentName = \markup {
\with-color #(x11-color 'navy) "Clarinet"
}
-
+
\override Stem #'color = #(rgb-color 0 0 0)
gis8 a
\override Stem #'color = #(rgb-color 1 1 1)
gis8 a
-\override Stem #'color = #(rgb-color 0 0 0.5)
+\override Stem #'color = #(rgb-color 0 0 0.5)
gis4 a
@end lilypond
@knownissues
An X11 color is not necessarily exactly the same shade as a
-similarly named normal color.
+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 @code{'LimeGreen}
@node Outside the staff
@subsection Outside the staff
-This section discusses how to add emphasis to elements in the staff
-from outside of the staff.
+This section discusses how to add emphasis to elements in the staff
+from outside of the staff.
@menu
-* Balloon help::
-* Grid lines::
-* Analysis brackets::
+* Balloon help::
+* Grid lines::
+* Analysis brackets::
@end menu
@node Balloon help
\new Voice \with { \consists "Balloon_engraver" }
{
\balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
- a8
+ a8
\balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" }
r
- <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
+ <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
}
@end lilypond
{
\balloonLengthOff
\balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
- a8
+ a8
\balloonGrobText #'Rest #'(-4 . -4) \markup { "I'm a rest" }
r
\balloonLengthOn
- <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
+ <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
}
@end lilypond
\layout {
\context {
\Staff
- \consists "Grid_point_engraver"
+ \consists "Grid_point_engraver"
gridInterval = #(ly:make-moment 1 4)
}
\context {
doits.
@menu
-* Slurs::
-* Phrasing slurs::
-* Breath marks::
-* Falls and doits::
+* Slurs::
+* Phrasing slurs::
+* Breath marks::
+* Falls and doits::
@end menu
@node Slurs
@seealso
-Music Glossary:
+Music Glossary:
@rglos{caesura}.
Notation Reference:
@cindex banjo tablature
@menu
-* Common notation for fretted strings::
-* Guitar::
-* Banjo::
+* Common notation for fretted strings::
+* Guitar::
+* Banjo::
@end menu
@node Common notation for fretted strings
to fretted string instruments.
@menu
-* References for fretted strings::
-* String number indications::
-* Default tablatures::
-* Custom tablatures::
+* References for fretted strings::
+* String number indications::
+* Default tablatures::
+* Custom tablatures::
* Fret diagram markups::
* Predefined fret diagrams::
-* Automatic fret diagrams::
-* Right-hand fingerings::
+* Automatic fret diagrams::
+* Right-hand fingerings::
@end menu
@node References for fretted strings
tablature. Sometimes the two types are combined, and it is
especially common in popular music to use chord diagrams above
a staff of traditional notation. The guitar and the banjo are
-transposing instruments, sounding an octave lower than written.
-Scores for these instruments should use the @code{"treble_8"} clef.
-Some other elements pertinent to fretted string instruments
+transposing instruments, sounding an octave lower than written.
+Scores for these instruments should use the @code{"treble_8"} clef.
+Some other elements pertinent to fretted string instruments
are covered elsewhere:
@itemize
as well as ties on arpeggios and tremolos is described in
@ref{Ties}.
-@item Instructions on handling multiple voices is described
-in @ref{Collision resolution}.
+@item Instructions on handling multiple voices is described
+in @ref{Collision resolution}.
@end itemize
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.
+numbers indicating on which string and fret a note must be played.
LilyPond offers limited support for tablature.
The string number associated with a note is given as a backslash
-followed by a number. By default, string 1 is the highest,
-and the tuning defaults to the standard guitar tuning (with 6 strings).
+followed by a number. By default, string 1 is the highest,
+and the tuning defaults to the standard guitar tuning (with 6 strings).
The notes are printed as tablature, by using @code{TabStaff} and
@code{TabVoice} contexts
Snippets:
@rlsr{Fretted strings}.
-Internals Reference:
+Internals Reference:
@rinternals{TabNoteHead},
@rinternals{TabStaff},
@rinternals{TabVoice},
@funindex StringTunings
-LilyPond tabulature automatically calculates the fret for
+LilyPond tabulature automatically calculates the fret for
a note based on the string to which the note is assigned.
In order to do this, the tuning of the strings must be
specified. The tuning of the strings is given in the
@code{StringTunings} property.
LilyPond comes with predefined string tunings for banjo, mandolin,
-guitar and bass guitar. Lilypond automatically sets the correct
+guitar and bass guitar. Lilypond automatically sets the correct
transposition for predefined tunings. The following example is
for bass guitar, which sounds an octave lower than written.
The default string tuning is @code{guitar-tuning}, which
is the standard EADGBE tuning. Some other predefined tunings are
@code{guitar-open-g-tuning}, @code{mandolin-tuning} and
-@code{banjo-open-g-tuning}. The predefined string tunings
+@code{banjo-open-g-tuning}. The predefined string tunings
are found in @code{scm/output-lib.scm}.
-A string tuning is a Scheme list of string pitches,
+A string tuning is a Scheme list of string pitches,
one for each string, ordered by string number from 1 to N,
where string 1 is at the top of the tablature staff and
-string N is at the bottom. This ordinarily results in ordering
-from highest pitch to lowest pitch, but some instruments
+string N is at the bottom. This ordinarily results in ordering
+from highest pitch to lowest pitch, but some instruments
(e.g. ukulele) do not have strings ordered by pitch.
-A string pitch in a string tuning list is the pitch difference
-of the open string from middle C measured in semitones. The
-string pitch must be an integer. Lilypond calculates the actual
-pitch of the string by adding the string tuning pitch to the
+A string pitch in a string tuning list is the pitch difference
+of the open string from middle C measured in semitones. The
+string pitch must be an integer. Lilypond calculates the actual
+pitch of the string by adding the string tuning pitch to the
actual pitch for middle C.
LilyPond automatically calculates the number of strings in the
Snippets:
@rlsr{Fretted strings}.
-Internals Reference:
+Internals Reference:
@rinternals{Tab_note_heads_engraver}.
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
+ \chordmode {
+ c1 d:m
}
}
\context Staff {
\clef "treble_8"
- < c e g c' e' > 1 ^\markup
+ < c e g c' e' > 1 ^\markup
\fret-diagram #"6-x;5-3;4-2;3-o;2-1;1-o;"
< d a d' f'> ^\markup
\fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-1;"
- }
+ }
>>
@end lilypond
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
+ \chordmode {
+ c1 d:m
}
}
\context Staff {
\clef "treble_8"
- < c e g c' e' > 1 ^\markup
+ < c e g c' e' > 1 ^\markup
\fret-diagram #"f:1;6-x;5-3-3;4-2-2;3-o;2-1-1;1-o;"
< d a d' f'> ^\markup
\fret-diagram #"f:2;6-x;5-x;4-o;3-2-2;2-3-3;1-1-1;"
- }
+ }
>>
@end lilypond
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
+ \chordmode {
+ c1 d:m
}
}
\context Staff {
\clef "treble_8"
- < c e g c' e' > 1 ^\markup
+ < c e g c' e' > 1 ^\markup
\fret-diagram #"d:0.35;6-x;5-3;4-2;3-o;2-1;1-o;"
< d a d' f'> ^\markup
\fret-diagram #"p:0.2;6-x;5-x;4-o;3-2;2-3;1-1;"
- }
+ }
>>
@end lilypond
@funindex \fret-diagram-terse
The fret-diagram-terse markup string omits string numbers; the string
-number is implied by the presence of semicolons. There is one semicolon
+number is implied by the presence of semicolons. There is one semicolon
for each string in the diagram. The first semicolon corresponds to the
highest string number and the last semicolon corresponds to the first string.
Mute strings, open strings, and fret numbers can be indicated.
\fret-diagram-terse #"3-(;5;5;4;3;3-);"
}
>>
-@end lilypond
+@end lilypond
Fingering indications can be included in the fret-diagram-terse markup string.
@c Need to use override to enable fingerings to show this -- can we do so?
@lilypond[quote, verbatim]
-<<
+<<
\context ChordNames {
\chordmode {
c1 d:m
}
}
\context Staff {
- \override Voice.TextScript
+ \override Voice.TextScript
#'fret-diagram-details #'finger-code = #'below-string
\clef "treble_8"
< c e g c' e' > 1 ^\markup
>>
@end lilypond
-Fingering indications and barres can be included in a
+Fingering indications and barres can be included in a
fret-diagram-verbose markup string.
@c \override is necessary to make fingering visible
>>
@end lilypond
-All other fret diagram properties must be adjusted using @code{\override}
+All other fret diagram properties must be adjusted using @code{\override}
when using the fret-diagram-verbose markup.
@ignore
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 5 4 3)
(place-fret 4 4 4)
- (place-fret 3 3 2)
+ (place-fret 3 3 2)
(place-fret 2 2 1)
(place-fret 1 2 1))
}
@end lilypond
The default predefined fret diagrams are contained in the file
-@code{predefined-guitar-fretboards.ly}. Fret diagrams are
+@code{predefined-guitar-fretboards.ly}. Fret diagrams are
stored based on the pitches of a chord and the value of
-@code{stringTunings} that is currently in use.
-@code{predefined-guitar-fretboards.ly} contains predefined
+@code{stringTunings} that is currently in use.
+@code{predefined-guitar-fretboards.ly} contains predefined
fret diagrams only for @code{guitar-tuning}. Predefined fret
diagrams can be added for other instruments or other tunings
-by following the examples found in
-@code{predefined-guitar-fretboards.ly}.
+by following the examples found in
+@code{predefined-guitar-fretboards.ly}.
Chord pitches can be entered
either as simultaneous music or using chord mode (see
@lilypond[verbatim, ragged-right, quote]
\include "predefined-guitar-fretboards.ly"
-\storePredefinedDiagram \chordmode {c:9}
+\storePredefinedDiagram \chordmode {c:9}
#guitar-tuning
#"x;3-2;2-1;3-3;3-4;x;"
@lilypond[verbatim, ragged-right, quote]
\include "predefined-guitar-fretboards.ly"
-\storePredefinedDiagram \chordmode {c'}
+\storePredefinedDiagram \chordmode {c'}
#guitar-tuning
#(offset-fret 2 (chord-shape 'bes))
% add some new chords based on the power chord shape
-\storePredefinedDiagram \chordmode {f'}
- #guitar-tuning
+\storePredefinedDiagram \chordmode {f'}
+ #guitar-tuning
#(chord-shape 'powerf)
-\storePredefinedDiagram \chordmode {g'}
+\storePredefinedDiagram \chordmode {g'}
#guitar-tuning
#(offset-fret 2 (chord-shape 'powerf))
mychords = \chordmode{
- f1 f' g g'
+ f1 f' g g'
}
<<
The graphical layout of a fret diagram can be customized according to
user preference through the properties of the @code{fret-diagram-interface}.
-Details are found at @rinternals{fret-diagram-interface}. For a
-predefined fret diagram, the interface properties belong to
+Details are found at @rinternals{fret-diagram-interface}. For a
+predefined fret diagram, the interface properties belong to
@code{FretBoards.FretBoard}.
@snippets
@cindex automatic fret diagrams
@cindex automatic chord diagrams
-Fret diagrams can be automatically created from entered notes using the
+Fret diagrams can be automatically created from entered notes using the
@code{FretBoards} context. If no predefined diagram is available for
the entered notes in the active @code{stringTunings}, this context
calculates strings and frets that can be used to play the notes.
@lilypond[quote,ragged-right,verbatim]
<<
\context ChordNames {
- \chordmode {
- f1 g
+ \chordmode {
+ f1 g
}
}
\context FretBoards {
\clef "treble_8"
< f, c f a c' f'>1
< g, b, d g b' g'>
- }
+ }
>>
@end lilypond
@funindex predefinedFretboardsOn
@funindex \predefinedFretboardsOn
-As no predefined diagrams are loaded by default, automatic calculation
+As no predefined diagrams are loaded by default, automatic calculation
of fret diagrams is the default behavior. Once default diagrams are
loaded, automatic calculation can be enabled and disabled with predefined
commands:
#"x;3-1-(;5-2;5-3;5-4;3-1-1);"
<<
\context ChordNames {
- \chordmode {
- c1 c c
+ \chordmode {
+ c1 c c
}
}
\context FretBoards {
<c e g c' e'>1
<c e g c' e'>
<c e g c' e'>
- }
+ }
>>
@end lilypond
-
+
Sometimes the fretboard calculator will be unable to find
an accceptable diagram. This can often be remedied by
manually assigning a note to a string. In many cases, only one
-note need be manually placed on a string; the rest of
+note need be manually placed on a string; the rest of
the notes will then be placed appropriately by the @code{FretBoards}
context.
@lilypond[quote, verbatim]
<<
\context ChordNames {
- \chordmode {
- c1 d:m
+ \chordmode {
+ c1 d:m
}
}
\context FretBoards {
\clef "treble_8"
< c e g c' e' > 1
< d a d' f'>
- }
+ }
>>
@end lilypond
The strings and frets for the @code{FretBoards} context depend
on the @code{stringTunings} property, which has the same meaning
-as in the TabStaff context. See @ref{Custom tablatures} for
-information on the @code{stringTunings} property.
+as in the TabStaff context. See @ref{Custom tablatures} for
+information on the @code{stringTunings} property.
The graphical layout of a fret diagram can be customized according to
user preference through the properties of the @code{fret-diagram-interface}.
-Details are found at @rinternals{fret-diagram-interface}. For a
-@code{FretBoards} fret diagram, the interface properties belong to
+Details are found at @rinternals{fret-diagram-interface}. For a
+@code{FretBoards} fret diagram, the interface properties belong to
@code{FretBoards.FretBoard}.
@predefined
@funindex rightHandFinger
@funindex \rightHandFinger
-Right-hand fingerings @var{p-i-m-a} must be entered within a
-chord construct @code{<>} for them to be printed in the score,
-even when applied to a single note.
+Right-hand fingerings @var{p-i-m-a} must be entered within a
+chord construct @code{<>} for them to be printed in the score,
+even when applied to a single note.
-@warning{There @strong{must} be a hyphen after the note and a space
+@warning{There @strong{must} be a hyphen after the note and a space
before the closing @code{>}.}
@lilypond[quote,verbatim,relative=0]
\clef "treble_8"
-<c-\rightHandFinger #1 >4
-<e-\rightHandFinger #2 >
-<g-\rightHandFinger #3 >
+<c-\rightHandFinger #1 >4
+<e-\rightHandFinger #2 >
+<g-\rightHandFinger #3 >
<c-\rightHandFinger #4 >
<c,-\rightHandFinger #1 e-\rightHandFinger #2
g-\rightHandFinger #3 c-\rightHandFinger #4 >1
Snippets:
@rlsr{Fretted strings}.
-Internals Reference:
+Internals Reference:
@rinternals{StrokeFinger}.
Most of the notational issues associated with guitar music are
covered sufficiently in the general fretted strings section, but there
-are a few more worth covering here. Occasionally users want to
+are a few more worth covering here. Occasionally users want to
create songbook-type documents having only lyrics with chord
indications above them. Since Lilypond is a music typesetter,
it is not recommended for documents that have no music notation
-in them. A better alternative is a word processor, text editor,
+in them. A better alternative is a word processor, text editor,
or, for experienced users, a typesetter like GuitarTeX.
@menu
-* Indicating position and barring::
-* Indicating harmonics and dampened notes::
+* Indicating position and barring::
+* Indicating harmonics and dampened notes::
@end menu
@node Indicating position and barring
@cindex dampened notes on fretted instruments
@cindex harmonics on fretted instruments
-Special note heads can be used to indicate dampened notes or
-harmonics. Harmonics are normally further explained with a
+Special note heads can be used to indicate dampened notes or
+harmonics. Harmonics are normally further explained with a
text markup.
@lilypond[quote,ragged-right,fragment,verbatim]
@subsection Banjo
@menu
-* Banjo tablatures::
+* Banjo tablatures::
@end menu
@node Banjo tablatures
examples this works well, but for more complex examples, especially
when additional commands are used, the implicit creation of contexts
can give surprising results, maybe creating extra unwanted staves.
-The way to create contexts explicitly is explained in
+The way to create contexts explicitly is explained in
@ref{Contexts and engravers}.
@warning{When entering more than a few lines of music it is
Voice one is set to red diamonds, voice two to blue triangles,
voice three to green crossed circles, and voice four (not used
here) to magenta crosses; @code{\voiceNeutralStyle} (also not
-used here) reverts the style back to the default.
+used here) reverts the style back to the default.
We shall see later how commands like these may be created by the
user.
See @ref{Visibility and color of objects} and
Note the distinction between the name of the context type,
@code{Staff}, @code{Voice}, etc, and the identifying name of a
-particular instance of that type, which can be any sequence of letters
-invented by the user. Digits and spaces can also be used in the
+particular instance of that type, which can be any sequence of letters
+invented by the user. Digits and spaces can also be used in the
identifying name, but then it has to be placed in quotes,
i.e. @code{\new Staff = "MyStaff 1" @var{music-expression}}.
The identifying name is used to
of a particular type, such as all @code{Staff} contexts, with a single
command. The context type is identified by using its
type name, like @code{Staff}, prefixed by a back-slash: @code{\Staff}.
-The statement which sets the property value is the same as that in a
+The statement which sets the property value is the same as that in a
@code{\with} block, introduced above. It is placed in a
@code{\context} block within a @code{\layout} block. Each
@code{\context} block will affect all contexts of the type specified
rather than specific notation.
@menu
-* Input structure::
-* Titles and headers::
-* Working with input files::
-* Controlling output::
-* MIDI output::
+* Input structure::
+* Titles and headers::
+* Working with input files::
+* Controlling output::
+* MIDI output::
@end menu
these files end with @code{.ly}.
@menu
-* Structure of a score::
-* Multiple scores in a book::
-* File structure::
+* Structure of a score::
+* Multiple scores in a book::
+* File structure::
@end menu
some pieces include a lot more information.
@menu
-* Creating titles::
-* Custom titles::
-* Reference to page numbers::
-* Table of contents::
+* Creating titles::
+* Custom titles::
+* Reference to page numbers::
+* Table of contents::
@end menu
@section Working with input files
@menu
-* Including LilyPond files::
-* Different editions from one source::
-* Text encoding::
-* Displaying LilyPond notation::
+* Including LilyPond files::
+* Different editions from one source::
+* Text encoding::
+* Displaying LilyPond notation::
@end menu
structure while leaving the notation untouched.
@menu
-* Using variables::
-* Using tags::
+* Using variables::
+* Using tags::
@end menu
@node Using variables
@section Controlling output
@menu
-* Extracting fragments of music::
-* Skipping corrected music::
+* Extracting fragments of music::
+* Skipping corrected music::
@end menu
@node Extracting fragments of music
(or 14 if you do not use drums). Other staves will remain silent.
@menu
-* Creating MIDI files::
-* MIDI block::
-* What goes into the MIDI output?::
-* Repeats in MIDI::
-* Controlling MIDI dynamics::
-* Percussion in MIDI::
+* Creating MIDI files::
+* MIDI block::
+* What goes into the MIDI output?::
+* Repeats in MIDI::
+* Controlling MIDI dynamics::
+* Percussion in MIDI::
@end menu
@node Creating MIDI files
recommend using the precompiled binaries.
@menu
-* Precompiled binaries::
-* Compiling from source::
+* Precompiled binaries::
+* Compiling from source::
@end menu
@c and remove all stuff (menu, nodes, contents) below this line.
@menu
-* Downloading source code::
-* Requirements::
-* Building LilyPond::
-* Building documentation::
-* Testing LilyPond::
-* Problems::
+* Downloading source code::
+* Requirements::
+* Building LilyPond::
+* Building documentation::
+* Testing LilyPond::
+* Problems::
@end menu
@node Downloading source code
@uref{http://lilypond.org/download/} by HTTP.
@item tarballs from
@uref{http://download.linuxaudio.org/lilypond/} by HTTP.
-@item
+@item
GIT from @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,git.sv.gnu.org}
@example
@item @uref{http://fontforge.sf.net/,FontForge} 20060125 or newer.
-@item @uref{http://metafont.tutorial.free.fr/,MetaFont} (mf-nowin, mf, mfw or
+@item @uref{http://metafont.tutorial.free.fr/,MetaFont} (mf-nowin, mf, mfw or
mfont binaries) and @uref{http://cm.bell-labs.com/who/hobby/MetaPost.html,MetaPost}
(mpost binary), usually packaged with a @LaTeX{} distribution like
tetex or texlive.
@verbatim
export DYLD_LIBRARY_PATH=/sw/lib
-exec /sw/bin/pngtopnm "$@"
+exec /sw/bin/pngtopnm "$@"
@end verbatim
./buildscripts/build-coverage.sh
@emph{# uncovered files, least covered first}
python ./buildscripts/coverage.py --summary out-cov/*.cc
-@emph{# consecutive uncovered lines, longest first}
+@emph{# consecutive uncovered lines, longest first}
python ./buildscripts/coverage.py --uncovered out-cov/*.cc
@end example
Red Hat Fedora
taipeifonts fonts-xorg-truetype ttfonts-ja fonts-arabic \
- ttfonts-zh_CN fonts-ja fonts-hebrew
+ ttfonts-zh_CN fonts-ja fonts-hebrew
Debian GNU/Linux
apt-get install emacs-intl-fonts xfonts-intl-.* \
ttf-kochi-gothic ttf-kochi-mincho \
- xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi
+ xfonts-bolkhov-75dpi xfonts-cronyx-100dpi xfonts-cronyx-75dpi
@end verbatim
documentation.
@menu
-* Background::
-* About the documentation::
+* Background::
+* About the documentation::
@end menu
LilyPond.
@menu
-* Engraving::
-* Automated engraving::
-* What symbols to engrave?::
-* Music representation::
-* Example applications::
+* Engraving::
+* Automated engraving::
+* What symbols to engrave?::
+* Music representation::
+* Example applications::
@end menu
<< {
\revert Stem #'direction
\change Staff = down
- \set subdivideBeams = ##t
+ \set subdivideBeams = ##t
g16.[
\change Staff = up
c'''32
\override Beam #'thickness = #0.3
\override Stem #'thickness = #4.0
g'16[ b16 fis16 g16]
- << \makeClusters {
+ << \makeClusters {
as16 <as b>
<g b>
<g cis>
@cindex @LaTeX{}, music in
@menu
-* An example of a musicological document::
-* Integrating music and text::
-* Music fragment options::
-* Invoking lilypond-book::
-* Filename extensions::
-* Alternate methods of mixing text and music::
+* An example of a musicological document::
+* Integrating music and text::
+* Music fragment options::
+* Invoking lilypond-book::
+* Filename extensions::
+* Alternate methods of mixing text and music::
@end menu
Here we explain how to integrate LilyPond with various output formats.
@menu
-* LaTeX::
-* Texinfo::
-* HTML::
-* DocBook::
+* LaTeX::
+* Texinfo::
+* HTML::
+* DocBook::
@end menu
@node LaTeX
</mediaobject>
@end example
-Note that you can use @code{mediaobject} or @code{inlinemediaobject}
+Note that you can use @code{mediaobject} or @code{inlinemediaobject}
as the outermost element as you wish.
@subheading Including LilyPond code
<programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
\context Staff \with @{
\remove Time_signature_engraver
- \remove Clef_engraver@}
+ \remove Clef_engraver@}
@{ c4( fis) @}
</programlisting>
</textobject>
The width of a tightly clipped system can vary, due to notation
elements that stick into the left margin, such as bar numbers and
-instrument names. This option will shorten each line and move each
+instrument names. This option will shorten each line and move each
line to the right by the same amount.
the automated method with @command{lilypond-book}.
@menu
-* Many quotes from a large score::
-* Inserting LilyPond output into OpenOffice.org::
-* Inserting LilyPond output into other programs::
+* Many quotes from a large score::
+* Inserting LilyPond output into OpenOffice.org::
+* Inserting LilyPond output into other programs::
@end menu
@node Many quotes from a large score
@end ignore
@menu
-* Chord name chart::
-* Common chord modifiers::
-* Predefined fretboard diagrams::
-* MIDI instruments::
-* List of colors::
-* The Feta font::
-* Note head styles::
-* Text markup commands::
+* Chord name chart::
+* Common chord modifiers::
+* Predefined fretboard diagrams::
+* MIDI instruments::
+* List of colors::
+* The Feta font::
+* Note head styles::
+* Text markup commands::
* Text markup list commands::
-* List of articulations::
-* Percussion notes::
-* All context properties::
-* Layout properties::
-* Identifiers::
-* Scheme functions::
+* List of articulations::
+* Percussion notes::
+* All context properties::
+* Layout properties::
+* Identifiers::
+* Scheme functions::
@end menu
@rlearning{Scheme tutorial}.
@menu
-* Music functions::
-* Programmer interfaces::
-* Building complicated functions::
-* Markup programmer interface::
-* Contexts for programmers::
+* Music functions::
+* Programmer interfaces::
+* Building complicated functions::
+* Markup programmer interface::
+* Contexts for programmers::
* Scheme procedures as properties::
-* Using Scheme code instead of \tweak::
+* Using Scheme code instead of \tweak::
* Difficult tweaks::
@end menu
This section discusses how to create music functions within LilyPond.
@menu
-* Overview of music functions::
-* Simple substitution functions::
-* Paired substitution functions::
-* Mathematics in functions::
-* Void functions::
-* Functions without arguments::
-* Overview of available music functions::
+* Overview of music functions::
+* Simple substitution functions::
+* Paired substitution functions::
+* Mathematics in functions::
+* Void functions::
+* Functions without arguments::
+* Overview of available music functions::
@end menu
@node Overview of music functions
and Scheme.
@menu
-* Input variables and Scheme::
-* Internal music representation::
+* Input variables and Scheme::
+* Internal music representation::
@end menu
Stencil object given a number of arguments.
@menu
-* Markup construction in Scheme::
-* How markups work internally::
-* New markup command definition::
-* New markup list command definition::
+* Markup construction in Scheme::
+* How markups work internally::
+* New markup command definition::
+* New markup list command definition::
@end menu
@example
#(define-markup-list-command (paragraph layout props args) (markup-list?)
(let ((indent (chain-assoc-get 'par-indent props 2)))
- (interpret-markup-list layout props
+ (interpret-markup-list layout props
(make-justified-lines-markup-list (cons (make-hspace-markup indent)
args)))))
@end example
@section Contexts for programmers
@menu
-* Context evaluation::
-* Running a function on all layout objects::
+* Context evaluation::
+* Running a function on all layout objects::
@end menu
@node Context evaluation
property is requested during the formatting process.
Most of the typesetting engine is driven by such callbacks.
-Properties that typically use callbacks include
+Properties that typically use callbacks include
@table @code
@item stencil
@item unfold
The repeated music is fully written out, as many times as
specified by @var{repeatcount}. This is useful when
-entering repetitious music.
+entering repetitious music.
@item percent
These are beat or measure repeats. They look like single slashes or
@menu
-* Long repeats::
-* Short repeats::
+* Long repeats::
+* Short repeats::
@end menu
@node Long repeats
Repeat signs can also be controlled manually.
@menu
-* Normal repeats::
-* Manual repeat marks::
-* Written-out repeats::
+* Normal repeats::
+* Manual repeat marks::
+* Written-out repeats::
@end menu
@cindex volta
or
@lilypond[verbatim,quote,relative=2]
-\partial 4
+\partial 4
\repeat volta 4 { e4 | c2 d | e2 f | }
\alternative {
{ \partial 4*3 g4 g g }
represented by slashes or percent signs; and tremolos.
@menu
-* Percent repeats::
-* Tremolo repeats::
+* Percent repeats::
+* Tremolo repeats::
@end menu
@node Percent repeats
@code{\repeat percent @var{number} @var{musicexpr}}
@end example
-where @var{musicexpr} is a music expression.
+where @var{musicexpr} is a music expression.
@lilypond[verbatim,quote,relative=2]
\repeat percent 4 { c4 }
The duration of the tremolo equals the duration of the
braced expression multiplied by the number of repeats:
@code{\repeat tremolo 8 @{ c16 d16 @}} gives a whole note tremolo,
-notated as two whole notes joined by tremolo beams.
+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 is also used here, in which case
@menu
-* Tweaking with Scheme::
+* Tweaking with Scheme::
@end menu
@node Tweaking with Scheme
as a reference: only read a section if it applies to you.
@menu
-* Setup for specific Operating Systems::
-* Text editor support::
-* Point and click::
+* Setup for specific Operating Systems::
+* Text editor support::
+* Point and click::
@end menu
operating systems.
@menu
-* Setup for MacOS X::
+* Setup for MacOS X::
@end menu
@node Setup for MacOS X
There is support from different text editors for LilyPond.
@menu
-* Emacs mode::
-* Vim mode::
-* jEdit::
-* TexShop::
-* TextMate::
-* LilyKDE::
+* Emacs mode::
+* Vim mode::
+* jEdit::
+* TexShop::
+* TextMate::
+* LilyKDE::
@end menu
@node Emacs mode
The @uref{http://@/www@/.uoregon@/.edu/~koch/texshop/index@/.html,TexShop}
editor for MacOS@tie{}X can be extended to run LilyPond, lilypond-book and
-convert-ly from within the editor, using the extensions available at
+convert-ly from within the editor, using the extensions available at
@uref{http://@/www@/.dimi@/.uniud@/.it/vitacolo/freesoftware@/.html}.
@knownissues
-@code{\partcombine} can only accept two voices.
+@code{\partcombine} can only accept two voices.
When @code{printPartCombineTexts} is set, if the two voices play
the same notes on and off, the part combiner may typeset @code{a2}
@cindex fragments
@cindex cue notes
-It is very common for one voice to double the some of the music from
-another voice. For example, the first and second violins may play the
-same notes during a passage of music. In LilyPond this is accomplished
+It is very common for one voice to double the some of the music from
+another voice. For example, the first and second violins may play the
+same notes during a passage of music. In LilyPond this is accomplished
by letting one voice @emph{quote} the other voice without having to
re-enter it.
-
-Before a part can be quoted, the @code{\addQuote} command must be used
-to initialize the quoted fragment. This command must be used in the
-toplevel scope. The first argument is an identifying string, and the
-second is a music expression:
+
+Before a part can be quoted, the @code{\addQuote} command must be used
+to initialize the quoted fragment. This command must be used in the
+toplevel scope. The first argument is an identifying string, and the
+second is a music expression:
@example
flute = \relative c'' @{
@c bad node name for ancient notation to avoid conflict
@menu
-* Single staff::
-* Piano templates::
-* String quartet::
-* Vocal ensembles::
-* Ancient notation templates::
-* Jazz combo::
-* lilypond-book templates::
+* Single staff::
+* Piano templates::
+* String quartet::
+* Vocal ensembles::
+* Ancient notation templates::
+* Jazz combo::
+* lilypond-book templates::
@end menu
and so on.
The fonts of snippets set with LilyPond will have to be set from
-inside
+inside
of the snippet. For this you should read the AU on how to use
lilypond-book.
specific sections: @ref{Vocal music}, @ref{Titles and headers}.
@menu
-* Writing text::
-* Formatting text::
-* Fonts::
+* Writing text::
+* Formatting text::
+* Fonts::
@end menu
@cindex Text, other languages
This section introduces different ways of adding text to a score.
@menu
-* Text scripts::
-* Text spanners::
-* Text marks::
-* Separate text::
+* Text scripts::
+* Text spanners::
+* Text marks::
+* Separate text::
@end menu
@code{\markup} block, as described in @ref{Formatting text}.
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^\markup { \italic pizz. } e f g
+d8^\markup { \italic pizz. } e f g
a4_\markup { \tiny scherz. \bold molto } f
@end lilypond
By default, text indications do not influence the note spacing.
However, their widths can be taken into account:
-in the following example, the first text string does not affect
+in the following example, the first text string does not affect
spacing, whereas the second one does.
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
from one note to another using the following syntax:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-\override TextSpanner #'bound-details #'left #'text = "rit."
-b1\startTextSpan
+\override TextSpanner #'bound-details #'left #'text = "rit."
+b1\startTextSpan
e,\stopTextSpan
@end lilypond
@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
\override TextSpanner #'bound-details #'left #'text =
- \markup { \upright "rit." }
+ \markup { \upright "rit." }
b1\startTextSpan c
e,\stopTextSpan
@end lilypond
@noindent
Such objects are only typeset above the top staff of the score; depending on
-whether they are specified at the end or the middle of a bar, they
+whether they are specified at the end or the middle of a bar, they
can be placed above the bar line or between notes. When specified at a
line break, the mark will be printed at the beginning of the next line.
@noindent
This allows printing text separately
-from the music, which is particularly
+from the music, which is particularly
useful when the input file contains
several music pieces, as described in
@ref{Multiple scores in a book}.
@seealso
Notation Reference: @ref{Formatting text},
-@ref{File structure},
+@ref{File structure},
@ref{Multiple scores in a book},
@ref{Multi-page markup}.
using the @code{\markup} mode specific syntax.
@menu
-* Text markup introduction::
-* Selecting font and font size::
-* Text alignment::
-* Graphic notation inside markup::
-* Music notation inside markup::
-* Multi-page markup::
+* Text markup introduction::
+* Selecting font and font size::
+* Text alignment::
+* Graphic notation inside markup::
+* Music notation inside markup::
+* Multi-page markup::
@end menu
@node Text markup introduction
a2^\markup { poco \italic più forte }
c e1
d2_\markup { \italic "string. assai" }
-e
+e
b1^\markup { \bold { molto \italic agitato } }
c
@end lilypond
Basic font switching is supported in markup mode:
@lilypond[quote,verbatim,relative=2]
-d1^\markup {
- \bold { Più mosso }
- \italic { non troppo \underline Vivo }
+d1^\markup {
+ \bold { Più mosso }
+ \italic { non troppo \underline Vivo }
}
r2 r4 r8
d,_\markup { \italic quasi \smallCaps Tromba }
\fontsize #2 da
\fontsize #3 camera
}
-bes^\markup { (con
+bes^\markup { (con
\larger grande
\smaller emozione
\magnify #0.6 { e sentimento } )
\markup {
\column {
\line { 1 \super st movement }
- \line { 1 \normal-size-super st movement
+ \line { 1 \normal-size-super st movement
\sub { (part two) } }
}
}
point, and therefore is not moved.
@lilypond[quote,verbatim,fragment,relative=1]
-d2^\markup {
+d2^\markup {
Acte I
\raise #2 { Scène 1 }
}
}
}
\markup {
- \fill-line { 1885 }
+ \fill-line { 1885 }
}
@end lilypond
gitanos en el AlbaicÃn de Granada. Al fondo una
puerta por la que se ve el negro interior de
una Fragua, iluminado por los rojos resplandores
- del fuego.)
+ del fuego.)
}
\hspace #0
\markalphabet #8
\markletter #8
}
-@end lilypond
+@end lilypond
More generally, any available musical symbol may be
included separately in a markup object, as demonstrated
This tutorial starts with an introduction to the LilyPond music
language and explains how to produce printed music. After this first
-contact we will explain how to create beautiful printed music
+contact we will explain how to create beautiful printed music
containing common musical notation.
@menu
-* First steps::
-* Single staff notation::
-* Multiple notes at once::
-* Songs::
-* Final touches::
+* First steps::
+* Single staff notation::
+* Multiple notes at once::
+* Songs::
+* Final touches::
@end menu
This section gives a basic introduction to working with LilyPond.
@menu
-* Compiling a file::
-* Simple notation::
+* Compiling a file::
+* Simple notation::
* Working on input files::
* How to read the manual::
@end menu
on one staff.
@menu
-* Accidentals and key signatures::
-* Ties and slurs::
-* Articulation and dynamics::
-* Adding text::
-* Automatic and manual beams::
-* Advanced rhythmic commands::
+* Accidentals and key signatures::
+* Ties and slurs::
+* Articulation and dynamics::
+* Adding text::
+* Automatic and manual beams::
+* Advanced rhythmic commands::
@end menu
note an @notation{extender line} is usually drawn from the
syllable extending under all the notes for that syllable. It is
entered as two underscores @code{__}. Here is an example from the
-first three bars of @notation{Dido's Lament}, from Purcell's
+first three bars of @notation{Dido's Lament}, from Purcell's
@notation{Dido and Æneas}:
@lilypond[verbatim,quote]
If you have not done so already, @emph{please} read @ref{About the
documentation}. There is a lot of information about LilyPond, so
newcomers often do not know where they should look for help. If
-you spend five minutes reading that section carefully, you might
+you spend five minutes reading that section carefully, you might
save yourself hours of frustration looking in the wrong places!
@menu
-* Tweaking basics::
-* The Internals Reference manual::
-* Appearance of objects::
-* Placement of objects::
-* Collisions of objects::
-* Further tweaking::
+* Tweaking basics::
+* The Internals Reference manual::
+* Appearance of objects::
+* Placement of objects::
+* Collisions of objects::
+* Further tweaking::
@end menu
@node Tweaking basics
@section Tweaking basics
@menu
-* Introduction to tweaks::
-* Objects and interfaces::
-* Naming conventions of objects and properties::
-* Tweaking methods::
+* Introduction to tweaks::
+* Objects and interfaces::
+* Naming conventions of objects and properties::
+* Tweaking methods::
@end menu
@node Introduction to tweaks
@q{Tweaking} is a LilyPond term for the various methods available
to the user for modifying the actions taken during interpretation
-of the input file and modifying the appearance of the printed
-output. Some tweaks are very easy to use; others are more
-complex. But taken together the methods available for tweaking
-permit almost any desired appearance of the printed music to be
+of the input file and modifying the appearance of the printed
+output. Some tweaks are very easy to use; others are more
+complex. But taken together the methods available for tweaking
+permit almost any desired appearance of the printed music to be
achieved.
In this section we cover the basic concepts required to understand
tweaking. Later we give a variety of ready-made commands which can
simply be copied to obtain the same effect in your own scores, and
-at the same time we show how these commands may be constructed so
+at the same time we show how these commands may be constructed so
that you may learn how to develop your own tweaks.
Before starting on this Chapter you may wish to review the section
Tweaking involves modifying the internal operation and structures
of the LilyPond program, so we must first introduce some terms
-which are used to describe those internal operations and
+which are used to describe those internal operations and
structures.
The term @q{Object} is a generic term used to refer to the
100 such interfaces. We shall see later why this is of interest and
use to the user.
-These, then, are the main terms relating to objects which we
+These, then, are the main terms relating to objects which we
shall use in this chapter.
@node Naming conventions of objects and properties
@cindex objects, naming conventions
@cindex properties, naming conventions
-We met some object naming conventions previously, in
+We met some object naming conventions previously, in
@ref{Contexts and engravers}. Here for reference is a list
-of the most common object and property types together with
-the conventions for naming them and a couple of examples of
+of the most common object and property types together with
+the conventions for naming them and a couple of examples of
some real names. We have used @q{A} to stand for any capitalized
alphabetic character and @q{aaa} to stand for any number of
lower-case alphabetic characters. Other characters are used
-verbatim.
+verbatim.
@multitable @columnfractions .33 .33 .33
-@headitem Object/property type
+@headitem Object/property type
@tab Naming convention
@tab Examples
@item Contexts
@tab Clef_engraver, Note_heads_engraver
@item Interfaces
@tab aaa-aaa-interface
- @tab grob-interface, break-aligned-interface
+ @tab grob-interface, break-aligned-interface
@item Context Properties
@tab aaa or aaaAaaaAaaa
@tab alignAboveContext, skipBars
@tab direction, beam-thickness
@end multitable
-As we shall see shortly, the properties of different types of
+As we shall see shortly, the properties of different types of
object are modified by different commands, so it is useful to
be able to recognize the type of object from the names of its
properties.
@funindex TupletBracket
-The @code{\tweak} command must also be used to change the
-appearance of one of a set of nested tuplets which begin at the
+The @code{\tweak} command must also be used to change the
+appearance of one of a set of nested tuplets which begin at the
same musical moment. In the following example, the long tuplet
bracket and the first of the three short brackets begin at the
same musical moment, so any @code{\override} command would apply
@cindex Internals Reference
@menu
-* Properties of layout objects::
-* Properties found in interfaces::
-* Types of properties::
+* Properties of layout objects::
+* Properties found in interfaces::
+* Types of properties::
@end menu
@node Properties of layout objects
earlier about the flexibility of LilyPond that such a thing
should be possible, and you would probably guess that an
@code{\override} command would be needed. But is there a
-heaviness property for a slur, and if there is, how might it
+heaviness property for a slur, and if there is, how might it
be modified? This is where the Internals Reference manual
comes in. It contains all the information you might need to
construct this and all other @code{\override} commands.
Under the heading @strong{Top} you will see five links. Select
the link to the @emph{Backend}, which is where information about
-layout objects is to be found. There, under the heading
+layout objects is to be found. There, under the heading
@strong{Backend}, select the link to @emph{All layout objects}.
The page that appears lists all the layout objects used in your
version of LilyPond, in alphabetic order. Select the link to
As we said earlier, there are few to no explanations in the IR,
but we already have enough information to try changing the
-slur thickness. We see that the name of the layout object
+slur thickness. We see that the name of the layout object
is @code{Slur}, that the name of the property to change is
@code{thickness} and that the new value should be a number
somewhat larger than 1.2 if we are to make slurs thicker.
We can now construct the @code{\override} command by simply
substituting the values we have found for the names, omitting
-the context. Let's use a very large value for the thickness
+the context. Let's use a very large value for the thickness
at first, so we can be sure the command is working. We get:
@example
\override Slur #'thickness = #5.0
-@end example
+@end example
Don't forget the @code{#'} preceding the
property name and and @code{#} preceding the new value!
The final question is, @q{Where should this command be
-placed?} While you are unsure and learning, the best
+placed?} While you are unsure and learning, the best
answer is, @q{Within the music, before the first slur and
close to it.} Let's do that:
The man who feels love's sweet e -- mo -- tion
}
}
-@end lilypond
+@end lilypond
@noindent
and we see that the slur is indeed heavier.
@cindex context, finding
@cindex context, identifying correct
-But first, what if we had needed to specify the Context?
+But first, what if we had needed to specify the Context?
What should it be? We could guess that slurs are in
the Voice context, as they are clearly closely associated
with individual lines of music, but can we be sure? To
us that @code{Slur_engraver} is part of five Voice contexts,
including the standard voice context, @code{Voice}, so our
guess was correct. And because @code{Voice} is one of the
-lowest level contexts which is implied unambiguously by
-the fact that we are entering notes, we can omit it in this
+lowest level contexts which is implied unambiguously by
+the fact that we are entering notes, we can omit it in this
location.
@subheading Overriding once only
The man who feels love's sweet e -- mo -- tion
}
}
-@end lilypond
+@end lilypond
@noindent
Now only the first slur is made heavier.
The man who feels love's sweet e -- mo -- tion
}
}
-@end lilypond
+@end lilypond
@noindent
or we could omit the @code{\once} command and use the @code{\revert}
That concludes our introduction to the IR, and the basic
method of tweaking. Several examples follow in the later
sections of this Chapter, partly to introduce you to some of the
-additional features of the IR, and partly to give you more
+additional features of the IR, and partly to give you more
practice in extracting information from it. These examples will
-contain progressively fewer words of guidance and explanation.
+contain progressively fewer words of guidance and explanation.
@node Properties found in interfaces
@cindex context, specifying in lyric mode
@cindex lyric mode, specifying context
-In the case of lyrics, if you try specifying the context in the
+In the case of lyrics, if you try specifying the context in the
format given earlier the command will fail. A syllable
entered in lyricmode is terminated by either a space,
-a newline or a digit. All other characters are included
+a newline or a digit. All other characters are included
as part of the syllable. For this reason a space or newline
must appear before the terminating @code{@}} to prevent it being
included as part of the final syllable. Similarly,
@code{symbol}. To be valid, the value given to a property
must be of the correct type and obey the rules for that type.
The type of property is always shown in brackets after the
-property name in the IR. Here is a list of the types you may
+property name in the IR. Here is a list of the types you may
need, together with the rules for that type, and some examples.
You must always add a hash symbol, @code{#}, of course,
-to the front of these values when they are entered in the
+to the front of these values when they are entered in the
@code{\override} command.
@multitable @columnfractions .2 .45 .35
-@headitem Property type
+@headitem Property type
@tab Rules
@tab Examples
@item Boolean
@tab Any valid markup
@tab @code{\markup @{ \italic "cresc." @}}
@item Moment
- @tab A fraction of a whole note constructed with the
+ @tab A fraction of a whole note constructed with the
make-moment function
@tab @code{(ly:make-moment 1 4)},
@code{(ly:make-moment 3 8)}
@section Appearance of objects
Let us now put what we have learned into practice with a few
-examples which show how tweaks may be used to change the
+examples which show how tweaks may be used to change the
appearance of the printed music.
@menu
-* Visibility and color of objects::
-* Size of objects::
-* Length and thickness of objects::
+* Visibility and color of objects::
+* Size of objects::
+* Length and thickness of objects::
@end menu
@node Visibility and color of objects
In the educational use of music we might wish to print a score
with certain elements omitted as an exercise for the student,
who is required to supply them. As a simple example,
-let us suppose the exercise is to supply the missing bar lines
+let us suppose the exercise is to supply the missing bar lines
in a piece of music. But the bar lines are normally inserted
automatically. How do we prevent them printing?
This property controls the appearance of the bar lines by specifying
the symbol (glyph) which should be printed. In common
-with many other properties, it can be set to print nothing by
+with many other properties, it can be set to print nothing by
setting its value to @code{#f}. Let's try it, as before, omitting
the implied Context, @code{Voice}:
engraver is placed. The default context for engravers can be
found by starting from the layout object, going from there to
the engraver which produces it, and on the engraver page in the
-IR it tells you in which context the engraver will normally be
-found.
+IR it tells you in which context the engraver will normally be
+found.
@node Size of objects
@cindex objects, size of
@cindex objects, changing size of
-Let us begin by looking again at the earlier example
+Let us begin by looking again at the earlier example
see @ref{Nesting music expressions}) which showed
how to introduce a new temporary staff, as in an @rglos{ossia}.
@cindex objects, outside-staff
There are some objects in musical notation that belong to
-the staff and there are other objects that should be
+the staff and there are other objects that should be
placed outside the staff. These are called within-staff
objects and outside-staff objects respectively.
Within-staff objects are those that are located on the staff
-- note heads, stems, accidentals, etc. The positions of
these are usually fixed by the music itself -- they are
-vertically positioned on specific lines of the staff or are
+vertically positioned on specific lines of the staff or are
tied to other objects that are so positioned. Collisions of
note heads, stems and accidentals in closely set chords are
normally avoided automatically. There are commands and
\relative c'''' { c a, }
}
>>
-@end lilypond
+@end lilypond
@node Within-staff objects
@subsection Within-staff objects
We have already seen how the commands @code{\voiceXXX} affect
-the direction of slurs, ties, fingering and
+the direction of slurs, ties, fingering and
everything else which depends on the direction of the stems.
These commands are essential when writing polyphonic music to
permit interweaving melodic lines to be distinguished.
ready-made commands which avoid your having to code explicit
overrides for the more common modifications.
-Some layout objects like slurs and ties curve, bend or point
+Some layout objects like slurs and ties curve, bend or point
either up or down; others like stems and flags also move to
right or left when they point up or down. This is controlled
automatically when @code{direction} is set.
preceded by @code{\once}. If you wish to limit the
effect to a single note you must either use the equivalent
@code{\once \override} command or use the predefined command
-followed after the affected note by the corresponding
+followed after the affected note by the corresponding
@code{\xxxNeutral} command.
@subheading Fingering
@code{Staff} or @code{Voice} contexts.
@multitable @columnfractions .3 .3 .3
-@headitem Layout Object
- @tab Priority
+@headitem Layout Object
+ @tab Priority
@tab Controls position of:
@item @code{MultiMeasureRestText}
@tab @code{450}
c^"Text2"
c^"Text3"
c^"Text4"
-@end lilypond
+@end lilypond
-The command to revert to the default behavior is
+The command to revert to the default behavior is
@code{\textLengthOff}. Remember @code{\once} only works with
@code{\override}, @code{\set}, @code{\revert} or @code{unset},
so cannot be used with @code{\textLengthOn}.
However, if the notes and attached dynamics are close
together the automatic placement will avoid collisions
-by displacing later dynamic markings further away, but this may
+by displacing later dynamic markings further away, but this may
not be the optimum placement, as this rather artificial example
shows:
@cindex sizing grobs
First we must learn how grobs are sized. All grobs have a
-reference point defined within them which is used to position
+reference point defined within them which is used to position
them relative to their parent object. This point in the grob
is then positioned at a horizontal distance, @code{X-offset},
and at a vertical distance, @code{Y-offset}, from its parent.
numbers, @code{X-extent}, which say where the left and right
edges are relative to the reference point. The vertical extent
is similarly defined by a pair of numbers, @code{Y-extent}.
-These are properties of all grobs which support the
+These are properties of all grobs which support the
@code{grob-interface}.
@cindex @code{extra-spacing-width}
By default, outside-staff objects are given a width of zero so
that they may overlap in the horizontal direction. This is done
-by the trick of adding infinity to the leftmost extent and
-minus infinity to the rightmost extent by setting the
+by the trick of adding infinity to the leftmost extent and
+minus infinity to the rightmost extent by setting the
@code{extra-spacing-width} to @code{'(+inf.0 . -inf.0)}. So
to ensure they do not overlap in the horizontal direction we
must override this value of @code{extra-spacing-width} to
@section Collisions of objects
@menu
-* Moving objects::
-* Fixing overlapping notation::
-* Real music example::
+* Moving objects::
+* Fixing overlapping notation::
+* Real music example::
@end menu
@node Moving objects
@cindex self-alignment-X property
This property can be used to align the object to the left, to
-the right, or to center it with respect to the parent object's
+the right, or to center it with respect to the parent object's
reference point. It may be used with all objects which support
the @code{self-alignment-interface}. In general these are objects
that contain text. The values are @code{LEFT}, @code{RIGHT}
-or @code{CENTER}. Alternatively, a numerical value between
-@code{-1} and @code{+1} may be specified, where @code{-1} is
-left-aligned, @code{+1} is right-aligned, and numbers in between
+or @code{CENTER}. Alternatively, a numerical value between
+@code{-1} and @code{+1} may be specified, where @code{-1} is
+left-aligned, @code{+1} is right-aligned, and numbers in between
move the text progressively from left-aligned to right-aligned.
Numerical values greater than @code{1} may be specified to move
the text even further to the left, or less than @code{-1} to
This necessarily uses an override for the accidental stencil which
will not be covered until later. The stencil type must be a
procedure, here changed to print the contents of the @code{text}
-property of @code{Accidental}, which itself is set to be a natural
-sign followed by a flat sign. These are then moved further away
+property of @code{Accidental}, which itself is set to be a natural
+sign followed by a flat sign. These are then moved further away
from the note head by overriding @code{right-padding}.
@noindent
* Using variables for tweaks::
* Other sources of information::
* Avoiding tweaks with slower processing::
-* Advanced tweaks with Scheme::
+* Advanced tweaks with Scheme::
@end menu
@node Other uses for tweaks
@noindent
Both methods remove the metronome mark which lengthens the fermata
-from the printed output, and both affect the MIDI timing as
+from the printed output, and both affect the MIDI timing as
required, but the transparent metronome mark in the first line
forces the following tempo indication too high while the
second (with the stencil removed) does not.
them in bold italics. The @code{\italic} and @code{\bold}
commands only work within lyrics if they are also embedded in
@code{\markup}, which makes them tedious to enter, so as an
-alternative can we instead use the @code{\override} and
+alternative can we instead use the @code{\override} and
@code{\revert} commands?
@example
by downloading a precompiled binary from lilypond.org
or whether you installed it from a package manager (i.e.
distributed with Linux, or installed under fink or cygwin) or
-compiled it from source, and (b) on which operating system it is
+compiled it from source, and (b) on which operating system it is
being used:
@strong{Downloaded from lilypond.org}
string on a violin might be indicated:
@lilypond[verbatim,quote,relative=2]
-a4 \open
-a^\markup { \teeny "II" }
+a4 \open
+a^\markup { \teeny "II" }
a2^\markup { \small "sul A" }
@end lilypond
@c FIXME: this section is to be rewritten.
Since LilyPond input files are text, there is at least one
-issue to consider when working with vocal music:
+issue to consider when working with vocal music:
song texts must be interpreted as text, not notes. For example, the
input@tie{}@code{d} should be interpreted as a one letter syllable,
not the note@tie{}D.
c4 b8. a16 g4. f8 e4 d c2
}
-% not recommended: left aligns syllables
+% not recommended: left aligns syllables
\new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
% wrong: durations needed
@unnumberedsubsubsec 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},
+inserting @code{\skip}s into the lyrics. For every @code{\skip},
the text will be delayed another note. The @code{\skip} command
must be followed by a valid duration, but this is ignored when
@code{\skip} is used in lyrics.
These numbers are put just before the start of the first syllable.
@c TODO Create and add snippet to show how two lines of a
-@c stanza can be grouped together, along these lines:
+@c stanza can be grouped together, along these lines:
@c (might need improving a bit) -td
@ignore
}
\new Voice {
- \repeat volta 2 { c'8 c' c' c' c' c' c'4
- c'8 c' c' c' c' c' c'4 }
+ \repeat volta 2 { c'8 c' c' c' c' c' c'4
+ c'8 c' c' c' c' c' c'4 }
} \addlyrics { \stanzaOneOne }
\addlyrics { \stanzaOneThree }
melody = \relative c' {
c c c c | d d d d
}
-
+
text = \lyricmode {
\set stanza = "1." This is verse one.
It has two lines.
\markup {
\fill-line {
- \hspace #0.1 % moves the column off the left margin;
+ \hspace #0.1 % moves the column off the left margin;
% can be removed if space on the page is tight
\column {
\line { \bold "2."
}
}
}
- \hspace #0.1 % adds horizontal spacing between columns;
- % if they are still too close, add more " " pairs
+ \hspace #0.1 % adds horizontal spacing between columns;
+ % if they are still too close, add more " " pairs
% until the result looks good
\column {
\line { \bold "4."
}
}
}
- \hspace #0.1 % gives some extra space on the right margin;
+ \hspace #0.1 % gives some extra space on the right margin;
% can be removed if page space is tight
}
}
@menu
-* Suggestions for writing LilyPond input files::
-* When things don't work::
-* Scores and parts::
+* Suggestions for writing LilyPond input files::
+* When things don't work::
+* Scores and parts::
@end menu
@node Suggestions for writing LilyPond input files
@section Suggestions for writing LilyPond input files
-Now you're ready to begin writing larger LilyPond input files --
+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?
@end itemize
@menu
-* General suggestions::
-* Typesetting existing music::
-* Large projects::
-* Saving typing with variables and functions::
-* Style sheets::
+* General suggestions::
+* Typesetting existing music::
+* Large projects::
+* Saving typing with variables and functions::
+* Style sheets::
@end menu
per line. Saving screen space by cramming eight bars per line just isn't
worth it if you have to @q{debug} your input files.
-@item @strong{Comment your input files}. Use either bar numbers
+@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
@section When things don't work
@menu
-* Updating old input files::
-* Troubleshooting (taking it all apart)::
-* Minimal examples::
+* Updating old input files::
+* Troubleshooting (taking it all apart)::
+* Minimal examples::
@end menu
@node Updating old input files
@section World music
The purpose of this section is to highlight musical notation issues
-that are relevant to traditions outside the Western tradition.
+that are relevant to traditions outside the Western tradition.
@menu
-* Arabic music::
+* Arabic music::
@end menu
@node Arabic music
music.
@menu
-* References for Arabic music::
-* Arabic note names ::
-* Arabic key signatures::
-* Arabic time signatures::
-* Arabic music example::
-* Further reading::
+* References for Arabic music::
+* Arabic note names ::
+* Arabic key signatures::
+* Arabic time signatures::
+* Arabic music example::
+* Further reading::
@end menu
-
+
@node References for Arabic music
-@unnumberedsubsubsec References for Arabic music
+@unnumberedsubsubsec References for Arabic music
@cindex Arabic music
-@cindex medium intervals
-@cindex maqam
+@cindex medium intervals
+@cindex maqam
@cindex maqams
Arabic music so far has been mainly an oral tradition. When music
is transcribed, it is usually in a sketch format, on which
performers are expected to improvise significantly. Increasingly,
Western notation, with a few variations, is adopted in order to
-communicate and preserve Arabic music.
+communicate and preserve Arabic music.
Some elements of Western musical notation such as the
transcription of chords or independent parts, are not required to
addition to the minor and major intervals that are used in Western
music. There is also the need to group and indicate a large
number of different maqams (modes) that are part of Arabic music.
-
+
In general, Arabic music notation does not attempt to precisely
indicate microtonal elements that are present in musical practice.
-Several issues that are relevant to Arabic music are covered
-elsewhere:
+Several issues that are relevant to Arabic music are covered
+elsewhere:
@itemize
@item Note names and accidentals (including quarter tones) can be
in @ref{Key signature}.
@item Complex time signatures may require that notes be grouped
-manually as described in @ref{Manual beams}.
+manually as described in @ref{Manual beams}.
-@item @notation{Takasim} which are rhythmically free
-improvisations may be written down omitting bar lines as
-described in @ref{Unmetered music}.
+@item @notation{Takasim} which are rhythmically free
+improvisations may be written down omitting bar lines as
+described in @ref{Unmetered music}.
-@end itemize
+@end itemize
@seealso
Notation Reference:
-@ref{Note names in other languages},
+@ref{Note names in other languages},
@ref{Key signature},
@ref{Manual beams}.
Snippets:
@rlsr{World music}.
-
-@node Arabic note names
-@unnumberedsubsubsec Arabic note names
+@node Arabic note names
+@unnumberedsubsubsec Arabic note names
-@cindex Arabic note names
+
+@cindex Arabic note names
The more traditional Arabic note names can be quite long and are
not suitable for the purpose of music writing, so they are not
used. English note names are not very familiar in Arabic music
education, so Italian or Solfege note names (@code{do, re, mi, fa,
sol, la, si}) are used instead. Modifiers (accidentals) can also
-be used, as discussed in @ref{Note names in other languages}.
+be used, as discussed in @ref{Note names in other languages}.
For example, this is how the Arabic @notation{rast} scale can be
notated:
-@lilypond[quote,verbatim]
+@lilypond[quote,verbatim]
\include "arabic.ly"
-\relative do' {
- do re misb fa sol la sisb do sisb la sol fa misb re do
+\relative do' {
+ do re misb fa sol la sisb do sisb la sol fa misb re do
}
@end lilypond
-@cindex Arabic semi-flat symbol
+@cindex Arabic semi-flat symbol
@cindex Semi-flat symbol appearance
The symbol for semi-flat does not match the symbol which is used
@code{arabic.ly} may be used preceding a flat symbol as a work
around if it is important to use the specific Arabic semi-flat
symbol. The appearance of the semi-flat symbol in the key
-signature cannot be altered by using this method.
+signature cannot be altered by using this method.
-@lilypond[quote,verbatim]
+@lilypond[quote,verbatim]
\include "arabic.ly"
-\relative do' {
- \set Staff.extraNatural = ##f
+\relative do' {
+ \set Staff.extraNatural = ##f
dod dob dosd \dwn dob dobsb dodsd do do
}
@end lilypond
-@seealso
+@seealso
-Notation Reference:
+Notation Reference:
@ref{Note names in other languages}.
Snippets:
@node Arabic key signatures
-@unnumberedsubsubsec Arabic key signatures
+@unnumberedsubsubsec Arabic key signatures
@cindex Arabic key signatures
@notation{rast}, @notation{sikah}, @notation{iraq}, and
@notation{kurd}. These key signatures define a small number of
maqam groups rather than the large number of maqams that are in
-common use.
+common use.
-In general, a maqam uses the key signature of its group, or a
-neighbouring group, and varying accidentals are marked throughout
+In general, a maqam uses the key signature of its group, or a
+neighbouring group, and varying accidentals are marked throughout
the music.
-For example to indicate the key signature of a maqam muhayer piece:
+For example to indicate the key signature of a maqam muhayer piece:
@example
-\key re \bayati
+\key re \bayati
@end example
Here @var{re} is the default pitch of the muhayer maqam, and
-@var{bayati} is the name of the base maqam in the group.
+@var{bayati} is the name of the base maqam in the group.
While the key signature indicates the group, it is common for the
title to indicate the more specific maqam, so in this example, the
way. These are all variations of the base and most common maqam
in the group, which is bayati. They usually differ from the base
maqam in their upper tetrachords, or certain flow details that
-don't change their fundamental nature, as siblings.
+don't change their fundamental nature, as siblings.
The other maqam in the same group (Nawa) is related to bayati by
modulation which is indicated in the table in parenthesis for
those maqams that are modulations of their base maqam. Arabic
maqams admit of only limited modulations, due to the nature of
-Arabic musical instruments. Nawa can be indicated as follows:
+Arabic musical instruments. Nawa can be indicated as follows:
@example
\key sol \bayati
In Arabic music, the same term such as bayati that is used to
indicate a maqam group, is also a maqam which is usually the most
important in the group, and can also be thought of as a base
-maqam.
+maqam.
Here is one suggested grouping that maps the more common maqams to
-key signatures:
+key signatures:
@multitable @columnfractions 0.1 0.1 0.1 0.6
-@headitem maqam group
- @tab key
- @tab finalis
- @tab Other maqmas in group (finalis)
-@item ajam
- @tab major
- @tab sib
+@headitem maqam group
+ @tab key
+ @tab finalis
+ @tab Other maqmas in group (finalis)
+@item ajam
+ @tab major
+ @tab sib
@tab jaharka (fa)
-@item bayati
+@item bayati
@tab bayati
@tab re
- @tab hussaini, muhayer, saba, ushaq, nawa (sol)
-@item hijaz
+ @tab hussaini, muhayer, saba, ushaq, nawa (sol)
+@item hijaz
@tab kurd
- @tab re
+ @tab re
@tab shahnaz, shad arban (sol), hijazkar (do)
-@item iraq
+@item iraq
@tab iraq
@tab sisb
- @tab -
-@item kurd
+ @tab -
+@item kurd
@tab kurd
@tab re
- @tab hijazkar kurd (do)
-@item nahawand
+ @tab hijazkar kurd (do)
+@item nahawand
@tab minor
- @tab do
+ @tab do
@tab busalik (re), farah faza (sol)
-@item nakriz
+@item nakriz
@tab minor
- @tab do
+ @tab do
@tab nawa athar, hisar (re)
-@item rast
+@item rast
@tab rast
@tab do
@tab mahur, yakah (sol)
-@item sikah
+@item sikah
@tab sikah
@tab misb
- @tab huzam
-@end multitable
+ @tab huzam
+@end multitable
@snippets
@seealso
-Notation Reference:
+Notation Reference:
@ref{Key signature}.
-
+
Learning Manual:
@rlearning{Accidentals and key signatures}.
@rinternals{KeySignature}.
Snippets:
-@rlsr{World music},
+@rlsr{World music},
@rlsr{Pitches}.
@node Arabic time signatures
-@unnumberedsubsubsec Arabic time signatures
+@unnumberedsubsubsec Arabic time signatures
@cindex Arabic time signatures
-@cindex Semai form
-@cindex taqasim
+@cindex Semai form
+@cindex taqasim
Some Arabic and Turkish music classical forms such as
@notation{Semai} use unusual time signatures such as 10/8. This
@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
{arabic-improvisation.ly}
-@seealso
+@seealso
Notation Reference:
@ref{Manual beams},
@ref{Automatic beams},
-@ref{Unmetered music},
-@ref{Automatic accidentals},
-@ref{Setting automatic beam behavior},
-@ref{Time signature}.
+@ref{Unmetered music},
+@ref{Automatic accidentals},
+@ref{Setting automatic beam behavior},
+@ref{Time signature}.
Snippets:
@rlsr{World music}.
@node Arabic music example
-@unnumberedsubsubsec Arabic music example
+@unnumberedsubsubsec Arabic music example
-@cindex Arabic music example
+@cindex Arabic music example
@cindex Arabic music template
-@cindex Template Arabic music
+@cindex Template Arabic music
Here is a template that also uses the start of a Turkish Semai
that is familiar in Arabic music education in order to illustrate
some of the peculiarities of Arabic music notation, such as medium
-intervals and unusual modes that are discussed in this section.
+intervals and unusual modes that are discussed in this section.
-@lilypond[quote,verbatim]
+@lilypond[quote,verbatim]
\include "arabic.ly"
\score {
\relative re' {
\set Staff.extraNatural = ##f
\set Staff.autoBeaming = ##f
- \key re \bayati
+ \key re \bayati
\time 10/8
-
- re4 re'8 re16 [misb re do] sisb [la sisb do] re4 r8
- re16 [misb do re] sisb [do] la [sisb sol8] la [sisb] do [re] misb
- fa4 fa16 [misb] misb8. [re16] re8 [misb] re [do] sisb
- do4 sisb8 misb16 [re do sisb] la [do sisb la] la4 r8
+
+ re4 re'8 re16 [misb re do] sisb [la sisb do] re4 r8
+ re16 [misb do re] sisb [do] la [sisb sol8] la [sisb] do [re] misb
+ fa4 fa16 [misb] misb8. [re16] re8 [misb] re [do] sisb
+ do4 sisb8 misb16 [re do sisb] la [do sisb la] la4 r8
}
\header {
title = "Semai Muhayer"
@seealso
Snippets:
-@rlsr{World music}
+@rlsr{World music}
@enumerate
-@item
-The music of the Arabs by Habib Hassan Touma [Amadeus Press, 1996],
+@item
+The music of the Arabs by Habib Hassan Touma [Amadeus Press, 1996],
contains a discussion of maqams and their method of groupings.
-There are also various web sites that explain maqams and some
+There are also various web sites that explain maqams and some
provide audio examples such as :
-@itemize @bullet
-@item
+@itemize @bullet
+@item
@uref{http://www.maqamworld.com/}
-@item
+@item
@uref{http://www.turath.org/}
-@end itemize
+@end itemize
-There are some variations in the details of how maqams are grouped,
-despite agreement on the criteria of grouping maqams that are
-related through common lower tetra chords, or through modulation.
+There are some variations in the details of how maqams are grouped,
+despite agreement on the criteria of grouping maqams that are
+related through common lower tetra chords, or through modulation.
-@item
-There is not a complete consistency, sometimes even in the same
-text on how key signatures for particular maqams should be
-specified. It is common, however, to use a key signature per
-group, rather than a different key signature for each different
+@item
+There is not a complete consistency, sometimes even in the same
+text on how key signatures for particular maqams should be
+specified. It is common, however, to use a key signature per
+group, rather than a different key signature for each different
maqam.
-
-Oud methods by the following authors, contain examples of
-mainly Turkish and Arabic compositions.
+
+Oud methods by the following authors, contain examples of
+mainly Turkish and Arabic compositions.
@itemize @bullet
-@item
+@item
Charbel Rouhana
-@item
+@item
George Farah
-@item
+@item
Ibrahim Ali Darwish Al-masri
@end itemize
@end enumerate