@cindex selecting font size (notation)
@cindex notation font size
@cindex note heads
+
@funindex fontSize
@funindex font-size
@funindex magstep
@cindex standard font size (notation)
@cindex font size (notation), standard
+
@funindex font-interface
@funindex font-size
@predefined
-@funindex \teeny
@code{\teeny},
-@funindex \tiny
@code{\tiny},
-@funindex \small
@code{\small},
-@funindex \normalsize
@code{\normalsize},
-@funindex \large
@code{\large},
-@funindex \huge
@code{\huge}.
@endpredefined
@cindex fingering
@cindex finger change
+
@funindex \finger
@funindex finger
@end lilypond
@cindex thumb-script
+
@funindex \thumb
@funindex thumb
@cindex notes, hidden
@cindex notes, invisible
@cindex notes, transparent
+
@funindex \hideNotes
@funindex hideNotes
@funindex \unHideNotes
@unnumberedsubsubsec Coloring objects
@cindex colored objects
+@cindex objects, colored
@cindex colors
@cindex coloring objects
@cindex colored notes
@cindex x11 color
@cindex x11-color
@cindex with-color
+
@funindex color
@funindex \with-color
@funindex with-color
@cindex rgb-color
@cindex color, rgb
@cindex rgb color
+
@funindex rgb-color
Exact RGB colors can be specified using the Scheme function
@cindex colored notes in chords
@cindex notes, colored in chords
@cindex color in chords
+
@funindex x11-color
@knownissues
@cindex notes, ghost
@cindex notes, parenthesized
@cindex parentheses
+
@funindex \parenthesize
@funindex parenthesize
@cindex stem, invisible
@cindex invisible stem
+@funindex \stemUp
+@funindex stemUp
+@funindex \stemDown
+@funindex stemDown
+@funindex \stemNeutral
+@funindex stemNeutral
+
Whenever a note is found, a @code{Stem} object is created
automatically. For whole notes and rests, they are also created but
made invisible.
@predefined
-@funindex \stemUp
@code{\stemUp},
-@funindex \stemDown
@code{\stemDown},
-@funindex \stemNeutral
@code{\stemNeutral}.
@endpredefined
@cindex notation, explaining
@cindex balloon help
@cindex help, balloon
+
@funindex \balloonGrobText
@funindex \balloonText
@funindex Balloon_engraver
@funindex balloonGrobText
@funindex balloonText
+@funindex \balloonLengthOn
+@funindex balloonLengthOn
+@funindex \balloonLengthOff
+@funindex balloonLengthOff
Elements of notation can be marked and named with the help of a
square balloon. The primary purpose of this feature is to explain
@predefined
-@funindex balloonLengthOn
-@funindex \balloonLengthOn
@code{\balloonLengthOn},
-@funindex \balloonLengthOff
-@funindex balloonLengthOff
@code{\balloonLengthOff}.
@endpredefined
@cindex lines, grid
@cindex vertical lines between staves
@cindex lines, vertical between staves
+
@funindex Grid_point_engraver
@funindex Grid_line_span_engraver
@funindex gridInterval
@cindex bracket, phrasing
@cindex phrasing bracket
@cindex musicological analysis
+@cindex analysis, musicological
@cindex note grouping bracket
@cindex horizontal bracket
@cindex bracket, horizontal
+
@funindex Horizontal_bracket_engraver
@funindex \startGroup
@funindex startGroup
f2 e
@end example
+@noindent
+If you would like to translate comments and variable names in verbatim
+output but not in the sources, you may set the environment variable
+@code{LYDOC_LOCALEDIR} to a directory path; the directory should
+contain a tree of @file{.mo} message catalogs with @code{lilypond-doc}
+as a domain.
+
@item addversion
(Only for Texinfo output.) Prepend line @code{\version
@@w@{"@@version@{@}"@}} to @code{verbatim} output.
The same remark about @code{texidoc} processing with localized
languages also applies to @code{doctitle}.
+@item nogettext
+(Only for Texinfo output.) Do not translate comments and variable
+names in the snippet quoted verbatim.
+
@item printfilename
If a LilyPond input file is included with @code{\lilypondfile}, print
the file name right before the music snippet. For HTML output, this
The clef indicates which lines of the staff correspond to which
pitches. The three clef symbols in common use are:
-@lilypond[ragged-right,quote]
+@lilypond[quote]
\markup {
- \column {
- \line { "The Treble or G clef: " \musicglyph #"clefs.G" }
- \line { "The Bass or F clef: " \musicglyph #"clefs.F" }
- \line { "The Alto or C clef: " \musicglyph #"clefs.C" }
- }
+ \left-column {
+ \line { The Treble or G clef: }
+ \strut
+ \line { The Bass or F clef: }
+ \strut
+ \line { The Alto or C clef: }
+ }
+ \hspace #0.5
+ \left-column {
+ \musicglyph #"clefs.G"
+ \strut
+ \musicglyph #"clefs.F"
+ \strut
+ \musicglyph #"clefs.C"
+ }
}
@end lilypond
called a @q{grand staff}, with the bottom line representing low G and
the top line high F:
-@lilypond[ragged-right,quote]
+@lilypond[quote]
\score {
- <<
-%-- Treble Staff --%
- \new Staff = "G" {
-% Allow this staff to be placed close to the others
- \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-2 . 2)
-% Allow the treble clef to overlap the lower staves:
-% \override Staff.Clef #'Y-extent = #'(0 . 0)
- \override Staff.Clef #'stencil = ##f % No clef required
- \clef "G"
- s1^\markup { "g," \transparent "g" }
- s^ \markup { "b," \transparent "g" }
- s^ \markup { "d" \transparent "g" }
- s^ \markup { "f" \transparent "g" }
- s^ \markup { "a" \transparent "g" }
- s^ \markup { \with-color #red c' \transparent "g"}
- e'^\markup { "e'" \transparent "g" }
- g'^\markup { "g'" \transparent "g" }
- b'^\markup { "b'" \transparent "g" }
- d''^\markup { "d''" \transparent "g" }
- f''^\markup { "f ''" \transparent "g" }
- s
- }
-%-- Alto Staff reduced to a single line on middle C --%
- \new Staff = "C" {
- \override Staff.StaffSymbol #'line-count = 1 % One line only
- \override Staff.StaffSymbol #'color = #red % Coloured red
- \override Staff.Clef #'stencil = ##f % No clef required
- \clef "C"
-
-% Allow this staff to be placed close to the others
- \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
-% Specify height to give correct spacing between treble and bass staves
- \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-
- s1 s s s s % Space along to align horizonatally
- \override NoteHead #'color = #red
- c'1 % A middle C
- s1 s s s s s % Keep staff (ie the red line) showing
- }
-%-- Bass Staff --%
- \new Staff = "F" {
-% Allow this staff to be placed close to the others
- \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 2)
- \override Staff.Clef #'stencil = ##f % No clef required
- \clef "F"
- g,1 b, d f a
- s s s s s s s % Keep staff showing
- }
- >>
- \layout {
-% Reduce horizontal spacing so semibreves can be used without exceeding 1 line
- \context { \Score \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 1 1)
- }
-% Reduce apparent vertical size of note heads to permit them to overlap other grobs vertically
- \context { \Score \override NoteHead #'Y-extent = #'(0 . 0)
- }
-% Remove all barlines
- \context { \Score \override BarLine #'stencil = ##f
- }
-% Remove time signature from all staves
- \context { \Staff \remove Time_signature_engraver
+ <<
+ %-- Note names above treble staff --%
+ \new NoteNames {
+ \set printOctaveNames = ##t
+ g,1 b, d f a
+ \once \override NoteName #'color = #red
+ c'1
+ e'1 g' b' d'' f''
+ }
+ %-- Treble Staff --%
+ \new Staff = "G" {
+ \override Staff.Clef #'stencil = ##f
+ \clef "G"
+ s1 s s s s s
+ e'1 g' b' d'' f''
+ s1
+ }
+ %-- Alto Staff reduced to a single line on middle C --%
+ \new Staff = "C" {
+ \override Staff.StaffSymbol #'line-count = #1
+ \override Staff.StaffSymbol #'color = #red
+ \override Staff.Clef #'stencil = ##f
+ \clef "C"
+ s1 s s s s
+ \override NoteHead #'color = #red
+ c'1
+ s1 s s s s s
+ }
+ %-- Bass Staff --%
+ \new Staff = "F" {
+ \override Staff.Clef #'stencil = ##f
+ \clef "F"
+ g,1 b, d f a
+ s1 s s s s s s
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ \override SpacingSpanner
+ #'base-shortest-duration = #(ly:make-moment 1 1)
+ \override NonMusicalPaperColumn
+ #'line-break-system-details = #'((alignment-offsets . (3 0 -3 -6)))
+ \override BarLine #'stencil = ##f
+ }
+ \context {
+ \Staff
+ \remove "Time_signature_engraver"
+ }
}
- } % End layout
-} % End score
+}
@end lilypond
Staves of five lines are usually used, and the clef superimposed on
@samp{grand staff}. For example, the treble or G clef indicates that
the top five lines have been selected:
-@lilypond[ragged-right,quote]
+@lilypond[quote]
\score {
- <<
-%-- Treble Staff --%
- \new Staff = "G" {
-% Allow this staff to be placed close to the others
- \override Staff.VerticalAxisGroup
- #'minimum-Y-extent = #'(0 . 0)
-% Allow the treble clef to overlap the lower staves:
-% \override Staff.Clef #'Y-extent = #'(0 . 0)
- \override Staff.Clef #'stencil = ##f % No clef required here
- \clef "G"
- s1^\markup { "g," \transparent "g" }
- s^ \markup { "b," \transparent "g" }
- s^ \markup { "d" \transparent "g" }
- s^ \markup { "f" \transparent "g" }
- s^ \markup { "a" \transparent "g" }
- s^ \markup { \with-color #red c' \transparent "g"}
- \stopStaff \startStaff
- \clef "C" % Dummy to force next clef to be printed
- s % Need at least one note for \clef to take effect
- \revert Staff.Clef #'stencil % Clef now required
- \override Staff.Clef #'Y-extent = #'(0 . 0) % Permit overlap
- \clef "G"
- e'^\markup { "e'" \transparent "g" }
- g'^\markup { "g'" \transparent "g" }
- b'^\markup { "b'" \transparent "g" }
- d''^\markup { "d''" \transparent "g" }
- f''^\markup { "f ''" \transparent "g" }
- } % End staff G
-%-- Alto Staff reduced to a single line on middle C --%
- \new Staff = "C" {
- \override Staff.StaffSymbol #'line-count = 1 % One line only
- \override Staff.StaffSymbol #'color = #red % Coloured red
- \override Staff.Clef #'stencil = ##f % No clef required
- \clef "C"
-
-% Allow this staff to be placed close to the others
- \override Staff.VerticalAxisGroup
- #'minimum-Y-extent = #'(0 . 0)
-% Specify height to give correct spacing between the staves
- \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-
- s1 s s s s % Space along to align horizonatally
- \override NoteHead #'color = #red
- c'1 % A middle C
-% s1 s s s s % Keep staff (ie the red line) showing
- } % End staff C
-%-- Bass Staff --%
- \new Staff = "F" {
-% Allow this staff to be placed close to the others
- \override Staff.VerticalAxisGroup
- #'minimum-Y-extent = #'(0 . 0)
- \override Staff.Clef #'stencil = ##f % No clef required
- \clef "F"
- g,1_" " b, d f a
-% s s s s s s % Keep staff showing
- } % End staff F
- >>
- \layout {
-% Reduce horizontal spacing so semibreves can be used
-% without exceeding 1 line
- \context { \Score \override SpacingSpanner
- #'base-shortest-duration = #(ly:make-moment 1 1)
- }
-% Reduce apparent vertical size of note heads to
-% permit them to overlap other grobs vertically
- \context { \Score \override NoteHead #'Y-extent = #'(0 . 0)
- }
-% Remove all barlines
- \context { \Score \override BarLine #'stencil = ##f
- }
-% Remove time signature from all staves
- \context { \Staff \remove Time_signature_engraver
+ <<
+ %-- Note names above treble staff --%
+ \new NoteNames {
+ \set printOctaveNames = ##t
+ g,1 b, d f a
+ \once \override NoteName #'color = #red
+ c'1
+ s1
+ e'1 g' b' d'' f''
+ }
+ %-- Treble Staff --%
+ \new Staff = "G" {
+ \once \override Staff.Clef #'stencil = ##f
+ \clef "G"
+ s1 s s s s s s
+ \override Staff.Clef #'full-size-change = ##t
+ \set Staff.forceClef = ##t
+ \clef "G"
+ e'1 g' b' d'' f''
+ }
+ %-- Alto Staff reduced to a single line on middle C --%
+ \new Staff = "C" {
+ \override Staff.StaffSymbol #'line-count = #1
+ \override Staff.StaffSymbol #'color = #red
+ \override Staff.Clef #'stencil = ##f
+ \clef "C"
+ s1 s s s s
+ \override NoteHead #'color = #red
+ c'1
+ }
+ %-- Bass Staff --%
+ \new Staff = "F" {
+ \override Staff.Clef #'stencil = ##f
+ \clef "F"
+ g,1 b, d f a
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ \override SpacingSpanner
+ #'base-shortest-duration = #(ly:make-moment 2 1)
+ \override NonMusicalPaperColumn
+ #'line-break-system-details = #'((alignment-offsets . (3 0 -3 -6)))
+ \override BarLine #'stencil = ##f
+ }
+ \context {
+ \Staff
+ \remove "Time_signature_engraver"
+ }
}
- } % End layout
-} % End score
+}
@end lilypond
The @q{curl} of the G clef is centered on the line that represents the
relationship is shown below, where the notes show an arpeggio on a C
major chord.
-@lilypond[ragged-right,quote]
+@lilypond[quote]
\score {
-<<
-%-- Treble Staff --%
- \new Staff = "G" \with {
- \remove Time_signature_engraver
- }
- {
-% The following two overrides are required to make the two middle C's overlap
- \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
- \override Staff.VerticalAxisGroup #'Y-extent = #'(-2 . 2)
-
- \override Staff.Clef #'Y-extent = #'(0 . 0)
- \clef "G"
- s1 s s s s e' g' c''
- }
-%-- Alto Staff --%
- \new Staff = "C" \with {
- \remove Time_signature_engraver
- }
- {
- \override Staff.StaffSymbol #'line-count = 1
- \override Staff.StaffSymbol #'stencil = ##f
- \once \override Staff.Clef #'stencil = ##f
- \clef "G" % A frig. This clef is invisible; use G to force the later C clef to be shown
- \override Score.BarLine #'stencil = ##f
-
- % The following two overrides are required to align the C staff to the G and F staves
- \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
- \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
-
- s1 s s s
- \stopStaff \startStaff
- \override Staff.VerticalAxisGroup #'Y-extent = #'(-1 . 1)
- \revert Staff.StaffSymbol #'stencil
- \override Staff.StaffSymbol #'color = #red
- b'1 % A frig. This really shows as a middle C in the score
- s1 s s s
- \stopStaff \startStaff
- \override Staff.StaffSymbol #'line-count = 5
- \override Staff.StaffSymbol #'Y-extent = #'(0 . 0)
- \override Staff.Clef #'Y-extent = #'(0 . 0)
- \revert Staff.StaffSymbol #'color
- \stopStaff \startStaff
- \clef "C"
- s1 s s c e g c' e' g' c''
- }
-%-- Bass Staff --%
- \new Staff = "F" \with {
- \remove Time_signature_engraver
- }
- {
- \override Staff.Clef #'Y-extent = #'(0 . 0)
-% The following two overrides are required to make the two middle C's overlap
- \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(0 . 0)
- \override Staff.VerticalAxisGroup #'Y-extent = #'(-2 . 2)
-
- \clef "F"
- c1 e g s s s s s
- }
->>
-\layout {
- \context {
- \Score \override SpacingSpanner #'base-shortest-duration = #(ly:make-moment 2 1)
- }
- \context {
- \Score \override NoteHead #'Y-extent = #'(0 . 0)
+ <<
+ %-- Treble Staff --%
+ \new Staff = "G" {
+ \clef "G"
+ s1 s s s
+ e'1 g' c'' s
+ }
+ %-- Alto Staff --%
+ \new Staff = "C" {
+ \override Staff.StaffSymbol #'line-count = #1
+ \once \override Staff.Clef #'stencil = ##f
+ \stopStaff
+ \clef "C"
+ s1 s s
+ \startStaff
+ \revert Staff.StaffSymbol #'stencil
+ \override Staff.StaffSymbol #'color = #red
+ c'1
+ s1 s s s s
+ \stopStaff \startStaff
+ \revert Staff.StaffSymbol #'line-count
+ \revert Staff.StaffSymbol #'color
+ \stopStaff \startStaff
+ \override Staff.Clef #'full-size-change = ##t
+ \set Staff.forceClef = ##t
+ \clef "C"
+ s1 s
+ c1 e g c' e' g' c''
+ }
+ %-- Bass Staff --%
+ \new Staff = "F" {
+ \clef "F"
+ c1 e g
+ s1 s s s s
+ }
+ >>
+ \layout {
+ \context {
+ \Score
+ \override SpacingSpanner #'base-shortest-duration =
+ #(ly:make-moment 2 1)
+ \override NonMusicalPaperColumn
+ #'line-break-system-details = #'((alignment-offsets . (0 -3 -6)))
+ \override BarLine #'stencil = ##f
+ }
+ \context {
+ \Staff
+ \remove "Time_signature_engraver"
+ }
}
- \context {
- \Score \override NoteHead #'minimum-Y-extent = #'(0 . 0)
- }
-}
}
@end lilypond
@cindex pitches
@cindex absolute
@cindex absolute octave specification
+@cindex octave specification, absolute
@cindex absolute octave entry
+@cindex octave entry, absolute
A pitch name is specified using lowercase letters@tie{}@code{a}
through@tie{}@code{g}. The note names @code{c} to @code{b} are
@end lilypond
@cindex octave changing mark
+
@funindex '
@funindex ,
@cindex relative
@cindex relative octave entry
+@cindex octave entry, relative
@cindex relative octave specification
+@cindex ocatve specification, relative
+
+@funindex relative
@funindex \relative
When octaves are specified in absolute mode it is easy to
}
@end lilypond
+@cindex chords and relative octave entry
+@cindex relative octave entry and chords
+
If the preceding item is a chord, the first note of the chord is
used as the reference point for the octave placement of a
following note or chord. Inside chords, the next note is always
@cindex relative octave entry and transposition
@cindex transposition and relative octave entry
+
@funindex \transpose
+@funindex transpose
@funindex \chordmode
+@funindex chordmode
@funindex \relative
+@funindex relative
@knownissues
@cindex note names, Dutch
@cindex note names, default
+@cindex default note names
@cindex sharp
@cindex flat
@cindex double sharp
@end lilypond
@cindex quarter tones
-@cindex semi-flats, semi-sharps
+@cindex semi-flats
+@cindex semi-sharps
Quarter tones may be added; the following is a series of Cs with
increasing pitches:
@cindex accidental, cautionary
@cindex accidental, parenthesized
@cindex reminder accidental
-@funindex ?
@cindex cautionary accidental
@cindex parenthesized accidental
+
+@funindex ?
@funindex !
+
Normally accidentals are printed automatically, but you may also
print them manually. A reminder accidental can be forced by
adding an exclamation mark@tie{}@code{!} after the pitch. A
@cindex octave correction
@cindex octave check
@cindex control pitch
+
@funindex =
@funindex \octaveCheck
+@funindex octaveCheck
@funindex controlpitch
In relative mode, it is easy to forget an octave changing mark.
@cindex transposition of notes
@cindex pitches, transposition of
@cindex notes, transposition of
+
@funindex \transpose
+@funindex transpose
A music expression can be transposed with @code{\transpose}. The
syntax is
}
@end lilypond
-@cindex transposing instruments
-@cindex instruments, transposing
@code{\transpose} may also be used in a different way, to input
written notes for a transposing instrument. The previous examples
@funindex \transpose
+@funindex transpose
@funindex \chordmode
+@funindex chordmode
@funindex \relative
+@funindex relative
@knownissues
@node Clef
@unnumberedsubsubsec Clef
-@funindex \clef
@cindex G clef
@cindex C clef
@cindex F clef
@cindex clef, varbaritone
@cindex subbass clef, subbass
+@funindex \clef
+@funindex clef
+
The clef may be altered. Middle C is shown in every example.
@lilypond[verbatim,quote,relative=1]
@cindex clef, transposing
@cindex octave transposition
@cindex choral tenor clef
+@cindex tenor clef, choral
By adding@tie{}@code{_8} or@tie{}@code{^8} to the clef name, the
clef is transposed one octave down or up, respectively,
@unnumberedsubsubsec Key signature
@cindex key signature
+
@funindex \key
+@funindex key
@c duplicated in Key signature and Accidentals
@warning{New users are sometimes confused about accidentals and
@end example
@funindex \major
+@funindex major
@funindex \minor
+@funindex minor
@funindex \ionian
+@funindex ionian
@funindex \locrian
+@funindex locrian
@funindex \aeolian
+@funindex aeolian
@funindex \mixolydian
+@funindex mixolydian
@funindex \lydian
+@funindex lydian
@funindex \phrygian
+@funindex phrygian
@funindex \dorian
+@funindex dorian
+
@cindex church modes
@cindex modes
@cindex major
@cindex 8va
@cindex 8ve
@cindex octavation
+
@funindex set-octavation
+@funindex \ottava
+@funindex ottava
@notation{Ottava brackets} introduce an extra transposition of an
octave for the staff:
@cindex transposing instrument
@cindex MIDI
@cindex MIDI transposition
+
@funindex \transposition
+@funindex transposition
When typesetting scores that involve transposing instruments, some
parts can be typeset in a different pitch than the
@cindex accidentals, automatic
@cindex automatic accidentals
@cindex default accidental style
+
@funindex set-accidental-style
@funindex voice
+@funindex default
There are many different conventions on how to typeset
accidentals. LilyPond provides a function to specify which
The following accidental styles are supported. To demonstrate
each style, we use the following example:
-@funindex default
@lilypond[verbatim,quote]
musicA = {
@cindex default accidental style
@cindex accidental style, default
+
@funindex default
This is the default typesetting behavior. It corresponds to
@cindex modern accidental style
@cindex accidental style, modern-cautionary
@cindex modern-cautionary accidental style
+
@funindex voice
The normal behavior is to remember the accidentals at
@cindex accidentals, modern style
@cindex modern style accidentals
+
@funindex modern
This rule corresponds to the common practice in the twentieth
@cindex modern cautionary accidental style
@cindex modern style accidentals
@cindex modern style cautionary accidentals
+
@funindex modern-cautionary
This rule is similar to @code{modern}, but the @q{extra}
@cindex modern accidental style
@cindex modern accidentals
@cindex multivoice accidentals
+
@funindex modern-voice
This rule is used for multivoice accidentals to be read both by
@cindex accidental style, cautionary, modern voice
@cindex accidental style, modern voice cautionary
@cindex accidental style, voice, modern cautionary
+
@funindex modern-voice-cautionary
@item modern-voice-cautionary
@cindex accidentals, piano
@cindex piano accidental style
@cindex piano accidentals
+
@funindex piano
This rule reflects twentieth-century practice for piano notation.
@item piano-cautionary
-@funindex piano-cautionary
@cindex accidentals, piano cautionary
@cindex cautionary accidentals, piano
@cindex piano cautionary accidentals
@cindex cautionary accidental style, piano
@cindex piano cautionary accidental style
+@funindex piano-cautionary
+
This is the same as @code{piano} but with the extra accidentals
typeset as cautionaries.
@item neo-modern
-@funindex neo-modern
@cindex neo-modern accidental style
@cindex accidental style, neo-modern
+@funindex neo-modern
+
This rule reproduces a common practice in contemporary music:
accidentals are printed like with @code{modern}, but they are printed
again if the same note appears later in the same measure -- except
@item neo-modern-cautionary
-@funindex neo-modern-cautionary
@cindex neo-modern-cautionary accidental style
@cindex accidental style, neo-modern-cautionary
+@funindex neo-modern-cautionary
+
This rule is similar to @code{neo-modern}, but the extra
accidentals are printed as cautionary accidentals.
@item dodecaphonic
-@funindex dodecaphonic
@cindex dodecaphonic accidental style
@cindex dodecaphonic style, neo-modern
+@funindex dodecaphonic
+
This rule reflects a practice introduced by composers at
the beginning of the 20th century, in an attempt to
abolish the hierarchy between natural and non-natural notes.
@item teaching
-@funindex teaching
@cindex teaching accidental style
@cindex accidental style, teaching
+@funindex teaching
+
This rule is intended for students, and makes it easy to create
scale sheets with automagically created cautionary accidentals.
Accidentals are printed like with @code{modern}, but cautionary
@item no-reset
-@funindex no-reset
@cindex accidental style, no reset
@cindex no reset accidental style
+@funindex no-reset
+
This is the same as @code{default} but with accidentals lasting
@q{forever} and not only within the same measure:
@item forget
-@funindex forget
@cindex forget accidental style
@cindex accidental style, forget
+@funindex forget
+
This is the opposite of @code{no-reset}: Accidentals are not
remembered at all -- and hence all accidentals are typeset
relative to the key signature, regardless of what came before in
@cindex guitar note heads
@cindex note head styles
@cindex styles, note heads
+
@funindex cross
Note heads may be altered:
@cindex easy play note heads
@cindex note heads, easy play
+@funindex \easyHeadsOn
+@funindex easyHeadsOn
+@funindex \easyHeadsOff
+@funindex easyHeadsOff
+
The @q{easy play} note head includes a note name inside the head.
It is used in music for beginners. To make the letters readable,
it should be printed in a large font size. To print with a larger
@predefined
-@funindex \easyHeadsOn
@code{\easyHeadsOn},
-@funindex \easyHeadsOff
@code{\easyHeadsOff}.
@endpredefined
@cindex shape notes
@cindex Aiken shape note heads
@cindex sacred harp note heads
+
@funindex \key
+@funindex key
@funindex \aikenHeads
+@funindex aikenHeads
@funindex \sacredHarpHeads
+@funindex sacredHarpHeads
In shape note head notation, the shape of the note head
corresponds to the harmonic function of a note in the scale. This
@predefined
-@funindex \aikenHeads
@code{\aikenHeads},
-@funindex \sacredHarpHeads
@code{\sacredHarpHeads}.
@endpredefined
@cindex note heads, improvisation
@cindex note heads, slashed
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
Improvisation is sometimes denoted with slashed note heads, where
the performer may choose any pitch but should play the specified
rhythm. Such note heads can be created:
@predefined
-@funindex \improvisationOn
@code{\improvisationOn},
-@funindex \improvisationOff
@code{\improvisationOff}.
@endpredefined
*/
#include "lily-guile.hh"
+#include "international.hh"
+#include "main.hh"
#include "string-convert.hh"
#include "warn.hh"
display_fontset (FcFontSet *fs)
{
string retval;
-
+
int j;
for (j = 0; j < fs->nfont; j++)
{
if (FcPatternGetString (fs->fonts[j],
"designsize", 0, &str) == FcResultMatch)
retval += String_convert::form_string ("designsize %s\n ", str);
-
- retval += String_convert::form_string ("%s\n", (const char*) font);
+
+ retval += String_convert::form_string ("%s\n", (const char *)font);
free (font);
}
-
+
return retval;
}
string
-display_strlist (char const*what, FcStrList *slist)
+display_strlist (char const *what, FcStrList *slist)
{
string retval;
while (FcChar8 *dir = FcStrListNext (slist))
{
string retval;
retval += display_strlist ("Config files", FcConfigGetConfigFiles (fcc));
- retval += display_strlist ("Config dir", FcConfigGetConfigDirs (fcc));
- retval += display_strlist ("Font dir", FcConfigGetFontDirs (fcc));
+ retval += display_strlist ("Config dir", FcConfigGetConfigDirs (fcc));
+ retval += display_strlist ("Font dir", FcConfigGetFontDirs (fcc));
return retval;
}
string
display_list (FcConfig *fcc)
{
- FcPattern*pat = FcPatternCreate ();
+ FcPattern *pat = FcPatternCreate ();
FcObjectSet *os = 0;
if (!os)
- os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *) 0);
+ os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, (char *)0);
FcFontSet *fs = FcFontList (fcc, pat, os);
FcObjectSetDestroy (os);
"Get the file for font @var{name}.")
{
LY_ASSERT_TYPE (scm_is_string, name, 1);
-
- FcPattern*pat = FcPatternCreate ();
+
+ FcPattern *pat = FcPatternCreate ();
FcValue val;
-
+
val.type = FcTypeString;
- val.u.s = (const FcChar8*)ly_scm2string (name).c_str (); // FC_SLANT_ITALIC;
+ val.u.s = (const FcChar8 *)ly_scm2string (name).c_str (); // FC_SLANT_ITALIC;
FcPatternAdd (pat, FC_FAMILY, val, FcFalse);
FcResult result;
FcConfigSubstitute (NULL, pat, FcMatchFont);
FcDefaultSubstitute (pat);
-
+
pat = FcFontMatch (NULL, pat, &result);
FcChar8 *str = 0;
if (FcPatternGetString (pat, FC_FILE, 0, &str) == FcResultMatch)
- scm_result = scm_from_locale_string ((char const*) str);
+ scm_result = scm_from_locale_string ((char const *)str);
FcPatternDestroy (pat);
return scm_result;
}
-
+
LY_DEFINE (ly_font_config_display_fonts, "ly:font-config-display-fonts", 0, 0, 0,
(),
"Dump a list of all fonts visible to FontConfig.")
str += display_config (NULL);
progress_indication (str);
-
+
return SCM_UNSPECIFIED;
}
+LY_DEFINE (ly_font_config_add_directory, "ly:font-config-add-directory", 1, 0, 0,
+ (SCM dir),
+ "Add directory @var{dir} to FontConfig.")
+{
+ LY_ASSERT_TYPE (scm_is_string, dir, 1);
+
+ string d = ly_scm2string (dir);
+
+ if (!FcConfigAppFontAddDir (0, (const FcChar8 *)d.c_str ()))
+ error (_f ("failed adding font directory: %s", d.c_str ()));
+ else if (be_verbose_global)
+ message (_f ("adding font directory: %s", d.c_str ()));
+ return SCM_UNSPECIFIED;
+}
+
+LY_DEFINE (ly_font_config_add_font, "ly:font-config-add-font", 1, 0, 0,
+ (SCM font),
+ "Add font @var{font} to FontConfig.")
+{
+ LY_ASSERT_TYPE (scm_is_string, font, 1);
+
+ string f = ly_scm2string (font);
+
+ if (!FcConfigAppFontAddFile (0, (const FcChar8 *)f.c_str ()))
+ error (_f ("failed adding font file: %s", f.c_str ()));
+ else if (be_verbose_global)
+ message (_f ("adding font file: %s", f.c_str ()));
+
+ return SCM_UNSPECIFIED;
+}
'Back to Documentation Index' => '',
};
-print $LY_LANGUAGES->{'fr'}->{'Back to Documentation Index'};
sub ly_get_string () {
my $lang = $Texi2HTML::THISDOC{current_lang};
msgstr ""
"Project-Id-Version: lilypond 2.11.57\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-08-23 18:49+0200\n"
+"POT-Creation-Date: 2008-12-09 11:43+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "%s has been replaced by %s"
msgstr ""
-#: convertrules.py:24 musicexp.py:16 convert-ly.py:48 lilypond-book.py:82
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:50 lilypond-book.py:94
#: warn.cc:48 input.cc:90
#, c-format, python-format
msgid "warning: %s"
msgid "\\put-adjacent axis dir markup markup."
msgstr ""
+#: convertrules.py:2832
+msgid "re-definition of InnerStaffGroup.\n"
+msgstr ""
+
+#: convertrules.py:2838
+msgid "re-definition of InnerChoirStaff.\n"
+msgstr ""
+
#: fontextract.py:25
#, python-format
msgid "Scanning %s"
msgid "Writing fonts to %s"
msgstr ""
-#: lilylib.py:101 lilylib.py:152
+#: lilylib.py:91 lilylib.py:142
#, python-format
msgid "Invoking `%s'"
msgstr ""
-#: lilylib.py:103 lilylib.py:154
+#: lilylib.py:93 lilylib.py:144
#, python-format
msgid "Running %s..."
msgstr ""
-#: lilylib.py:219
+#: lilylib.py:209
#, python-format
msgid "Usage: %s"
msgstr ""
-#: musicexp.py:585
+#: musicexp.py:215 musicexp.py:220
+msgid "Language does not support microtones contained in the piece"
+msgstr ""
+
+#: musicexp.py:482
+msgid "Tuplet brackets of curved shape are not correctly implemented"
+msgstr ""
+
+#. TODO: Implement this using actual_type and normal_type!
+#: musicexp.py:511
+msgid ""
+"Tuplet brackets displaying both note durations are not implemented, using "
+"default"
+msgstr ""
+
+#: musicexp.py:656
#, python-format
msgid "unable to set the music %(music)s for the repeat %(repeat)s"
msgstr ""
-#: musicexp.py:594
+#: musicexp.py:665
msgid "encountered repeat without body"
msgstr ""
-#: musicxml.py:13 convert-ly.py:51 lilypond-book.py:85 warn.cc:54 input.cc:96
+#. no self.elements!
+#: musicexp.py:835
+#, python-format
+msgid "Grace note with no following music: %s"
+msgstr ""
+
+#: musicexp.py:997
+#, python-format
+msgid "Invalid octave shift size found: %s. Using no shift."
+msgstr ""
+
+#: musicexp.py:1455
+#, python-format
+msgid "Unable to convert alteration %s to a lilypond expression"
+msgstr ""
+
+#: musicxml.py:13 convert-ly.py:53 lilypond-book.py:97 warn.cc:54 input.cc:96
#: input.cc:104
#, c-format, python-format
msgid "error: %s"
msgstr ""
-#: musicxml.py:298
-msgid "requested time signature, but time sig is unknown"
+#. TODO: Handle pieces without a time signature!
+#: musicxml.py:357
+msgid "Senza-misura time signatures are not yet supported!"
msgstr ""
-#: musicxml.py:354
+#: musicxml.py:375
+msgid "Unable to interpret time signature! Falling back to 4/4."
+msgstr ""
+
+#: musicxml.py:431
#, python-format
-msgid "Encountered note at %s with %s duration (no <type> element):"
+msgid ""
+"Key alteration octave given for a non-existing alteration nr. %s, available "
+"numbers: %s!"
msgstr ""
-#: musicxml.py:388
+#: musicxml.py:519
#, python-format
msgid "Unable to find instrument for ID=%s\n"
msgstr ""
-#: abc2ly.py:1342 convert-ly.py:72 lilypond-book.py:109 midi2ly.py:846
+#: abc2ly.py:1341 convert-ly.py:74 lilypond-book.py:121 midi2ly.py:845
#, python-format
msgid "%s [OPTION]... FILE"
msgstr ""
-#: abc2ly.py:1343
+#: abc2ly.py:1342
#, python-format
msgid ""
"abc2ly converts ABC music files (see\n"
"%s) to LilyPond input.\n"
msgstr ""
-#: abc2ly.py:1351 convert-ly.py:79 etf2ly.py:1190 lilypond-book.py:195
-#: midi2ly.py:882 musicxml2ly.py:2185 main.cc:161
+#: abc2ly.py:1350 convert-ly.py:81 etf2ly.py:1190 lilypond-book.py:207
+#: midi2ly.py:881 musicxml2ly.py:2590 main.cc:156
msgid "show version number and exit"
msgstr ""
-#: abc2ly.py:1355 convert-ly.py:83 etf2ly.py:1186 lilypond-book.py:126
-#: midi2ly.py:861 musicxml2ly.py:2167 main.cc:150
+#: abc2ly.py:1354 convert-ly.py:85 etf2ly.py:1186 lilypond-book.py:138
+#: midi2ly.py:860 musicxml2ly.py:2572 main.cc:145
msgid "show this help and exit"
msgstr ""
-#: abc2ly.py:1357 etf2ly.py:1191 midi2ly.py:865
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:864
msgid "write output to FILE"
msgstr ""
-#: abc2ly.py:1359
+#: abc2ly.py:1358
msgid "be strict about success"
msgstr ""
-#: abc2ly.py:1361
+#: abc2ly.py:1360
msgid "preserve ABC's notion of beams"
msgstr ""
-#: abc2ly.py:1363 convert-ly.py:120 etf2ly.py:1199 lilypond-book.py:202
-#: midi2ly.py:894 musicxml2ly.py:2240
-msgid "Report bugs via"
+#: abc2ly.py:1363 convert-ly.py:123 etf2ly.py:1200 lilypond-book.py:214
+#: midi2ly.py:894 musicxml2ly.py:2646 main.cc:261
+#, c-format, python-format
+msgid "Report bugs via %s"
msgstr ""
-#: convert-ly.py:31
+#: convert-ly.py:33
msgid ""
"Update LilyPond input to newer version. By default, update from the\n"
"version taken from the \\version command, to the current LilyPond version."
msgstr ""
-#: convert-ly.py:33 lilypond-book.py:59
+#: convert-ly.py:35 lilypond-book.py:71
msgid "Examples:"
msgstr ""
-#: convert-ly.py:67 etf2ly.py:1173 lilypond-book.py:105 midi2ly.py:77
+#: convert-ly.py:69 etf2ly.py:1173 lilypond-book.py:117 midi2ly.py:76
msgid "Distributed under terms of the GNU General Public License."
msgstr ""
-#: convert-ly.py:68 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:78
+#: convert-ly.py:70 etf2ly.py:1174 lilypond-book.py:118 midi2ly.py:77
msgid "It comes with NO WARRANTY."
msgstr ""
-#: convert-ly.py:87 convert-ly.py:114
+#: convert-ly.py:89 convert-ly.py:116
msgid "VERSION"
msgstr ""
-#: convert-ly.py:89
+#: convert-ly.py:91
msgid "start from VERSION [default: \\version found in file]"
msgstr ""
-#: convert-ly.py:92
+#: convert-ly.py:94
msgid "edit in place"
msgstr ""
-#: convert-ly.py:96
+#: convert-ly.py:98
msgid "do not add \\version command if missing"
msgstr ""
-#: convert-ly.py:102
+#: convert-ly.py:104
#, python-format
msgid "force updating \\version number to %s"
msgstr ""
-#: convert-ly.py:108
+#: convert-ly.py:110
#, python-format
msgid "show rules [default: -f 0, -t %s]"
msgstr ""
-#: convert-ly.py:113
+#: convert-ly.py:115
#, python-format
msgid "convert to VERSION [default: %s]"
msgstr ""
-#: convert-ly.py:160
+#: convert-ly.py:163
msgid "Applying conversion: "
msgstr ""
-#: convert-ly.py:173
+#: convert-ly.py:176
msgid "Error while converting"
msgstr ""
-#: convert-ly.py:175
-msgid "Stopping at last succesful rule"
+#: convert-ly.py:178
+msgid "Stopping at last successful rule"
msgstr ""
-#: convert-ly.py:196
+#: convert-ly.py:199
#, python-format
msgid "Processing `%s'... "
msgstr ""
-#: convert-ly.py:286 relocate.cc:362 source-file.cc:59
+#: convert-ly.py:289 relocate.cc:362 source-file.cc:59
#, c-format, python-format
msgid "cannot open file: `%s'"
msgstr ""
-#: convert-ly.py:293
+#: convert-ly.py:296
#, python-format
msgid "cannot determine version for `%s'. Skipping"
msgstr ""
"file.\n"
msgstr ""
-#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2233 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:865 musicxml2ly.py:2638 main.cc:149 main.cc:154
msgid "FILE"
msgstr ""
-#: etf2ly.py:1194 lilypond-book.py:198 midi2ly.py:883 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:210 midi2ly.py:882 main.cc:158
msgid "show warranty and copyright"
msgstr ""
-#: lilypond-book.py:57
+#: lilypond-book.py:69
msgid ""
"Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
msgstr ""
-#: lilypond-book.py:64
+#: lilypond-book.py:76
msgid "BOOK"
msgstr ""
-#: lilypond-book.py:72
+#: lilypond-book.py:84
#, python-format
msgid "Exiting (%d)..."
msgstr ""
-#: lilypond-book.py:103
+#: lilypond-book.py:115
#, python-format
msgid "Copyright (c) %s by"
msgstr ""
-#: lilypond-book.py:113
+#: lilypond-book.py:125
msgid "FILTER"
msgstr ""
-#: lilypond-book.py:116
+#: lilypond-book.py:128
msgid "pipe snippets through FILTER [default: `convert-ly -n -']"
msgstr ""
-#: lilypond-book.py:120
+#: lilypond-book.py:132
msgid ""
"use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
msgstr ""
-#: lilypond-book.py:121
+#: lilypond-book.py:133
msgid "FORMAT"
msgstr ""
-#: lilypond-book.py:128
+#: lilypond-book.py:140
msgid "add DIR to include path"
msgstr ""
-#: lilypond-book.py:129 lilypond-book.py:136 lilypond-book.py:154
-#: lilypond-book.py:160 lilypond-book.py:166 lilypond-book.py:172 main.cc:153
+#: lilypond-book.py:141 lilypond-book.py:148 lilypond-book.py:166
+#: lilypond-book.py:172 lilypond-book.py:178 lilypond-book.py:184 main.cc:148
msgid "DIR"
msgstr ""
-#: lilypond-book.py:134
+#: lilypond-book.py:146
msgid "format Texinfo output so that Info will look for images of music in DIR"
msgstr ""
-#: lilypond-book.py:141
+#: lilypond-book.py:153
msgid "run executable PROG instead of latex"
msgstr ""
-#: lilypond-book.py:142
+#: lilypond-book.py:154
msgid "PROG"
msgstr ""
-#: lilypond-book.py:147
+#: lilypond-book.py:159
msgid "PAD"
msgstr ""
-#: lilypond-book.py:149
+#: lilypond-book.py:161
msgid ""
"pad left side of music to align music inspite of uneven bar numbers (in mm)"
msgstr ""
-#: lilypond-book.py:153
+#: lilypond-book.py:165
msgid "write output to DIR"
msgstr ""
-#: lilypond-book.py:159
+#: lilypond-book.py:171
msgid "do not fail if no lilypond output is found"
msgstr ""
-#: lilypond-book.py:165
+#: lilypond-book.py:177
msgid "do not fail if no PNG images are found for EPS files"
msgstr ""
-#: lilypond-book.py:171
+#: lilypond-book.py:183
msgid "write lily-XXX files to DIR, link into --output dir"
msgstr ""
-#: lilypond-book.py:176
+#: lilypond-book.py:188
msgid "COMMAND"
msgstr ""
-#: lilypond-book.py:177
+#: lilypond-book.py:189
msgid "process ly_files using COMMAND FILE..."
msgstr ""
-#: lilypond-book.py:184
+#: lilypond-book.py:196
msgid "create PDF files for use with PDFTeX"
msgstr ""
-#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2190 main.cc:162
+#: lilypond-book.py:199 midi2ly.py:875 musicxml2ly.py:2595 main.cc:157
msgid "be verbose"
msgstr ""
-#: lilypond-book.py:825
+#: lilypond-book.py:869
#, python-format
msgid "file not found: %s"
msgstr ""
-#: lilypond-book.py:1087
+#: lilypond-book.py:1137
#, python-format
msgid "deprecated ly-option used: %s=%s"
msgstr ""
-#: lilypond-book.py:1089
+#: lilypond-book.py:1139
#, python-format
msgid "compatibility mode translation: %s=%s"
msgstr ""
-#: lilypond-book.py:1092
+#: lilypond-book.py:1142
#, python-format
msgid "deprecated ly-option used: %s"
msgstr ""
-#: lilypond-book.py:1094
+#: lilypond-book.py:1144
#, python-format
msgid "compatibility mode translation: %s"
msgstr ""
-#: lilypond-book.py:1112
+#: lilypond-book.py:1162
#, python-format
msgid "ignoring unknown ly option: %s"
msgstr ""
-#: lilypond-book.py:1538
+#: lilypond-book.py:1598
#, python-format
msgid "Opening filter `%s'"
msgstr ""
-#: lilypond-book.py:1555
+#: lilypond-book.py:1615
#, python-format
msgid "`%s' failed (%d)"
msgstr ""
-#: lilypond-book.py:1556
+#: lilypond-book.py:1616
msgid "The error log is as follows:"
msgstr ""
-#: lilypond-book.py:1618
+#: lilypond-book.py:1678
msgid "cannot find \\begin{document} in LaTeX document"
msgstr ""
-#: lilypond-book.py:1718
+#: lilypond-book.py:1778
msgid "Writing snippets..."
msgstr ""
-#: lilypond-book.py:1724
+#: lilypond-book.py:1784
msgid "Processing..."
msgstr ""
-#: lilypond-book.py:1730
+#: lilypond-book.py:1790
msgid "All snippets are up to date..."
msgstr ""
-#: lilypond-book.py:1764
+#: lilypond-book.py:1824
#, python-format
msgid "cannot determine format for: %s"
msgstr ""
-#: lilypond-book.py:1775
+#: lilypond-book.py:1835
#, python-format
msgid "%s is up to date."
msgstr ""
-#: lilypond-book.py:1789
+#: lilypond-book.py:1849
#, python-format
msgid "Writing `%s'..."
msgstr ""
-#: lilypond-book.py:1847
+#: lilypond-book.py:1907
msgid "Output would overwrite input file; use --output."
msgstr ""
-#: lilypond-book.py:1851
+#: lilypond-book.py:1911
#, python-format
msgid "Reading %s..."
msgstr ""
-#: lilypond-book.py:1870
+#: lilypond-book.py:1931
msgid "Dissecting..."
msgstr ""
-#: lilypond-book.py:1886
+#: lilypond-book.py:1947
#, python-format
msgid "Compiling %s..."
msgstr ""
-#: lilypond-book.py:1895
+#: lilypond-book.py:1956
#, python-format
msgid "Processing include: %s"
msgstr ""
-#: lilypond-book.py:1907
+#: lilypond-book.py:1968
#, python-format
msgid "Removing `%s'"
msgstr ""
-#: midi2ly.py:85 lily-library.scm:620 lily-library.scm:629
+#: midi2ly.py:84 lily-library.scm:634 lily-library.scm:643
msgid "warning: "
msgstr ""
-#: midi2ly.py:88 midi2ly.py:907
+#: midi2ly.py:87 midi2ly.py:907
msgid "error: "
msgstr ""
-#: midi2ly.py:89
+#: midi2ly.py:88
msgid "Exiting... "
msgstr ""
-#: midi2ly.py:834
+#: midi2ly.py:833
#, python-format
msgid "%s output to `%s'..."
msgstr ""
-#: midi2ly.py:847
+#: midi2ly.py:846
#, python-format
msgid "Convert %s to LilyPond input.\n"
msgstr ""
-#: midi2ly.py:852
+#: midi2ly.py:851
msgid "print absolute pitches"
msgstr ""
-#: midi2ly.py:854 midi2ly.py:869
+#: midi2ly.py:853 midi2ly.py:868
msgid "DUR"
msgstr ""
-#: midi2ly.py:855
+#: midi2ly.py:854
msgid "quantise note durations on DUR"
msgstr ""
-#: midi2ly.py:858
+#: midi2ly.py:857
msgid "print explicit durations"
msgstr ""
-#: midi2ly.py:862
+#: midi2ly.py:861
msgid "set key: ALT=+sharps|-flats; MINOR=1"
msgstr ""
-#: midi2ly.py:863
+#: midi2ly.py:862
msgid "ALT[:MINOR]"
msgstr ""
-#: midi2ly.py:868
+#: midi2ly.py:867
msgid "quantise note starts on DUR"
msgstr ""
-#: midi2ly.py:871
+#: midi2ly.py:870
msgid "DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:874
+#: midi2ly.py:873
msgid "allow tuplet durations DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:886
+#: midi2ly.py:885
msgid "treat every text as a lyric"
msgstr ""
-#: midi2ly.py:889
+#: midi2ly.py:888
msgid "Examples"
msgstr ""
msgid "no files specified on command line."
msgstr ""
-#: musicxml2ly.py:213
+#: musicxml2ly.py:343
msgid ""
"Encountered file created by Dolet 3.4 for Sibelius, containing wrong beaming "
"information. All beaming information in the MusicXML file will be ignored"
msgstr ""
-#: musicxml2ly.py:229 musicxml2ly.py:231
+#: musicxml2ly.py:346
+msgid ""
+"Encountered file created by Noteworthy Composer's nwc2xml, containing wrong "
+"beaming information. All beaming information in the MusicXML file will be "
+"ignored"
+msgstr ""
+
+#: musicxml2ly.py:362 musicxml2ly.py:364
#, python-format
msgid "Unprocessed PartGroupInfo %s encountered"
msgstr ""
-#: musicxml2ly.py:471
+#: musicxml2ly.py:594
+#, python-format
+msgid "Encountered note at %s without type and duration (=%s)"
+msgstr ""
+
+#: musicxml2ly.py:613
#, python-format
msgid ""
"Encountered rational duration with denominator %s, unable to convert to "
"lilypond duration"
msgstr ""
-#: musicxml2ly.py:654
+#: musicxml2ly.py:868
+msgid "Unable to extract key signature!"
+msgstr ""
+
+#: musicxml2ly.py:895
#, python-format
-msgid "unknown mode %s, expecting 'major' or 'minor'"
+msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
msgstr ""
-#: musicxml2ly.py:692
+#: musicxml2ly.py:968
#, python-format
msgid "Encountered unprocessed marker %s\n"
msgstr ""
-#: musicxml2ly.py:786
+#: musicxml2ly.py:1062
#, python-format
msgid "unknown span event %s"
msgstr ""
-#: musicxml2ly.py:796
+#: musicxml2ly.py:1072
#, python-format
msgid "unknown span type %s for %s"
msgstr ""
-#: musicxml2ly.py:1222
+#: musicxml2ly.py:1498
msgid "Unknown metronome mark, ignoring"
msgstr ""
#. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1227
+#: musicxml2ly.py:1503
msgid ""
"Metronome marks with complex relations (<metronome-note> in MusicXML) are "
"not yet implemented."
msgstr ""
-#: musicxml2ly.py:1383
+#: musicxml2ly.py:1703
#, python-format
msgid "Unable to convert chord type %s to lilypond."
msgstr ""
-#: musicxml2ly.py:1529
+#: musicxml2ly.py:1849
#, python-format
msgid "drum %s type unknown, please add to instrument_drumtype_dict"
msgstr ""
-#: musicxml2ly.py:1533
+#: musicxml2ly.py:1853
msgid "cannot find suitable event"
msgstr ""
-#: musicxml2ly.py:1623
+#: musicxml2ly.py:1994
#, python-format
-msgid "Negative skip %s"
+msgid "Negative skip %s (from position %s to %s)"
msgstr ""
-#: musicxml2ly.py:1775
+#: musicxml2ly.py:2134
#, python-format
msgid "Negative skip found: from %s to %s, difference is %s"
msgstr ""
-#: musicxml2ly.py:1802
+#: musicxml2ly.py:2205
#, python-format
msgid "unexpected %s; expected %s or %s or %s"
msgstr ""
-#: musicxml2ly.py:1912
-msgid "cannot have two simultaneous slurs"
+#: musicxml2ly.py:2311
+msgid "Encountered closing slur, but no slur is open"
+msgstr ""
+
+#: musicxml2ly.py:2314
+msgid "Cannot have two simultaneous (closing) slurs"
msgstr ""
-#: musicxml2ly.py:2050
+#: musicxml2ly.py:2324
+msgid "Cannot have a slur inside another slur"
+msgstr ""
+
+#: musicxml2ly.py:2327
+msgid "Cannot have two simultaneous slurs"
+msgstr ""
+
+#: musicxml2ly.py:2455
#, python-format
msgid "cannot simultaneously have more than one mode: %s"
msgstr ""
-#: musicxml2ly.py:2148
+#: musicxml2ly.py:2553
msgid "Converting to LilyPond expressions..."
msgstr ""
-#: musicxml2ly.py:2159
+#: musicxml2ly.py:2564
msgid "musicxml2ly [OPTION]... FILE.xml"
msgstr ""
-#: musicxml2ly.py:2161
+#: musicxml2ly.py:2566
msgid ""
"Convert MusicXML from FILE.xml to LilyPond input.\n"
"If the given filename is -, musicxml2ly reads from the command line.\n"
msgstr ""
-#: musicxml2ly.py:2171
+#: musicxml2ly.py:2576
msgid ""
"Copyright (c) 2005--2008 by\n"
" Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
" Reinhold Kainhofer <reinhold@kainhofer.com>\n"
msgstr ""
-#: musicxml2ly.py:2196
+#: musicxml2ly.py:2601
msgid "use lxml.etree; uses less memory and cpu time"
msgstr ""
-#: musicxml2ly.py:2202
+#: musicxml2ly.py:2607
msgid "input file is a zip-compressed MusicXML file"
msgstr ""
-#: musicxml2ly.py:2208
+#: musicxml2ly.py:2613
msgid "convert pitches in relative mode (default)"
msgstr ""
-#: musicxml2ly.py:2213
+#: musicxml2ly.py:2618
msgid "convert pitches in absolute mode"
msgstr ""
-#: musicxml2ly.py:2216
+#: musicxml2ly.py:2621
msgid "LANG"
msgstr ""
-#: musicxml2ly.py:2218
+#: musicxml2ly.py:2623
msgid ""
"use a different language file 'LANG.ly' and corresponding pitch names, e.g. "
"'deutsch' for deutsch.ly"
msgstr ""
-#: musicxml2ly.py:2224
+#: musicxml2ly.py:2629
msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
msgstr ""
-#: musicxml2ly.py:2230
+#: musicxml2ly.py:2635
msgid ""
"do not convert beaming information, use lilypond's automatic beaming instead"
msgstr ""
-#: musicxml2ly.py:2238
+#: musicxml2ly.py:2643
msgid "set output filename to FILE, stdout if -"
msgstr ""
-#: musicxml2ly.py:2320
+#: musicxml2ly.py:2726
#, python-format
msgid "unknown part in part-list: %s"
msgstr ""
-#: musicxml2ly.py:2382
+#: musicxml2ly.py:2788
msgid "Input is compressed, extracting raw MusicXML data from stdin"
msgstr ""
-#: musicxml2ly.py:2385
+#: musicxml2ly.py:2791
#, python-format
msgid "Input file %s is compressed, extracting raw MusicXML data"
msgstr ""
-#: musicxml2ly.py:2415
+#: musicxml2ly.py:2821
msgid "Reading MusicXML from Standard input ..."
msgstr ""
-#: musicxml2ly.py:2417
+#: musicxml2ly.py:2823
#, python-format
msgid "Reading MusicXML from %s ..."
msgstr ""
-#: musicxml2ly.py:2450
+#: musicxml2ly.py:2856
#, python-format
msgid "Output to `%s'"
msgstr ""
-#: musicxml2ly.py:2512
+#: musicxml2ly.py:2922
#, python-format
msgid "Unable to find input file %s"
msgstr ""
msgid "continuing, cross fingers"
msgstr ""
-#: accidental-engraver.cc:249
+#: accidental-engraver.cc:298
#, c-format
msgid "accidental typesetting list must begin with context-name: %s"
msgstr ""
-#: accidental-engraver.cc:276
-#, c-format
-msgid "ignoring unknown accidental rule: %s"
-msgstr ""
-
-#: accidental-engraver.cc:292
+#: accidental-engraver.cc:328
#, c-format
-msgid "pair or context-name expected for accidental rule, found %s"
+msgid "procedure or context-name expected for accidental rule, found %s"
msgstr ""
#: accidental.cc:187
msgid "adding font directory: %s"
msgstr ""
+#: font-config.cc:63
+msgid "Building font database."
+msgstr ""
+
#: general-scheme.cc:202
msgid "infinity or NaN encountered while converting Real number"
msgstr ""
msgid "setting to zero"
msgstr ""
-#: general-scheme.cc:422 output-ps.scm:62
+#: general-scheme.cc:422 output-ps.scm:63
msgid "Found infinity or nan in output. Substituting 0.0"
msgstr ""
msgid "type check for `%s' failed; value `%s' must be of type `%s'"
msgstr ""
-#: lily-lexer.cc:251
+#: lily-lexer.cc:252
msgid "include files are not allowed in safe mode"
msgstr ""
-#: lily-lexer.cc:270
+#: lily-lexer.cc:271
#, c-format
msgid "identifier name is a keyword: `%s'"
msgstr ""
-#: lily-lexer.cc:285
+#: lily-lexer.cc:286
#, c-format
msgid "error at EOF: %s"
msgstr ""
msgid "Processing `%s'"
msgstr ""
-#: lily-parser.cc:99
+#: lily-parser.cc:95
msgid "Parsing..."
msgstr ""
-#: lily-parser.cc:127
+#: lily-parser.cc:123
msgid "braces do not match"
msgstr ""
msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
msgstr ""
-#: main.cc:100
+#: main.cc:97
#, c-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"information.\n"
msgstr ""
-#: main.cc:106
+#: main.cc:103
msgid ""
" This program is free software; you can redistribute it and/or\n"
"modify it under the terms of the GNU General Public License version 2\n"
"Boston, MA 02111-1307, USA.\n"
msgstr ""
-#: main.cc:137
+#: main.cc:134
msgid "SYM[=VAL]"
msgstr ""
-#: main.cc:138
+#: main.cc:135
msgid ""
"set Scheme option SYM to VAL (default: #t).\n"
"Use -dhelp for help."
msgstr ""
-#: main.cc:141
+#: main.cc:138
msgid "EXPR"
msgstr ""
-#: main.cc:141
+#: main.cc:138
msgid "evaluate scheme code"
msgstr ""
#. Bug in option parser: --output =foe is taken as an abbreviation
#. for --output-format.
-#: main.cc:144
+#: main.cc:141
msgid "FORMATs"
msgstr ""
-#: main.cc:144
+#: main.cc:141
msgid "dump FORMAT,... Also as separate options:"
msgstr ""
-#: main.cc:145
-msgid "generate DVI (tex backend only)"
-msgstr ""
-
-#: main.cc:146
+#: main.cc:142
msgid "generate PDF (default)"
msgstr ""
-#: main.cc:147
+#: main.cc:143
msgid "generate PNG"
msgstr ""
-#: main.cc:148
+#: main.cc:144
msgid "generate PostScript"
msgstr ""
-#: main.cc:149
-msgid "generate TeX (tex backend only)"
-msgstr ""
-
-#: main.cc:151
+#: main.cc:146
msgid "FIELD"
msgstr ""
-#: main.cc:151
+#: main.cc:146
msgid ""
"dump header field FIELD to file\n"
"named BASENAME.FIELD"
msgstr ""
-#: main.cc:153
+#: main.cc:148
msgid "add DIR to search path"
msgstr ""
-#: main.cc:154
+#: main.cc:149
msgid "use FILE as init file"
msgstr ""
-#: main.cc:156
+#: main.cc:151
msgid "USER, GROUP, JAIL, DIR"
msgstr ""
-#: main.cc:156
+#: main.cc:151
msgid ""
"chroot to JAIL, become USER:GROUP\n"
"and cd into DIR"
msgstr ""
-#: main.cc:159
+#: main.cc:154
msgid "write output to FILE (suffix will be added)"
msgstr ""
-#: main.cc:160
+#: main.cc:155
msgid "relocate using directory of lilypond program"
msgstr ""
-#: main.cc:226
+#: main.cc:221
#, c-format
msgid ""
"Copyright (c) %s by\n"
msgstr ""
#. No version number or newline here. It confuses help2man.
-#: main.cc:254
+#: main.cc:249
#, c-format
msgid "Usage: %s [OPTION]... FILE..."
msgstr ""
-#: main.cc:256
+#: main.cc:251
#, c-format
msgid "Typeset music and/or produce MIDI from FILE."
msgstr ""
-#: main.cc:258
+#: main.cc:253
#, c-format
msgid "LilyPond produces beautiful music notation."
msgstr ""
-#: main.cc:260
+#: main.cc:255
#, c-format
msgid "For more information, see %s"
msgstr ""
-#: main.cc:262
+#: main.cc:257
#, c-format
msgid "Options:"
msgstr ""
-#: main.cc:266
-#, c-format
-msgid "Report bugs via %s"
-msgstr ""
-
-#: main.cc:312
+#: main.cc:307
#, c-format
msgid "expected %d arguments with jail, found: %u"
msgstr ""
-#: main.cc:326
+#: main.cc:321
#, c-format
msgid "no such user: %s"
msgstr ""
-#: main.cc:328
+#: main.cc:323
#, c-format
msgid "cannot get user id from user name: %s: %s"
msgstr ""
-#: main.cc:343
+#: main.cc:338
#, c-format
msgid "no such group: %s"
msgstr ""
-#: main.cc:345
+#: main.cc:340
#, c-format
msgid "cannot get group id from group name: %s: %s"
msgstr ""
-#: main.cc:353
+#: main.cc:348
#, c-format
msgid "cannot chroot to: %s: %s"
msgstr ""
-#: main.cc:360
+#: main.cc:355
#, c-format
msgid "cannot change group id to: %d: %s"
msgstr ""
-#: main.cc:366
+#: main.cc:361
#, c-format
msgid "cannot change user id to: %d: %s"
msgstr ""
-#: main.cc:372
+#: main.cc:367
#, c-format
msgid "cannot change working directory to: %s: %s"
msgstr ""
-#: main.cc:619
+#: main.cc:607
#, c-format
msgid "exception caught: %s"
msgstr ""
msgid "transposition by %s makes alteration larger than double"
msgstr ""
-#: new-dynamic-engraver.cc:128
+#: new-dynamic-engraver.cc:129
#, c-format
msgid ""
"unknown crescendo style: %s\n"
msgid "Finding the ideal number of pages..."
msgstr ""
-#: optimal-page-breaking.cc:76
+#: optimal-page-breaking.cc:78
msgid "Fitting music on 1 page..."
msgstr ""
-#: optimal-page-breaking.cc:78
+#: optimal-page-breaking.cc:80
#, c-format
msgid "Fitting music on %d pages..."
msgstr ""
-#: optimal-page-breaking.cc:80
+#: optimal-page-breaking.cc:82
#, c-format
msgid "Fitting music on %d or %d pages..."
msgstr ""
-#: optimal-page-breaking.cc:157 page-turn-page-breaking.cc:226
+#: optimal-page-breaking.cc:159 page-turn-page-breaking.cc:226
#: paper-score.cc:146
msgid "Drawing systems..."
msgstr ""
msgid "GUILE signaled an error for the expression beginning here"
msgstr ""
-#: percent-repeat-engraver.cc:200
+#: percent-repeat-engraver.cc:202
msgid "unterminated percent repeat"
msgstr ""
msgid "remapping modulo 16"
msgstr ""
-#: performance.cc:101
+#: performance.cc:100
#, c-format
msgid "MIDI output to `%s'..."
msgstr ""
-#: phrasing-slur-engraver.cc:139
+#: phrasing-slur-engraver.cc:146
msgid "unterminated phrasing slur"
msgstr ""
msgid "cannot end slur"
msgstr ""
-#: slur.cc:357
+#: slur.cc:359
#, c-format
msgid "Ignoring grob for slur: %s. avoid-slur not set?"
msgstr ""
msgid "weird stem size, check for narrow beams"
msgstr ""
-#: stem.cc:627
+#: stem.cc:623
#, c-format
msgid "flag `%s' not found"
msgstr ""
-#: stem.cc:638
+#: stem.cc:639
#, c-format
msgid "flag stroke `%s' not found"
msgstr ""
msgid "giving up"
msgstr ""
-#: parser.yy:729
+#: parser.yy:804
msgid "\\paper cannot be used in \\score, use \\layout instead"
msgstr ""
-#: parser.yy:753
+#: parser.yy:828
msgid "need \\paper for paper block"
msgstr ""
-#: parser.yy:1224
+#: parser.yy:1299
msgid "Grob name should be alphanumeric"
msgstr ""
-#: parser.yy:1522
+#: parser.yy:1597
msgid "second argument must be pitch list"
msgstr ""
-#: parser.yy:1549 parser.yy:1554 parser.yy:2026
+#: parser.yy:1624 parser.yy:1629 parser.yy:2101
msgid "have to be in Lyric mode for lyrics"
msgstr ""
-#: parser.yy:1651
+#: parser.yy:1726
msgid "expecting string as script definition"
msgstr ""
-#: parser.yy:1806 parser.yy:1856
+#: parser.yy:1881 parser.yy:1931
#, c-format
msgid "not a duration: %d"
msgstr ""
-#: parser.yy:1980
+#: parser.yy:2055
msgid "have to be in Note mode for notes"
msgstr ""
-#: parser.yy:2041
+#: parser.yy:2116
msgid "have to be in Chord mode for chords"
msgstr ""
msgid "program too old: %s (file requires: %s)"
msgstr ""
-#: backend-library.scm:19 lily.scm:777 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:761 ps-to-png.scm:58
#, scheme-format
msgid "Invoking `~a'..."
msgstr ""
msgid "`~a' failed (~a)"
msgstr ""
-#: backend-library.scm:116 framework-tex.scm:344 framework-tex.scm:369
+#: backend-library.scm:116
#, scheme-format
msgid "Converting to `~a'..."
msgstr ""
msgid "translator listens to nonexisting event class ~A"
msgstr ""
-#: define-markup-commands.scm:599
+#: define-markup-commands.scm:569
msgid "no systems found in \\score markup, does it have a \\layout block?"
msgstr ""
-#: define-markup-commands.scm:2428
+#: define-markup-commands.scm:2387
#, scheme-format
msgid "Cannot find glyph ~a"
msgstr ""
-#: define-markup-commands.scm:2737
+#: define-markup-commands.scm:2696
#, scheme-format
msgid "not a valid duration string: ~a"
msgstr ""
msgstr ""
#: define-music-types.scm:693
-msgid "See music-types.scm for supported repeats"
+msgid "See define-music-types.scm for supported repeats"
msgstr ""
#: document-backend.scm:99
msgid "unknown Grob interface: ~S"
msgstr ""
-#: documentation-lib.scm:48
+#: documentation-lib.scm:49
#, scheme-format
msgid "Processing ~S..."
msgstr ""
-#: documentation-lib.scm:164
+#: documentation-lib.scm:165
#, scheme-format
msgid "Writing ~S..."
msgstr ""
-#: documentation-lib.scm:186
+#: documentation-lib.scm:187
#, scheme-format
msgid "cannot find description for property ~S (~S)"
msgstr ""
+#: flag-styles.scm:81
+#, scheme-format
+msgid "flag stroke `~a' or `~a' not found"
+msgstr ""
+
#: framework-eps.scm:90
#, scheme-format
msgid "Writing ~a..."
msgstr ""
-#: framework-ps.scm:282
+#: framework-ps.scm:277
#, scheme-format
msgid "cannot embed ~S=~S"
msgstr ""
-#: framework-ps.scm:335
+#: framework-ps.scm:330
#, scheme-format
msgid "cannot extract file matching ~a from ~a"
msgstr ""
-#: framework-ps.scm:352
+#: framework-ps.scm:347
#, scheme-format
msgid "do not know how to embed ~S=~S"
msgstr ""
-#: framework-ps.scm:383
+#: framework-ps.scm:378
#, scheme-format
msgid "do not know how to embed font ~s ~s ~s"
msgstr ""
-#: framework-ps.scm:753
+#: framework-ps.scm:748
#, scheme-format
msgid "cannot convert <stdout> to ~S"
msgstr ""
-#: framework-ps.scm:772 framework-ps.scm:775
-#, scheme-format
-msgid "cannot generate ~S using the postscript back-end"
-msgstr ""
-
-#: framework-ps.scm:782
+#: framework-ps.scm:771
msgid ""
"\n"
"The PostScript backend does not support the system-by-system \n"
" %% ****************************************************************\n"
msgstr ""
-#: framework-tex.scm:361
-#, scheme-format
-msgid "TeX file name must not contain whitespace: `~a'"
-msgstr ""
-
#: graphviz.scm:53
#, scheme-format
msgid "Writing graph `~a'..."
msgid "Error in beam quanting. Expected ~S 0, found ~S."
msgstr ""
-#: layout-page-layout.scm:124
+#: layout-page-layout.scm:126
msgid "Can't fit systems on page -- ignoring between-system-padding"
msgstr ""
-#: layout-page-layout.scm:458
+#: layout-page-layout.scm:463
msgid "Calculating page breaks..."
msgstr ""
-#: lily-library.scm:588
+#: lily-library.scm:602
#, scheme-format
msgid "unknown unit: ~S"
msgstr ""
-#: lily-library.scm:622
+#: lily-library.scm:636
#, scheme-format
msgid "no \\version statement found, please add~afor future compatibility"
msgstr ""
-#: lily-library.scm:630
+#: lily-library.scm:644
msgid "old relative compatibility not used"
msgstr ""
-#: lily.scm:178
+#: lily.scm:179
#, scheme-format
msgid "cannot find: ~A"
msgstr ""
-#: lily.scm:243
+#: lily.scm:228
#, scheme-format
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
msgstr ""
-#: lily.scm:641
+#: lily.scm:625
#, scheme-format
msgid "job ~a terminated with signal: ~a"
msgstr ""
-#: lily.scm:644
+#: lily.scm:628
#, scheme-format
msgid ""
"logfile ~a (exit ~a):\n"
"~a"
msgstr ""
-#: lily.scm:669 lily.scm:767
+#: lily.scm:653 lily.scm:751
#, scheme-format
msgid "failed files: ~S"
msgstr ""
-#: lily.scm:757
+#: lily.scm:741
#, scheme-format
msgid "Redirecting output to ~a..."
msgstr ""
msgid "Music head function must return Music object"
msgstr ""
-#: ly-syntax-constructors.scm:150
+#: ly-syntax-constructors.scm:154
#, scheme-format
msgid "Invalid property operation ~a"
msgstr ""
msgid "cannot find quoted music: `~S'"
msgstr ""
-#: music-functions.scm:990
+#: music-functions.scm:1198
#, scheme-format
msgid "unknown accidental style: ~S"
msgstr ""
-#: output-ps.scm:285
+#: output-ps.scm:294
msgid "utf-8-string encountered in PS backend"
msgstr ""
msgid "cannot decypher Pango description: ~a"
msgstr ""
-#: output-tex.scm:96
-#, scheme-format
-msgid "cannot find ~a in ~a"
-msgstr ""
-
-#: paper.scm:86
+#: paper.scm:104
msgid "set-global-staff-size: not in toplevel scope"
msgstr ""
-#: paper.scm:226
+#: paper.scm:244
#, scheme-format
msgid "This is not a \\layout {} object, ~S"
msgstr ""
-#: paper.scm:238
+#: paper.scm:256
#, scheme-format
-msgid "Unknown papersize: ~a"
+msgid "Unknown paper size: ~a"
msgstr ""
#. TODO: should raise (generic) exception with throw, and catch
#. that in parse-scm.cc
-#: paper.scm:253
+#: paper.scm:271
msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
msgstr ""
LINE_WIDTH = 'line-width'
LILYQUOTE = 'lilyquote'
NOFRAGMENT = 'nofragment'
+NOGETTEXT = 'nogettext'
NOINDENT = 'noindent'
NOQUOTE = 'noquote'
NORAGGED_RIGHT = 'noragged-right'
EXAMPLEINDENT,
FRAGMENT,
NOFRAGMENT,
+ NOGETTEXT,
NOINDENT,
PRINTFILENAME,
DOCTITLE,
self.do_options (os, self.type)
def verb_ly (self):
- return verb_ly_gettext (self.substring ('code'))
+ if NOGETTEXT in self.option_dict:
+ return self.substring ('code')
+ else:
+ return verb_ly_gettext (self.substring ('code'))
def ly (self):
contents = self.substring ('code')
file (path + '.txt', 'w').write ('image of music')
def relevant_contents (self, ly):
- return re.sub (r'\\(version|sourcefileline|sourcefilename)[^\n]*\n', '', ly)
+ return re.sub (r'\\(version|sourcefileline|sourcefilename)[^\n]*\n|' +
+ NOGETTEXT + '[,\]]', '', ly)
def link_all_output_files (self, output_dir, output_dir_files, destination):
existing, missing = self.all_output_files (output_dir, output_dir_files)
if test -z "$PYTHON_CFLAGS" -a "$PYTHON_CONFIG" != "no"; then
# Clean out junk: http://bugs.python.org/issue3290
# Python headers may need some -f* flags, leave them in.
- PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\|m\)\(\w\|-\|=\)\+//g'`
+ PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\|m\)\(\w\|-\|=\|,\)\+//g'`
PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
fi