c4\cresc c c g, c'\p
@end lilypond
+@item
+LilyPond.app now supports MacOS X 10.7, thanks Christian Hitz!
@item
Glissandi can now span multiple lines.
immédiatement en téléchargement ou sous forme de partition imprimable.
@item
-@uref{http://http://www.shadylane.fr/, The Shady Lane Publishing},
+@uref{http://www.shadylane.fr/, The Shady Lane Publishing},
est un @qq{micro-éditeur de partitions musicales} qui a pour but de
promouvoir une nouvelle forme de pratique économique, plus proche des
musiciens et amoureux de la musique.
@itemize
+@item Bertrand Bordage:
+@email{bordage.bertrand@@gmail.com},
+Core developer, font designer
+
@item Trevor Daniels:
@email{t.daniels@@treda.co.uk},
Assistant documentation editor
@c use commas not colons
-Bertrand Bordage,
Karin Hoethker,
Jan Warchoł
@c use commas not colons
Colin Campbell,
+Christian Hitz,
Phil Holmes
@c no comma for last entry
When the file is processed, the title and composer are printed
above the music. More information on titling can be found in
-@ruser{Creating titles}.
+@ruser{Creating titles headers and footers}.
@node Absolute note names
@cindex Bézier curves, control points
@cindex control points, Bézier curves
-If the shape of the tie or slur which is calculated automatically is not
-optimum, the shape may be modified manually by explicitly specifying the
-control points required to define the curve needed.
-
-Ties, slurs and phrasing slurs are drawn as @q{third-order} Bézier
-curves which are are defined by four control points. The first and
-fourth control points are the start and end points of the curve
-respectively, and the two intermediate control points define the
-overall shape.
-
-Animations showing how the curve is drawn can be found on the web, but
-the following description may be helpful. The curve starts from the
-first control point moving towards the second. As the curve nears and
-passes through the second control point it begins to arc towards the
-third. The curve continues on towards the the third control point,
-again starting to arc as it nears and passes through the third so as to
-finish the curve smoothly at the fourth and final control point. The
-whole curve is contained in the quadrilateral defined by the four
-control points.
-
-Here is an example of a case where the tie is not optimum (and where the
-@code{\tieDown} command would not help).
+Ties, slurs and phrasing slurs are drawn as third-order Bézier
+curves. If the shape of the tie or slur which is calculated
+automatically is not optimum, the shape may be modified manually by
+explicitly specifying the four control points required to define
+a third-order Bézier curve.
+
+Third-order or cubic Bézier curves are defined by four control
+points. The first and fourth control points are precisely the
+starting and ending points of the curve. The intermediate two
+control points define the shape. Animations showing how the curve
+is drawn can be found on the web, but the following description
+may be helpful. The curve starts from the first control point
+heading directly towards the second, gradually bending over to
+head towards the third and continuing to bend over to head towards
+the fourth, arriving there travelling directly from the third
+control point. The curve is entirely contained in the
+quadrilateral defined by the four control points.
+
+Here is an example of a case where the tie is not optimum, and
+where @code{\tieDown} would not help.
@lilypond[verbatim,quote,relative=1]
<<
@node Creating titles headers and footers
-@subsection Creating titles, headers, and footers
+@subsection Creating titles headers and footers
@menu
* Title blocks explained::
@node Custom headers footers and titles
-@subsection Custom headers, footers, and titles
+@subsection Custom headers footers and titles
@c TODO: somewhere put a link to header spacing info
@c (you'll have to explain it more in NR 4).
@knownissues
Only the contents of the first @code{Voice} occurring in an
-@code{\addQuote} command will be considered for quotation, so the music
-expression must not contain @code{\new} and @code{\context Voice}
-statements which would switch to a different Voice. Quoting grace notes
+@code{\addQuote} command will be considered for quotation, so if the music
+expression contains @code{\new} or @code{\context Voice}
+statements, their contents will not be quoted. Quoting grace notes
is unsupported and may cause LilyPond to crash whereas quoting nested
triplets may result in poor notation.
\layout { ragged-right = ##t }
\relative c {
- \key d \minor
\clef bass
- << <cis a' cis>4 \\ { g'8. bes16} >>
+ \override Staff.NoteCollision #'prefer-dotted-right = ##t
+ s1*0^"prefer-dotted-right = #t"
+ << <b g' >4 \\ { c8. d16 } >>
+ << <b g' >4 \\ { d8. d16 } >>
+ << <b g' >4 \\ { f'8. d16 } >>
+ << <c a' >4 \\ { g'8. d16 } >>
+ \override Staff.NoteCollision #'prefer-dotted-right = ##f
+ s1*0^"prefer-dotted-right = #f"
+ << <b g' >4 \\ { c8. d16 } >>
+ << <b g' >4 \\ { d8. d16 } >>
+ << <b g' >4 \\ { f'8. d16 } >>
+ << <c a' >4 \\ { g'8. d16 } >>
}
source = "Edition Breitkopf 2563"
footer = "Mutopia-2002/05/21-25"
- tagline = \markup { \smaller
- \column {
- \fill-line { \footer "" }
- \fill-line { { "This music is part of the Mutopia project,"
- \typewriter { "http://mutopiaproject.org/" }
- } }
- \fill-line { #(ly:export (string-append "It has been typeset and placed in the public "
- "domain by " maintainer ".")) }
- \fill-line { #(ly:export (string-append "Unrestricted modification and redistribution"
- " is permitted and encouraged---copy this music"
- " and share it!")) }
- }
- }
+ tagline = \markup {
+ \smaller \column {
+ \fill-line { \footer "" }
+ \fill-line {
+ \line { "This music is part of the Mutopia project,"
+ \typewriter { "http://mutopiaproject.org/" }
+ }
+ }
+ \fill-line {
+ #(ly:export (string-append "It has been typeset and placed in the public "
+ "domain by " maintainer "."))
+ }
+ \fill-line {
+ \line {
+ "Unrestricted modification and redistribution"
+ "is permitted and encouraged - copy this music"
+ "and share it!"
+ }
+ }
+ }
+ }
texidoc="
This is the Mozart 3 for horn. It's from an Edition Breitkopf EB
\include "mozart-hrn3-rondo.ily"
\paper {
- obsolete-between-system-space = 20 \mm
- system-system-spacing #'basic-distance = #(/ obsolete-between-system-space staff-space)
- score-system-spacing #'basic-distance = #(/ obsolete-between-system-space staff-space)
+ system-system-spacing #'basic-distance = 10
+ score-system-spacing #'basic-distance = 20
}
-
\book {
- \score {
- { \transpose c' bes \allegro }
- \layout { }
- \header { piece = "Allegro" opus = "" }
+ \score {
+ { \transpose c' bes \allegro }
+ \layout { }
+ \header {
+ piece = "Allegro"
+ opus = ""
+ }
- \midi {
- \context {
- \Score
- tempoWholesPerMinute = #(ly:make-moment 90 4)
+ \midi {
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 90 4)
}
}
+ }
-
+ \score {
+ { \transpose c' bes \romanze }
+ \header {
+ piece = "Romanze"
+ opus = ""
}
- \score {
- { \transpose c' bes \romanze }
- \header { piece = "Romanze" opus = "" }
-
- \midi {
- \context {
- \Score
- tempoWholesPerMinute = #(ly:make-moment 70 4)
+ \midi {
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 70 4)
}
}
+ \layout { }
+ }
- \layout {}
+ \score
+ {
+ { \transpose c' bes \rondo }
+ \header {
+ piece = "Rondo"
+ opus = ""
}
- \score
- {
- { \transpose c' bes \rondo }
- \header { piece = "Rondo" opus = "" }
-
- \midi {
- \context {
- \Score
- tempoWholesPerMinute = #(ly:make-moment 100 4)
+ \midi {
+ \context {
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 100 4)
}
}
-
- \layout { }
- }
+ \layout { }
+ }
}
%% Local Variables:
-\version "2.11.61"
-\include "mozart-hrn3-defs.ily"
+\version "2.14.0"
+\include "mozart-hrn3-defs.ily"
-allegro =
-
- \relative c'
-{
- \time 4/4
- \key c \major
- \partial 4
- r4
- |
- R1*4
- c'2^"Tutti" g
- c, r
- R1*1
- r8 g' g g g g e c
- g'4 g, r2
- R1*18
- r2 r4^"Solo" g'4 |
- \mark "A"
- e'4. ( c8) f[ (d c b) ]
- b[( c)] g4 r8 g[ c e]
- g2. g16[( f e f)]
- dis4 ( e4) r8 c8[-. c-. c-.]
- c4.( d16[ e] f4 e)
- a,( d g, c)
- d-. d-. \grace {
- \override Stem #'stroke-style = #"grace"
- e16(
- \revert Stem #'stroke-style }
- d8.[) c16 d8. e16]
- c4 r r2
- R1*3
- c,2 ~ c8[ e g c]
- c[ b ] b4 r2
- c,8[ ( e) g c] e[( g) e c]
- c[( b)] b4 r2
- c4.( g8 e'4. c8)
- g'[( d) ] d4 r4 d
- d8[ ( c)] c4.( d16[ e] d8[ c)]
- c8[(\trill b)] b4 r2 |
- d2( ~ d8[ e16 d] c8[ b)] |
- b[( a)] a4 r8 a[ a a]
- a4( cis e g)
- \grace {
- \override Stem #'stroke-style = #"grace"
- \longgrace g16( \endlonggrace
- \revert Stem #'stroke-style }
+allegro = \relative c' {
+ \time 4/4
+ \key c \major
+ \partial 4
+ r4 \p
+ |
+ R1*4
+ c'2^"Tutti" g
+ c, r
+ R1*1
+ r8 g' g g g g e c
+ g'4 g, r2
+ R1*18
+ r2 r4^"Solo" g'4 |
+ \mark "A"
+ e'4. ( c8) f[ (d c b) ]
+ b[( c)] g4 r8 g[ c e]
+ g2. g16[( f e f)]
+ dis4 ( e4) r8 c8[-. c-. c-.]
+ c4.( d16[ e] f4 e)
+ a,( d g, c)
+ d-. d-. \acciaccatura e16
+ d8.[ c16 d8. e16]
+ c4 r r2
+ R1*3
+ c,2 ~ c8[ e g c]
+ c[ b ] b4 r2
+ c,8[ ( e) g c] e[( g) e c]
+ c[( b)] b4 r2
+ c4.( g8 e'4. c8)
+ g'[( d) ] d4 r4 d
+ d8[ ( c)] c4.( d16[ e] d8[ c)]
+ c8[(\trill b)] b4 r2 |
+ d2( ~ d8[ e16 d] c8[ b)] |
+ b[( a)] a4 r8 a[ a a]
+ a4( cis e g)
+ \appoggiatura g16
+ fis8[( e16 d)] d4-. r2 |
+ \mark "B"
+ R1*3
+ r2 r4 d8[(_\markup { \italic \bold "con espressione" } b) ]
+ a[( g) d'( b)] a[( g) e'( c) ]
+ b8[( a)] a4 r4 a8[ a]
+ a[( \< b c cis\!\> ] d4 c\!)
+ ais8[( b)] r8 b\cresc b[( c)] r c
+ cis[ ( d)] r4 r2
+ g,1\!\f ~ g2 ~ g8[ a16 b] c[( d) e c]
+ %% 64
+ f4-. d-. b-. g-.
+ R1
+ c,2\p e4 g c e\cresc g4. e8 |
+ d4.\!\f e16[ fis] g[ ( fis) e d] c[( b) a g]
+ \afterGrace a1(\trill { g16[ a] }
+ \mark "C"
+ g4) r r2
+ R1*15
+ \mark "D"
+ bes2\mf d4 f
+ g,2~ g8[ g' es c]|
+ bes4( a4.) c8[( d es)]
+ cis4( d) r8 bes[ (c d)]
+ es2 ( d4) r
+ es2 ( d4) r
+ c8[( g' es c)] bes4( c)
+ c4.( cis8 d4) r
+ R1*2
+ es1~es1|
+ e!
+ d
+ c
+ c,
+ e'
+ e,
+ c'2 b8[( a gis a)]
+ gis8[ e gis b ] e4 r |
+ r8 e,[ a c] dis4 r
+ r8 e,[ gis b ] e4 r
+ r8 e,[ a c] dis4 r
+ r8 e,[ g b] e4 r
+ r8 fis,[ b dis] fis4 r
+ r8 gis,[ b d] f4 r
+ r8 g,[ b d_\ritenuto ] f4 r
+ \mark "E"
+ R1*8
+ r2 r8 g,[ g g]
+ e'4.( c8) f[( d c b)]
+ b[( c)] g4 r8 g[ c e] |
+ g2. g16[( f e f)]
+ dis4( e) r8 c[-. c-. c-.]
+ c4.( d16[ e] f4 e)
+ a, ( d g, c)
+ d d
+ \acciaccatura e8
+ d8.[ c16 d8. e16]
+ c4 r r2
+ \mark "F"
+ R1*3
+ c,2~ c8[ e g c]
+ c8[( b)] b4 r2
+ c,8[ e g c ] e[ ( g) e c]
+ c[( b)] b4 r2
+ c2 (bes a) a8[(b c cis)]
+ d2( ~ d8[ e16 d] \appoggiatura d16
+ c8[ b16 c)]
+ \appoggiatura c16
+ b8[( a16 g)] g4 r2 |
+ R1*3
+ r2 r4 g'8[( e)]
+ \mark "G"
+ d[( c) g'( e)] d[( c) a'( f)]
+ e[( d)] d4 r d8[ d]
+ d4(~ d16[ e d e)] g8[( f) e d] |
+ c4 r r2
+ R1
+ c1 ~
+ c |
+ c8[-. c-.] r c-. cis[( d)] r d-.\cresc |
+ dis[( e)] r e-. e[( f)] r f-. |
+ g4-.\f e-. c-. bes-. |
+ g-.\ff e-. c-. r |
+ a'2 ~ a8[_""_\markup { \bold \italic "sempre " \dynamic "f" } b16 c] d[( e d e)]
- fis8[)( e16 d)] d4-. r2 |
- \mark "B"
- R1*3
- r2 r4 d8[(_\markup { \italic \bold "con espressione" } b) ]
- a[( g) d'( b)] a[( g) e'( c) ]
- b8[( a)] a4 r4 a8[ a]
- a[( \< b c cis\!\> ] d4 c\!)
- ais8[( b)] r8 b\cresc b[( c)] r c
- cis[ ( d)] r4 r2
- g,1\!\f ~ g2 ~ g8[ a16 b] c[( d) e c]
- %% 64
- f4-. d-. b-. g-.
- R1
+ f4. ( d8) f8[ ( d) f d]
+ c[ (e] g2) \appoggiatura f16
+ e8[( d16 c)]
+ \afterGrace d1_(\trill { c16[ d] }
+ c4) r r2
+ R1 |
+ \mark "H"
+ \times 2/3 { c8[ b a ] }
+ \times 2/3 { g[ a b] }
+ \times 2/3 { c[ d e] }
+ \times 2/3 { f[ e d] } |
+ \times 2/3 { c[ b a ] }
+ \times 2/3 { g[ a b] }
+ \times 2/3 { c[ d e] }
+ \times 2/3 { f[ e d] }|
+ c4 \times 2/3 { r8 g'[( e)]} c4
+ \times 2/3 { r8 e[ ( c)]} |
+ g4 \times 2/3 { r8 c8[( g)] }
+ \times 2/3 { e[ ( g) e-. ] }
+ \times 2/3 { c[ ( e) c-.] }|
+ g4 r8 g'\f a[ b c d]|
+ \afterGrace d1_(\trill { c16[ d] }
+ c4) r r2
+ R1*3
+ c4.^\fermata_"Cadenza ad lib." ( d8) d4.\trill^\fermata ( c16[ d)]
+ c4 r r2
+ R1*8
+ r4 c8.[^"tutti"\f c16] c4 c
+ c c,8.[ c16] c4 c|
+ c2 r2 \bar "|."
- c,2\p e4 g c e\cresc g4. e8 |
- d4.\!\f e16[ fis] g[ ( fis) e d] c[( b) a g]
-
- << a1(\trill
- { s2 \grace {
- \override Stem #'stroke-style = #"grace"
- g16[ a]
- \revert Stem #'stroke-style }
- } >>
- \mark "C"
- g4) r r2
- R1*15
- \mark "D"
- bes2\mf d4 f
- g,2~ g8[ g' es c]|
- bes4( a4.) c8[( d es)]
- cis4( d) r8 bes[ (c d)]
- es2 ( d4) r
- es2 ( d4) r
- c8[( g' es c)] bes4( c)
- c4.( cis8 d4) r
- R1*2
- es1~es1|
- e!
- d
- c
- c,
- e'
- e,
- c'2 b8[( a gis a)]
- gis8[ e gis b ] e4 r |
- r8 e,[ a c] dis4 r
- r8 e,[ gis b ] e4 r
- r8 e,[ a c] dis4 r
- r8 e,[ g b] e4 r
- r8 fis,[ b dis] fis4 r
- r8 gis,[ b d] f4 r
- r8 g,[ b d_\ritenuto ] f4 r
- \mark "E"
- R1*8
- r2 r8 g,[ g g]
- e'4.( c8) f[( d c b)]
- b[( c)] g4 r8 g[ c e] |
- g2. g16[( f e f)]
- dis4( e) r8 c[-. c-. c-.]
- c4.( d16[ e] f4 e)
- a, ( d g, c)
- d d
- \grace {
- \override Stem #'stroke-style = #"grace"
- e8(
- \revert Stem #'stroke-style }
-
- d8.[) c16 d8. e16]
- c4 r r2
- \mark "F"
- R1*3
- c,2~ c8[ e g c]
- c8[( b)] b4 r2
- c,8[ e g c ] e[ ( g) e c]
- c[( b)] b4 r2
- c2 (bes a) a8[(b c cis)]
- d2( ~ d8[ e16 d] \grace {
- \override Stem #'stroke-style = #"grace"
- \longgrace d16( \endlonggrace
- \revert Stem #'stroke-style }
-
-%% todo: should insert grace slur here.
- c8[ b16 c)]
- \grace {
- \override Stem #'stroke-style = #"grace"
- \longgrace c16 \endlonggrace
- \revert Stem #'stroke-style }
- b8[( a16 g)] g4 r2 |
- R1*3
- r2 r4 g'8[( e)]
- \mark "G"
- d[( c) g'( e)] d[( c) a'( f)]
- e[( d)] d4 r d8[ d]
- d4(~ d16[ e d e)] g8[( f) e d] |
- c4 r r2
- R1
- c1 ~
- c |
- c8[-. c-.] r c-. cis[( d)] r d-.\cresc |
- dis[( e)] r e-. e[( f)] r f-. |
- g4-.\!\f e-. c-. bes-. |
- g-.\ff e-. c-. r |
- a'2 ~ a8[_""_\markup { \bold \italic "sempre " \dynamic "f" } b16 c] d[( e d e)]
-
-
- f4. ( d8) f8[ ( d) f d]
- c[ (e] g2) \grace {
- \override Stem #'stroke-style = #"grace"
- \longgrace f16( \endlonggrace
- \revert Stem #'stroke-style }
- e8[)( d16 c)]
-
- << d1\trill _(
- { s2 \grace {
- \override Stem #'stroke-style = #"grace"
- c16[ d]
- \revert Stem #'stroke-style }
- } >>
-
- c4) r r2
- R1 |
- \mark "H"
- \times 2/3 { c8[ b a ] } \times 2/3 { g[ a b] }
- \times 2/3 { c[ d e] } \times 2/3 { f[ e d] } |
- \times 2/3 { c[ b a ] } \times 2/3 { g[ a b] }
- \times 2/3 { c[ d e] } \times 2/3 { f[ e d] }|
- c4 \times 2/3 { r8 g'[( e)]} c4 \times 2/3 { r8 e[ ( c)]} |
- g4 \times 2/3 { r8 c8[( g)] } \times 2/3 { e[ ( g) e-. ] } \times 2/3 { c[ ( e) c-.] }|
- g4 r8 g'\f a[ b c d]|
-
- << d1_(\trill
- { s2 \grace {
- \override Stem #'stroke-style = #"grace"
- c16[ d]
- \revert Stem #'stroke-style }
- } >>
- c4) r r2
- R1*3
-
- c4.^\fermata_"Cadenza ad lib." ( d8) d4.\trill^\fermata ( c16[ d)]
- c4 r r2
- R1*8
- r4 c8.[^"tutti"\f c16] c4 c
- c c,8.[ c16] c4 c|
- c2 r2 \bar "|."
-
}
endlonggrace = \revert Stem #'stroke-style
ritenuto = \markup { \italic "rit." }
-\version "2.11.61"
-
-\layout {
- \context {
- \Score
- skipBars = ##t
- midiInstrument = #"french horn"
- %% try to mimic Breitkopf
- \override RehearsalMark #'padding = #1
- \override MultiMeasureRest #'padding = #0.5
- restNumberThreshold = #1
-
- \override RehearsalMark #'font-series = #'bold
- \override RehearsalMark #'font-size = #4.5
+\version "2.14.0"
- \override Beam #'thickness = #0.6
- \override Beam #'space-function = #(lambda (beam mult) 0.8)
- }
- \context {
- \Staff
- \override VerticalAxisGroup #'minimum-Y-extent = #'(-2.5 . 3.5)
- }
+\layout {
+ \context {
+ \Score
+ skipBars = ##t
+ midiInstrument = #"french horn"
+ %% try to mimic Breitkopf
+ \override RehearsalMark #'padding = #1
+ restNumberThreshold = #1
+
+ \override RehearsalMark #'font-series = #'bold
+ \override RehearsalMark #'font-size = #4.5
+ }
}
\paper{
-
- % #(define fonts my-sheet)
-
- % stress page breaking on a6 paper:
- % line-width = 80 \mm
- % paper-width = 105 \mm
- % paper-height = 149 \mm
-
- indent = 10. \mm
- line-width = 189. \mm
- ragged-last-bottom = ##f
-
+ indent = 10\mm
+ line-width = 189\mm
+ ragged-last-bottom = ##f
}
-\version "2.11.61"
+\version "2.14.0"
\include "mozart-hrn3-defs.ily"
romanze = \relative c' {
- \key f \major
- \time 2/2
- \set Score.skipBars = ##t
+ \key f \major
+ \time 2/2
- c'4.( _\markup { \dynamic "p" \italic { "" con molto espressione } }
- f8) a,4 a
- bes8[( c d bes] g4) r8 g
- a r bes r c r d[( bes)]
- a2( g8[) a( bes b)]
- c4. ( f8) a,4 a |
- % 6
- bes8[ (c d bes)] g4 r8 c,
- c8[( e g bes)] a[( c f d)]
- c r e r f r r4
- \mark "A"
- R1*8
- g4.\mf f8 e[ d c bes]
- % 18
- bes[( a d c)] c4 r
- R1*2
- g'4. f8 e[ d c bes]
- bes[ (a d c)] c4 r
- R1
- % 25
- c16[ ( d c d)] e[ ( f e f)] g[( e) c-. c-.] f[( d) b-. b-.]
- c16[\p ( d c d)] e[ ( f e f)] g[( e) c-. c-.] f[( d) b-. b-.]
- c8[ \< c, c c] c[ c c c\!]
- \mark "B"
- c1\f
- R1*9
- f'4.(\p d8) b4 r8 g
- g'4.( e8) c4 r8 cis |
- % 39
- d4(~ d16[ e d e)] f8[ ( d) f( d)]
- c2( b4) r
- R1*4
- e4. ( g8) c,4 ( cis)
- d8[( e f d)] b4 r8 g
- c[ ( e) g g] g[( f e d)]
- c4(
- \grace {
- \override Stem #'stroke-style = #"grace"
- \longgrace e16 \endlonggrace
- \revert Stem #'stroke-style }
-
- d8.[ c16) \< ] c8[ c-.( c-. c)-.]\!
- \mark "C"
-
- %% this is a trick to get the sfp-s to align.
- \override Hairpin #'transparent = ##t
- des1\sfp \>
- g,1\sfp\! \>
- c\sfp \! \>
- c,\sfp\!
- \revert Hairpin #'transparent
- R1*3
- r8 c[\p c c] c2~
- c8[ c' c c] c2~
- c8[ \< e( g f] e[ d\!\> c bes]
- \mark "D"
- a4\!) r r2
- R1*3
- c4.\p ( f8) a,4 a |
- bes8[ (c d bes)] g4 r8 c,
- c8[( e g bes)] a[( c f d)]
- c r e r f4 r4
- R1*3
- r2 r4 r8 c,8
- c8[( e g bes)] a[( c f d)]
- c r e r f4 r4
- g,1
- c,2 c4. c8
- c8[( e g bes)] a[( c f d)]
- c r e r f4 r4 % -. ?
-
- R1
- c8-. r e-. r f4 r4
-
- % Finish with F if played separately
- c8-.( r c,-. r c4) r4|
- \bar "|."
+ c'4.( _\markup { \dynamic "p" \italic { "" con molto espressione } }
+ f8) a,4 a
+ bes8[( c d bes] g4) r8 g
+ a r bes r c r d[( bes)]
+ a2( g8[) a( bes b)]
+ c4. ( f8) a,4 a |
+ % 6
+ bes8[ (c d bes)] g4 r8 c,
+ c8[( e g bes)] a[( c f d)]
+ c r e r f r r4
+ \mark "A"
+ R1*8
+ g4.\mf f8 e[ d c bes]
+ % 18
+ bes[( a d c)] c4 r
+ R1*2
+ g'4. f8 e[ d c bes]
+ bes[ (a d c)] c4 r
+ R1
+ % 25
+ c16[ ( d c d)] e[ ( f e f)] g[( e) c-. c-.] f[( d) b-. b-.]
+ c16[\p ( d c d)] e[ ( f e f)] g[( e) c-. c-.] f[( d) b-. b-.]
+ c8[ \< c, c c] c[ c c c\!]
+ \mark "B"
+ c1\f
+ R1*9
+ f'4.(\p d8) b4 r8 g
+ g'4.( e8) c4 r8 cis |
+ % 39
+ d4(~ d16[ e d e)] f8[ ( d) f( d)]
+ c2( b4) r
+ R1*4
+ e4. ( g8) c,4 ( cis)
+ d8[( e f d)] b4 r8 g
+ c[ ( e) g g] g[( f e d)]
+ c4(
+ \grace e16
+ d8.[ c16) \< ] c8[ c-.( c-. c)-.]\!
+ \mark "C"
+ \override DynamicLineSpanner #'staff-padding = #2.5
+ des1\sfp
+ g,1\sfp
+ c\sfp
+ c,\sfp
+ \revert DynamicLineSpanner #'staff-padding
+ R1*3
+ r8 c[\p c c] c2~
+ c8[ c' c c] c2~
+ c8[ \< e( g f] e[ d\!\> c bes]
+ \mark "D"
+ a4\!) r r2
+ R1*3
+ c4.\p ( f8) a,4 a |
+ bes8[ (c d bes)] g4 r8 c,
+ c8[( e g bes)] a[( c f d)]
+ c r e r f4 r4
+ R1*3
+ r2 r4 r8 c,8
+ c8[( e g bes)] a[( c f d)]
+ c r e r f4 r4
+ g,1
+ c,2 c4. c8
+ c8[( e g bes)] a[( c f d)]
+ c r e r f4 r4
+ R1
+ c8-. r e-. r f4 r4
+ % Finish with F if played separately
+ c8-.( r c,-. r c4) r4|
+ \bar "|."
}
-\version "2.11.61"
+\version "2.14.0"
-% \include "mozart-hrn3-defs.ily"
+\include "mozart-hrn3-defs.ily"
-rondotheme = \relative c' {
- c'8[ c c] c[ c c]
- c4( cis8 d) r g,
- d'8[ d d] d[ d d]
- d4( dis8 e) r c |
- c[( d) e] f[ g a]
- g[ ( e) c] c4 d8
- e4( d8) e4( f8)
- e4.( d8) r r |
+rondotheme = \relative c' {
+ c'8[ c c] c[ c c]
+ c4( cis8 d) r g,
+ d'8[ d d] d[ d d]
+ d4( dis8 e) r c |
+ c[( d) e] f[ g a]
+ g[ ( e) c] c4 d8
+ e4( d8) e4( f8)
+ e4.( d8) r r |
}
-lipbreaker = \relative c'
-{
- r8 g'[-. g-.] c[( e) g,-.]
- c[( e) g,-.] c[( e) g,-.]
- c[ c, c] c[ c c]
- c[ c c] c[ c c]
+lipbreaker = \relative c' {
+ r8 g'[-. g-.] c[( e) g,-.]
+ c[( e) g,-.] c[( e) g,-.]
+ c[ c, c] c[ c c]
+ c[ c c] c[ c c]
}
-rightsixteenth = { \set stemLeftBeamCount = 1
- \set stemRightBeamCount = 2 }
-leftsixteenth = { \set stemLeftBeamCount = 2
- \set stemRightBeamCount = 1 }
-bothsixteenth = { \set stemLeftBeamCount = 2
- \set stemRightBeamCount = 2 }
+rondo = \relative c' {
+ \partial 8
+ \time 6/8
+ \key c \major
-rondo = \relative c'
-{
- \partial 8
- \time 6/8
- \key c \major
-
- g'8\p |
-
- \rondotheme
-
- R2.*13 |
- r8 r^\fermata d' d[ e f]
- g[ ( e) c-.] d[( e) d-.]
- c4 c8 d[ e f]
- g[( e) c-.] d[( e) d-.]
- c4 r8 r4 r8 |
- R2.*7
- \mark "A"
- c4.\p \grace {
- \override Stem #'stroke-style = #"grace"
- e16(
- \revert Stem #'stroke-style }
- d8[) c d]
- c4 r8 r4 r8
- e4. \grace {
- \override Stem #'stroke-style = #"grace"
- g16(
- \revert Stem #'stroke-style }
- f8[) e f]
- e4 r8 r4 r8
- g4. e4 c8
- g2.~
- g8[ a b] c[ d e ]
- e4.( d8) r r
- R2.*4
- e2.~ |
- e8[ d c] c[ b a]
- d2.~
- d8[ c b] b[ a g]
- g'4( e8) b4( cis8)
- \mark "B"
- d4 r8 r4 r8
- R2.*3 |
- r8 d[-. d-.] d[( g) d-.]
- d[( g) d-.] d[ d d]
- d[( g)] r r4 r8
- R2.*1
- \lipbreaker
- c,,4 r8 c'[ d e]
- d4( g8) c,[ d e]
- d4 r8 r4 r8
- R2. |
- r4 r8 c[-. d-. e-.]
- d4( g8) c,[ d e]
- d[( g) fis] e[ d c]
- b[ ( e) d] c[ b a]
- \mark "C"
- g4 r8 r4 r8
- R2. |
- %
- r8 g[\f g] g[( b) b-.]
- b[( d) d-.] d[( g) g-.]
- g2.~
- g8[ \> a g] f[ e d]
- << \rondotheme
- { s8\!\p } >>
-
- R2.*12
- r4 r8 r4 c8
- \mark "D"
- c4 f8 c4 a8
- a4.~a4 a8
- bes4 c8 d4 bes8
- g4. ~ g8 r r
- R2.*3
- r4 r8 r4 c8
- a4. c
- f ~ f8.[ \rightsixteenth e16( \bothsixteenth d c)]
- bes4 g8 e4 g8
- c,4. ~ c8 r r
- R2.*3|
- r4 r8 r4 c'8
- b4( c8) b4( c8)
- bes4. ~ bes4 g8
- a4 ( c8) f4 ( b,8)
- d4. ( c8) r r
- R2.*3|
- r4 r8 r4 c8
- b4( c8) b4( c8)
- bes4. ~ bes4 g8
- a4 c8 f[ ( d) b!]
- d4. ( c8) r r
- \mark "E"
- R2.*9 |
- \lipbreaker
- c,8[ c' c] c4.~
- c8[ c d] e[ e fis]
- g4 r8 r4 r8
- R2.
- r8 g,[ g] g[ g g] |
- es'4. ~ es8[ d c]
- b4 r8 r4 r8
- R2. |
- r8 g[ g] g[ g g]
- es'4. ~ es8[ d c]
- b4.\cresc c4. d4. e4.
- \mark "F"
-
- f2.\!\f ~ |
- f4 r8 r4 r8
- r8 g,[\> g] g[ g g]
-
- % Edition breitkopf says a-flat (silly!)
- fis[ g gis]
- a[ bes b]\!
+ g'8\p |
- %% EB does the slur in the Rondo differently from the 1st adn 2nd time.
- %% why. Should check with MS.
- << \rondotheme
- { s8\p } >>
- R2.*7
- \mark "G"
- R2.*4
- c,4.\mf c4 c8
- c4. e4 c8
- g'4. g4 g8
- g4. g,4 g8
- c4 r8 r4 r8
- r4 r8 r4 g'8
- c[ ( e) g,-.] c[ ( e) g,-.]
- c[ ( e) g,-.] c[ ( e) g,-.]
- \mark "H"
- g'2.\cresc bes,2.
- a4. b16[ c d e f g]
- a4. f4 d8
- c8[\!\f g' e] c[ g e]
- c[ e' c] g[ e c]
- g4 r8 g''8[ e c]
+ \rondotheme
-
- << d2._(\trill
- { s2 \grace {
- \override Stem #'stroke-style = #"grace"
- c16[ d]
- \revert Stem #'stroke-style }
- } >>
-
-
- c4) r8 r4 r8
- R2.*5
- r8 r8^\fermata d8\p d[ e f]
- g[ ( e) c] d[( e) d]
- c[\cresc c c] d[ e f]
- g[( e) c] d[( e) d]
- c4\!\f r8 r4 r8
- R2.*5
- c8[\f c, c] c[ c c]
- c4 r8 c4 r8
+ R2.*13 |
+ r8 r^\fermata d' d[ e f]
+ g[ ( e) c-.] d[( e) d-.]
+ c4 c8 d[ e f]
+ g[( e) c-.] d[( e) d-.]
+ c4 r8 r4 r8 |
+ R2.*7
+ \mark "A"
+ c4.\p \acciaccatura e16
+ d8[ c d]
+ c4 r8 r4 r8
+ e4. \acciaccatura g16
+ f8[ e f]
+ e4 r8 r4 r8
+ g4. e4 c8
+ g2.~
+ g8[ a b] c[ d e ]
+ e4.( d8) r r
+ R2.*4
+ e2.~ |
+ e8[ d c] c[ b a]
+ d2.~
+ d8[ c b] b[ a g]
+ g'4( e8) b4( cis8)
+ \mark "B"
+ d4 r8 r4 r8
+ R2.*3 |
+ r8 d[-. d-.] d[( g) d-.]
+ d[( g) d-.] d[ d d]
+ d[( g)] r r4 r8
+ R2.*1
+ \lipbreaker
+ c,,4 r8 c'[ d e]
+ d4( g8) c,[ d e]
+ d4 r8 r4 r8
+ R2. |
+ r4 r8 c[-. d-. e-.]
+ d4( g8) c,[ d e]
+ d[( g) fis] e[ d c]
+ b[ ( e) d] c[ b a]
+ \mark "C"
+ g4 r8 r4 r8
+ R2. |
+ r8 g[\f g] g[( b) b-.]
+ b[( d) d-.] d[( g) g-.]
+ g2.~
+ g8[ \> a g] f[ e d]
- % This is technically incorrect, since we started with an 8th
- % note pickup, but both eulenburg and EB do this as well.
- c4 r8 r4 r8 \bar "|."
+ <<
+ \rondotheme
+ { s8\p }
+ >>
+
+ R2.*12
+ r4 r8 r4 c8
+ \mark "D"
+ c4 f8 c4 a8
+ a4.~a4 a8
+ bes4 c8 d4 bes8
+ g4. ~ g8 r r
+ R2.*3
+ r4 r8 r4 c8
+ a4. c
+ f ~ f8.[ e16( d c)]
+ bes4 g8 e4 g8
+ c,4. ~ c8 r r
+ R2.*3|
+ r4 r8 r4 c'8
+ b4( c8) b4( c8)
+ bes4. ~ bes4 g8
+ a4 ( c8) f4 ( b,8)
+ d4. ( c8) r r
+ R2.*3|
+ r4 r8 r4 c8
+ b4( c8) b4( c8)
+ bes4. ~ bes4 g8
+ a4 c8 f[ ( d) b!]
+ d4. ( c8) r r
+ \mark "E"
+ R2.*9 |
+ \lipbreaker
+ c,8[ c' c] c4.~
+ c8[ c d] e[ e fis]
+ g4 r8 r4 r8
+ R2.
+ r8 g,[ g] g[ g g] |
+ es'4. ~ es8[ d c]
+ b4 r8 r4 r8
+ R2. |
+ r8 g[ g] g[ g g]
+ es'4. ~ es8[ d c]
+ b4.\cresc c4. d4. e4.
+ \mark "F"
+ f2.\f ~ |
+ f4 r8 r4 r8
+ r8 g,[\> g] g[ g g]
+
+ % Edition breitkopf says a-flat (silly!)
+ fis[ g gis]
+ a[ bes b]\!
+
+ %% EB does the slur in the Rondo differently from the 1st adn 2nd time.
+ %% why. Should check with MS.
+ <<
+ \rondotheme
+ { s8\p }
+ >>
+
+ R2.*7
+ \mark "G"
+ R2.*4
+ c,4.\mf c4 c8
+ c4. e4 c8
+ g'4. g4 g8
+ g4. g,4 g8
+ c4 r8 r4 r8
+ r4 r8 r4 g'8
+ c[ ( e) g,-.] c[ ( e) g,-.]
+ c[ ( e) g,-.] c[ ( e) g,-.]
+ \mark "H"
+ g'2.\cresc bes,2.
+ a4. b16[ c d e f g]
+ a4. f4 d8
+ c8[\f g' e] c[ g e]
+ c[ e' c] g[ e c]
+ g4 r8 g''8[ e c]
+ \afterGrace d2._(\trill { c16[ d] }
+ c4) r8 r4 r8
+ R2.*5
+ r8 r8^\fermata d8\p d[ e f]
+ g[ ( e) c] d[( e) d]
+ c[\cresc c c] d[ e f]
+ g[( e) c] d[( e) d]
+ c4\f r8 r4 r8
+ R2.*5
+ c8[\f c, c] c[ c c]
+ c4 r8 c4 r8
+
+ % This is technically incorrect, since we started with an 8th
+ % note pickup, but both eulenburg and EB do this as well.
+ c4 r8 r4 r8 \bar "|."
}
--- /dev/null
+\version "2.15.9"
+
+\header {
+ texidoc = "Multi measure rest staff position can be overridden
+to 0.
+"
+}
+
+\relative c' {
+ \override MultiMeasureRest #'staff-position = #0
+ R1
+}
texidoc = "Multi-measure rests standard values can be tweaked."
}
-\version "2.15.2"
+\version "2.15.6"
+
+\markup "Use non-standard multi-measure rests:"
\new Staff {
- \override MultiMeasureRest #'usable-duration-logs = #'(2 1)
- \time 1/4 R4-"Use non-standard multi-measure rests."
+ \override MultiMeasureRest #'usable-duration-logs = #(iota 2 1)
+ \time 1/4 R4
\time 2/4 R2
}
+\markup "Round up to the longer rest:"
+\new Staff {
+ \override MultiMeasureRest #'round-up-to-longer-rest = ##t
+ \time 3/2 R1.
+ \time 7/2 R\breve..
+}
+\markup "Round up to the longer rest only in specified time signatures:"
\new Staff {
- \override MultiMeasureRest #'round-to-longer-rest = ##t
- \time 3/2 R1.-"Round to the longer rest." \time 7/2 R\breve..
+ \override MultiMeasureRest #'round-up-exceptions = #'((3 . 2))
+ \time 3/2 R1.
+ \time 7/2 R\breve..
+ \time 3/2 R1.
}
--- /dev/null
+\version "2.15.9"
+
+\header {
+ texidoc = "@code{\\quoteDuring} and @code{\\cueDuring} shall properly quote
+voices that create a sub-voice. The sub-voice will not be quoted, though.
+Exceptions are sections of parallel music @code{<< @{...@} \\ @{...@} >>},
+which will be quoted.
+"
+}
+
+% Simple case, normal sub-voice
+quoteMe = \relative c' {
+ c4 c
+ \new Voice {
+ c4 c
+ }
+}
+\addQuote "quoteMe" \quoteMe
+% Also works if wrapped with \new Voice
+\addQuote "quoteMeA" \new Voice \quoteMe
+
+% Also works with voice directly inside relative
+quoteMeI = \relative c' \new Voice {
+ c4 c4
+}
+\addQuote "quoteMeI" \quoteMeI
+
+% Quoting music with some parallel sections (identical rhythm)
+quoteMeII = \relative c' {
+ c4 c
+ << { d4 e4 } \\ { c4 b4 } >>
+ c4
+}
+\addQuote "quoteMeII" \quoteMeII
+
+% Quoting music with some parallel sections (different rhythm)
+quoteMeIII = \relative c' {
+ c4 c
+ << { d4 e4 } \\ { c4. b8 } >>
+ c4
+}
+\addQuote "quoteMeIII" \quoteMeIII
+
+
+
+
+<<
+ \new Staff \relative c'' {
+ c4 \cueDuring #"quoteMe" #DOWN { r4 }
+ c4 \cueDuring #"quoteMe" #DOWN { r4 } % <- no cue note due to sub-voice
+ }
+ \new Staff \relative c'' {
+ c4 \cueDuring #"quoteMeA" #DOWN { r4 }
+ c4 \cueDuring #"quoteMeA" #DOWN { r4 } % <- no cue note due to sub-voice
+ }
+ \new Staff \relative c'' {
+ c4 \cueDuring #"quoteMeI" #DOWN { r4 }
+ c4
+ }
+ \new Staff \relative c'' {
+ c4 \cueDuring #"quoteMeII" #DOWN { r4 }
+ c4 \cueDuring #"quoteMeII" #DOWN { r4 } % <- quoted parallel notes
+ }
+ \new Staff \relative c'' {
+ c4 \cueDuring #"quoteMeIII" #DOWN { r4 }
+ c4 \cueDuring #"quoteMeIII" #DOWN { r4 } % <- quoted parallel notes
+ }
+>>
--- /dev/null
+\version "2.15.9"
+
+\header {
+ texidoc = "Slur shaping is not adapted to accommodate objects
+towards the edges of slur. Said objects are thus ignored,
+which should make the slur in this regtest flat. Objects towards
+the edges are not, however, ignored in the slur scoring.
+"
+}
+
+\relative c {
+ \clef bass
+ c8( d' a d c, d' a d)
+ c,8( des' as des c, des' as des) |
+}
--- /dev/null
+\header {
+ texidoc = "Staves stay alive long enough to complete an automatic beam."
+}
+
+\version "2.15.9"
+
+<<
+ {
+ g'2 g'8 g'
+ \change Staff = "down"
+ b' b'
+ }
+ \context Staff = "down" s1
+>>
#include "beaming-pattern.hh"
#include "beam.hh"
#include "context.hh"
+#include "context-handle.hh"
#include "duration.hh"
#include "engraver.hh"
#include "item.hh"
Moment extend_mom_;
Moment beam_start_moment_;
Moment beam_start_location_;
- Context *beam_start_context_;
+ /*
+ Handle on the starting staff keeps it alive until beam is comlete
+ */
+ Context_handle beam_start_context_;
// We act as if beam were created, and start a grouping anyway.
Beaming_pattern *grouping_;
Beam::add_stem (beam, (*stems_)[i]);
Grob_info i = make_grob_info (beam, (*stems_)[0]->self_scm ());
- i.rerouting_daddy_context_ = beam_start_context_;
+ i.rerouting_daddy_context_ = beam_start_context_.get_context ();
announce_grob (i);
return beam;
beaming_options_.from_context (context ());
beam_settings_ = updated_grob_properties (context (), ly_symbol2scm ("Beam"));
- beam_start_context_ = context ()->get_parent_context ();
+ beam_start_context_.set_context (context ()->get_parent_context ());
beam_start_moment_ = now_mom ();
beam_start_location_
= robust_scm2moment (get_property ("measurePosition"), Moment (0));
if (finished_beam_)
{
Grob_info i = make_grob_info (finished_beam_, SCM_EOL);
- i.rerouting_daddy_context_ = beam_start_context_;
+ i.rerouting_daddy_context_ = beam_start_context_.get_context ();
announce_end_grob (i);
finished_grouping_ = grouping_;
beam_settings_ = SCM_EOL;
}
+ beam_start_context_.set_context (NULL);
shortest_mom_ = Moment (Rational (1, 4));
}
Context_handle::up (Context *t)
{
outlet_ = t;
- t->iterator_count_++;
+ t->client_count_++;
}
void
Context_handle::down ()
{
- outlet_->iterator_count_--;
+ outlet_->client_count_--;
outlet_ = 0;
}
}
Context *
-Context_handle::get_outlet () const
+Context_handle::get_context () const
{
return outlet_;
int
Context_handle::get_count () const
{
- return outlet_->iterator_count_;
+ return outlet_->client_count_;
}
bool
Context::is_removable () const
{
- return context_list_ == SCM_EOL && ! iterator_count_
+ return context_list_ == SCM_EOL && ! client_count_
&& !dynamic_cast<Global_context const *> (daddy_context_);
}
{
daddy_context_ = 0;
aliases_ = SCM_EOL;
- iterator_count_ = 0;
+ client_count_ = 0;
implementation_ = 0;
properties_scm_ = SCM_EOL;
accepts_list_ = SCM_EOL;
void set_context (Context *);
void operator = (Context_handle const &);
Context_handle (Context_handle const &);
- Context *get_outlet () const;
+ Context *get_context () const;
int get_count () const;
private:
private:
friend class Context_handle;
- int iterator_count_;
+ /* how many Context_handles point to this Context */
+ int client_count_;
/* Used internally by create_context */
Stream_event *infant_event_;
Real extra_encompass_free_distance_;
Real absolute_closeness_measure_;
Real edge_slope_exponent_;
+ Real close_to_edge_length_;
Real head_slur_distance_max_ratio_;
Real head_slur_distance_factor_;
#include "multi-measure-rest.hh"
#include "font-interface.hh"
+#include "international.hh"
#include "lookup.hh"
#include "misc.hh"
#include "moment.hh"
Stencil mol;
mol.add_stencil (symbol_stencil (me, space));
- int measures = 0;
+ int measure_count = 0;
SCM m (me->get_property ("measure-count"));
if (scm_is_number (m))
- measures = scm_to_int (m);
+ measure_count = scm_to_int (m);
mol.translate_axis (x_off, X_AXIS);
return mol.smobbed_copy ();
}
int
-measure_duration_log (Grob *me)
+calc_closest_duration_log (Grob *me, double duration, bool force_round_up)
{
- SCM sml = dynamic_cast<Spanner *> (me)->get_bound (LEFT)
- ->get_property ("measure-length");
- bool round = to_boolean (me->get_property ("round-to-longer-rest"));
- Rational ml = (unsmob_moment (sml)) ? unsmob_moment (sml)->main_part_ : Rational (1);
+ bool round_up = force_round_up
+ || to_boolean (me->get_property ("round-up-to-longer-rest"));
+ int closest_usable_duration_log;
- double duration_log = -log_2 (ml.Rational::to_double ());
- int measure_duration_log = int (ceil (duration_log));
- if (round && duration_log - measure_duration_log < 0)
- measure_duration_log--;
+ // Out of range initial values.
+ if (round_up)
+ closest_usable_duration_log = -15; // high value
+ else
+ closest_usable_duration_log = 15; // low value
+ int minimum_usable_duration_log = -15;
+ int maximum_usable_duration_log = 15;
SCM duration_logs_list = me->get_property ("usable-duration-logs");
- int closest_list_elt = -15; // -15 is out of range.
-
- for (int i = 0; i < scm_to_int (scm_length (duration_logs_list)); i++)
+ if (to_boolean (scm_null_p (duration_logs_list))
+ || !to_boolean (scm_list_p (duration_logs_list)))
{
- int list_elt = scm_to_int (scm_list_ref (duration_logs_list, scm_from_int (i)));
- int shortest_distance = abs (measure_duration_log - closest_list_elt);
- int distance = abs (measure_duration_log - list_elt);
- if (distance < shortest_distance)
- closest_list_elt = list_elt;
+ warning (_ ("usable-duration-logs must be a non-empty list. Falling back to whole rests."));
+ closest_usable_duration_log = 0;
}
+ else
+ {
+ for (SCM s = duration_logs_list; scm_is_pair (s); s = scm_cdr (s))
+ {
+ int dur_log = scm_to_int (scm_car (s));
+ if (dur_log > minimum_usable_duration_log)
+ minimum_usable_duration_log = dur_log;
+ if (dur_log < maximum_usable_duration_log)
+ maximum_usable_duration_log = dur_log;
+ double dur = pow (2.0, -dur_log);
+ if (round_up)
+ {
+ if (duration <= dur && dur_log > closest_usable_duration_log)
+ closest_usable_duration_log = dur_log;
+ }
+ else
+ {
+ if (duration >= dur && dur_log < closest_usable_duration_log)
+ closest_usable_duration_log = dur_log;
+ }
+ }
+ }
+
+ if (closest_usable_duration_log == 15)
+ closest_usable_duration_log = minimum_usable_duration_log;
+ if (closest_usable_duration_log == -15)
+ closest_usable_duration_log = maximum_usable_duration_log;
- return closest_list_elt;
+ return closest_usable_duration_log;
+}
+
+int
+calc_measure_duration_log (Grob *me)
+{
+ SCM sml = dynamic_cast<Spanner *> (me)->get_bound (LEFT)
+ ->get_property ("measure-length");
+ Rational ml = (unsmob_moment (sml)) ? unsmob_moment (sml)->main_part_
+ : Rational (1);
+ double measure_duration = ml.Rational::to_double ();
+ bool force_round_up = to_boolean (
+ scm_list_p (
+ scm_member (
+ scm_cons (scm_from_int64 (ml.numerator ()),
+ scm_from_int64 (ml.denominator ())),
+ me->get_property ("round-up-exceptions"))));
+ return calc_closest_duration_log (me, measure_duration, force_round_up);
}
Stencil
Multi_measure_rest::symbol_stencil (Grob *me, Real space)
{
- int measures = 0;
+ int measure_count = 0;
SCM m (me->get_property ("measure-count"));
if (scm_is_number (m))
- measures = scm_to_int (m);
- if (measures <= 0)
+ measure_count = scm_to_int (m);
+ if (measure_count <= 0)
return Stencil ();
SCM limit = me->get_property ("expand-limit");
- if (measures > scm_to_int (limit))
+ if (measure_count > scm_to_int (limit))
{
Real padding = 0.15;
Stencil s = big_rest (me, (1.0 - 2 * padding) * space);
Real staff_space = Staff_symbol_referencer::staff_space (me);
Font_metric *musfont = Font_interface::get_default_font (me);
- int mdl = measure_duration_log (me);
+ int mdl = calc_measure_duration_log (me);
- if (measures == 1)
+ if (measure_count == 1)
{
Stencil s = musfont->find_by_name (Rest::glyph_name (me, mdl, "", true));
- if (mdl == 0 && Staff_symbol_referencer::get_position (me) == 0.0)
+ if (mdl == 0 && me->get_property ("staff-position") == SCM_EOL)
s.translate_axis (staff_space, Y_AXIS);
s.translate_axis ((space - s.extent (X_AXIS).length ()) / 2, X_AXIS);
return s;
}
else
- return church_rest (me, musfont, measures, space);
+ return church_rest (me, musfont, measure_count, space);
}
/*
Kirchenpause (?)
*/
Stencil
-Multi_measure_rest::church_rest (Grob *me, Font_metric *musfont, int measures,
+Multi_measure_rest::church_rest (Grob *me, Font_metric *musfont, int measure_count,
Real space)
{
SCM mols = SCM_EOL;
-
- int l = measures;
- int count = 0;
+ int symbol_count = 0;
Real symbols_width = 0.0;
- SCM duration_logs_list = me->get_property ("usable-duration-logs");
- int longest_church_rest = 10; // 10 is out of range.
- for (int i = 0; i < scm_to_int (scm_length (duration_logs_list)); i++)
- {
- longest_church_rest = min (longest_church_rest,
- scm_to_int (scm_list_ref (duration_logs_list,
- scm_from_int (i))));
- }
+ double total_duration = measure_count * pow (2.0, -calc_measure_duration_log (me));
- while (l)
+ while (total_duration > 0)
{
- int k;
- int i = longest_church_rest - 1;
- int length;
- int mdl = measure_duration_log (me);
-
- do
- {
- i++;
- length = int (pow (2.0, -i));
- }
- while (i <= 0
- && !(l >= length && mdl >= longest_church_rest - i));
+ int dl = calc_closest_duration_log (me, total_duration, false);
+ double duration = pow (2.0, -dl);
- l -= length;
- k = mdl + i;
+ total_duration -= duration;
- Stencil r (musfont->find_by_name ("rests." + to_string (k)));
- if (k == 0)
+ Stencil r = musfont->find_by_name (Rest::glyph_name (me, dl, "", true));
+ if (dl == 0)
{
Real staff_space = Staff_symbol_referencer::staff_space (me);
r.translate_axis (staff_space, Y_AXIS);
}
symbols_width += r.extent (X_AXIS).length ();
mols = scm_cons (r.smobbed_copy (), mols);
- count++;
+ symbol_count++;
}
/* Make outer padding this much bigger. */
Real outer_padding_factor = 1.5;
Real inner_padding = (space - symbols_width)
- / (2 * outer_padding_factor + (count - 1));
+ / (2 * outer_padding_factor + (symbol_count - 1));
if (inner_padding < 0)
inner_padding = 1.0;
"hair-thickness "
"measure-count "
"minimum-length "
- "round-to-longer-rest "
+ "round-up-exceptions "
+ "round-up-to-longer-rest "
"spacing-pair "
"thick-thickness "
"usable-duration-logs "
Context *
Music_iterator::get_outlet () const
{
- return handle_.get_outlet ();
+ return handle_.get_context ();
}
void
merge_possible = false;
/*
- this case (distant half collide),
-
- |
- x |
- | x
- |
-
- the noteheads may be closer than this case (close half collide)
-
- |
- |
- x
- x
- |
- |
-
- */
+ * this case (distant half collide),
+ *
+ * |
+ * x |
+ * | x
+ * |
+ *
+ * the noteheads may be closer than this case (close half collide)
+ *
+ * |
+ * |
+ * x
+ * x
+ * |
+ * |
+ *
+ */
/* TODO: filter out the 'o's in this configuration, since they're no
- part in the collision.
-
- |
- x|o
- x|o
- x
-
- */
+ * part in the collision.
+ *
+ * |
+ * x|o
+ * x|o
+ * x
+ *
+ */
bool close_half_collide = false;
bool distant_half_collide = false;
full_collide = full_collide || (close_half_collide
&& distant_half_collide);
- Real shift_amount = 1;
-
- bool touch = (ups[0] >= dps.back ());
- /* As a special case, if the topmost part of the downstem chord is a second,
- the top note of which is the same pitch as the lowest upstem note, they
- shouldn't count as touching.
+ /* If the only collision is in the extreme noteheads,
+ then their stems can line up and the chords just 'touch'.
+ A half collision with the next note along the chord prevents touching.
*/
- if (dps.back () == ups[0] && dps.size () > 1 && dps[dps.size () - 2] == ups[0] - 1)
- touch = false;
-
- if (touch)
- shift_amount *= -1;
-
- /* For full collisions, the right hand head may obscure dots, so
- make sure the dotted heads go to the right. */
+ bool touch = false;
+ if (ups[0] >= dps.back ()
+ && (dps.size () < 2 || ups[0] >= dps[dps.size () - 2] + 2)
+ && (ups.size () < 2 || ups[1] >= dps.back () + 2))
+ touch = true;
+
+ /* Determine which chord goes on the left, and which goes right.
+ Up-stem usually goes on the right, but if chords just 'touch' we can put
+ both stems on a common vertical line. In the presense of collisions,
+ right hand heads may obscure dots, so dotted heads to go the right.
+ */
+ Real shift_amount = 1;
bool stem_to_stem = false;
- if (full_collide)
+ if ((full_collide
+ || ((close_half_collide || distant_half_collide)
+ && to_boolean (me->get_property ("prefer-dotted-right"))))
+ && Rhythmic_head::dot_count (head_up) < Rhythmic_head::dot_count (head_down))
{
- if (Rhythmic_head::dot_count (head_up) > Rhythmic_head::dot_count (head_down))
- shift_amount = 1;
- else if (Rhythmic_head::dot_count (head_up) < Rhythmic_head::dot_count (head_down))
+ shift_amount = -1;
+ if (!touch || full_collide)
+ // remember to leave clearance between stems
stem_to_stem = true;
}
+ else if (touch)
+ {
+ // Up-stem note on a line has a raised dot, so no risk of collision
+ Grob *staff = Staff_symbol_referencer::get_staff_symbol (me);
+ if ((full_collide
+ || (!Staff_symbol_referencer::on_line (staff, ups[0])
+ && to_boolean (me->get_property ("prefer-dotted-right"))))
+ && Rhythmic_head::dot_count (head_up) > Rhythmic_head::dot_count (head_down))
+ touch = false;
+ else
+ shift_amount = -1;
+ }
/* The solfa is a triangle, which is inverted depending on stem
direction. In case of a collision, one of them should be removed,
/* TODO: these numbers are magic; should devise a set of grob props
to tune this behavior. */
else if (stem_to_stem)
- shift_amount = -abs (shift_amount) * 0.65;
- else if (close_half_collide && !touch)
+ shift_amount *= 0.65;
+ else if (touch)
+ shift_amount *= 0.5;
+ else if (close_half_collide)
shift_amount *= 0.52;
- else if (distant_half_collide && !touch)
- shift_amount *= 0.4;
- else if (distant_half_collide || close_half_collide || full_collide)
+ else if (full_collide)
shift_amount *= 0.5;
+ else if (distant_half_collide)
+ shift_amount *= 0.4;
/* we're meshing. */
else if (Rhythmic_head::dot_count (head_up) || Rhythmic_head::dot_count (head_down))
shift_amount *= 0.75;
}
- /*
- * Fix issue #44:
- *
- * Dots from left note head collide with right note head. Only occurs
- * with a close half collide, if the left note head is between
- * lines and the right note head is on a line, and if right note head
- * hasn't got any dots.
+ /* If the dotted notes ended up on the left, and there are collisions,
+ tell the Dot_Columnn to avoid the notes on the right.
*/
- if (close_half_collide
- && Rhythmic_head::dot_count (head_up)
- && !Rhythmic_head::dot_count (head_down))
+ if (full_collide || close_half_collide || distant_half_collide)
{
- Grob *staff = Staff_symbol_referencer::get_staff_symbol (me);
- if (!Staff_symbol_referencer::on_line (staff, ups[0]))
+ if (shift_amount < -1e-6
+ && Rhythmic_head::dot_count (head_up)
+ && !Rhythmic_head::dot_count (head_down))
{
- /*
- TODO: consider junking the else body.
- */
- if (to_boolean (me->get_property ("prefer-dotted-right")))
- shift_amount = 0.5;
- else
- {
- Grob *d = unsmob_grob (head_up->get_object ("dot"));
- Grob *parent = d->get_parent (X_AXIS);
- if (Dot_column::has_interface (parent))
- Side_position_interface::add_support (parent, head_down);
- }
+ Grob *d = unsmob_grob (head_up->get_object ("dot"));
+ Grob *parent = d->get_parent (X_AXIS);
+ if (Dot_column::has_interface (parent))
+ Side_position_interface::add_support (parent, head_down);
}
- }
-
- /* For full or close half collisions, the right hand head may
- obscure dots. Move dots to the right. */
- if (abs (shift_amount) > 1e-6
- && Rhythmic_head::dot_count (head_down) > Rhythmic_head::dot_count (head_up)
- && (full_collide || close_half_collide))
- {
- Grob *d = unsmob_grob (head_down->get_object ("dot"));
- Grob *parent = d->get_parent (X_AXIS);
-
- /*
- FIXME:
-
- |
- x . o
- |
-
-
- the . is put right of o which is erroneous o force-shifted
- far to the right.
- */
- if (Dot_column::has_interface (parent))
+ else if (Rhythmic_head::dot_count (head_down)
+ && !Rhythmic_head::dot_count (head_up))
{
- Grob *stem = unsmob_grob (head_up->get_object ("stem"));
- extract_grob_set (stem, "note-heads", heads);
- for (vsize i = 0; i < heads.size (); i++)
- Side_position_interface::add_support (parent, heads[i]);
+ Grob *d = unsmob_grob (head_down->get_object ("dot"));
+ Grob *parent = d->get_parent (X_AXIS);
+ if (Dot_column::has_interface (parent))
+ {
+ Grob *stem = unsmob_grob (head_up->get_object ("stem"));
+ extract_grob_set (stem, "note-heads", heads);
+ for (vsize i = 0; i < heads.size (); i++)
+ Side_position_interface::add_support (parent, heads[i]);
+ }
}
}
Page_layout_problem::add_footnotes_to_footer (footnotes, foot, book_);
- p->set_property ("foot-stencil", foot->smobbed_copy ());
+ if (foot)
+ p->set_property ("foot-stencil", foot->smobbed_copy ());
scm_apply_1 (page_stencil, page, SCM_EOL);
return page;
void
Page_layout_problem::add_footnotes_to_footer (SCM footnotes, Stencil *foot, Paper_book *pb)
{
+ if (!foot && scm_is_pair (footnotes))
+ {
+ warning ("Must have a footer to add footnotes.");
+ return;
+ }
bool footnotes_found = false;
Real footnote_padding = robust_scm2double (pb->paper_->c_variable ("footnote-padding"), 0.0);
Real footnote_footer_padding = robust_scm2double (pb->paper_->c_variable ("footnote-footer-padding"), 0.0);
// Add listeners to all contexts except Devnull.
for (int i = 0; i < NUM_OUTLETS; i++)
{
- Context *c = handles_[i].get_outlet ();
+ Context *c = handles_[i].get_context ();
if (c->is_alias (ly_symbol2scm ("Voice")))
c->event_source ()->remove_listener (GET_LISTENER (set_busy), ly_symbol2scm ("music-event"));
handles_[i].set_context (0);
{
for (int j = 0; j < NUM_OUTLETS; j++)
if (j != tos[i])
- mis[i]->substitute_outlet (handles_[j].get_outlet (), handles_[tos[i]].get_outlet ());
+ mis[i]->substitute_outlet (handles_[j].get_context (), handles_[tos[i]].get_context ());
}
for (int j = 0; j < NUM_OUTLETS; j++)
mmrest_event_->unprotect ();
}
- handles_[in].get_outlet ()->event_source ()->broadcast (mmrest_event_);
+ handles_[in].get_context ()->event_source ()->broadcast (mmrest_event_);
}
void
}
SCM lst = get_music ()->get_property ("elements");
- Context *one = handles_[CONTEXT_ONE].get_outlet ();
+ Context *one = handles_[CONTEXT_ONE].get_context ();
set_context (one);
first_iter_ = unsmob_iterator (get_iterator (unsmob_music (scm_car (lst))));
- Context *two = handles_[CONTEXT_TWO].get_outlet ();
+ Context *two = handles_[CONTEXT_TWO].get_context ();
set_context (two);
second_iter_ = unsmob_iterator (get_iterator (unsmob_music (scm_cadr (lst))));
transpose_mutable (ev->get_property_alist (true), diff);
transposed_musics_ = scm_cons (ev->unprotect (), transposed_musics_);
}
- quote_outlet_.get_outlet ()->event_source ()->broadcast (ev);
+ quote_outlet_.get_context ()->event_source ()->broadcast (ev);
}
}
}
Real
-fit_factor (Offset dz_unit, Offset dz_perp,
+fit_factor (Offset dz_unit, Offset dz_perp, Real close_to_edge_length,
Bezier curve, Direction d, vector<Offset> const &avoid)
{
Real fit_factor = 0.0;
Offset p (dot_product (z, dz_unit),
d * dot_product (z, dz_perp));
+ bool close_to_edge = false;
+ Direction d = LEFT;
+ do
+ close_to_edge = close_to_edge || -d * (p[X_AXIS] - curve_xext[d]) < close_to_edge_length;
+ while (flip (&d) != LEFT);
+
+ if (close_to_edge)
+ continue;
+
Real eps = 0.01;
Interval pext = eps * Interval (-1, 1) + p[X_AXIS];
pext.intersect (curve_xext);
+
if (pext.is_empty () || pext.length () <= 1.999 * eps)
continue;
+ dz_unit * x2;
curve.control_[3] = attachment_[RIGHT];
- Real ff = fit_factor (dz_unit, dz_perp, curve, state.dir_, avoid);
+ Real ff = fit_factor (dz_unit, dz_perp, state.parameters_.close_to_edge_length_,
+ curve, state.dir_, avoid);
height = max (height, min (height * ff, max_h));
= get_detail (details, ly_symbol2scm ("free-slur-distance"));
edge_slope_exponent_
= get_detail (details, ly_symbol2scm ("edge-slope-exponent"));
+ close_to_edge_length_
+ = get_detail (details, ly_symbol2scm ("close-to-edge-length"));
}
&& m.main_part_ == next_split_mom_)
{
descend_to_bottom_context ();
- if (tuplet_handler_.get_outlet ())
- create_event (STOP)->send_to_context (tuplet_handler_.get_outlet ());
+ if (tuplet_handler_.get_context ())
+ create_event (STOP)->send_to_context (tuplet_handler_.get_context ());
if (m.main_part_ < music_get_length ().main_part_)
{
#
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 2.13.53\n"
+"Project-Id-Version: lilypond 2.15.9\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2011-03-02 10:34+0100\n"
-"PO-Revision-Date: 2011-03-03 22:19+0200\n"
+"POT-Creation-Date: 2011-08-02 19:43+0200\n"
+"PO-Revision-Date: 2011-08-10 21:45+0300\n"
"Last-Translator: Till Paala <till.rettig@gmx.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
msgid "%s has been replaced by %s"
msgstr "%s wurde durch %s ersetzt"
-#: convertrules.py:24 lilylib.py:78 musicexp.py:17 convert-ly.py:64 warn.cc:66
-#: input.cc:109
+#: convertrules.py:24 lilylib.py:85 musicexp.py:17 convert-ly.py:64 warn.cc:66
+#: input.cc:108
#, c-format, python-format
msgid "warning: %s"
msgstr "Warnung: %s"
#: convertrules.py:86 convertrules.py:1905 convertrules.py:2084
#: convertrules.py:2236 convertrules.py:2566 convertrules.py:2862
+#: convertrules.py:3206
msgid "bump version for release"
msgstr "aktuelle Version ausgeben"
msgid "woodwind-diagrams. Clarinet fingering changed to reflect actual anatomy of instrument.\n"
msgstr "woodwind-diagrams. Klarinetten-Fingersatz verändert um Anatomie des Instruments wiederzugeben.\n"
+#: convertrules.py:3211
+msgid "Change in internal property for MultiMeasureRest"
+msgstr "Änderung in der internen Eigenschaft für MultiMeasureRest"
+
+#: convertrules.py:3214
+msgid "use-breve-rest. This internal property has been replaced by round-to-longer-rest and usable-duration-logs.\n"
+msgstr "use-breve-rest. Diese interene Eigenschaft wurde ersetzt durch round-to-longer-rest und usable-duration-logs.\n"
+
+#: convertrules.py:3219
+msgid "Handling of non-automatic footnotes."
+msgstr "Behandlung von nicht-automatischen Fußnoten."
+
+#: convertrules.py:3223
+msgid "If you are using non-automatic footnotes, make sure to set footnote-auto-numbering = ##f in the paper block.\n"
+msgstr "Wenn sie nichtautomatische Fußnoten einsetzen, stellen Sie sicher, die Eigenschaft footnote-auto-numbering = ##f in der paper-Umgebund einzustellen.\n"
+
#: book_base.py:24
#, python-format
msgid "file not found: %s"
msgid "Output function not implemented"
msgstr "Ausgabefunktion nicht implementiert"
-#: lilylib.py:81 musicxml.py:13 convert-ly.py:67 warn.cc:72 input.cc:115
-#: input.cc:123
+#: lilylib.py:88 musicxml.py:13 convert-ly.py:67 warn.cc:72 input.cc:114
+#: input.cc:122
#, c-format, python-format
msgid "error: %s"
msgstr "Fehler: %s"
-#: lilylib.py:124 lilylib.py:175
+#: lilylib.py:131
+#, python-format
+msgid "Processing %s.ly"
+msgstr "»%s.ly« wird verarbeitet"
+
+#: lilylib.py:135 lilylib.py:198
#, python-format
msgid "Invoking `%s'"
msgstr "`%s' wird aufgerufen"
-#: lilylib.py:126 lilylib.py:177
+#: lilylib.py:137 lilylib.py:200
#, python-format
msgid "Running %s..."
msgstr "%s wird ausgeführt..."
-#: lilylib.py:253
+#: lilylib.py:276
#, python-format
msgid "Usage: %s"
msgstr "Aufruf: %s"
msgid "cannot find \\begin{document} in LaTeX document"
msgstr "\\begin{document} im LaTeX-Dokument kann nicht gefunden werden"
-#: musicxml2ly.py:223
+#: musicxml2ly.py:224
#, python-format
msgid "Encountered file created by %s, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
msgstr "Die Datei wurde von %s erstellt und enthält falsche Balkeninformation. Alle Balkeninformation in der MusicXML-Datei wird ignoriert"
-#: musicxml2ly.py:239 musicxml2ly.py:241
+#: musicxml2ly.py:240 musicxml2ly.py:242
#, python-format
msgid "Unprocessed PartGroupInfo %s encountered"
msgstr "Unverarbeitetes PartGroupInfo %s angetroffen"
-#: musicxml2ly.py:494
+#: musicxml2ly.py:495
#, python-format
msgid "Encountered note at %s without type and duration (=%s)"
msgstr "Note bei %s ohne Art und Dauer angetroffen (=%s)"
-#: musicxml2ly.py:514
+#: musicxml2ly.py:515
#, python-format
msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration"
msgstr "Rationale Dauer mit Nenner %s angetroffen, kann nicht in lilypond-Dauer umgewandelt werden"
-#: musicxml2ly.py:761
+#: musicxml2ly.py:762
msgid "Unable to extract key signature!"
msgstr "Kann die Tonart nicht extrahieren!"
-#: musicxml2ly.py:788
+#: musicxml2ly.py:789
#, python-format
msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
msgstr "unbekannter Modus %s, 'major' (Dur) oder 'minor' (Moll) oder eine Kirchentonart wird erwartet"
-#: musicxml2ly.py:926
+#: musicxml2ly.py:927
#, python-format
msgid "Encountered unprocessed marker %s\n"
msgstr "Unverarbeiteter Marker %s angetroffen\n"
-#: musicxml2ly.py:1020
+#: musicxml2ly.py:1021
#, python-format
msgid "unknown span event %s"
msgstr "Unbekannte Spannerklasse »%s«"
-#: musicxml2ly.py:1030
+#: musicxml2ly.py:1031
#, python-format
msgid "unknown span type %s for %s"
msgstr "Unbekannter Spannertyp %s für %s"
-#: musicxml2ly.py:1450
+#: musicxml2ly.py:1451
msgid "Unknown metronome mark, ignoring"
msgstr "Unbekanntes Metronom-Zeichen, wird ignoriert"
#. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1455
+#: musicxml2ly.py:1456
msgid "Metronome marks with complex relations (<metronome-note> in MusicXML) are not yet implemented."
msgstr "Metronommakern mit komplexen Beziehungen (<metronome-note> in MusicXML) sind noch nicht implementiert."
-#: musicxml2ly.py:1657
+#: musicxml2ly.py:1658
#, python-format
msgid "Unable to convert chord type %s to lilypond."
msgstr "Kann Akkordtyp %s nicht nach lilypond umwandeln"
-#: musicxml2ly.py:1806
+#: musicxml2ly.py:1807
#, python-format
msgid "drum %s type unknown, please add to instrument_drumtype_dict"
msgstr "Schlagzeug %s Typ unbekannt, bitte zum instrument_drumtype_dict hinzufügen"
-#: musicxml2ly.py:1810
+#: musicxml2ly.py:1811
msgid "cannot find suitable event"
msgstr "passendes Ereignis kann nicht gefunden werden"
-#: musicxml2ly.py:1958
+#: musicxml2ly.py:1959
#, python-format
msgid "Negative skip %s (from position %s to %s)"
msgstr "Negativer Sprung (skip) %s (von Position %s bis %s)"
-#: musicxml2ly.py:2099
+#: musicxml2ly.py:2100
#, python-format
msgid "Negative skip found: from %s to %s, difference is %s"
msgstr "Negativer Sprung (skip) gefunden: von %s bis %s, Differenz ist %s"
-#: musicxml2ly.py:2180
+#: musicxml2ly.py:2181
#, python-format
msgid "unexpected %s; expected %s or %s or %s"
msgstr "unerwartetes %s; %s oder %s oder %s erwartet"
-#: musicxml2ly.py:2286
+#: musicxml2ly.py:2287
msgid "Encountered closing slur, but no slur is open"
msgstr "Auf schließenden Legatobogen gestoßen, aber es wurde kein Bogen begonnen"
-#: musicxml2ly.py:2289
+#: musicxml2ly.py:2290
msgid "Cannot have two simultaneous (closing) slurs"
msgstr "Zwei gleichzeitige (schließende) Legatobögen sind nicht möglich"
-#: musicxml2ly.py:2298
+#: musicxml2ly.py:2299
msgid "Cannot have a slur inside another slur"
msgstr "Ein Legatobogen innerhalb eines anderen Legatobogens ist nicht möglich"
-#: musicxml2ly.py:2301
+#: musicxml2ly.py:2302
msgid "Cannot have two simultaneous slurs"
msgstr "Zwei gleichzeitige Legatobögen sind nicht möglich"
-#: musicxml2ly.py:2435
+#: musicxml2ly.py:2436
#, python-format
msgid "cannot simultaneously have more than one mode: %s"
msgstr "Kann nicht gleichzeitig mehr als einen Modus haben: %s"
-#: musicxml2ly.py:2543
+#: musicxml2ly.py:2544
msgid "Converting to LilyPond expressions..."
msgstr "In LilyPond-Ausdrücke umwandeln..."
-#: musicxml2ly.py:2554
+#: musicxml2ly.py:2555
msgid "musicxml2ly [OPTION]... FILE.xml"
msgstr "musicxml2ly [Optionen]... DATEI.xml"
-#: musicxml2ly.py:2556
+#: musicxml2ly.py:2557
msgid ""
"Convert MusicXML from FILE.xml to LilyPond input.\n"
"If the given filename is -, musicxml2ly reads from the command line.\n"
"Wandle MusicXML-Datei von DAT.xml nach LilyPond-Eingabe um.\n"
"Wenn der angegebene Dateiname - ist, list musicxml2ly von der Kommandozeile.\n"
-#: musicxml2ly.py:2562 midi2ly.py:987 abc2ly.py:1386 lilypond-book.py:140
-#: convert-ly.py:98 etf2ly.py:1202 main.cc:157
+#: musicxml2ly.py:2563 midi2ly.py:1060 abc2ly.py:1386 lilypond-book.py:140
+#: convert-ly.py:98 etf2ly.py:1202 main.cc:159
msgid "show this help and exit"
msgstr "diese Hilfe anzeigen und beenden"
-#: musicxml2ly.py:2566
+#: musicxml2ly.py:2567
msgid ""
"Copyright (c) 2005--2011 by\n"
" Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
"····Jan·Nieuwenhuizen·<janneke@gnu.org>·and\n"
"····Reinhold·Kainhofer·<reinhold@kainhofer.com>\n"
-#: musicxml2ly.py:2580 midi2ly.py:1015 abc2ly.py:1382 lilypond-book.py:212
-#: convert-ly.py:94 etf2ly.py:1206 main.cc:168
+#: musicxml2ly.py:2581 midi2ly.py:1091 abc2ly.py:1382 lilypond-book.py:217
+#: convert-ly.py:94 etf2ly.py:1206 main.cc:174
msgid "show version number and exit"
msgstr "Versionsnummer ausgeben und beenden"
-#: musicxml2ly.py:2585 midi2ly.py:1009 lilypond-book.py:204 main.cc:169
+#: musicxml2ly.py:2586 midi2ly.py:1085 lilypond-book.py:209 main.cc:175
msgid "be verbose"
msgstr "wortreich sein"
-#: musicxml2ly.py:2591
+#: musicxml2ly.py:2592
msgid "use lxml.etree; uses less memory and cpu time"
msgstr "lxml.etree verwenden; benötigt weniger Speicher und Prozessorzeit"
-#: musicxml2ly.py:2597
+#: musicxml2ly.py:2598
msgid "input file is a zip-compressed MusicXML file"
msgstr "Eingabedatei ist eine zip-komprimierte MusicXML-Datei"
-#: musicxml2ly.py:2603
+#: musicxml2ly.py:2604
msgid "convert pitches in relative mode (default)"
msgstr "Tonhöhen im relativen Modus konvertieren (Standard)"
-#: musicxml2ly.py:2608
+#: musicxml2ly.py:2609
msgid "convert pitches in absolute mode"
msgstr "Tonhöhen im absoluten Modus konvertieren"
-#: musicxml2ly.py:2611
+#: musicxml2ly.py:2612
msgid "LANG"
msgstr "SPRA"
-#: musicxml2ly.py:2613
+#: musicxml2ly.py:2614
msgid "use LANG for pitch names, e.g. 'deutsch' for note names in German"
msgstr "benutzte SPRA für Notenbezeichnugen, z. B. 'deutsch' für deutsche Notenbezeichnungen"
-#: musicxml2ly.py:2619
+#: musicxml2ly.py:2620
msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
msgstr "Richtungen (^, _ oder -) for Artikulationen, Dynamik usw. nicht konvertieren"
-#: musicxml2ly.py:2625
+#: musicxml2ly.py:2626
msgid "do not convert exact vertical positions of rests"
msgstr "zusätzliche vertikale Positionen von Pausen nicht konvertieren"
-#: musicxml2ly.py:2631
+#: musicxml2ly.py:2632
msgid "do not convert the exact page layout and breaks"
msgstr "nicht das exakte Seitenlayout und Umbrüche konvertieren"
-#: musicxml2ly.py:2637
+#: musicxml2ly.py:2638
msgid "do not convert beaming information, use lilypond's automatic beaming instead"
msgstr "Balkeninformation nicht konvertieren, benutze die automatischen Balken von lilypond statt dessen"
-#: musicxml2ly.py:2640 midi2ly.py:992 midi2ly.py:997 etf2ly.py:1208
-#: main.cc:161 main.cc:166
+#: musicxml2ly.py:2641 midi2ly.py:1065 midi2ly.py:1070 etf2ly.py:1208
+#: main.cc:165 main.cc:172
msgid "FILE"
msgstr "DATEI"
-#: musicxml2ly.py:2645
+#: musicxml2ly.py:2646
msgid "set output filename to FILE, stdout if -"
msgstr "Ausgabedateiname auf DATEI setzen, stout if -"
#. "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"
-#: musicxml2ly.py:2648 midi2ly.py:1028 abc2ly.py:1395 lilypond-book.py:234
-#: convert-ly.py:144 etf2ly.py:1216 main.cc:281
+#: musicxml2ly.py:2649 midi2ly.py:1104 abc2ly.py:1395 lilypond-book.py:239
+#: convert-ly.py:144 etf2ly.py:1216 main.cc:285
#, c-format, python-format
msgid "Report bugs via %s"
msgstr "Melden Sie Fehler an %s"
-#: musicxml2ly.py:2728
+#: musicxml2ly.py:2729
#, python-format
msgid "unknown part in part-list: %s"
msgstr "unbekannte Stimme in part-list (Stimmen-Liste): %s"
-#: musicxml2ly.py:2790
+#: musicxml2ly.py:2791
msgid "Input is compressed, extracting raw MusicXML data from stdin"
msgstr "Eingabedatei %s ist komprimiert, entpacke die MusicXML-Daten von stdin"
-#: musicxml2ly.py:2793
+#: musicxml2ly.py:2804
#, python-format
msgid "Input file %s is compressed, extracting raw MusicXML data"
msgstr "Eingabedatei %s ist komprimiert, entpacke die MusicXML-Daten"
-#: musicxml2ly.py:2823
+#: musicxml2ly.py:2834
msgid "Reading MusicXML from Standard input ..."
msgstr "MusicXML von standard input lesen..."
-#: musicxml2ly.py:2825
+#: musicxml2ly.py:2836
#, python-format
msgid "Reading MusicXML from %s ..."
msgstr "MusicXML aus %s lesen..."
-#: musicxml2ly.py:2858
+#: musicxml2ly.py:2869
#, python-format
msgid "Output to `%s'"
msgstr "Ausgabe nach »%s«"
-#: musicxml2ly.py:2925
+#: musicxml2ly.py:2936
#, python-format
msgid "Unable to find input file %s"
msgstr "Eingabedatei kann nicht gefunden werden %s"
-#: midi2ly.py:90 lilypond-book.py:116 convert-ly.py:81 etf2ly.py:1189
+#: midi2ly.py:81 lilypond-book.py:116 convert-ly.py:81 etf2ly.py:1189
#, python-format
msgid "Copyright (c) %s by"
msgstr "Copyright (c) %s bei"
-#: midi2ly.py:92 lilypond-book.py:118 convert-ly.py:83 etf2ly.py:1191
+#: midi2ly.py:83 lilypond-book.py:118 convert-ly.py:83 etf2ly.py:1191
msgid "Distributed under terms of the GNU General Public License."
msgstr "Vertrieben unter den Bedingungen der GNU General Public License."
-#: midi2ly.py:93 lilypond-book.py:119 convert-ly.py:84 etf2ly.py:1192
+#: midi2ly.py:84 lilypond-book.py:119 convert-ly.py:84 etf2ly.py:1192
msgid "It comes with NO WARRANTY."
msgstr "Es wird OHNE GARANTIE ausgeliefert."
-#: midi2ly.py:99
+#: midi2ly.py:90
msgid "warning: "
msgstr "Warnung: "
-#: midi2ly.py:102 midi2ly.py:1041
+#: midi2ly.py:93 midi2ly.py:1121
msgid "error: "
msgstr "Fehler: "
-#: midi2ly.py:103
+#: midi2ly.py:94
msgid "Exiting... "
msgstr "Beenden... "
-#: midi2ly.py:960
+#: midi2ly.py:834
+msgid "found more than 5 voices on a staff, expect bad output"
+msgstr "mehr als fünf Stimmen auf einem System, schlechte Ausgabe kann erwartet werden"
+
+#: midi2ly.py:1030
#, python-format
msgid "%s output to `%s'..."
msgstr "%s nach »%s« ausgeben..."
-#: midi2ly.py:972 abc2ly.py:1373 lilypond-book.py:122 convert-ly.py:87
+#: midi2ly.py:1042 abc2ly.py:1373 lilypond-book.py:122 convert-ly.py:87
#, python-format
msgid "%s [OPTION]... FILE"
msgstr "%s [OPTIONEN]... DATEI"
-#: midi2ly.py:973
+#: midi2ly.py:1043
#, python-format
msgid "Convert %s to LilyPond input.\n"
msgstr "%s in LilyPond-Quelltext umwandeln.\n"
-#: midi2ly.py:978
+#: midi2ly.py:1048
msgid "print absolute pitches"
msgstr "Absolute Tonhöhen ausgeben"
-#: midi2ly.py:980 midi2ly.py:1002
+#: midi2ly.py:1050 midi2ly.py:1075
msgid "DUR"
msgstr "DAUER"
-#: midi2ly.py:981
+#: midi2ly.py:1051
msgid "quantise note durations on DUR"
msgstr "Notenlängen auf DAUER quantisieren"
-#: midi2ly.py:984
+#: midi2ly.py:1054
+msgid "debug printing"
+msgstr "Drucken auf Fehler untersuchen"
+
+#: midi2ly.py:1057
msgid "print explicit durations"
msgstr "Explizite Notenlängen ausgeben"
-#: midi2ly.py:989
+#: midi2ly.py:1062
msgid "prepend FILE to output"
msgstr "DATEI an die Ausgabe anfügen"
-#: midi2ly.py:993
+#: midi2ly.py:1066
msgid "set key: ALT=+sharps|-flats; MINOR=1"
msgstr "Tonart setzen: VORZ=+Kreuze|-B's; MOLL=1"
-#: midi2ly.py:994
+#: midi2ly.py:1067
msgid "ALT[:MINOR]"
msgstr "VORZ[:MOLL]"
-#: midi2ly.py:996 abc2ly.py:1388 etf2ly.py:1207
+#: midi2ly.py:1069 abc2ly.py:1388 etf2ly.py:1207
msgid "write output to FILE"
msgstr "Ausgabe in DATEI schreiben"
-#: midi2ly.py:999
+#: midi2ly.py:1072
msgid "preview of first 4 bars"
msgstr "Vorschau der ersten 4 Takte"
-#: midi2ly.py:1001
+#: midi2ly.py:1074
msgid "quantise note starts on DUR"
msgstr "Notenanfänge auf DAUER quantisieren"
-#: midi2ly.py:1004
+#: midi2ly.py:1078
+msgid "use s instead of r for rests"
+msgstr "s anstelle von r für Pausen benutzen"
+
+#: midi2ly.py:1080
msgid "DUR*NUM/DEN"
msgstr "DAUER*ZÄHLER/NENNER"
# tuplet = Wertaufteilung nach: Peter Giger: Die Kunst des Rhythmus, Seite 25
-#: midi2ly.py:1007
+#: midi2ly.py:1083
msgid "allow tuplet durations DUR*NUM/DEN"
msgstr "Wertaufteilungsdauern DAUER*ZÄHLER/NENNER erlauben"
-#: midi2ly.py:1016 lilypond-book.py:215 convert-ly.py:139 etf2ly.py:1210
-#: main.cc:170
+#: midi2ly.py:1092 lilypond-book.py:220 convert-ly.py:139 etf2ly.py:1210
+#: main.cc:176
msgid "show warranty and copyright"
msgstr "Informationen zu Gewährleistung und Copyright anzeigen"
-#: midi2ly.py:1019
+#: midi2ly.py:1095
msgid "treat every text as a lyric"
msgstr "Jeden Text als Liedtext behandeln"
-#: midi2ly.py:1022
+#: midi2ly.py:1098
msgid "Examples"
msgstr "Beispiele"
-#: midi2ly.py:1042
+#: midi2ly.py:1122
msgid "no files specified on command line."
msgstr "Keine Dateien auf der Kommandozeile angegeben."
msgstr "VERZ zum Einfügepfad hinzufügen"
#: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:163
-#: lilypond-book.py:173 lilypond-book.py:189 lilypond-book.py:195 main.cc:160
+#: lilypond-book.py:173 lilypond-book.py:194 lilypond-book.py:200 main.cc:164
msgid "DIR"
msgstr "VERZ"
msgid "process ly_files using COMMAND FILE..."
msgstr "ly_files mit BEFEHL DATEI... verarbeiten"
-#: lilypond-book.py:182
+#: lilypond-book.py:183
+msgid "Redirect the lilypond output"
+msgstr "Die Ausgabe von lilypond umleiten"
+
+#: lilypond-book.py:187
msgid "Compile snippets in safe mode"
msgstr "Schnipsel im sicheren Modus kompilieren"
-#: lilypond-book.py:188
+#: lilypond-book.py:193
msgid "do not fail if no lilypond output is found"
msgstr "nicht abbrechen wenn keine lilypond-Ausgabe gefunden wird"
-#: lilypond-book.py:194
+#: lilypond-book.py:199
msgid "do not fail if no PNG images are found for EPS files"
msgstr "nicht abbrechen wenn, keine PNG-Bilder für EPS-Dateien gefunden werden"
-#: lilypond-book.py:200
+#: lilypond-book.py:205
msgid "write snippet output files with the same base name as their source file"
msgstr "schreibe Schnipsel-Ausgabedatei mit der gleichen Basis-Bezeichnung wie die Quelldatei"
-#: lilypond-book.py:220
+#: lilypond-book.py:225
msgid ""
"run executable PROG instead of latex, or in\n"
"case --pdf option is set instead of pdflatex"
"Führe die Datei PROG anstelle von latex aus, oder\n"
"im Falle dass die Option --pdf gesetzt ist, anstelle von pdflatex"
-#: lilypond-book.py:222
+#: lilypond-book.py:227
msgid "PROG"
msgstr "PROG"
-#: lilypond-book.py:228
+#: lilypond-book.py:233
msgid "create PDF files for use with PDFTeX"
msgstr "PDF-Dateien für Verwendung mit PDFTeX erzeugen"
-#: lilypond-book.py:419
+#: lilypond-book.py:428
msgid "Writing snippets..."
msgstr "Auszüge werden geschrieben..."
-#: lilypond-book.py:425
+#: lilypond-book.py:434
msgid "Processing..."
msgstr "Verarbeiten..."
-#: lilypond-book.py:431
+#: lilypond-book.py:440
msgid "All snippets are up to date..."
msgstr "Alle Auszüge sind auf dem neuesten Stand..."
-#: lilypond-book.py:452
+#: lilypond-book.py:461
#, python-format
msgid "cannot determine format for: %s"
msgstr "Format für %s kann nicht ermittelt werden"
-#: lilypond-book.py:461
+#: lilypond-book.py:470
#, python-format
msgid "%s is up to date."
msgstr "%s ist aktuell."
-#: lilypond-book.py:475
+#: lilypond-book.py:484
#, python-format
msgid "Writing `%s'..."
msgstr "»%s« wird geschrieben..."
-#: lilypond-book.py:537
+#: lilypond-book.py:546
msgid "Output would overwrite input file; use --output."
msgstr "Ausgabe würde Eingabedatei überschreiben; verwenden Sie --output."
-#: lilypond-book.py:541
+#: lilypond-book.py:550
#, python-format
msgid "Reading %s..."
msgstr "%s lesen..."
-#: lilypond-book.py:549
+#: lilypond-book.py:558
msgid "Dissecting..."
msgstr "Zerlegen..."
-#: lilypond-book.py:561
+#: lilypond-book.py:570
#, python-format
msgid "Compiling %s..."
msgstr "%s kompilieren..."
-#: lilypond-book.py:570
+#: lilypond-book.py:579
#, python-format
msgid "Processing include: %s"
msgstr "Einfügung wird verarbeitet: %s"
-#: lilypond-book.py:582
+#: lilypond-book.py:591
#, python-format
msgid "Removing `%s'"
msgstr "»%s« wird gelöscht"
msgid "success: %s"
msgstr "Erfolg: %s"
-#: warn.cc:86 grob.cc:617 input.cc:97
+#: warn.cc:86 grob.cc:613 input.cc:97
#, c-format
msgid "programming error: %s"
msgstr "Programmierfehler: %s"
msgid "Vaticana_ligature: zero join (delta_pitch == 0)"
msgstr "Vaticana_ligature: nichts zusammengefügt (delta_pitch == 0)"
-#: parse-scm.cc:101
+#: parse-scm.cc:100
msgid "GUILE signaled an error for the expression beginning here"
msgstr "GUILE signalisierte einen Fehler für den hier beginnenden Ausdruck"
msgstr "der rhythmische Kopf gehört nicht zu einer rhythmischen Kolumne"
#. if we get to here, just put everything on one line
-#: constrained-breaking.cc:189 constrained-breaking.cc:207
+#: constrained-breaking.cc:187 constrained-breaking.cc:205
msgid "cannot find line breaking that satisfies constraints"
msgstr "es kann kein Zeilenumbruch gefunden werden, der die Bedingungen erfüllen"
-#: horizontal-bracket-engraver.cc:78
+#: horizontal-bracket-engraver.cc:62
msgid "do not have that many brackets"
msgstr "so viele Klammern gibt es nicht"
-#: horizontal-bracket-engraver.cc:87
+#: horizontal-bracket-engraver.cc:71
msgid "conflicting note group events"
msgstr "in Konflikt stehende Notengruppenereignisse"
msgid "unterminated hyphen; removing"
msgstr "unbegrenzter Bindestrich; entfernt"
-#: pango-font.cc:187 open-type-font.cc:319
+#: pango-font.cc:189 open-type-font.cc:318
#, c-format
msgid "FT_Get_Glyph_Name () error: %s"
msgstr "FT_Get_Glyph_Name() Fehler: %s"
-#: pango-font.cc:204
+#: pango-font.cc:205
#, 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:241
+#: pango-font.cc:242
#, c-format
msgid "no PostScript font name for font `%s'"
msgstr "Kein PostScript-Schriftartname für Schriftart: »%s«"
-#: pango-font.cc:290
+#: pango-font.cc:291
msgid "FreeType face has no PostScript font name"
msgstr "FreeType-Schriftart hat keinen PostScript-Schriftartnamen"
-#: midi-item.cc:92
+#: midi-item.cc:89
#, c-format
msgid "no such MIDI instrument: `%s'"
msgstr "kein MIDI-Instrument: `%s'"
msgid "NoteEvent without pitch"
msgstr "NoteEvent ohne Tonhöhe"
-#: rest.cc:159
+#: rest.cc:160
#, c-format
msgid "rest `%s' not found"
msgstr "Pause »%s« nicht gefunden"
msgid "unterminated beam"
msgstr "unbegrenzter Balken"
-#: beam-engraver.cc:266 chord-tremolo-engraver.cc:150
+#: beam-engraver.cc:266 chord-tremolo-engraver.cc:149
msgid "stem must have Rhythmic structure"
msgstr "Notenhals muss rhythmische Struktur aufweisen"
msgid "beam was started here"
msgstr "Balken wurde hier begonnen"
-#: music-iterator.cc:182
+#: music-iterator.cc:181
msgid "Sending non-event to context"
msgstr "Nicht-Ereignis wird an Kontext gesendet"
-#: context.cc:149
+#: context.cc:148
#, c-format
msgid "cannot find or create new `%s'"
msgstr "ein neues »%s« kann weder gefunden noch erzeugt werden"
-#: context.cc:207
+#: context.cc:206
#, c-format
msgid "cannot find or create `%s' called `%s'"
msgstr "»%s« (»%s« genannt) kann weder gefunden noch erzeugt werden"
-#: context.cc:269
+#: context.cc:268
#, c-format
msgid "Invalid CreateContext event: Cannot create %s context"
msgstr "Ungültiges CreateContext-Ereignis: Kontext %s kann nicht erzeugt werden"
-#: context.cc:400
+#: context.cc:399
#, c-format
msgid "cannot find or create: `%s'"
msgstr "»%s« kann weder gefunden noch erzeugt werden"
msgid "forced break was overridden by some other event, should you be using bar checks?"
msgstr "erzwungener Umbruch war durch anderes Ereignis aufgehoben, sollten Taktüberprüfungen vorgenommen werden?"
-#: tie-engraver.cc:116
+#: tie-engraver.cc:117
msgid "unterminated tie"
msgstr "unbegrenzter Bindebogen"
-#: tie-engraver.cc:312
+#: tie-engraver.cc:348
msgid "lonely tie"
msgstr "einsamer Bindebogen"
"muss die vorletzte Note eine weitere sein,\n"
"oder die Ligatur muss LB oder SSB sein"
-#: mensural-ligature-engraver.cc:386
+#: mensural-ligature-engraver.cc:387
msgid "unexpected case fall-through"
msgstr "unerwarteter case-Ausgang"
-#: piano-pedal-engraver.cc:298
+#: piano-pedal-engraver.cc:296
#, c-format
msgid "expect 3 strings for piano pedals, found: %ld"
msgstr "3 Textketten für Piano-Pedal erwartet, %ld gefunden"
-#: piano-pedal-engraver.cc:313 piano-pedal-engraver.cc:324
+#: piano-pedal-engraver.cc:311 piano-pedal-engraver.cc:322
#: piano-pedal-performer.cc:104
#, c-format
msgid "cannot find start of piano pedal: `%s'"
msgstr "es kann kein Anfang für Piano-Pedal gefunden werden: »%s«"
-#: piano-pedal-engraver.cc:359
+#: piano-pedal-engraver.cc:357
#, c-format
msgid "cannot find start of piano pedal bracket: `%s'"
msgstr "es kann kein Anfang für Piano-Pedal-Klammer gefunden werden: »%s«"
-#: input.cc:131 source-file.cc:179 source-file.cc:194
+#: input.cc:130 source-file.cc:178 source-file.cc:193
msgid "position unknown"
msgstr "Position unbekannt"
msgid "Layout output to `%s'..."
msgstr "Layout nach »%s« ausgeben..."
-#: general-scheme.cc:306
+#: general-scheme.cc:305
msgid "infinity or NaN encountered while converting Real number"
msgstr "Unendlichkeit oder NaN bei Umwandlung einer Realen Zahl gefunden"
-#: general-scheme.cc:307
+#: general-scheme.cc:306
msgid "setting to zero"
msgstr "auf Null gesetzt"
-#: general-scheme.cc:543
+#: general-scheme.cc:540
msgid "Found infinity or nan in output. Substituting 0.0"
msgstr "Unendlich oder NaN in Ausgabe gefunden. Wird durch 0.0 ersetzt"
-#: music.cc:151
+#: music.cc:150
#, c-format
msgid "octave check failed; expected \"%s\", found: \"%s\""
msgstr "Oktavenüberprüfung gescheitert; »%s« erwartet, »%s« gefunden"
-#: music.cc:219
+#: music.cc:218
msgid "(normalized pitch)"
msgstr "(normalisierte Tonhöhe)"
-#: music.cc:223
+#: music.cc:222
#, c-format
msgid "Transposing %s by %s makes alteration larger than double"
msgstr "Transponieren von %s um %s erzeugt mehr als ein Doppel-Vorzeichen"
msgid "trying to use \\partial after the start of a piece"
msgstr "versuche, \\partial nach dem Beginn eines Stückes einzusetzen"
-#: new-fingering-engraver.cc:106
+#: new-fingering-engraver.cc:105
msgid "cannot add text scripts to individual note heads"
msgstr "es kann kein Text zu einzelnen Notenköpfen hinzugefügt werden"
-#: new-fingering-engraver.cc:250
+#: new-fingering-engraver.cc:249
msgid "no placement found for fingerings"
msgstr "Keine Platzierung für Fingersatz gefunden"
-#: new-fingering-engraver.cc:251
+#: new-fingering-engraver.cc:250
msgid "placing below"
msgstr "Platzierung darunter"
msgid "no left bound"
msgstr "keine linke Begrenzung"
-#: ligature-engraver.cc:185
+#: ligature-engraver.cc:184
msgid "unterminated ligature"
msgstr "unbegrenzte Ligatur"
-#: ligature-engraver.cc:214
+#: ligature-engraver.cc:211
msgid "ignoring rest: ligature may not contain rest"
msgstr "Pause wird ignoriert: Ligatur darf keine Pause enthalten"
-#: ligature-engraver.cc:215
+#: ligature-engraver.cc:212
msgid "ligature was started here"
msgstr "Ligatur wurde hier begonnen"
msgid "cannot change, already in translator: %s"
msgstr "kann nicht geändert werden, bereits im Übersetzer: %s"
-#: accidental-engraver.cc:180
+#: accidental-engraver.cc:179
#, c-format
msgid "accidental typesetting list must begin with context-name: %s"
msgstr "Versetzungszeichensatzliste muss mit Kontextnamen beginnen: %s"
-#: accidental-engraver.cc:210
+#: accidental-engraver.cc:209
#, c-format
msgid "procedure or context-name expected for accidental rule, found %s"
msgstr "Prozedur oder Kontextname für Versetzungszeichenregel erwartet, %s gefunden"
-#: ttf.cc:481 ttf.cc:530
+#: ttf.cc:480 ttf.cc:529
#, c-format
msgid "font index %d too large for font `%s', using index 0"
msgstr "Font-Intex %d zu groß für Font »%s«, benutze Index 0"
-#: ttf.cc:513 ttf.cc:565
+#: ttf.cc:512 ttf.cc:564
msgid "font index must be non-negative, using index 0"
msgstr "font-index muss nicht-negativ sein, benutze Index 0"
-#: break-alignment-interface.cc:206
+#: break-alignment-interface.cc:199
#, c-format
msgid "No spacing entry from %s to `%s'"
msgstr "Kein Abstandeintrag von %s nach »%s«"
msgid "Aborting"
msgstr "Abbruch"
-#: note-collision.cc:497
+#: note-collision.cc:494
msgid "ignoring too many clashing note columns"
msgstr "zu viele kollidierende Notenspalten werden ignoriert"
msgid "giving up"
msgstr "aufgeben"
-#: page-layout-problem.cc:322
+#: page-layout-problem.cc:603
msgid "cannot fit music on page: ragged-spacing was requested, but page was compressed"
msgstr "Noten passen nicht auf die Seite: ragged-spacing wurde verlangt, aber die Seite wurde komprimiert"
-#: page-layout-problem.cc:325
+#: page-layout-problem.cc:606
#, c-format
msgid "cannot fit music on page: overflow is %f"
msgstr "Noten passen nicht auf die Seite: Überhang ist %f"
-#: page-layout-problem.cc:327
+#: page-layout-problem.cc:608
msgid "compressing music to fit"
msgstr "Noten werden komprimiert um zu passen"
-#: page-layout-problem.cc:765
+#: page-layout-problem.cc:1047
msgid "staff-affinities should only decrease"
msgstr "staff-affinities sollten nur abnehmen"
msgid "mark label must be a markup object"
msgstr "Marke muss ein Textbeschriftungsobjekt sein"
-#: new-dynamic-engraver.cc:142
+#: new-dynamic-engraver.cc:168
#, c-format
msgid ""
"unknown crescendo style: %s\n"
"unbekannter crescendo-Stil: %s\n"
"wird als spitze Klammer gesetzt."
-#: new-dynamic-engraver.cc:200
+#: new-dynamic-engraver.cc:233
#, c-format
msgid "unterminated %s"
msgstr "unbegrenzt: »%s«"
-#: stem-engraver.cc:103
+#: stem-engraver.cc:102
msgid "tremolo duration is too long"
msgstr "Tremolodauer ist zu lang"
-#. FIXME:
-#: stem-engraver.cc:140
+#: stem-engraver.cc:154
#, c-format
-msgid "adding note head to incompatible stem (type = %d)"
-msgstr "Notenkopf wird zu inkompatiblem Hals (Typ = %d) hinzugefügt"
+msgid "adding note head to incompatible stem (type = %d/%d)"
+msgstr "Notenkopf wird zu inkompatiblem Hals (Typ = %d/%d) hinzugefügt"
-#: stem-engraver.cc:142
+#: stem-engraver.cc:157
msgid "maybe input should specify polyphonic voices"
msgstr "vielleicht sollte die Eingabe mehrere Stimmen erstellen"
-#: lily-lexer.cc:264
+#: lily-lexer.cc:265
msgid "include files are not allowed in safe mode"
msgstr "eingefügte Dateien sind im abgesicherten Modus nicht erlaubt"
-#: lily-lexer.cc:291
+#: lily-lexer.cc:292
#, c-format
msgid "identifier name is a keyword: `%s'"
msgstr "Bezeichnername ist ein Schlüsselwort: »%s«"
-#: lily-lexer.cc:312
+#: lily-lexer.cc:313
#, c-format
msgid "error at EOF: %s"
msgstr "Fehler am Dateiende (EOF): %s"
msgid "cannot find Voice `%s'"
msgstr "Stimme kann nicht gefunden werden: »%s«"
-#: includable-lexer.cc:71 lily-guile.cc:87 lily-parser-scheme.cc:109
+#: includable-lexer.cc:71 lily-guile.cc:86 lily-parser-scheme.cc:109
#, c-format
msgid "cannot find file: `%s'"
msgstr "Datei »%s« kann nicht gefunden werden"
-#: includable-lexer.cc:73 lily-parser-scheme.cc:100
+#: includable-lexer.cc:73 lily-parser-scheme.cc:101
#, c-format
msgid "(search path: `%s')"
msgstr "(Suchpfad: »%s«)"
msgstr "Balken ohne Notenhälse wird entfernt"
#. We are completely screwed.
-#: beam.cc:1274
+#: beam.cc:1350
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"
-#: slur-engraver.cc:93
+#: staff-performer.cc:257
+msgid "MIDI channel wrapped around"
+msgstr "MIDI-Kanal zurückgesprungen"
+
+#: staff-performer.cc:258
+msgid "remapping modulo 16"
+msgstr "modulo 16 neu zuordnen"
+
+#: slur-engraver.cc:90 phrasing-slur-engraver.cc:89
#, c-format
msgid "direction of %s invalid: %d"
msgstr "Richtung von %s ungültig: %d"
-#: slur-engraver.cc:162
+#: slur-engraver.cc:158
msgid "unterminated slur"
msgstr "unbegrenzter Legatobogen"
-#: slur-engraver.cc:174
+#: slur-engraver.cc:183
msgid "cannot end slur"
msgstr "Legatobogen kann nicht beendet werden"
-#: font-config.cc:40
+#. We already have a slur, so give a warning and completely ignore
+#. the new slur.
+#: slur-engraver.cc:200
+msgid "already have slur"
+msgstr "habe bereits einen Bogen"
+
+#: font-config.cc:39
msgid "Initializing FontConfig..."
msgstr "FontConfig wird initialisiert..."
-#: font-config.cc:55 font-config-scheme.cc:152
+#: font-config.cc:54 font-config-scheme.cc:151
#, c-format
msgid "failed adding font directory: %s"
msgstr "Schriftartverzeichnis konnte nicht hinzugefügt werden: %s"
-#: font-config.cc:57 font-config-scheme.cc:154
+#: font-config.cc:56 font-config-scheme.cc:153
#, c-format
msgid "adding font directory: %s"
msgstr "Schriftartverzeichnis wird hinzugefügt: %s"
-#: font-config.cc:61
+#: font-config.cc:60
msgid "Building font database..."
msgstr "Schriftartendatenbank erstellen..."
msgid "natural alteration glyph not found"
msgstr "Auflösungszeichen konnte nicht gefunden werden"
-#: system.cc:197
+#: system.cc:201
#, c-format
msgid "Element count %d"
msgstr "Elementanzahl %d."
-#: system.cc:303
+#: system.cc:402
#, c-format
msgid "Grob count %d"
msgstr "Anzahl der grafischen Objekte (grob): %d"
-#: slur.cc:362
+#: slur.cc:359
#, c-format
msgid "Ignoring grob for slur: %s. avoid-slur not set?"
msgstr "Grob für Legatobogen wird ignoriert: %s. avoid-slur nicht gesetzt?"
-#: font-config-scheme.cc:168
+#: font-config-scheme.cc:167
#, c-format
msgid "failed adding font file: %s"
msgstr "Schriftartdatei konnte nicht hinzugefügt werden: %s"
-#: font-config-scheme.cc:170
+#: font-config-scheme.cc:169
#, c-format
msgid "adding font file: %s"
msgstr "Schriftartdatei wird hinzugefügt: %s"
msgid "decrescendo too small"
msgstr "Decrescendo zu kurz"
-#: extender-engraver.cc:170 extender-engraver.cc:179
+#: extender-engraver.cc:169 extender-engraver.cc:178
msgid "unterminated extender"
msgstr "unbegrenzter Textunterstrich"
-#: lily-guile.cc:89
+#: lily-guile.cc:88
#, c-format
msgid "(load path: `%s')"
msgstr "(Lade-Pfad: `%s')"
-#: lily-guile.cc:437
+#: lily-guile.cc:431
#, 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:440
+#: lily-guile.cc:434
msgid "perhaps a typing error?"
msgstr "vielleicht ein Tippfehler?"
-#: lily-guile.cc:447
+#: lily-guile.cc:441
msgid "doing assignment anyway"
msgstr "Zuweisung wird trotzdem durchgeführt"
-#: lily-guile.cc:459
+#: lily-guile.cc:453
#, c-format
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"
-#: main.cc:109
+#: main.cc:107
#, 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:115
+#: main.cc:113
msgid ""
" This program is free software; you can redistribute it and/or\n"
-"modify it under the terms of the GNU General Public License version 2\n"
-"as published by the Free Software Foundation.\n"
+"modify it under the terms of the GNU General Public License as \n"
+"published by the Free Software Foundation, either version 3 of\n"
+"the License, or (at your option) any later version.\n"
"\n"
" This program is distributed in the hope that it will be useful,\n"
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
"Boston, MA 02111-1307, USA.\n"
msgstr ""
" Dieses Programm ist Freie Software; Sie können es unter den\n"
-"Bedingungen der GNU General Public License Version 2, wie von der\n"
-"Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren.\n"
+"Bedingungen der GNU General Public License, wie von der\n"
+"Free Software Foundation veröffentlicht (entweder Version 3 oder (nach eigener Vorliebe) eine spätere Version), weitergeben und/oder modifizieren.\n"
"\n"
" Dieses Programm wird herausgegeben in der Hoffnung, dass es nützlich sein wird\n"
-"Es wird jedoch KEINE GARANTIE übernommen. Selbst die\n"
+"Es wird jedoch KEINE GEWÄHRLEISTUNG übernommen. Selbst die\n"
"implizite Garantie der MARKTGÄNGIGKEIT oder TAUGLICHKEIT FÜR EINEN\n"
"BESTIMMTEN ZWECK kann nicht gewährleistet werden. Siehe GNU General Public\n"
"License für weitere Details.\n"
"Sie bitte an die Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
"Boston, MA 02111-1307, USA.\n"
-#: main.cc:146
+#: main.cc:147
msgid "SYM[=VAL]"
msgstr "SYM[=WERT]"
-#: main.cc:147
+#: main.cc:148
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:150
+#: main.cc:152
msgid "EXPR"
msgstr "AUSD"
-#: main.cc:150
+#: main.cc:152
msgid "evaluate scheme code"
msgstr "Scheme-Code auswerten"
#. Bug in option parser: --output =foe is taken as an abbreviation
#. for --output-format.
-#: main.cc:153
+#: main.cc:155
msgid "FORMATs"
msgstr "FORMATe"
-#: main.cc:153
+#: main.cc:155
msgid "dump FORMAT,... Also as separate options:"
msgstr "dump FORMAT,... Auch als separate Optionen:"
-#: main.cc:154
+#: main.cc:156
msgid "generate PDF (default)"
msgstr "PDF erzeugen (Standard)"
-#: main.cc:155
+#: main.cc:157
msgid "generate PNG"
msgstr "PNG erzeugen"
-#: main.cc:156
+#: main.cc:158
msgid "generate PostScript"
msgstr "PostScript erzeugen"
-#: main.cc:158
+#: main.cc:161
msgid "FIELD"
msgstr "FELD"
-#: main.cc:158
+#: main.cc:161
msgid ""
"dump header field FIELD to file\n"
"named BASENAME.FIELD"
msgstr "Header-Feld FELD in Datei BASISNAME.FELD schreiben"
-#: main.cc:160
+#: main.cc:164
msgid "add DIR to search path"
msgstr "VERZ zum Suchpfad hinzufügen"
-#: main.cc:161
+#: main.cc:165
msgid "use FILE as init file"
msgstr "DATEI als Anfangsdatei verwenden"
-#: main.cc:163
+#: main.cc:168
msgid "USER, GROUP, JAIL, DIR"
msgstr "BENUTZER,GRUPPE,KERKER,VERZ"
-#: main.cc:163
+#: main.cc:168
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:166
+#: main.cc:172
msgid "write output to FILE (suffix will be added)"
msgstr "Ausgabe in DATEI schreiben (Endung wird hinzugefügt)"
-#: main.cc:167
+#: main.cc:173
msgid "relocate using directory of lilypond program"
msgstr "wiederfinden mit Hilfe des Lilypond-Programmverzeichnisses"
#. Do not update the copyright years here, run `make grand-replace'
-#: main.cc:238
+#: main.cc:242
#, c-format
msgid ""
"Copyright (c) %s by\n"
"%s und anderen."
#. No version number or newline here. It confuses help2man.
-#: main.cc:265
+#: main.cc:269
#, c-format
msgid "Usage: %s [OPTION]... FILE..."
msgstr "Aufruf: %s [OPTION]... DATEI..."
-#: main.cc:267
+#: main.cc:271
msgid "Typeset music and/or produce MIDI from FILE."
msgstr "Musiksatz und/oder MIDI aus DATEI erzeugen."
-#: main.cc:269
+#: main.cc:273
msgid "LilyPond produces beautiful music notation."
msgstr "LilyPond erzeugt ansprechenden Notensatz."
-#: main.cc:271
+#: main.cc:275
#, c-format
msgid "For more information, see %s"
msgstr "Für weitere Informationen siehe %s"
-#: main.cc:273
+#: main.cc:277
msgid "Options:"
msgstr "Optionen:"
-#: main.cc:327
+#: main.cc:331
#, c-format
msgid "expected %d arguments with jail, found: %u"
msgstr "%d Argumente mit Kerker erwartet, %u gefunden"
-#: main.cc:341
+#: main.cc:345
#, c-format
msgid "no such user: %s"
msgstr "kein solcher Benutzer: %s"
-#: main.cc:343
+#: main.cc:347
#, 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:358
+#: main.cc:362
#, c-format
msgid "no such group: %s"
msgstr "keine solche Gruppe: %s"
-#: main.cc:360
+#: main.cc:364
#, 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:368
+#: main.cc:372
#, c-format
msgid "cannot chroot to: %s: %s"
msgstr "kein chroot möglich nach: %s: %s"
-#: main.cc:375
+#: main.cc:379
#, c-format
msgid "cannot change group id to: %d: %s"
msgstr "Gruppen-ID kann nicht geändert werden in: %d: %s"
-#: main.cc:381
+#: main.cc:385
#, c-format
msgid "cannot change user id to: %d: %s"
msgstr "Benutzer-ID kann nicht geändert werden in: %d: %s"
-#: main.cc:387
+#: main.cc:391
#, c-format
msgid "cannot change working directory to: %s: %s"
msgstr "aktuelles Verzeichnis kann nicht geändert werden in: %s: %s"
-#: main.cc:628
+#: main.cc:631
#, c-format
msgid "exception caught: %s"
msgstr "Ausnahme gefangen: %s"
-#: key-signature-interface.cc:78
+#: key-signature-interface.cc:77
#, c-format
msgid "No glyph found for alteration: %s"
msgstr "Kein Glyph für Vorzeichen gefunden: %s"
-#: key-signature-interface.cc:88
+#: key-signature-interface.cc:87
msgid "alteration not found"
msgstr "Alterierung nicht gefunden"
msgid "dot `%s' not found"
msgstr "Punkt »%s« nicht gefunden"
-#: translator.cc:359
+#: translator.cc:356
#, c-format
msgid "Two simultaneous %s events, junking this one"
msgstr "Zwei gleichzeitige %s-Ereignisse, dieses wird verworfen"
-#: translator.cc:360
+#: translator.cc:357
#, c-format
msgid "Previous %s event here"
msgstr "Vorheriges %s-Ereignis hier"
-#: glissando-engraver.cc:105
+#: glissando-engraver.cc:156
msgid "unterminated glissando"
msgstr "unbegrenztes Glissando."
-#: text-spanner-engraver.cc:73
+#: text-spanner-engraver.cc:72
msgid "cannot find start of text spanner"
msgstr "Anfang der Textklammer kann nicht gefunden werden"
-#: text-spanner-engraver.cc:86
+#: text-spanner-engraver.cc:85
msgid "already have a text spanner"
msgstr "Textklammer bereits vorhanden"
-#: text-spanner-engraver.cc:132
+#: text-spanner-engraver.cc:130
msgid "unterminated text spanner"
msgstr "unbegrenzte Textklammer"
msgid "strange time signature found: %d/%d"
msgstr "seltsame Taktart gefunden: %d/%d"
-#: lily-parser-scheme.cc:82
+#: lily-parser-scheme.cc:83
#, c-format
msgid "Changing working directory to: `%s'"
msgstr "Aktuelles Verzeichnis wird zu »%s« geändert"
-#: lily-parser-scheme.cc:99
+#: lily-parser-scheme.cc:100
#, c-format
msgid "cannot find init file: `%s'"
msgstr "Init-Datei kann nicht gefunden werden: »%s«"
msgid "Processing `%s'"
msgstr "»%s« wird verarbeitet"
-#: lily-parser-scheme.cc:204
+#: lily-parser-scheme.cc:203
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."
msgid "custos `%s' not found"
msgstr "Custos »%s« nicht gefunden"
-#: program-option-scheme.cc:237
+#: program-option-scheme.cc:232
#, c-format
msgid "no such internal option: %s"
msgstr "keine solche interne Option: %s"
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:160 rest-collision.cc:205
+#: rest-collision.cc:160 rest-collision.cc:275
msgid "too many colliding rests"
msgstr "zu viele kollidierende Pausen"
+#: pdf-scheme.cc:50
+#, c-format
+msgid "Conversion of string `%s' to UTF-16be failed: %s"
+msgstr "Konversion der Zeichenkette »%s« nach UTF16be fehlgeschlagen: %s"
+
#: episema-engraver.cc:75
msgid "already have an episema"
msgstr "Episema bereits vorhanden"
msgid "%d: %s"
msgstr "%d: %s"
-#: grob-property.cc:173
+#: grob-property.cc:169
#, c-format
msgid "cyclic dependency: calculation-in-progress encountered for #'%s (%s)"
msgstr "Zyklische Abhängigkeit: Laufende Verarbeitung für #'%s (%s) gefunden"
-#: relocate.cc:54
+#: relocate.cc:53
#, c-format
msgid "Setting %s to %s"
msgstr "%s wird auf %s gesetzt"
-#: relocate.cc:74
+#: relocate.cc:73
#, c-format
msgid "no such file: %s for %s"
msgstr "keine solche Datei: %s für %s"
-#: relocate.cc:84 relocate.cc:102
+#: relocate.cc:83 relocate.cc:101
#, c-format
msgid "no such directory: %s for %s"
msgstr "kein solches Verzeichnis: %s für %s"
-#: relocate.cc:94
+#: relocate.cc:93
#, c-format
msgid "%s=%s (prepend)\n"
msgstr "%s=%s (voranstellen)\n"
-#: relocate.cc:124
+#: relocate.cc:123
#, c-format
msgid "not relocating, no %s/ or current/ found under %s"
msgstr "keine Verlagerung, kein %s/ oder current/ unter %s gefunden"
-#: relocate.cc:135
+#: relocate.cc:134
#, c-format
msgid "Relocation: compile datadir=%s, new datadir=%s"
msgstr "Verlagerung: Kompilier-Datenverzeichnis=%s, neues Datenverzeichnis=%s"
-#: relocate.cc:148
+#: relocate.cc:147
#, c-format
msgid "Relocation: framework_prefix=%s"
msgstr "Verlagerung: framework_prefix=%s"
-#: relocate.cc:189
+#: relocate.cc:188
#, c-format
msgid "Relocation: is absolute: argv0=%s"
msgstr "Verlagerung: ist absolut: argv0=%s"
-#: relocate.cc:196
+#: relocate.cc:195
#, c-format
msgid "Relocation: from cwd: argv0=%s"
msgstr "Verlagerung: von cwd: argv0=%s"
-#: relocate.cc:213
+#: relocate.cc:212
#, c-format
msgid ""
"Relocation: from PATH=%s\n"
"Verlagerung: von PATH=%s\n"
"argv0=%s"
-#: relocate.cc:240
+#: relocate.cc:239
msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR"
msgstr "LILYPONDPREFIX is veraltet, stattdessen LILYPOND_DATADIR verwenden"
-#: relocate.cc:367
+#: relocate.cc:365
#, c-format
msgid "Relocation file: %s"
msgstr "Verlagerungsdatei: %s"
-#: relocate.cc:373 source-file.cc:65
+#: relocate.cc:371 source-file.cc:65
#, c-format
msgid "cannot open file: `%s'"
msgstr "Datei kann nicht geöffnet werden: »%s«"
-#: relocate.cc:403
+#: relocate.cc:401
#, c-format
msgid "Unknown relocation command %s"
msgstr "Unbekannter Verlagerungsbefehl %s"
+#: gregorian-ligature-engraver.cc:70
+#, c-format
+msgid "\\%s ignored"
+msgstr "\\%s ignoriert"
+
+#: gregorian-ligature-engraver.cc:75
+#, c-format
+msgid "implied \\%s added"
+msgstr "implizites \\%s hinzugefügt"
+
+#. ligature may not start with 2nd head of pes or flexa
+#: gregorian-ligature-engraver.cc:224
+msgid "cannot apply `\\~' on first head of ligature"
+msgstr "»\\~« kann nicht auf erste Note der Ligatur angewendet werden"
+
+#. (pitch == prev_pitch)
+#: gregorian-ligature-engraver.cc:236
+msgid "cannot apply `\\~' on heads with identical pitch"
+msgstr "»\\~« kann nicht auf Noten mit gleicher Tonhöhe angewendet werden"
+
#: translator-group.cc:188
#, c-format
msgid "cannot find: `%s'"
msgid "unterminated phrasing slur"
msgstr "nicht beendeter Phrasierungsbogen"
-#: lyric-engraver.cc:176
+#: phrasing-slur-engraver.cc:182
+msgid "cannot end phrasing slur"
+msgstr "Phrasierungsbogen kann nicht beendet werden"
+
+#: phrasing-slur-engraver.cc:196
+msgid "already have phrasing slur"
+msgstr "habe bereits einen Phrasierungsbogen"
+
+#: lyric-engraver.cc:186
msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
msgstr "Textsilbe hat keine Note. \\lyricsto oder associatedVoice verwenden."
-#: page-breaking.cc:248
+#: page-breaking.cc:274
msgid "ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set"
msgstr "ignoriere min-systems-per-page und max-systems-per-page weil systems-per-page definiert wurde"
-#: page-breaking.cc:253
+#: page-breaking.cc:279
msgid "min-systems-per-page is larger than max-systems-per-page, ignoring both values"
msgstr "min-systems-per-page ist größer als max-systems-per-page, beide Werte werden ignoriert"
-#: performance.cc:54
+#: performance.cc:55
msgid "Track..."
msgstr "Spur..."
-#: performance.cc:83
-msgid "MIDI channel wrapped around"
-msgstr "MIDI-Kanal zurückgesprungen"
-
-#: performance.cc:84
-msgid "remapping modulo 16"
-msgstr "modulo 16 neu zuordnen"
-
-#: performance.cc:111
+#: performance.cc:85
#, c-format
msgid "MIDI output to `%s'..."
msgstr "MIDI-Ausgabe nach »%s«..."
msgid "No tuplet to end"
msgstr "Keine rhythmische Gruppe zu beenden"
-#: gregorian-ligature-engraver.cc:70
-#, c-format
-msgid "\\%s ignored"
-msgstr "\\%s ignoriert"
-
-#: gregorian-ligature-engraver.cc:75
-#, c-format
-msgid "implied \\%s added"
-msgstr "implizites \\%s hinzugefügt"
-
-#. ligature may not start with 2nd head of pes or flexa
-#: gregorian-ligature-engraver.cc:224
-msgid "cannot apply `\\~' on first head of ligature"
-msgstr "»\\~« kann nicht auf erste Note der Ligatur angewendet werden"
-
-#. (pitch == prev_pitch)
-#: gregorian-ligature-engraver.cc:236
-msgid "cannot apply `\\~' on heads with identical pitch"
-msgstr "»\\~« kann nicht auf Noten mit gleicher Tonhöhe angewendet werden"
-
#: chord-tremolo-engraver.cc:88
msgid "No tremolo to end"
msgstr "Kein Tremolo zu beenden"
msgid "expected to read %d characters, got %d"
msgstr "%d Zeichen erwartet, %d erhalten"
-#: axis-group-interface.cc:631
+#: axis-group-interface.cc:627
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«"
-#: coherent-ligature-engraver.cc:111
+#: coherent-ligature-engraver.cc:110
#, c-format
msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul"
msgstr "Coherent_ligature_engraver: setze »spacing-increment=0.01«: ptr=%ul"
-#: percent-repeat-engraver.cc:148
+#: percent-repeat-engraver.cc:147
msgid "unterminated percent repeat"
msgstr "unbegrenzte Prozentwiederholung"
-#: note-head.cc:76
+#: note-head.cc:75
#, c-format
msgid "none of note heads `%s' or `%s' found"
msgstr "Keinen der Notenköpfe »%s« und »%s« gefunden"
msgid " scheme encoding: "
msgstr " Scheme-Kodierung: "
-#: all-font-metrics.cc:156
+#: all-font-metrics.cc:153
#, c-format
msgid "cannot find font: `%s'"
msgstr "Schriftart kann nicht gefunden werden: »%s«"
-#: property-iterator.cc:85
+#: property-iterator.cc:93
#, c-format
msgid "not a grob name, `%s'"
msgstr "Kein Name für grafische Objekte (grob): »%s«"
msgid "barcheck failed at: %s"
msgstr "Taktüberprüfung gescheitert bei: %s"
-#: stem.cc:116
+#: stem.cc:114
msgid "weird stem size, check for narrow beams"
msgstr "Eigenartige Notenhalslänge; auf enge Balken überprüfen"
-#: stem.cc:657
+#: stem.cc:652
#, c-format
msgid "flag `%s' not found"
msgstr "Fähnchen »%s« nicht gefunden"
-#: stem.cc:673
+#: stem.cc:668
#, c-format
msgid "flag stroke `%s' not found"
msgstr "Fähnchenstrich »%s« nicht gefunden"
msgid "\tprevious break: %d"
msgstr "\tvorheriger Umbruch: %d"
-#: lily-parser.cc:106
+#: lily-parser.cc:105
msgid "Parsing..."
msgstr "Analysieren..."
-#: lily-parser.cc:134
+#: lily-parser.cc:133
msgid "braces do not match"
msgstr "Klammern passen nicht zueinander"
-#: score.cc:178
+#: score.cc:176
msgid "already have music in score"
msgstr "es sind bereits Noten in der Partitur"
-#: score.cc:179
+#: score.cc:177
msgid "this is the previous music"
msgstr "Dies sind die vorhergehenden Noten"
-#: score.cc:184
+#: score.cc:182
msgid "errors found, ignoring music expression"
msgstr "Fehler gefunden, musikalischer Ausdruck wird ignoriert"
msgid "FreeType error: %s"
msgstr "FreeType-Fehler: %s"
-#: open-type-font.cc:111
+#: open-type-font.cc:110
#, c-format
msgid "unsupported font format: %s"
msgstr "nicht unterstütztes Schriftartformat: %s"
-#: open-type-font.cc:113
+#: open-type-font.cc:112
#, c-format
msgid "error reading font file %s: %s"
msgstr "Fehler beim Lesen der Schriftartdatei: %s: %s"
-#: open-type-font.cc:188
+#: open-type-font.cc:187
#, c-format
msgid "FT_Get_Glyph_Name () Freetype error: %s"
msgstr "FT_Get_Glyph_Name() Freetype-Fehler: %s"
msgid "cannot write to file: `%s'"
msgstr "Es kann nicht in Datei geschrieben werden: »%s«"
-#: parser.yy:820
+#: parser.yy:825
msgid "\\paper cannot be used in \\score, use \\layout instead"
msgstr "\\paper kann nicht in \\source verwendet werden; stattdessen \\layout verwenden"
-#: parser.yy:844
+#: parser.yy:849
msgid "need \\paper for paper block"
msgstr "Für Papier-Block wird \\paper benötigt"
-#: parser.yy:1363
+#: parser.yy:1369
msgid "only \\consists takes non-string argument."
msgstr "nur \\consists versteht ein Nicht-Zeichenketten-Argument"
-#: parser.yy:1376
+#: parser.yy:1382
msgid "Grob name should be alphanumeric"
msgstr "Grob-Name sollte alphanumerisch sein"
-#: parser.yy:1685
+#: parser.yy:1697
msgid "second argument must be pitch list"
msgstr "zweites Argument muss eine Tonhöhenliste sein"
-#: parser.yy:1716 parser.yy:1721 parser.yy:2194
+#: parser.yy:1728 parser.yy:1733 parser.yy:2206
msgid "have to be in Lyric mode for lyrics"
msgstr "muss in Liedtextmodus sein um Liedtext setzen zu können"
-#: parser.yy:1818
+#: parser.yy:1830
msgid "expecting string as script definition"
msgstr "Zeichenkette als Skriptdefinition erwartet"
-#: parser.yy:1973 parser.yy:2024
+#: parser.yy:1985 parser.yy:2036
#, c-format
msgid "not a duration: %d"
msgstr "keine gültige Dauer: %d"
-#: parser.yy:2148
+#: parser.yy:2160
msgid "have to be in Note mode for notes"
msgstr "Muss im Notenmodus sein für Noten"
-#: parser.yy:2209
+#: parser.yy:2221
msgid "have to be in Chord mode for chords"
msgstr "Muss im Akkordmodus sein für Akkorde"
-#: lexer.ll:190
+#: lexer.ll:192
msgid "stray UTF-8 BOM encountered"
msgstr "verirrtes UTF-8 BOM gefunden"
-#: lexer.ll:194
+#: lexer.ll:196
msgid "Skipping UTF-8 BOM"
msgstr "UTF-8 BOM wird übersprungen"
-#: lexer.ll:249
+#: lexer.ll:251
#, c-format
msgid "Renaming input to: `%s'"
msgstr "Eingabe in »%s« umbenannt"
-#: lexer.ll:266
+#: lexer.ll:268
msgid "quoted string expected after \\version"
msgstr "zitierte Zeichenkette hinter \\version erwartet"
-#: lexer.ll:270
+#: lexer.ll:272
msgid "quoted string expected after \\sourcefilename"
msgstr "zitierte Zeichenkette hinter \\sourcefilename erwartet"
-#: lexer.ll:274
+#: lexer.ll:276
msgid "integer expected after \\sourcefileline"
msgstr "Ganzzahl hinter \\sourcefilename erwartet"
-#: lexer.ll:287
+#: lexer.ll:289
msgid "EOF found inside a comment"
msgstr "EOF innerhalb eines Kommentares gefunden"
-#: lexer.ll:302
+#: lexer.ll:304
msgid "\\maininput not allowed outside init files"
msgstr "\\maininput ist außerhalb von Init-Dateien nicht erlaubt"
-#: lexer.ll:326
+#: lexer.ll:328
#, c-format
msgid "wrong or undefined identifier: `%s'"
msgstr "falscher oder ungültiger Bezeichner: »%s«"
#. backup rule
-#: lexer.ll:335
+#: lexer.ll:337
msgid "end quote missing"
msgstr "schließendes Anführungszeichen fehlt"
-#: lexer.ll:485
+#: lexer.ll:487
msgid "Brace found at end of lyric. Did you forget a space?"
msgstr "Klammer am Ende von Liedtext gefunden. Haben Sie ein Leerzeichen vergessen?"
-#: lexer.ll:595
+#: lexer.ll:597
msgid "Brace found at end of markup. Did you forget a space?"
msgstr "Klammer am Ende des Auszugs gefunden. Haben Sie ein Leerzeichen vergessen?"
-#: lexer.ll:699
+#: lexer.ll:701
#, c-format
msgid "invalid character: `%c'"
msgstr "Ungültiges Zeichen: »%c«"
-#: lexer.ll:814 lexer.ll:815
+#: lexer.ll:822 lexer.ll:823
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr "Ungültige Fluchtsequenz: »\\%s«"
-#: lexer.ll:924 lexer.ll:925
+#: lexer.ll:932 lexer.ll:933
#, c-format
msgid "file too old: %s (oldest supported: %s)"
msgstr "Datei zu alt: %s (älteste unterstützte: %s)"
-#: lexer.ll:925 lexer.ll:926
+#: lexer.ll:933 lexer.ll:934
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:931 lexer.ll:932
+#: lexer.ll:939 lexer.ll:940
#, c-format
msgid "program too old: %s (file requires: %s)"
msgstr "Programm zu alt: %s (Datei erfordert: %s)"
msgid "Writing ~S..."
msgstr "~S wird geschrieben..."
-#: documentation-lib.scm:198
+#: documentation-lib.scm:184
+#, scheme-format
+msgid "cannot find description for property `~S' (~S)"
+msgstr "Beschreibung für Eigenschaft ~S' (~S) kann nicht gefunden werden"
+
+#: documentation-lib.scm:205
#, scheme-format
msgid "cannot find description for property ~S (~S)"
msgstr "Beschreibung für Eigenschaft ~S (~S) kann nicht gefunden werden"
msgid "symbol ~S redefined"
msgstr "Symbol ~S redefiniert"
-#: paper.scm:115
+#: paper.scm:117
msgid "set-global-staff-size: not in toplevel scope"
msgstr "set-global-staff-size: Nicht auf höchster Ebene im Gültigkeitsbereich"
-#: paper.scm:296
+#: paper.scm:301
#, scheme-format
msgid "This is not a \\layout {} object, ~S"
msgstr "Dies ist kein \\layout {} Objekt, ~S"
-#: paper.scm:308
+#: paper.scm:313
#, 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:323
+#: paper.scm:328
msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
msgstr "#(set-paper-size ..) muss innerhalb von \\paper { ... } verwendet werden"
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
msgstr "falscher Typ für Argument ~a; ~a erwartet, ~s gefunden"
-#: lily.scm:716
+#: lily.scm:710
msgid "Compilation successfully completed"
msgstr "Kompilation erfolgreich beendet"
-#: lily.scm:717
+#: lily.scm:711
msgid "Compilation completed with warnings or errors"
msgstr "Kompilation mit Warnungen bzw. Fehlermeldungen beendet"
-#: lily.scm:779
+#: lily.scm:773
#, scheme-format
msgid "job ~a terminated with signal: ~a"
msgstr "Auftrag ~a mit Signal ~a beendet"
-#: lily.scm:782
+#: lily.scm:776
#, scheme-format
msgid ""
"logfile ~a (exit ~a):\n"
"Logdatei ~a (Ende ~a):\n"
"~a"
-#: lily.scm:804 lily.scm:882
+#: lily.scm:798 lily.scm:876
#, scheme-format
msgid "failed files: ~S"
msgstr "gescheiterte Dateien: ~S"
-#: lily.scm:873
+#: lily.scm:867
#, scheme-format
msgid "Redirecting output to ~a..."
msgstr "Ausgabeumleitung nach ~a..."
-#: lily.scm:892
+#: lily.scm:886
#, scheme-format
msgid "Invoking `~a'...\n"
msgstr "»~a« wird aufgerufen...\n"
msgid "Found infinity or nan in output. Substituting 0.0"
msgstr "Unendlich oder nan in Ausgabe gefunden. Wird durch 0.0 ersetzt"
-#: output-ps.scm:289 output-svg.scm:550
+#: output-ps.scm:299 output-svg.scm:550
#, scheme-format
msgid "unknown line-cap-style: ~S"
msgstr "unbekannter line-cap-style: ~S"
-#: output-ps.scm:294 output-svg.scm:556
+#: output-ps.scm:304 output-svg.scm:556
#, scheme-format
msgid "unknown line-join-style: ~S"
msgstr "unbekannter line-join-style: ~S"
msgid "Could not find language `~a'. Ignoring."
msgstr "Konnte Sprache »~a« nicht finden. Wird ignoriert."
-#: define-music-types.scm:740
+#: define-music-types.scm:747
#, scheme-format
msgid "symbol expected: ~S"
msgstr "Symbol erwartet: ~S"
-#: define-music-types.scm:743
+#: define-music-types.scm:750
#, scheme-format
msgid "cannot find music object: ~S"
msgstr "Musikobjekt kann nicht gefunden werden: ~S"
-#: define-music-types.scm:762
+#: define-music-types.scm:769
#, scheme-format
msgid "unknown repeat type `~S'"
msgstr "unbekannter Wiederholungstyp »~S«"
-#: define-music-types.scm:763
+#: define-music-types.scm:770
msgid "See define-music-types.scm for supported repeats"
msgstr "Siehe define-music-types.scm für unterstützte Wiederholungen"
-#: translation-functions.scm:341
+#: translation-functions.scm:350
#, scheme-format
msgid "Negative fret for pitch ~a on string ~a"
msgstr "Negativer Bund für Tonhöhe ~a auf Saite ~a"
-#: translation-functions.scm:385
+#: translation-functions.scm:401
#, scheme-format
msgid "No open string for pitch ~a"
msgstr "Keine leere Saite für Tonhöhe ~a"
-#: translation-functions.scm:400
+#: translation-functions.scm:416 translation-functions.scm:428
#, scheme-format
msgid "Requested string for pitch requires negative fret: string ~a pitch ~a"
msgstr "Geforderte Saite für Tonhöhe erfordert negativen Bund: Saite ~a Tonhöhe ~a"
-#: translation-functions.scm:401
-msgid "Ignoring string request."
-msgstr "Saiten-Anforderung wird ignoriert."
+#: translation-functions.scm:419
+msgid "Ignoring string request and recalculating."
+msgstr "Saiten-Anforderung wird ignoriert und neu berechnet"
+
+#: translation-functions.scm:431
+msgid "Ignoring note in tablature."
+msgstr "Note in der Tabulatur wird ignoriert."
-#: translation-functions.scm:414
+#: translation-functions.scm:454
#, scheme-format
msgid "No string for pitch ~a (given frets ~a)"
msgstr "Keine Saite für Tonhöhe ~a (Bund ~a angegeben)"
-#: translation-functions.scm:515
+#: translation-functions.scm:559
#, scheme-format
msgid ""
"No label for fret ~a (on string ~a);\n"
msgid "do not know how to embed font ~s ~s ~s"
msgstr "Unbekannte Schriftsatzeinbettung ~s ~s ~s"
-#: framework-ps.scm:669
+#: framework-ps.scm:686
msgid ""
"\n"
"The PostScript backend does not support the\n"
msgid "invalid tremolo repeat count: ~a"
msgstr "ungültige Tremolo-Wiederholung: ~a"
-#: music-functions.scm:618
+#: music-functions.scm:619
#, scheme-format
msgid "music expected: ~S"
msgstr "Musik erwartet: ~S"
msgid "Bar check failed. Expect to be at ~a, instead at ~a"
msgstr "Taktüberprüfung gescheitert. bei ~a erwartet, stattdessen bei ~a"
-#: music-functions.scm:846
+#: music-functions.scm:845
#, scheme-format
msgid "cannot find quoted music: `~S'"
msgstr "zitierte Musik »~S« kann nicht gefunden werden"
-#: music-functions.scm:982
+#: music-functions.scm:979
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:1037
+#: music-functions.scm:1039
#, scheme-format
msgid "Unknown octaveness type: ~S "
msgstr "Unbekannter Oktaven-Typ: »~S«"
-#: music-functions.scm:1038
+#: music-functions.scm:1040
msgid "Defaulting to 'any-octave."
msgstr "Setze Standard 'any-octave"
msgid "~a exited with status: ~S"
msgstr "~a mit Rückgabewert ~S beendet"
-#: define-markup-commands.scm:803
+#: define-markup-commands.scm:883
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:2404
+#: define-markup-commands.scm:2561
#, scheme-format
msgid "Cannot find glyph ~a"
msgstr "Kann kein Zeichen ~a finden"
-#: define-markup-commands.scm:2830
+#: define-markup-commands.scm:2987
#, scheme-format
msgid "no brace found for point size ~S "
msgstr "Keine Klammer in Größe ~S pt gefunden"
-#: define-markup-commands.scm:2831
+#: define-markup-commands.scm:2988
#, scheme-format
msgid "defaulting to ~S pt"
msgstr "Setze Standard ~S pt"
-#: define-markup-commands.scm:2984
+#: define-markup-commands.scm:3141
#, scheme-format
msgid "not a valid duration string: ~a"
msgstr "keine gültige Dauer: ~a"
-# translation of lilypond-2.13.53.po to Español
+# translation of lilypond-2.15.9.po to Español
# Spanish translation of GNU Lilypond - http://lilypond.org
# Copyright (C) 2002, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
#
# This file is distributed under the same license as the lilypond package.
msgid ""
msgstr ""
-"Project-Id-Version: lilypond-2.13.53\n"
+"Project-Id-Version: lilypond-2.15.9\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2011-03-02 10:34+0100\n"
-"PO-Revision-Date: 2011-03-03 15:03+0100\n"
+"POT-Creation-Date: 2011-08-02 19:43+0200\n"
+"PO-Revision-Date: 2011-08-11 17:38+0200\n"
"Last-Translator: Francisco Vila <francisco.vila@hispalinux.es>\n"
"Language-Team: Spanish <es@li.org>\n"
"Language: es\n"
msgid "%s has been replaced by %s"
msgstr "%s se ha sustituido por %s"
-#: convertrules.py:24 lilylib.py:78 musicexp.py:17 convert-ly.py:64 warn.cc:66
-#: input.cc:109
+#: convertrules.py:24 lilylib.py:85 musicexp.py:17 convert-ly.py:64 warn.cc:66
+#: input.cc:108
#, c-format, python-format
msgid "warning: %s"
msgstr "advertencia: %s"
#: convertrules.py:86 convertrules.py:1905 convertrules.py:2084
#: convertrules.py:2236 convertrules.py:2566 convertrules.py:2862
+#: convertrules.py:3206
msgid "bump version for release"
msgstr "actualizar la versión para el lanzamiento"
msgid "woodwind-diagrams. Clarinet fingering changed to reflect actual anatomy of instrument.\n"
msgstr "Diagramas de viento madera: se cambia la digitación del clarinete para que refleje la anatomía real del instrumento.\n"
+#: convertrules.py:3211
+msgid "Change in internal property for MultiMeasureRest"
+msgstr "Cambio en propiedad interna de MultiMeasureRest"
+
+#: convertrules.py:3214
+msgid "use-breve-rest. This internal property has been replaced by round-to-longer-rest and usable-duration-logs.\n"
+msgstr "use-breve-rest. Esta propiedad interna se ha sustituido por round-to-longer-rest y usable-duration-logs.\n"
+
+#: convertrules.py:3219
+msgid "Handling of non-automatic footnotes."
+msgstr "Manejo de notas al pie no automáticas."
+
+#: convertrules.py:3223
+msgid "If you are using non-automatic footnotes, make sure to set footnote-auto-numbering = ##f in the paper block.\n"
+msgstr "Si está utilizando notas al pie no automáticas, asegúrese de establecer footnote-auto-numbering = ##f en el bloque paper.\n"
+
#: book_base.py:24
#, python-format
msgid "file not found: %s"
msgid "Output function not implemented"
msgstr "Función de salida sin implementar"
-#: lilylib.py:81 musicxml.py:13 convert-ly.py:67 warn.cc:72 input.cc:115
-#: input.cc:123
+#: lilylib.py:88 musicxml.py:13 convert-ly.py:67 warn.cc:72 input.cc:114
+#: input.cc:122
#, c-format, python-format
msgid "error: %s"
msgstr "error: %s"
-#: lilylib.py:124 lilylib.py:175
+#: lilylib.py:131
+#, python-format
+msgid "Processing %s.ly"
+msgstr "Procesando «%s.ly»"
+
+#: lilylib.py:135 lilylib.py:198
#, python-format
msgid "Invoking `%s'"
msgstr "Invocando «%s»"
-#: lilylib.py:126 lilylib.py:177
+#: lilylib.py:137 lilylib.py:200
#, python-format
msgid "Running %s..."
msgstr "Ejecutando %s..."
-#: lilylib.py:253
+#: lilylib.py:276
#, python-format
msgid "Usage: %s"
msgstr "uso: %s"
msgid "cannot find \\begin{document} in LaTeX document"
msgstr "no se encuentra \\begin{document} en el documento de LaTeX"
-#: musicxml2ly.py:223
+#: musicxml2ly.py:224
#, python-format
msgid "Encountered file created by %s, containing wrong beaming information. All beaming information in the MusicXML file will be ignored"
msgstr "Se encontró un archivo creado por %s, que contiene información de barrado errónea. Toda la información de barrado del archivo MusicXML se ignorará"
-#: musicxml2ly.py:239 musicxml2ly.py:241
+#: musicxml2ly.py:240 musicxml2ly.py:242
#, python-format
msgid "Unprocessed PartGroupInfo %s encountered"
msgstr "Se ha encontrado el PartGroupInfo sin procesar %s"
-#: musicxml2ly.py:494
+#: musicxml2ly.py:495
#, python-format
msgid "Encountered note at %s without type and duration (=%s)"
msgstr "Se ha encontrado una nota en %s sin typo y duración (=%s)"
-#: musicxml2ly.py:514
+#: musicxml2ly.py:515
#, python-format
msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration"
msgstr "Se ha encontrado una duración racional con denominador %s, no se puede convertir a duracion de lilypond"
-#: musicxml2ly.py:761
+#: musicxml2ly.py:762
msgid "Unable to extract key signature!"
msgstr "¡No se ha podido extraer la armadura de la tonalidad!"
-#: musicxml2ly.py:788
+#: musicxml2ly.py:789
#, python-format
msgid "unknown mode %s, expecting 'major' or 'minor' or a church mode!"
msgstr "¡Modo %s desconocido, se esperaba «major», «minor» o un modo eclesiástico!"
-#: musicxml2ly.py:926
+#: musicxml2ly.py:927
#, python-format
msgid "Encountered unprocessed marker %s\n"
msgstr "Se ha encontrado el marcador sin procesar %s\n"
-#: musicxml2ly.py:1020
+#: musicxml2ly.py:1021
#, python-format
msgid "unknown span event %s"
msgstr "evento de extensión %s desconocido"
-#: musicxml2ly.py:1030
+#: musicxml2ly.py:1031
#, python-format
msgid "unknown span type %s for %s"
msgstr "tipo de extensión %s deconocido para %s"
-#: musicxml2ly.py:1450
+#: musicxml2ly.py:1451
msgid "Unknown metronome mark, ignoring"
msgstr "Marca de metrónomo desconocida, se ignora"
#. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1455
+#: musicxml2ly.py:1456
msgid "Metronome marks with complex relations (<metronome-note> in MusicXML) are not yet implemented."
msgstr "Las marcas metronómicas con relaciones complejas (<metronome-note> en MusicXML) no se encuentran implementadas aún."
-#: musicxml2ly.py:1657
+#: musicxml2ly.py:1658
#, python-format
msgid "Unable to convert chord type %s to lilypond."
msgstr "No se pudo convertir el acorde de tipo %s a lilypond."
-#: musicxml2ly.py:1806
+#: musicxml2ly.py:1807
#, python-format
msgid "drum %s type unknown, please add to instrument_drumtype_dict"
msgstr "tipo de percusión %s desconocido, añádalo al diccionario instrument_drumtype_dict"
-#: musicxml2ly.py:1810
+#: musicxml2ly.py:1811
msgid "cannot find suitable event"
msgstr "no se encuentra un evento adecuado"
-#: musicxml2ly.py:1958
+#: musicxml2ly.py:1959
#, python-format
msgid "Negative skip %s (from position %s to %s)"
msgstr "Desplazamiento negativo %s (desde la posición %s hasta la %s)"
-#: musicxml2ly.py:2099
+#: musicxml2ly.py:2100
#, python-format
msgid "Negative skip found: from %s to %s, difference is %s"
msgstr "Se ha encontrado un desplazamiento negativo: desde %s hasta %s, la diferencia es %s"
-#: musicxml2ly.py:2180
+#: musicxml2ly.py:2181
#, python-format
msgid "unexpected %s; expected %s or %s or %s"
msgstr "%s inesperado; se esperaba %s o %s o %s"
-#: musicxml2ly.py:2286
+#: musicxml2ly.py:2287
msgid "Encountered closing slur, but no slur is open"
msgstr "Se ha encontrado el cierre de una ligadura de expresión, pero no hay ninguna abierta"
-#: musicxml2ly.py:2289
+#: musicxml2ly.py:2290
msgid "Cannot have two simultaneous (closing) slurs"
msgstr "No puede haber dos ligaduras de expresión (cerrándose) simultáneas"
-#: musicxml2ly.py:2298
+#: musicxml2ly.py:2299
msgid "Cannot have a slur inside another slur"
msgstr "No puede haber una ligadura de expresión dentro de otra"
-#: musicxml2ly.py:2301
+#: musicxml2ly.py:2302
msgid "Cannot have two simultaneous slurs"
msgstr "No puede haber dos ligaduras de expresión simultáneas"
-#: musicxml2ly.py:2435
+#: musicxml2ly.py:2436
#, python-format
msgid "cannot simultaneously have more than one mode: %s"
msgstr "no puede haber más de un modo al mismo tiempo: %s"
-#: musicxml2ly.py:2543
+#: musicxml2ly.py:2544
msgid "Converting to LilyPond expressions..."
msgstr "Conversión a expresiones de LilyPond..."
-#: musicxml2ly.py:2554
+#: musicxml2ly.py:2555
msgid "musicxml2ly [OPTION]... FILE.xml"
msgstr "musicxml2ly [OPCIÓN]... ARCHIVO.xml"
-#: musicxml2ly.py:2556
+#: musicxml2ly.py:2557
msgid ""
"Convert MusicXML from FILE.xml to LilyPond input.\n"
"If the given filename is -, musicxml2ly reads from the command line.\n"
"Convertir MusicXML desde ARCHIVO.xml a entrada de LilyPond.\n"
"SI el nombre de archivo aportado es -, musicxml2ly lee de la línea de órdenes.\n"
-#: musicxml2ly.py:2562 midi2ly.py:987 abc2ly.py:1386 lilypond-book.py:140
-#: convert-ly.py:98 etf2ly.py:1202 main.cc:157
+#: musicxml2ly.py:2563 midi2ly.py:1060 abc2ly.py:1386 lilypond-book.py:140
+#: convert-ly.py:98 etf2ly.py:1202 main.cc:159
msgid "show this help and exit"
msgstr "mostrar esta ayuda y salir"
-#: musicxml2ly.py:2566
+#: musicxml2ly.py:2567
msgid ""
"Copyright (c) 2005--2011 by\n"
" Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
" Jan Nieuwenhuizen <janneke@gnu.org> y\n"
" Reinhold Kainhofer <reinhold@kainhofer.com>\n"
-#: musicxml2ly.py:2580 midi2ly.py:1015 abc2ly.py:1382 lilypond-book.py:212
-#: convert-ly.py:94 etf2ly.py:1206 main.cc:168
+#: musicxml2ly.py:2581 midi2ly.py:1091 abc2ly.py:1382 lilypond-book.py:217
+#: convert-ly.py:94 etf2ly.py:1206 main.cc:174
msgid "show version number and exit"
msgstr "mostrar el número de versión y salir"
-#: musicxml2ly.py:2585 midi2ly.py:1009 lilypond-book.py:204 main.cc:169
+#: musicxml2ly.py:2586 midi2ly.py:1085 lilypond-book.py:209 main.cc:175
msgid "be verbose"
msgstr "ser prolijo"
-#: musicxml2ly.py:2591
+#: musicxml2ly.py:2592
msgid "use lxml.etree; uses less memory and cpu time"
msgstr "usar lxml.etree; utiliza menos memoria y tiempo de procesador"
-#: musicxml2ly.py:2597
+#: musicxml2ly.py:2598
msgid "input file is a zip-compressed MusicXML file"
msgstr "el archivo de entrada es un archivo MusicXML comprimido en zip"
-#: musicxml2ly.py:2603
+#: musicxml2ly.py:2604
msgid "convert pitches in relative mode (default)"
msgstr "convertir las notas al modo relativo (por omisión)"
-#: musicxml2ly.py:2608
+#: musicxml2ly.py:2609
msgid "convert pitches in absolute mode"
msgstr "convertir las notas al modo absoluto"
-#: musicxml2ly.py:2611
+#: musicxml2ly.py:2612
msgid "LANG"
msgstr "IDIOMA"
-#: musicxml2ly.py:2613
+#: musicxml2ly.py:2614
msgid "use LANG for pitch names, e.g. 'deutsch' for note names in German"
msgstr "usar IDIOMA para los nombres de las notas, p.ej. 'espanol' para los nombres de las notas en español"
-#: musicxml2ly.py:2619
+#: musicxml2ly.py:2620
msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
msgstr "no convertir las direcciones (^, _ o -) para las articulaciones, expresiones de dinámica, etc."
-#: musicxml2ly.py:2625
+#: musicxml2ly.py:2626
msgid "do not convert exact vertical positions of rests"
msgstr "no convertir las posiciones verticales exactas de los silencios"
-#: musicxml2ly.py:2631
+#: musicxml2ly.py:2632
msgid "do not convert the exact page layout and breaks"
msgstr "no convertir la disposición y saltos de página exactos"
-#: musicxml2ly.py:2637
+#: musicxml2ly.py:2638
msgid "do not convert beaming information, use lilypond's automatic beaming instead"
msgstr "no convertir la información de barrado, en vez de ello utilizar el barrado automático de lilypond"
-#: musicxml2ly.py:2640 midi2ly.py:992 midi2ly.py:997 etf2ly.py:1208
-#: main.cc:161 main.cc:166
+#: musicxml2ly.py:2641 midi2ly.py:1065 midi2ly.py:1070 etf2ly.py:1208
+#: main.cc:165 main.cc:172
msgid "FILE"
msgstr "ARCHIVO"
-#: musicxml2ly.py:2645
+#: musicxml2ly.py:2646
msgid "set output filename to FILE, stdout if -"
msgstr "establecer el nombre del archivo de salida a ARCHIVO, y a la salida estándar si es -"
#. "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"
-#: musicxml2ly.py:2648 midi2ly.py:1028 abc2ly.py:1395 lilypond-book.py:234
-#: convert-ly.py:144 etf2ly.py:1216 main.cc:281
+#: musicxml2ly.py:2649 midi2ly.py:1104 abc2ly.py:1395 lilypond-book.py:239
+#: convert-ly.py:144 etf2ly.py:1216 main.cc:285
#, c-format, python-format
msgid "Report bugs via %s"
msgstr ""
"Informe de los fallos en español a http://lists.gnu.org/mailman/listinfo/lilypond-es\n"
"o en inglés a %s"
-#: musicxml2ly.py:2728
+#: musicxml2ly.py:2729
#, python-format
msgid "unknown part in part-list: %s"
msgstr "parte desconocida en la lista part-list: %s"
-#: musicxml2ly.py:2790
+#: musicxml2ly.py:2791
msgid "Input is compressed, extracting raw MusicXML data from stdin"
msgstr "El archivo de entrada está comprimido, extrayendo los datos de MusicXML en bruto a partir de la entrada estándar"
-#: musicxml2ly.py:2793
+#: musicxml2ly.py:2804
#, python-format
msgid "Input file %s is compressed, extracting raw MusicXML data"
msgstr "El archivo de entrada %s está comprimido, extrayendo los datos de MusicXML en bruto"
-#: musicxml2ly.py:2823
+#: musicxml2ly.py:2834
msgid "Reading MusicXML from Standard input ..."
msgstr "Leyendo MusicXML desde la entrada estándar..."
-#: musicxml2ly.py:2825
+#: musicxml2ly.py:2836
#, python-format
msgid "Reading MusicXML from %s ..."
msgstr "Leyendo MusicXML desde %s ..."
-#: musicxml2ly.py:2858
+#: musicxml2ly.py:2869
#, python-format
msgid "Output to `%s'"
msgstr "La salida se dirige hacia `%s'"
-#: musicxml2ly.py:2925
+#: musicxml2ly.py:2936
#, python-format
msgid "Unable to find input file %s"
msgstr "No se encuentra el archivo de entrada %s"
-#: midi2ly.py:90 lilypond-book.py:116 convert-ly.py:81 etf2ly.py:1189
+#: midi2ly.py:81 lilypond-book.py:116 convert-ly.py:81 etf2ly.py:1189
#, python-format
msgid "Copyright (c) %s by"
msgstr "Copyright (c) %s por"
-#: midi2ly.py:92 lilypond-book.py:118 convert-ly.py:83 etf2ly.py:1191
+#: midi2ly.py:83 lilypond-book.py:118 convert-ly.py:83 etf2ly.py:1191
msgid "Distributed under terms of the GNU General Public License."
msgstr "Distribuido bajo los términos de la Licencia Pública General de GNU."
-#: midi2ly.py:93 lilypond-book.py:119 convert-ly.py:84 etf2ly.py:1192
+#: midi2ly.py:84 lilypond-book.py:119 convert-ly.py:84 etf2ly.py:1192
msgid "It comes with NO WARRANTY."
msgstr "Se distribuye SIN NINGUNA GARANTÍA."
-#: midi2ly.py:99
+#: midi2ly.py:90
msgid "warning: "
msgstr "advertencia: "
-#: midi2ly.py:102 midi2ly.py:1041
+#: midi2ly.py:93 midi2ly.py:1121
msgid "error: "
msgstr "error: "
-#: midi2ly.py:103
+#: midi2ly.py:94
msgid "Exiting... "
msgstr "Saliendo... "
-#: midi2ly.py:960
+#: midi2ly.py:834
+msgid "found more than 5 voices on a staff, expect bad output"
+msgstr "se han encontrado más de 5 voces en una sola pauta, es de esperar un resultado defectuoso"
+
+#: midi2ly.py:1030
#, python-format
msgid "%s output to `%s'..."
msgstr "salida de %s hacia «%s»..."
-#: midi2ly.py:972 abc2ly.py:1373 lilypond-book.py:122 convert-ly.py:87
+#: midi2ly.py:1042 abc2ly.py:1373 lilypond-book.py:122 convert-ly.py:87
#, python-format
msgid "%s [OPTION]... FILE"
msgstr "%s [OPCIÓN]... ARCHIVO"
-#: midi2ly.py:973
+#: midi2ly.py:1043
#, python-format
msgid "Convert %s to LilyPond input.\n"
msgstr "Convertir %s a entrada de LilyPond.\n"
-#: midi2ly.py:978
+#: midi2ly.py:1048
msgid "print absolute pitches"
msgstr "mostrar las alturas absolutas"
-#: midi2ly.py:980 midi2ly.py:1002
+#: midi2ly.py:1050 midi2ly.py:1075
msgid "DUR"
msgstr "DURACIÓN"
-#: midi2ly.py:981
+#: midi2ly.py:1051
msgid "quantise note durations on DUR"
msgstr "cuantizar las duraciones de las notas sobre DURACIÓN"
-#: midi2ly.py:984
+#: midi2ly.py:1054
+msgid "debug printing"
+msgstr "impresión de depuración"
+
+#: midi2ly.py:1057
msgid "print explicit durations"
msgstr "mostrar las duraciones explícitas"
-#: midi2ly.py:989
+#: midi2ly.py:1062
msgid "prepend FILE to output"
msgstr "anteponer AARCHIVO a la salida"
-#: midi2ly.py:993
+#: midi2ly.py:1066
msgid "set key: ALT=+sharps|-flats; MINOR=1"
msgstr "establecer la tonalidad: ALT=+sostenidos|-bemoles; MENOR=1"
-#: midi2ly.py:994
+#: midi2ly.py:1067
msgid "ALT[:MINOR]"
msgstr "ALT[:MENOR]"
-#: midi2ly.py:996 abc2ly.py:1388 etf2ly.py:1207
+#: midi2ly.py:1069 abc2ly.py:1388 etf2ly.py:1207
msgid "write output to FILE"
msgstr "escribir la salida en el ARCHIVO"
-#: midi2ly.py:999
+#: midi2ly.py:1072
msgid "preview of first 4 bars"
msgstr "vista previa de los cuatro primeros compases"
-#: midi2ly.py:1001
+#: midi2ly.py:1074
msgid "quantise note starts on DUR"
msgstr "cuantizar los comienzos de las notras sobre DURACIÓN"
-#: midi2ly.py:1004
+#: midi2ly.py:1078
+msgid "use s instead of r for rests"
+msgstr "use s en lugar de r para silencios"
+
+#: midi2ly.py:1080
msgid "DUR*NUM/DEN"
msgstr "DURACIÓN*NUMERADOR/DENOMINADOR"
-#: midi2ly.py:1007
+#: midi2ly.py:1083
msgid "allow tuplet durations DUR*NUM/DEN"
msgstr "permitir duraciones de grupos irregulares DURACIÓN*NUMERADOR/DENOMINADOR"
-#: midi2ly.py:1016 lilypond-book.py:215 convert-ly.py:139 etf2ly.py:1210
-#: main.cc:170
+#: midi2ly.py:1092 lilypond-book.py:220 convert-ly.py:139 etf2ly.py:1210
+#: main.cc:176
msgid "show warranty and copyright"
msgstr "mostrar los avisos de garantía y de copyright"
-#: midi2ly.py:1019
+#: midi2ly.py:1095
msgid "treat every text as a lyric"
msgstr "tratar todos los textos como letra"
-#: midi2ly.py:1022
+#: midi2ly.py:1098
msgid "Examples"
msgstr "Ejemplos"
-#: midi2ly.py:1042
+#: midi2ly.py:1122
msgid "no files specified on command line."
msgstr "no se ha especificado ningún archivo en la línea de órdenes."
msgstr "añadir DIRECTORIO a la ruta de inclusión"
#: lilypond-book.py:143 lilypond-book.py:150 lilypond-book.py:163
-#: lilypond-book.py:173 lilypond-book.py:189 lilypond-book.py:195 main.cc:160
+#: lilypond-book.py:173 lilypond-book.py:194 lilypond-book.py:200 main.cc:164
msgid "DIR"
msgstr "DIRECTORIO"
msgid "process ly_files using COMMAND FILE..."
msgstr "procesar ly_files utilizando INSTRUCCIÓN ARCHIVO..."
-#: lilypond-book.py:182
+#: lilypond-book.py:183
+msgid "Redirect the lilypond output"
+msgstr "Redirigir la salida de lilypond"
+
+#: lilypond-book.py:187
msgid "Compile snippets in safe mode"
msgstr "Compilar los fragmentos de código en modo seguro"
-#: lilypond-book.py:188
+#: lilypond-book.py:193
msgid "do not fail if no lilypond output is found"
msgstr "no fracasar si no se encuentra ninguna salida de lilypond"
-#: lilypond-book.py:194
+#: lilypond-book.py:199
msgid "do not fail if no PNG images are found for EPS files"
msgstr "no fracasar si no se encuentra ninguna imagen PNG para los archivos EPS"
-#: lilypond-book.py:200
+#: lilypond-book.py:205
msgid "write snippet output files with the same base name as their source file"
msgstr "escribir los archivos de salida de los fragmentos de código con el mismo nombra de base que su archivo fuente"
-#: lilypond-book.py:220
+#: lilypond-book.py:225
msgid ""
"run executable PROG instead of latex, or in\n"
"case --pdf option is set instead of pdflatex"
"ejecutar PROG en lugar de latex, o en caso de que\n"
"esté seleccionada la opción --pdf, en lugar de pdflatex"
-#: lilypond-book.py:222
+#: lilypond-book.py:227
msgid "PROG"
msgstr "PROGRAMA"
-#: lilypond-book.py:228
+#: lilypond-book.py:233
msgid "create PDF files for use with PDFTeX"
msgstr "crear archivos PDF para su utilización con PDFTeX"
-#: lilypond-book.py:419
+#: lilypond-book.py:428
msgid "Writing snippets..."
msgstr "Escribiendo fragmentos..."
-#: lilypond-book.py:425
+#: lilypond-book.py:434
msgid "Processing..."
msgstr "Procesando..."
-#: lilypond-book.py:431
+#: lilypond-book.py:440
msgid "All snippets are up to date..."
msgstr "Todos los fragmentos están actualizados..."
-#: lilypond-book.py:452
+#: lilypond-book.py:461
#, python-format
msgid "cannot determine format for: %s"
msgstr "no se puede determinar el formato de: %s"
-#: lilypond-book.py:461
+#: lilypond-book.py:470
#, python-format
msgid "%s is up to date."
msgstr "%s está actualizado."
-#: lilypond-book.py:475
+#: lilypond-book.py:484
#, python-format
msgid "Writing `%s'..."
msgstr "Escribiendo «%s»..."
-#: lilypond-book.py:537
+#: lilypond-book.py:546
msgid "Output would overwrite input file; use --output."
msgstr "La salida sobreescribiría el archivo de entrada; utilice --output."
-#: lilypond-book.py:541
+#: lilypond-book.py:550
#, python-format
msgid "Reading %s..."
msgstr "Leyendo %s..."
-#: lilypond-book.py:549
+#: lilypond-book.py:558
msgid "Dissecting..."
msgstr "Diseccionando..."
-#: lilypond-book.py:561
+#: lilypond-book.py:570
#, python-format
msgid "Compiling %s..."
msgstr "Compilando %s..."
-#: lilypond-book.py:570
+#: lilypond-book.py:579
#, python-format
msgid "Processing include: %s"
msgstr "Procesando el archivo de inclusión: %s"
-#: lilypond-book.py:582
+#: lilypond-book.py:591
#, python-format
msgid "Removing `%s'"
msgstr "Suprimiendo «%s»"
msgid "success: %s"
msgstr "finalizado correctamente: %s"
-#: warn.cc:86 grob.cc:617 input.cc:97
+#: warn.cc:86 grob.cc:613 input.cc:97
#, c-format
msgid "programming error: %s"
msgstr "error de programación: %s"
msgid "Vaticana_ligature: zero join (delta_pitch == 0)"
msgstr "Vaticana_ligature: unión nula (delta_pitch == 0)"
-#: parse-scm.cc:101
+#: parse-scm.cc:100
msgid "GUILE signaled an error for the expression beginning here"
msgstr "GUILE ha señalado un error para la expresión que comienza aquí"
msgstr "la cabeza rítmica no es parte de una columna rítmica"
#. if we get to here, just put everything on one line
-#: constrained-breaking.cc:189 constrained-breaking.cc:207
+#: constrained-breaking.cc:187 constrained-breaking.cc:205
msgid "cannot find line breaking that satisfies constraints"
msgstr "no se ecnuentra un salto de línea que cumpla las restricciones"
-#: horizontal-bracket-engraver.cc:78
+#: horizontal-bracket-engraver.cc:62
msgid "do not have that many brackets"
msgstr "no tiene tantos corchetes"
-#: horizontal-bracket-engraver.cc:87
+#: horizontal-bracket-engraver.cc:71
msgid "conflicting note group events"
msgstr "eventos de grupo de notas en conflicto"
msgid "unterminated hyphen; removing"
msgstr "guión separador sin terminar; se suprime"
-#: pango-font.cc:187 open-type-font.cc:319
+#: pango-font.cc:189 open-type-font.cc:318
#, c-format
msgid "FT_Get_Glyph_Name () error: %s"
msgstr "error en FT_Get_Glyph_Name (): %s"
-#: pango-font.cc:204
+#: pango-font.cc:205
#, c-format
msgid ""
"Glyph has no name, but font supports glyph naming.\n"
"El glifo no tiene nombre, pero la tipografía soporta nombres de glifo.\n"
"Se salta el glifo U+%0X, archivo %s"
-#: pango-font.cc:241
+#: pango-font.cc:242
#, c-format
msgid "no PostScript font name for font `%s'"
msgstr "no hay un nombre de tipografía PostScript para «%s»"
-#: pango-font.cc:290
+#: pango-font.cc:291
msgid "FreeType face has no PostScript font name"
msgstr "El tipo FreeType no tiene un nombre de tipografía PostScript"
-#: midi-item.cc:92
+#: midi-item.cc:89
#, c-format
msgid "no such MIDI instrument: `%s'"
msgstr "no existe este instrumento MIDI: «%s»"
msgid "NoteEvent without pitch"
msgstr "NoteEvent sin altura"
-#: rest.cc:159
+#: rest.cc:160
#, c-format
msgid "rest `%s' not found"
msgstr "no se ha encontrado el silencio «%s»"
msgid "unterminated beam"
msgstr "barra sin terminar"
-#: beam-engraver.cc:266 chord-tremolo-engraver.cc:150
+#: beam-engraver.cc:266 chord-tremolo-engraver.cc:149
msgid "stem must have Rhythmic structure"
msgstr "la plica debe tener estructura rítmica"
msgid "beam was started here"
msgstr "la barra comenzó aquí"
-#: music-iterator.cc:182
+#: music-iterator.cc:181
msgid "Sending non-event to context"
msgstr "Enviando elemento que no es un evento a un contexto"
-#: context.cc:149
+#: context.cc:148
#, c-format
msgid "cannot find or create new `%s'"
msgstr "no se encuentra o no se puede crear un «%s» nuevo"
-#: context.cc:207
+#: context.cc:206
#, c-format
msgid "cannot find or create `%s' called `%s'"
msgstr "no se encuentra o no se puede crear «%s» llamado «%s»"
-#: context.cc:269
+#: context.cc:268
#, c-format
msgid "Invalid CreateContext event: Cannot create %s context"
msgstr "evento CreateContext inválido: No se puede crear el contexto %s"
-#: context.cc:400
+#: context.cc:399
#, c-format
msgid "cannot find or create: `%s'"
msgstr "no se encuentra o no se puede crear «%s»"
msgid "forced break was overridden by some other event, should you be using bar checks?"
msgstr "el salto forzado ha sido sobreestablecido por algún otro evento, ¿quizá deba usar comprobaciones de compás?"
-#: tie-engraver.cc:116
+#: tie-engraver.cc:117
msgid "unterminated tie"
msgstr "ligadura de unión sin terminar"
-#: tie-engraver.cc:312
+#: tie-engraver.cc:348
msgid "lonely tie"
msgstr "ligadura de unión solitaria"
"la penúltima nota debe ser otra breve,\n"
"o la ligadura debe ser LB o SSB"
-#: mensural-ligature-engraver.cc:386
+#: mensural-ligature-engraver.cc:387
msgid "unexpected case fall-through"
msgstr "opción de caso por defecto inesperada"
-#: piano-pedal-engraver.cc:298
+#: piano-pedal-engraver.cc:296
#, c-format
msgid "expect 3 strings for piano pedals, found: %ld"
msgstr "se eseperaban 3 cadenas para los pedales de piano, se han encontrado: %ld"
-#: piano-pedal-engraver.cc:313 piano-pedal-engraver.cc:324
+#: piano-pedal-engraver.cc:311 piano-pedal-engraver.cc:322
#: piano-pedal-performer.cc:104
#, c-format
msgid "cannot find start of piano pedal: `%s'"
msgstr "no se encuentra el comienzo del pedal de piano «%s»"
-#: piano-pedal-engraver.cc:359
+#: piano-pedal-engraver.cc:357
#, c-format
msgid "cannot find start of piano pedal bracket: `%s'"
msgstr "no se encuentra el comienzo del corchete de pedal de piano «%s»"
-#: input.cc:131 source-file.cc:179 source-file.cc:194
+#: input.cc:130 source-file.cc:178 source-file.cc:193
msgid "position unknown"
msgstr "posición desconocida"
msgid "Layout output to `%s'..."
msgstr "Salida de la página hacia «%s»..."
-#: general-scheme.cc:306
+#: general-scheme.cc:305
msgid "infinity or NaN encountered while converting Real number"
msgstr "se ha encontrado infinito o NaN durante la conversión de un número Real"
-#: general-scheme.cc:307
+#: general-scheme.cc:306
msgid "setting to zero"
msgstr "estableciendo al valor cero"
-#: general-scheme.cc:543
+#: general-scheme.cc:540
msgid "Found infinity or nan in output. Substituting 0.0"
msgstr "Se ha encontrado Infinito o NaN en la salida. Se sustituye por 0.0"
-#: music.cc:151
+#: music.cc:150
#, c-format
msgid "octave check failed; expected \"%s\", found: \"%s\""
msgstr "fallo en la comprobación de octava; se esperaba \"%s\", se ha encontrado: \"%s\""
-#: music.cc:219
+#: music.cc:218
msgid "(normalized pitch)"
msgstr "(altura normalizada)"
-#: music.cc:223
+#: music.cc:222
#, c-format
msgid "Transposing %s by %s makes alteration larger than double"
msgstr "La transposición de %s en %s produce una alteración más que doble"
msgid "trying to use \\partial after the start of a piece"
msgstr "intento de utilizar \\partial después del inicio de la pieza"
-#: new-fingering-engraver.cc:106
+#: new-fingering-engraver.cc:105
msgid "cannot add text scripts to individual note heads"
msgstr "no se pueden añadir guiones de texto a cabezas de nota individuales"
-#: new-fingering-engraver.cc:250
+#: new-fingering-engraver.cc:249
msgid "no placement found for fingerings"
msgstr "no se ha encontrado ninguna ubicación válida para las digitaciones"
-#: new-fingering-engraver.cc:251
+#: new-fingering-engraver.cc:250
msgid "placing below"
msgstr "se coloca debajo"
msgstr "no hay límite izquierdo"
# ligature...?
-#: ligature-engraver.cc:185
+#: ligature-engraver.cc:184
msgid "unterminated ligature"
msgstr "ligadura sin terminar"
-#: ligature-engraver.cc:214
+#: ligature-engraver.cc:211
msgid "ignoring rest: ligature may not contain rest"
msgstr "se ignora el silencio: la ligadura no puede contener silencios"
-#: ligature-engraver.cc:215
+#: ligature-engraver.cc:212
msgid "ligature was started here"
msgstr "la ligadura comenzó aquí"
msgid "cannot change, already in translator: %s"
msgstr "no se puede cambiar, ya está dentro del traductor: %s"
-#: accidental-engraver.cc:180
+#: accidental-engraver.cc:179
#, c-format
msgid "accidental typesetting list must begin with context-name: %s"
msgstr "la lista de tippografiado de alteraciones accidentales debe comenzar con context-name: %s"
-#: accidental-engraver.cc:210
+#: accidental-engraver.cc:209
#, c-format
msgid "procedure or context-name expected for accidental rule, found %s"
msgstr "se esperaba un procedimiento o un nombre de contexto para la regla de alteración accidental, se ha encontrado %s"
-#: ttf.cc:481 ttf.cc:530
+#: ttf.cc:480 ttf.cc:529
#, c-format
msgid "font index %d too large for font `%s', using index 0"
msgstr "índice de fuente tipográfica %d demasiado grande para la tipografía `%s', se usa el índice 0"
-#: ttf.cc:513 ttf.cc:565
+#: ttf.cc:512 ttf.cc:564
msgid "font index must be non-negative, using index 0"
msgstr "el índice de la fuente tipográfica debe ser no negativo, se usa el índice 0"
-#: break-alignment-interface.cc:206
+#: break-alignment-interface.cc:199
#, c-format
msgid "No spacing entry from %s to `%s'"
msgstr "no hay un elemento de espaciado desde %s hasta «%s»"
msgid "Aborting"
msgstr "Se detiene la ejecución"
-#: note-collision.cc:497
+#: note-collision.cc:494
msgid "ignoring too many clashing note columns"
msgstr "demasiadas columnas de notas que chocan entre sí; se ignoran"
msgid "giving up"
msgstr "abandonando"
-#: page-layout-problem.cc:322
+#: page-layout-problem.cc:603
msgid "cannot fit music on page: ragged-spacing was requested, but page was compressed"
msgstr "la música no cabe en la página: se ha solicitado la no justificación del espaciado, pero la página ha resultado comprimida"
-#: page-layout-problem.cc:325
+#: page-layout-problem.cc:606
#, c-format
msgid "cannot fit music on page: overflow is %f"
msgstr "la música no cabe en la página: el exceso es %f"
-#: page-layout-problem.cc:327
+#: page-layout-problem.cc:608
msgid "compressing music to fit"
msgstr "comprimiendo la música para que quepa"
-#: page-layout-problem.cc:765
+#: page-layout-problem.cc:1047
msgid "staff-affinities should only decrease"
msgstr "staff-affinities solo debe disminuir"
msgid "mark label must be a markup object"
msgstr "la etiqueta de marcado debe ser un objeto de marcado"
-#: new-dynamic-engraver.cc:142
+#: new-dynamic-engraver.cc:168
#, c-format
msgid ""
"unknown crescendo style: %s\n"
"estilo de crescendo desconocido: %s\n"
"se toma regulador como predeterminado."
-#: new-dynamic-engraver.cc:200
+#: new-dynamic-engraver.cc:233
#, c-format
msgid "unterminated %s"
msgstr "%s sin terminar"
-#: stem-engraver.cc:103
+#: stem-engraver.cc:102
msgid "tremolo duration is too long"
msgstr "la duración del trémolo es demasiado larga"
-#. FIXME:
-#: stem-engraver.cc:140
+#: stem-engraver.cc:154
#, c-format
-msgid "adding note head to incompatible stem (type = %d)"
-msgstr "añadiendo cabeza de nota a una plica incompatible (tipo = %d)"
+msgid "adding note head to incompatible stem (type = %d/%d)"
+msgstr "añadiendo cabeza de nota a una plica incompatible (tipo = %d/%d)"
-#: stem-engraver.cc:142
+#: stem-engraver.cc:157
msgid "maybe input should specify polyphonic voices"
msgstr "quizá la entrada debiera especificar voces polifónicas"
-#: lily-lexer.cc:264
+#: lily-lexer.cc:265
msgid "include files are not allowed in safe mode"
msgstr "no se permiten los archivos de inclusión en el modo seguro"
-#: lily-lexer.cc:291
+#: lily-lexer.cc:292
#, c-format
msgid "identifier name is a keyword: `%s'"
msgstr "el nombre del identificativo es una palabra clave: «%s»"
-#: lily-lexer.cc:312
+#: lily-lexer.cc:313
#, c-format
msgid "error at EOF: %s"
msgstr "error al final del archivo (EOF): %s"
msgid "cannot find Voice `%s'"
msgstr "no se encuentra la Voz «%s»"
-#: includable-lexer.cc:71 lily-guile.cc:87 lily-parser-scheme.cc:109
+#: includable-lexer.cc:71 lily-guile.cc:86 lily-parser-scheme.cc:109
#, c-format
msgid "cannot find file: `%s'"
msgstr "no se encuentra el archivo: «%s»"
-#: includable-lexer.cc:73 lily-parser-scheme.cc:100
+#: includable-lexer.cc:73 lily-parser-scheme.cc:101
#, c-format
msgid "(search path: `%s')"
msgstr "(ruta de búsqueda: «%s»)"
msgstr "se suprime la barra sin plicas"
#. We are completely screwed.
-#: beam.cc:1274
+#: beam.cc:1350
msgid "no viable initial configuration found: may not find good beam slope"
msgstr "no se ha encontrado ninguna configuración inicial viable; puede que no se encuentre una buena inclinación de las barras"
-#: slur-engraver.cc:93
+#: staff-performer.cc:257
+msgid "MIDI channel wrapped around"
+msgstr "ha dado la vuelta el número de canal MIDI"
+
+#: staff-performer.cc:258
+msgid "remapping modulo 16"
+msgstr "se reasigna módulo 16"
+
+#: slur-engraver.cc:90 phrasing-slur-engraver.cc:89
#, c-format
msgid "direction of %s invalid: %d"
msgstr "dirección inválida de %s: %d"
-#: slur-engraver.cc:162
+#: slur-engraver.cc:158
msgid "unterminated slur"
msgstr "ligadura de expresión sin terminar"
-#: slur-engraver.cc:174
+#: slur-engraver.cc:183
msgid "cannot end slur"
msgstr "no se puede terminar la ligadura de expresión"
-#: font-config.cc:40
+#. We already have a slur, so give a warning and completely ignore
+#. the new slur.
+#: slur-engraver.cc:200
+msgid "already have slur"
+msgstr "ya tiene una ligadura de expresión"
+
+#: font-config.cc:39
msgid "Initializing FontConfig..."
msgstr "Inicializando FontConfig..."
-#: font-config.cc:55 font-config-scheme.cc:152
+#: font-config.cc:54 font-config-scheme.cc:151
#, c-format
msgid "failed adding font directory: %s"
msgstr "fallo al añadir la carpeta de tipografías: %s"
-#: font-config.cc:57 font-config-scheme.cc:154
+#: font-config.cc:56 font-config-scheme.cc:153
#, c-format
msgid "adding font directory: %s"
msgstr "añadiendo carpeta de tipografías: %s"
-#: font-config.cc:61
+#: font-config.cc:60
msgid "Building font database..."
msgstr "Construyendo la base de datos de fuentes tipográficas..."
msgid "natural alteration glyph not found"
msgstr "no se encuentra el glifo del símbolo de becuadro"
-#: system.cc:197
+#: system.cc:201
#, c-format
msgid "Element count %d"
msgstr "Número total de elementos %d"
-#: system.cc:303
+#: system.cc:402
#, c-format
msgid "Grob count %d"
msgstr "Número de objetos gráficos: %d"
-#: slur.cc:362
+#: slur.cc:359
#, c-format
msgid "Ignoring grob for slur: %s. avoid-slur not set?"
msgstr "Se ignora el objeto gráfico para la ligadura: %s. ¿No está establecido avoid-slur?"
-#: font-config-scheme.cc:168
+#: font-config-scheme.cc:167
#, c-format
msgid "failed adding font file: %s"
msgstr "fallo al añadir el archivo de fuente tipográfica: %s"
-#: font-config-scheme.cc:170
+#: font-config-scheme.cc:169
#, c-format
msgid "adding font file: %s"
msgstr "añadiendo archivo de fuente tipográfica: %s"
msgid "decrescendo too small"
msgstr "decrescendo demasiado pequeño"
-#: extender-engraver.cc:170 extender-engraver.cc:179
+#: extender-engraver.cc:169 extender-engraver.cc:178
msgid "unterminated extender"
msgstr "prolongación sin terminar"
-#: lily-guile.cc:89
+#: lily-guile.cc:88
#, c-format
msgid "(load path: `%s')"
msgstr "(ruta de carga: «%s»)"
-#: lily-guile.cc:437
+#: lily-guile.cc:431
#, c-format
msgid "cannot find property type-check for `%s' (%s)."
msgstr "no se encuentra la comprobación de tipo de propiedad para «%s» (%s)."
-#: lily-guile.cc:440
+#: lily-guile.cc:434
msgid "perhaps a typing error?"
msgstr "¿quizá es un error de tecleo?"
-#: lily-guile.cc:447
+#: lily-guile.cc:441
msgid "doing assignment anyway"
msgstr "se hace la asignación de todas formas"
-#: lily-guile.cc:459
+#: lily-guile.cc:453
#, c-format
msgid "type check for `%s' failed; value `%s' must be of type `%s'"
msgstr "ha fallado la comprobación de tipo para «%s»; el valor «%s» debe ser del tipo «%s»"
-#: main.cc:109
+#: main.cc:107
#, c-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"él bajo ciertas condiciones. Invóquelo como `%s --warranty' para obtener\n"
"más información.\n"
-#: main.cc:115
+#: main.cc:113
msgid ""
" This program is free software; you can redistribute it and/or\n"
-"modify it under the terms of the GNU General Public License version 2\n"
-"as published by the Free Software Foundation.\n"
+"modify it under the terms of the GNU General Public License as \n"
+"published by the Free Software Foundation, either version 3 of\n"
+"the License, or (at your option) any later version.\n"
"\n"
" This program is distributed in the hope that it will be useful,\n"
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
"Boston, MA 02111-1307, USA.\n"
msgstr ""
" This program is free software; you can redistribute it and/or\n"
-"modify it under the terms of the GNU General Public License version 2\n"
-"as published by the Free Software Foundation.\n"
+"modify it under the terms of the GNU General Public License as \n"
+"published by the Free Software Foundation, either version 3 of\n"
+"the License, or (at your option) any later version.\n"
"\n"
" This program is distributed in the hope that it will be useful,\n"
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
"Boston, MA 02111-1307, USA.\n"
"\n"
" Este programa es software libre; puede redistribuirlo y/o\n"
-"modificarlo bajo los términos de la versión 2 de la Licencia Pública\n"
-"General de GNU tal y como está publicada por la Free Software Foundation.\n"
+"modificarlo bajo los términos de la Licencia Pública General\n"
+"de GNU tal y como está publicada por la Free Software\n"
+"Foundation, en su versión 3 o (según lo desee) a cualquier\n"
+"versión posterior.\n"
"\n"
" Este programa se distribuye con la esperanza de que resulte útil,\n"
"pero SIN NINGUNA GARANTÍA; ni siquiera con la garantía MERCANTIL\n"
-"ni de CONVENIENCIA PARA UN PROPÓSITO PARTICULAR implícitas\n"
-"Consulte la Licencia Pública General de GNU para ver más detalles\n"
-" Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha sido así, escriba a la Free Software Foundation, Inc.,\n"
-"59 Temple Place - Suite 330,\n"
-"Boston, MA 02111-1307, USA.\n"
+"ni de CONVENIENCIA PARA UN PROPÓSITO PARTICULAR implícitas.\n"
+"Consulte la Licencia Pública General de GNU para ver más detalles.\n"
+"\n"
+" Debería haber recibido una copia de la\n"
+"Licencia Pública General junto con este programa. Si no ha sido así,\n"
+"escriba a la Free Software Foundation, Inc.,\n"
+"59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
-#: main.cc:146
+#: main.cc:147
msgid "SYM[=VAL]"
msgstr "SÍMBOLO[=VALOR]"
-#: main.cc:147
+#: main.cc:148
msgid ""
"set Scheme option SYM to VAL (default: #t).\n"
"Use -dhelp for help."
"establecer la opción de Scheme SÍMBOLO a VALOR (por omisión: #t).\n"
"Use -dhelp para obtener ayuda."
-#: main.cc:150
+#: main.cc:152
msgid "EXPR"
msgstr "EXPRESIÓN"
-#: main.cc:150
+#: main.cc:152
msgid "evaluate scheme code"
msgstr "evaluar código de Scheme"
#. Bug in option parser: --output =foe is taken as an abbreviation
#. for --output-format.
-#: main.cc:153
+#: main.cc:155
msgid "FORMATs"
msgstr "FORMATOs"
-#: main.cc:153
+#: main.cc:155
msgid "dump FORMAT,... Also as separate options:"
msgstr "volcar FORMATO,... También como opciones separadas:"
-#: main.cc:154
+#: main.cc:156
msgid "generate PDF (default)"
msgstr "generar un PDF (predeterminado)"
-#: main.cc:155
+#: main.cc:157
msgid "generate PNG"
msgstr "generar un PNG"
-#: main.cc:156
+#: main.cc:158
msgid "generate PostScript"
msgstr "generar un PostScript"
-#: main.cc:158
+#: main.cc:161
msgid "FIELD"
msgstr "CAMPO"
-#: main.cc:158
+#: main.cc:161
msgid ""
"dump header field FIELD to file\n"
"named BASENAME.FIELD"
"volcar el campo de cabecera CAMPO a un archivo\n"
"llamado NOMBRE_BASE.CAMPO"
-#: main.cc:160
+#: main.cc:164
msgid "add DIR to search path"
msgstr "añadir DIRECTORIO a la ruta de búsqueda"
-#: main.cc:161
+#: main.cc:165
msgid "use FILE as init file"
msgstr "usar ARCHIVO como archivo de inicialización"
-#: main.cc:163
+#: main.cc:168
msgid "USER, GROUP, JAIL, DIR"
msgstr "USUARIO, GRUPO, JAULA, DIRECTORIO"
-#: main.cc:163
+#: main.cc:168
msgid ""
"chroot to JAIL, become USER:GROUP\n"
"and cd into DIR"
"chroot a JAULA, convertirse en USUARIO:GRUPO\n"
"y cd al DIRECTORIO"
-#: main.cc:166
+#: main.cc:172
msgid "write output to FILE (suffix will be added)"
msgstr "escribir la salida en el ARCHIVO (se añadirá el sufijo)"
-#: main.cc:167
+#: main.cc:173
msgid "relocate using directory of lilypond program"
msgstr "relocalizar utilizando el directorio del programa lilypond"
#. Do not update the copyright years here, run `make grand-replace'
-#: main.cc:238
+#: main.cc:242
#, c-format
msgid ""
"Copyright (c) %s by\n"
"%s y otros."
#. No version number or newline here. It confuses help2man.
-#: main.cc:265
+#: main.cc:269
#, c-format
msgid "Usage: %s [OPTION]... FILE..."
msgstr "Uso: %s [OPCIÓN]... ARCHIVO..."
-#: main.cc:267
+#: main.cc:271
msgid "Typeset music and/or produce MIDI from FILE."
msgstr "Componer tipográficamente la música y/o producir MIDI a partir de ARCHIVO."
-#: main.cc:269
+#: main.cc:273
msgid "LilyPond produces beautiful music notation."
msgstr "LilyPond produce una notación musical bella y hermosa."
-#: main.cc:271
+#: main.cc:275
#, c-format
msgid "For more information, see %s"
msgstr "Para ver más información, consulte %s"
-#: main.cc:273
+#: main.cc:277
msgid "Options:"
msgstr "Opciones:"
-#: main.cc:327
+#: main.cc:331
#, c-format
msgid "expected %d arguments with jail, found: %u"
msgstr "se esperaban %d argumentos con la jaula, se han encontrado: %u"
-#: main.cc:341
+#: main.cc:345
#, c-format
msgid "no such user: %s"
msgstr "no existe el usuario %s"
-#: main.cc:343
+#: main.cc:347
#, c-format
msgid "cannot get user id from user name: %s: %s"
msgstr "no se puede obtener el identificador de usuario a partir del nombre: %s: %s"
-#: main.cc:358
+#: main.cc:362
#, c-format
msgid "no such group: %s"
msgstr "no existe este grupo: %s"
-#: main.cc:360
+#: main.cc:364
#, c-format
msgid "cannot get group id from group name: %s: %s"
msgstr "no se puede obtener el id de grupo a partir del nombre: %s: %s"
-#: main.cc:368
+#: main.cc:372
#, c-format
msgid "cannot chroot to: %s: %s"
msgstr "no se puede hacer chroot a: %s: %s"
-#: main.cc:375
+#: main.cc:379
#, c-format
msgid "cannot change group id to: %d: %s"
msgstr "no se puede cambiar el grupo del usuario a %d: %s"
-#: main.cc:381
+#: main.cc:385
#, c-format
msgid "cannot change user id to: %d: %s"
msgstr "no se puede cambiar el identificador de usuario a %d: %s"
-#: main.cc:387
+#: main.cc:391
#, c-format
msgid "cannot change working directory to: %s: %s"
msgstr "no se puede cambiar el directorio de trabajo a: %s: %s"
-#: main.cc:628
+#: main.cc:631
#, c-format
msgid "exception caught: %s"
msgstr "se ha capturado una excepción: %s"
-#: key-signature-interface.cc:78
+#: key-signature-interface.cc:77
#, c-format
msgid "No glyph found for alteration: %s"
msgstr "No se ha encontrado ningún glifo para la alteración: %s"
-#: key-signature-interface.cc:88
+#: key-signature-interface.cc:87
msgid "alteration not found"
msgstr "no se encuentra la alteración"
msgid "dot `%s' not found"
msgstr "no se encuentra el puntillo «%s»"
-#: translator.cc:359
+#: translator.cc:356
#, c-format
msgid "Two simultaneous %s events, junking this one"
msgstr "Dos eventos %s simultáneos, se recorta éste"
-#: translator.cc:360
+#: translator.cc:357
#, c-format
msgid "Previous %s event here"
msgstr "El evento %s previo está aquí"
-#: glissando-engraver.cc:105
+#: glissando-engraver.cc:156
msgid "unterminated glissando"
msgstr "glissando sin terminar"
-#: text-spanner-engraver.cc:73
+#: text-spanner-engraver.cc:72
msgid "cannot find start of text spanner"
msgstr "no se encuentra el principio del trazador de texto"
-#: text-spanner-engraver.cc:86
+#: text-spanner-engraver.cc:85
msgid "already have a text spanner"
msgstr "ya hay un trazador de texto"
-#: text-spanner-engraver.cc:132
+#: text-spanner-engraver.cc:130
msgid "unterminated text spanner"
msgstr "trazador de texto sin terminar"
msgid "strange time signature found: %d/%d"
msgstr "se ha encontrado una indicación extraña de compás: %d/%d"
-#: lily-parser-scheme.cc:82
+#: lily-parser-scheme.cc:83
#, c-format
msgid "Changing working directory to: `%s'"
msgstr "Se cambia el directorio de trabajo a: «%s»"
-#: lily-parser-scheme.cc:99
+#: lily-parser-scheme.cc:100
#, c-format
msgid "cannot find init file: `%s'"
msgstr "no se encuentra el archivo de inicio: «%s»"
msgid "Processing `%s'"
msgstr "Procesando «%s»"
-#: lily-parser-scheme.cc:204
+#: lily-parser-scheme.cc:203
msgid "ly:parser-parse-string is only valid with a new parser. Use ly:parser-include-string instead."
msgstr "ly:parser-parse-string sólo es válido con un analizador nuevo. Use en su lugar ly:parser-include-string."
msgid "custos `%s' not found"
msgstr "no se encuentran los custos «%s»"
-#: program-option-scheme.cc:237
+#: program-option-scheme.cc:232
#, c-format
msgid "no such internal option: %s"
msgstr "no existe la opción interna %s"
msgid "cannot resolve rest collision: rest direction not set"
msgstr "no se puede resolver la colisión de los silencios: la dirección de los silencios no se ha establecido"
-#: rest-collision.cc:160 rest-collision.cc:205
+#: rest-collision.cc:160 rest-collision.cc:275
msgid "too many colliding rests"
msgstr "demasiados silencios en colisión"
+#: pdf-scheme.cc:50
+#, c-format
+msgid "Conversion of string `%s' to UTF-16be failed: %s"
+msgstr "La conversión de la cadena `%s' a UTF-16be ha fallado: %s"
+
#: episema-engraver.cc:75
msgid "already have an episema"
msgstr "ya tiene un episema"
msgid "%d: %s"
msgstr "%d: %s"
-#: grob-property.cc:173
+#: grob-property.cc:169
#, c-format
msgid "cyclic dependency: calculation-in-progress encountered for #'%s (%s)"
msgstr "dependencia cíclica: se ha encontrado calculation-in-progress para #'%s (%s)"
-#: relocate.cc:54
+#: relocate.cc:53
#, c-format
msgid "Setting %s to %s"
msgstr "Se establece %s a %s"
-#: relocate.cc:74
+#: relocate.cc:73
#, c-format
msgid "no such file: %s for %s"
msgstr "no existe el archivo: %s para %s"
-#: relocate.cc:84 relocate.cc:102
+#: relocate.cc:83 relocate.cc:101
#, c-format
msgid "no such directory: %s for %s"
msgstr "no existe este directorio: %s para %s"
-#: relocate.cc:94
+#: relocate.cc:93
#, c-format
msgid "%s=%s (prepend)\n"
msgstr "%s=%s (prefijar)\n"
-#: relocate.cc:124
+#: relocate.cc:123
#, c-format
msgid "not relocating, no %s/ or current/ found under %s"
msgstr "no se relocaliza, no se ha encontrado %s/ ni current/ bajo %s"
-#: relocate.cc:135
+#: relocate.cc:134
#, c-format
msgid "Relocation: compile datadir=%s, new datadir=%s"
msgstr "Relocalización: en la compilación datadir=%s, el nuevo datadir=%s"
-#: relocate.cc:148
+#: relocate.cc:147
#, c-format
msgid "Relocation: framework_prefix=%s"
msgstr "Relocalización: framework_prefix=%s"
-#: relocate.cc:189
+#: relocate.cc:188
#, c-format
msgid "Relocation: is absolute: argv0=%s"
msgstr "Relocalización: es absoluto: argv0=%s"
-#: relocate.cc:196
+#: relocate.cc:195
#, c-format
msgid "Relocation: from cwd: argv0=%s"
msgstr "Relocalización: desde cwd: argv0=%s"
-#: relocate.cc:213
+#: relocate.cc:212
#, c-format
msgid ""
"Relocation: from PATH=%s\n"
"Relocalización: desde PATH=%s\n"
"argv0=%s"
-#: relocate.cc:240
+#: relocate.cc:239
msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR"
msgstr "LILYPONDPREFIX está obsoleto, utilice LILYPOND_DATADIR"
-#: relocate.cc:367
+#: relocate.cc:365
#, c-format
msgid "Relocation file: %s"
msgstr "Archivo de relocalización: %s"
-#: relocate.cc:373 source-file.cc:65
+#: relocate.cc:371 source-file.cc:65
#, c-format
msgid "cannot open file: `%s'"
msgstr "no se puede abrir el archivo: «%s»"
-#: relocate.cc:403
+#: relocate.cc:401
#, c-format
msgid "Unknown relocation command %s"
msgstr "instrucción de relocalización %s desconocida"
+#: gregorian-ligature-engraver.cc:70
+#, c-format
+msgid "\\%s ignored"
+msgstr "\\%s ignorado(s)"
+
+#: gregorian-ligature-engraver.cc:75
+#, c-format
+msgid "implied \\%s added"
+msgstr "se ha añadido el \\%s implícito"
+
+#. ligature may not start with 2nd head of pes or flexa
+#: gregorian-ligature-engraver.cc:224
+msgid "cannot apply `\\~' on first head of ligature"
+msgstr "no se puede aplicar `\\~' sobre la primera cabeza de una ligadura"
+
+#. (pitch == prev_pitch)
+#: gregorian-ligature-engraver.cc:236
+msgid "cannot apply `\\~' on heads with identical pitch"
+msgstr "no se puede aplicar `\\~' sobre cabezas de idéntica altura"
+
#: translator-group.cc:188
#, c-format
msgid "cannot find: `%s'"
msgid "unterminated phrasing slur"
msgstr "ligadura de fraseo sin terminar"
-#: lyric-engraver.cc:176
+#: phrasing-slur-engraver.cc:182
+msgid "cannot end phrasing slur"
+msgstr "no se puede terminar la ligadura de fraseo"
+
+#: phrasing-slur-engraver.cc:196
+msgid "already have phrasing slur"
+msgstr "ya tiene una ligadura de fraseo"
+
+#: lyric-engraver.cc:186
msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
msgstr "La sílaba de la letra no tiene nota. Utilice \\lyricsto o associatedVoice."
-#: page-breaking.cc:248
+#: page-breaking.cc:274
msgid "ignoring min-systems-per-page and max-systems-per-page because systems-per-page was set"
msgstr "se ignoran min-systems-per-page y max-systems-per-page debido a que se fijó systems-per-page"
-#: page-breaking.cc:253
+#: page-breaking.cc:279
msgid "min-systems-per-page is larger than max-systems-per-page, ignoring both values"
msgstr "min-systems-per-page es mayor que max-systems-per-page, se ignoran los dos valores"
-#: performance.cc:54
+#: performance.cc:55
msgid "Track..."
msgstr "Pista..."
-#: performance.cc:83
-msgid "MIDI channel wrapped around"
-msgstr "ha dado la vuelta el número de canal MIDI"
-
-#: performance.cc:84
-msgid "remapping modulo 16"
-msgstr "se reasigna módulo 16"
-
-#: performance.cc:111
+#: performance.cc:85
#, c-format
msgid "MIDI output to `%s'..."
msgstr "Salida MIDI hacia «%s»..."
msgid "No tuplet to end"
msgstr "no hay ningún grupo especial que terminar"
-#: gregorian-ligature-engraver.cc:70
-#, c-format
-msgid "\\%s ignored"
-msgstr "\\%s ignorado(s)"
-
-#: gregorian-ligature-engraver.cc:75
-#, c-format
-msgid "implied \\%s added"
-msgstr "se ha añadido el \\%s implícito"
-
-#. ligature may not start with 2nd head of pes or flexa
-#: gregorian-ligature-engraver.cc:224
-msgid "cannot apply `\\~' on first head of ligature"
-msgstr "no se puede aplicar `\\~' sobre la primera cabeza de una ligadura"
-
-#. (pitch == prev_pitch)
-#: gregorian-ligature-engraver.cc:236
-msgid "cannot apply `\\~' on heads with identical pitch"
-msgstr "no se puede aplicar `\\~' sobre cabezas de idéntica altura"
-
#: chord-tremolo-engraver.cc:88
msgid "No tremolo to end"
msgstr "No hay ningún tremolo hasta el final"
msgid "expected to read %d characters, got %d"
msgstr "se esperaba leer %d caracteres, se han obtenido %d"
-#: axis-group-interface.cc:631
+#: axis-group-interface.cc:627
msgid "an outside-staff object should have a direction, defaulting to up"
msgstr "un objeto externo a la pauta debe tener una dirección, por omisión se establece hacia arriba"
-#: coherent-ligature-engraver.cc:111
+#: coherent-ligature-engraver.cc:110
#, c-format
msgid "Coherent_ligature_engraver: setting `spacing-increment=0.01': ptr=%ul"
msgstr "Coherent_ligature_engraver: se establece `spacing-increment=0.01': ptr=%ul"
-#: percent-repeat-engraver.cc:148
+#: percent-repeat-engraver.cc:147
msgid "unterminated percent repeat"
msgstr "repetición de porcentaje sin terminar"
-#: note-head.cc:76
+#: note-head.cc:75
#, c-format
msgid "none of note heads `%s' or `%s' found"
msgstr "no se encuentran las cabezas de nota «%s» ni «%s»"
msgid " scheme encoding: "
msgstr " codificación de Scheme: "
-#: all-font-metrics.cc:156
+#: all-font-metrics.cc:153
#, c-format
msgid "cannot find font: `%s'"
msgstr "no se encuentra la tipografía «%s»"
-#: property-iterator.cc:85
+#: property-iterator.cc:93
#, c-format
msgid "not a grob name, `%s'"
msgstr "no es un nombre de objeto gráfico: «%s»"
msgid "barcheck failed at: %s"
msgstr "la comprobación de compás ha fallado en: %s"
-#: stem.cc:116
+#: stem.cc:114
msgid "weird stem size, check for narrow beams"
msgstr "tamaño de plica extraño, compruebe que no haya barras estrechas"
-#: stem.cc:657
+#: stem.cc:652
#, c-format
msgid "flag `%s' not found"
msgstr "no se encuentra el indicador «%s»"
-#: stem.cc:673
+#: stem.cc:668
#, c-format
msgid "flag stroke `%s' not found"
msgstr "no se encuentra la forma del glifo del corchete «%s»"
msgid "\tprevious break: %d"
msgstr "\tsalto anterior: %d"
-#: lily-parser.cc:106
+#: lily-parser.cc:105
msgid "Parsing..."
msgstr "Analizando..."
-#: lily-parser.cc:134
+#: lily-parser.cc:133
msgid "braces do not match"
msgstr "las llaves no concuerdan"
-#: score.cc:178
+#: score.cc:176
msgid "already have music in score"
msgstr "ya tiene música en la partitura"
-#: score.cc:179
+#: score.cc:177
msgid "this is the previous music"
msgstr "esta es la música precedente"
-#: score.cc:184
+#: score.cc:182
msgid "errors found, ignoring music expression"
msgstr "se han encontrado errores, se ignora la expresión musical"
msgid "FreeType error: %s"
msgstr "error de FreeType: %s"
-#: open-type-font.cc:111
+#: open-type-font.cc:110
#, c-format
msgid "unsupported font format: %s"
msgstr "formato de tipografía %s no soportado"
-#: open-type-font.cc:113
+#: open-type-font.cc:112
#, c-format
msgid "error reading font file %s: %s"
msgstr "error al leer la tipografía %s: %s"
-#: open-type-font.cc:188
+#: open-type-font.cc:187
#, c-format
msgid "FT_Get_Glyph_Name () Freetype error: %s"
msgstr "error de Freetype en FT_Get_Glyph_Name (): %s"
msgid "cannot write to file: `%s'"
msgstr "no se puede escribir el archivo: «%s»"
-#: parser.yy:820
+#: parser.yy:825
msgid "\\paper cannot be used in \\score, use \\layout instead"
msgstr "no se puede usar \\paper dentro de \\score, utilice \\layout en su lugar"
-#: parser.yy:844
+#: parser.yy:849
msgid "need \\paper for paper block"
msgstr "es necesario \\paper para el bloque 'paper'"
-#: parser.yy:1363
+#: parser.yy:1369
msgid "only \\consists takes non-string argument."
msgstr "solo \\consists admite un argumento no de cadena."
-#: parser.yy:1376
+#: parser.yy:1382
msgid "Grob name should be alphanumeric"
msgstr "El nombre del objeto gráfico ha de ser alfanumérico"
-#: parser.yy:1685
+#: parser.yy:1697
msgid "second argument must be pitch list"
msgstr "el segundo argumento debe ser una lista de notas"
-#: parser.yy:1716 parser.yy:1721 parser.yy:2194
+#: parser.yy:1728 parser.yy:1733 parser.yy:2206
msgid "have to be in Lyric mode for lyrics"
msgstr "para la letra se debe estar en el modo Lyric"
-#: parser.yy:1818
+#: parser.yy:1830
msgid "expecting string as script definition"
msgstr "se espera una cadena como definición del guión"
-#: parser.yy:1973 parser.yy:2024
+#: parser.yy:1985 parser.yy:2036
#, c-format
msgid "not a duration: %d"
msgstr "no es una duración: %d"
-#: parser.yy:2148
+#: parser.yy:2160
msgid "have to be in Note mode for notes"
msgstr "para las notas se debe estar en el modo Note"
-#: parser.yy:2209
+#: parser.yy:2221
msgid "have to be in Chord mode for chords"
msgstr "para los acordes se debe estar en el modo Chord"
# stray?
-#: lexer.ll:190
+#: lexer.ll:192
msgid "stray UTF-8 BOM encountered"
msgstr "se ha encontrado una marca BOM de UTF-8 extraña"
-#: lexer.ll:194
+#: lexer.ll:196
msgid "Skipping UTF-8 BOM"
msgstr "Se salta el BOM de UTF-8"
-#: lexer.ll:249
+#: lexer.ll:251
#, c-format
msgid "Renaming input to: `%s'"
msgstr "Renombrando la entrada a: «%s»"
-#: lexer.ll:266
+#: lexer.ll:268
msgid "quoted string expected after \\version"
msgstr "se esperaba una cadena entre comillas después de \\version"
-#: lexer.ll:270
+#: lexer.ll:272
msgid "quoted string expected after \\sourcefilename"
msgstr "se esperaba una cadena entre comillas después de \\sourcefilename"
-#: lexer.ll:274
+#: lexer.ll:276
msgid "integer expected after \\sourcefileline"
msgstr "se esperaba un entero después de \\sourcefileline"
-#: lexer.ll:287
+#: lexer.ll:289
msgid "EOF found inside a comment"
msgstr "se ha encontrado EOF (fin de archivo) dentro de un comentario"
-#: lexer.ll:302
+#: lexer.ll:304
msgid "\\maininput not allowed outside init files"
msgstr "no se permite \\maininput fuera de los archivos de inicio"
-#: lexer.ll:326
+#: lexer.ll:328
#, c-format
msgid "wrong or undefined identifier: `%s'"
msgstr "identificativo equivocado o no definido: «%s»"
#. backup rule
-#: lexer.ll:335
+#: lexer.ll:337
msgid "end quote missing"
msgstr "faltan las comillas de cierre"
-#: lexer.ll:485
+#: lexer.ll:487
msgid "Brace found at end of lyric. Did you forget a space?"
msgstr "Se ha encontrado una llave al final de la letra. ¿Olvidó un espacio?"
-#: lexer.ll:595
+#: lexer.ll:597
msgid "Brace found at end of markup. Did you forget a space?"
msgstr "Se ha encontrado una llave al final del marcado, ¿Olvidó un espacio?"
-#: lexer.ll:699
+#: lexer.ll:701
#, c-format
msgid "invalid character: `%c'"
msgstr "carácter no válido: «%c»"
-#: lexer.ll:814 lexer.ll:815
+#: lexer.ll:822 lexer.ll:823
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr "cadena de escape desconocida: `\\%s'"
-#: lexer.ll:924 lexer.ll:925
+#: lexer.ll:932 lexer.ll:933
#, c-format
msgid "file too old: %s (oldest supported: %s)"
msgstr "archivo demasiado antiguo: %s (el más antiguo que se puede tratar es: %s)"
-#: lexer.ll:925 lexer.ll:926
+#: lexer.ll:933 lexer.ll:934
msgid "consider updating the input with the convert-ly script"
msgstr "considere la actualización de la entrada mediante el guión (script) convert-ly"
-#: lexer.ll:931 lexer.ll:932
+#: lexer.ll:939 lexer.ll:940
#, c-format
msgid "program too old: %s (file requires: %s)"
msgstr "el programa es demasiado antiguo: %s (el archivo necesita: %s)"
msgid "Writing ~S..."
msgstr "Escribiendo ~S..."
-#: documentation-lib.scm:198
+#: documentation-lib.scm:184
+#, scheme-format
+msgid "cannot find description for property `~S' (~S)"
+msgstr "no se encuentra la descripción de la propiedad `~S' (~S)"
+
+#: documentation-lib.scm:205
#, scheme-format
msgid "cannot find description for property ~S (~S)"
msgstr "no se encuentra la descripción de la propiedad ~S (~S)"
msgid "symbol ~S redefined"
msgstr "redefinido el símbolo ~S"
-#: paper.scm:115
+#: paper.scm:117
msgid "set-global-staff-size: not in toplevel scope"
msgstr "set-global-staff-size: no está en el ámbito de nivel más alto"
-#: paper.scm:296
+#: paper.scm:301
#, scheme-format
msgid "This is not a \\layout {} object, ~S"
msgstr "Esto no es un objeto de \\layout {} , ~S"
-#: paper.scm:308
+#: paper.scm:313
#, scheme-format
msgid "Unknown paper size: ~a"
msgstr "Tamaño de papel desconocido: ~a"
#. TODO: should raise (generic) exception with throw, and catch
#. that in parse-scm.cc
-#: paper.scm:323
+#: paper.scm:328
msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
msgstr "Debe usar #(set-paper-size .. ) dentro de \\paper { ... }"
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
msgstr "tipo equivocado para el argumento ~a. Se esperaba ~a, se encontró ~s"
-#: lily.scm:716
+#: lily.scm:710
msgid "Compilation successfully completed"
msgstr "Compiación completada satisfactoriamente"
-#: lily.scm:717
+#: lily.scm:711
msgid "Compilation completed with warnings or errors"
msgstr "Compilación completada con advertencias o errores"
-#: lily.scm:779
+#: lily.scm:773
#, scheme-format
msgid "job ~a terminated with signal: ~a"
msgstr "la tarea ~a ha terminado con la señal: ~a"
-#: lily.scm:782
+#: lily.scm:776
#, scheme-format
msgid ""
"logfile ~a (exit ~a):\n"
"archivo de registro ~a (salida ~a):\n"
"~a"
-#: lily.scm:804 lily.scm:882
+#: lily.scm:798 lily.scm:876
#, scheme-format
msgid "failed files: ~S"
msgstr "archivos que han fallado: ~S"
-#: lily.scm:873
+#: lily.scm:867
#, scheme-format
msgid "Redirecting output to ~a..."
msgstr "Redirigiendo la salida hacia ~a..."
-#: lily.scm:892
+#: lily.scm:886
#, scheme-format
msgid "Invoking `~a'...\n"
msgstr "Invocando «~a»...\n"
msgid "Found infinity or nan in output. Substituting 0.0"
msgstr "Se ha encontrado Infinito o NaN en la salida. Se sustituye por 0.0"
-#: output-ps.scm:289 output-svg.scm:550
+#: output-ps.scm:299 output-svg.scm:550
#, scheme-format
msgid "unknown line-cap-style: ~S"
msgstr "estilo de extremo de línea line-cap-style desconocido: ~S"
-#: output-ps.scm:294 output-svg.scm:556
+#: output-ps.scm:304 output-svg.scm:556
#, scheme-format
msgid "unknown line-join-style: ~S"
msgstr "estilo de unión de líneas line-join-style desconocido: ~S"
msgid "Could not find language `~a'. Ignoring."
msgstr "No se encuentra el idioma `~a'. Se ignora."
-#: define-music-types.scm:740
+#: define-music-types.scm:747
#, scheme-format
msgid "symbol expected: ~S"
msgstr "se esperaba un símbolo: ~S"
-#: define-music-types.scm:743
+#: define-music-types.scm:750
#, scheme-format
msgid "cannot find music object: ~S"
msgstr "no se encuentra el objeto musical ~S"
-#: define-music-types.scm:762
+#: define-music-types.scm:769
#, scheme-format
msgid "unknown repeat type `~S'"
msgstr "tipo de repetición «~S» desconocido"
-#: define-music-types.scm:763
+#: define-music-types.scm:770
msgid "See define-music-types.scm for supported repeats"
msgstr "Consulte el archivo define-music-types.scm para ver los tipos de repetición soportados"
-#: translation-functions.scm:341
+#: translation-functions.scm:350
#, scheme-format
msgid "Negative fret for pitch ~a on string ~a"
msgstr "Traste negativo para la nota ~a de la cuerda ~a"
-#: translation-functions.scm:385
+#: translation-functions.scm:401
#, scheme-format
msgid "No open string for pitch ~a"
msgstr "No hay cuerda al aire para la nota ~a"
-#: translation-functions.scm:400
+#: translation-functions.scm:416 translation-functions.scm:428
#, scheme-format
msgid "Requested string for pitch requires negative fret: string ~a pitch ~a"
msgstr "La cuerda solicitada para la nota requiere un traste negativo: cuerda ~a nota ~a"
-#: translation-functions.scm:401
-msgid "Ignoring string request."
-msgstr "Se ignora la solicitud de cuerda."
+#: translation-functions.scm:419
+msgid "Ignoring string request and recalculating."
+msgstr "Se ignora la solicitud de cuerda; volviendo a calcular."
+
+#: translation-functions.scm:431
+msgid "Ignoring note in tablature."
+msgstr "Se ignora la nota en la tablatura."
-#: translation-functions.scm:414
+#: translation-functions.scm:454
#, scheme-format
msgid "No string for pitch ~a (given frets ~a)"
msgstr "No hay ninguna cuerda para la nota ~a (dados los trastes ~a)"
-#: translation-functions.scm:515
+#: translation-functions.scm:559
#, scheme-format
msgid ""
"No label for fret ~a (on string ~a);\n"
msgid "do not know how to embed font ~s ~s ~s"
msgstr "no sabemos cómo empotrar la tipografía ~s ~s ~s"
-#: framework-ps.scm:669
+#: framework-ps.scm:686
msgid ""
"\n"
"The PostScript backend does not support the\n"
msgid "invalid tremolo repeat count: ~a"
msgstr "número de repeticiones no válido para el trémolo: ~a"
-#: music-functions.scm:618
+#: music-functions.scm:619
#, scheme-format
msgid "music expected: ~S"
msgstr "se esperaba algo de música: ~S"
msgid "Bar check failed. Expect to be at ~a, instead at ~a"
msgstr "Ha fallado la comprobación de compás. Se esperaba que estuviera en ~a, en lugar de en ~a"
-#: music-functions.scm:846
+#: music-functions.scm:845
#, scheme-format
msgid "cannot find quoted music: `~S'"
msgstr "no se encuentra la música citada: «~S»"
-#: music-functions.scm:982
+#: music-functions.scm:979
msgid "Add @var{octave-shift} to the octave of @var{pitch}."
msgstr "Añadir @var{octave-shift} a la octava de @var{pitch}."
-#: music-functions.scm:1037
+#: music-functions.scm:1039
#, scheme-format
msgid "Unknown octaveness type: ~S "
msgstr "Tipo de octavación desconocido: ~S "
-#: music-functions.scm:1038
+#: music-functions.scm:1040
msgid "Defaulting to 'any-octave."
msgstr "Fijando al valor predeterminado 'any-octave."
msgid "~a exited with status: ~S"
msgstr "~a salió con el estado: ~S"
-#: define-markup-commands.scm:803
+#: define-markup-commands.scm:883
msgid "no systems found in \\score markup, does it have a \\layout block?"
msgstr "no se ha encontrado ningún sistema en el marcado \\score, ¿tiene un bloque \\layout?"
-#: define-markup-commands.scm:2404
+#: define-markup-commands.scm:2561
#, scheme-format
msgid "Cannot find glyph ~a"
msgstr "No se encuentra el glifo ~a"
-#: define-markup-commands.scm:2830
+#: define-markup-commands.scm:2987
#, scheme-format
msgid "no brace found for point size ~S "
msgstr "no se ha encontrado ninguna llave para el tamaño en puntos ~S "
-#: define-markup-commands.scm:2831
+#: define-markup-commands.scm:2988
#, scheme-format
msgid "defaulting to ~S pt"
msgstr "fijando al valor predeterminado ~S pt"
-#: define-markup-commands.scm:2984
+#: define-markup-commands.scm:3141
#, scheme-format
msgid "not a valid duration string: ~a"
msgstr "no es una cadena válida de duración: ~a"
ignore_error=False,
progress_p=True,
be_verbose=False,
+ redirect_output=False,
log_file=None):
the vertical edges: @code{(@var{left-height} . @var{right-height})}.")
(edge-text ,pair? "A pair specifying the texts to be set at the
edges: @code{(@var{left-text} . @var{right-text})}.")
+ (round-up-exceptions ,list? "A list of pairs where car is the numerator
+and cdr the denominator of a moment. Each pair in this list means that
+the multi-measure rests of the corresponding length will be rounded up to
+the longer rest. See @var{round-up-to-longer-rest}.")
(expand-limit ,integer? "Maximum number of measures expanded in
church rests.")
;; remove me?
(rotation ,list? "Number of degrees to rotate this object, and
what point to rotate around. For example, @code{#'(45 0 0)} rotates
by 45 degrees around the center of this object.")
- (round-to-longer-rest ,boolean? "Displays the longer multi-measure
+ (round-up-to-longer-rest ,boolean? "Displays the longer multi-measure
rest when the length of a measure is between two values of
@code{usable-duration-logs}. For example, displays a breve instead of a whole
in a 3/2 measure.")
. (
(expand-limit . 10)
(hair-thickness . 2.0)
+ (round-up-exceptions . ())
(padding . 1)
(spacing-pair . (break-alignment . break-alignment))
(springs-and-rods . ,ly:multi-measure-rest::set-spacing-rods)
- (staff-position . 0)
(stencil . ,ly:multi-measure-rest::print)
(thick-thickness . 6.6)
;; See Wanske pp. 125
- (usable-duration-logs . (0 -1 -2 -3))
+ (usable-duration-logs . ,(iota 4 -3))
(Y-offset . ,ly:staff-symbol-referencer::callback)
(meta . ((class . Spanner)
(interfaces . (font-interface
(head-slur-distance-factor . 10)
(absolute-closeness-measure . 0.3)
(edge-slope-exponent . 1.7)
+ (close-to-edge-length . 2.5)
))
(defmacro-public _i (x) x)
+;;; Boolean thunk - are we integrating Guile V2.0 or higher with LilyPond?
+(define-public (guile-v2)
+ (string>? (version) "1.9.10"))
+
(read-enable 'positions)
+(if (not (guile-v2))
+ (debug-enable 'debug)
+ (begin
+ (debug-enable 'backtrace)
+ (debug-enable 'show-file-name)))
(define-public PLATFORM
(string->symbol
;;(set-debug-cell-accesses! 1000)
-;;; Boolean thunk - are we integrating Guile V2.0 or higher with LilyPond?
-(define-public (guile-v2)
- (string>? (version) "1.9.10"))
-
(use-modules (ice-9 regex)
(ice-9 safe)
(ice-9 format)
(use-modules (ice-9 curried-definitions)))
(else
(if (ly:get-option 'verbose)
- (ly:message
- (_ "Guile 1.8\n")))))
+ (ly:message (_ "Guile 1.8\n")))))
;; TODO add in modules for V1.8.7 deprecated in V2.0 and integrated
;; into Guile base code, like (ice-9 syncase).
(set! (ly:music-property music 'quoted-events) quoted-vector)
(set! (ly:music-property music 'iterator-ctor)
ly:quote-iterator::constructor))
- (ly:warning (_ "cannot find quoted music: `~S'") quoted-name)))
+ (ly:music-message music (ly:format (_ "cannot find quoted music: `~S'") quoted-name))))
music))
(define-public (add-quotable parser name mus)
(let* ((tab (eval 'musicQuotes (current-module)))
- (context-list (recording-group-emulate (context-spec-music mus 'Voice)
- (ly:parser-lookup parser 'partCombineListener))))
- (if (pair? context-list)
- (hash-set! tab name
- ;; cdr : skip name string
- (list->vector (reverse! (cdar context-list)
- '()))))))
+ (voicename (get-next-unique-voice-name))
+ ;; recording-group-emulate returns an assoc list (reversed!), so
+ ;; hand it a proper unique context name and extract that key:
+ (ctx-spec (context-spec-music mus 'Voice voicename))
+ (listener (ly:parser-lookup parser 'partCombineListener))
+ (context-list (reverse (recording-group-emulate ctx-spec listener)))
+ (raw-voice (assoc voicename context-list))
+ (quote-contents (if (pair? raw-voice) (cdr raw-voice) '())))
+
+ ;; If the context-specced quoted music does not contain anything, try to
+ ;; use the first child, i.e. the next in context-list after voicename
+ ;; That's the case e.g. for \addQuote "x" \relative c \new Voice {...}
+ (if (null? quote-contents)
+ (let find-non-empty ((current-tail (member raw-voice context-list)))
+ ;; if voice has contents, use them, otherwise check next ctx
+ (cond ((null? current-tail) #f)
+ ((and (pair? (car current-tail))
+ (pair? (cdar current-tail)))
+ (set! quote-contents (cdar current-tail)))
+ (else (find-non-empty (cdr current-tail))))))
+
+ (if (not (null? quote-contents))
+ (hash-set! tab name (list->vector (reverse! quote-contents '())))
+ (ly:music-message mus (ly:format (_ "quoted music `~a' is empty") name)))))
-#! /usr/bin/perl
+#!@PERL@
##################################################
# Convert stylized Metafont to PostScript Type 1 #
self.orphan_count (),
self.geometric_distance ())
+def scheme_float (s) :
+ return float(s) if 'nan' not in s else float(s.split('.')[0])
+
def read_signature_file (name):
print 'reading', name
entries = open (name).read ().split ('\n')
def string_to_tup (s):
- return tuple (map (float, s.split (' ')))
+ return tuple (map (scheme_float, s.split (' ')))
def string_to_entry (s):
fields = s.split('@')
#### add google tracker goals
if (line.find("href=\"http://download.linuxaudio.org") >= 0):
# TODO: more ugly hardcoding to make releases hard. :(
- if (line.find('2.12') >= 0):
- line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.12\');\" href=')
- elif (line.find('2.13') >= 0):
- line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.13\');\" href=')
+ if (line.find('2.14') >= 0):
+ line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.14\');\" href=')
+ elif (line.find('2.15') >= 0):
+ line = line.replace('a href=', 'a onClick=\"javascript:urchinTracker(\'/download/v2.15\');\" href=')
### add language selection footer
if (line.find("<div id=\"verifier_texinfo\">") >= 0):
outfile.write("<div id=\"footer\">\n")