@end ignore
+@item
+All of @code{\override}, @code{\revert}, @code{\set}, and
+@code{\unset} now work with the @code{\once} prefix for making
+one-time settings.
+@lilypond[quote,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \once \override NoteHead.color = #green
+ g4 a
+ \once \revert NoteHead.color
+ b c |
+ \revert NoteHead.color
+ f2 c |
+}
+@end lilypond
+
@item
When outputting MIDI, LilyPond will now store the @code{title}
defined in a score's @code{\header} block (or, if there is no
* General build system notes::
* Doc build::
* Website build::
-* Building an Ubuntu distro::
@end menu
runs website_post.py
Then some file copying
@end example
-
-@node Building an Ubuntu distro
-@section Building an Ubuntu distro
-
-
-Here's the short instruction on how to create lilybuntu iso image
-(Jonathan Kulp did this on a spare drive,
-but he supposes it can be done in a VM too):
-
-@enumerate
-
-@item
-Install ubuntu, reboot.
-@item
-Run all updates, reboot if asked.
-@item
-Enable src repos, refresh package lists.
-@item
-Install LilyPond build deps:
-@example
-sudo apt-get build-dep lilypond
-@end example
-@item
-Install git and autoconf:
-@example
-sudo apt-get install git-core gitk autoconf
-@end example
-
-@item
-Test to see whether everything works fine now:
-@enumerate
-@item
-use @command{lily-git.tcl} to grab source files
-@item
-go to source dir and do
-@example
-"./autogen.sh" ; make ; make doc
-@end example
-@item
-if all compiles, move on to iso creation...
-@end enumerate
-
-@item
-Download & install "remastersys":
-@uref{http://sourceforge.net/projects/remastersys/, http://sourceforge.net/projects/remastersys/}
-@item
-Copy @command{lily-git.tcl} script file into @file{/etc/skel/}.
-@item
-Modify @file{/etc/remastersys.conf} as desired (change @code{.iso} name,
-default live session username, etc).
-@item
-Remove non-essential desktop software as desired.
-@item
-Create iso:
-@example
-sudo remastersys dist
-@end example
-New iso is in @file{/home/remastersys/remastersys/}.
-@item
-Test iso by installing in VM and repeating steps above for
-getting source files and building lp and docs.
-
-@end enumerate
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@c Translators: Till Paala
@lilypond[quote,verbatim]
\chordmode {
- c1:5.6 c:3.7.8 c:3.6.13
+ c1:3.5.6 c:3.7.8 c:3.6.13
}
@end lilypond
@lilypond[quote,verbatim]
\chordmode {
- c4:5.15 c:5.20 c:5.25 c:5.30
+ c4:3.5.15 c:3.5.20 c:3.5.25 c:3.5.30
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\chordmode {
- c1:sus c:sus2 c:sus4 c:5.4^3
+ c1:5 c:sus2 c:sus4 c:5.4
}
@end lilypond
@cindex Cluster
@lilypond[quote,ragged-right,verbatim]
-\chordmode { c1:5.5-.5+ }
+\chordmode { c1:3.5.5-.5+ }
@end lilypond
Nur die zweite Umkehrung kann erstellt werden, indem eine
Guide, node Updating translation committishes.
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@c Translators: Till Paala
ChordsAndSymbols = {
\chordmode {
\powerChords
- e,,1:1.5
- a,,1:1.5.8
+ e,,1:5
+ a,,1:5.8
\set minimumFret = #8
- c,1:1.5
- f,1:1.5.8
+ c,1:5
+ f,1:5.8
}
\set minimumFret = #5
<a, e>1
mixedChords = \chordmode {
c,1
\powerChords
- b,,1:1.5
- fis,,1:1.5.8
+ b,,1:5
+ fis,,1:5.8
g,,1:m
}
\score {
@c Translators: Till Paala
-@c \version "2.16.0"
+@c \version "2.19.28"
@node Notationsübersicht
@appendix Notationsübersicht
@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
\powerChords
- c1:1.5
+ c1:5
}
@end lilypond
@lilypond[line-width=3\cm,noragged-right, notime]
\chordmode {
\powerChords
- c1:1.5.8
+ c1:5.8
}
@end lilypond
\time 3/4
a'1_\markup {
- \override #'(font-name . "Vera Bold")
- { Vera Bold }
+ \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
+ { Vera Oblique Bold }
}
@end lilypond
myStaffSize = #20
#(define fonts
(make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
+ "Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
(/ myStaffSize 20)))
}
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@node Notación de acordes
@section Notación de acordes
@lilypond[quote,verbatim]
\chordmode {
- c1:5.6 c:3.7.8 c:3.6.13
+ c1:3.5.6 c:3.7.8 c:3.6.13
}
@end lilypond
@lilypond[quote,verbatim]
\chordmode {
- c4:5.15 c:5.20 c:5.25 c:5.30
+ c4:3.5.15 c:3.5.20 c:3.5.25 c:3.5.30
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\chordmode {
- c1:sus c:sus2 c:sus4 c:5.4^3
+ c1:5 c:sus2 c:sus4 c:5.4
}
@end lilypond
interpreta en último lugar.
@lilypond[quote,ragged-right,verbatim]
-\chordmode { c1:5.5-.5+ }
+\chordmode { c1:3.5.5-.5+ }
@end lilypond
Sólo se puede crear la segunda inversión mediante la adición de un
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@node Instrumentos de cuerda con trastes
@section Instrumentos de cuerda con trastes
ChordsAndSymbols = {
\chordmode {
\powerChords
- e,,1:1.5
- a,,1:1.5.8
+ e,,1:5
+ a,,1:5.8
\set minimumFret = #8
- c,1:1.5
- f,1:1.5.8
+ c,1:5
+ f,1:5.8
}
\set minimumFret = #5
<a, e>1
mixedChords = \chordmode {
c,1
\powerChords
- b,,1:1.5
- fis,,1:1.5.8
+ b,,1:5
+ fis,,1:5.8
g,,1:m
}
\score {
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.16.0"
+@c \version "2.19.28"
@node Tablas del manual sobre notación
@appendix Tablas del manual sobre notación
@tab
@code{1.5}
@tab
-@code{\powerChords c1:1.5}
+@code{\powerChords c1:5}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
-\chordmode { \powerChords c1:1.5 }
+\chordmode { \powerChords c1:5 }
@end lilypond
@item
@tab
@code{1.5.8}
@tab
-@code{\powerChords c1:1.5.8}
+@code{\powerChords c1:5.8}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
- \chordmode { \powerChords c1:1.5.8 }
+ \chordmode { \powerChords c1:5.8 }
@end lilypond
@end multitable
\time 3/4
a'1_\markup {
- \override #'(font-name . "Vera Bold")
- { Vera Bold }
+ \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
+ { Vera Oblique Bold }
}
@end lilypond
\paper {
#(define fonts
(make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
+ "Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
(/ staff-height pt 20)))
}
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@c Translators: Valentin Villenave,Jean-Charles Malahieude
@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@lilypond[quote,verbatim]
\chordmode {
- c1:5.6 c:3.7.8 c:3.6.13
+ c1:3.5.6 c:3.7.8 c:3.6.13
}
@end lilypond
@lilypond[quote,verbatim]
\chordmode {
- c4:5.15 c:5.20 c:5.25 c:5.30
+ c4:3.5.15 c:3.5.20 c:3.5.25 c:3.5.30
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\chordmode {
- c1:sus c:sus2 c:sus4 c:5.4^3
+ c1:5 c:sus2 c:sus4 c:5.4
}
@end lilypond
parce qu'elle est indiquée en dernier :
@lilypond[quote,ragged-right,verbatim]
-\chordmode { c1:5.5-.5+ }
+\chordmode { c1:3.5.5-.5+ }
@end lilypond
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@c Translators: Matthieu Jacquot
@c Translation checkers: Jean-Charles Malahieude
ChordsAndSymbols = {
\chordmode {
\powerChords
- e,,1:1.5
- a,,1:1.5.8
+ e,,1:5
+ a,,1:5.8
\set minimumFret = #8
- c,1:1.5
- f,1:1.5.8
+ c,1:5
+ f,1:5.8
}
\set minimumFret = #5
<a, e>1
mixedChords = \chordmode {
c,1
\powerChords
- b,,1:1.5
- fis,,1:1.5.8
+ b,,1:5
+ fis,,1:5.8
g,,1:m
}
\score {
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.16.0"
+@c \version "2.19.28"
@c Translators: Frédéric Chiasson, Jean-Charles Malahieude
@tab
@code{1.5}
@tab
-@code{\powerChords c1:1.5}
+@code{\powerChords c1:5}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
-\chordmode { \powerChords c1:1.5 }
+\chordmode { \powerChords c1:5 }
@end lilypond
@item
@tab
@code{1.5.8}
@tab
-@code{\powerChords c1:1.5.8}
+@code{\powerChords c1:5.8}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
- \chordmode { \powerChords c1:1.5.8 }
+ \chordmode { \powerChords c1:5.8 }
@end lilypond
@end multitable
\time 3/4
a'1_\markup {
- \override #'(font-name . "Vera Bold")
- { Vera Bold }
+ \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
+ { Vera Oblique Bold }
}
@end lilypond
\paper {
#(define fonts
(make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
+ "Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
(/ staff-height pt 20)))
}
@uref{http://www.philholmes.net}
Build unentangler, Bug squad member
-@item Ian Hulin:
-Core developer
-
@item David Kastrup:
@email{dak@@gnu.org},
hard core developer, user and programming interfaces, bug squashing and
@email{wl@@gnu.org},
Fonts, bug squasher
-@item Joe Neeman:
-Core developer
-
@item Han-Wen Nienhuys:
@email{hanwen@@xs4all.nl},
@uref{http://www.xs4all.nl/~hanwen/},
@item Mark Polesky:
Documentation, Code cleanup
-@item Mike Solomon:
-@email{mike@@mikesolomon.org},
-Core developer, Frog meister
-
@item Carl Sorensen:
@email{c_sorensen@@byu.edu},
Core developer
@email{bordage.bertrand@@gmail.com},
Core developer, font designer
+@item Ian Hulin:
+Core developer
+
@item Reinhold Kainhofer:
@email{reinhold@@kainhofer.com},
@uref{http://reinhold.kainhofer.com},
@item Jonathan Kulp:
Assistant documentation editor
+@item Joe Neeman:
+Core developer
+
@item John Mandereau:
@email{john.mandereau@@free.fr},
Translation meister
@uref{http://www.juergen-reuter.de},
Ancient notation
+@item Mike Solomon:
+@email{mike@@mikesolomon.org},
+Core developer, Frog meister
+
@item Erik Sandberg:
Bug meister
@c use commas not colons
+Federico Bruni,
Dan Eble,
-Rutger Hofmann,
Marc Hohl,
-Felix Janda,
-Thomas Klausner,
+Masamichi Hosoda,
James Lowe,
-Andrew Main,
Thomas Morley,
+Paul Morris,
David Nalesnik,
Keith OHara,
Benkő Pál,
Julien Rioux,
Devon Schudy,
-Adam Spiers,
Heikki Tauriainen
@c no comma for last entry
@c use commas not colons
+Masamichi Hosoda,
Abraham Lee
+
@c no comma for last entry
@end macro
@c use commas not colons
+Simon Albrecht,
Federico Bruni,
Colin Campbell,
-Eluze,
Phil Holmes,
-Marek Klein,
Ralph Palmer
@c no comma for last entry
Colin Campbell,
Eluze,
Marc Hohl,
+Phil Holmes,
Marek Klein,
Alex Loomis,
Kieren MacMillan,
+Thomas Morley,
Tim McNamara,
-Paul Morris
+Paul Morris,
David Nalesnik,
Urs Liska,
Ralph Palmer,
Andrew Hawryluk,
Christian Hitz,
Karin Hoethker,
+Rutger Hofmann,
Marc Hohl,
Bernard Hurley,
Yoshinobu Ishizaki,
Chris Jackson,
+Felix Janda,
David Jedlinsky,
Heikki Junes,
Michael Käppler,
+Thomas Klausner,
Marek Klein,
Michael Krause,
Jean-Baptiste Lamy,
Jonatan Liljedahl,
Peter Lutek,
+Andrew Main,
Kieren MacMillan,
Hendrik Maryns,
Thomas Morgan,
Marc Hohl,
Chris Jackson,
Alexander Kobel,
+Abraham Lee,
Keith OHara,
Carsten Steger,
Arno Waschk,
\time 3/4
a'1_\markup {
- \override #'(font-name . "Vera Bold")
- { Vera Bold }
+ \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
+ { Vera Oblique Bold }
}
@end lilypond
\paper {
#(define fonts
(make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
+ "Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
(/ staff-height pt 20)))
}
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@c Translators: Yoshiki Sawada
@c Translation status: post-GDP
@lilypond[quote,verbatim]
\chordmode {
- c1:5.6 c:3.7.8 c:3.6.13
+ c1:3.5.6 c:3.7.8 c:3.6.13
}
@end lilypond
@lilypond[quote,verbatim]
\chordmode {
- c4:5.15 c:5.20 c:5.25 c:5.30
+ c4:3.5.15 c:3.5.20 c:3.5.25 c:3.5.30
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\chordmode {
- c1:sus c:sus2 c:sus4 c:5.4^3
+ c1:5 c:sus2 c:sus4 c:5.4
}
@end lilypond
増和音が作り出されます。
@lilypond[quote,ragged-right,verbatim]
-\chordmode { c1:5.5-.5+ }
+\chordmode { c1:3.5.5-.5+ }
@end lilypond
第二転回和音を作り出すには、低音を追加するしかありません。@c
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@c Translators: Yoshiki Sawada
@c Translation status: post-GDP
ChordsAndSymbols = {
\chordmode {
\powerChords
- e,,1:1.5
- a,,1:1.5.8
+ e,,1:5
+ a,,1:5.8
\set minimumFret = #8
- c,1:1.5
- f,1:1.5.8
+ c,1:5
+ f,1:5.8
}
\set minimumFret = #5
<a, e>1
mixedChords = \chordmode {
c,1
\powerChords
- b,,1:1.5
- fis,,1:1.5.8
+ b,,1:5
+ fis,,1:5.8
g,,1:m
}
\score {
\time 3/4
a'1_\markup {
- \override #'(font-name . "Vera Bold")
- { Vera Bold }
+ \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
+ { Vera Oblique Bold }
}
@end lilypond
\paper {
#(define fonts
(make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
+ "Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
(/ staff-height pt 20)))
}
@ The `line-width' is for \header.
@li lypond[quote,verbatim,ragged-right,line-width]
-\version "2.19.2"
+\version "2.19.25"
\header {
dedication = "dedication"
title = "Title"
@funindex \once
@funindex once
-Both the @code{\override} and the @code{\set} commands may be prefixed
-by @code{\once}. This causes the following @code{\override} or
-@code{\set} command to be effective only during the current musical
+@code{\override}, @code{\revert}. @code{\set}, and @code{\unset}
+commands may be prefixed with @code{\once}. This causes such a
+command to be effective only during the current musical
moment before the property reverts back to its previous value (this can
be different from the default if another @code{\override} is still in
effect). Using the same example, we can change the color of a single
e4 f |
\once \override NoteHead.color = #green
g4 a
- \revert NoteHead.color
+ \once \revert NoteHead.color
b c |
+ \revert NoteHead.color
+ f2 c |
}
@end lilypond
}
@end lilypond
-However, predefined commands of the form @code{\@dots{}Neutral},
-@code{\@dots{}Off} and @code{\un@dots{}} use @code{\revert} internally
-rather than @code{\override} so prefixing these with @code{\once} has no
-effect.
-
-
@node The overrideProperty command
@unnumberedsubsubsec The @code{@bs{}overrideProperty} command
@cindex \once
-Preceding a @code{\set} command by @code{\once} makes the
-setting apply to only a single time-step:
+Preceding a @code{\set} or @code{\unset} command by @code{\once}
+makes the setting apply to only a single time-step:
@lilypond[quote,fragment,verbatim]
c''4
@funindex \once
@cindex overriding for only one moment
-@code{\once} can be used with @code{\override}
+@code{\once} can be used with @code{\override} or @code{\revert}
to affect only the current time step:
@lilypond[quote,verbatim]
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@node Chord notation
@end lilypond
@noindent
-Note that both @code{c:5} and @code{c} produce a C major triad.
+As a special exception, @code{c:5} produces a @q{power chord} only
+consisting of root and fifth.
Since an unaltered 11 does not sound good when combined with an
unaltered 13, the 11 is removed from a @code{:13} chord (unless it
@lilypond[quote,verbatim]
\chordmode {
- c1:5.6 c:3.7.8 c:3.6.13
+ c1:3.5.6 c:3.7.8 c:3.6.13
}
@end lilypond
@lilypond[quote,verbatim]
\chordmode {
- c4:5.15 c:5.20 c:5.25 c:5.30
+ c4:3.5.15 c:3.5.20 c:3.5.25 c:3.5.30
}
@end lilypond
@funindex sus
The modifier @code{sus} can be added to the modifier string to
-create suspended chords. This removes the 3rd step from the chord.
-Append either @code{2} or @code{4} to add the 2nd or 4th step to the
-chord. @code{sus} is equivalent to @code{^3}; @code{sus4} is
-equivalent to @code{.4^3}.
+create suspended chords. This removes the 3rd step from the
+chord. Append either @code{2} or @code{4} to add the 2nd or 4th
+step to the chord. When @code{sus} is followed by either a 2nd or
+4th step, it is equivalent to @code{^3}, otherwise to @code{sus4},
+namely @code{5.4}.
@lilypond[quote,ragged-right,verbatim]
\chordmode {
- c1:sus c:sus2 c:sus4 c:5.4^3
+ c1:sus c:sus2 c:sus4 c:5.4
}
@end lilypond
interpreted last.
@lilypond[quote,ragged-right,verbatim]
-\chordmode { c1:5.5-.5+ }
+\chordmode { c1:3.5.5-.5+ }
@end lilypond
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.21"
+@c \version "2.19.28"
@node Fretted string instruments
@section Fretted string instruments
ChordsAndSymbols = {
\chordmode {
\powerChords
- e,,1:1.5
- a,,1:1.5.8
+ e,,1:5
+ a,,1:5.8
\set minimumFret = #8
- c,1:1.5
- f,1:1.5.8
+ c,1:5
+ f,1:5.8
}
\set minimumFret = #5
<a, e>1
mixedChords = \chordmode {
c,1
\powerChords
- b,,1:1.5
- fis,,1:1.5.8
+ b,,1:5
+ fis,,1:5.8
g,,1:m
}
\score {
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.16.0"
+@c \version "2.19.28"
@node Notation manual tables
@appendix Notation manual tables
@tab
@code{1.5}
@tab
-@code{\powerChords c1:1.5}
+@code{\powerChords c1:5}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
-\chordmode { \powerChords c1:1.5 }
+\chordmode { \powerChords c1:5 }
@end lilypond
@item
@tab
@code{1.5.8}
@tab
-@code{\powerChords c1:1.5.8}
+@code{\powerChords c1:5.8}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
- \chordmode { \powerChords c1:1.5.8 }
+ \chordmode { \powerChords c1:5.8 }
@end lilypond
@end multitable
left braces; right braces may be obtained by rotation, see
@ref{Rotating objects}.
-Three families of text fonts are made available: the @emph{roman}
-(serif) font, that defaults to New Century Schoolbook, the
-@emph{sans} font and the monospaced @emph{typewriter} font -- these
-last two families are determined by the Pango installation.
-
-@warning{There are no default fonts associated with the @emph{sans}
-and @emph{typewriter} font-families. An input file that specifies
-either of these can lead to different output on different computers.
-To ensure consistent output among multiple platforms, fonts must be
-specified by name, and those fonts must be available on any system
-that processes the file. See @ref{Single entry fonts} and
-@ref{Entire document fonts}.}
+Three families of text fonts are made available:
+@itemize
+@item
+The @emph{roman} (serif) font,
+which defaults to LilyPond Serif (an alias of TeX Gyre Schola).
+@item
+The @emph{sans} font,
+which defaults to LilyPond Sans Serif (an alias of TeX Gyre Heros).
+@item
+The @emph{typewriter} (monospaced) font,
+which defaults to LilyPond Monospace (an alias of TeX Gyre Cursor).
+@end itemize
Each family may include different shapes and series. The following
example demonstrates the ability to select alternate families, shapes,
\time 3/4
a'1_\markup {
- \override #'(font-name . "Vera Bold")
- { Vera Bold }
+ \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
+ { Vera Oblique Bold }
}
@end lilypond
@cindex listing available fonts
@cindex available fonts, listing
+@var{font-name} can be described using a comma-separated list of @q{fonts}
+and a white-space separated list of @q{styles}.
+As long as the @q{font} in the list is installed
+and contains requested glyph, it will be used,
+otherwise the @emph{next} font in the list will be used instead.
+
@funindex show-available-fonts
Running lilypond with the following option displays a list of all
the @emph{roman}, @emph{sans} and @emph{typewriter} font families by
specifying them, in that order, as shown in the example below, which
automatically scales the fonts with the value set for the global staff
-size. For an explanation of fonts, see @ref{Fonts explained}.
+size. Similar to @ref{Single entry fonts}, it can be described using a
+comma-separated list of @q{fonts}. However, font @q{styles} can not be
+described. For an explanation of fonts, see @ref{Fonts explained}.
@cindex font families, setting
@cindex fonts, changing for entire document
\paper {
#(define fonts
(make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
+ "Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
(/ staff-height pt 20)))
}
-%% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.di.unimi.it
-%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
-%% and then run scripts/auxiliar/makelsr.py
-%%
-%% This file is in the public domain.
+% DO NOT EDIT this file manually; it is automatically
+% generated from Documentation/snippets/new
+% Make any changes in Documentation/snippets/new/
+% and then run scripts/auxiliar/makelsr.py
+%
+% This file is in the public domain.
+%% Note: this file works from version 2.18.0
\version "2.18.0"
\header {
g2 e4
a2 f4
g2.
-}
+} % begin verbatim
+
\addlyrics {
\set stanza = #"1. "
Hi, my name is Bert.
}
\addlyrics {
- \override StanzaNumber.font-name = #"DejaVu"
+ \override StanzaNumber.font-name = #"DejaVu Sans"
\set stanza = #"2. "
\override LyricText.font-family = #'typewriter
Oh, ché -- ri, je t'aime
-%% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.di.unimi.it
-%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
-%% and then run scripts/auxiliar/makelsr.py
-%%
-%% This file is in the public domain.
+% DO NOT EDIT this file manually; it is automatically
+% generated from Documentation/snippets/new
+% Make any changes in Documentation/snippets/new/
+% and then run scripts/auxiliar/makelsr.py
+%
+% This file is in the public domain.
+%% Note: this file works from version 2.18.0
\version "2.18.0"
\header {
run
lilypond -dshow-available-fonts blabla
to show all fonts available in the process log.
- %}
+ %} % begin verbatim
+
#(define fonts
(make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
+ "Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
;; "Helvetica"
;; "Courier"
-%% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.di.unimi.it
-%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
-%% and then run scripts/auxiliar/makelsr.py
-%%
-%% This file is in the public domain.
-\version "2.18.0"
+% DO NOT EDIT this file manually; it is automatically
+% generated from Documentation/snippets/new
+% Make any changes in Documentation/snippets/new/
+% and then run scripts/auxiliar/makelsr.py
+%
+% This file is in the public domain.
+%% Note: this file works from version 2.19.28
+\version "2.19.28"
\header {
lsrtags = "contexts-and-engravers"
Rewrite of @code{Accidental_placement::add_accidental} from @file{lily/accidental-placement.cc}."
(let ((pitch (ly:accidental-placement::accidental-pitch accidental-grob)))
(set! (ly:grob-parent accidental-grob X) grob)
- (set! (ly:grob-property accidental-grob 'X-offset)
- ly:grob::x-parent-positioning)
(let* ((accidentals (ly:grob-object grob 'accidental-grobs))
(handle (assq (ly:pitch-notename pitch) accidentals))
(entry (if handle (cdr handle) '())))
--- /dev/null
+\version "2.18.0"
+
+\header {
+ lsrtags = "really-simple, vocal-music"
+
+ texidoc = "
+Fonts can be changed independently for each stanza, including the font
+used for printing the stanza number.
+
+"
+ doctitle = "Changing stanza fonts"
+} % begin verbatim
+
+\new Voice {
+ \time 3/4
+ g2 e4
+ a2 f4
+ g2.
+}
+\addlyrics {
+ \set stanza = #"1. "
+ Hi, my name is Bert.
+}
+\addlyrics {
+ \override StanzaNumber.font-name = #"DejaVu Sans"
+ \set stanza = #"2. "
+ \override LyricText.font-family = #'typewriter
+ Oh, ché -- ri, je t'aime
+}
--- /dev/null
+\version "2.18.0"
+
+\header {
+ lsrtags = "text, tweaks-and-overrides"
+
+ texidoc = "
+The default font families for text can be overridden with
+@code{make-pango-font-tree}.
+
+"
+ doctitle = "Changing the default text font family"
+} % begin verbatim
+
+\paper {
+ % change for other default global staff size.
+ myStaffSize = #20
+ %{
+ run
+ lilypond -dshow-available-fonts blabla
+ to show all fonts available in the process log.
+ %}
+
+ #(define fonts
+ (make-pango-font-tree "Times New Roman"
+ "Nimbus Sans,Nimbus Sans L"
+ "Luxi Mono"
+;; "Helvetica"
+;; "Courier"
+ (/ myStaffSize 20)))
+}
+
+\relative c'' {
+ c4^\markup {
+ roman: foo \bold bla \italic bar \italic \bold baz
+ }
+ c'4_\markup {
+ \override #'(font-family . sans)
+ {
+ sans: foo \bold bla \italic bar \italic \bold baz
+ }
+ }
+ c'2^\markup {
+ \override #'(font-family . typewriter)
+ {
+ mono: foo \bold bla \italic bar \italic \bold baz
+ }
+ }
+}
--- /dev/null
+\version "2.19.28"
+
+\header {
+ lsrtags = "contexts-and-engravers"
+
+ texidoc = "
+This example demonstrates how the ambitus engraver may be defined on
+the user side, with a Scheme engraver.
+
+This is basically a rewrite in Scheme of the code from
+@code{lily/ambitus-engraver.cc}.
+
+"
+ doctitle = "Defining an engraver in Scheme: ambitus engraver"
+}
+#(use-modules (oop goops))
+
+%%%
+%%% Grob utilities
+%%%
+%%% These are literal rewrites of some C++ methods used by the ambitus engraver.
+
+#(define (ly:separation-item::add-conditional-item grob grob-item)
+ "Add @var{grob-item} to the array of conditional elements of @var{grob}.
+Rewrite of @code{Separation_item::add_conditional_item} from @file{lily/separation-item.cc}."
+ (ly:pointer-group-interface::add-grob grob 'conditional-elements grob-item))
+
+#(define (ly:accidental-placement::accidental-pitch accidental-grob)
+ "Get the pitch from the grob cause of @var{accidental-grob}.
+Rewrite of @code{accidental_pitch} from @file{lily/accidental-placement.cc}."
+ (ly:event-property (ly:grob-property (ly:grob-parent accidental-grob Y) 'cause)
+ 'pitch))
+
+#(define (ly:accidental-placement::add-accidental grob accidental-grob)
+ "Add @var{accidental-grob}, an @code{Accidental} grob, to the
+list of the accidental grobs of @var{grob}, an @code{AccidentalPlacement}
+grob.
+Rewrite of @code{Accidental_placement::add_accidental} from @file{lily/accidental-placement.cc}."
+ (let ((pitch (ly:accidental-placement::accidental-pitch accidental-grob)))
+ (set! (ly:grob-parent accidental-grob X) grob)
+ (let* ((accidentals (ly:grob-object grob 'accidental-grobs))
+ (handle (assq (ly:pitch-notename pitch) accidentals))
+ (entry (if handle (cdr handle) '())))
+ (set! (ly:grob-object grob 'accidental-grobs)
+ (assq-set! accidentals
+ (ly:pitch-notename pitch)
+ (cons accidental-grob entry))))))
+
+%%%
+%%% Ambitus data structure
+%%%
+
+%%% The <ambitus> class holds the various grobs that are created
+%%% to print an ambitus:
+%%% - ambitus-group: the grob that groups all the components of an ambitus
+%%% (Ambitus grob);
+%%% - ambitus-line: the vertical line between the upper and lower ambitus
+%%% notes (AmbitusLine grob);
+%%% - ambitus-up-note and ambitus-down-note: the note head and accidental
+%%% for the lower and upper note of the ambitus (see <ambitus-note> class
+%%% below).
+%%% The other slots define the key and clef context of the engraver:
+%%% - start-c0: position of middle c at the beginning of the piece. It
+%%% is used to place the ambitus notes according to their pitch;
+%%% - start-key-sig: the key signature at the beginning of the piece. It
+%%% is used to determine if accidentals shall be printed next to ambitus
+%%% notes.
+
+#(define-class <ambitus> ()
+ (ambitus-group #:accessor ambitus-group)
+ (ambitus-line #:accessor ambitus-line)
+ (ambitus-up-note #:getter ambitus-up-note
+ #:init-form (make <ambitus-note>))
+ (ambitus-down-note #:getter ambitus-down-note
+ #:init-form (make <ambitus-note>))
+ (start-c0 #:accessor ambitus-start-c0
+ #:init-value #f)
+ (start-key-sig #:accessor ambitus-start-key-sig
+ #:init-value '()))
+
+%%% Accessor for the lower and upper note data of an ambitus
+#(define-method (ambitus-note (ambitus <ambitus>) direction)
+ "If @var{direction} is @code{UP}, then return the upper ambitus note
+of @var{ambitus}, otherwise return the lower ambitus note."
+ (if (= direction UP)
+ (ambitus-up-note ambitus)
+ (ambitus-down-note ambitus)))
+
+%%% The <ambitus-note> class holds the grobs that are specific to ambitus
+%%% (lower and upper) notes:
+%%% - head: an AmbitusNoteHead grob;
+%%% - accidental: an AmbitusAccidental grob, to be possibly printed next
+%%% to the ambitus note head.
+%%% Moreover:
+%%% - pitch is the absolute pitch of the note
+%%% - cause is the note event that causes this ambitus note, i.e. the lower
+%%% or upper note of the considered music sequence.
+
+#(define-class <ambitus-note> ()
+ (head #:accessor ambitus-note-head
+ #:init-value #f)
+ (accidental #:accessor ambitus-note-accidental
+ #:init-value #f)
+ (cause #:accessor ambitus-note-cause
+ #:init-value #f)
+ (pitch #:accessor ambitus-note-pitch
+ #:init-value #f))
+
+%%%
+%%% Ambitus engraving logics
+%%%
+%%% Rewrite of the code from @file{lily/ambitus-engraver.cc}.
+
+#(define (make-ambitus translator)
+ "Build an ambitus object: initialize all the grobs and their relations.
+
+The Ambitus grob contain all other grobs:
+ Ambitus
+ |- AmbitusLine
+ |- AmbitusNoteHead for upper note
+ |- AmbitusAccidental for upper note
+ |- AmbitusNoteHead for lower note
+ |- AmbitusAccidental for lower note
+
+The parent of an accidental is the corresponding note head,
+and the accidental is set as the 'accidental-grob of the note head
+so that is printed by the function that prints notes."
+ ;; make the ambitus object
+ (let ((ambitus (make <ambitus>)))
+ ;; build the Ambitus grob, which will contain all other grobs
+ (set! (ambitus-group ambitus) (ly:engraver-make-grob translator 'Ambitus '()))
+ ;; build the AmbitusLine grob (line between lower and upper note)
+ (set! (ambitus-line ambitus) (ly:engraver-make-grob translator 'AmbitusLine '()))
+ ;; build the upper and lower AmbitusNoteHead and AmbitusAccidental
+ (for-each (lambda (direction)
+ (let ((head (ly:engraver-make-grob translator 'AmbitusNoteHead '()))
+ (accidental (ly:engraver-make-grob translator 'AmbitusAccidental '()))
+ (group (ambitus-group ambitus)))
+ ;; The parent of the AmbitusAccidental grob is the
+ ;; AmbitusNoteHead grob
+ (set! (ly:grob-parent accidental Y) head)
+ ;; The AmbitusAccidental grob is set as the accidental-grob
+ ;; object of the AmbitusNoteHead. This is later used by the
+ ;; function that prints notes.
+ (set! (ly:grob-object head 'accidental-grob) accidental)
+ ;; both the note head and the accidental grobs are added
+ ;; to the main ambitus grob.
+ (ly:axis-group-interface::add-element group head)
+ (ly:axis-group-interface::add-element group accidental)
+ ;; the note head and the accidental grobs are added to the
+ ;; ambitus object
+ (set! (ambitus-note-head (ambitus-note ambitus direction))
+ head)
+ (set! (ambitus-note-accidental (ambitus-note ambitus direction))
+ accidental)))
+ (list DOWN UP))
+ ;; The parent of the ambitus line is the lower ambitus note head
+ (set! (ly:grob-parent (ambitus-line ambitus) X)
+ (ambitus-note-head (ambitus-note ambitus DOWN)))
+ ;; the ambitus line is added to the ambitus main grob
+ (ly:axis-group-interface::add-element (ambitus-group ambitus) (ambitus-line ambitus))
+ ambitus))
+
+#(define-method (initialize-ambitus-state (ambitus <ambitus>) translator)
+ "Initialize the state of @var{ambitus}, by getting the starting
+position of middle C and key signature from @var{translator}'s context."
+ (if (not (ambitus-start-c0 ambitus))
+ (begin
+ (set! (ambitus-start-c0 ambitus)
+ (ly:context-property (ly:translator-context translator)
+ 'middleCPosition
+ 0))
+ (set! (ambitus-start-key-sig ambitus)
+ (ly:context-property (ly:translator-context translator)
+ 'keyAlterations)))))
+
+#(define-method (update-ambitus-notes (ambitus <ambitus>) note-grob)
+ "Update the upper and lower ambitus pithes of @var{ambitus}, using
+@var{note-grob}."
+ ;; Get the event that caused the note-grob creation
+ ;; and check that it is a note-event.
+ (let ((note-event (ly:grob-property note-grob 'cause)))
+ (if (ly:in-event-class? note-event 'note-event)
+ ;; get the pitch from the note event
+ (let ((pitch (ly:event-property note-event 'pitch)))
+ ;; if this pitch is lower than the current ambitus lower
+ ;; note pitch (or it has not been initialized yet),
+ ;; then this pitch is the new ambitus lower pitch,
+ ;; and conversely for upper pitch.
+ (for-each (lambda (direction pitch-compare)
+ (if (or (not (ambitus-note-pitch (ambitus-note ambitus direction)))
+ (pitch-compare pitch
+ (ambitus-note-pitch (ambitus-note ambitus direction))))
+ (begin
+ (set! (ambitus-note-pitch (ambitus-note ambitus direction))
+ pitch)
+ (set! (ambitus-note-cause (ambitus-note ambitus direction))
+ note-event))))
+ (list DOWN UP)
+ (list ly:pitch<? (lambda (p1 p2)
+ (ly:pitch<? p2 p1))))))))
+
+#(define-method (typeset-ambitus (ambitus <ambitus>) translator)
+ "Typeset the ambitus:
+- place the lower and upper ambitus notes according to their pitch and
+ the position of the middle C;
+- typeset or delete the note accidentals, according to the key signature.
+ An accidental, if it is to be printed, is added to an AccidentalPlacement
+ grob (a grob dedicated to the placement of accidentals near a chord);
+- both note heads are added to the ambitus line grob, so that a line should
+ be printed between them."
+ ;; check if there are lower and upper pitches
+ (if (and (ambitus-note-pitch (ambitus-note ambitus UP))
+ (ambitus-note-pitch (ambitus-note ambitus DOWN)))
+ ;; make an AccidentalPlacement grob, for placement of note accidentals
+ (let ((accidental-placement (ly:engraver-make-grob
+ translator
+ 'AccidentalPlacement
+ (ambitus-note-accidental (ambitus-note ambitus DOWN)))))
+ ;; For lower and upper ambitus notes:
+ (for-each (lambda (direction)
+ (let ((pitch (ambitus-note-pitch (ambitus-note ambitus direction))))
+ ;; set the cause and the staff position of the ambitus note
+ ;; according to the associated pitch
+ (set! (ly:grob-property (ambitus-note-head (ambitus-note ambitus direction))
+ 'cause)
+ (ambitus-note-cause (ambitus-note ambitus direction)))
+ (set! (ly:grob-property (ambitus-note-head (ambitus-note ambitus direction))
+ 'staff-position)
+ (+ (ambitus-start-c0 ambitus)
+ (ly:pitch-steps pitch)))
+ ;; determine if an accidental shall be printed for this note,
+ ;; according to the key signature
+ (let* ((handle (or (assoc (cons (ly:pitch-octave pitch)
+ (ly:pitch-notename pitch))
+ (ambitus-start-key-sig ambitus))
+ (assoc (ly:pitch-notename pitch)
+ (ambitus-start-key-sig ambitus))))
+ (sig-alter (if handle (cdr handle) 0)))
+ (cond ((= (ly:pitch-alteration pitch) sig-alter)
+ ;; the note alteration is in the key signature
+ ;; => it does not have to be printed
+ (ly:grob-suicide!
+ (ambitus-note-accidental (ambitus-note ambitus direction)))
+ (set! (ly:grob-object (ambitus-note-head (ambitus-note ambitus direction))
+ 'accidental-grob)
+ '()))
+ (else
+ ;; otherwise, the accidental shall be printed
+ (set! (ly:grob-property (ambitus-note-accidental
+ (ambitus-note ambitus direction))
+ 'alteration)
+ (ly:pitch-alteration pitch)))))
+ ;; add the AccidentalPlacement grob to the
+ ;; conditional items of the AmbitusNoteHead
+ (ly:separation-item::add-conditional-item
+ (ambitus-note-head (ambitus-note ambitus direction))
+ accidental-placement)
+ ;; add the AmbitusAccidental to the list of the
+ ;; AccidentalPlacement grob accidentals
+ (ly:accidental-placement::add-accidental
+ accidental-placement
+ (ambitus-note-accidental (ambitus-note ambitus direction)))
+ ;; add the AmbitusNoteHead grob to the AmbitusLine grob
+ (ly:pointer-group-interface::add-grob
+ (ambitus-line ambitus)
+ 'note-heads
+ (ambitus-note-head (ambitus-note ambitus direction)))))
+ (list DOWN UP))
+ ;; add the AccidentalPlacement grob to the main Ambitus grob
+ (ly:axis-group-interface::add-element (ambitus-group ambitus) accidental-placement))
+ ;; no notes ==> suicide the grobs
+ (begin
+ (for-each (lambda (direction)
+ (ly:grob-suicide! (ambitus-note-accidental (ambitus-note ambitus direction)))
+ (ly:grob-suicide! (ambitus-note-head (ambitus-note ambitus direction))))
+ (list DOWN UP))
+ (ly:grob-suicide! ambitus-line))))
+
+%%%
+%%% Ambitus engraver definition
+%%%
+#(define ambitus-engraver
+ (lambda (context)
+ (let ((ambitus #f))
+ ;; when music is processed: make the ambitus object, if not already built
+ (make-engraver
+ ((process-music translator)
+ (if (not ambitus)
+ (set! ambitus (make-ambitus translator))))
+ ;; set the ambitus clef and key signature state
+ ((stop-translation-timestep translator)
+ (if ambitus
+ (initialize-ambitus-state ambitus translator)))
+ ;; when a note-head grob is built, update the ambitus notes
+ (acknowledgers
+ ((note-head-interface engraver grob source-engraver)
+ (if ambitus
+ (update-ambitus-notes ambitus grob))))
+ ;; finally, typeset the ambitus according to its upper and lower notes
+ ;; (if any).
+ ((finalize translator)
+ (if ambitus
+ (typeset-ambitus ambitus translator)))))))
+
+%%%
+%%% Example
+%%%
+
+\score {
+ \new StaffGroup <<
+ \new Staff { c'4 des' e' fis' gis' }
+ \new Staff { \clef "bass" c4 des ~ des ees b, }
+ >>
+ \layout { \context { \Staff \consists #ambitus-engraver } }
+}
--- /dev/null
+\version "2.19.28"
+
+\header {
+ lsrtags = "chords, really-simple, template"
+
+ texidoc = "
+Want to prepare a lead sheet with a melody and chords? Look no further!
+
+
+"
+ doctitle = "Single staff template with notes and chords"
+}
+melody = \relative c' {
+ \clef treble
+ \key c \major
+ \time 4/4
+
+ f4 e8[ c] d4 g
+ a2 ~ a
+}
+
+harmonies = \chordmode {
+ c4:m f:min7 g:maj c:aug
+ d2:dim b4:5 e:sus
+}
+
+\score {
+ <<
+ \new ChordNames {
+ \set chordChanges = ##t
+ \harmonies
+ }
+ \new Staff \melody
+ >>
+ \layout{ }
+ \midi { }
+}
\voiceOne
- \set Score.markFormatter = #format-mark-box-numbers
- \override Score.VoltaBracket.font-name = #"sans"
- \override Score.VoltaBracket.extra-offset = #'(0 . 1)
- \override SpacingSpanner.uniform-stretching = ##t
+ \set Score.markFormatter = #format-mark-box-numbers
+ \override Score.VoltaBracket.font-name = #"LilyPond Sans Serif"
+ \override Score.VoltaBracket.extra-offset = #'(0 . 1)
+ \override SpacingSpanner.uniform-stretching = ##t
%% Measure 1
-%% DO NOT EDIT this file manually; it is automatically
-%% generated from LSR http://lsr.di.unimi.it
-%% Make any changes in LSR itself, or in Documentation/snippets/new/ ,
-%% and then run scripts/auxiliar/makelsr.py
-%%
-%% This file is in the public domain.
-\version "2.18.0"
+% DO NOT EDIT this file manually; it is automatically
+% generated from Documentation/snippets/new
+% Make any changes in Documentation/snippets/new/
+% and then run scripts/auxiliar/makelsr.py
+%
+% This file is in the public domain.
+%% Note: this file works from version 2.19.28
+\version "2.19.28"
\header {
lsrtags = "chords, really-simple, template"
harmonies = \chordmode {
c4:m f:min7 g:maj c:aug
- d2:dim b:sus
+ d2:dim b4:5 e:sus
}
\score {
\voiceOne
- \set Score.markFormatter = #format-mark-box-numbers
- \override Score.VoltaBracket.font-name = #"sans"
- \override Score.VoltaBracket.extra-offset = #'(0 . 1)
- \override SpacingSpanner.uniform-stretching = ##t
+ \set Score.markFormatter = #format-mark-box-numbers
+ \override Score.VoltaBracket.font-name = #"LilyPond Sans Serif"
+ \override Score.VoltaBracket.extra-offset = #'(0 . 1)
+ \override SpacingSpanner.uniform-stretching = ##t
%% Measure 1
@tab Do not output a printed score; has the same effect as
@code{-dno-print-pages}.
-@item
-@tab @code{svg}
-@tab Scalable Vector Graphics. This creates a single SVG file,
-without embedded fonts, for every page of output. It is recommended to
-install the Century Schoolbook fonts, included with your LilyPond
-installation, for optimal rendering. Under UNIX, simply copy these
-fonts from the LilyPond directory (typically
-@file{/usr/share/lilypond/VERSION/fonts/otf/}) to @file{~/.fonts/}.
-There is also an option @code{svg-woff} (below) for use of woff font
-files in the SVG backend.
-
@item
@tab @code{scm}
@tab Dump of the raw, internal Scheme-based drawing commands.
+@item
+@tab @code{svg}
+@tab Scalable Vector Graphics.
+This creates a single SVG file for every page of output.
+Font information is not embedded so the SVG viewer will require
+the fonts be available for optimal rendering.
+It is recommended that you do not use @q{font aliases}
+or @q{font lists} in case your SVG viewer is not able to handle them.
+Also see the @code{svg-woff} option.
+@end multitable
+
+@noindent
+@strong{Note for svg backend:}
+LilyPond's default fonts (@code{LilyPond Serif}, @code{LilyPond Sans Serif}
+and @code{LilyPond Monospace}) are just @emph{local} font aliases;
+so when using the @code{svg} backend command it is required that
+you explicitly set the default fonts;
+
+@quotation
+@verbatim
+\paper {
+ #(define fonts
+ (make-pango-font-tree "TeX Gyre Schola"
+ "TeX Gyre Heros"
+ "TeX Gyre Cursor"
+ (/ staff-height pt 20)))
+}
+@end verbatim
+@end quotation
+
+Also see @ruser{Entire document fonts}.
+
+@multitable @columnfractions .33 .16 .51
@item @code{check-internal-types}
@tab @code{#f}
@tab Check every property assignment for types.
@item @code{svg-woff}
@tab @code{#f}
@tab Use woff font files in SVG backend.
+By using the woff file properly,
+you do not have to install the fonts which are used by SVG files
+to SVG viewer environment.
+However, LilyPond does not contain woff font file for text.
+woff font file is required.
@item @code{trace-memory-frequency}
@tab @code{#f}
#(define fonts
(make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
+ "Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
;; "Helvetica"
{
\override Score.PaperColumn.keep-inside-line = ##f
- \override Staff.TimeSignature.font-name = #"Times New Roman"
+
+ % A comma is required
+ % for font name "Times New Roman"'s explicit termination.
+ % If there is no comma, Pango interpret "Times New Roman" as
+ % "Times New" family with "Roman" style.
+ \override Staff.TimeSignature.font-name = #"Times New Roman,"
\time 3/4
\set Score.skipBars = ##t
- \override Staff.MultiMeasureRestText.font-name = #"LuxiMono"
- R1*21^"Rest in LuxiMono"
+ \override Staff.MultiMeasureRestText.font-name = #"Luxi Mono"
+ R1*21^"Rest in Luxi Mono"
c'1_\markup {
- \override #'(font-name . "Vera Bold")
+ \override #'(font-name . "Bitstream Vera Sans, Bold")
\override #'(font-size . 4)
{ This text is in large Vera Bold }
}
\header {
texidoc = "This file demonstrates how to load different (postscript)
fonts. The file @file{font.scm} shows how to define the scheme-function
-@code{make-century-schoolbook-tree}."
+@code{make-default-fonts-tree}."
}
\version "2.16.0"
(baseline-skip . 2)
(word-space . 0.6)))
- #(set! fonts (make-century-schoolbook-tree 1.0))
+ #(set! fonts (make-default-fonts-tree 1.0))
}
\layout {
{
c'^\markup {
- \override #'(font-name . "Sans") {
+ \override #'(font-name . "LilyPond Sans Serif") {
c'est un B \flat \musicglyph #"UNKNOWN-GLYPH"
}
% to get \flat, do:
\relative c'' {
\tempo "Allegro" 8=120-140
a8 b c d a b c d
- \override Score.MetronomeMark.font-name = "Times New Roman"
+
+ % A comma is required
+ % for font name "Times New Roman"'s explicit termination.
+ % If there is no comma, Pango interpret "Times New Roman" as
+ % "Times New" family with "Roman" style.
+ \override Score.MetronomeMark.font-name = "Times New Roman,"
\tempo "Allegro" 8=140
a b c d a b c d
}
--- /dev/null
+\version "2.19.28"
+
+\header {
+ texidoc ="The part combiner can combine parts of unequal lengths."
+}
+
+\layout { ragged-right = ##t }
+
+\new Staff { %% based on the example in Issue 913
+ c'1
+ \partcombine { e' r } { c' }
+ \partcombine { b' } {}
+ \partcombine {} { f' }
+}
--- /dev/null
+\version "2.19.28"
+
+\header {
+ texidoc = "A @code{\\repeatTie} may be parenthesized."
+}
+
+\layout {
+ ragged-right = ##t
+}
+
+{ c'1-\parenthesize \repeatTie }
--- /dev/null
+\version "2.19.28"
+
+\header {
+ texidoc = "@code{\\once \\revert} can be used for reverting a property
+once rather than permanently."
+}
+
+\layout {
+ ragged-right = ##t
+}
+
+\relative {
+ c'4-"b" d-"b"
+ \override NoteHead.color = #red
+ e4-"r" f-"r" |
+ \once \override NoteHead.color = #green
+ g4-"g" a-"r"
+ \once \revert NoteHead.color
+ b-"b" c-"r" |
+ \temporary \override NoteHead.color = #yellow
+ g-"y" e-"y"
+ \once \revert NoteHead.color
+ d-"r" c-"y" |
+ \revert NoteHead.color
+ d-"r" e-"r"
+ \once \revert NoteHead.color
+ f-"b" d-"r" |
+ \revert NoteHead.color
+ c1-"b"
+}
return;
a->set_parent (me, X_AXIS);
- a->set_property ("X-offset", Grob::x_parent_positioning_proc);
long n = p->get_notename ();
SCM accs = me->get_object ("accidental-grobs");
last_end[dir] = x_extent[RIGHT];
Skyline_pair *v_orig = unsmob<Skyline_pair> (elt->get_property ("vertical-skylines"));
- if (v_orig->is_empty ())
+ if (!v_orig || v_orig->is_empty ())
continue;
// Find the riders associated with this grob, and merge their
// cooked_from_ is the value of alist_ from which the expansion has
// been done
SCM cooked_from_;
- // nested_ is a count of nested overrides in alist_
+ // nested_ is a count of nested overrides in alist_ Or rather: of
+ // entries that must not appear in the cooked list and are
+ // identified by having a "key" that is not a symbol. Temporary
+ // overrides and reverts also meet that description and have a
+ // nominal key of #t/#f and a value of the original cons cell.
int nested_;
Grob_properties (SCM alist, SCM based_on) :
return SCM_EOL;
}
+// Used for \once \override, returns a token for matched_pop
+SCM
+Grob_property_info::temporary_override (SCM grob_property_path, SCM new_value)
+{
+ SCM cell = push (grob_property_path, new_value);
+ if (!scm_is_pair (cell))
+ return cell;
+ if (scm_is_symbol (scm_car (cell)))
+ props_->nested_++;
+ cell = scm_cons (SCM_BOOL_T, cell);
+ props_->alist_ = scm_cons (cell, scm_cdr (props_->alist_));
+ return cell;
+}
+
+// Used for \once \revert, returns a token for matched_pop
+SCM
+Grob_property_info::temporary_revert (SCM grob_property_path)
+{
+ if (!check ())
+ return SCM_EOL;
+
+ SCM current_alist = props_->alist_;
+ SCM daddy = props_->based_on_;
+ SCM tail = SCM_EOL;
+
+ if (!scm_is_pair (grob_property_path)
+ || !scm_is_symbol (scm_car (grob_property_path)))
+ {
+ programming_error ("Grob property path should be list of symbols.");
+ return SCM_EOL;
+ }
+
+ if (scm_is_pair (scm_cdr (grob_property_path)))
+ {
+ tail = assoc_tail (grob_property_path, current_alist, daddy);
+ if (scm_is_false (tail))
+ return SCM_EOL;
+ }
+ else
+ {
+ tail = assq_tail (scm_car (grob_property_path), current_alist, daddy);
+ if (scm_is_false (tail))
+ return SCM_EOL;
+ ++props_->nested_;
+ }
+
+ SCM cell = scm_cons (SCM_BOOL_F, scm_car (tail));
+ props_->alist_ = partial_list_copy (current_alist, tail,
+ scm_cons (cell, scm_cdr (tail)));
+ return cell;
+}
+
+
void
Grob_property_info::matched_pop (SCM cell)
{
{
if (scm_is_eq (scm_car (p), cell))
{
- if (scm_is_pair (scm_car (cell)))
+ SCM key = scm_car (cell);
+ if (scm_is_false (key))
+ {
+ // temporary revert, reactivate
+ cell = scm_cdr (cell);
+ if (scm_is_symbol (scm_car (cell)))
+ props_->nested_--;
+ props_->alist_ = partial_list_copy (current_alist, p,
+ scm_cons (cell, scm_cdr (p)));
+ return;
+ }
+ if (!scm_is_symbol (key))
props_->nested_--;
props_->alist_ = partial_list_copy (current_alist, p, scm_cdr (p));
return;
else if (scm_is_eq (type, ly_symbol2scm ("assign")))
tg->set_property (scm_car (entry), scm_cadr (entry));
else if (scm_is_eq (type, ly_symbol2scm ("apply")))
- scm_apply_1 (scm_car (entry), tg->self_scm (), scm_cdr (entry));
+ scm_apply_1 (scm_car (entry), tg->self_scm (), scm_cdr (entry));
else if (scm_is_eq (type, ly_symbol2scm ("unset")))
tg->unset_property (scm_car (entry));
}
return SCM_UNSPECIFIED;
}
+LY_DEFINE (ly_context_matched_pop_property, "ly:context-matched-pop-property",
+ 3, 0, 0, (SCM context, SCM grob, SCM cell),
+ "This undoes a particular @code{\\override},"
+ " @code{\\once \\override} or @code{\\once \\revert}"
+ " when given the specific alist pair to undo.")
+{
+ Context *tg = LY_ASSERT_SMOB (Context, context, 1);
+ LY_ASSERT_TYPE (ly_is_symbol, grob, 2);
+ Grob_property_info (tg, grob).matched_pop (cell);
+ return SCM_UNSPECIFIED;
+}
+
+
LY_DEFINE (ly_context_property, "ly:context-property",
2, 1, 0, (SCM context, SCM sym, SCM def),
"Return the value for property @var{sym} in @var{context}."
ok = type_check_assignment (sym, val, ly_symbol2scm ("translation-type?"));
if (ok)
- set_property (sym, val);
+ {
+ if (to_boolean (ev->get_property ("once")))
+ {
+ if (Global_context *g = get_global_context ())
+ {
+ SCM old_val = SCM_UNDEFINED;
+ if (here_defined (sym, &old_val))
+ g->add_finalization (scm_list_4 (ly_context_set_property_x_proc,
+ self_scm (),
+ sym,
+ old_val));
+ else
+ g->add_finalization (scm_list_3 (ly_context_unset_property_proc,
+ self_scm (),
+ sym));
+ }
+ }
+ set_property (sym, val);
+ }
}
}
Stream_event *ev = unsmob<Stream_event> (sev);
SCM sym = ev->get_property ("symbol");
- type_check_assignment (sym, SCM_EOL, ly_symbol2scm ("translation-type?"));
- unset_property (sym);
+ bool ok = type_check_assignment (sym, SCM_EOL, ly_symbol2scm ("translation-type?"));
+
+ if (ok)
+ {
+ if (to_boolean (ev->get_property ("once")))
+ {
+ if (Global_context *g = get_global_context ())
+ {
+ SCM old_val = SCM_UNDEFINED;
+ if (here_defined (sym, &old_val))
+ g->add_finalization (scm_list_4 (ly_context_set_property_x_proc,
+ self_scm (),
+ sym,
+ old_val));
+ else
+ g->add_finalization (scm_list_3 (ly_context_unset_property_proc,
+ self_scm (),
+ sym));
+ }
+ }
+ unset_property (sym);
+ }
}
/*
#include "context.hh"
#include "dispatcher.hh"
#include "engraver-group.hh"
+#include "global-context.hh"
#include "grob.hh"
#include "grob-properties.hh"
#include "paper-score.hh"
Engraver_group::override (SCM sev)
{
Stream_event *ev = unsmob<Stream_event> (sev);
+ SCM sym = ev->get_property ("symbol");
+ Grob_property_info gpi (context (), sym);
- Grob_property_info (context (), ev->get_property ("symbol"))
- .push (ev->get_property ("property-path"),
- ev->get_property ("value"));
+ if (to_boolean (ev->get_property ("once")))
+ {
+ SCM token = gpi.temporary_override (ev->get_property ("property-path"),
+ ev->get_property ("value"));
+ if (scm_is_pair (token))
+ if (Global_context *g = context ()->get_global_context ())
+ {
+ g->add_finalization (scm_list_4 (ly_context_matched_pop_property_proc,
+ context ()->self_scm (),
+ sym,
+ token));
+ }
+ }
+ else
+ gpi.push (ev->get_property ("property-path"),
+ ev->get_property ("value"));
}
void
Engraver_group::revert (SCM sev)
{
Stream_event *ev = unsmob<Stream_event> (sev);
+ SCM sym = ev->get_property ("symbol");
+ Grob_property_info gpi (context (), sym);
- Grob_property_info (context (), ev->get_property ("symbol"))
- .pop (ev->get_property ("property-path"));
+ if (to_boolean (ev->get_property ("once")))
+ {
+ SCM token = gpi.temporary_revert (ev->get_property ("property-path"));
+ if (scm_is_pair (token))
+ if (Global_context *g = context ()->get_global_context ())
+ {
+ g->add_finalization (scm_list_4 (ly_context_matched_pop_property_proc,
+ context ()->self_scm (),
+ sym,
+ token));
+ }
+ }
+ else
+ gpi.pop (ev->get_property ("property-path"));
}
void
SCM nested_property_alist (SCM alist, SCM prop_path, SCM value);
SCM nested_create_alist (SCM prop_path, SCM value);
SCM partial_list_copy (SCM alist, SCM tail, SCM newtail);
+SCM assq_tail (SCM key, SCM alist, SCM alist_end);
+SCM assoc_tail (SCM key, SCM alist, SCM alist_end);
SCM evict_from_alist (SCM, SCM, SCM);
SCM nalist_to_alist (SCM nalist, int nested);
+extern SCM ly_context_set_property_x_proc;
+extern SCM ly_context_unset_property_proc;
+extern SCM ly_context_matched_pop_property_proc;
#endif /* CONTEXT_HH */
bool create ();
SCM updated ();
SCM push (SCM path, SCM value);
+ SCM temporary_override (SCM path, SCM value);
+ SCM temporary_revert (SCM path);
void matched_pop (SCM);
void pop (SCM path);
void pushpop (SCM path, SCM value)
{
public:
DECLARE_SCHEME_CALLBACK (constructor, ());
- DECLARE_SCHEME_CALLBACK (once_finalization, (SCM, SCM, SCM));
DECLARE_CLASSNAME (Property_iterator);
protected:
- virtual void do_quit ();
virtual void process (Moment);
};
{
public:
DECLARE_SCHEME_CALLBACK (constructor, ());
- DECLARE_SCHEME_CALLBACK (once_finalization, (SCM, SCM));
DECLARE_CLASSNAME (Push_property_iterator);
protected:
virtual void process (Moment);
- virtual void do_quit ();
};
class Pop_property_iterator : public Simple_music_iterator
protected:
void process_music ();
- void stop_translation_timestep ();
void start_translation_timestep ();
- virtual void finalize ();
DECLARE_TRANSLATOR_LISTENER (multi_measure_rest);
DECLARE_TRANSLATOR_LISTENER (multi_measure_text);
private:
- Stream_event *rest_ev_;
+ void add_bound_item_to_grobs (Item *);
+ void clear_lapsed_events (const Moment &now);
+ bool grobs_initialized () const { return mmrest_; }
+ void initialize_grobs ();
+ void reset_grobs ();
+ void set_measure_count (int n);
+
+private:
vector<Stream_event *> text_events_;
- int start_measure_;
- Rational last_main_moment_;
+ // text_[0] is a MultiMeasureRestNumber grob
+ // the rest are optional MultiMeasureRestText grobs
+ vector<Spanner *> text_;
+ Stream_event *rest_ev_;
+ Spanner *mmrest_;
Moment stop_moment_;
-
- bool bar_seen_;
+ int start_measure_;
+ // Ugh, this is a kludge - need this for multi-measure-rest-grace.ly
Item *last_command_item_;
- Spanner *last_rest_;
- Spanner *mmrest_;
-
- vector<Spanner *> numbers_;
- vector<Spanner *> last_numbers_;
+ bool first_time_;
};
Multi_measure_rest_engraver::Multi_measure_rest_engraver ()
+ : rest_ev_ (0),
+ mmrest_ (0),
+ start_measure_ (0),
+ last_command_item_ (0),
+ first_time_ (true)
{
- last_command_item_ = 0;
-
- /*
- For the start of a score.
- */
- bar_seen_ = true;
- start_measure_ = 0;
- mmrest_ = 0;
- last_rest_ = 0;
- rest_ev_ = 0;
}
IMPLEMENT_TRANSLATOR_LISTENER (Multi_measure_rest_engraver, multi_measure_rest);
/* FIXME: Should use ASSIGN_EVENT_ONCE. Can't do that yet because of
the kill-mm-rests hack in part-combine-iterator. */
rest_ev_ = ev;
- stop_moment_ = now_mom () + get_event_length (rest_ev_, now_mom ());
+ const Moment now (now_mom ());
+ stop_moment_ = now + get_event_length (rest_ev_, now);
/*
if (ASSIGN_EVENT_ONCE (rest_ev_, ev))
stop_moment_ = now_mom () + get_event_length (rest_ev_);
*/
+
+ clear_lapsed_events (now);
}
IMPLEMENT_TRANSLATOR_LISTENER (Multi_measure_rest_engraver, multi_measure_text);
}
void
-Multi_measure_rest_engraver::process_music ()
+Multi_measure_rest_engraver::add_bound_item_to_grobs (Item *item)
+{
+ add_bound_item (mmrest_, item);
+ for (vsize i = 0; i < text_.size (); ++i)
+ add_bound_item (text_[i], item);
+}
+
+void
+Multi_measure_rest_engraver::clear_lapsed_events (const Moment &now)
{
- if (rest_ev_ && !mmrest_
- && stop_moment_ > now_mom ())
+ if (now.main_part_ >= stop_moment_.main_part_)
{
- mmrest_ = make_spanner ("MultiMeasureRest", rest_ev_->self_scm ());
+ rest_ev_ = 0;
+ text_events_.clear ();
+ }
+}
- Spanner *sp
- = make_spanner ("MultiMeasureRestNumber", rest_ev_->self_scm ());
- numbers_.push_back (sp);
+void
+Multi_measure_rest_engraver::initialize_grobs ()
+{
+ mmrest_ = make_spanner ("MultiMeasureRest", rest_ev_->self_scm ());
+ text_.push_back (make_spanner ("MultiMeasureRestNumber",
+ rest_ev_->self_scm ()));
- if (text_events_.size ())
+ if (text_events_.size ())
+ {
+ for (vsize i = 0; i < text_events_.size (); i++)
{
- for (vsize i = 0; i < text_events_.size (); i++)
- {
- Stream_event *e = text_events_[i];
- Spanner *sp
- = make_spanner ("MultiMeasureRestText", e->self_scm ());
- SCM t = e->get_property ("text");
- SCM dir = e->get_property ("direction");
- sp->set_property ("text", t);
- if (is_direction (dir))
- sp->set_property ("direction", dir);
-
- numbers_.push_back (sp);
- }
+ Stream_event *e = text_events_[i];
+ Spanner *sp = make_spanner ("MultiMeasureRestText", e->self_scm ());
+ SCM t = e->get_property ("text");
+ SCM dir = e->get_property ("direction");
+ sp->set_property ("text", t);
+ if (is_direction (dir))
+ sp->set_property ("direction", dir);
+
+ text_.push_back (sp);
+ }
- /*
- Stack different scripts.
- */
- for (DOWN_and_UP (d))
+ /*
+ Stack different scripts.
+ */
+ for (DOWN_and_UP (d))
+ {
+ SCM dir = scm_from_int (d);
+ Grob *last = 0;
+ for (vsize i = 0; i < text_.size (); i++)
{
- Grob *last = 0;
- for (vsize i = 0; i < numbers_.size (); i++)
+ if (scm_is_eq (dir, text_[i]->get_property ("direction")))
{
- if (scm_is_eq (scm_from_int (d),
- numbers_[i]->get_property ("direction")))
- {
- if (last)
- Side_position_interface::add_support (numbers_[i], last);
- last = numbers_[i];
- }
+ if (last)
+ Side_position_interface::add_support (text_[i], last);
+ last = text_[i];
}
}
}
-
- for (vsize i = 0; i < numbers_.size (); i++)
- {
- Side_position_interface::add_support (numbers_[i], mmrest_);
- numbers_[i]->set_parent (mmrest_, Y_AXIS);
- numbers_[i]->set_parent (mmrest_, X_AXIS);
- }
-
- start_measure_
- = scm_to_int (get_property ("internalBarNumber"));
}
- bar_seen_ = bar_seen_ || scm_is_string (get_property ("whichBar"));
+ for (vsize i = 0; i < text_.size (); i++)
+ {
+ Side_position_interface::add_support (text_[i], mmrest_);
+ text_[i]->set_parent (mmrest_, Y_AXIS);
+ text_[i]->set_parent (mmrest_, X_AXIS);
+ }
}
void
-Multi_measure_rest_engraver::stop_translation_timestep ()
+Multi_measure_rest_engraver::reset_grobs ()
{
- /* We cannot do this earlier, as breakableSeparationItem is not yet
- there.
-
- Actually, we no longer use breakableSeparationItem -- should this be moved?
- -- jneem */
- if (bar_seen_)
- {
- Grob *cmc = unsmob<Grob> (get_property ("currentCommandColumn"));
+ text_.clear ();
+ mmrest_ = 0;
+}
- /* Ugh, this is a kludge - need this for multi-measure-rest-grace.ly */
- last_command_item_ = dynamic_cast<Item *> (cmc);
- }
+void
+Multi_measure_rest_engraver::set_measure_count (int n)
+{
+ SCM n_scm = scm_from_int (n);
+ assert (mmrest_);
+ mmrest_->set_property ("measure-count", n_scm);
- if (last_command_item_ && (mmrest_ || last_rest_))
+ Grob *g = text_[0]; // the MultiMeasureRestNumber
+ assert (g);
+ if (scm_is_null (g->get_property ("text")))
{
- if (last_rest_)
- {
- add_bound_item (last_rest_, last_command_item_);
- for (vsize i = 0; i < last_numbers_.size (); i++)
- add_bound_item (last_numbers_[i], last_command_item_);
- }
-
- if (mmrest_)
+ SCM thres = get_property ("restNumberThreshold");
+ int t = 1;
+ if (scm_is_number (thres))
+ t = scm_to_int (thres);
+
+ if (n <= t)
+ g->suicide ();
+ else
{
- add_bound_item (mmrest_, last_command_item_);
- for (vsize i = 0; i < numbers_.size (); i++)
- add_bound_item (numbers_[i], last_command_item_);
-
- last_command_item_ = 0;
+ SCM text = scm_number_to_string (n_scm, scm_from_int (10));
+ g->set_property ("text", text);
}
}
-
- Moment mp (robust_scm2moment (get_property ("measurePosition"), Moment (0)));
- if (last_rest_)
- {
- last_rest_ = 0;
- last_numbers_.clear ();
- }
-
- text_events_.clear ();
- bar_seen_ = false;
}
void
-Multi_measure_rest_engraver::start_translation_timestep ()
+Multi_measure_rest_engraver::process_music ()
{
- if (now_mom ().main_part_ >= stop_moment_.main_part_)
- rest_ev_ = 0;
-
- Moment mp (robust_scm2moment (get_property ("measurePosition"), Moment (0)));
+ const bool measure_end
+ = scm_is_string (get_property ("whichBar"))
+ && (robust_scm2moment (get_property ("measurePosition"),
+ Moment (0)).main_part_ == Rational (0));
- Moment now = now_mom ();
- if (mmrest_
- && now.main_part_ != last_main_moment_
- && mp.main_part_ == Rational (0))
+ if (measure_end || first_time_)
{
- last_rest_ = mmrest_;
- last_numbers_ = numbers_;
+ last_command_item_ = unsmob<Item> (get_property ("currentCommandColumn"));
- int cur = scm_to_int (get_property ("internalBarNumber"));
- int num = cur - start_measure_;
-
- /*
- We can't plug a markup directly into the grob, since the
- measure-count determines the formatting of the mmrest.
- */
- last_rest_->set_property ("measure-count", scm_from_int (num));
+ // Finalize the current grobs.
+ if (grobs_initialized ())
+ {
+ int curr_measure = scm_to_int (get_property ("internalBarNumber"));
+ set_measure_count (curr_measure - start_measure_);
+ if (last_command_item_)
+ add_bound_item_to_grobs (last_command_item_);
+ reset_grobs ();
+ }
+ }
- mmrest_ = 0;
- numbers_.clear ();
+ // Create new grobs if a rest event is (still) active.
+ if (!grobs_initialized () && rest_ev_)
+ {
+ initialize_grobs ();
+ text_events_.clear ();
- Grob *last = last_numbers_.size () ? last_numbers_[0] : 0;
- if (last && scm_is_null (last->get_property ("text")))
+ if (last_command_item_)
{
- SCM thres = get_property ("restNumberThreshold");
- int t = 1;
- if (scm_is_number (thres))
- t = scm_to_int (thres);
-
- if (num <= t)
- last->suicide ();
- else
- {
- SCM text
- = scm_number_to_string (scm_from_int (num), scm_from_int (10));
- last->set_property ("text", text);
- }
+ add_bound_item_to_grobs (last_command_item_);
+ last_command_item_ = 0;
}
+
+ start_measure_ = scm_to_int (get_property ("internalBarNumber"));
}
- last_main_moment_ = now.main_part_;
+ first_time_ = false;
}
void
-Multi_measure_rest_engraver::finalize ()
+Multi_measure_rest_engraver::start_translation_timestep ()
{
+ clear_lapsed_events (now_mom ());
}
ADD_TRANSLATOR (Multi_measure_rest_engraver,
"internalBarNumber "
"restNumberThreshold "
"currentCommandColumn "
- "measurePosition ",
+ "measurePosition "
+ "whichBar ",
/* write */
""
SCM copied = SCM_EOL;
SCM partials = SCM_EOL;
// partials is a alist of partial overrides
- for (;;)
+ while (nested)
{
SCM elt = scm_car (nalist);
nalist = scm_cdr (nalist);
SCM key = scm_car (elt);
+ if (!scm_is_symbol (key))
+ --nested;
+ if (scm_is_bool (key))
+ {
+ if (scm_is_false (key))
+ continue;
+ elt = scm_cdr (elt);
+ key = scm_car (elt);
+ }
if (scm_is_pair (key))
// nested override: record for key in partial
{
partials);
else
scm_set_cdr_x (pair, scm_cons (elt, scm_cdr (pair)));
- if (!--nested)
- break;
+ continue;
}
- else
- // plain override: apply any known corresponding partials
+
+ // plain override: apply any known corresponding partials
+ SCM pair = assq_pop_x (key, &partials);
+ if (scm_is_true (pair))
{
- SCM pair = assq_pop_x (key, &partials);
- if (scm_is_true (pair))
- {
- SCM value = scm_cdr (elt);
- for (SCM pp = scm_cdr (pair); scm_is_pair (pp); pp = scm_cdr (pp))
- value = nested_property_alist (value, scm_cdaar (pp), scm_cdar (pp));
- copied = scm_acons (key, value, copied);
- }
- else
- copied = scm_cons (elt, copied);
+ SCM value = scm_cdr (elt);
+ for (SCM pp = scm_cdr (pair); scm_is_pair (pp); pp = scm_cdr (pp))
+ value = nested_property_alist (value, scm_cdaar (pp), scm_cdar (pp));
+ copied = scm_acons (key, value, copied);
}
+ else
+ copied = scm_cons (elt, copied);
}
// Now need to work off the remaining partials. All of them are
// unique, so we can push them to `copied' after resolving without
{
Context *o = get_outlet ();
Music *m = get_music ();
- bool once = to_boolean (m->get_property ("once"));
- SCM symbol = m->get_property ("symbol");
- SCM previous_value = SCM_UNDEFINED;
- if (once)
- o->here_defined (symbol, &previous_value);
send_stream_event (o, "SetProperty", m->origin (),
- ly_symbol2scm ("symbol"), symbol,
- ly_symbol2scm ("value"), m->get_property ("value"));
-
- /* For \once \set install a finalization hook to reset the property to the
- * previous value after the timestep */
- if (once)
- {
- Global_context *tg = get_outlet ()->get_global_context ();
- tg->add_finalization (scm_list_4 (once_finalization_proc,
- o->self_scm (), m->self_scm (),
- previous_value));
- }
+ ly_symbol2scm ("symbol"), m->get_property ("symbol"),
+ ly_symbol2scm ("value"), m->get_property ("value"),
+ ly_symbol2scm ("once"), m->get_property ("once"));
Simple_music_iterator::process (mom);
}
{
Context *o = get_outlet ();
Music *m = get_music ();
- bool once = to_boolean (m->get_property ("once"));
- SCM symbol = m->get_property ("symbol");
- SCM previous_value = SCM_UNDEFINED;
- if (once)
- o->here_defined (symbol, &previous_value);
send_stream_event (o, "UnsetProperty", m->origin (),
- ly_symbol2scm ("symbol"), symbol);
-
- /* For \once \unset install a finalization hook to reset the property to the
- * previous value after the timestep */
- if (once && !SCM_UNBNDP (previous_value))
- {
- Global_context *tg = get_outlet ()->get_global_context ();
- tg->add_finalization (scm_list_4 (Property_iterator::once_finalization_proc,
- o->self_scm (), m->self_scm (),
- previous_value));
- }
-
- Simple_music_iterator::process (mom);
-}
-
-MAKE_SCHEME_CALLBACK (Property_iterator, once_finalization, 3);
-SCM
-Property_iterator::once_finalization (SCM ctx, SCM music, SCM previous_value)
-{
- Music *m = unsmob<Music> (music);
- Context *c = unsmob<Context> (ctx);
-
- // Do not use UnsetProperty, which sets the default, but rather
- // cache the value before the \once \set command and restore it now
- send_stream_event (c, "SetProperty", m->origin (),
ly_symbol2scm ("symbol"), m->get_property ("symbol"),
- ly_symbol2scm ("value"), previous_value);
-
- return SCM_UNSPECIFIED;
-}
+ ly_symbol2scm ("once"), m->get_property ("once"));
-void
-Property_iterator::do_quit ()
-{
+ Simple_music_iterator::process (mom);
}
bool
{
SCM grob_property_path = get_property_path (get_music ());
SCM val = get_music ()->get_property ("grob-value");
+ SCM once = get_music ()->get_property ("once");
if (to_boolean (get_music ()->get_property ("pop-first"))
- && !to_boolean (get_music ()->get_property ("once")))
+ && !to_boolean (once))
send_stream_event (get_outlet (), "Revert", get_music ()->origin (),
ly_symbol2scm ("symbol"), sym,
ly_symbol2scm ("property-path"), grob_property_path);
send_stream_event (get_outlet (), "Override", get_music ()->origin (),
ly_symbol2scm ("symbol"), sym,
ly_symbol2scm ("property-path"), grob_property_path,
+ ly_symbol2scm ("once"), once,
ly_symbol2scm ("value"), val);
}
Simple_music_iterator::process (m);
}
-MAKE_SCHEME_CALLBACK (Push_property_iterator, once_finalization, 2);
-SCM
-Push_property_iterator::once_finalization (SCM ctx, SCM music)
-{
- Music *mus = unsmob<Music> (music);
- Context *c = unsmob<Context> (ctx);
-
- SCM sym = mus->get_property ("symbol");
- if (check_grob (mus, sym))
- {
- SCM grob_property_path = get_property_path (mus);
-
- send_stream_event (c, "Revert", mus->origin (),
- ly_symbol2scm ("symbol"), sym,
- ly_symbol2scm ("property-path"), grob_property_path);
- }
- return SCM_UNSPECIFIED;
-}
-
void
-Push_property_iterator::do_quit ()
+Pop_property_iterator::process (Moment mom)
{
- if (to_boolean (get_music ()->get_property ("once")))
- {
- SCM trans = get_outlet ()->self_scm ();
- SCM music = get_music ()->self_scm ();
-
- Global_context *tg = get_outlet ()->get_global_context ();
- tg->add_finalization (scm_list_3 (once_finalization_proc,
- trans, music));
- }
-}
-
-void
-Pop_property_iterator::process (Moment m)
-{
- SCM sym = get_music ()->get_property ("symbol");
+ Music *m = get_music ();
+ SCM sym = m->get_property ("symbol");
- if (check_grob (get_music (), sym))
+ if (check_grob (m, sym))
{
- SCM grob_property_path = get_property_path (get_music ());
+ SCM grob_property_path = get_property_path (m);
- send_stream_event (get_outlet (), "Revert", get_music ()->origin (),
+ send_stream_event (get_outlet (), "Revert", m->origin (),
ly_symbol2scm ("symbol"), sym,
+ ly_symbol2scm ("once"), m->get_property ("once"),
ly_symbol2scm ("property-path"), grob_property_path);
}
- Simple_music_iterator::process (m);
+ Simple_music_iterator::process (mom);
}
IMPLEMENT_CTOR_CALLBACK (Pop_property_iterator);
if (!semi_tie_column_)
{
- semi_tie_column_ = make_item ("RepeatTieColumn", event_->self_scm ());
+ semi_tie_column_ = make_item ("RepeatTieColumn", SCM_EOL);
}
SCM cause = event_->self_scm ();
@code{\\once\\override} for the specified grob type. If @var{item} is
a music expression, the result is the same music expression with an
appropriate tweak applied.")
- (define (shape-curve grob)
+ (define (shape-curve grob coords)
(let* ((orig (ly:grob-original grob))
(siblings (if (ly:spanner? grob)
(ly:spanner-broken-into orig) '()))
- (total-found (length siblings))
- (function (assoc-get 'control-points
- (reverse (ly:grob-basic-properties grob))))
- (coords (function grob)))
-
+ (total-found (length siblings)))
(define (offset-control-points offsets)
(if (null? offsets)
coords
(if (>= total-found 2)
(helper siblings offsets)
(offset-control-points (car offsets)))))
- (once (propertyTweak 'control-points shape-curve item)))
+ (once (propertyTweak 'control-points
+ (grob-transformer 'control-points shape-curve)
+ item)))
shiftDurations =
#(define-music-function (dur dots arg)
# Till Paala <till.rettig@gmx.de>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015.
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 2.19.16\n"
+"Project-Id-Version: lilypond 2.19.26\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2015-02-28 14:31+0000\n"
-"PO-Revision-Date: 2015-03-06 21:03+0200\n"
+"POT-Creation-Date: 2015-08-27 10:48+0100\n"
+"PO-Revision-Date: 2015-09-22 23:26+0300\n"
"Last-Translator: Till Paala <till.rettig@gmx.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Virtaal 0.7.1\n"
#: book_base.py:26
#, python-format
#: convertrules.py:82 convertrules.py:1856 convertrules.py:2032
#: convertrules.py:2175 convertrules.py:2506 convertrules.py:2801
-#: convertrules.py:3151 convertrules.py:3385 convertrules.py:3697
+#: convertrules.py:3151 convertrules.py:3388 convertrules.py:3700
msgid "bump version for release"
msgstr "aktuelle Version ausgeben"
#: convertrules.py:2820
msgid ""
"oldaddlyrics is no longer supported. \n"
-" Use addlyrics or lyrsicsto instead.\n"
+" Use addlyrics or lyricsto instead.\n"
msgstr ""
"oldaddlyrics wird nicht mehr unterstützt.\n"
" Benutzen Sie anstatt dessen addlyrics oder lyricsto.\n"
msgid "input/regression/beam-broken-classic.ly shows how broken beams are now handled.\n"
msgstr "input/regression/beam-broken-classic.ly zeigt, wie gebrochene Balken jetzt behandelt werden.\n"
-#: convertrules.py:3369
+#: convertrules.py:3372
msgid "beamExceptions controls whole-measure beaming."
msgstr "beamExceptions kontrolliert Bebalkung von ganzen Takten."
-#: convertrules.py:3606
+#: convertrules.py:3609
msgid "Flag.transparent and Flag.color inherit from Stem"
msgstr "Flag.transparent (Durchsichtigkeit) und Farbe der Fähnchen werden vom Hals geerbt"
-#: convertrules.py:3672
+#: convertrules.py:3675
msgid "Staff-padding now controls the distance to the baseline, not the nearest point."
msgstr "Staff-padding kontrolliert jetzt den Abstand zur Grundlinie, nicht zum nächsten Punkt."
msgid "Unable to find instrument for ID=%s\n"
msgstr "Kann kein Instrument für ID=%s finden\n"
-#: abc2ly.py:1386 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1044
+#: abc2ly.py:1389 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1044
#, python-format
msgid "%s [OPTION]... FILE"
msgstr "%s [OPTIONEN]... DATEI"
-#: abc2ly.py:1387
+#: abc2ly.py:1390
#, python-format
msgid ""
"abc2ly converts ABC music files (see\n"
"abc2ly wandelt ABC-Musikdateien in LilyPond-Eingabe um\n"
"(siehe auch %s).\n"
-#: abc2ly.py:1395 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
-#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:183
+#: abc2ly.py:1398 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
+#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:184
msgid "show version number and exit"
msgstr "Versionsnummer ausgeben und beenden"
-#: abc2ly.py:1398 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
-#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:162
+#: abc2ly.py:1401 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
+#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:163
msgid "show this help and exit"
msgstr "diese Hilfe anzeigen und beenden"
-#: abc2ly.py:1401 etf2ly.py:1209 midi2ly.py:1071
+#: abc2ly.py:1404 etf2ly.py:1209 midi2ly.py:1071
msgid "write output to FILE"
msgstr "Ausgabe in DATEI schreiben"
-#: abc2ly.py:1404
+#: abc2ly.py:1407
msgid "be strict about success"
msgstr "bzgl. Erfolg streng sein"
-#: abc2ly.py:1407
+#: abc2ly.py:1410
msgid "preserve ABC's notion of beams"
msgstr "ABCs Prinzip der Balken beibehalten"
-#: abc2ly.py:1410
+#: abc2ly.py:1413
msgid "suppress progress messages"
msgstr "Fortschrittbenachrichtigung unterdrücken"
#. "Report bugs in English via %s",
#. or if there is a LilyPond users list or forum in your language
#. "Report bugs in English via %s or in YOUR_LANG via URI"
-#: abc2ly.py:1413 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
-#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:317
+#: abc2ly.py:1416 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
+#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:318
#, c-format, python-format
msgid "Report bugs via %s"
msgstr "Melden Sie Fehler an %s"
msgstr "Logmeldungen ensprechend LOGLEVEL ((NONE, ERROR, WARNING, PROGRESS (Standard), DEBUG) ausgeben"
#: convert-ly.py:111 lilypond-book.py:163 lilypond-book.py:181
-#: musicxml2ly.py:2629 main.cc:176
+#: musicxml2ly.py:2629 main.cc:177
msgid "LOGLEVEL"
msgstr "LOGLEVEL"
msgstr "erstelle eine nummerierte Sicherung [Standard: Dateibezeichnung.end~]"
#: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096
-#: main.cc:185
+#: main.cc:186
msgid "show warranty and copyright"
msgstr "Informationen zu Gewährleistung und Copyright anzeigen"
msgid "Processing `%s'... "
msgstr "»%s« wird verarbeitet..."
-#: convert-ly.py:368
+#: convert-ly.py:366
#, python-format
msgid "%s: Unable to open file"
msgstr "%s: Konnte Datei nicht öffnen"
-#: convert-ly.py:374
+#: convert-ly.py:372
#, python-format
msgid "%s: Unable to determine version. Skipping"
msgstr "Version für »%s« kann nicht erkannt werden. Wird übersprungen"
-#: convert-ly.py:380
+#: convert-ly.py:378
#, python-format
msgid ""
"%s: Invalid version string `%s' \n"
"%s: Ungültige Versionsangabe `%s' \n"
"Gültige Versionsangaben bestehen aus drei Zahlen, durch Punkte getrennt; etwa `2.8.12'"
-#: convert-ly.py:386
+#: convert-ly.py:384
#, python-format
msgid "There was %d error."
msgid_plural "There were %d errors."
"eine von Lilypond verwendbare Datei um.\n"
#: etf2ly.py:1210 midi2ly.py:1067 midi2ly.py:1072 musicxml2ly.py:2659
-#: main.cc:168 main.cc:180
+#: main.cc:169 main.cc:181
msgid "FILE"
msgstr "DATEI"
msgstr "VERZ zum Einfügepfad hinzufügen"
#: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:169
-#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:167
+#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:168
msgid "DIR"
msgstr "VERZ"
msgstr "FÜLLUNG"
#: lilypond-book.py:157
-msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)"
+msgid "pad left side of music to align music in spite of uneven bar numbers (in mm)"
msgstr "verschiebe linken Rand der Noten um an den Noten auszurichten, obwohl Taktnummer ungerade ist (in mm)"
#: lilypond-book.py:162
msgid "accidental typesetting list must begin with context-name: %s"
msgstr "Versetzungszeichensatzliste muss mit Kontextnamen beginnen: %s"
-#: accidental-engraver.cc:210
+#: accidental-engraver.cc:207
#, c-format
msgid "procedure or context-name expected for accidental rule, found %s"
msgstr "Prozedur oder Kontextname für Versetzungszeichenregel erwartet, %s gefunden"
msgid "natural alteration glyph not found"
msgstr "Auflösungszeichen konnte nicht gefunden werden"
-#: all-font-metrics.cc:149
+#: all-font-metrics.cc:159
#, c-format
msgid "cannot find font: `%s'"
msgstr "Schriftart kann nicht gefunden werden: »%s«"
msgid "no heads for arpeggio found?"
msgstr "keine Notenköpfe für Arpeggio gefunden?"
-#: auto-change-iterator.cc:74 change-iterator.cc:72
-#, c-format
-msgid "cannot change, already in translator: %s"
-msgstr "kann nicht geändert werden, bereits im Übersetzer: %s"
-
#: axis-group-engraver.cc:149
msgid "Axis_group_engraver: vertical group already has a parent"
msgstr "Axis_group_engraver: vertikale Gruppe hat bereits einen Vater"
msgid "removing this vertical group"
msgstr "Entfernen dieser vertikalen Gruppe"
-#: axis-group-interface.cc:714
+#: axis-group-interface.cc:716
#, c-format
msgid "\"%s\" is not a valid outside-staff-placement-directive"
msgstr "»%s« ist keine gültige outside-staff-placement-directive"
-#: axis-group-interface.cc:786
+#: axis-group-interface.cc:788
msgid "an outside-staff object should have a direction, defaulting to up"
msgstr "Ein Objekt außerhalb der Notenzeile sollte eine Richtung haben, Vorgabe ist »nach oben«"
msgstr "Balken wurde hier begonnen"
#. We are completely screwed.
-#: beam-quanting.cc:839
+#: beam-quanting.cc:850
msgid "no viable initial configuration found: may not find good beam slope"
msgstr "Keine funktionsfähige Anfangskonfiguration gefunden: Es kann evtl. keine optimale Balkenneigung gefunden werden"
-#: beam.cc:181
+#: beam.cc:183
msgid "removing beam with no stems"
msgstr "Balken ohne Notenhälse wird entfernt"
msgstr "»%s« kann nicht in »%s« geändert werden"
#. FIXME: constant error message.
-#: change-iterator.cc:93
+#: change-iterator.cc:67
msgid "cannot find context to switch to"
msgstr "es kann kein Kontext zum Umschalten gefunden werden"
+#. No enclosing context was found because the iterator's immediate
+#. context is the kind that was sought.
#. We could change the current translator's id, but that would make
#. errors hard to catch.
#.
#. last->translator_id_string () = get_change
#. ()->change_to_id_string ();
-#: change-iterator.cc:102
+#: change-iterator.cc:78
#, c-format
msgid "not changing to same context type: %s"
msgstr "kein Umschalten zum gleichen Kontexttypen: %s"
-#. FIXME: uncomprehensable message
-#: change-iterator.cc:106
+#. FIXME: incomprehensible message
+#: change-iterator.cc:82
msgid "none of these in my family"
msgstr "keiner davon befindet sich in meiner Familie"
msgid "need symbol arguments for \\override and \\revert"
msgstr "Symbol-Argumente für \\override und \\revert benötigt"
-#: context.cc:143
+#: context.cc:144
#, c-format
msgid "cannot find or create new `%s'"
msgstr "ein neues »%s« kann weder gefunden noch erzeugt werden"
-#: context.cc:222
+#: context.cc:223
#, c-format
msgid "cannot find or create `%s' called `%s'"
msgstr "»%s« (»%s« genannt) kann weder gefunden noch erzeugt werden"
-#: context.cc:419
+#: context.cc:416
#, c-format
msgid "cannot find or create: `%s'"
msgstr "»%s« kann weder gefunden noch erzeugt werden"
-#: context.cc:433
+#: context.cc:430
#, c-format
msgid "cannot find or create new Bottom = \"%s\""
msgstr "ein neues Bottom = \"%s\" kann weder gefunden noch erzeugt werden"
msgid "custos `%s' not found"
msgstr "Custos »%s« nicht gefunden"
-#: dispatcher.cc:83
+#: dispatcher.cc:82
msgid "Event class should be a list"
msgstr "Ereignisklasse sollte eine Liste sein"
-#: dispatcher.cc:166
+#: dispatcher.cc:165
#, c-format
msgid "Junking event: %s"
msgstr "Ereignis wird verworfen: »%s«"
-#: dispatcher.cc:271
+#: dispatcher.cc:279
msgid "Attempting to remove nonexisting listener."
msgstr "Versuche, nicht existierende listener zu entfernen."
-#: dispatcher.cc:297
+#: dispatcher.cc:305
msgid "Already listening to dispatcher, ignoring request"
msgstr "Höre schon dem Rechenzeitverteiler zu, Anforderung wird irgnoriert"
msgid "dot `%s' not found"
msgstr "Punkt »%s« nicht gefunden"
-#: dynamic-engraver.cc:168
+#: dynamic-engraver.cc:169
#, c-format
msgid ""
"unknown crescendo style: %s\n"
"unbekannter crescendo-Stil: %s\n"
"wird als spitze Klammer gesetzt."
-#: dynamic-engraver.cc:233 slur-proto-engraver.cc:119
+#: dynamic-engraver.cc:234 slur-proto-engraver.cc:119
#, c-format
msgid "unterminated %s"
msgstr "unbegrenzt: »%s«"
msgid "unterminated extender"
msgstr "unbegrenzter Textunterstrich"
-#: flag.cc:134
+#: flag.cc:133
#, c-format
msgid "flag `%s' not found"
msgstr "Fähnchen »%s« nicht gefunden"
-#: flag.cc:154
+#: flag.cc:153
#, c-format
msgid "flag stroke `%s' not found"
msgstr "Fähnchenstrich »%s« nicht gefunden"
-#: font-config-scheme.cc:151 font-config.cc:53
+#: font-config-scheme.cc:151 font-config.cc:82
#, c-format
msgid "failed adding font directory: %s"
msgstr "Schriftartverzeichnis konnte nicht hinzugefügt werden: %s"
-#: font-config-scheme.cc:153 font-config.cc:55
+#: font-config-scheme.cc:153 font-config.cc:84
#, c-format
msgid "Adding font directory: %s"
msgstr "Schriftartverzeichnis wird hinzugefügt: %s"
msgid "Initializing FontConfig..."
msgstr "FontConfig wird initialisiert..."
-#: font-config.cc:58
+#: font-config.cc:70
+#, c-format
+msgid "failed to add fontconfig configuration file `%s'"
+msgstr "Schriftkonfigurationsdatei »%s« für fontconfig konnte nicht hinzugefügt werden"
+
+#: font-config.cc:73
+#, c-format
+msgid "Adding fontconfig configuration file: %s"
+msgstr "Schriftkonfigurationsdatei für fontconfig wird hinzugefügt: %s"
+
+#: font-config.cc:86
msgid "Building font database..."
msgstr "Schriftartendatenbank erstellen..."
msgid "Grob `%s' has no interface for property `%s'"
msgstr "Grob »%s« hat keine Schnittstelle für Eigenschaft »%s«"
-#: grob-property.cc:35
+#: grob-property.cc:33
#, c-format
msgid "%d: %s"
msgstr "%d: %s"
-#: grob.cc:481
+#: grob.cc:492
#, c-format
msgid "ignored infinite %s-offset"
msgstr "unendliche %s-Verschiebung ignoriert"
msgid "unterminated hyphen; removing"
msgstr "unbegrenzter Bindestrich; entfernt"
-#: includable-lexer.cc:71 lily-guile.cc:91 lily-parser-scheme.cc:108
+#: includable-lexer.cc:71 lily-guile.cc:92 lily-parser-scheme.cc:108
#, c-format
msgid "cannot find file: `%s'"
msgstr "Datei »%s« kann nicht gefunden werden"
msgid "(search path: `%s')"
msgstr "(Suchpfad: »%s«)"
-#: input.cc:138 source-file.cc:177 source-file.cc:192
+#: input.cc:138 source-file.cc:180 source-file.cc:195
msgid "position unknown"
msgstr "Position unbekannt"
-#: key-engraver.cc:198
+#: key-engraver.cc:197
msgid "Incomplete keyAlterationOrder for key signature"
msgstr "keyAlterationOrder für die Vorzeichen ist nicht vollständig"
msgid "ligature was started here"
msgstr "Ligatur wurde hier begonnen"
-#: lily-guile.cc:93
+#: lily-guile.cc:94
#, c-format
msgid "(load path: `%s')"
msgstr "(Lade-Pfad: `%s')"
-#: lily-guile.cc:412
+#: lily-guile.cc:413
#, c-format
msgid "cannot find property type-check for `%s' (%s)."
msgstr "Eigenschafts-Typprüfung für »%s« (%s) kann nicht gefunden werden."
-#: lily-guile.cc:415
+#: lily-guile.cc:416
msgid "perhaps a typing error?"
msgstr "vielleicht ein Tippfehler?"
-#: lily-guile.cc:422
+#: lily-guile.cc:423
msgid "skipping assignment"
msgstr "Zuweisung wird übersprungen"
msgid "type check for `%s' failed; value `%s' must be of type `%s'"
msgstr "Typprüfung für »%s« gescheitert; Wert »%s« muss vom Typ »%s« sein"
-#: lily-lexer.cc:249
+#. Uh oh. unsmob<T> delivered 0, yet
+#. unsmob<T> delivers true. This means that unsmob<T> is a
+#. matching check from a base class of T, but var is of an
+#. incompatible derived type.
+#: lily-guile.cc:462
+msgid "Wrong kind of "
+msgstr "Falsche Art "
+
+#: lily-lexer.cc:251
msgid "include files are not allowed in safe mode"
msgstr "eingefügte Dateien sind im abgesicherten Modus nicht erlaubt"
-#: lily-lexer.cc:276
+#: lily-lexer.cc:278
#, c-format
msgid "identifier name is a keyword: `%s'"
msgstr "Bezeichnername ist ein Schlüsselwort: »%s«"
-#: lily-lexer.cc:297 lily-lexer.cc:310
+#: lily-lexer.cc:299 lily-lexer.cc:312
#, c-format
msgid "%s:EOF"
msgstr "%s:EOF"
+#: lily-modules.cc:81
+#, c-format
+msgid "Uninitialized variable `%s' in module (%s)"
+msgstr "Nicht initialisierte Variable »%s« im Modul (%s)"
+
#: lily-parser-scheme.cc:80
#, c-format
msgid "Changing working directory to: `%s'"
msgid "Processing `%s'"
msgstr "»%s« wird verarbeitet"
-#: lily-parser-scheme.cc:209
+#: lily-parser-scheme.cc:210
msgid "ly:parser-parse-string is only valid with a new parser. Use ly:parser-include-string instead."
msgstr "ly:parser-parse-string ist nur mit einem neuen Parser gültig. Anstelle dessen ly:parser-include-string benutzen."
-#: lily-parser-scheme.cc:240
+#: lily-parser-scheme.cc:241
msgid "ly:parse-string-expression is only valid with a new parser. Use ly:parser-include-string instead."
msgstr "ly:parse-string-expression ist nur mit einem neuen Parser gültig. Anstelle dessen ly:parser-include-string benutzen."
-#: lily-parser.cc:107
+#: lily-parser.cc:106
msgid "Parsing..."
msgstr "Analysieren..."
-#: lookup.cc:181
+#: lookup.cc:178
#, c-format
msgid "Not drawing a box with negative dimension, %.2f by %.2f."
msgstr "Kasten mit negativen Ausmaßen wird nicht gezeichnet, %.2f mal %.2f."
msgid "argument of \\lyricsto should contain Lyrics context"
msgstr "das Argument von \\lyricsto muss einen Lyrics-Kontext enthalten"
-#: lyric-combine-music-iterator.cc:349
+#: lyric-combine-music-iterator.cc:344
#, c-format
msgid "cannot find %s `%s'"
msgstr "%s »%s« kann nicht gefunden werden"
-#: main.cc:105
+#: main.cc:106
#, c-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"Bedingungen weitergeben. Rufen Sie »%s --warranty« für weitere\n"
"Informationen auf.\n"
-#: main.cc:111
+#: main.cc:112
msgid ""
" This program is free software; you can redistribute it and/or\n"
"modify it under the terms of the GNU General Public License as \n"
"Sie bitte an die Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
"Boston, MA 02111-1307, USA.\n"
-#: main.cc:149
+#: main.cc:150
msgid "SYM[=VAL]"
msgstr "SYM[=WERT]"
-#: main.cc:150
+#: main.cc:151
msgid ""
"set Scheme option SYM to VAL (default: #t).\n"
"Use -dhelp for help."
"Scheme-Option SYM auf WERT setzen (Vorgabe: #t).\n"
"-dhelp für Hilfe verwenden."
-#: main.cc:154
+#: main.cc:155
msgid "EXPR"
msgstr "AUSD"
-#: main.cc:154
+#: main.cc:155
msgid "evaluate scheme code"
msgstr "Scheme-Code auswerten"
#. Bug in option parser: --output =foe is taken as an abbreviation
#. for --output-format.
-#: main.cc:157
+#: main.cc:158
msgid "FORMATs"
msgstr "FORMATe"
-#: main.cc:157
+#: main.cc:158
msgid "dump FORMAT,... Also as separate options:"
msgstr "dump FORMAT,... Auch als separate Optionen:"
-#: main.cc:158
+#: main.cc:159
msgid "generate PDF (default)"
msgstr "PDF erzeugen (Standard)"
-#: main.cc:159
+#: main.cc:160
msgid "generate PNG"
msgstr "PNG erzeugen"
-#: main.cc:160
+#: main.cc:161
msgid "generate PostScript"
msgstr "PostScript erzeugen"
-#: main.cc:161
+#: main.cc:162
msgid "generate big PDF files"
msgstr "große PDFs erzeugen"
-#: main.cc:164
+#: main.cc:165
msgid "FIELD"
msgstr "FELD"
-#: main.cc:164
+#: main.cc:165
msgid ""
"dump header field FIELD to file\n"
"named BASENAME.FIELD"
msgstr "Header-Feld FELD in Datei BASISNAME.FELD schreiben"
-#: main.cc:167
+#: main.cc:168
msgid "add DIR to search path"
msgstr "VERZ zum Suchpfad hinzufügen"
-#: main.cc:168
+#: main.cc:169
msgid "use FILE as init file"
msgstr "DATEI als Anfangsdatei verwenden"
-#: main.cc:171
+#: main.cc:172
msgid "USER, GROUP, JAIL, DIR"
msgstr "BENUTZER,GRUPPE,KERKER,VERZ"
-#: main.cc:171
+#: main.cc:172
msgid ""
"chroot to JAIL, become USER:GROUP\n"
"and cd into DIR"
"chroot in KERKER, wird BENUTZER:GRUPPE\n"
"und cd in VERZ"
-#: main.cc:176
+#: main.cc:177
msgid ""
"print log messages according to LOGLEVEL. Possible values are:\n"
"NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG."
"Logmeldungen nach LOGLEVEL-Einstellung ausgeben. Mögliche Werte:\n"
"NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (Standard) und DEBUG."
-#: main.cc:180
+#: main.cc:181
msgid "write output to FILE (suffix will be added)"
msgstr "Ausgabe in DATEI schreiben (Endung wird hinzugefügt)"
-#: main.cc:181
+#: main.cc:182
msgid "relocate using directory of lilypond program"
msgstr "wiederfinden mit Hilfe des Lilypond-Programmverzeichnisses"
-#: main.cc:182
+#: main.cc:183
msgid "no progress, only error messages (equivalent to loglevel=ERROR)"
msgstr "kein Forschritt, nur Fehlermeldungen (entspricht LOGLEVEL=ERROR)"
-#: main.cc:184
+#: main.cc:185
msgid "be verbose (equivalent to loglevel=DEBUG)"
msgstr "ausführlich sein (entspricht LOGLEVEL=DEBUG)"
#. Do not update the copyright years here, run `make grand-replace'
-#: main.cc:263
+#: main.cc:264
#, c-format
msgid ""
"Copyright (c) %s by\n"
"%s und anderen."
#. No version number or newline here. It confuses help2man.
-#: main.cc:301
+#: main.cc:302
#, c-format
msgid "Usage: %s [OPTION]... FILE..."
msgstr "Aufruf: %s [OPTION]... DATEI..."
-#: main.cc:303
+#: main.cc:304
msgid "Typeset music and/or produce MIDI from FILE."
msgstr "Musiksatz und/oder MIDI aus DATEI erzeugen."
-#: main.cc:305
+#: main.cc:306
msgid "LilyPond produces beautiful music notation."
msgstr "LilyPond erzeugt ansprechenden Notensatz."
-#: main.cc:307
+#: main.cc:308
#, c-format
msgid "For more information, see %s"
msgstr "Für weitere Informationen siehe %s"
-#: main.cc:309
+#: main.cc:310
msgid "Options:"
msgstr "Optionen:"
-#: main.cc:376
+#: main.cc:377
#, c-format
msgid "expected %d arguments with jail, found: %u"
msgstr "%d Argumente mit Kerker erwartet, %u gefunden"
-#: main.cc:390
+#: main.cc:391
#, c-format
msgid "no such user: %s"
msgstr "kein solcher Benutzer: %s"
-#: main.cc:392
+#: main.cc:393
#, c-format
msgid "cannot get user id from user name: %s: %s"
msgstr "Benutzer-ID von Benutzername kann nicht gefunden werden: %s: %s"
-#: main.cc:407
+#: main.cc:408
#, c-format
msgid "no such group: %s"
msgstr "keine solche Gruppe: %s"
-#: main.cc:409
+#: main.cc:410
#, c-format
msgid "cannot get group id from group name: %s: %s"
msgstr "Gruppen-ID kann nicht von Gruppenname ermittelt werden: %s: %s"
-#: main.cc:417
+#: main.cc:418
#, c-format
msgid "cannot chroot to: %s: %s"
msgstr "kein chroot möglich nach: %s: %s"
-#: main.cc:424
+#: main.cc:425
#, c-format
msgid "cannot change group id to: %d: %s"
msgstr "Gruppen-ID kann nicht geändert werden in: %d: %s"
-#: main.cc:430
+#: main.cc:431
#, c-format
msgid "cannot change user id to: %d: %s"
msgstr "Benutzer-ID kann nicht geändert werden in: %d: %s"
-#: main.cc:436
+#: main.cc:437
#, c-format
msgid "cannot change working directory to: %s: %s"
msgstr "aktuelles Verzeichnis kann nicht geändert werden in: %s: %s"
-#: main.cc:825
+#: main.cc:826
#, c-format
msgid "exception caught: %s"
msgstr "Ausnahme gefangen: %s"
#. FIXME: constant error message.
-#: mark-engraver.cc:156
+#: mark-engraver.cc:150
msgid "rehearsalMark must have integer value"
msgstr "rehearsalMark muss Ganzzahlwert haben"
-#: mark-engraver.cc:162
+#: mark-engraver.cc:156
msgid "mark label must be a markup object"
msgstr "Marke muss ein Textbeschriftungsobjekt sein"
msgid "unexpected case fall-through"
msgstr "unerwarteter case-Ausgang"
-#: midi-control-function-performer.cc:109 staff-performer.cc:152
+#: midi-control-function-performer.cc:107 staff-performer.cc:153
#, c-format
msgid "ignoring out-of-range value change for MIDI property `%s'"
msgstr "Wertänderung außerhalb der Reichweite für MIDI-Eigenschaft »%s« ignoriert"
msgid "usable-duration-logs must be a non-empty list. Falling back to whole rests."
msgstr "usable-duration-logs muss eine nicht-leere Liste sein. Falle auf ganze Pausen zurück."
-#: music.cc:149
+#: music.cc:150
#, c-format
msgid "octave check failed; expected \"%s\", found: \"%s\""
msgstr "Oktavenüberprüfung gescheitert; »%s« erwartet, »%s« gefunden"
msgid "NoteEvent without pitch"
msgstr "NoteEvent ohne Tonhöhe"
-#: open-type-font.cc:46
+#: open-type-font.cc:45
#, c-format
msgid "cannot allocate %lu bytes"
msgstr "es können keine %lu Bytes angefordert werden"
-#: open-type-font.cc:50
+#: open-type-font.cc:49
#, c-format
msgid "cannot load font table: %s"
msgstr "Schriftarttabelle kann nicht geladen werden: %s"
-#: open-type-font.cc:55
+#: open-type-font.cc:54
#, c-format
msgid "FreeType error: %s"
msgstr "FreeType-Fehler: %s"
-#: open-type-font.cc:112
+#: open-type-font.cc:115
#, c-format
msgid "unsupported font format: %s"
msgstr "nicht unterstütztes Schriftartformat: %s"
-#: open-type-font.cc:114
+#: open-type-font.cc:117
#, c-format
msgid "error reading font file %s: %s"
msgstr "Fehler beim Lesen der Schriftartdatei: %s: %s"
-#: open-type-font.cc:189
+#: open-type-font.cc:192
#, c-format
msgid "FT_Get_Glyph_Name () Freetype error: %s"
msgstr "FT_Get_Glyph_Name() Freetype-Fehler: %s"
-#: open-type-font.cc:337 pango-font.cc:257
+#: open-type-font.cc:340 pango-font.cc:258
#, c-format
msgid "FT_Get_Glyph_Name () error: %s"
msgstr "FT_Get_Glyph_Name() Fehler: %s"
msgid "best score for this sys-count: %f"
msgstr "bester Score für dieses sys-count: %f"
-#: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:248
+#: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:249
#: paper-score.cc:156
msgid "Drawing systems..."
msgstr "Systeme erstellen..."
-#: output-def.cc:230
+#: output-def.cc:229
msgid "margins do not fit with line-width, setting default values"
msgstr "Ränder passen nicht zur Zeilenbreite, setze Standardwerte"
-#: output-def.cc:237
+#: output-def.cc:236
msgid "systems run off the page due to improper paper settings, setting default values"
msgstr "Systeme befinden sich außerhalb der Seite wegen falschen paper-Einstellungen, setze Standardwerte ein"
msgid "page %d has been compressed"
msgstr "Seite %d wurde komprimiert"
-#: page-layout-problem.cc:402
+#: page-layout-problem.cc:400
msgid "A page layout problem has been initiated that cannot accommodate footnotes."
msgstr "Ein Seitenlayoutproblem wurde initiiert, das Fußnoten nicht aufnehmen kann."
-#: page-layout-problem.cc:731
+#: page-layout-problem.cc:729
msgid "ragged-bottom was specified, but page must be compressed"
msgstr "ragged-bottom angefordert, aber Seite muss komprimiert sein"
-#: page-layout-problem.cc:734
+#: page-layout-problem.cc:732
#, c-format
msgid "compressing over-full page by %.1f staff-spaces"
msgstr "Komprimierung über gesamte Seite bei %.1f Notensystemabständen"
-#: page-layout-problem.cc:1199
+#: page-layout-problem.cc:1197
msgid "staff-affinities should only decrease"
msgstr "staff-affinities sollten nur abnehmen"
-#: page-turn-page-breaking.cc:168
+#: page-turn-page-breaking.cc:169
#, c-format
msgid "page-turn-page-breaking: breaking from %d to %d"
msgstr "Seitenwechsel-Seitenumbruch: Umbruch von %d zu %d"
-#: page-turn-page-breaking.cc:217
+#: page-turn-page-breaking.cc:218
msgid "cannot fit the first page turn onto a single page. Consider setting first-page-number to an even number."
msgstr "Erster Seitenwechsel kann nicht auf einzelne Seite gelegt werden. In Betracht zu ziehen wäre das Setzen von first-page-number auf gerade Zahl."
-#: page-turn-page-breaking.cc:230
+#: page-turn-page-breaking.cc:231
#, c-format
msgid "Calculating page and line breaks (%d possible page breaks)..."
msgstr "Seiten- und Zeilenumbrüche werden berechnet (%d mögliche Seitenumbrüche)..."
-#: page-turn-page-breaking.cc:300
+#: page-turn-page-breaking.cc:301
#, c-format
msgid "break starting at page %d"
msgstr "Umbruch beginnt auf Seite %d"
-#: page-turn-page-breaking.cc:301
+#: page-turn-page-breaking.cc:302
#, c-format
msgid "\tdemerits: %f"
msgstr "Optimale Bewertung: %f"
-#: page-turn-page-breaking.cc:302
+#: page-turn-page-breaking.cc:303
#, c-format
msgid "\tsystem count: %d"
msgstr "\tSystemanzahl: %d"
-#: page-turn-page-breaking.cc:303
+#: page-turn-page-breaking.cc:304
#, c-format
msgid "\tpage count: %d"
msgstr "\tSeitenanzahl: %d"
-#: page-turn-page-breaking.cc:304
+#: page-turn-page-breaking.cc:305
#, c-format
msgid "\tprevious break: %d"
msgstr "\tvorheriger Umbruch: %d"
-#: pango-font.cc:246
+#: pango-font.cc:247
#, c-format
msgid "no glyph for character U+%0X in font `%s'"
msgstr "Kein Glyph für Zeichen U+%0X in Schriftart »%s«"
-#: pango-font.cc:273
+#: pango-font.cc:274
#, c-format
msgid ""
"Glyph has no name, but font supports glyph naming.\n"
"Glyph hat keinen Namen, aber Zeichensatz unterstützt Glyphnamen.\n"
"Glyph U+%0X wird übersprungen, Datei %s"
-#: pango-font.cc:323
+#: pango-font.cc:324
#, c-format
msgid "no PostScript font name for font `%s'"
msgstr "Kein PostScript-Schriftartname für Schriftart: »%s«"
-#: pango-font.cc:373
+#: pango-font.cc:374
msgid "FreeType face has no PostScript font name"
msgstr "FreeType-Schriftart hat keinen PostScript-Schriftartnamen"
-#: paper-book.cc:201
+#: paper-book.cc:200
#, c-format
msgid "program option -dprint-pages not supported by backend `%s'"
msgstr "Programmoption -dprint-pages nicht von Backend »%s« unterstützt"
-#: paper-book.cc:220
+#: paper-book.cc:219
#, c-format
msgid "program option -dpreview not supported by backend `%s'"
msgstr "Programmoption -dpreview nicht von »%s« unterstützt"
msgid "Preprocessing graphical objects..."
msgstr "Vorverarbeitung der grafischen Elemente..."
-#: parse-scm.cc:128
+#: parse-scm.cc:124
msgid "GUILE signaled an error for the expression beginning here"
msgstr "GUILE signalisierte einen Fehler für den hier beginnenden Ausdruck"
msgid "unterminated percent repeat"
msgstr "unbegrenzte Prozentwiederholung"
-#: performance.cc:55
+#: performance.cc:76
msgid "Track..."
msgstr "Spur..."
-#: performance.cc:90
+#: performance.cc:126
#, c-format
msgid "MIDI output to `%s'..."
msgstr "MIDI-Ausgabe nach »%s«..."
msgid "Failed octave check, got: "
msgstr "Oktavprüfung gescheitert, Rückgabe: "
-#: relocate.cc:52
+#: relocate.cc:56
#, c-format
msgid "Setting %s to %s"
msgstr "%s wird auf %s gesetzt"
#. this warning should only be printed in debug mode!
-#: relocate.cc:73
+#: relocate.cc:77
#, c-format
msgid "no such file: %s for %s"
msgstr "keine solche Datei: %s für %s"
#. this warning should only be printed in debug mode!
#. this warning should only be printed in debug mode
-#: relocate.cc:84 relocate.cc:102
+#: relocate.cc:88 relocate.cc:106
#, c-format
msgid "no such directory: %s for %s"
msgstr "kein solches Verzeichnis: %s für %s"
-#: relocate.cc:93
+#: relocate.cc:97
#, c-format
msgid "%s=%s (prepend)\n"
msgstr "%s=%s (voranstellen)\n"
msgid "Relocation : from cwd: argv0=%s\n"
msgstr "Verlagerung: von cwd: argv0=%s\n"
-#: relocate.cc:194
+#: relocate.cc:196
#, c-format
msgid ""
"Relocation: from PATH=%s\n"
"Verlagerung: von PATH=%s\n"
"argv0=%s\n"
-#: relocate.cc:220
+#: relocate.cc:222
msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR"
msgstr "LILYPONDPREFIX is veraltet, stattdessen LILYPOND_DATADIR verwenden"
-#: relocate.cc:345
+#: relocate.cc:347
#, c-format
msgid "Relocation file: %s"
msgstr "Verlagerungsdatei: %s"
-#: relocate.cc:349 source-file.cc:65
+#: relocate.cc:351 source-file.cc:65
#, c-format
msgid "cannot open file: `%s'"
msgstr "Datei kann nicht geöffnet werden: »%s«"
-#: relocate.cc:379
+#: relocate.cc:381
#, c-format
msgid "Unknown relocation command %s"
msgstr "Unbekannter Verlagerungsbefehl %s"
-#: rest-collision.cc:153
+#: rest-collision.cc:154
msgid "cannot resolve rest collision: rest direction not set"
msgstr "Zusammenstoß von Pausen kann nicht aufgelöst werden: Richtung von Pausen nicht gesetzt"
-#: rest-collision.cc:164 rest-collision.cc:273
+#: rest-collision.cc:165 rest-collision.cc:274
msgid "too many colliding rests"
msgstr "zu viele kollidierende Pausen"
msgid "rest `%s' not found"
msgstr "Pause »%s« nicht gefunden"
-#: score-engraver.cc:79
+#: score-engraver.cc:77
#, c-format
msgid "cannot find `%s'"
msgstr "»%s« kann nicht gefunden werden"
-#: score-engraver.cc:81
+#: score-engraver.cc:79
msgid "Music font has not been installed properly."
msgstr "Musik-Schriftart wurde nicht ordnungsgemäß installiert."
-#: score-engraver.cc:83
+#: score-engraver.cc:81
#, c-format
msgid "Search path `%s'"
msgstr "Suchpfad »%s«"
-#: score-engraver.cc:85
+#: score-engraver.cc:83
msgid "Aborting"
msgstr "Abbruch"
-#: score.cc:160
+#: score.cc:161
msgid "already have music in score"
msgstr "es sind bereits Noten in der Partitur"
-#: score.cc:161
+#: score.cc:163
msgid "this is the previous music"
msgstr "Dies sind die vorhergehenden Noten"
-#: score.cc:166
+#: score.cc:169
msgid "errors found, ignoring music expression"
msgstr "Fehler gefunden, musikalischer Ausdruck wird ignoriert"
msgid "cannot end %s"
msgstr "%s kann nicht beendet werden"
-#: slur.cc:434
+#: slur.cc:436
#, c-format
msgid "Ignoring grob for slur: %s. avoid-slur not set?"
msgstr "Grob für Legatobogen wird ignoriert: %s. avoid-slur nicht gesetzt?"
msgid "weird stem size, check for narrow beams"
msgstr "Eigenartige Notenhalslänge; auf enge Balken überprüfen"
-#: system.cc:201
+#: system.cc:202
#, c-format
msgid "Element count %d"
msgstr "Elementanzahl %d."
-#: system.cc:512
+#: system.cc:513
#, c-format
msgid "Grob count %d"
msgstr "Anzahl der grafischen Objekte (grob): %d"
#. TODO: Also print the arguments of the markup!
-#: text-interface.cc:138
+#: text-interface.cc:139
#, c-format
msgid "Markup depth exceeds maximal value of %d; Markup: %s"
msgstr "Tiefe der Beschriftung geht über maximalen Wert %d, Beschriftung: %s"
msgid "unterminated tie"
msgstr "unbegrenzter Bindebogen"
-#: tie-engraver.cc:373
+#: tie-engraver.cc:377
msgid "lonely tie"
msgstr "einsamer Bindebogen"
msgid "strange time signature found: %d/%d"
msgstr "seltsame Taktart gefunden: %d/%d"
-#: translator-ctors.cc:65
+#: translator-ctors.cc:68
#, c-format
msgid "unknown translator: `%s'"
msgstr "unbekannter Übersetzer: »%s«"
msgid "fatal error. Couldn't find type: %s"
msgstr "schwerwiegender Fehler. Typ konnte nicht gefunden werden: %s"
-#: translator-group.cc:188
+#: translator-group.cc:187
#, c-format
msgid "cannot find: `%s'"
msgstr "»%s« kann nicht gefunden werden"
-#: translator.cc:320
+#: translator.cc:310
#, c-format
msgid "Two simultaneous %s events, junking this one"
msgstr "Zwei gleichzeitige %s-Ereignisse, dieses wird verworfen"
-#: translator.cc:321
+#: translator.cc:311
#, c-format
msgid "Previous %s event here"
msgstr "Vorheriges %s-Ereignis hier"
msgid "giving up"
msgstr "aufgeben"
-#: parser.yy:463 parser.yy:847 parser.yy:928 parser.yy:1150
+#: parser.yy:476 parser.yy:947 parser.yy:1028 parser.yy:1248
msgid "bad expression type"
msgstr "falsche Ausdrucksart"
-#: parser.yy:759 parser.yy:1361 parser.yy:1406
+#: parser.yy:859 parser.yy:1458 parser.yy:1503
msgid "not a context mod"
msgstr "kein solcher Kontextmodus"
-#: parser.yy:954
+#: parser.yy:1054
msgid "Missing music in \\score"
msgstr "keine Noten in der Partitur (\\score) gefunden"
-#: parser.yy:991
+#: parser.yy:1091
msgid "\\paper cannot be used in \\score, use \\layout instead"
msgstr "\\paper kann nicht in \\source verwendet werden; stattdessen \\layout verwenden"
-#: parser.yy:1027
+#: parser.yy:1126
msgid "Spurious expression in \\score"
msgstr "Falscher Ausdruck in \\score"
-#: parser.yy:1057
+#: parser.yy:1156
msgid "need \\paper for paper block"
msgstr "Für Papier-Block wird \\paper benötigt"
-#: parser.yy:1234
+#: parser.yy:1331
msgid "music expected"
msgstr "Noten erwartet"
-#: parser.yy:1244 parser.yy:1278
+#: parser.yy:1341 parser.yy:1375
msgid "unexpected post-event"
msgstr "unerwarteter post-event"
-#: parser.yy:1286
+#: parser.yy:1383
msgid "Ignoring non-music expression"
msgstr "Nicht-musikalischer Ausdruck wird ignoriert"
-#: parser.yy:1587
+#: parser.yy:1691
msgid "not a symbol"
msgstr "kein Symbol"
-#: parser.yy:2337 parser.yy:2451 parser.yy:2464 parser.yy:2473
+#: parser.yy:2491 parser.yy:2605 parser.yy:2618 parser.yy:2627
msgid "bad grob property path"
msgstr "falscher Pfad für Grob-Eigenschaft"
-#: parser.yy:2431
+#: parser.yy:2585
msgid "only \\consists and \\remove take non-string argument."
msgstr "nur \\consists und \\remove verstehen ein Nicht-Zeichenketten-Argument."
-#: parser.yy:2492
+#: parser.yy:2646
msgid "bad context property path"
msgstr "falscher Pfad für Kontexteigenschaft"
-#: parser.yy:2593
+#: parser.yy:2733
msgid "simple string expected"
msgstr "Einzelne Zeichenkette erwartet"
-#: parser.yy:2611
+#: parser.yy:2750
msgid "symbol expected"
msgstr "Symbol erwartet"
-#: parser.yy:2747
+#: parser.yy:2886
msgid "not a rhythmic event"
msgstr "kein rhytmisches Ereignis"
-#: parser.yy:2797
+#: parser.yy:2936
msgid "post-event expected"
msgstr "post-event erwartet"
-#: parser.yy:2806 parser.yy:2811
+#: parser.yy:2945 parser.yy:2950
msgid "have to be in Lyric mode for lyrics"
msgstr "muss in Liedtextmodus sein um Liedtext setzen zu können"
-#: parser.yy:2887
+#: parser.yy:3026
msgid "expecting string or post-event as script definition"
msgstr "Zeichenkette oder post-event als Skriptdefinition erwartet"
-#: parser.yy:2991
+#: parser.yy:3130
msgid "not an articulation"
msgstr "keine Artikulation"
-#: parser.yy:3063 parser.yy:3106
+#: parser.yy:3202 parser.yy:3245
msgid "not a duration"
msgstr "keine Dauer"
-#: parser.yy:3127
+#: parser.yy:3266
msgid "bass number expected"
msgstr "Bass-Ziffer erwartet"
-#: parser.yy:3219
+#: parser.yy:3358
msgid "have to be in Note mode for notes"
msgstr "Muss im Notenmodus sein für Noten"
-#: parser.yy:3258
+#: parser.yy:3397
msgid "have to be in Chord mode for chords"
msgstr "Muss im Akkordmodus sein für Akkorde"
-#: parser.yy:3301
+#: parser.yy:3440
msgid "markup outside of text script or \\lyricmode"
msgstr "Beschriftung außerhalb von Textbeschriftung oder \\lyricmode"
-#: parser.yy:3306
+#: parser.yy:3445
msgid "unrecognized string, not in text script or \\lyricmode"
msgstr "Zeichenkette nicht erkannt, weder Textbeschriftung noch \\lyricmode"
-#: parser.yy:3458 parser.yy:3467
+#: parser.yy:3597 parser.yy:3606
msgid "not an unsigned integer"
msgstr "keine unsignierte Ganzzahl"
-#: parser.yy:3541
+#: parser.yy:3693
msgid "not a markup"
msgstr "Keine Textbeschriftung"
-#: lexer.ll:192
+#: lexer.ll:193
msgid "stray UTF-8 BOM encountered"
msgstr "verirrtes UTF-8 BOM gefunden"
-#: lexer.ll:195
+#: lexer.ll:196
msgid "Skipping UTF-8 BOM"
msgstr "UTF-8 BOM wird übersprungen"
-#: lexer.ll:247
+#: lexer.ll:248
#, c-format
msgid "Renaming input to: `%s'"
msgstr "Eingabe in »%s« umbenannt"
-#: lexer.ll:264
+#: lexer.ll:265
msgid "quoted string expected after \\version"
msgstr "zitierte Zeichenkette hinter \\version erwartet"
-#: lexer.ll:268
+#: lexer.ll:269
msgid "quoted string expected after \\sourcefilename"
msgstr "zitierte Zeichenkette hinter \\sourcefilename erwartet"
-#: lexer.ll:272
+#: lexer.ll:273
msgid "integer expected after \\sourcefileline"
msgstr "Ganzzahl hinter \\sourcefilename erwartet"
-#: lexer.ll:299
+#: lexer.ll:300
msgid "\\maininput not allowed outside init files"
msgstr "\\maininput ist außerhalb von Init-Dateien nicht erlaubt"
-#: lexer.ll:323
+#: lexer.ll:324
#, c-format
msgid "wrong or undefined identifier: `%s'"
msgstr "falscher oder ungültiger Bezeichner: »%s«"
-#: lexer.ll:348
+#: lexer.ll:349
msgid "string expected after \\include"
msgstr "Zeichenkette hinter \\include erwartet"
-#: lexer.ll:358
+#: lexer.ll:359
msgid "end quote missing"
msgstr "schließendes Anführungszeichen fehlt"
-#: lexer.ll:713
+#: lexer.ll:714
msgid "EOF found inside a comment"
msgstr "EOF innerhalb eines Kommentares gefunden"
-#: lexer.ll:718
+#: lexer.ll:719
msgid "EOF found inside string"
msgstr "EOF innerhalb einer Zeichenkette gefunden"
-#: lexer.ll:733
+#: lexer.ll:734
msgid "Unfinished main input"
msgstr "Haupt-Eingabe nicht beendet"
-#: lexer.ll:804
+#: lexer.ll:805
#, c-format
msgid "invalid character: `%s'"
msgstr "Ungültiges Zeichen: »%s«"
-#: lexer.ll:924
+#: lexer.ll:925
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr "Ungültige Fluchtsequenz: »\\%s«"
-#: lexer.ll:944
+#: lexer.ll:945
#, c-format
msgid "undefined character or shorthand: %s"
msgstr "Zeichen oder Verweis nicht definiert: `%s'"
-#: lexer.ll:1235
+#: lexer.ll:1236
msgid "non-UTF-8 input"
msgstr "nicht-UTF8-Eingabe"
-#: lexer.ll:1279
+#: lexer.ll:1280
#, c-format
msgid "Invalid version string \"%s\""
msgstr "Ungültige Version: »%s«"
-#: lexer.ll:1284
+#: lexer.ll:1285
#, c-format
msgid "file too old: %s (oldest supported: %s)"
msgstr "Datei zu alt: %s (älteste unterstützte: %s)"
-#: lexer.ll:1285
+#: lexer.ll:1286
msgid "consider updating the input with the convert-ly script"
msgstr "Erwägen Sie die Aktualisierung der Eingabe mit dem Skript convert-ly"
-#: lexer.ll:1291
+#: lexer.ll:1292
#, c-format
msgid "program too old: %s (file requires: %s)"
msgstr "Programm zu alt: %s (Datei erfordert: %s)"
msgid "`~a' failed (~a)\n"
msgstr "»~a« gescheitert (~a)\n"
-#: backend-library.scm:94
+#: backend-library.scm:108
#, scheme-format
msgid "Converting to `~a'...\n"
msgstr "Konvertierung nach »~a«...\n"
#. Do not try to guess the name of the png file,
#. GS produces PNG files like BASE-page%d.png.
-#: backend-library.scm:103
+#: backend-library.scm:118
#, scheme-format
msgid "Converting to ~a..."
msgstr "Konvertierung nach ~a..."
-#: backend-library.scm:141
+#: backend-library.scm:134
+#, scheme-format
+msgid "Copying to `~a'...\n"
+msgstr "Kopieren nach »~a«...\n"
+
+#: backend-library.scm:200
+#, scheme-format
+msgid "Deleting `~a'...\n"
+msgstr "Löschen von »~a«...\n"
+
+#: backend-library.scm:219
#, scheme-format
msgid "Writing header field `~a' to `~a'..."
msgstr "Kopfzeile »~a« wird nach »~a« geschrieben"
-#: backend-library.scm:190
+#: backend-library.scm:268
#, scheme-format
msgid "missing stencil expression `~S'"
msgstr "fehlender Stencil-Ausdruck »~S«"
msgid "Undefined parent event class `~S'"
msgstr "Undefinierte Elternereignisklasse »~S«"
-#: define-markup-commands.scm:1062
+#: define-markup-commands.scm:1098
msgid "no systems found in \\score markup, does it have a \\layout block?"
msgstr "keine Systeme in \\score-Markup gefunden, hat es einen \\layout-Block?"
-#: define-markup-commands.scm:2886
+#: define-markup-commands.scm:2922
#, scheme-format
msgid "Cannot find glyph ~a"
msgstr "Kann kein Zeichen ~a finden"
-#: define-markup-commands.scm:3362
+#: define-markup-commands.scm:3398
#, scheme-format
msgid "no brace found for point size ~S "
msgstr "Keine Klammer in Größe ~S pt gefunden"
-#: define-markup-commands.scm:3363
+#: define-markup-commands.scm:3399
#, scheme-format
msgid "defaulting to ~S pt"
msgstr "Setze Standard ~S pt"
-#: define-markup-commands.scm:3615
+#: define-markup-commands.scm:3643
#, scheme-format
msgid "not a valid duration string: ~a"
msgstr "keine gültige Dauer: ~a"
-#: define-markup-commands.scm:3826
+#: define-markup-commands.scm:3854
#, scheme-format
msgid "not a valid duration string: ~a - ignoring"
msgstr "keine gültige Dauer: ~a, wird ignoriert"
-#: define-music-types.scm:797
+#: define-music-types.scm:803
#, scheme-format
msgid "symbol expected: ~S"
msgstr "Symbol erwartet: ~S"
-#: define-music-types.scm:800
+#: define-music-types.scm:806
#, scheme-format
msgid "cannot find music object: ~S"
msgstr "Musikobjekt kann nicht gefunden werden: ~S"
-#: define-music-types.scm:820
+#: define-music-types.scm:826
#, scheme-format
msgid "bad make-music argument: ~S"
msgstr "falsches make-music argument: ~S"
-#: define-note-names.scm:972
+#: define-note-names.scm:1000
msgid "Select note names language."
msgstr "Wählen Sie die Sprache der Notenbezeichnungen."
-#: define-note-names.scm:978
+#: define-note-names.scm:1006
#, scheme-format
msgid "Using `~a' note names..."
msgstr "Benutze Notenbezeichnung »~a«..."
-#: define-note-names.scm:981
+#: define-note-names.scm:1009
#, scheme-format
msgid "Could not find language `~a'. Ignoring."
msgstr "Konnte Sprache »~a« nicht finden. Wird ignoriert."
msgid "cannot find description for property ~S (~S)"
msgstr "Beschreibung für Eigenschaft ~S (~S) kann nicht gefunden werden"
-#: flag-styles.scm:162
+#: flag-styles.scm:155
#, scheme-format
msgid "flag stroke `~a' or `~a' not found"
msgstr "Fähnchenstrich »~a«·or·»~a« nicht gefunden"
-#: framework-eps.scm:108
+#: framework-eps.scm:112
#, scheme-format
msgid "Writing ~a..."
msgstr "~a wird geschrieben..."
msgid "do not know how to embed font ~s ~s ~s"
msgstr "Unbekannte Schriftsatzeinbettung ~s ~s ~s"
-#: framework-ps.scm:729
+#: framework-ps.scm:723
msgid ""
"\n"
"The PostScript backend does not support the\n"
msgid "Error in beam quanting. Expected ~S 0, found ~S."
msgstr "Fehler bei Balkenzuschnitt. ~S 0 erwartet, ~S gefunden."
-#: lily-library.scm:350
+#: lily-library.scm:333
msgid "Music unsuitable for context-mod"
msgstr "Musik unpassend für context-mod"
-#: lily-library.scm:405
+#: lily-library.scm:388
#, scheme-format
msgid "Cannot find context-def \\~a"
msgstr "Kann contex-def \\~a nicht finden"
-#: lily-library.scm:421
+#: lily-library.scm:404
msgid "Music unsuitable for output-def"
msgstr "Musik unpassend für output-def"
-#: lily-library.scm:921
+#: lily-library.scm:904
msgid ""
"Find the index between @var{start} and @var{end} (an integer)\n"
"which produces the closest match to @var{target-val} if\n"
"die den nächstmöglichen Treffer für @var{target-val} findet,\n"
"wenn auf die Funktion @var{getter} angewandt."
-#: lily-library.scm:1015
+#: lily-library.scm:998
#, scheme-format
msgid "unknown unit: ~S"
msgstr "unbekannte Einheit: ~S"
-#: lily-library.scm:1040
+#: lily-library.scm:1023
#, scheme-format
msgid "no \\version statement found, please add~afor future compatibility"
msgstr "keine \\version-Anweisung gefunden, ~a für zukünftige Kompatibilität hinzufügen"
-#: lily.scm:75
+#: lily.scm:93
msgid "call-after-session used after session start"
msgstr "call-after-session nach Beginn des Abschnitts benutzt"
-#: lily.scm:93
+#: lily.scm:111
msgid "define-session used after session start"
msgstr "define-session nach Beginn des Abschnitts benutzt"
-#: lily.scm:399
+#: lily.scm:417
msgid "Using (ice-9 curried-definitions) module\n"
msgstr "Benutze Modul (ice-9 curried-definitions)\n"
-#: lily.scm:402
+#: lily.scm:420
msgid "Guile 1.8\n"
msgstr "Guile 1.8\n"
-#: lily.scm:459
+#: lily.scm:477
#, scheme-format
msgid "cannot find: ~A"
msgstr "~A kann nicht gefunden werden"
-#: lily.scm:886
+#: lily.scm:903
msgid "Success: compilation successfully completed"
msgstr "Kompilation erfolgreich beendet"
-#: lily.scm:887
+#: lily.scm:904
msgid "Compilation completed with warnings or errors"
msgstr "Kompilation mit Warnungen bzw. Fehlermeldungen beendet"
-#: lily.scm:948
+#: lily.scm:965
#, scheme-format
msgid "job ~a terminated with signal: ~a"
msgstr "Auftrag ~a mit Signal ~a beendet"
-#: lily.scm:951
+#: lily.scm:968
#, scheme-format
msgid ""
"logfile ~a (exit ~a):\n"
"Logdatei ~a (Ende ~a):\n"
"~a"
-#: lily.scm:973 lily.scm:1062
+#: lily.scm:990 lily.scm:1079
#, scheme-format
msgid "failed files: ~S"
msgstr "gescheiterte Dateien: ~S"
-#: lily.scm:1053
+#: lily.scm:1070
#, scheme-format
msgid "Redirecting output to ~a..."
msgstr "Ausgabeumleitung nach ~a..."
-#: lily.scm:1072 ps-to-png.scm:66
+#: lily.scm:1089
#, scheme-format
msgid "Invoking `~a'...\n"
msgstr "»~a« wird aufgerufen...\n"
-#: ly-syntax-constructors.scm:66
+#: ly-syntax-constructors.scm:27
#, scheme-format
msgid "~a function cannot return ~a"
msgstr "~a-Funktion kann nicht ~a ausgeben"
-#: ly-syntax-constructors.scm:76
+#: ly-syntax-constructors.scm:60
#, scheme-format
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
msgstr "falscher Typ für Argument ~a; ~a erwartet, ~s gefunden"
-#: ly-syntax-constructors.scm:200
-#, scheme-format
-msgid "Invalid property operation ~a"
-msgstr "Ungültige Eigenschaftsoperation ~a"
-
#: markup-macros.scm:331
#, scheme-format
msgid "Wrong number of arguments. Expect: ~A, found ~A: ~S"
msgid "negative replication count; ignoring"
msgstr "negativer Replikationszähler, wird ignoriert"
-#: music-functions.scm:311
+#: music-functions.scm:319
#, scheme-format
msgid "invalid tremolo repeat count: ~a"
msgstr "ungültige Tremolo-Wiederholung: ~a"
-#: music-functions.scm:340
+#: music-functions.scm:348
#, scheme-format
msgid "unknown repeat type `~S': must be volta, unfold, percent, or tremolo"
msgstr "unbekannter Wiederholungstzp `~S': gültig sind volta, unfold, percent, oder tremolo"
-#: music-functions.scm:344
+#: music-functions.scm:352
msgid "More alternatives than repeats. Junking excess alternatives"
msgstr "mehr Alternativen als Wiederholungen. Überschüssige Alternativen werden verworfen"
-#: music-functions.scm:480
+#: music-functions.scm:487
#, scheme-format
msgid "bad grob property path ~a"
msgstr "Ungültiger Grob-Eigenschaftspfad ~a"
-#: music-functions.scm:779
+#: music-functions.scm:511
+#, scheme-format
+msgid "bad context property ~a"
+msgstr "falsche Kontexteigenschaft ~a"
+
+#: music-functions.scm:534
+#, scheme-format
+msgid "bad music property ~a"
+msgstr "falsche Noten-Eigenschaft ~a"
+
+#: music-functions.scm:840
msgid "Bad chord repetition"
msgstr "Falsche Akkordwiederholung"
-#: music-functions.scm:884
+#: music-functions.scm:945
#, scheme-format
msgid "music expected: ~S"
msgstr "Musik erwartet: ~S"
-#: music-functions.scm:1226
+#: music-functions.scm:1295
#, scheme-format
msgid "cannot find quoted music: `~S'"
msgstr "zitierte Musik »~S« kann nicht gefunden werden"
-#: music-functions.scm:1366
+#: music-functions.scm:1432
msgid "Add @var{octave-shift} to the octave of @var{pitch}."
msgstr "Füge @var{octave-shift} zur Oktave von @var{pitch} hinzu."
-#: music-functions.scm:1429
+#: music-functions.scm:1495
#, scheme-format
msgid "Unknown octaveness type: ~S "
msgstr "Unbekannter Oktaven-Typ: »~S«"
-#: music-functions.scm:1430
+#: music-functions.scm:1496
msgid "Defaulting to 'any-octave."
msgstr "Setze Standard 'any-octave"
-#: music-functions.scm:1822
+#: music-functions.scm:1888
#, scheme-format
msgid "unknown accidental style: ~S"
msgstr "unbekannter Versetzungszeichenstil: ~S"
-#: music-functions.scm:2040
+#: music-functions.scm:2098
msgid "Missing duration"
msgstr "Dauer fehlt"
-#: music-functions.scm:2549
+#: music-functions.scm:2626
#, scheme-format
msgid "not a symbol list: ~a"
msgstr "keine Symbolliste: ~a"
-#: music-functions.scm:2552
+#: music-functions.scm:2629
#, scheme-format
msgid "conflicting tag group ~a"
msgstr "in Konflikt stehende tag-Margengruppe ~a"
msgid "cannot find SVG font ~S"
msgstr "SVG-Schriftart ~S kann nicht gefunden werden"
-#: paper.scm:122
+#: paper.scm:121
msgid "set-global-staff-size: not in toplevel scope"
msgstr "set-global-staff-size: Nicht auf höchster Ebene im Gültigkeitsbereich"
-#: paper.scm:322
+#: paper.scm:321
#, scheme-format
msgid "This is not a \\layout {} object, ~S"
msgstr "Dies ist kein \\layout {} Objekt, ~S"
-#: paper.scm:330
+#: paper.scm:329
#, scheme-format
msgid "Unknown paper size: ~a"
msgstr "Unbekannte Papiergröße: ~a"
#. TODO: should raise (generic) exception with throw, and catch
#. that in parse-scm.cc
-#: paper.scm:349
+#: paper.scm:348
msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
msgstr "#(set-paper-size ..) muss innerhalb von \\paper { ... } verwendet werden"
msgid "supported clefs: ~a"
msgstr "unterstützte Notenschlüssel: ~a"
-#: parser-ly-from-scheme.scm:74
+#: parser-ly-from-scheme.scm:73
msgid "error in #{ ... #}"
msgstr "Fehler in #{ ... #}"
-#: part-combiner.scm:748
+#: part-combiner.scm:894
#, scheme-format
msgid "quoted music `~a' is empty"
msgstr "Zitierte Noten »~a« sind leer"
-#: ps-to-png.scm:70
+#: ps-to-png.scm:72 ps-to-png.scm:75
+#, scheme-format
+msgid "Copying `~a' to `~a'..."
+msgstr "Kopieren von »~a« nach »~a«..."
+
+#: ps-to-png.scm:77 ps-to-png.scm:79
#, scheme-format
-msgid "~a exited with status: ~S"
-msgstr "~a mit Rückgabewert ~S beendet"
+msgid "Deleting `~a'..."
+msgstr "~a wird gelöscht..."
#: to-xml.scm:190
#, scheme-format
"Keine Beschriftung für Bund ~a (auf Saite ~a);\n"
"nur ~a Bundbeschriftung zur Verfügung"
+#~ msgid "cannot change, already in translator: %s"
+#~ msgstr "kann nicht geändert werden, bereits im Übersetzer: %s"
+
+#~ msgid "Invalid property operation ~a"
+#~ msgstr "Ungültige Eigenschaftsoperation ~a"
+
+#~ msgid "~a exited with status: ~S"
+#~ msgstr "~a mit Rückgabewert ~S beendet"
+
#~ msgid "cannot find Voice `%s'"
#~ msgstr "Stimme kann nicht gefunden werden: »%s«"
# Dutch translations for GNU Lilypond.
-# Copyright (C) 2013--2015 Free Software Foundation, Inc.
+# Copyright (C) 2015 Free Software Foundation, Inc.
# This file is distributed under the same license as the lilypond package.
#
# "Occasionally it troubles me just how far one strays
#
# Han-Wen Nienhuys <hanwen@cs.uu.nl>, 1998.
# Jan Nieuwenhuizen <janneke@gnu.org>, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007.
-# Benno Schulenberg <benno@vertaalt.nl>, 2013.
+# Benno Schulenberg <benno@vertaalt.nl>, 2013, 2015.
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 2.17.96\n"
+"Project-Id-Version: lilypond 2.19.26\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2013-11-24 12:14+0000\n"
-"PO-Revision-Date: 2013-11-27 22:28+0100\n"
+"POT-Creation-Date: 2015-08-27 10:48+0100\n"
+"PO-Revision-Date: 2015-09-22 20:04+0200\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
msgid "Running `%s' on file `%s' to detect default page settings.\n"
msgstr ""
-#: book_latex.py:212 book_texinfo.py:228
+#: book_latex.py:219 book_texinfo.py:228
msgid "Unable to auto-detect default settings:\n"
msgstr ""
-#: book_latex.py:224 book_texinfo.py:240
+#: book_latex.py:231 book_texinfo.py:240
#, python-format
msgid ""
"Unable to auto-detect default settings:\n"
"%s"
msgstr ""
-#: book_latex.py:247
+#: book_latex.py:254
msgid "cannot detect textwidth from LaTeX"
msgstr ""
msgid "Missing files: %s"
msgstr "Ontbrekende bestanden: %s"
-#: book_snippets.py:651
+#: book_snippets.py:661
#, python-format
msgid "Could not overwrite file %s"
msgstr "Kan bestand %s niet overschrijven"
-#: book_snippets.py:738
+#: book_snippets.py:748
#, python-format
msgid "Running through filter `%s'"
msgstr ""
-#: book_snippets.py:759
+#: book_snippets.py:769
#, python-format
msgid "`%s' failed (%d)"
msgstr "'%s' is mislukt (%d)"
-#: book_snippets.py:760
+#: book_snippets.py:770
msgid "The error log is as follows:"
msgstr "De foutlog is als volgt:"
# lisp-format
-#: book_snippets.py:880
+#: book_snippets.py:890
#, python-format
msgid "Converting MusicXML file `%s'...\n"
msgstr "Converteren van MusicXML-bestand '%s'...\n"
-#: book_snippets.py:907
+#: book_snippets.py:917
#, python-format
msgid ""
"%s: duplicate filename but different contents of original file,\n"
"printing diff against existing file."
msgstr ""
-#: book_snippets.py:920
+#: book_snippets.py:930
#, python-format
msgid ""
"%s: duplicate filename but different contents of converted lilypond file,\n"
#: convertrules.py:82 convertrules.py:1856 convertrules.py:2032
#: convertrules.py:2175 convertrules.py:2506 convertrules.py:2801
-#: convertrules.py:3151 convertrules.py:3385
+#: convertrules.py:3151 convertrules.py:3388 convertrules.py:3700
msgid "bump version for release"
msgstr ""
#: convertrules.py:2095
msgid "LilyPond source must be UTF-8"
-msgstr "LilyPond-brontekst moet UTF-8 zijn"
+msgstr "LilyPond bron moet UTF-8 zijn"
#: convertrules.py:2098
msgid "Try the texstrings backend"
-msgstr "Probeer de textstrings-backend."
+msgstr "Probeer het textstring backend"
#: convertrules.py:2101
#, python-format
#: convertrules.py:2104
msgid "Or save as UTF-8 in your editor"
-msgstr "Of sla het op als UTF-8 in uw editor."
+msgstr "Of bewaar als UTF-8 in je editor"
#: convertrules.py:2154
msgid "warn about auto beam settings"
"%s"
msgstr ""
-# XXX this and next two should be one
+# FIXME: this and next two should be one
#: convertrules.py:2625
msgid "Use the `alignment-offsets' sub-property of\n"
msgstr ""
msgid "all settings related to dashed lines"
msgstr ""
-# XXX this and next should be one
+# FIXME: this and next should be one
#: convertrules.py:2646
msgid "Use \\override ... #'style = #'line for solid lines and\n"
msgstr ""
#: convertrules.py:2820
msgid ""
"oldaddlyrics is no longer supported. \n"
-" Use addlyrics or lyrsicsto instead.\n"
+" Use addlyrics or lyricsto instead.\n"
msgstr ""
#: convertrules.py:2826
msgid "input/regression/beam-broken-classic.ly shows how broken beams are now handled.\n"
msgstr ""
-#: convertrules.py:3369
+#: convertrules.py:3372
msgid "beamExceptions controls whole-measure beaming."
msgstr ""
-#: convertrules.py:3606
+#: convertrules.py:3609
msgid "Flag.transparent and Flag.color inherit from Stem"
msgstr ""
-#: convertrules.py:3672
+#: convertrules.py:3675
msgid "Staff-padding now controls the distance to the baseline, not the nearest point."
msgstr ""
msgid "Unable to find instrument for ID=%s\n"
msgstr "Kan instrument voor ID=%s niet vinden\n"
-#: abc2ly.py:1386 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1044
+#: abc2ly.py:1389 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1044
#, python-format
msgid "%s [OPTION]... FILE"
msgstr "%s [OPTIE...] BESTAND"
-#: abc2ly.py:1387
+#: abc2ly.py:1390
#, python-format
msgid ""
"abc2ly converts ABC music files (see\n"
"'abc2ly' converteert ABC-muziekbestanden\n"
"(zie %s) naar LilyPond-invoer.\n"
-#: abc2ly.py:1395 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
-#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:181
+#: abc2ly.py:1398 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
+#: midi2ly.py:1095 musicxml2ly.py:2590 main.cc:184
msgid "show version number and exit"
msgstr "programmaversie tonen en stoppen"
-#: abc2ly.py:1398 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
-#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:160
+#: abc2ly.py:1401 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
+#: midi2ly.py:1062 musicxml2ly.py:2572 main.cc:163
msgid "show this help and exit"
msgstr "deze hulptekst tonen en stoppen"
-#: abc2ly.py:1401 etf2ly.py:1209 midi2ly.py:1071
+#: abc2ly.py:1404 etf2ly.py:1209 midi2ly.py:1071
msgid "write output to FILE"
msgstr "uitvoer naar BESTAND schrijven"
-#: abc2ly.py:1404
+#: abc2ly.py:1407
msgid "be strict about success"
msgstr "strikt zijn wat betreft succes"
-#: abc2ly.py:1407
+#: abc2ly.py:1410
msgid "preserve ABC's notion of beams"
msgstr "ABC's notie van waardestrepen behouden"
-#: abc2ly.py:1410
+#: abc2ly.py:1413
msgid "suppress progress messages"
msgstr "voortgangsberichten onderdrukken"
#. "Report bugs in English via %s",
#. or if there is a LilyPond users list or forum in your language
#. "Report bugs in English via %s or in YOUR_LANG via URI"
-#: abc2ly.py:1413 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
-#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:315
+#: abc2ly.py:1416 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
+#: midi2ly.py:1107 musicxml2ly.py:2674 main.cc:318
#, c-format, python-format
msgid "Report bugs via %s"
msgstr ""
msgstr "Print log-berichten volgens LOG-NIVEAU (NONE, ERROR, WARNING, PROGRESS (standaard), DEBUG)."
#: convert-ly.py:111 lilypond-book.py:163 lilypond-book.py:181
-#: musicxml2ly.py:2629 main.cc:174
+#: musicxml2ly.py:2629 main.cc:177
msgid "LOGLEVEL"
msgstr "LOG-NIVEAU"
msgstr "een genummerde reservekopie maken (standaard: bestandsnaam.ext~)"
#: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1096
-#: main.cc:183
+#: main.cc:186
msgid "show warranty and copyright"
msgstr "garantie en auteursrechten tonen"
msgid "Stopping at last successful rule"
msgstr "Gestopt bij laatste succesvolle regel"
-# XXX trailing space?
+# FIXME: trailing space?
#: convert-ly.py:256
#, python-format
msgid "Processing `%s'... "
msgstr "Verwerken van '%s'... "
-#: convert-ly.py:367
+#: convert-ly.py:366
#, python-format
msgid "%s: Unable to open file"
msgstr "%s: Kan bestand niet openen"
-#: convert-ly.py:373
+#: convert-ly.py:372
#, python-format
msgid "%s: Unable to determine version. Skipping"
msgstr "%s: Kan versie niet bepalen. Overgeslagen."
-#: convert-ly.py:379
+#: convert-ly.py:378
#, python-format
msgid ""
"%s: Invalid version string `%s' \n"
"Valid version strings consist of three numbers, separated by dots, e.g. `2.8.12'"
msgstr ""
-#: convert-ly.py:385
+#: convert-ly.py:384
#, python-format
msgid "There was %d error."
msgid_plural "There were %d errors."
"van 'ETF' naar een gebruiksklaar Lilypond-bestand.\n"
#: etf2ly.py:1210 midi2ly.py:1067 midi2ly.py:1072 musicxml2ly.py:2659
-#: main.cc:166 main.cc:178
+#: main.cc:169 main.cc:181
msgid "FILE"
msgstr "BESTAND"
msgstr "deze MAP toevoegen aan zoekpad"
#: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:169
-#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:165
+#: lilypond-book.py:187 lilypond-book.py:208 lilypond-book.py:214 main.cc:168
msgid "DIR"
msgstr "MAP"
msgstr ""
#: lilypond-book.py:157
-msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)"
+msgid "pad left side of music to align music in spite of uneven bar numbers (in mm)"
msgstr ""
#: lilypond-book.py:162
msgid "Removing `%s'"
msgstr "Verwijderen van '%s'"
-#: lilypond-book.py:714
+#: lilypond-book.py:727
#, python-format
msgid "Setting LilyPond's loglevel to %s"
msgstr "Instellen van Lilypond-log-niveau op %s"
-#: lilypond-book.py:718
+#: lilypond-book.py:731
#, python-format
msgid "Setting LilyPond's loglevel to %s (from environment variable LILYPOND_LOGLEVEL)"
msgstr "Instellen van Lilypond-log-niveau op %s (uit omgevingsvariabele LILYPOND_LOGLEVEL)"
-#: lilypond-book.py:721
+#: lilypond-book.py:734
msgid "Setting LilyPond's output to --verbose, implied by lilypond-book's setting"
msgstr "Instellen van Lilyponds uitvoer op '--verbose', geïmpliceerd door Lilypond-books instelling"
msgid "musicxml2ly [OPTION]... FILE.xml"
msgstr "musicxml2ly [OPTIE...] BESTAND.xml"
-# XXX command line >> standard input
-# XXX use the existing standard phrase instead
+# FIXME: command line ==> standard input
+# that is: use the existing standard phrase instead
#: musicxml2ly.py:2566
msgid ""
"Convert MusicXML from FILE.xml to LilyPond input.\n"
msgid "Input file %s is compressed, extracting raw MusicXML data"
msgstr ""
-# XXX uncapitalize Standard
+# FIXME: uncapitalize Standard
#: musicxml2ly.py:2859
msgid "Reading MusicXML from Standard input ..."
msgstr "Lezen van MusicXML van standaardinvoer..."
msgid "Unable to find input file %s"
msgstr "Kan invoerbestand %s niet vinden"
-#: website_post.py:125
+#: website_post.py:129
msgid "English"
msgstr "Engels"
-#: website_post.py:128
+#: website_post.py:132
msgid "Other languages"
msgstr "Andere talen"
-#: website_post.py:129
+#: website_post.py:133
#, python-format
msgid "About <a href=\"%s\">automatic language selection</a>."
msgstr "Gebruik van <a href=\"%s\">automatische taalkeuze</a>."
msgid "accidental typesetting list must begin with context-name: %s"
msgstr "voorteken zetlijst moet beginnen met context-naam: %s"
-#: accidental-engraver.cc:210
+#: accidental-engraver.cc:207
#, c-format
msgid "procedure or context-name expected for accidental rule, found %s"
msgstr "procedure of context-naam werd verwacht voor toevallige regel, gevonden: %s"
-#: accidental.cc:169
+#: accidental.cc:141
#, c-format
msgid "Could not find glyph-name for alteration %s"
msgstr "Kan gliefnaam niet vinden voor verandering %s"
-#: accidental.cc:184
+#: accidental.cc:157
#, fuzzy
msgid "natural alteration glyph not found"
msgstr "glief voor herstelteken niet gevonden"
-#: all-font-metrics.cc:149
+#: all-font-metrics.cc:159
#, c-format
msgid "cannot find font: `%s'"
msgstr "kan font niet vinden: '%s'"
msgid "no heads for arpeggio found?"
msgstr ""
-#: auto-change-iterator.cc:74 change-iterator.cc:72
-#, c-format
-msgid "cannot change, already in translator: %s"
-msgstr "kan niet wisselen, al in vertaler: %s"
-
#: axis-group-engraver.cc:149
msgid "Axis_group_engraver: vertical group already has a parent"
msgstr "Axis_group_engraver: verticale groep heeft al een ouder"
msgid "removing this vertical group"
msgstr "verwijderen van deze verticale groep"
-#: axis-group-interface.cc:714
+#: axis-group-interface.cc:716
#, c-format
msgid "\"%s\" is not a valid outside-staff-placement-directive"
msgstr ""
-#: axis-group-interface.cc:786
+#: axis-group-interface.cc:788
msgid "an outside-staff object should have a direction, defaulting to up"
msgstr "een buiten-notenbalk object moet een richting hebben, gebruik standaardwaarde omhoog"
msgstr "waardestreep werd hier gestart"
#. We are completely screwed.
-#: beam-quanting.cc:839
+#: beam-quanting.cc:850
msgid "no viable initial configuration found: may not find good beam slope"
msgstr "geen werkbare initiële configuratie gevonden: kan wellicht geen goede waardestreephelling vinden"
-#: beam.cc:181
+#: beam.cc:183
msgid "removing beam with no stems"
msgstr "verwijderen van waardestreep zonder stokken"
#: change-iterator.cc:34
#, c-format
msgid "cannot change `%s' to `%s'"
-msgstr "kan '%s' niet in '%s' veranderen"
+msgstr "kan `%s' niet in `%s' veranderen"
#. FIXME: constant error message.
-#: change-iterator.cc:93
+#: change-iterator.cc:67
msgid "cannot find context to switch to"
-msgstr "kan context om naar over te schakelen niet vinden"
+msgstr "kan `%s' niet wisselen in `%s'"
+#. No enclosing context was found because the iterator's immediate
+#. context is the kind that was sought.
#. We could change the current translator's id, but that would make
#. errors hard to catch.
#.
#. last->translator_id_string () = get_change
#. ()->change_to_id_string ();
-#: change-iterator.cc:102
+#: change-iterator.cc:78
#, c-format
msgid "not changing to same context type: %s"
msgstr "niet wisselen naar zelfde type context: %s"
-#. FIXME: uncomprehensable message
-#: change-iterator.cc:106
+#. FIXME: incomprehensible message
+#: change-iterator.cc:82
msgid "none of these in my family"
msgstr "geen van deze in mijn gezin"
#: clef.cc:65
#, c-format
msgid "clef `%s' not found"
-msgstr "sleutel '%s' is niet gevonden"
+msgstr "sleutel `%s' niet gevonden"
#: cluster.cc:120
#, c-format
msgid "unknown cluster style `%s'"
-msgstr "onbekende clusterstijl '%s'"
+msgstr "onbekende klusterstijl `%s'"
#: cluster.cc:157
msgid "junking empty cluster"
-msgstr "lege cluster wordt weggegooid"
+msgstr "verschroot lege cluster"
#: coherent-ligature-engraver.cc:110
#, c-format
msgid "cannot find line breaking that satisfies constraints"
msgstr "kan geen regelbreuk vinden die aan voorwaarden voldoet"
-#: context-property.cc:43
+#: context-property.cc:46
msgid "need symbol arguments for \\override and \\revert"
msgstr "heb symbool-argumenten nodig voor \\override en \\revert"
-#: context.cc:149
+#: context.cc:144
#, c-format
msgid "cannot find or create new `%s'"
-msgstr "kan '%s' niet vinden of nieuw maken"
+msgstr "kan niet vinden of nieuw maken `%s'"
-#: context.cc:228
+#: context.cc:223
#, c-format
msgid "cannot find or create `%s' called `%s'"
-msgstr "kan '%s' genaamd '%s' niet vinden of aanmaken"
+msgstr "kan niet vinden of maken `%s' genaamd `%s'"
-#: context.cc:425
+#: context.cc:416
#, c-format
msgid "cannot find or create: `%s'"
-msgstr "kan '%s' niet vinden of aanmaken"
+msgstr "kan niet vinden of scheppen: `%s'"
-#: context.cc:439
+#: context.cc:430
#, fuzzy, c-format
msgid "cannot find or create new Bottom = \"%s\""
msgstr "kan niet vinden of nieuw maken `%s'"
msgid "custos `%s' not found"
msgstr "custode `%s' niet gevonden"
-#: dispatcher.cc:89
-#, fuzzy
+#: dispatcher.cc:82
msgid "Event class should be a list"
-msgstr "Gebeurtenis klasse zou hoort een symbool te zijn"
+msgstr "Gebeurtenisklasse hoort een lijst te zijn"
-#: dispatcher.cc:172
+#: dispatcher.cc:165
#, c-format
msgid "Junking event: %s"
msgstr "Gebeurtenis %s wordt weggegooid"
-#: dispatcher.cc:277
+#: dispatcher.cc:279
msgid "Attempting to remove nonexisting listener."
msgstr ""
-#: dispatcher.cc:303
+#: dispatcher.cc:305
msgid "Already listening to dispatcher, ignoring request"
msgstr ""
#: dots.cc:48
#, c-format
msgid "dot `%s' not found"
-msgstr "punt '%s' is niet gevonden"
+msgstr "punt `%s' niet gevonden"
-#: dynamic-engraver.cc:168
+#: dynamic-engraver.cc:169
#, c-format
msgid ""
"unknown crescendo style: %s\n"
"defaulting to hairpin."
msgstr ""
-#: dynamic-engraver.cc:233 slur-proto-engraver.cc:119
-#, fuzzy, c-format
+#: dynamic-engraver.cc:234 slur-proto-engraver.cc:119
+#, c-format
msgid "unterminated %s"
-msgstr "onbeëindigde bindingsboog"
+msgstr "onbeëindigde %s"
#. No explicit dynamic script events have occurred yet, but there is
#. nevertheless a dynamic spanner. Initialize last_volume_ to a
msgid "unterminated extender"
msgstr "onbeëindigde extender"
-#: flag.cc:134
+#: flag.cc:133
#, c-format
msgid "flag `%s' not found"
-msgstr "vlag '%s' is niet gevonden"
+msgstr "vlag `%s' niet gevonden"
-#: flag.cc:154
+#: flag.cc:153
#, c-format
msgid "flag stroke `%s' not found"
msgstr "vlagstreep '%s' is niet gevonden"
-#: font-config-scheme.cc:151 font-config.cc:53
+#: font-config-scheme.cc:151 font-config.cc:82
#, c-format
msgid "failed adding font directory: %s"
msgstr "toevoegen van font-map is mislukt: %s"
-#: font-config-scheme.cc:153 font-config.cc:55
+#: font-config-scheme.cc:153 font-config.cc:84
#, c-format
msgid "Adding font directory: %s"
msgstr "Toevoegen van font-map: %s"
msgid "Initializing FontConfig..."
msgstr "Initialiseren van FontConfig..."
-#: font-config.cc:58
+#: font-config.cc:70
+#, fuzzy, c-format
+msgid "failed to add fontconfig configuration file `%s'"
+msgstr "toevoegen van font-bestand is mislukt: %s"
+
+#: font-config.cc:73
+#, fuzzy, c-format
+msgid "Adding fontconfig configuration file: %s"
+msgstr "Toevoegen van font-bestand: %s"
+
+#: font-config.cc:86
msgid "Building font database..."
msgstr "Opbouwen van font-gegevensbank..."
msgid "Must be footnote-event."
msgstr ""
-#: general-scheme.cc:390
+#: general-scheme.cc:403
#, c-format
msgid "failed redirecting stderr to `%s'"
-msgstr "omleiden van standaardfoutuitvoer naar '%s' is mislukt"
+msgstr ""
-#: general-scheme.cc:469 output-ps.scm:48
+#: general-scheme.cc:482 output-ps.scm:48
#, fuzzy
msgid "Found infinity or nan in output. Substituting 0.0"
msgstr "Oneindig of nan gevonden in uitvoer. Vervangen door 0.0"
#: global-context-scheme.cc:95 global-context-scheme.cc:113
msgid "no music found in score"
-msgstr "geen muziek gevonden in partituur"
+msgstr "geen muziek gevonden in score"
#: global-context-scheme.cc:103
-#, fuzzy
msgid "Interpreting music..."
msgstr "Vertolken van muziek..."
#: grob-interface.cc:68
#, c-format
msgid "Unknown interface `%s'"
-msgstr "onbekende interface '%s'"
+msgstr "onbekende interface `%s'"
#: grob-interface.cc:79
#, c-format
msgid "Grob `%s' has no interface for property `%s'"
-msgstr "Grob '%s' heeft geen interface voor eigenschap '%s'"
+msgstr "Grob `%s' heeft geen interface voor eigenschap `%s'"
-#: grob-property.cc:35
+#: grob-property.cc:33
#, c-format
msgid "%d: %s"
msgstr "%d: %s"
-#: grob.cc:488
+#: grob.cc:492
#, c-format
msgid "ignored infinite %s-offset"
msgstr ""
msgid "Asking for broken bound padding at a non-broken bound."
msgstr ""
-#: hairpin.cc:256
+#: hairpin.cc:257
msgid "decrescendo too small"
msgstr "decrescendo te klein"
msgid "unterminated hyphen; removing"
msgstr "verwijderen van onafgesloten streepje"
-#: includable-lexer.cc:71 lily-guile.cc:91 lily-parser-scheme.cc:108
+#: includable-lexer.cc:71 lily-guile.cc:92 lily-parser-scheme.cc:108
#, c-format
msgid "cannot find file: `%s'"
-msgstr "kan bestand '%s' niet vinden"
+msgstr "kan bestand niet vinden: `%s'"
#: includable-lexer.cc:73 lily-parser-scheme.cc:100
#, c-format
msgid "(search path: `%s')"
-msgstr "(zoekpad: '%s')"
+msgstr "(zoekpad: `%s')"
-#: input.cc:138 source-file.cc:178 source-file.cc:193
+#: input.cc:138 source-file.cc:180 source-file.cc:195
msgid "position unknown"
msgstr "positie onbekend"
-#: key-engraver.cc:198
+#: key-engraver.cc:197
msgid "Incomplete keyAlterationOrder for key signature"
msgstr ""
msgid "ligature was started here"
msgstr "ligatuur werd hier gestart"
-#: lily-guile.cc:93
+#: lily-guile.cc:94
#, c-format
msgid "(load path: `%s')"
-msgstr "(laadpad: '%s')"
+msgstr "(zoekpad: `%s')"
-#: lily-guile.cc:412
+#: lily-guile.cc:413
#, c-format
msgid "cannot find property type-check for `%s' (%s)."
msgstr "kan geen typecontrole vinden voor eigenschap '%s' (%s)"
-#: lily-guile.cc:415
+#: lily-guile.cc:416
msgid "perhaps a typing error?"
msgstr "misschien een typefout?"
-#: lily-guile.cc:422
+#: lily-guile.cc:423
#, fuzzy
msgid "skipping assignment"
msgstr "voer toewijzing toch door"
msgid "type check for `%s' failed; value `%s' must be of type `%s'"
msgstr "typecontrole is mislukt voor '%s'; waarde '%s' moet van type '%s' zijn"
-#: lily-lexer.cc:249
+#. Uh oh. unsmob<T> delivered 0, yet
+#. unsmob<T> delivers true. This means that unsmob<T> is a
+#. matching check from a base class of T, but var is of an
+#. incompatible derived type.
+#: lily-guile.cc:462
+msgid "Wrong kind of "
+msgstr ""
+
+#: lily-lexer.cc:251
msgid "include files are not allowed in safe mode"
msgstr "invoegbestanden zijn niet toegestaan in veilige modus"
-#: lily-lexer.cc:276
+#: lily-lexer.cc:278
#, c-format
msgid "identifier name is a keyword: `%s'"
msgstr "identifier-naam is een sleutelwoord: '%s'"
-#: lily-lexer.cc:297 lily-lexer.cc:310
+#: lily-lexer.cc:299 lily-lexer.cc:312
#, c-format
msgid "%s:EOF"
msgstr ""
+#: lily-modules.cc:81
+#, c-format
+msgid "Uninitialized variable `%s' in module (%s)"
+msgstr "Ongeïnitialiseerde variabele '%s' in module (%s)"
+
#: lily-parser-scheme.cc:80
#, c-format
msgid "Changing working directory to: `%s'"
-msgstr "Veranderen van werkmap naar '%s'"
+msgstr "Veranderen van werkmap naar: '%s'"
#: lily-parser-scheme.cc:84
#, c-format
msgid "unable to change directory to: `%s'"
-msgstr "kan huidige map niet wijzigen naar '%s'"
+msgstr "kan werkmap niet veranderen naar: '%s'"
#: lily-parser-scheme.cc:99
#, c-format
msgid "cannot find init file: `%s'"
-msgstr "kan init-bestand '%s' niet vinden"
+msgstr "kan init-bestand niet vinden: '%s'"
#: lily-parser-scheme.cc:117
#, c-format
msgid "Processing `%s'"
msgstr "Verwerken van '%s'"
-#: lily-parser-scheme.cc:209
+#: lily-parser-scheme.cc:210
msgid "ly:parser-parse-string is only valid with a new parser. Use ly:parser-include-string instead."
msgstr ""
-#: lily-parser-scheme.cc:240
+#: lily-parser-scheme.cc:241
msgid "ly:parse-string-expression is only valid with a new parser. Use ly:parser-include-string instead."
msgstr ""
-#: lily-parser.cc:107
+#: lily-parser.cc:106
msgid "Parsing..."
msgstr "Ontleden..."
-#: lookup.cc:181
+#: lookup.cc:178
#, c-format
msgid "Not drawing a box with negative dimension, %.2f by %.2f."
msgstr ""
-#: lyric-combine-music-iterator.cc:199
+#: lyric-combine-music-iterator.cc:204
msgid "argument of \\lyricsto should contain Lyrics context"
msgstr ""
-#: lyric-combine-music-iterator.cc:337
-#, c-format
-msgid "cannot find Voice `%s'"
-msgstr "kan Voice '%s' niet vinden"
-
-#: lyric-engraver.cc:186
-msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
-msgstr "Liedtekst-lettergreep heeft geen noot. Gebruik \\lyricsto of associatedVoice."
+#: lyric-combine-music-iterator.cc:344
+#, fuzzy, c-format
+msgid "cannot find %s `%s'"
+msgstr "kan niet vinden `%s'"
-#: main.cc:104
+#: main.cc:106
#, c-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"under certain conditions. Invoke as `%s --warranty' for more\n"
"information.\n"
msgstr ""
-"Dit is vrije programmatuur. Het valt onder de GNU General Public License;\n"
-"u mag het onder zeer vrije voorwaarden wijzigen en verder verspreiden.\n"
-"Typ '%s --warranty' voor meer informatie.\n"
+"Dit is vrije programmatuur. Het valt onder de GNU Algemene Openbare\n"
+"Licentie (General Public Licence), en u wordt uitgenodigd het te\n"
+"veranderen en/of te verspreiden onder bepaalde voorwaarden. Roep aan\n"
+"als `%s --warranty' voor meer informatie.\n"
-#: main.cc:110
+#: main.cc:112
#, fuzzy
msgid ""
" This program is free software; you can redistribute it and/or\n"
"zoniet, schrijf dan naar de Free Software Foundation, Inc.,\n"
"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
-#: main.cc:148
+#: main.cc:150
msgid "SYM[=VAL]"
msgstr "SYM[=WAARDE]"
-#: main.cc:149
+#: main.cc:151
msgid ""
"set Scheme option SYM to VAL (default: #t).\n"
"Use -dhelp for help."
"zet Scheme optie SYM to WAARDE (standaard: #t)\n"
"Gebruik -dhelp voor hulp."
-#: main.cc:153
+#: main.cc:155
msgid "EXPR"
msgstr "EXPR"
-#: main.cc:153
+#: main.cc:155
msgid "evaluate scheme code"
msgstr "evalueer scheme code"
#. Bug in option parser: --output =foe is taken as an abbreviation
#. for --output-format.
-#: main.cc:156
+#: main.cc:158
msgid "FORMATs"
msgstr "FORMAATen"
-#: main.cc:156
+#: main.cc:158
msgid "dump FORMAT,... Also as separate options:"
msgstr "dump FORMAAT,... Ook als separate opties:"
-#: main.cc:157
+#: main.cc:159
msgid "generate PDF (default)"
msgstr "genereer PDF (standaard)"
-#: main.cc:158
+#: main.cc:160
msgid "generate PNG"
msgstr "genereer PNG"
-#: main.cc:159
+#: main.cc:161
msgid "generate PostScript"
msgstr "genereer PostScipt"
#: main.cc:162
+#, fuzzy
+msgid "generate big PDF files"
+msgstr "genereer PDF (standaard)"
+
+#: main.cc:165
msgid "FIELD"
msgstr "VELD"
-#: main.cc:162
+#: main.cc:165
msgid ""
"dump header field FIELD to file\n"
"named BASENAME.FIELD"
"schrijf kopveld VELD naar bestand\n"
"genaamd BASISNAAM.VELD"
-#: main.cc:165
+#: main.cc:168
msgid "add DIR to search path"
msgstr "voeg DIR toe aan zoekpad"
-#: main.cc:166
+#: main.cc:169
msgid "use FILE as init file"
msgstr "gebruik BESTAND als initialisatiebestand"
-#: main.cc:169
+#: main.cc:172
msgid "USER, GROUP, JAIL, DIR"
msgstr "GEBR, GROEP, GEVANG, DIR"
-#: main.cc:169
+#: main.cc:172
msgid ""
"chroot to JAIL, become USER:GROUP\n"
"and cd into DIR"
"chroot naar GEVANG, word GEBR:GROEP\n"
"en cd naar MAP"
-#: main.cc:174
+#: main.cc:177
msgid ""
"print log messages according to LOGLEVEL. Possible values are:\n"
"NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG."
msgstr ""
-#: main.cc:178
+#: main.cc:181
msgid "write output to FILE (suffix will be added)"
msgstr ""
"schrijf uitvoer naar BESTAND\n"
"(extensie wordt toegevoegd)"
-#: main.cc:179
+#: main.cc:182
msgid "relocate using directory of lilypond program"
msgstr ""
"verhuis aan de hand van de map van het\n"
"lilypond programma"
-#: main.cc:180
+#: main.cc:183
msgid "no progress, only error messages (equivalent to loglevel=ERROR)"
msgstr ""
-#: main.cc:182
+#: main.cc:185
msgid "be verbose (equivalent to loglevel=DEBUG)"
msgstr ""
#. Do not update the copyright years here, run `make grand-replace'
-#: main.cc:261
+#: main.cc:264
#, c-format
msgid ""
"Copyright (c) %s by\n"
"%s en anderen."
#. No version number or newline here. It confuses help2man.
-#: main.cc:299
+#: main.cc:302
#, c-format
msgid "Usage: %s [OPTION]... FILE..."
msgstr "Gebruik: %s [OPTIE]... BESTAND..."
-#: main.cc:301
+#: main.cc:304
msgid "Typeset music and/or produce MIDI from FILE."
msgstr "Zet muziek en of produceer MIDI van BESTAND."
-#: main.cc:303
+#: main.cc:306
msgid "LilyPond produces beautiful music notation."
msgstr "LilyPond produceert prachtige muzieknotatie."
-#: main.cc:305
+#: main.cc:308
#, c-format
msgid "For more information, see %s"
msgstr "Voor meer informatie, zie %s"
-#: main.cc:307
+#: main.cc:310
msgid "Options:"
msgstr "Opties:"
-#: main.cc:374
+#: main.cc:377
#, c-format
msgid "expected %d arguments with jail, found: %u"
msgstr "verwachtte %d argumenten voor gevang, gevonden: %u"
-#: main.cc:388
+#: main.cc:391
#, c-format
msgid "no such user: %s"
msgstr "onbekende gebruiker: %s"
-#: main.cc:390
+#: main.cc:393
#, c-format
msgid "cannot get user id from user name: %s: %s"
msgstr "kan gebruikers id niet krijgen van gebruikersnaam: %s: %s"
-#: main.cc:405
+#: main.cc:408
#, c-format
msgid "no such group: %s"
msgstr "onbekende groep: %s"
-#: main.cc:407
+#: main.cc:410
#, c-format
msgid "cannot get group id from group name: %s: %s"
msgstr "kan groep id niet krijgen van groepnaam: %s: %s"
-#: main.cc:415
+#: main.cc:418
#, c-format
msgid "cannot chroot to: %s: %s"
msgstr "kan niet chrooten naar: %s: %s"
-#: main.cc:422
+#: main.cc:425
#, c-format
msgid "cannot change group id to: %d: %s"
msgstr "kan groep id niet veranderen in: %d: %s"
-#: main.cc:428
+#: main.cc:431
#, c-format
msgid "cannot change user id to: %d: %s"
msgstr "kan kan gebruiker id niet veranderen in: %d: %s"
-#: main.cc:434
+#: main.cc:437
#, c-format
msgid "cannot change working directory to: %s: %s"
msgstr "kan werkmap niet veranderen in: %s: %s"
-#: main.cc:805
+#: main.cc:826
#, c-format
msgid "exception caught: %s"
msgstr "exceptie gevangen: %s"
#. FIXME: constant error message.
-#: mark-engraver.cc:156
+#: mark-engraver.cc:150
msgid "rehearsalMark must have integer value"
msgstr "rehearsalMark moet een natuurlijk getal zijn"
-#: mark-engraver.cc:162
+#: mark-engraver.cc:156
msgid "mark label must be a markup object"
msgstr "mark etiket moet een markup zijn"
msgid "unexpected case fall-through"
msgstr "onverwachte zaakdoorval"
-#: midi-control-function-performer.cc:109 staff-performer.cc:152
+#: midi-control-function-performer.cc:107 staff-performer.cc:153
#, c-format
msgid "ignoring out-of-range value change for MIDI property `%s'"
msgstr ""
msgid "cannot write to file: `%s'"
msgstr "kon niet naar bestand schrijven: `%s'"
-#: minimal-page-breaking.cc:40 paper-score.cc:122
+#: minimal-page-breaking.cc:40 paper-score.cc:116
msgid "Calculating line breaks..."
msgstr "Berekenen van regelbreuken..."
msgid "Calculating page breaks..."
msgstr "Berekenen van paginabreuken..."
-#: multi-measure-rest.cc:154
+#: multi-measure-rest.cc:152
msgid "usable-duration-logs must be a non-empty list. Falling back to whole rests."
msgstr ""
-#: multi-measure-rest.cc:364
-msgid "Using naive multi measure rest spacing."
-msgstr ""
-
#: music.cc:150
#, c-format
msgid "octave check failed; expected \"%s\", found: \"%s\""
msgstr "octaafcontrole is mislukt; verwachtte \"%s\", vond \"%s\""
-#: music.cc:219
-msgid "(normalized pitch)"
-msgstr "(genormaliseerde toonhoogte)"
-
-#: music.cc:223
-#, c-format
-msgid "Transposing %s by %s makes alteration larger than double"
-msgstr "Transponeren van %s met %s maakt verandering groter dan dubbel"
-
#: new-fingering-engraver.cc:113
msgid "cannot add text scripts to individual note heads"
msgstr "can tekstscripts niet toevoegen aan individuele notenbolletjes"
msgstr "geen plaatsing gevonden voor vingers"
#: new-fingering-engraver.cc:270
+#, fuzzy
msgid "placing below"
-msgstr "onderplaatsing"
+msgstr "plaats onder"
-#: note-collision.cc:497
-msgid "ignoring too many clashing note columns"
-msgstr "negeren van te veel botsende nootkolommen"
+#: note-collision.cc:510
+msgid "this Voice needs a \\voiceXx or \\shiftXx setting"
+msgstr ""
-#: note-column.cc:147
+#: note-column.cc:150
msgid "cannot have note heads and rests together on a stem"
msgstr "kan notenbolletjes en rusten niet samen op een stok zetten"
msgid "FreeType error: %s"
msgstr "FreeType-fout: %s"
-#: open-type-font.cc:111
+#: open-type-font.cc:115
#, c-format
msgid "unsupported font format: %s"
msgstr "niet-ondersteund font-formaat: %s"
-#: open-type-font.cc:113
+#: open-type-font.cc:117
#, c-format
msgid "error reading font file %s: %s"
msgstr "fout bij lezen van font-bestand %s: %s"
-#: open-type-font.cc:188
+#: open-type-font.cc:192
#, c-format
msgid "FT_Get_Glyph_Name () Freetype error: %s"
msgstr "FT_Get_Glyph_Name () Freetype fout: %s"
-#: open-type-font.cc:336 pango-font.cc:256
+#: open-type-font.cc:340 pango-font.cc:258
#, c-format
msgid "FT_Get_Glyph_Name () error: %s"
msgstr "FT_Get_Glyph_Name () fout: %s"
msgid "best score for this sys-count: %f"
msgstr ""
-#: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:248
-#: paper-score.cc:162
+#: optimal-page-breaking.cc:216 page-turn-page-breaking.cc:249
+#: paper-score.cc:156
msgid "Drawing systems..."
msgstr "Tekenen van systemen..."
-#: output-def.cc:235
+#: output-def.cc:229
msgid "margins do not fit with line-width, setting default values"
msgstr ""
-#: output-def.cc:242
+#: output-def.cc:236
msgid "systems run off the page due to improper paper settings, setting default values"
msgstr ""
-#: page-breaking.cc:277
+#: page-breaking.cc:276
msgid "ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set"
msgstr ""
-#: page-breaking.cc:282
+#: page-breaking.cc:281
msgid "min-systems-per-page is larger than max-systems-per-page, ignoring both values"
msgstr ""
-#: page-layout-problem.cc:402
-msgid "A page layout problem has been initiated that cannot accommodate footnotes."
+#: page-breaking.cc:636
+#, c-format
+msgid "page %d has been compressed"
msgstr ""
-#: page-layout-problem.cc:731
-msgid "cannot fit music on page: ragged-spacing was requested, but page was compressed"
+#: page-layout-problem.cc:400
+msgid "A page layout problem has been initiated that cannot accommodate footnotes."
msgstr ""
-#: page-layout-problem.cc:734
-#, c-format
-msgid "cannot fit music on page: overflow is %f"
+#: page-layout-problem.cc:729
+msgid "ragged-bottom was specified, but page must be compressed"
msgstr ""
-#: page-layout-problem.cc:736
-msgid "compressing music to fit"
+#: page-layout-problem.cc:732
+#, c-format
+msgid "compressing over-full page by %.1f staff-spaces"
msgstr ""
-#: page-layout-problem.cc:1199
+#: page-layout-problem.cc:1197
msgid "staff-affinities should only decrease"
msgstr ""
-#: page-turn-page-breaking.cc:168
+#: page-turn-page-breaking.cc:169
#, c-format
msgid "page-turn-page-breaking: breaking from %d to %d"
msgstr "page-turn-page-breaking: afbreken van %d naar %d"
-#: page-turn-page-breaking.cc:217
+#: page-turn-page-breaking.cc:218
msgid "cannot fit the first page turn onto a single page. Consider setting first-page-number to an even number."
msgstr ""
"Kan de eerste paginaomslag niet op eerste pagina gepast krijgen.\n"
"Overweeg om 'first-page-number' een even getal te maken."
-#: page-turn-page-breaking.cc:230
+#: page-turn-page-breaking.cc:231
#, c-format
msgid "Calculating page and line breaks (%d possible page breaks)..."
msgstr "Berekenen van pagina- en regelbreuken (%d mogelijke paginabreuken)..."
-#: page-turn-page-breaking.cc:300
+#: page-turn-page-breaking.cc:301
#, c-format
msgid "break starting at page %d"
msgstr "breuk gestart op pagina %d"
-#: page-turn-page-breaking.cc:301
+#: page-turn-page-breaking.cc:302
#, c-format
msgid "\tdemerits: %f"
msgstr "\tstrafpunten: %f"
-#: page-turn-page-breaking.cc:302
+#: page-turn-page-breaking.cc:303
#, c-format
msgid "\tsystem count: %d"
msgstr "\taantal systemen: %d"
-#: page-turn-page-breaking.cc:303
+#: page-turn-page-breaking.cc:304
#, c-format
msgid "\tpage count: %d"
msgstr "\taantal bladzijden: %d"
-#: page-turn-page-breaking.cc:304
+#: page-turn-page-breaking.cc:305
#, c-format
msgid "\tprevious break: %d"
msgstr "\tvorige breuk: %d"
-#: pango-font.cc:245
+#: pango-font.cc:247
#, c-format
msgid "no glyph for character U+%0X in font `%s'"
msgstr "geen glief voor teken U+%0X in font '%s'"
-#: pango-font.cc:272
+#: pango-font.cc:274
#, c-format
msgid ""
"Glyph has no name, but font supports glyph naming.\n"
"Glief heeft geen naam, terwijl het font gliefnamen ondersteunt.\n"
"Glief U+%0X, bestand %s, wordt overgeslagen."
-#: pango-font.cc:322
+#: pango-font.cc:324
#, c-format
msgid "no PostScript font name for font `%s'"
msgstr "geen PostScript-font-naam voor font '%s'"
-#: pango-font.cc:372
+#: pango-font.cc:374
msgid "FreeType face has no PostScript font name"
msgstr "FreeType-lettertype heeft geen PostScript-font-naam"
-#: paper-book.cc:214
+#: paper-book.cc:200
#, c-format
msgid "program option -dprint-pages not supported by backend `%s'"
msgstr ""
-#: paper-book.cc:233
+#: paper-book.cc:219
#, c-format
msgid "program option -dpreview not supported by backend `%s'"
msgstr ""
msgid "Layout output to `%s'..."
msgstr "Opmaakuitvoer naar `%s'..."
-#: paper-score.cc:134
+#: paper-score.cc:128
#, c-format
msgid "Element count %d (spanners %d) "
msgstr "Aantal elementen %d (spanners %d)"
-#: paper-score.cc:138
+#: paper-score.cc:132
msgid "Preprocessing graphical objects..."
msgstr "Voorbewerken van grafische objecten..."
-#: parse-scm.cc:121
+#: parse-scm.cc:124
msgid "GUILE signaled an error for the expression beginning here"
msgstr "GUILE signaleerde een fout voor de expressie beginnend alhier"
-#: partial-iterator.cc:45
-msgid "trying to use \\partial after the start of a piece"
-msgstr ""
-
#: pdf-scheme.cc:65
#, c-format
msgid "Conversion of string `%s' to UTF-16be failed: %s"
msgstr ""
-#: percent-repeat-engraver.cc:147
+#: percent-repeat-engraver.cc:148
msgid "unterminated percent repeat"
msgstr "onbeëindigde procentherhaling"
-#: performance.cc:54
+#: performance.cc:76
msgid "Track..."
msgstr "Spoor... "
-#: performance.cc:82
+#: performance.cc:126
#, c-format
msgid "MIDI output to `%s'..."
msgstr "MIDI uitvoer naar %s..."
msgid "no such internal option: %s"
msgstr "onbekende interne optie: %s"
-#: property-iterator.cc:100
+#: property-iterator.cc:115
#, c-format
msgid "not a grob name, `%s'"
msgstr "geen grobnaam, `%s'"
msgid "Failed octave check, got: "
msgstr "Octaafcontrole is mislukt; kreeg:"
-#: relocate.cc:52
+#: relocate.cc:56
#, c-format
msgid "Setting %s to %s"
msgstr "Zetten van %s op %s"
#. this warning should only be printed in debug mode!
-#: relocate.cc:73
+#: relocate.cc:77
#, c-format
msgid "no such file: %s for %s"
msgstr "onbekend bestand: %s voor %s"
#. this warning should only be printed in debug mode!
#. this warning should only be printed in debug mode
-#: relocate.cc:84 relocate.cc:102
+#: relocate.cc:88 relocate.cc:106
#, c-format
msgid "no such directory: %s for %s"
msgstr "onbekende map: %s voor %s"
-#: relocate.cc:93
+#: relocate.cc:97
#, c-format
msgid "%s=%s (prepend)\n"
msgstr "%s=%s (voorvoegen)\n"
msgstr "Verhuizing: draadwerk_voorvoegel=%s"
#: relocate.cc:172
-#, c-format
+#, fuzzy, c-format
msgid "Relocation: is absolute: argv0=%s\n"
-msgstr "Verhuizing: is absoluut: argv0=%s\n"
+msgstr "Verhuizing: is absoluut: argv0=%s"
#: relocate.cc:178
-#, c-format
+#, fuzzy, c-format
msgid "Relocation : from cwd: argv0=%s\n"
-msgstr "Verhuizing: van cwd: argv0=%s\n"
+msgstr "Verhuizing: van cwd: argv0=%s"
-#: relocate.cc:194
-#, c-format
+#: relocate.cc:196
+#, fuzzy, c-format
msgid ""
"Relocation: from PATH=%s\n"
"argv0=%s\n"
msgstr ""
"Verhuizing: van PATH=%s\n"
-"argv0=%s\n"
+"argv0=%s"
-#: relocate.cc:220
+#: relocate.cc:222
msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR"
msgstr "LILYPONDPREFIX is verouderd, gebruik LILYPOND_DATADIR"
-#: relocate.cc:345
+#: relocate.cc:347
#, c-format
msgid "Relocation file: %s"
msgstr "Verhuisbestand: %s"
-#: relocate.cc:349 source-file.cc:65
+#: relocate.cc:351 source-file.cc:65
#, c-format
msgid "cannot open file: `%s'"
-msgstr "kan bestand niet openen: '%s'"
+msgstr "kan bestand niet openen: `%s'"
-#: relocate.cc:379
+#: relocate.cc:381
#, c-format
msgid "Unknown relocation command %s"
msgstr "Onbekend verhuizingscommando %s"
-#: rest-collision-engraver.cc:70
-msgid "rhythmic head is not part of a rhythmic column"
-msgstr ""
-
-#: rest-collision.cc:150
+#: rest-collision.cc:154
msgid "cannot resolve rest collision: rest direction not set"
-msgstr "kan rusten-botsing niet oplossen: richting van de rust is niet ingesteld"
+msgstr "kan rust bosting niet oplossen: richting van de rust is niet gezet"
-#: rest-collision.cc:161 rest-collision.cc:270
+#: rest-collision.cc:165 rest-collision.cc:274
msgid "too many colliding rests"
msgstr "te veel botsende rusten"
-#: rest.cc:240
+#: rest.cc:239
#, c-format
msgid "rest `%s' not found"
-msgstr "rust '%s' is niet gevonden"
+msgstr "rust `%s' niet gevonden"
-#: score-engraver.cc:78
+#: score-engraver.cc:77
#, c-format
msgid "cannot find `%s'"
-msgstr "kan '%s' niet vinden"
+msgstr "kan niet vinden `%s'"
-#: score-engraver.cc:80
+#: score-engraver.cc:79
msgid "Music font has not been installed properly."
msgstr "Muziek-font is niet correct geïnstalleerd."
-#: score-engraver.cc:82
+#: score-engraver.cc:81
#, c-format
msgid "Search path `%s'"
-msgstr "Zoekpad: '%s'"
+msgstr "Zoekpad: `%s'"
-#: score-engraver.cc:84
+#: score-engraver.cc:83
msgid "Aborting"
msgstr "Afbreken"
-#: score.cc:172
+#: score.cc:161
msgid "already have music in score"
-msgstr "heb al muziek in partituur"
+msgstr "heb al muziek nodig in score"
-#: score.cc:173
+#: score.cc:163
msgid "this is the previous music"
msgstr "dit is de vorige muziek"
-#: score.cc:178
+#: score.cc:169
msgid "errors found, ignoring music expression"
msgstr "fouten gevonden, negeer muziekexpressie"
msgid " scheme encoding: "
msgstr "scheme codering: "
-#: skyline-pair.cc:160
+#: skyline-pair.cc:135
msgid "direction must not be CENTER in ly:skyline-pair::skyline"
msgstr ""
msgid "cannot end %s"
msgstr "kan %s niet beëindigen"
-#: slur.cc:434
+#: slur.cc:436
#, fuzzy, c-format
msgid "Ignoring grob for slur: %s. avoid-slur not set?"
msgstr "Negeren van grob voor boogje: %s. avoid-slur niet gezet?"
msgid "remapping modulo 16"
msgstr "herafbeelden modulo 16"
-#: stem-engraver.cc:110
+#: stem-engraver.cc:100
msgid "tremolo duration is too long"
msgstr "tremololengte is te lang"
-#: stem-engraver.cc:162
+#: stem-engraver.cc:152
#, c-format
msgid "adding note head to incompatible stem (type = %d/%d)"
msgstr "toevoegen van nootbolletje aan incompatibele stok (type = %d/%d)"
-#: stem-engraver.cc:165
+#: stem-engraver.cc:155
msgid "maybe input should specify polyphonic voices"
msgstr "misschien moet invoer polyfonische stemmen specificeren"
msgid "weird stem size, check for narrow beams"
msgstr "vreemde stoklengte; controleer op krappe waardestrepen"
-#: system.cc:201
+#: system.cc:202
#, c-format
msgid "Element count %d"
msgstr "Aantal elementen: %d"
-#: system.cc:512
+#: system.cc:513
#, c-format
msgid "Grob count %d"
msgstr "Aantal grobs: %d"
#. TODO: Also print the arguments of the markup!
-#: text-interface.cc:129
-#, c-format
-msgid "Cyclic markup detected: %s"
-msgstr ""
-
-#. TODO: Also print the arguments of the markup!
-#: text-interface.cc:142
+#: text-interface.cc:139
#, c-format
msgid "Markup depth exceeds maximal value of %d; Markup: %s"
msgstr ""
msgid "unterminated text spanner"
msgstr "onbeëindigde tekst spanner"
-#: tie-engraver.cc:119
+#: tie-engraver.cc:121
#, fuzzy
msgid "unterminated tie"
msgstr "onbeëindigde waardestreep"
-#: tie-engraver.cc:353
+#: tie-engraver.cc:377
msgid "lonely tie"
msgstr "eenzame overbinding"
#.
#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
#.
-#: time-signature-engraver.cc:75
+#: time-signature-engraver.cc:95
#, c-format
msgid "strange time signature found: %d/%d"
msgstr "vreemde maatsoort gevonden: %d/%d"
-#. If there is no such symbol, we default to the numbered style.
-#. (Here really with a warning!)
-#: time-signature.cc:89
-#, c-format
-msgid "time signature symbol `%s' not found; reverting to numbered style"
-msgstr "maatsoort-symbool '%s' niet gevonden; teruggevallen op numerieke stijl"
-
-#: translator-ctors.cc:65
+#: translator-ctors.cc:68
#, c-format
msgid "unknown translator: `%s'"
msgstr "onbekende vertaler: '%s'"
msgid "fatal error. Couldn't find type: %s"
msgstr "Fatale fout. Kan type niet vinden: %s"
-#: translator-group.cc:188
+#: translator-group.cc:187
#, c-format
msgid "cannot find: `%s'"
msgstr "kan niet vinden: '%s'"
-#: translator.cc:326
+#: translator.cc:310
#, c-format
msgid "Two simultaneous %s events, junking this one"
msgstr "Twee gelijktijdige %s-gebeurtenissen; deze ene wordt weggegooid"
-#: translator.cc:327
+#: translator.cc:311
#, c-format
msgid "Previous %s event here"
msgstr "Vorige %s-gebeurtenis hier"
msgid "giving up"
msgstr "opgegeven"
-#: parser.yy:158 parser.yy:172
-#, fuzzy
-msgid "Too much lookahead"
-msgstr "Te veel vooruitkijk"
-
-#: parser.yy:441 parser.yy:752 parser.yy:818
+#: parser.yy:476 parser.yy:947 parser.yy:1028 parser.yy:1248
msgid "bad expression type"
msgstr "ongeldig expressietype"
-#: parser.yy:650 parser.yy:1159
+#: parser.yy:859 parser.yy:1458 parser.yy:1503
msgid "not a context mod"
msgstr ""
-#: parser.yy:853
-msgid "score expected"
-msgstr "partituur werd verwacht"
+#: parser.yy:1054
+#, fuzzy
+msgid "Missing music in \\score"
+msgstr "geen muziek gevonden in score"
-#: parser.yy:869
+#: parser.yy:1091
msgid "\\paper cannot be used in \\score, use \\layout instead"
msgstr "\\paper kan niet gebruikt worden in \\score; gebruik \\layout"
-#: parser.yy:893
+#: parser.yy:1126
+msgid "Spurious expression in \\score"
+msgstr ""
+
+#: parser.yy:1156
msgid "need \\paper for paper block"
msgstr "heb \\paper nodig voor paper blok"
-#: parser.yy:1033 parser.yy:1055
+#: parser.yy:1331
+msgid "music expected"
+msgstr "muziek verwacht"
+
+#: parser.yy:1341 parser.yy:1375
msgid "unexpected post-event"
msgstr "onverwachte na-gebeurtenis"
-#: parser.yy:1063
+#: parser.yy:1383
msgid "Ignoring non-music expression"
msgstr "Negeren van non-muziekexpressie"
-#: parser.yy:1075 parser.yy:2493
-msgid "music expected"
-msgstr "muziek verwacht"
-
-#: parser.yy:1370
+#: parser.yy:1691
msgid "not a symbol"
msgstr "is geen symbool"
-#: parser.yy:2182 parser.yy:2296 parser.yy:2309 parser.yy:2318
+#: parser.yy:2491 parser.yy:2605 parser.yy:2618 parser.yy:2627
msgid "bad grob property path"
msgstr ""
-#: parser.yy:2276
+#: parser.yy:2585
msgid "only \\consists and \\remove take non-string argument."
msgstr ""
-#: parser.yy:2337
+#: parser.yy:2646
msgid "bad context property path"
msgstr ""
-#: parser.yy:2438
+#: parser.yy:2733
msgid "simple string expected"
msgstr "eenvoudige tekenreeks verwacht"
-#: parser.yy:2456
+#: parser.yy:2750
msgid "symbol expected"
msgstr "symbool verwacht"
-#: parser.yy:2611
+#: parser.yy:2886
msgid "not a rhythmic event"
msgstr "is geen ritmische gebeurtenis"
-#: parser.yy:2685
+#: parser.yy:2936
msgid "post-event expected"
msgstr ""
-#: parser.yy:2694 parser.yy:2699
+#: parser.yy:2945 parser.yy:2950
msgid "have to be in Lyric mode for lyrics"
msgstr "moet in Lyric-modus zijn voor liedteksten"
-#: parser.yy:2767
-msgid "expecting string as script definition"
+#: parser.yy:3026
+#, fuzzy
+msgid "expecting string or post-event as script definition"
msgstr "verwacht tekenreeks voor scriptdefinitie"
-#: parser.yy:2875
+#: parser.yy:3130
msgid "not an articulation"
msgstr "is geen articulatie"
-#: parser.yy:2947 parser.yy:2990
+#: parser.yy:3202 parser.yy:3245
#, fuzzy
msgid "not a duration"
msgstr "geen duur: %d"
-#: parser.yy:3007
+#: parser.yy:3266
#, fuzzy
msgid "bass number expected"
msgstr "symbool verwacht: ~S"
-#: parser.yy:3106
+#: parser.yy:3358
msgid "have to be in Note mode for notes"
msgstr "moet in Note modus zijn voor noten"
-#: parser.yy:3166
+#: parser.yy:3397
msgid "have to be in Chord mode for chords"
msgstr "moet in Chord modus zijn voor accoorden"
-#: parser.yy:3181
+#: parser.yy:3440
msgid "markup outside of text script or \\lyricmode"
msgstr ""
-#: parser.yy:3186
+#: parser.yy:3445
msgid "unrecognized string, not in text script or \\lyricmode"
msgstr ""
-#: parser.yy:3347 parser.yy:3356
+#: parser.yy:3597 parser.yy:3606
msgid "not an unsigned integer"
msgstr ""
-#: parser.yy:3424
+#: parser.yy:3693
msgid "not a markup"
msgstr ""
-#: lexer.ll:224
+#: lexer.ll:193
msgid "stray UTF-8 BOM encountered"
msgstr "losse UTF-8 BOM tegengekomen"
-#: lexer.ll:227
+#: lexer.ll:196
msgid "Skipping UTF-8 BOM"
msgstr "Overslaan van UTF-8 BOM"
-#: lexer.ll:279
+#: lexer.ll:248
#, c-format
msgid "Renaming input to: `%s'"
msgstr "Hernoem invoer naar: `%s'"
-#: lexer.ll:296
+#: lexer.ll:265
msgid "quoted string expected after \\version"
msgstr "tekst tussen aanhalingstekens verwacht na \\version"
-#: lexer.ll:300
+#: lexer.ll:269
msgid "quoted string expected after \\sourcefilename"
msgstr "tekst tussen aanhalingstekens verwacht na \\sourcefilename"
-#: lexer.ll:304
+#: lexer.ll:273
msgid "integer expected after \\sourcefileline"
msgstr "geheel getal verwacht na \\sourcefileline"
-#: lexer.ll:331
+#: lexer.ll:300
msgid "\\maininput not allowed outside init files"
msgstr "\\maininput niet toegestaan buiten init bestanden"
-#: lexer.ll:355
+#: lexer.ll:324
#, c-format
msgid "wrong or undefined identifier: `%s'"
msgstr "verkeerde of ongedefiniëerde identifier: `%s'"
-#: lexer.ll:381
+#: lexer.ll:349
#, fuzzy
msgid "string expected after \\include"
msgstr "tekst tussen aanhalingstekens verwacht na \\version"
-#: lexer.ll:391
+#: lexer.ll:359
msgid "end quote missing"
msgstr "aanhalingstekens sluite mist"
-#: lexer.ll:743
+#: lexer.ll:714
msgid "EOF found inside a comment"
msgstr "EOF gevonden in een kommentaar"
-#: lexer.ll:748
-#, fuzzy
+#: lexer.ll:719
msgid "EOF found inside string"
-msgstr "EOF gevonden in een kommentaar"
+msgstr "EOF gevonden in een tekenreeks"
-#: lexer.ll:763
+#: lexer.ll:734
msgid "Unfinished main input"
msgstr ""
-#: lexer.ll:834
-#, fuzzy, c-format
+#: lexer.ll:805
+#, c-format
msgid "invalid character: `%s'"
-msgstr "ongeldig teken: `%c'"
+msgstr "ongeldig teken: '%s'"
-#: lexer.ll:963
+#: lexer.ll:925
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr "onbekende ontsnapte string: `\\%s'"
-#: lexer.ll:983
+#: lexer.ll:945
#, c-format
msgid "undefined character or shorthand: %s"
msgstr ""
-#: lexer.ll:1275
+#: lexer.ll:1236
msgid "non-UTF-8 input"
msgstr ""
-#: lexer.ll:1319
+#: lexer.ll:1280
+#, c-format
+msgid "Invalid version string \"%s\""
+msgstr "Ongeldige versietekenreeks \"%s\""
+
+#: lexer.ll:1285
#, c-format
msgid "file too old: %s (oldest supported: %s)"
msgstr "bestand te oud: %s (oudste ondersteund: %s)"
-#: lexer.ll:1320
+#: lexer.ll:1286
msgid "consider updating the input with the convert-ly script"
msgstr "overweeg het actualiseren van de invoer met het convert-ly script"
-#: lexer.ll:1326
+#: lexer.ll:1292
#, c-format
msgid "program too old: %s (file requires: %s)"
msgstr "programma te oud: %s (bestand vereist: %s)"
+#: auto-beam.scm:147
+msgid "Beam end fits no pattern"
+msgstr ""
+
#: backend-library.scm:27
#, scheme-format
msgid "Invoking `~a'..."
-msgstr "Aanroepen van '~a'..."
+msgstr "Inroepen van `~a'..."
#: backend-library.scm:31
#, scheme-format
msgstr "'~a' is mislukt (~a)\n"
# lisp-format
-#: backend-library.scm:93
-#, fuzzy, scheme-format
+#: backend-library.scm:108
+#, scheme-format
msgid "Converting to `~a'...\n"
-msgstr "Converteren naar `~a'..."
+msgstr "Converteren naar '~a'...\n"
# lisp-format
#. Do not try to guess the name of the png file,
#. GS produces PNG files like BASE-page%d.png.
-#: backend-library.scm:102
+#: backend-library.scm:118
#, scheme-format
msgid "Converting to ~a..."
msgstr "Converteren naar ~a..."
-#: backend-library.scm:140
+# lisp-format
+#: backend-library.scm:134
+#, scheme-format
+msgid "Copying to `~a'...\n"
+msgstr "Kopiëren naar '~a'...\n"
+
+# lisp-format
+#: backend-library.scm:200
+#, scheme-format
+msgid "Deleting `~a'...\n"
+msgstr "Verwijderen van '~a'...\n"
+
+#: backend-library.scm:219
#, scheme-format
msgid "Writing header field `~a' to `~a'..."
msgstr "Schrijven van header veld `~a' naar `~a'..."
-#: backend-library.scm:189
+#: backend-library.scm:268
#, scheme-format
msgid "missing stencil expression `~S'"
msgstr ""
msgid "symbol ~S redefined"
msgstr "symbool ~S hergedefiniëerd"
-#: define-event-classes.scm:73
-#, fuzzy, scheme-format
+#: define-event-classes.scm:74
+#, scheme-format
msgid "unknown parent class `~a'"
-msgstr "Onbekende gebeurtenis klasse `%s'"
+msgstr "onbekende moederklasse '~a'"
-#: define-event-classes.scm:107
-#, fuzzy, scheme-format
+#: define-event-classes.scm:108
+#, scheme-format
msgid "Cannot redefine event class `~S'"
-msgstr "Onbekende gebeurtenis klasse `%s'"
+msgstr "Kan gebeurtenisklasse '~S' niet herdefiniëren"
-#: define-event-classes.scm:109
-#, fuzzy, scheme-format
+#: define-event-classes.scm:110
+#, scheme-format
msgid "Undefined parent event class `~S'"
-msgstr "Onbekende gebeurtenis klasse `%s'"
+msgstr "Ongedefinieerde moedergebeurtenisklasse '~S'"
-#: define-markup-commands.scm:1083
+#: define-markup-commands.scm:1098
msgid "no systems found in \\score markup, does it have a \\layout block?"
-msgstr "geen systemen gevonden in \\score markup; heeft het een \\layout blok?"
+msgstr "geen systemen gevonden in \\score markup, heeft het een \\layout blok?"
-#: define-markup-commands.scm:2847
+#: define-markup-commands.scm:2922
#, scheme-format
msgid "Cannot find glyph ~a"
msgstr "Kan glief ~a niet vinden"
-#: define-markup-commands.scm:3273
+#: define-markup-commands.scm:3398
#, fuzzy, scheme-format
msgid "no brace found for point size ~S "
msgstr "geen plaatsing gevonden voor vingers"
-#: define-markup-commands.scm:3274
+#: define-markup-commands.scm:3399
#, scheme-format
msgid "defaulting to ~S pt"
msgstr ""
-#: define-markup-commands.scm:3526
+#: define-markup-commands.scm:3643
#, scheme-format
msgid "not a valid duration string: ~a"
msgstr "geen geldige duurtekst: ~a"
-#: define-markup-commands.scm:3737
+#: define-markup-commands.scm:3854
#, fuzzy, scheme-format
msgid "not a valid duration string: ~a - ignoring"
msgstr "geen geldige duurtekst: ~a"
-#: define-music-types.scm:792
+#: define-music-types.scm:803
#, scheme-format
msgid "symbol expected: ~S"
msgstr "symbool verwacht: ~S"
-#: define-music-types.scm:795
+#: define-music-types.scm:806
#, scheme-format
msgid "cannot find music object: ~S"
msgstr "kan muziekobject niet vinden: ~S"
-#: define-music-types.scm:815
+#: define-music-types.scm:826
#, scheme-format
msgid "bad make-music argument: ~S"
msgstr ""
-#: define-music-types.scm:827
-#, scheme-format
-msgid "unknown repeat type `~S'"
-msgstr "onbekend herhaaltype `~S'"
-
-#: define-music-types.scm:828
-#, fuzzy
-msgid "See define-music-types.scm for supported repeats"
-msgstr "Zie music-types.scm voor ondersteunde herhalingen"
-
-#: define-note-names.scm:972
+#: define-note-names.scm:1000
msgid "Select note names language."
msgstr ""
-#: define-note-names.scm:978
+#: define-note-names.scm:1006
#, scheme-format
msgid "Using `~a' note names..."
msgstr ""
-#: define-note-names.scm:981
+#: define-note-names.scm:1009
#, scheme-format
msgid "Could not find language `~a'. Ignoring."
msgstr ""
-#: document-backend.scm:132
+#: document-backend.scm:135
#, scheme-format
msgid "pair expected in doc ~s"
msgstr "paar verwacht in doc ~s"
-#: document-backend.scm:189
+#: document-backend.scm:202
#, scheme-format
msgid "cannot find interface for property: ~S"
msgstr "kan grob bediening voor eigenschap niet vinden: ~S"
-#: document-backend.scm:199
+#: document-backend.scm:212
#, scheme-format
msgid "unknown Grob interface: ~S"
msgstr "onbekende Grob bediening: ~S"
-#: documentation-lib.scm:59
+#: documentation-lib.scm:62
#, scheme-format
msgid "Processing ~S..."
msgstr "Verwerken van ~S..."
-#: documentation-lib.scm:176
+#: documentation-lib.scm:178
#, scheme-format
msgid "Writing ~S..."
msgstr "Schrijven van ~S..."
-#: documentation-lib.scm:188
-#, fuzzy, scheme-format
+#: documentation-lib.scm:190
+#, scheme-format
msgid "cannot find description for property `~S' (~S)"
-msgstr "kan beschrijving voor eigenschap niet vinden ~S (~S)"
+msgstr "kan omschrijving voor eigenschap '~S' niet vinden (~S)"
-#: documentation-lib.scm:209
+#: documentation-lib.scm:211
#, scheme-format
msgid "cannot find description for property ~S (~S)"
-msgstr "kan beschrijving voor eigenschap niet vinden ~S (~S)"
+msgstr "kan omschrijving voor eigenschap ~S niet vinden (~S)"
-#: flag-styles.scm:162
-#, fuzzy, scheme-format
+#: flag-styles.scm:155
+#, scheme-format
msgid "flag stroke `~a' or `~a' not found"
-msgstr "vlag streep `%s' niet gevonden"
+msgstr "vlagstreep '~a' of '~a' is niet gevonden"
-#: framework-eps.scm:108
+#: framework-eps.scm:112
#, scheme-format
msgid "Writing ~a..."
msgstr "Schrijven van ~a..."
-#: framework-ps.scm:250
+#: framework-ps.scm:281
#, scheme-format
msgid "cannot embed ~S=~S"
msgstr "kan niet inbedden ~S=~S"
-#: framework-ps.scm:293
+#: framework-ps.scm:324
#, scheme-format
msgid "cannot extract file matching ~a from ~a"
msgstr "kan bestand dat past op ~a niet uit ~a extraheren"
-#: framework-ps.scm:311
+#: framework-ps.scm:342
#, scheme-format
msgid "do not know how to embed ~S=~S"
msgstr "weet niet hoe ~S=~S in te bedden"
-#: framework-ps.scm:336
+#: framework-ps.scm:367
#, scheme-format
msgid "do not know how to embed font ~s ~s ~s"
msgstr "weet niet hoe font in te bedden: ~s ~s ~s"
-#: framework-ps.scm:687
-#, fuzzy
+#: framework-ps.scm:723
msgid ""
"\n"
"The PostScript backend does not support the\n"
" %% ****************************************************************\n"
msgstr ""
"\n"
-"Het PostScript backend ondersteund geen system-by-system uitvoer.\n"
-"Gebruik daarvoor het EPS backend\n"
+"Het PostScript-backend ondersteunt geen system-by-system uitvoer.\n"
+"Gebruik daarvoor het EPS-backend:\n"
"\n"
-" lilypond -b eps BESTAND\n"
+" lilypond -dbackend=eps BESTAND\n"
"\n"
-"Als LilyPond fragment van een webpagina is gecopiëerd, weet zeker\n"
-"dat alleen alles voorafgaand aan\n"
+"Als u een LilyPond-fragment van een webpagina hebt gekopieerd,\n"
+"verwijder dan alleen alles voorafgaand aan:\n"
"\n"
" %% ****************************************************************\n"
" %% Start cut-&-pastable-section\n"
" %% ****************************************************************\n"
-"\n"
-"is verwijderd\n"
#: framework-svg.scm:84
#, scheme-format
#: layout-beam.scm:54
#, scheme-format
msgid "Error in beam quanting. Expected ~S 0, found ~S."
-msgstr "Fout in waardestreep kwantisering. Verwacht ~S 0, gevonden ~S."
+msgstr "Fout in waardestreep-kwantisering. Verwacht ~S 0, gevonden ~S."
#: lily-library.scm:333
msgid "Music unsuitable for context-mod"
msgid "Music unsuitable for output-def"
msgstr ""
-#: lily-library.scm:884
+#: lily-library.scm:904
msgid ""
"Find the index between @var{start} and @var{end} (an integer)\n"
"which produces the closest match to @var{target-val} if\n"
"applied to function @var{getter}."
msgstr ""
-#: lily-library.scm:955
+#: lily-library.scm:998
#, scheme-format
msgid "unknown unit: ~S"
msgstr "onbekende eenheid: ~S"
-#: lily-library.scm:980
+#: lily-library.scm:1023
#, scheme-format
msgid "no \\version statement found, please add~afor future compatibility"
msgstr "geen \\version uitdrukking gevonden, voeg~atoe voor toekomstige compatibiliteit"
-#: lily.scm:75
+#: lily.scm:93
msgid "call-after-session used after session start"
msgstr ""
-#: lily.scm:93
+#: lily.scm:111
msgid "define-session used after session start"
msgstr ""
-#: lily.scm:393
+#: lily.scm:417
msgid "Using (ice-9 curried-definitions) module\n"
msgstr ""
-#: lily.scm:396
+#: lily.scm:420
msgid "Guile 1.8\n"
-msgstr ""
+msgstr "Guile 1.8\n"
-#: lily.scm:455
+#: lily.scm:477
#, scheme-format
msgid "cannot find: ~A"
msgstr "kan niet vinden: ~A"
-#: lily.scm:878
+#: lily.scm:903
msgid "Success: compilation successfully completed"
msgstr ""
-#: lily.scm:879
+#: lily.scm:904
msgid "Compilation completed with warnings or errors"
msgstr ""
-#: lily.scm:940
+#: lily.scm:965
#, scheme-format
msgid "job ~a terminated with signal: ~a"
-msgstr "taak ~a beëindigd met met signaal: ~a"
+msgstr "taak ~a is beëindigd met signaal: ~a"
-#: lily.scm:943
+#: lily.scm:968
#, scheme-format
msgid ""
"logfile ~a (exit ~a):\n"
"logfile ~a (exit ~a):\n"
"~a"
-#: lily.scm:965 lily.scm:1054
+#: lily.scm:990 lily.scm:1079
#, scheme-format
msgid "failed files: ~S"
msgstr "gefaalde bestanden: ~S"
# lisp-format
-#: lily.scm:1045
+#: lily.scm:1070
#, scheme-format
msgid "Redirecting output to ~a..."
msgstr "Omleiden van uitvoer naar ~a..."
-#: lily.scm:1064 ps-to-png.scm:66
+#: lily.scm:1089
#, scheme-format
msgid "Invoking `~a'...\n"
msgstr "Aanroepen van '~a'...\n"
-#: ly-syntax-constructors.scm:66
+#: ly-syntax-constructors.scm:27
#, scheme-format
msgid "~a function cannot return ~a"
msgstr ""
-#: ly-syntax-constructors.scm:75
+#: ly-syntax-constructors.scm:60
#, scheme-format
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
-msgstr "verkeert type voor argument ~a. Verwacht ~a, gevonden ~s"
-
-#: ly-syntax-constructors.scm:199
-#, scheme-format
-msgid "Invalid property operation ~a"
-msgstr "Ongeldige eigenschap operatie ~a"
+msgstr "Verkeerd type voor argument ~a. Verwacht ~a, gevonden ~s"
#: markup-macros.scm:331
#, scheme-format
msgid "Wrong number of arguments. Expect: ~A, found ~A: ~S"
-msgstr "verkeerd aantal argumenten. Verwacht: ~A, gevonden ~A: ~S"
+msgstr "Verkeerd aantal argumenten. Verwacht: ~A, gevonden ~A: ~S"
#: markup-macros.scm:337
#, scheme-format
msgid "negative replication count; ignoring"
msgstr ""
-#: music-functions.scm:272
-msgid "More alternatives than repeats. Junking excess alternatives"
-msgstr "Meer alternatieven dan herhalingen. Overtollige alternatieven worden weggegooid."
-
-#: music-functions.scm:303
-#, scheme-format
+#: music-functions.scm:319
+#, fuzzy, scheme-format
msgid "invalid tremolo repeat count: ~a"
-msgstr "ongeldig tremolo-herhalingsaantal: ~a"
+msgstr "Ongeldige eigenschap operatie ~a"
-#: music-functions.scm:459
+#: music-functions.scm:348
#, scheme-format
+msgid "unknown repeat type `~S': must be volta, unfold, percent, or tremolo"
+msgstr ""
+
+#: music-functions.scm:352
+msgid "More alternatives than repeats. Junking excess alternatives"
+msgstr "Meer alternatieven dan herhalingen. Verschroten van overtollige alternatieven"
+
+#: music-functions.scm:487
+#, fuzzy, scheme-format
msgid "bad grob property path ~a"
-msgstr "ongeldig grob-eigenschappad ~a"
+msgstr "Ongeldige eigenschap operatie ~a"
+
+#: music-functions.scm:511
+#, fuzzy, scheme-format
+msgid "bad context property ~a"
+msgstr "Ongeldige eigenschap operatie ~a"
+
+#: music-functions.scm:534
+#, fuzzy, scheme-format
+msgid "bad music property ~a"
+msgstr "Ongeldige eigenschap operatie ~a"
-#: music-functions.scm:753
+#: music-functions.scm:840
msgid "Bad chord repetition"
-msgstr "Ongeldige akkoordherhaling"
+msgstr ""
-#: music-functions.scm:788
+#: music-functions.scm:945
#, scheme-format
msgid "music expected: ~S"
msgstr "muziek verwacht: ~S"
-#: music-functions.scm:1144
+#: music-functions.scm:1295
#, scheme-format
msgid "cannot find quoted music: `~S'"
-msgstr "kan aangehaalde muziek niet vinden: '~S'"
+msgstr "kan aangehaalde muziek niet vinden: `~S'"
-#: music-functions.scm:1282
+#: music-functions.scm:1432
msgid "Add @var{octave-shift} to the octave of @var{pitch}."
msgstr ""
-# XXX trailing space
-#: music-functions.scm:1342
+# FIXME: trailing space?
+#: music-functions.scm:1495
#, scheme-format
msgid "Unknown octaveness type: ~S "
msgstr "onbekend octaafheidstype: ~S "
-# XXX stray apostrophe
-#: music-functions.scm:1343
+# FIXME: stray apostrophe
+#: music-functions.scm:1496
msgid "Defaulting to 'any-octave."
msgstr ""
-# XXX what does accidental mean?
-#: music-functions.scm:1688
+# FIXME: what does accidental mean?
+#: music-functions.scm:1888
#, fuzzy, scheme-format
msgid "unknown accidental style: ~S"
msgstr "onbekende toevallige stijl: ~S"
-#: output-ps.scm:278 output-svg.scm:539
+#: music-functions.scm:2098
+msgid "Missing duration"
+msgstr "Ontbrekende duur"
+
+#: music-functions.scm:2626
+#, scheme-format
+msgid "not a symbol list: ~a"
+msgstr "is geen symbolenlijst: ~a"
+
+#: music-functions.scm:2629
+#, fuzzy, scheme-format
+msgid "conflicting tag group ~a"
+msgstr "Tegenstrijdige nootgroeperingsgebeurtenissen"
+
+#: output-ps.scm:290 output-svg.scm:539
#, scheme-format
msgid "unknown line-cap-style: ~S"
msgstr "onbekende lijnkopstijl: ~S"
-#: output-ps.scm:283 output-svg.scm:545
+#: output-ps.scm:295 output-svg.scm:545
#, scheme-format
msgid "unknown line-join-style: ~S"
msgstr "onbekende lijnverbindingsstijl: ~S"
msgid "cannot decypher Pango description: ~a"
msgstr "kan Pango-font-omschrijving niet ontcijferen: ~a"
-# XXX capitalize Unicode
+# FIXME: capitalize Unicode
#: output-svg.scm:228
msgid "Glyph must have a unicode value"
msgstr "Glief moet een Unicode-waarde hebben"
msgid "cannot find SVG font ~S"
msgstr "kan SVG-font ~S niet vinden"
-#: paper.scm:120
+#: paper.scm:121
msgid "set-global-staff-size: not in toplevel scope"
msgstr "set-global-staff-size: niet op topniveau"
-#: paper.scm:320
+#: paper.scm:321
#, scheme-format
msgid "This is not a \\layout {} object, ~S"
msgstr "Dit is geen \\layout {} object, ~S"
-#: paper.scm:328
+#: paper.scm:329
#, scheme-format
msgid "Unknown paper size: ~a"
msgstr "Onbekende papiergrootte: ~a"
#. TODO: should raise (generic) exception with throw, and catch
#. that in parse-scm.cc
-#: paper.scm:347
+#: paper.scm:348
msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
msgstr "Moet #(set-paper-size .. ) gebruiken in \\paper { ... }"
-#: parser-clef.scm:164
+#: parser-clef.scm:154
#, scheme-format
msgid "unknown clef type `~a'"
msgstr "onbekend sleuteltype '~a'"
-#: parser-clef.scm:165
+#: parser-clef.scm:155
#, scheme-format
msgid "supported clefs: ~a"
msgstr "ondersteunde sleutels: ~a"
-#: parser-ly-from-scheme.scm:74
+#: parser-ly-from-scheme.scm:73
msgid "error in #{ ... #}"
msgstr "fout in #{ ... #}"
-#: part-combiner.scm:598
+#: part-combiner.scm:894
#, scheme-format
msgid "quoted music `~a' is empty"
-msgstr "aangehaalde muziek '~a' is leeg"
+msgstr ""
+
+# lisp-format
+#: ps-to-png.scm:72 ps-to-png.scm:75
+#, scheme-format
+msgid "Copying `~a' to `~a'..."
+msgstr "Kopiëren van '~a' naar '~a'..."
-#: ps-to-png.scm:70
+#: ps-to-png.scm:77 ps-to-png.scm:79
#, scheme-format
-msgid "~a exited with status: ~S"
-msgstr "~a sloot af met status ~S"
+msgid "Deleting `~a'..."
+msgstr "Verwijderen van '~a'..."
#: to-xml.scm:190
#, scheme-format
msgid "assertion failed: ~S"
msgstr "controletest is mislukt: ~S"
-#: translation-functions.scm:368
+#: translation-functions.scm:389
#, scheme-format
msgid "Negative fret for pitch ~a on string ~a"
-msgstr "Negatieve fret voor toonhoogte ~a op snaar ~a"
+msgstr ""
-#: translation-functions.scm:371
+#: translation-functions.scm:392
#, scheme-format
msgid "Missing fret for pitch ~a on string ~a"
-msgstr "Ontbrekende fret voor toonhoogte ~a op snaar ~a"
+msgstr ""
-#: translation-functions.scm:414
+#: translation-functions.scm:435
#, scheme-format
msgid "No open string for pitch ~a"
-msgstr "Geen vrije snaar voor toonhoogte ~a"
+msgstr ""
-#: translation-functions.scm:429 translation-functions.scm:441
+#: translation-functions.scm:450 translation-functions.scm:462
#, scheme-format
msgid "Requested string for pitch requires negative fret: string ~a pitch ~a"
-msgstr "Gevraagde snaar voor toonhoogte vereist negatieve fret: snaar ~a, toonhoogte ~a"
+msgstr ""
-#: translation-functions.scm:432
+#: translation-functions.scm:453
msgid "Ignoring string request and recalculating."
-msgstr "Snaarverzoek wordt genegeerd; er wordt herberekend."
+msgstr ""
-#: translation-functions.scm:444
+#: translation-functions.scm:465
msgid "Ignoring note in tablature."
msgstr ""
-#: translation-functions.scm:469
+#: translation-functions.scm:490
#, scheme-format
msgid "No string for pitch ~a (given frets ~a)"
-msgstr "Geen snaar voor toonhoogte ~a (gegeven de frets ~a)"
+msgstr ""
-#: translation-functions.scm:574
+#: translation-functions.scm:595
#, scheme-format
msgid ""
"No label for fret ~a (on string ~a);\n"
"only ~a fret labels provided"
msgstr ""
-"Geen label voor fret ~a (op snaar ~a);\n"
-"slechts ~a fret-labels gegeven"
+
+#~ msgid "cannot change, already in translator: %s"
+#~ msgstr "kan niet wisselen, al in vertaler: %s"
+
+#~ msgid "cannot find Voice `%s'"
+#~ msgstr "kan Voice niet vinden: `%s'"
+
+#, fuzzy
+#~ msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
+#~ msgstr "Liedtekst lettergreep heeft geen noot. Gebruik \\lyricsto of associatedVoice."
+
+#, fuzzy
+#~ msgid "Using naive multi measure rest spacing."
+#~ msgstr "enkelnootse ligatuur - overslaan"
+
+#~ msgid "(normalized pitch)"
+#~ msgstr "(genormaliseerde toonhoogte)"
+
+#~ msgid "Transposing %s by %s makes alteration larger than double"
+#~ msgstr "Transponeren van %s met %s maakt verandering groter dan dubbel"
+
+#~ msgid "ignoring too many clashing note columns"
+#~ msgstr "negeren van te veel botsende nootkolommen"
+
+#~ msgid "time signature symbol `%s' not found; reverting to numbered style"
+#~ msgstr "maatsoort-symbool '%s' niet gevonden; teruggevallen op numerieke stijl"
+
+#, fuzzy
+#~ msgid "Too much lookahead"
+#~ msgstr "Te veel vooruitkijk"
+
+#~ msgid "score expected"
+#~ msgstr "score verwacht"
+
+#~ msgid "unknown repeat type `~S'"
+#~ msgstr "onbekend herhaaltype `~S'"
+
+#, fuzzy
+#~ msgid "See define-music-types.scm for supported repeats"
+#~ msgstr "Zie music-types.scm voor ondersteunde herhalingen"
+
+#~ msgid "Invalid property operation ~a"
+#~ msgstr "Ongeldige eigenschap operatie ~a"
+
+#~ msgid "~a exited with status: ~S"
+#~ msgstr "~a sloot af met status: ~S"
#~ msgid "Report bugs via"
#~ msgstr ""
#~ msgid "Now processing `%s'"
#~ msgstr "Verwerken van `%s'"
-#~ msgid "FIXME: key change merge"
-#~ msgstr "MAAKME: toonsoort sleutel samenvoeging"
-
#~ msgid "kpathsea can not find TFM file: `%s'"
#~ msgstr "kpathsea kan TFM bestand niet vinden: `%s'"
str = re.sub (r"(\\applyOutput\s+)#'([a-zA-Z])", r"\1\2", str)
return str
+@rule ((2, 19, 28), r"c:5.x, c:5^x, c:sus -> c:3.5.x, c:3.5^x, c:5")
+def conv (str):
+ str = re.sub (r":5([.^][1-9])", r":3.5\1", str)
+ # row back for self-defeating forms
+ str = re.sub (r":3\.5((?:\.[0-9]+)*\^(?:[0-9]+\.)*)3\.", r":5\1", str)
+ str = re.sub (r":3\.5((?:\.[0-9]+)*\^?:[0-9]+(?:\.[0-9]+)*)\.3(?![.0-9])", r":5\1", str)
+ str = re.sub (r":3\.5((?:\.[0-9]+)*)\^3(?=\s|\})", r":5\1", str)
+ str = re.sub (r":sus(?=\s|\})", ":5", str)
+ str = re.sub (r":1\.5(?=\s|[.^}])", r":5", str)
+ return str
+
# Guidelines to write rules (please keep this at the end of this file)
#
# - keep at most one rule per version; if several conversions should be done,
(inversion #f)
(lead-mod #f)
(explicit-11 #f)
+ (explicit-2/4 #f)
+ (omit-3 #f)
(start-additions #t))
(define (interpret-inversion chord mods)
"Interpret additions. TODO: should restrict modifier use?"
(cond ((null? mods) chord)
((ly:pitch? (car mods))
- (if (= (pitch-step (car mods)) 11)
- (set! explicit-11 #t))
+ (case (pitch-step (car mods))
+ ((11) (set! explicit-11 #t))
+ ((2 4) (set! explicit-2/4 #t))
+ ((3) (set! omit-3 #f)))
(interpret-additions (cons (car mods) (remove-step (pitch-step (car mods)) chord))
(cdr mods)))
((procedure? (car mods))
(ly:pitch? (car flat-mods))
(not (eq? lead-mod sus-modifier)))
(begin
- (if (= (pitch-step (car flat-mods)) 11)
- (set! explicit-11 #t))
+ (cond ((= (pitch-step (car flat-mods)) 11)
+ (set! explicit-11 #t))
+ ((equal? (ly:make-pitch 0 4 0) (car flat-mods))
+ (set! omit-3 #t)))
(set! base-chord
(stack-thirds (car flat-mods) the-canonical-chord))
(set! flat-mods (cdr flat-mods))))
(if start-additions
(interpret-additions base-chord flat-mods)
(interpret-removals base-chord flat-mods)))
+ ;; if sus has been given neither 2 or 4, we add 4.
+ (if (and (eq? lead-mod sus-modifier)
+ (not explicit-2/4))
+ (set! complete-chord (cons (ly:make-pitch 0 4 0) complete-chord)))
(set! complete-chord (sort complete-chord ly:pitch<?))
;; If natural 11 + natural 3 is present, but not given explicitly,
;; we remove the 11.
(= 0 (ly:pitch-alteration (get-step 11 complete-chord)))
(= 0 (ly:pitch-alteration (get-step 3 complete-chord))))
(set! complete-chord (remove-step 11 complete-chord)))
+ ;; if omit-3 has been set (and not reset by an explicit 3
+ ;; somewhere), we remove the 3
+ (if omit-3
+ (set! complete-chord (remove-step 3 complete-chord)))
;; must do before processing inversion/bass, since they are
;; not relative to the root.
(set! complete-chord (map (lambda (x) (ly:pitch-transpose x root))
(stencil . ,ly:accidental-interface::print)
(horizontal-skylines . ,(ly:make-unpure-pure-container ly:accidental-interface::horizontal-skylines))
(vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil)
+ (X-offset . ,ly:grob::x-parent-positioning)
(Y-extent . ,accidental-interface::height)
(meta . ((class . Item)
(interfaces . (accidental-interface
(glyph-name-alist . ,standard-alteration-glyph-name-alist)
(parenthesized . #t)
(stencil . ,ly:accidental-interface::print)
+ (X-offset . ,ly:grob::x-parent-positioning)
(Y-extent . ,accidental-interface::height)
(meta . ((class . Item)
(interfaces . (accidental-interface
(padding . 0.5)
(side-axis . ,X)
(stencil . ,ly:accidental-interface::print)
- (X-offset . ,ly:side-position-interface::x-aligned-side)
+ (X-offset . ,ly:grob::x-parent-positioning)
(Y-extent . ,accidental-interface::height)
(meta . ((class . Item)
(interfaces . (accidental-interface
(flag-stencil (buildflags stencil (- log 3) stencil spacing)))
flag-stencil))
- (let* ((font (ly:paper-get-font layout (cons '((font-encoding . fetaMusic))
+ (let* ((font (ly:paper-get-font layout (cons '((font-encoding . fetaMusic)
+ (font-name . #f))
props)))
(size-factor (magstep font-size))
(blot (ly:output-def-lookup layout 'blot-diameter))
(let* ((font
(ly:paper-get-font layout
- (cons '((font-encoding . fetaMusic)) props)))
+ (cons '((font-encoding . fetaMusic)
+ (font-name . #f))
+ props)))
(rest-glyph-name
(let ((result
(get-glyph-name font
(new-line->lily-string))))
(define-display-method PropertyUnset (expr)
- (format #f "\\unset ~a~a~a"
+ (format #f "~a\\unset ~a~a~a"
+ (if (ly:music-property expr 'once #f) "\\once " "")
(if (eqv? (*current-context*) 'Bottom)
""
(format #f "~a . " (*current-context*)))
(define-display-method RevertProperty (expr)
(let* ((symbol (ly:music-property expr 'symbol))
(properties (ly:music-property expr 'grob-property-path
- (list (ly:music-property expr 'grob-property)))))
- (format #f "\\revert ~{~a~^.~}~a"
+ (list (ly:music-property expr
+ 'grob-property))))
+ (once (ly:music-property expr 'once #f)))
+ (format #f "~a\\revert ~{~a~^.~}~a"
+ (if once "\\once " "")
(if (eqv? (*current-context*) 'Bottom)
(cons symbol properties)
(cons* (*current-context*) symbol properties))
(add-pango-fonts n 'typewriter typewrite-str factor)
n))
-(define-public (make-century-schoolbook-tree factor)
+(define-public (make-default-fonts-tree factor)
(make-pango-font-tree
"LilyPond Serif"
"LilyPond Sans Serif"
arg offsets))
(else arg)))
-(define-public (offsetter property offsets)
- "Apply @var{offsets} to the default values of @var{property} of @var{grob}.
-Offsets are restricted to immutable properties and values of type @code{number},
-@code{number-pair}, or @code{number-pair-list}."
+(define-public (grob-transformer property func)
+ "Create an override value good for applying @var{func} to either
+pure or unpure values. @var{func} is called with the respective grob
+as first argument and the default value (after resolving all callbacks)
+as the second."
(define (worker self container-part grob . rest)
(let* ((immutable (ly:grob-basic-properties grob))
;; We need to search the basic-properties alist for our
(if (procedure? part)
(apply part grob rest)
part)))
- (else target)))
- (can-type-be-offset?
- (or (number? vals)
- (number-pair? vals)
- (number-pair-list? vals))))
+ (else target))))
+ (func grob vals)))
+ ;; return the container named `self'. The container self-reference
+ ;; seems like chasing its own tail but gets dissolved by
+ ;; define/lambda separating binding and referencing of "self".
+ (define self (ly:make-unpure-pure-container
+ (lambda (grob)
+ (worker self ly:unpure-pure-container-unpure-part grob))
+ (lambda (grob . rest)
+ (apply worker self ly:unpure-pure-container-pure-part
+ grob rest))))
+ self)
+(define-public (offsetter property offsets)
+ "Apply @var{offsets} to the default values of @var{property} of @var{grob}.
+Offsets are restricted to immutable properties and values of type @code{number},
+@code{number-pair}, or @code{number-pair-list}."
+ (define (offset-fun grob vals)
+ (let ((can-type-be-offset?
+ (or (number? vals)
+ (number-pair? vals)
+ (number-pair-list? vals))))
(if can-type-be-offset?
;; '(+inf.0 . -inf.0) would offset to itself. This will be
;; confusing to a user unaware of the default value of the
(begin
(ly:warning "the property '~a of ~a cannot be offset" property grob)
vals))))
- ;; return the container named `self'. The container self-reference
- ;; seems like chasing its own tail but gets dissolved by
- ;; define/lambda separating binding and referencing of "self".
- (define self (ly:make-unpure-pure-container
- (lambda (grob)
- (worker self ly:unpure-pure-container-unpure-part grob))
- (lambda (grob . rest)
- (apply worker self ly:unpure-pure-container-pure-part
- grob rest))))
- self)
+ (grob-transformer property offset-fun))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; \magnifyMusic and \magnifyStaff
(setm! 'text-font-size (* 11 factor))
(setm! 'output-scale ss)
- (setm! 'fonts (make-century-schoolbook-tree factor))
+ (setm! 'fonts (make-default-fonts-tree factor))
(setm! 'staff-height staff-height)
(setm! 'staff-space ss)
(display (span-state x) file)
(display "\n" file))
+;; Return the duration of the longest event in the Voice-state.
+(define-method (duration (vs <Voice-state>))
+ (define (duration-max event d1)
+ (let ((d2 (ly:event-property event 'duration #f)))
+ (if d2
+ (if (ly:duration<? d1 d2) d2 d1)
+ d1)))
+
+ (fold duration-max (ly:make-duration 0 0 0) (events vs)))
+
+;; Return the moment that the longest event in the Voice-state ends.
+(define-method (end-moment (vs <Voice-state>))
+ (ly:moment-add (moment vs) (ly:duration-length (duration vs))))
+
(define-method (note-events (vs <Voice-state>))
(define (f? x)
(ly:in-event-class? x 'note-event))
(if p (span-state p) '())))
(define (make-voice-states evl)
- (let ((vec (list->vector (map (lambda (v)
- (make <Voice-state>
- #:moment (caar v)
- #:tuning (cdar v)
- #:events (map car (cdr v))))
- evl))))
- (do ((i 0 (1+ i)))
- ((= i (vector-length vec)) vec)
- (slot-set! (vector-ref vec i) 'vector-index i)
- (slot-set! (vector-ref vec i) 'state-vector vec))))
+ (let* ((states (map (lambda (v)
+ (make <Voice-state>
+ #:moment (caar v)
+ #:tuning (cdar v)
+ #:events (map car (cdr v))))
+ (reverse evl))))
+
+ ;; add an entry with no events at the moment the last event ends
+ (if (pair? states)
+ (let ((last-real-event (car states)))
+ (set! states
+ (cons (make <Voice-state>
+ #:moment (end-moment last-real-event)
+ #:tuning (tuning last-real-event)
+ #:events '())
+ states))))
+
+ ;; TODO: Add an entry at +inf.0 and see if it allows us to remove
+ ;; the many instances of conditional code handling the case that
+ ;; there is no voice state at a given moment.
+
+ (let ((vec (list->vector (reverse! states))))
+ (do ((i 0 (1+ i)))
+ ((= i (vector-length vec)) vec)
+ (slot-set! (vector-ref vec i) 'vector-index i)
+ (slot-set! (vector-ref vec i) 'state-vector vec)))))
(define (make-split-state vs1 vs2)
"Merge lists VS1 and VS2, containing Voice-state objects into vector
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; metronome marks
-;; We give 'styled-metronome-markup' an optional argument, 'glyph-font', to
-;; prepare using other fonts than 'fetaMusic.
-;; Currently it ensures that the default-fonts are used by the
-;; markup-command 'note-by-number' in 'metronome-markup' (see below).
-(define*
- ((styled-metronome-markup #:optional (glyph-font 'default))
- event context)
+(define-public (format-metronome-markup event context)
(let ((hide-note (ly:context-property context 'tempoHideNote #f))
(text (ly:event-property event 'text))
(dur (ly:event-property event 'tempo-unit))
(count (ly:event-property event 'metronome-count)))
+ (metronome-markup text dur count hide-note)))
+(export format-metronome-markup)
- (metronome-markup glyph-font text dur count hide-note)))
-(export styled-metronome-markup)
-
-(define-public format-metronome-markup
- (styled-metronome-markup))
-
-(define (metronome-markup glyph-font text dur count hide-note)
+(define (metronome-markup text dur count hide-note)
(let* ((note-mark
(if (and (not hide-note) (ly:duration? dur))
(make-smaller-markup
- ;; We insert the (default)-font for flag-glyphs and
- ;; note-head-glyphs to prepare the possibility to use
- ;; other fonts and to make possible using
- ;; \override MetronomeMark #'font-name = #<font-name>
- ;; without affecting the note/flag-glyphs.
- (make-override-markup (cons 'font-name glyph-font)
- (make-note-by-number-markup
- (ly:duration-log dur)
- (ly:duration-dot-count dur)
- UP)))
- #f))
+ (make-note-by-number-markup
+ (ly:duration-log dur)
+ (ly:duration-dot-count dur)
+ UP))
+ #f))
(count-markup (cond ((number? count)
(if (> count 0)
(make-simple-markup