pats
tags
test-output-distance
+Documentation/user/lilypond
<br>
<strong>@DATE@</strong>
</p>
+
+ <p>
+ <strong>Achtung:</strong> Diese Übersetzung befindet sich noch in der Entwicklung, <br>
+ die englische Version (Link unten auf der Seite) bietet die
+ vollständige Fassung der Dokumentation.
+ </p>
</div>
<table align="center">
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
+@c This file is part of lilypond.tely
+@ignore
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+
+@node Editorial annotations
+@section Editorial annotations
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Inside the staff::
+* Outside the staff::
+@end menu
+@node Inside the staff
+@subsection Inside the staff
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Selecting notation font size::
+* Fingering instructions::
+* Hidden notes::
+* Coloring objects::
+* Parentheses::
+* Stems::
+@end menu
+@node Selecting notation font size
+@subsubsection Selecting notation font size
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fingering instructions
+@subsubsection Fingering instructions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Hidden notes
+@subsubsection Hidden notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Coloring objects
+@subsubsection Coloring objects
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Parentheses
+@subsubsection Parentheses
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Stems
+@subsubsection Stems
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Outside the staff
+@subsection Outside the staff
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Balloon help::
+* Grid lines::
+* Blank music sheet::
+* Analysis brackets::
+@end menu
+@node Balloon help
+@subsubsection Balloon help
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Grid lines
+@subsubsection Grid lines
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Blank music sheet
+@subsubsection Blank music sheet
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Analysis brackets
+@subsubsection Analysis brackets
+
+UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@menu
* Introduction to the LilyPond file structure::
* Score is a (single) compound musical expression::
-* Nesting Music Expressions::
+* Nesting music expressions::
* On the un-nestedness of brackets and ties::
@end menu
@node Introduction to the LilyPond file structure
UNTRANSLATED NODE: IGNORE ME
-@node Nesting Music Expressions
-@subsection Nesting Music Expressions
+@node Nesting music expressions
+@subsection Nesting music expressions
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+@subsubsection Changing a single context
@
+@subsubsection Changing all contexts of the same type
@node Extending the templates
@section Extending the templates
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
UNTRANSLATED NODE: IGNORE ME
@menu
-* Up and down::
+* Controlling direction::
* Distances and measurements MAYBE MOVE::
@end menu
-@node Up and down
-@subsection Up and down
+@node Controlling direction
+@subsection Controlling direction
UNTRANSLATED NODE: IGNORE ME
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
UNTRANSLATED NODE: IGNORE ME
+@subheading Format-specific instructions
+@subsubheading @LaTeX{}
+@subsubheading Texinfo
+@subheading Command line options
@node Filename extensions
@section Filename extensions
@omflanguage German
@end ignore
+@c Translators: Till Rettig
@ifhtml
Dieses Dokument ist auch als
@omflanguage German
@end ignore
+@c Translators: Till Rettig
@ifhtml
Dieses Dokument ist auch als
@omflanguage German
@end ignore
+@c Translators: Till Rettig
@ifhtml
Dieses Dokument ist auch als
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@menu
* Titles and headers::
* MIDI output::
+* other midi::
@end menu
@node Titles and headers
@section Titles and headers
* Repeats and MIDI::
@end menu
@node Repeats and MIDI
-@unnumberedsubsubsec Repeats and MIDI
+@subsubsection Repeats and MIDI
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node other midi
+@section other midi
UNTRANSLATED NODE: IGNORE ME
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
* Breaks::
* Vertical spacing::
* Horizontal spacing::
+* Page layout MOVED FROM LM::
@end menu
@node Paper and pages
@section Paper and pages
UNTRANSLATED NODE: IGNORE ME
+@node Page layout MOVED FROM LM
+@section Page layout MOVED FROM LM
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Introduction to layout::
+* Global sizes::
+* Line breaks::
+* Page breaks::
+* Fitting music onto fewer pages::
+@end menu
+@node Introduction to layout
+@subsection Introduction to layout
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Global sizes
+@subsection Global sizes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Line breaks
+@subsection Line breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page breaks
+@subsection Page breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fitting music onto fewer pages
+@subsection Fitting music onto fewer pages
+
+UNTRANSLATED NODE: IGNORE ME
+
-- SKELETON FILE --
When you actually translate this file, please remove these lines as
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
+@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: f7420240e4ce1fe2217646482a47d00f566af52c
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+
+@node Text
+@section Text
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Writing text::
+* Text markup::
+* Special text concerns::
+@end menu
+@node Writing text
+@subsection Writing text
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Overview of text entry::
+* Text scripts::
+* Text spanners::
+* Text marks::
+@end menu
+@node Overview of text entry
+@subsubsection Overview of text entry
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text scripts
+@subsubsection Text scripts
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text spanners
+@subsubsection Text spanners
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text marks
+@subsubsection Text marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text markup
+@subsection Text markup
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Text markup introduction::
+* Nested scores::
+* Page wrapping text::
+* Font selection::
+@end menu
+@node Text markup introduction
+@subsubsection Text markup introduction
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Nested scores
+@subsubsection Nested scores
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page wrapping text
+@subsubsection Page wrapping text
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Font selection
+@subsubsection Font selection
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Special text concerns
+@subsection Special text concerns
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* New dynamic marks::
+* Text and line spanners::
+@end menu
+@node New dynamic marks
+@subsubsection New dynamic marks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Text and line spanners
+@subsubsection Text and line spanners
+
+UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
* Entering lyrics::
@end menu
@node Setting simple songs
-@unnumberedsubsubsec Setting simple songs
+@subsubsection Setting simple songs
UNTRANSLATED NODE: IGNORE ME
@node Entering lyrics
-@unnumberedsubsubsec Entering lyrics
+@subsubsection Entering lyrics
UNTRANSLATED NODE: IGNORE ME
* Extenders and hyphens::
@end menu
@node Automatic syllable durations
-@unnumberedsubsubsec Automatic syllable durations
+@subsubsection Automatic syllable durations
UNTRANSLATED NODE: IGNORE ME
@node Another way of entering lyrics
-@unnumberedsubsubsec Another way of entering lyrics
+@subsubsection Another way of entering lyrics
UNTRANSLATED NODE: IGNORE ME
@node Assigning more than one syllable to a single note
-@unnumberedsubsubsec Assigning more than one syllable to a single note
+@subsubsection Assigning more than one syllable to a single note
UNTRANSLATED NODE: IGNORE ME
@node More than one note on a single syllable
-@unnumberedsubsubsec More than one note on a single syllable
+@subsubsection More than one note on a single syllable
UNTRANSLATED NODE: IGNORE ME
@node Extenders and hyphens
-@unnumberedsubsubsec Extenders and hyphens
+@subsubsection Extenders and hyphens
UNTRANSLATED NODE: IGNORE ME
* Working with lyrics and variables::
@end menu
@node Working with lyrics and variables
-@unnumberedsubsubsec Working with lyrics and variables
+@subsubsection Working with lyrics and variables
UNTRANSLATED NODE: IGNORE ME
* Lyrics independent of notes::
@end menu
@node Lyrics to multiple notes of a melisma
-@unnumberedsubsubsec Lyrics to multiple notes of a melisma
+@subsubsection Lyrics to multiple notes of a melisma
UNTRANSLATED NODE: IGNORE ME
@node Divisi lyrics
-@unnumberedsubsubsec Divisi lyrics
+@subsubsection Divisi lyrics
UNTRANSLATED NODE: IGNORE ME
@node Switching the melody associated with a lyrics line
-@unnumberedsubsubsec Switching the melody associated with a lyrics line
+@subsubsection Switching the melody associated with a lyrics line
UNTRANSLATED NODE: IGNORE ME
@node Lyrics independent of notes
-@unnumberedsubsubsec Lyrics independent of notes
+@subsubsection Lyrics independent of notes
UNTRANSLATED NODE: IGNORE ME
* Spacing lyrics::
@end menu
@node Spacing lyrics
-@unnumberedsubsubsec Spacing lyrics
+@subsubsection Spacing lyrics
UNTRANSLATED NODE: IGNORE ME
* Printing stanzas at the end in multiple columns ::
@end menu
@node Adding stanza numbers
-@unnumberedsubsubsec Adding stanza numbers
+@subsubsection Adding stanza numbers
UNTRANSLATED NODE: IGNORE ME
@node Adding dynamics marks
-@unnumberedsubsubsec Adding dynamics marks
+@subsubsection Adding dynamics marks
UNTRANSLATED NODE: IGNORE ME
@node Adding singer names
-@unnumberedsubsubsec Adding singer names
+@subsubsection Adding singer names
UNTRANSLATED NODE: IGNORE ME
@node Printing stanzas at the end
-@unnumberedsubsubsec Printing stanzas at the end
+@subsubsection Printing stanzas at the end
UNTRANSLATED NODE: IGNORE ME
@node Printing stanzas at the end in multiple columns
-@unnumberedsubsubsec Printing stanzas at the end in multiple columns
+@subsubsection Printing stanzas at the end in multiple columns
UNTRANSLATED NODE: IGNORE ME
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
+@c This file is part of lilypond.tely
+@ignore
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+
+@node Editorial annotations
+@section Editorial annotations
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Inside the staff::
+* Outside the staff::
+@end menu
+@node Inside the staff
+@subsection Inside the staff
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Selecting notation font size::
+* Fingering instructions::
+* Hidden notes::
+* Coloring objects::
+* Parentheses::
+* Stems::
+@end menu
+@node Selecting notation font size
+@subsubsection Selecting notation font size
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fingering instructions
+@subsubsection Fingering instructions
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Hidden notes
+@subsubsection Hidden notes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Coloring objects
+@subsubsection Coloring objects
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Parentheses
+@subsubsection Parentheses
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Stems
+@subsubsection Stems
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Outside the staff
+@subsection Outside the staff
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Balloon help::
+* Grid lines::
+* Blank music sheet::
+* Analysis brackets::
+@end menu
+@node Balloon help
+@subsubsection Balloon help
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Grid lines
+@subsubsection Grid lines
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Blank music sheet
+@subsubsection Blank music sheet
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Analysis brackets
+@subsubsection Analysis brackets
+
+UNTRANSLATED NODE: IGNORE ME
+
+
+-- SKELETON FILE --
+When you actually translate this file, please remove these lines as
+well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@menu
* Introduction to the LilyPond file structure::
* Score is a (single) compound musical expression::
-* Nesting Music Expressions::
+* Nesting music expressions::
* On the un-nestedness of brackets and ties::
@end menu
@node Introduction to the LilyPond file structure
UNTRANSLATED NODE: IGNORE ME
-@node Nesting Music Expressions
-@subsection Nesting Music Expressions
+@node Nesting music expressions
+@subsection Nesting music expressions
UNTRANSLATED NODE: IGNORE ME
UNTRANSLATED NODE: IGNORE ME
+@subsubsection Changing a single context
@
+@subsubsection Changing all contexts of the same type
@node Extending the templates
@section Extending the templates
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
UNTRANSLATED NODE: IGNORE ME
@menu
-* Up and down::
+* Controlling direction::
* Distances and measurements MAYBE MOVE::
@end menu
-@node Up and down
-@subsection Up and down
+@node Controlling direction
+@subsection Controlling direction
UNTRANSLATED NODE: IGNORE ME
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Francisco Vila
+
@ifclear INSTALL
@node Install
@chapter Install
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
UNTRANSLATED NODE: IGNORE ME
+@subheading Format-specific instructions
+@subsubheading @LaTeX{}
+@subsubheading Texinfo
+@subheading Command line options
@node Filename extensions
@section Filename extensions
@settitle GNU LilyPond Learning Manual
@documentencoding UTF-8
@documentlanguage es
-@c TRANSLATE ME
@iftex
@afourpaper
@omflanguage Spanish
@end ignore
+@c Translators: Francisco Vila
@ifhtml
Este documento también está disponible como
@omflanguage English
@end ignore
+@c Translators: Francisco Vila
@ifhtml
Este documento está disponible también en formato
@omflanguage Spanish
@end ignore
+@c Translators: Francisco Vila
@ifhtml
Este documento también está disponible como
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 5a2beb9fbe0e28ed499f0191d16f7e2a5d86dee1
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
* Breaks::
* Vertical spacing::
* Horizontal spacing::
+* Page layout MOVED FROM LM::
@end menu
@node Paper and pages
@section Paper and pages
UNTRANSLATED NODE: IGNORE ME
+@node Page layout MOVED FROM LM
+@section Page layout MOVED FROM LM
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Introduction to layout::
+* Global sizes::
+* Line breaks::
+* Page breaks::
+* Fitting music onto fewer pages::
+@end menu
+@node Introduction to layout
+@subsection Introduction to layout
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Global sizes
+@subsection Global sizes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Line breaks
+@subsection Line breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page breaks
+@subsection Page breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fitting music onto fewer pages
+@subsection Fitting music onto fewer pages
+
+UNTRANSLATED NODE: IGNORE ME
+
-- SKELETON FILE --
When you actually translate this file, please remove these lines as
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@node Ancient notation
@section Ancient notation
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@node Bagpipes
@section Bagpipes
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Gilles Thibault
+
@node Changing defaults
@chapter Changing defaults
-
LilyPond est conçu pour engendrer, par défaut, des partitions de la
plus haute qualité. Cependant, on peut parfois avoir à modifier cette
mise en page par défaut. Celle-ci est réglée par tout un ensemble de
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
@c TODO: add tablature.
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
-@node Chords Blah
-@section Chords Blah
+@node Chords
+@section Chords
Intro text.
@menu
-* TODO chords fix::
+* Chords sections::
@end menu
-@node TODO chords fix
-@subsection TODO chords fix
+@node Chords sections
+@subsection Chords sections
+@c awkard bit of English docs (not reproduced here):
+@c "A lead sheet" is shovved in here from the tutorial,
+@c before "Introducing chord names".
+@menu
+* Introducing chord names::
+* Chords mode::
+* Printing chord names::
+@end menu
@c awkward name; awkward section name.
@ignore
Translation of GIT committish: 27af34a245b02a6b89c9af3becefcfe676b2e19d
-
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Jean-Charles Malahieude
@node Converting from other formats
@chapter Converting from other formats
--- /dev/null
+@c -*- coding: utf-8; mode: texinfo; -*-
+@ignore
+ Translation of GIT committish: f7420240e4ce1fe2217646482a47d00f566af52c
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
+@c Translators: Jean-Charles Malahieude
+
+@node Educational use
+@section Educational use
+
+@menu
+* Note heads::
+* Inside the staff::
+* Outside the staff::
+@end menu
+
+
+@node Note heads
+@subsection Note heads
+
+@menu
+* Easy notation note heads::
+* Shape note heads::
+* Improvisation::
+* Special noteheads::
+@end menu
+
+@node Easy Notation note heads
+@unnumberedsubsubsec Easy Notation note heads
+
+@cindex tête de note, apprentissage
+@cindex notation facile
+@cindex Hal Leonard
+
+Les notes @q{easy play} comportent le nom de la note à l'intérieur de
+la tête. On l'utilise dans des partitions pour débutants.
+
+@lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
+ \easyHeadsOn
+ c'2 e'4 f' | g'1
+@end lilypond
+
+La commande @code{\easyHeadsOn} remplace tous les réglages de l'objet
+@internalsref{NoteHead}. L'impression doit être de plus grande
+taille, afin que les lettres soient lisibles. Voir à ce propos
+@ref{Setting the staff size}.
+
+@refcommands
+
+@funindex \easyHeadsOn
+@code{\easyHeadsOn}
+
+
+@node Shape note heads
+@unnumberedsubsubsec Shape note heads
+
+@cindex tête de note, allure
+
+En notation profilée, le profil d'une tête de note correspond à la
+fonction harmonique de cette note dans la gamme. Ce style de notation
+était très en vogue dans les recueils de chansons américains du XIXe
+siècle.
+
+Des notes profilées sont produites après activation de
+@code{\aikenHeads} ou @code{\sacredHarpHeads}, selon le style.
+
+@lilypond[verbatim,relative=1,fragment]
+ \aikenHeads
+ c8 d4 e8 a2 g1
+ \sacredHarpHeads
+ c8 d4. e8 a2 g1
+@end lilypond
+
+Les profils sont déterminés par la hauteur dans la gamme, le premier
+degré étant défini par la commande @code{\key}.
+
+@funindex \key
+@funindex shapeNoteStyles
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
+
+Les notes profilées sont mises en œuvre par la propriété
+@code{shapeNoteStyles}, dont les valeurs sont constituées d'une liste
+de symboles. Le n-ième élément indique le style à utiliser pour le
+n-ième degré de la gamme. Toutes les combinaisons sont possibles :
+
+@lilypond[verbatim,relative=1,fragment]
+ \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond)
+ c8 d4. e8 a2 g1
+@end lilypond
+
+
+@node Improvisation
+@unnumberedsubsubsec Improvisation
+
+L'improvisation peut quelquefois s'indiquer à l'aide de notes de forme
+allongée (@emph{slash}). Ces têtes de notes sont créées par
+l'adjonction du graveur @internalsref{Pitch_squash_engraver} au
+contexte @internalsref{Voice}, de telle sorte que la commande
+
+@example
+\set squashedPosition = #0
+\override NoteHead #'style = #'slash
+@end example
+
+@noindent
+active les notes penchées.
+
+Vous disposez des raccourcis @code{\improvisationOn} et son corollaire
+@code{\improvisationOff} pour cette séquence, comme l'illustre
+l'exemple ci dessous.
+
+@lilypond[verbatim,ragged-right,quote]
+\new Voice \with {
+ \consists Pitch_squash_engraver
+} \transpose c c' {
+ e8 e g a a16(bes)(a8) g \improvisationOn
+ e8
+ ~e2~e8 f4 fis8
+ ~fis2 \improvisationOff a16(bes) a8 g e
+}
+@end lilypond
+
+
+@node Special noteheads
+@unnumberedsubsubsec Special noteheads
+
+@cindex têtes de note, spéciales
+
+Certains instruments utilisent des têtes de note différentes à des
+fins spécifiques --- des croix pour le @q{parlato} des chanteurs ou les
+notes étouffées des guitares ; des losanges pour les harmoniques des
+cordes. Il existe un raccourci (@code{\harmonic}) pour les notes en
+losange ; pour les autres styles de tête, il vous faudra jouer avec la
+propriété @code{NoteHead}.
+
+@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
+c4 d
+\override NoteHead #'style = #'cross
+e f
+\revert NoteHead #'style
+e d <c f\harmonic> <d a'\harmonic>
+@end lilypond
+
+@noindent
+Pour une liste exhaustive des styles de tête de note, consultez
+@ref{Note head styles}.
+
+
+@seealso
+
+Référence du programme : @internalsref{NoteHead}.
+
+
+@node Inside the staff
+@subsection Inside the staff
+
+
+@menu
+* Selecting notation font size::
+* Fingering instructions::
+* Hidden notes::
+* Coloring objects::
+* Parentheses::
+* Ambitus::
+* Stems::
+@end menu
+
+@node Selecting notation font size
+@unnumberedsubsubsec Selecting notation font size
+
+Le plus sûr moyen de régler la taille de la police, quelque soit le
+contexte, consiste à définir la propriété @code{fontSize}.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\set fontSize = #-4
+c f
+\set fontSize = #3
+g
+@end lilypond
+
+@noindent
+Ceci ne modifiera en rien la taille des différents symboles tels que
+ligatures ou liaisons.
+
+En interne, la propriété @code{fontSize} d'un contexte aura pour effet
+de définir la propriété @code{font-size} pour tous les objets de
+rendu. La valeur de @code{font-size} est un entier représentant la
+taille proportionnellement à la hauteur standard de la portée en
+cours. Chaque incrément correspond à une augmentation d'environ
+12@tie{}% de la taille de la police. Un pas de six aboutit exactement
+au doublement de la taille. La fonction Scheme @code{magstep}
+convertit le nombre affecté à @code{font-size} en facteur d'échelle.
+Vous pouvez aussi définir directement la propriété @code{font-size} de
+manière à n'affecter seulement que certains objets de rendu.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\override NoteHead #'font-size = #-4
+c f
+\override NoteHead #'font-size = #3
+g
+@end lilypond
+
+Pour changer la taille des symboles musicaux (police Feta), LilyPond met
+à l'échelle la fonte dont la taille est la plus proche de la taille voulue ---
+cf. @ref{Setting the staff size}. La taille standard, pour laquelle
+@code{font-size} vaut 0, dépend de la hauteur de la portée. À une
+portée de 20 points correspond une police de 10 points.
+
+La propriété @code{font-size} ne peut intervenir que pour les objets
+qui utilisent des polices, autrement dit ceux qui disposent de
+l'interface de rendu @internalsref{font-interface}.
+
+@refcommands
+
+Les commandes suivantes définissent @code{fontSize} pour la voix en
+cours :
+
+@funindex \tiny
+@code{\tiny},
+@funindex \small
+@code{\small},
+@funindex \normalsize
+@code{\normalsize}.
+
+
+
+@node Fingering instructions
+@unnumberedsubsubsec Fingering instructions
+
+@cindex doigté
+@cindex substitution de doigt
+
+
+Les doigtés peuvent être indiqués comme suit :
+@example
+@var{note}-@var{chiffre_du_doigt}
+@end example
+Pour les substitutions de doigts, on a recours à une indication
+textuelle (commande @code{\markup}) de doigté
+(commande @code{\finger}).
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+c4-1 c-2 c-3 c-4
+c^\markup { \finger "2 - 3" }
+@end lilypond
+
+
+La commande @code{\thumb} peut être utilisée pour indiquer, par exemple
+dans une partition de violoncelle, si une note doit être jouée avec le
+pouce (@q{thumb} en anglais).
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+<a_\thumb a'-3>8 <b_\thumb b'-3>
+@end lilypond
+
+
+Les doigtés des accords peuvent être saisis note par note,
+en les indiquant après chaque hauteur de note.
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+< c-1 e-2 g-3 b-5 >4
+@end lilypond
+
+
+@commonprop
+
+On peut contrôler précisément les doigtés des accords en réglant
+la propriété @code{fingeringOrientations}.
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+\set fingeringOrientations = #'(left down)
+<c-1 es-2 g-4 bes-5 > 4
+\set fingeringOrientations = #'(up right down)
+<c-1 es-2 g-4 bes-5 > 4
+@end lilypond
+
+
+Cette propriété permet également, dans de la musique monophonique,
+d'indiquer des doigtés très proches des têtes de notes.
+
+@lilypond[verbatim,ragged-right,quote,fragment]
+\set fingeringOrientations = #'(right)
+<es'-2>4
+@end lilypond
+
+
+@seealso
+
+Référence du programme : @internalsref{Fingering}.
+
+D'autres exemples : @lsr{expressive,fingering-chords.ly}.
+
+
+@node Hidden notes
+@unnumberedsubsubsec Hidden notes
+
+@cindex Masquées, notes
+@cindex Invisibles, notes
+@cindex Transparentes, notes
+
+@funindex \hideNotes
+@funindex \unHideNotes
+Les notes masquées --- ou invisibles ou encore transparentes --- sont
+utiles dans le cadre d'exercices de théorie ou de composition.
+
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+c4 d4
+\hideNotes
+e4 f4
+\unHideNotes
+g4 a
+@end lilypond
+
+
+@node Coloring objects
+@unnumberedsubsubsec Coloring objects
+
+Des objets peuvent être colorisés individuellement. Une listes des
+noms des couleurs disponibles se trouvent à l'annexe @ref{List of colors}.
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
+\override NoteHead #'color = #red
+c4 c
+\override NoteHead #'color = #(x11-color 'LimeGreen)
+d
+\override Stem #'color = #blue
+e
+@end lilypond
+
+L'intégralité de la palette des couleurs définies pour X11 est
+accessible par la fonction Scheme x11-color. Cette fonction prend
+en argument une expression symbolique
+
+@example
+\override Beam #'color = #(x11-color 'MediumTurquoise)
+@end example
+
+ou une chaîne de caractères
+
+@example
+\override Beam #'color = #(x11-color "MediumTurquoise")
+@end example
+
+La première formulation est à la fois plus rapide à écrire et aussi
+plus efficace. Néanmoins, la deuxième forme permet d'accéder aux noms
+composés des couleurs de X11.
+
+@example
+\override Beam #'color = #(x11-color "medium turquoise")
+@end example
+
+Lorsque la fonction x11-color ne trouve pas le paramètre fourni, elle
+revient à la couleur par défaut, le noir. Le problème ressort de
+façon évidente au vu de la partition finale.
+
+L'exemple suivant illustre l'utilisation de la fonction
+@code{x11-color}. Notez que, après avoir été définie à (x11-color
+'Boggle), la couleur des hampes repasse au noir.
+
+@lilypond[quote,ragged-right,verbatim]
+{
+ \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
+ \set Staff.instrumentName = \markup {
+ \with-color #(x11-color 'navy) "Clarinet"
+ }
+ \time 2/4
+ gis''8 a''
+ \override Beam #'color = #(x11-color "medium turquoise")
+ gis'' a''
+ \override NoteHead #'color = #(x11-color "LimeGreen")
+ gis'' a''
+ \override Stem #'color = #(x11-color 'Boggle)
+ gis'' a''
+}
+@end lilypond
+
+
+@seealso
+
+Annexes : @ref{List of colors}.
+
+
+@refbugs
+Les couleurs de X11 ne sont pas toutes perceptibles dans un navigateur
+internet. Aussi nous vous recommandons, dans le cadre d'une
+présentation multimedia, d'utiliser des couleurs de base.
+
+Une couleur x11 n'aura pas forcément le même rendu qu'une couleur
+normale ayant un nom similaire.
+
+Vous ne pouvez pas coloriser des notes à l'intérieur d'un accord avec
+@code{\override}. si besoin est, utilisez @code{\tweak}.
+Pour plus de détails, consultez @ref{Objects connected to the input}.
+
+
+@node Parentheses
+@unnumberedsubsubsec Parentheses
+
+@cindex fantômes, notes
+@cindex notes fantômes
+@cindex parenthèses, notes entre
+
+Des objets peuvent être mis entre parenthèses en saisissant
+@code{\parenthesize} juste avant l'événement musical.
+
+@lilypond[relative=2,fragment,verbatim,ragged-right]
+<
+ c
+ \parenthesize d
+ g
+>4-\parenthesize -.
+@end lilypond
+
+Ceci n'est opérationnel que dans le cadre d'un accord, qui peut ne
+comprendre qu'une seule note.
+
+@example
+< \parenthesize NOTE>
+@end example
+
+
+@node Ambitus
+@unnumberedsubsubsec Ambitus
+@cindex ambitus
+
+L'@emph{ambitus} est l'amplitude des hauteurs d'une voix donnée dans une
+partition. Ce terme peut aussi désigner la tessiture qu'un instrument
+est capable d'atteindre. Souvent, cet ambitus est imprimé au début des
+partitions vocales, afin que les exécutants puissent voir au premier
+coup d'oeil s'ils sont en mesure de tenir la partie en question.
+
+Pour exprimer l'ambitus d'une pièce, on indique avant la clé deux notes
+représentant la hauteur la plus basse et la plus haute. Pour imprimer
+cet ambitus, il faut ajouter le graveur @internalsref{Ambitus_engraver}
+au contexte @internalsref{Voice}. Ainsi,
+
+@example
+\layout @{
+ \context @{
+ \Voice
+ \consists Ambitus_engraver
+ @}
+@}
+@end example
+
+@noindent
+donne pour résultat
+
+@lilypond[quote,ragged-right]
+\layout {
+ \context {
+ \Staff
+ \consists Ambitus_engraver
+ }
+}
+
+\relative \new Staff {
+ as'' c e2 cis,2
+}
+@end lilypond
+
+Si plusieurs voix se trouvent sur une même portée, on peut attribuer le
+graveur @internalsref{Ambitus_engraver} au contexte @internalsref{Staff}
+plutôt qu'au contexte @internalsref{Voice} ; l'ambitus affiché sera
+alors celui de toutes les voix cumulées, non d'une seule des voix
+actives.
+
+@lilypond[verbatim,ragged-right,quote]
+\new Staff \with {
+ \consists "Ambitus_engraver"
+}
+<<
+ \new Voice \with {
+ \remove "Ambitus_engraver"
+ } \relative c'' {
+ \override Ambitus #'X-offset = #-1.0
+ \voiceOne
+ c4 a d e f2
+ }
+ \new Voice \with {
+ \remove "Ambitus_engraver"
+ } \relative c' {
+ \voiceTwo
+ es4 f g as b2
+ }
+>>
+@end lilypond
+
+@noindent
+Cet exemple met en œuvre une fonctionnalité avancée :
+
+@example
+\override Ambitus #'X-offset = #-1.0
+@end example
+
+@noindent
+Ce réglage déplace l'ambitus vers la gauche. Le même résultat aurait pu
+être obtenu avec @code{extra-offset}, mais alors le système de mise en
+forme n'aurait pas attribué d'espace supplémentaire pour l'objet
+déplacé.
+
+@seealso
+
+Référence du programme : @internalsref{Ambitus},
+@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
+@internalsref{AmbitusAccidental}.
+
+Exemples :
+@lsr{vocal,ambitus@/.ly}.
+
+@refbugs
+
+LilyPond ne gère pas les collisions entre plusieurs ambitus présents sur
+une même portée.
+
+
+@node Stems
+@unnumberedsubsubsec Stems
+
+Dès qu'une note est rencontrée, un objet @internalsref{Stem} se crée
+automatiquement. Pour les rondes et les silences, ils sont aussi
+créés, mais en mode invisible.
+
+@refcommands
+
+@funindex \stemUp
+@code{\stemUp},
+@funindex \stemDown
+@code{\stemDown},
+@funindex \stemNeutral
+@code{\stemNeutral}.
+
+
+@commonprop
+
+Pour changer la direction des hampes au milieu de la portée, utilisez
+
+@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+a4 b c b
+\override Stem #'neutral-direction = #up
+a4 b c b
+\override Stem #'neutral-direction = #down
+a4 b c b
+@end lilypond
+
+
+@node Outside the staff
+@subsection Outside the staff
+
+
+@menu
+* Balloon help::
+* Grid lines::
+* Blank music sheet::
+@end menu
+
+@node Balloon help
+@subsection Balloon help
+
+Vous pouvez marquer et nommer des éléments de notation à l'aide de
+bulles. L'objectif premier de cette fonctionnalité est d'expliquer la
+notation.
+
+En voici un exemple :
+@c KEEP LY
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\new Voice \with { \consists "Balloon_engraver" }
+{
+ \balloonGrobText #'Stem #'(3 . 4) \markup { "Je suis une hampe" }
+ <c-\balloonText #'(-2 . -2) \markup { Hello } >8
+}
+@end lilypond
+
+@noindent
+Vous disposez de deux fonctions musicales, @code{balloonText} et
+@code{balloonGrobText}. @code{balloonGrobText} prend en argument
+l'objet graphique à agrémenter, alors que @code{balloonText} s'utilise
+comme une simple articulation. Les autres arguments sont le décalage
+et le texte de la bulle.
+
+@cindex bulles
+@cindex notation, expliquer
+
+@seealso
+
+Référence du programme : @internalsref{text-balloon-interface}.
+
+
+@node Grid lines
+@subsection Grid lines
+
+Vous pouvez tracer des lignes entre les portées, synchronisées avec
+les notes.
+@c KEEP LY
+@lilypond[ragged-right,quote,verbatim]
+\layout {
+ \context {
+ \Staff
+ \consists "Grid_point_engraver" %% active les guides
+ gridInterval = #(ly:make-moment 1 4)
+ }
+}
+
+\new Score \with {
+ \consists "Grid_line_span_engraver"
+ %% centre les lignes guides horizontalement sous les notes
+ \override NoteColumn #'X-offset = #-0.5
+}
+
+\new ChoirStaff <<
+ \new Staff {
+ \stemUp
+ \relative {
+ c'4. d8 e8 f g4
+ }
+ }
+ \new Staff {
+ %% centre les lignes guides verticalement
+ \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
+ \stemDown
+ \clef bass
+ \relative c {
+ c4 g' f e
+ }
+ }
+>>
+@end lilypond
+
+Exemples : @lsrdir{education}
+
+
+@node Blank music sheet
+@subsection Blank music sheet
+
+@cindex Papier musique
+@cindex Portées, feuille blanche
+
+Une feuille de papier musique s'obtient en utilisant des notes
+invisibles, et en invalidant le @code{Bar_number_engraver}.
+
+@c KEEP LY
+@lilypond[quote,verbatim]
+\layout{ indent = #0 }
+emptymusic = {
+ \repeat unfold 2 % À modifier pour plus de lignes.
+ { s1\break }
+ \bar "|."
+}
+\new Score \with {
+ \override TimeSignature #'transparent = ##t
+% décommenter la ligne suivante selon besoin
+% \override Clef #'transparent = ##t
+ defaultBarType = #""
+ \remove Bar_number_engraver
+} <<
+
+% à adapter selon les portées désirées
+ \new Staff \emptymusic
+ \new TabStaff \emptymusic
+>>
+@end lilypond
+
+
+++ /dev/null
-@c -*- coding: utf-8; mode: texinfo; -*-
-@ignore
- Translation of GIT committish: f7420240e4ce1fe2217646482a47d00f566af52c
-
- When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
-@end ignore
-
-@node Educational use
-@section Educational use
-
-@menu
-* Note heads::
-* Inside the staff::
-* Outside the staff::
-@end menu
-
-
-@node Note heads
-@subsection Note heads
-
-@menu
-* Easy notation note heads::
-* Shape note heads::
-* Improvisation::
-* Special noteheads::
-@end menu
-
-@node Easy Notation note heads
-@unnumberedsubsubsec Easy Notation note heads
-
-@cindex tête de note, apprentissage
-@cindex notation facile
-@cindex Hal Leonard
-
-Les notes @q{easy play} comportent le nom de la note à l'intérieur de
-la tête. On l'utilise dans des partitions pour débutants.
-
-@lilypond[quote,ragged-right,verbatim,fragment,staffsize=26]
- \easyHeadsOn
- c'2 e'4 f' | g'1
-@end lilypond
-
-La commande @code{\easyHeadsOn} remplace tous les réglages de l'objet
-@internalsref{NoteHead}. L'impression doit être de plus grande
-taille, afin que les lettres soient lisibles. Voir à ce propos
-@ref{Setting the staff size}.
-
-@refcommands
-
-@funindex \easyHeadsOn
-@code{\easyHeadsOn}
-
-
-@node Shape note heads
-@unnumberedsubsubsec Shape note heads
-
-@cindex tête de note, allure
-
-En notation profilée, le profil d'une tête de note correspond à la
-fonction harmonique de cette note dans la gamme. Ce style de notation
-était très en vogue dans les recueils de chansons américains du XIXe
-siècle.
-
-Des notes profilées sont produites après activation de
-@code{\aikenHeads} ou @code{\sacredHarpHeads}, selon le style.
-
-@lilypond[verbatim,relative=1,fragment]
- \aikenHeads
- c8 d4 e8 a2 g1
- \sacredHarpHeads
- c8 d4. e8 a2 g1
-@end lilypond
-
-Les profils sont déterminés par la hauteur dans la gamme, le premier
-degré étant défini par la commande @code{\key}.
-
-@funindex \key
-@funindex shapeNoteStyles
-@funindex \aikenHeads
-@funindex \sacredHarpHeads
-
-Les notes profilées sont mises en œuvre par la propriété
-@code{shapeNoteStyles}, dont les valeurs sont constituées d'une liste
-de symboles. Le n-ième élément indique le style à utiliser pour le
-n-ième degré de la gamme. Toutes les combinaisons sont possibles :
-
-@lilypond[verbatim,relative=1,fragment]
- \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond)
- c8 d4. e8 a2 g1
-@end lilypond
-
-
-@node Improvisation
-@unnumberedsubsubsec Improvisation
-
-L'improvisation peut quelquefois s'indiquer à l'aide de notes de forme
-allongée (@emph{slash}). Ces têtes de notes sont créées par
-l'adjonction du graveur @internalsref{Pitch_squash_engraver} au
-contexte @internalsref{Voice}, de telle sorte que la commande
-
-@example
-\set squashedPosition = #0
-\override NoteHead #'style = #'slash
-@end example
-
-@noindent
-active les notes penchées.
-
-Vous disposez des raccourcis @code{\improvisationOn} et son corollaire
-@code{\improvisationOff} pour cette séquence, comme l'illustre
-l'exemple ci dessous.
-
-@lilypond[verbatim,ragged-right,quote]
-\new Voice \with {
- \consists Pitch_squash_engraver
-} \transpose c c' {
- e8 e g a a16(bes)(a8) g \improvisationOn
- e8
- ~e2~e8 f4 fis8
- ~fis2 \improvisationOff a16(bes) a8 g e
-}
-@end lilypond
-
-
-@node Special noteheads
-@unnumberedsubsubsec Special noteheads
-
-@cindex têtes de note, spéciales
-
-Certains instruments utilisent des têtes de note différentes à des
-fins spécifiques --- des croix pour le @q{parlato} des chanteurs ou les
-notes étouffées des guitares ; des losanges pour les harmoniques des
-cordes. Il existe un raccourci (@code{\harmonic}) pour les notes en
-losange ; pour les autres styles de tête, il vous faudra jouer avec la
-propriété @code{NoteHead}.
-
-@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
-c4 d
-\override NoteHead #'style = #'cross
-e f
-\revert NoteHead #'style
-e d <c f\harmonic> <d a'\harmonic>
-@end lilypond
-
-@noindent
-Pour une liste exhaustive des styles de tête de note, consultez
-@ref{Note head styles}.
-
-
-@seealso
-
-Référence du programme : @internalsref{NoteHead}.
-
-
-@node Inside the staff
-@subsection Inside the staff
-
-
-@menu
-* Selecting notation font size::
-* Fingering instructions::
-* Hidden notes::
-* Coloring objects::
-* Parentheses::
-* Ambitus::
-* Stems::
-@end menu
-
-@node Selecting notation font size
-@unnumberedsubsubsec Selecting notation font size
-
-Le plus sûr moyen de régler la taille de la police, quelque soit le
-contexte, consiste à définir la propriété @code{fontSize}.
-
-@lilypond[quote,fragment,relative=1,verbatim]
-c8
-\set fontSize = #-4
-c f
-\set fontSize = #3
-g
-@end lilypond
-
-@noindent
-Ceci ne modifiera en rien la taille des différents symboles tels que
-ligatures ou liaisons.
-
-En interne, la propriété @code{fontSize} d'un contexte aura pour effet
-de définir la propriété @code{font-size} pour tous les objets de
-rendu. La valeur de @code{font-size} est un entier représentant la
-taille proportionnellement à la hauteur standard de la portée en
-cours. Chaque incrément correspond à une augmentation d'environ
-12@tie{}% de la taille de la police. Un pas de six aboutit exactement
-au doublement de la taille. La fonction Scheme @code{magstep}
-convertit le nombre affecté à @code{font-size} en facteur d'échelle.
-Vous pouvez aussi définir directement la propriété @code{font-size} de
-manière à n'affecter seulement que certains objets de rendu.
-
-@lilypond[quote,fragment,relative=1,verbatim]
-c8
-\override NoteHead #'font-size = #-4
-c f
-\override NoteHead #'font-size = #3
-g
-@end lilypond
-
-Pour changer la taille des symboles musicaux (police Feta), LilyPond met
-à l'échelle la fonte dont la taille est la plus proche de la taille voulue ---
-cf. @ref{Setting the staff size}. La taille standard, pour laquelle
-@code{font-size} vaut 0, dépend de la hauteur de la portée. À une
-portée de 20 points correspond une police de 10 points.
-
-La propriété @code{font-size} ne peut intervenir que pour les objets
-qui utilisent des polices, autrement dit ceux qui disposent de
-l'interface de rendu @internalsref{font-interface}.
-
-@refcommands
-
-Les commandes suivantes définissent @code{fontSize} pour la voix en
-cours :
-
-@funindex \tiny
-@code{\tiny},
-@funindex \small
-@code{\small},
-@funindex \normalsize
-@code{\normalsize}.
-
-
-
-@node Fingering instructions
-@unnumberedsubsubsec Fingering instructions
-
-@cindex doigté
-@cindex substitution de doigt
-
-
-Les doigtés peuvent être indiqués comme suit :
-@example
-@var{note}-@var{chiffre_du_doigt}
-@end example
-Pour les substitutions de doigts, on a recours à une indication
-textuelle (commande @code{\markup}) de doigté
-(commande @code{\finger}).
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-c4-1 c-2 c-3 c-4
-c^\markup { \finger "2 - 3" }
-@end lilypond
-
-
-La commande @code{\thumb} peut être utilisée pour indiquer, par exemple
-dans une partition de violoncelle, si une note doit être jouée avec le
-pouce (@q{thumb} en anglais).
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-<a_\thumb a'-3>8 <b_\thumb b'-3>
-@end lilypond
-
-
-Les doigtés des accords peuvent être saisis note par note,
-en les indiquant après chaque hauteur de note.
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-< c-1 e-2 g-3 b-5 >4
-@end lilypond
-
-
-@commonprop
-
-On peut contrôler précisément les doigtés des accords en réglant
-la propriété @code{fingeringOrientations}.
-
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-\set fingeringOrientations = #'(left down)
-<c-1 es-2 g-4 bes-5 > 4
-\set fingeringOrientations = #'(up right down)
-<c-1 es-2 g-4 bes-5 > 4
-@end lilypond
-
-
-Cette propriété permet également, dans de la musique monophonique,
-d'indiquer des doigtés très proches des têtes de notes.
-
-@lilypond[verbatim,ragged-right,quote,fragment]
-\set fingeringOrientations = #'(right)
-<es'-2>4
-@end lilypond
-
-
-@seealso
-
-Référence du programme : @internalsref{Fingering}.
-
-D'autres exemples : @lsr{expressive,fingering-chords.ly}.
-
-
-@node Hidden notes
-@unnumberedsubsubsec Hidden notes
-
-@cindex Masquées, notes
-@cindex Invisibles, notes
-@cindex Transparentes, notes
-
-@funindex \hideNotes
-@funindex \unHideNotes
-Les notes masquées --- ou invisibles ou encore transparentes --- sont
-utiles dans le cadre d'exercices de théorie ou de composition.
-
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
-c4 d4
-\hideNotes
-e4 f4
-\unHideNotes
-g4 a
-@end lilypond
-
-
-@node Coloring objects
-@unnumberedsubsubsec Coloring objects
-
-Des objets peuvent être colorisés individuellement. Une listes des
-noms des couleurs disponibles se trouvent à l'annexe @ref{List of colors}.
-
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\override NoteHead #'color = #red
-c4 c
-\override NoteHead #'color = #(x11-color 'LimeGreen)
-d
-\override Stem #'color = #blue
-e
-@end lilypond
-
-L'intégralité de la palette des couleurs définies pour X11 est
-accessible par la fonction Scheme x11-color. Cette fonction prend
-en argument une expression symbolique
-
-@example
-\override Beam #'color = #(x11-color 'MediumTurquoise)
-@end example
-
-ou une chaîne de caractères
-
-@example
-\override Beam #'color = #(x11-color "MediumTurquoise")
-@end example
-
-La première formulation est à la fois plus rapide à écrire et aussi
-plus efficace. Néanmoins, la deuxième forme permet d'accéder aux noms
-composés des couleurs de X11.
-
-@example
-\override Beam #'color = #(x11-color "medium turquoise")
-@end example
-
-Lorsque la fonction x11-color ne trouve pas le paramètre fourni, elle
-revient à la couleur par défaut, le noir. Le problème ressort de
-façon évidente au vu de la partition finale.
-
-L'exemple suivant illustre l'utilisation de la fonction
-@code{x11-color}. Notez que, après avoir été définie à (x11-color
-'Boggle), la couleur des hampes repasse au noir.
-
-@lilypond[quote,ragged-right,verbatim]
-{
- \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2)
- \set Staff.instrumentName = \markup {
- \with-color #(x11-color 'navy) "Clarinet"
- }
- \time 2/4
- gis''8 a''
- \override Beam #'color = #(x11-color "medium turquoise")
- gis'' a''
- \override NoteHead #'color = #(x11-color "LimeGreen")
- gis'' a''
- \override Stem #'color = #(x11-color 'Boggle)
- gis'' a''
-}
-@end lilypond
-
-
-@seealso
-
-Annexes : @ref{List of colors}.
-
-
-@refbugs
-Les couleurs de X11 ne sont pas toutes perceptibles dans un navigateur
-internet. Aussi nous vous recommandons, dans le cadre d'une
-présentation multimedia, d'utiliser des couleurs de base.
-
-Une couleur x11 n'aura pas forcément le même rendu qu'une couleur
-normale ayant un nom similaire.
-
-Vous ne pouvez pas coloriser des notes à l'intérieur d'un accord avec
-@code{\override}. si besoin est, utilisez @code{\tweak}.
-Pour plus de détails, consultez @ref{Objects connected to the input}.
-
-
-@node Parentheses
-@unnumberedsubsubsec Parentheses
-
-@cindex fantômes, notes
-@cindex notes fantômes
-@cindex parenthèses, notes entre
-
-Des objets peuvent être mis entre parenthèses en saisissant
-@code{\parenthesize} juste avant l'événement musical.
-
-@lilypond[relative=2,fragment,verbatim,ragged-right]
-<
- c
- \parenthesize d
- g
->4-\parenthesize -.
-@end lilypond
-
-Ceci n'est opérationnel que dans le cadre d'un accord, qui peut ne
-comprendre qu'une seule note.
-
-@example
-< \parenthesize NOTE>
-@end example
-
-
-@node Ambitus
-@unnumberedsubsubsec Ambitus
-@cindex ambitus
-
-L'@emph{ambitus} est l'amplitude des hauteurs d'une voix donnée dans une
-partition. Ce terme peut aussi désigner la tessiture qu'un instrument
-est capable d'atteindre. Souvent, cet ambitus est imprimé au début des
-partitions vocales, afin que les exécutants puissent voir au premier
-coup d'oeil s'ils sont en mesure de tenir la partie en question.
-
-Pour exprimer l'ambitus d'une pièce, on indique avant la clé deux notes
-représentant la hauteur la plus basse et la plus haute. Pour imprimer
-cet ambitus, il faut ajouter le graveur @internalsref{Ambitus_engraver}
-au contexte @internalsref{Voice}. Ainsi,
-
-@example
-\layout @{
- \context @{
- \Voice
- \consists Ambitus_engraver
- @}
-@}
-@end example
-
-@noindent
-donne pour résultat
-
-@lilypond[quote,ragged-right]
-\layout {
- \context {
- \Staff
- \consists Ambitus_engraver
- }
-}
-
-\relative \new Staff {
- as'' c e2 cis,2
-}
-@end lilypond
-
-Si plusieurs voix se trouvent sur une même portée, on peut attribuer le
-graveur @internalsref{Ambitus_engraver} au contexte @internalsref{Staff}
-plutôt qu'au contexte @internalsref{Voice} ; l'ambitus affiché sera
-alors celui de toutes les voix cumulées, non d'une seule des voix
-actives.
-
-@lilypond[verbatim,ragged-right,quote]
-\new Staff \with {
- \consists "Ambitus_engraver"
-}
-<<
- \new Voice \with {
- \remove "Ambitus_engraver"
- } \relative c'' {
- \override Ambitus #'X-offset = #-1.0
- \voiceOne
- c4 a d e f2
- }
- \new Voice \with {
- \remove "Ambitus_engraver"
- } \relative c' {
- \voiceTwo
- es4 f g as b2
- }
->>
-@end lilypond
-
-@noindent
-Cet exemple met en œuvre une fonctionnalité avancée :
-
-@example
-\override Ambitus #'X-offset = #-1.0
-@end example
-
-@noindent
-Ce réglage déplace l'ambitus vers la gauche. Le même résultat aurait pu
-être obtenu avec @code{extra-offset}, mais alors le système de mise en
-forme n'aurait pas attribué d'espace supplémentaire pour l'objet
-déplacé.
-
-@seealso
-
-Référence du programme : @internalsref{Ambitus},
-@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
-@internalsref{AmbitusAccidental}.
-
-Exemples :
-@lsr{vocal,ambitus@/.ly}.
-
-@refbugs
-
-LilyPond ne gère pas les collisions entre plusieurs ambitus présents sur
-une même portée.
-
-
-@node Stems
-@unnumberedsubsubsec Stems
-
-Dès qu'une note est rencontrée, un objet @internalsref{Stem} se crée
-automatiquement. Pour les rondes et les silences, ils sont aussi
-créés, mais en mode invisible.
-
-@refcommands
-
-@funindex \stemUp
-@code{\stemUp},
-@funindex \stemDown
-@code{\stemDown},
-@funindex \stemNeutral
-@code{\stemNeutral}.
-
-
-@commonprop
-
-Pour changer la direction des hampes au milieu de la portée, utilisez
-
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-a4 b c b
-\override Stem #'neutral-direction = #up
-a4 b c b
-\override Stem #'neutral-direction = #down
-a4 b c b
-@end lilypond
-
-
-@node Outside the staff
-@subsection Outside the staff
-
-
-@menu
-* Balloon help::
-* Grid lines::
-* Blank music sheet::
-@end menu
-
-@node Balloon help
-@subsection Balloon help
-
-Vous pouvez marquer et nommer des éléments de notation à l'aide de
-bulles. L'objectif premier de cette fonctionnalité est d'expliquer la
-notation.
-
-En voici un exemple :
-@c KEEP LY
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-\new Voice \with { \consists "Balloon_engraver" }
-{
- \balloonGrobText #'Stem #'(3 . 4) \markup { "Je suis une hampe" }
- <c-\balloonText #'(-2 . -2) \markup { Hello } >8
-}
-@end lilypond
-
-@noindent
-Vous disposez de deux fonctions musicales, @code{balloonText} et
-@code{balloonGrobText}. @code{balloonGrobText} prend en argument
-l'objet graphique à agrémenter, alors que @code{balloonText} s'utilise
-comme une simple articulation. Les autres arguments sont le décalage
-et le texte de la bulle.
-
-@cindex bulles
-@cindex notation, expliquer
-
-@seealso
-
-Référence du programme : @internalsref{text-balloon-interface}.
-
-
-@node Grid lines
-@subsection Grid lines
-
-Vous pouvez tracer des lignes entre les portées, synchronisées avec
-les notes.
-@c KEEP LY
-@lilypond[ragged-right,quote,verbatim]
-\layout {
- \context {
- \Staff
- \consists "Grid_point_engraver" %% active les guides
- gridInterval = #(ly:make-moment 1 4)
- }
-}
-
-\new Score \with {
- \consists "Grid_line_span_engraver"
- %% centre les lignes guides horizontalement sous les notes
- \override NoteColumn #'X-offset = #-0.5
-}
-
-\new ChoirStaff <<
- \new Staff {
- \stemUp
- \relative {
- c'4. d8 e8 f g4
- }
- }
- \new Staff {
- %% centre les lignes guides verticalement
- \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
- \stemDown
- \clef bass
- \relative c {
- c4 g' f e
- }
- }
->>
-@end lilypond
-
-Exemples : @lsrdir{education}
-
-
-@node Blank music sheet
-@subsection Blank music sheet
-
-@cindex Papier musique
-@cindex Portées, feuille blanche
-
-Une feuille de papier musique s'obtient en utilisant des notes
-invisibles, et en invalidant le @code{Bar_number_engraver}.
-
-@c KEEP LY
-@lilypond[quote,verbatim]
-\layout{ indent = #0 }
-emptymusic = {
- \repeat unfold 2 % À modifier pour plus de lignes.
- { s1\break }
- \bar "|."
-}
-\new Score \with {
- \override TimeSignature #'transparent = ##t
-% décommenter la ligne suivante selon besoin
-% \override Clef #'transparent = ##t
- defaultBarType = #""
- \remove Bar_number_engraver
-} <<
-
-% à adapter selon les portées désirées
- \new Staff \emptymusic
- \new TabStaff \emptymusic
->>
-@end lilypond
-
-
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
+
+
@node Expressive marks
@section Expressive marks
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@node Fundamental concepts
@chapter Fundamental concepts
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@node Guitar
@section Guitar
@cindex tablature de guitare
@menu
-* Guitar TODO::
+* Guitar sections::
@end menu
-@node Guitar TODO
-@subsection Guitar TODO
+@node Guitar sections
+@subsection Guitar sections
-@menu
+@menu
* String number indications::
* Tablatures basic::
* Non-guitar tablatures::
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
UNTRANSLATED NODE: IGNORE ME
@menu
-* Up and down::
+* Controlling direction::
* Distances and measurements MAYBE MOVE::
@end menu
-@node Up and down
-@subsection Up and down
+@node Controlling direction
+@subsection Controlling direction
UNTRANSLATED NODE: IGNORE ME
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Ludovic Sardain, John Mandereau
+@c Translation checkers: Jean-Charles Malahieude, Jean-Yves Baudais
+
+
@node Introduction
@chapter Introduction
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
UNTRANSLATED NODE: IGNORE ME
+@subheading Format-specific instructions
+@subsubheading @LaTeX{}
+@subsubheading Texinfo
+@subheading Command line options
@node Filename extensions
@section Filename extensions
@omflanguage French
@end ignore
+@c Translators: John Mandereau
@ifhtml
Ce document est également disponible au format
@omflanguage French
@end ignore
+@c Translators: John Mandereau
+
@ifhtml
Ce document est également disponible au format
@uref{source/Documentation/user/lilypond-program.fr.pdf,PDF}.
@omflanguage French
@end ignore
+@c Translators: John Mandereau
+
@ifhtml
Ce document est également disponible au format
@uref{source/Documentation/user/lilypond.fr.pdf,PDF}.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Jean-Charles Malahieude
@node Non-musical notation
@chapter Non-musical notation
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Frédéric Chiasson, Jean-Charles Malahieude
@node Notation manual tables
@appendix Notation manual tables
@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: 1859194a9f46a8886166cafee0e450b39fc5a963
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@node Musical notation
@chapter Musical notation
-This chapter explains how to create musical notation.
+Ce chapitre explique comment créer la notation musicale standard.
@menu
-* Pitches:: Writing and display the pitches of notes.
-* Rhythms:: Writing and displaying the durations of notes.
-* Expressive marks:: Adding expression to notes.
-* Repeats:: Repeat music.
-* Simultaneous notes:: More than one note at once.
-* Staff notation:: Displaying staves.
-* Educational use:: Special notation to increase legibility.
-* Text:: Adding text to scores.
+* Pitches:: écriture et gravure des hauteurs de note.
+* Rhythms:: écriture et gravure des durées.
+* Expressive marks:: ajout de signes d'exécution et d'interprétation.
+* Repeats:: différents types de répétitions de musique.
+* Simultaneous notes:: polyphonie et accords.
+* Staff notation:: gravure de la portée.
+* Editorial annotations:: annotations d'édition ou à usage pédagogique.
+* Text:: ajout de texte à la partition.
@end menu
@include pitches.itely
@include repeats.itely
@include simultaneous.itely
@include staff.itely
-@include educational.itely
+@include editorial.itely
@include text.itely
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@node Percussion
@section Percussion
-@menu
-* TODO percussion node fix::
+@menu
+* Percussion sections::
@end menu
-@node TODO percussion node fix
-@subsection TODO percussion node fix
+@node Percussion sections
+@subsection Percussion sections
La notation rythmique sert avant tout aux parties de percussions ou de
batterie, mais on peut aussi s'en servir à des fins pédagogiques, pour
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@node Piano music
@section Piano music
@menu
-* TODO piano node fix::
+* Piano sections::
@end menu
-@node TODO piano node fix
-@subsection TODO piano node fix
+@node Piano sections
+@subsection Piano sections
Les systèmes de piano comprennent deux portées réunies par une accolade.
Les portées sont largement autonomes, mais il arrive que des voix passent
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Frédéric Chiasson
+@c Translation checkers: Valentin Villenave, Jean-Charles Malahieude
+
@node Pitches
@section Pitches
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Ludovic Sardain
+
@node Preface
@unnumbered Preface
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
+
@node Repeats
@section Repeats
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Frédéric Chiasson
+@c Translation checkers: Valentin Villenave, Jean-Charles Malahieude
+
@node Rhythms
@section Rhythms
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Frédéric Chiasson, Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
+
@node Simultaneous notes
@section Simultaneous notes
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
* Breaks::
* Vertical spacing::
* Horizontal spacing::
+* Page layout MOVED FROM LM::
@end menu
@node Paper and pages
@section Paper and pages
UNTRANSLATED NODE: IGNORE ME
+@node Page layout MOVED FROM LM
+@section Page layout MOVED FROM LM
+
+UNTRANSLATED NODE: IGNORE ME
+
+@menu
+* Introduction to layout::
+* Global sizes::
+* Line breaks::
+* Page breaks::
+* Fitting music onto fewer pages::
+@end menu
+@node Introduction to layout
+@subsection Introduction to layout
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Global sizes
+@subsection Global sizes
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Line breaks
+@subsection Line breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Page breaks
+@subsection Page breaks
+
+UNTRANSLATED NODE: IGNORE ME
+
+@node Fitting music onto fewer pages
+@subsection Fitting music onto fewer pages
+
+UNTRANSLATED NODE: IGNORE ME
+
-- SKELETON FILE --
When you actually translate this file, please remove these lines as
@c -*- coding: utf-8; mode: texinfo; -*-
@ignore
- Translation of GIT committish: 1859194a9f46a8886166cafee0e450b39fc5a963
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@node Specialist notation
@chapter Specialist notation
-This chapter explains how to create musical notation.
+Ce chapitre explique comment créer la notation musicale
+spécifique à certains intruments ou certaines époques.
@menu
-* Vocal music:: a
-* Chords Blah:: b
-* Piano music:: c
-* Percussion:: d
-* Guitar:: e
+* Vocal music::
+* Chords::
+* Piano music::
+* Percussion::
+* Guitar::
* Orchestral strings::
* Bagpipes::
-* Ancient notation:: g
+* Ancient notation::
@end menu
@include vocal.itely
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave, Jean-Charles Malahieude
+@c Translation checkers: John Mandereau
+
@node Staff notation
@section Staff notation
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
@node Orchestral strings
@section Orchestral strings
Cette section dispense des informations supplémentaires et utiles à
l'écriture pour les cordes frottées.
-@menu
-* Orchestral strings TODO::
+@menu
+* Orchestral strings sections::
@end menu
-@node Orchestral strings TODO
-@subsection Orchestral strings TODO
+@node Orchestral strings sections
+@subsection Orchestral strings sections
-@menu
+@menu
* Artificial harmonics (strings)::
@end menu
@c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: 007d0b5b94c36f9d9e228309d5b0e6a67ae27ebc
+ Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Jean-Charles Malahieude
+@c Translation checkers: Valentin Villenave, John Mandereau
+
@node Text
@section Text
@c Your first LilyPond score in 10 minutes?
+@c Translators: Nicolas Grandclaude, Ludovic Sardain, Gauvain Pocentek
+@c Translation checkers: Jean-Charles Malahieude, Valentin Villenave, John Mandereau
+
+
@node Tutorial
@chapter Tutorial
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave, Nicolas Klutchnikoff
+@c Translation checkers: Jean-Charles Malahieude, John Mandereau
+
@node Tweaking output
@chapter Tweaking output
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Valentin Villenave
+@c Translation checkers: Jean-Charles Malahieude
@node Vocal music
@section Vocal music
version that you are working on. See TRANSLATION for details.
@end ignore
+@c Translators: Ludovic Sardain
+@c Translation checkers: Jean-Yves Baudais, Valentin Villenave, John Mandereau, Jean-Charles Malahieude
+
@node Working on LilyPond projects
@chapter Working on LilyPond projects
TELY_FILES = $(shell ls $(depth)/Documentation/user/lilypond*.tely)
TELY_FILES += $(foreach l, $(LANGS), $(shell ls $(depth)/Documentation/$(l)/user/lilypond*.tely))
-messages: $(MO_FILES)
+messages: $(outdir)/messages
+
+$(outdir)/messages: $(MO_FILES)
for i in $(CATALOGS); do \
mkdir -p $(doc-localedir)/$$i/LC_MESSAGES; \
cp $(outdir)/$$i.mo $(doc-localedir)/$$i/LC_MESSAGES/$(DOMAIN).mo; \
done
+ touch $@
po-update:
$(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -o texi.pot --gettext $(TELY_FILES:%.tely=../%.tely)
--- /dev/null
+<html>
+<!--
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+!-->
+<head>
+ <title>LilyPond documentation translations status</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+ documentation are translated; for each documentation section, you
+ can read the word count in parentheses, who translated and verified
+ it (translation checkers are printed with a smaller font size), how
+ much of the original section in English has been translation, how
+ up-to-date is the translation, and whether the translation has
+ already been updated after Grand Documentation Project (GDP) was
+ started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+ English, therefore translated documentation is mostly not
+ up-to-date; however, this does not mean translated documentation is
+ inaccurate regarding current LilyPond version, it only means that
+ translated docmentation is not synced with documentation in English.
+ We do our best to keep translated documentation consistent with
+ current LilyPond syntax and features, and will update it per
+ section, when GDP processing of the corresponding section in English
+ is finished.
+</p>
+
+</body>
+</html>
# todo: add latex.
PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
+# this prevents aux files from being reused for translated docs
+TEXI2PDF_FLAGS = --tidy
INFO_DOCS = lilypond lilypond-internals music-glossary lilypond-program lilypond-learning
INFO_FILES = $(INFO_DOCS:%=$(outdir)/%.info)
+ifeq ($(out),www)
+INFO_IMAGES_DIR = lilypond
+endif
+
STEPMAKE_TEMPLATES=tex texinfo omf documentation
-#TEXI2DVI_FLAGS = -E
OMF_FILES += $(outdir)/lilypond-internals.html.omf
LOCALSTEPMAKE_TEMPLATES=lilypond ly
ifeq ($(out),www)
# This builds all .info targets with images, in out-www.
-# Viewawble with a recent Emacs, doing: M-x info out-www/lilypond.info
+# Viewable with a recent Emacs, doing: C-u C-h i out-www/lilypond.info
# Cancel the special, non-image info generation rule that skips images:
$(outdir)/%.info: $(outdir)/%.nexi
+# "makeinfo --info" MUST be able to read PNGs from CWD for info images
+# to work, hence lilypond/ -> $(outdir)/ symlink.
+# $(outdir)/lilypond/*.png symlinks are only needed to view
+# out-www/*.info with Emacs -- HTML docs no longer need these
+# symlinks, see replace_symlinks_urls in
+# buildscripts/add_html_footer.py.
+$(outdir)/%.info: lilypond
+lilypond: $(OUT_PNG_IMAGES)
+ rm -f lilypond
+ ln -s $(outdir) lilypond
+ mkdir -p $(outdir)/lilypond
+ find $(outdir)/lilypond/ -name '*'.png | xargs rm -f
+ (cd $(outdir)/lilypond/ ; ln -sf ../*.png . )
+
local-install-info: info
- -$(INSTALL) -d $(DESTDIR)$(package_infodir)
+ -$(INSTALL) -d $(DESTDIR)$(infodir)
ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
## Can not have absolute symlinks because some binary packages build schemes
## install files in nonstandard root. Best we can do is to notify the
@echo
@echo "For images in the INFO docs to work, do: "
@echo
- @echo " (cd $(package_infodir) && ln -sf ../../doc/lilypond/Documentation/user/*png .)"
+ @echo " (cd $(infodir) && ln -sfT ../doc/lilypond/html/Documentation/user lilypond)"
@echo "or add something like that to the postinstall script."
@echo
else # installing directly into standard /usr/...
- -$(INSTALL) -d $(DESTDIR)$(package_infodir)
+ -$(INSTALL) -d $(DESTDIR)$(infodir)
-install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info
-install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info
-install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info
+ -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info
+ -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info
install-info --info-dir=$(infodir) $(outdir)/lilypond.info
- (cd $(package_infodir) && ln -sf $(webdir)/Documentation/user/*png .)
+ cd $(infodir) && ln -sfT $(webdir)/Documentation/user lilypond
endif # installing directly into standard /usr/...
local-uninstall-WWW:
- rm -f $(package_infodir)/*.png
+ rm -f $(infodir)/lilypond
else # out!=www
# Cancel the default info generation rule that generates images:
-$(outdir)/%.info: # $(outdir)/%.texi
+$(outdir)/%.info: $(outdir)/%.texi
local-install-info: info
-$(INSTALL) -d $(DESTDIR)$(package_infodir)
@echo "and read the extra instructions."
@echo
else # installing directly into standard /usr/...
- -$(INSTALL) -d $(DESTDIR)$(package_infodir)
+ -$(INSTALL) -d $(DESTDIR)$(infodir)
-install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info
-install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info
-install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info
+ -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info
+ -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info
install-info --info-dir=$(infodir) $(outdir)/lilypond.info
@echo
@echo "***************************************************************"
default:
+local-clean:
+ rm -f lilypond
local-help: extra-local-help
extra-local-help:
@echo -e "\
- dvi update dvi documents\n\
info update info pages\n\
ps update PostScript documents\n\
xml update Docbook xml documentation\n\
$(outdir)/lilypond.nexi: $(outdir)/lilypond-internals.texi
#
-# The split user manual
+# Split manuals in HTML
#
-$(outdir)/lilypond/index.html: $(outdir)/lilypond.texi $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
- mkdir -p $(dir $@)
- $(MAKEINFO) -I$(outdir) --output=$(outdir)/lilypond --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-# we /might/ switch to texi2html if it can be fixed:
-# echo "*************************************"
-# echo $<
-# cd $(outdir)
-# texi2html --output=$(outdir)/lilypond --css-include=$(top-src-dir)/Documentation/texinfo.css $<
- find $(outdir)/lilypond/ -name '*'.png -o -name '*'.ly | xargs rm -f
-# symbolic links to save space
- (cd $(outdir)/lilypond/ ; ln -sf ../*.png ../*.ly . )
+$(outdir)/lilypond/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
+$(outdir)/lilypond-program/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
+$(outdir)/lilypond-learning/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
+$(outdir)/music-glossary/index.html: $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
-#
-# One big page user manual
-#
-$(outdir)/lilypond-big-page.html: $(outdir)/lilypond.texi $(OUT_PNG_IMAGES)
- $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
#
-# The split program usage
+# Manuals in one big HTML page
#
-$(outdir)/lilypond-program/index.html: $(outdir)/lilypond-program.texi $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
- mkdir -p $(dir $@)
- $(MAKEINFO) -I$(outdir) --output=$(outdir)/lilypond-program --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
- find $(outdir)/lilypond-program/ -name '*'.png -o -name '*'.ly | xargs rm -f
-# symbolic links to save space
- (cd $(outdir)/lilypond-program/ ; ln -sf ../*.png ../*.ly . )
-
-#
-# The Learning Manual
-#
-$(outdir)/lilypond-learning/index.html: $(outdir)/lilypond-learning.texi $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES)
- mkdir -p $(dir $@)
- $(MAKEINFO) -I$(outdir) --output=$(outdir)/lilypond-learning --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
- find $(outdir)/lilypond-learning/ -name '*'.png -o -name '*'.ly | xargs rm -f
-# symbolic links to save space
- (cd $(outdir)/lilypond-learning/ ; ln -sf ../*.png ../*.ly . )
-
-
-#
-# One big page program usage
-#
-$(outdir)/lilypond-program-big-page.html: $(outdir)/lilypond-program.texi $(OUT_PNG_IMAGES)
- $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
-
-#
-# One big page learning manual
-#
-$(outdir)/lilypond-learning-big-page.html: $(outdir)/lilypond-learning.texi $(OUT_PNG_IMAGES)
- $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
-
-
-#
-# The split internals reference
-#
-$(outdir)/lilypond-internals/index.html: $(outdir)/lilypond-internals.texi
- mkdir -p $(dir $@)
- $(MAKEINFO) --output=$(outdir)/lilypond-internals --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-
-#
-# One big page internals reference
-#
-$(outdir)/lilypond-internals-big-page.html: $(outdir)/lilypond-internals.texi
- $(MAKEINFO) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
-
-#
-# The split glossary
-#
-$(outdir)/music-glossary/index.html: $(outdir)/music-glossary.texi
- mkdir -p $(dir $@)
- $(MAKEINFO) --output=$(outdir)/music-glossary --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
- find $(outdir)/music-glossary/ -name '*'.png -o -name '*'.ly | xargs rm -f
-# symbolic links to save space
- (cd $(outdir)/music-glossary/ ; ln -sf ../*.png ../*.ly . )
+$(outdir)/lilypond-big-page.html: $(OUT_PNG_IMAGES)
+$(outdir)/lilypond-program-big-page.html: $(OUT_PNG_IMAGES)
+$(outdir)/lilypond-learning-big-page.html: $(OUT_PNG_IMAGES)
$(outdir)/lilypond.xml: $(outdir)/lilypond.texi
mkdir -p $(dir $@)
mkdir -p $(dir $@)
$(MAKEINFO) --output=$(outdir)/lilypond-internals --docbook $<
-$(outdir)/lilypond.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
-
-$(outdir)/lilypond-program.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
-
-$(outdir)/lilypond-learning.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
+$(outdir)/lilypond.pdf $(outdir)/lilypond-program.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
+$(outdir)/lilypond-learning.pdf $(outdir)/music-glossary.pdf: $(OUT_PDF_IMAGES) $(OUT_PNG_IMAGES)
$(outdir)/%.png: %.png
convert -depth 8 -geometry 50x50% $< $@
@rm -f $(@)
ln -sf ../../ $(@)
-$(outdir)/lilypond/source:
- @rm -f $(@)
- mkdir -p $(outdir)/lilypond
- ln -sf ../../../ $(@)
-
-$(outdir)/music-glossary/source:
- @rm -f $(@)
- mkdir -p $(outdir)/music-glossary
- ln -sf ../../../ $(@)
-
-$(outdir)/lilypond-program/source:
+$(outdir)/%/source:
@rm -f $(@)
- mkdir -p $(outdir)/lilypond-program
- ln -sf ../../../ $(@)
-
-$(outdir)/lilypond-learning/source:
- @rm -f $(@)
- mkdir -p $(outdir)/lilypond-learning
+ mkdir -p $(dir $@)
ln -sf ../../../ $(@)
local-WWW: $(HTML_FILES) $(DEEP_HTML_FILES)\
- $(datafiles) $(PDF_FILES) $(source-links) info info-dir
-
-info-dir:
- $(SHELL) $(buildscript-dir)/install-info-html.sh --dir=$(outdir) lilypond lilypond-internals music-glossary lilypond-program lilypond-learning
-
+ $(datafiles) $(PDF_FILES) $(source-links) info
$(outdir)/%.bib: %.bib
ln -f $< $@
$(top-build-dir)/mf/$(outconfbase)/feta16list.ly:
$(MAKE) -C $(top-src-dir)/mf
-$(outdir)/lilypond.texi: $(ITELY_FILES) $(ITEXI_FILES)
-$(outdir)/lilypond.nexi: $(ITELY_FILES) $(ITEXI_FILES)
+$(outdir)/lilypond.texi $(outdir)/lilypond-program.texi $(outdir)/lilypond-learning.texi: $(ITELY_FILES) $(ITEXI_FILES)
+$(outdir)/lilypond.nexi $(outdir)/lilypond-program.nexi $(outdir)/lilypond-learning.nexi: $(ITELY_FILES) $(ITEXI_FILES)
-# Prevent building music-glossary.texi from default target
-$(outdir)/music-glossary.nexi:
# Rules for the automatically generated documentation
@code{Score} can contain many @code{Staff} contexts.
@quotation
-@image{context-example,5cm,,}
+@sourceimage{context-example,5cm,,}
@end quotation
Each context has the responsibility for enforcing some notation rules,
@cindex finger change
Fingering instructions can be entered using
+@var{note}-@var{digit}:
-@example
-@var{note}-@var{digit}
-@end example
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+c4-1 d-2 f-4 e-3
+@end lilypond
-For finger changes, use markup texts
+Use markup texts for finger changes.
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
-c4-1 c-2 c-3 c-4
-c^\markup { \finger "2 - 3" }
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
@end lilypond
@cindex thumb-script
-
-You can use the thumb-script to indicate that a note should be
-played with the thumb (e.g., in cello music)
+You can use the thumb-script (e.g., in cello music)to indicate that a
+note should be played with the thumb.
@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
<a_\thumb a'-3>8 <b_\thumb b'-3>
@cindex chords, fingering
Fingerings for chords can also be added to individual notes of the
-chord by adding them after the pitches
+chord by adding them after the pitches.
@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-< c-1 e-2 g-3 b-5 >4
+< c-1 e-2 g-3 b-5 >2 < d-1 f-2 a-3 c-5 >
@end lilypond
@commonprop
-You may exercise greater control over fingering chords by setting
-@code{fingeringOrientations}
+@code{fingeringOrientations} are used to control where the fingering
+numbers are placed.
-@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
+\set fingeringOrientations = #'(left)
+<c-1 e-3 a-5 > 4
+\set fingeringOrientations = #'(down)
+<c-1 e-3 a-5 >
+\set fingeringOrientations = #'(right)
+<c-1 e-3 a-5 >
+\set fingeringOrientations = #'(up)
+<c-1 e-3 a-5 >
\set fingeringOrientations = #'(left down)
-<c-1 es-2 g-4 bes-5 > 4
+<c-1 e-3 a-5 > 2
\set fingeringOrientations = #'(up right down)
-<c-1 es-2 g-4 bes-5 > 4
-@end lilypond
-
-Using this feature, it is also possible to put fingering
-instructions very close to note heads in monophonic music,
-
-@lilypond[verbatim,ragged-right,quote,fragment]
-\set fingeringOrientations = #'(right)
-<es'-2>4
+<c-1 e-3 a-5 >
@end lilypond
-
@seealso
Snippets: @lsrdir{Editorial,Editorial-annotations}.
The possible values for @var{name} are listed in @ref{List of
articulations}.
-Some of these articulations have shorthands for easier entry. They
-are used by adding a dash and the character signifying
-the articulation to the note name. The available shorthands and
-their output are:
+Some of these articulations have shorthands for easier entry.
+Shorthands are appended to the note name, and their syntax
+consists of a dash (@code{-}) followed by a symbol signifying the
+articulation. The available shorthands are:
+
+@itemize
+@item
+@code{-^} (@notation{marcato})
+
+@item
+@code{-+} (@notation{stopped})
+
+@item
+@code{--} (@notation{tenuto})
+
+@item
+@code{-|} (@notation{staccatissimo})
+
+@item
+@code{->} (@notation{accent})
+
+@item
+@code{-.} (@notation{staccato})
+
+@item
+@code{-_} (@notation{portato})
+
+@end itemize
+
+and their corresponding output:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-c4-. c-- c-+ c-|
-c-> c-^ c-_
+c4-^ c-+ c-- c-|
+c-> c-. c-_
@end lilypond
The marks are automatically placed, but the direction can be
@commonprop
-The meanings of the shorthands can be changed. They are defined
-in @file{ly/@/script@/-init@/.ly}, where the variables
-@code{dashDot}, @code{dashDash}, @code{dashPlus}, @code{dashBar},
-@code{dashLarger}, @code{dashHat}, and @code{dashUnderscore}
-are associated with the default articulation marks. If you want,
-e.g., @code{-+} to produce a trill instead of a "+", you can
-redefine the variable in your document:
+The shorthands are defined in @file{ly/@/script@/-init@/.ly},
+where the variables @code{dashHat}, @code{dashPlus},
+@code{dashDash}, @code{dashBar}, @code{dashLarger},
+@code{dashDot}, and @code{dashUnderscore} are assigned default
+values. The default values for the shorthands can be modified.
+For example, to associate the @code{-+} (@code{dashPlus})
+shorthand with the @notation{trill} symbol instead of the default
+@notation{+} symbol, assign the value @code{trill} to the variable
+@code{dashPlus}:
@lilypond[verbatim,quote,ragged-right]
\relative c'' { c-+ }
closer it will be put to the note. In this example, the
@code{TextScript} (the sharp symbol) first has the lowest
priority, so it is put lowest in the first example. In the
-second, the prall trill (the @code{Script}) has the
+second, the @notation{prall trill} (the @code{Script}) has the
lowest, so it is on the inside. When two objects have the same
priority, the order in which they are entered decides which one
comes first.
@funindex \>
@funindex \!
-A crescendo mark is started with @code{\<} and terminated with
-@code{\!} or an absolute dynamic. A decrescendo is started with
-@code{\>} and is also terminated with @code{\!} or an absolute
-dynamic. @code{\cr} and @code{\decr} may be used instead of
-@code{\<} and @code{\>}. They can be engraved either using a
-graphical sign (a @q{hairpin}), or with textual signs.
+A @notation{crescendo} mark is started with @code{\<} and
+terminated with @code{\!} or an absolute dynamic. A
+@notation{decrescendo} is started with @code{\>} and is also
+terminated with @code{\!} or an absolute dynamic. @code{\cr} and
+@code{\decr} may be used instead of @code{\<} and @code{\>}. They
+can be engraved either using a graphical sign (a @q{hairpin}), or
+with textual signs.
Because these marks are bound to notes, you must use spacer notes
if multiple marks are needed during one note.
@seealso
-Snippets: @lsrdir{Expressive,Expressive-marks}, @c @lsr{expressive,breathing-sign.ly}.
+Snippets: @lsrdir{Expressive,Expressive-marks},
+@c @lsr{expressive,breathing-sign.ly}.
Internals Reference: @internalsref{BreathingSign}.
contain many @code{Staff} contexts.
@quotation
-@image{context-example,5cm,,}
+@sourceimage{context-example,5cm,,}
@end quotation
Each context has the responsibility for enforcing some notation rules,
@section Common syntax issues TODO name?
@menu
-* Up and down::
+* Controlling direction::
* Distances and measurements MAYBE MOVE::
@end menu
-@node Up and down
-@subsection Up and down
+@node Controlling direction
+@subsection Controlling direction
TODO: everything
Maybe rename section to "directions".
+Also mention \override Foo #'direction = #'DOWN.
+
+also mention the typical \fooDown, \fooNeutral predefined commands.
+
@node Distances and measurements MAYBE MOVE
@subsection Distances and measurements MAYBE MOVE
@end ifnottex
@end ifnotinfo
@ifinfo
-@c workaround for makeinfo-4.6: line breaks and multi-column cookies
-@image{henle-flat-bw,,,png} @image{baer-flat-bw,,,png}
-@image{lily-flat-bw,,,png}
+@image{lilypond/henle-flat-bw,,,png} @image{lilypond/baer-flat-bw,,,png}
+@image{lilypond/lily-flat-bw,,,png}
@end ifinfo
@item @tab
@ignore
Distributions will want to install lilypond.info in postinstall, doing:
- install-info --info-dir=/usr/share/info out/lilypond.info
+ install-info --info-dir=/usr/share/info out[-www]/lilypond.info
* Prepend GNU for dir, must be unique.
@c
-@c Info files are installed in subdirectories to allow images to be present.
-@c
-@dircategory LilyPond
+@c Info files are no longer installed in a subdirectory, images are
+@c expected to be found in lilypond/ subdirectory.
+@dircategory GNU LilyPond --- the music typesetter
@direntry
-* LilyPond: (lilypond/lilypond). The GNU music typesetter.
-* abc2ly: (lilypond/lilypond-program)Invoking abc2ly. Importing ABC.
-* convert-ly: (lilypond/lilypond-program)Invoking convert-ly. Older LilyPond versions.
-* etf2ly: (lilypond/lilypond-program)Invoking etf2ly. Importing Finale.
-* lilypond-book: (lilypond/lilypond-program)LilyPond-book. Integrating text and music.
-* midi2ly: (lilypond/lilypond-program)Invoking midi2ly. Importing MIDI.
+* LilyPond Learning Manual: (lilypond-learning). Start here.
+* Music Glossary: (music-glossary). For non-English users.
+* LilyPond: (lilypond). LilyPond Notation Reference.
+* LilyPond Internals Reference: (lilypond-internals). Definitions for tweaking.
+* LilyPond Application Usage: (lilypond-program). Installing and running applications.
+* abc2ly: (lilypond-program)Invoking abc2ly. Importing ABC.
+* convert-ly: (lilypond-program)Updating files with convert-ly. Older LilyPond versions.
+* etf2ly: (lilypond-program)Invoking etf2ly. Importing Finale.
+* lilypond-book: (lilypond-program)LilyPond-book. Integrating text and music.
+* midi2ly: (lilypond-program)Invoking midi2ly. Importing MIDI.
+* musicxml2ly: (lilypond-program)Invoking musicxml2ly. Importing MusicXML.
@end direntry
@c don't remove this comment.
@node LilyPond command index
@appendix LilyPond command index
+This index does blah blah blah.
+
@printindex ky
@node LilyPond index
@appendix LilyPond index
+In contrast, this index does blaz blaz blaz.
+
@printindex cp
@bye
@end quotation
@end macro
-@c TODO: define different output for info
+@ifnotinfo
@macro notation{TEXT}
@var{\TEXT\}
@end macro
+@end ifnotinfo
+@ifinfo
+@macro notation{TEXT}
+\TEXT\
+@end macro
+@end ifinfo
-
-@c **** Headings in a doc subsection ****
-
-@c not really a heading, but...
@macro smallspace
@sp 1
@end macro
+
+@c **** Displaying images not generated by lilypond-book
+
+@c current installation setup of Info docs requires that all images are
+@c expected to be found in lilypond/ subdirectory. lilypond-book already
+@c generates proper @image commands for images of music; these macros
+@c definitions do the same for other images.
+
+@ifnotinfo
+@macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
+@image{\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
+@end macro
+@end ifnotinfo
+
+@ifinfo
+@macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT}
+@image{lilypond/\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\}
+@end macro
+@end ifinfo
+
+
+@c **** Headings in a doc subsection ****
+
@c obsolete; being removed.
@macro refcommands
@noindent
@c **** Links and references ****
@c usage: @lsr{ancient,Ancient-notation,custodes.ly}
+@ignore
+
+DEPRECATED
+
@macro lsr{SECTION,DIR,TEXT}
@ifhtml
@uref{source/input/lsr/snippets/\DIR\.html#\TEXT\,@file{\SECTION\/\TEXT\}}
@file{\SECTION\/\TEXT\}
@end ifnothtml
@end macro
+@end ignore
@c usage: @lsrdir{ancient,Ancient-notation}
@macro lsrdir{SECTION,DIR}
@ifhtml
@c ***** HTML *****
-@c makeinfo-4.7 encodes html names, which means that nodes that
-@c contain nonalphanum characters will be broken links on the website.
-@c @uref{../lilypond-internals/\TEXT\.html,\TEXT\}@c
-@c @inforef{} adds ``See'' to the sentence, which is annoying, but
-@c better than a broken link.
-@c @inforef{\TEXT\,,lilypond-internals}@c
-@c using @ref without punctuation is OK without for formats other than info
-
@ifset bigpage
@macro internalsref{TEXT}
Languages in this order.
@itemize
+@item UK - British English (where it differs from American English)
@item ES - Spanish
@item I - Italian
@item F - French
@item D - German
@item NL - Dutch
-@item UK - British English
@item DK - Danish
@item S - Swedish
@item FI - Finnish
* lilypond::
* ligature::
* line::
+* loco::
* long appoggiatura::
* longa::
* lyrics::
* note head::
* note names::
* note value::
+* octavation::
* octave sign::
* octave::
* ornament::
* ossia::
-* ottava::
* part::
* pause::
* pennant::
* quadruplet::
* quarter note::
* quarter rest::
+* quarter tone::
* quintuplet::
* rallentando::
* relative key::
Indication of where to breathe in vocal and wind instrument parts.
+
@node breve
@section breve
S: ?,
FI: ?.
-FIXME: this is a placeholder
+The pitch at which the piano and other nontransposing instruments play: such
+instruments are said to be @q{in C}. The following list includes some (but not
+all) instruments that play in concert pitch:
+
+@itemize
+
+@item Woodwinds
+@itemize
+@item flute
+@item oboe
+@item bassoon
+@end itemize
+
+@item Brass
+@itemize
+@item alto trombone
+@item tenor trombone
+@item bass trombone
+@end itemize
+
+@item Strings
+@itemize
+@item violin
+@item viola
+@item violincello
+@end itemize
+
+@item piano
+
+@end itemize
+
+The trombones are a special case: although they are said to be @q{in F} (alto or
+bass) or @q{in B-flat} (tenor), this refers to their fundamental note, not to
+their parts' transposition. (In fact, the trombones' parts are written at
+concert pitch with an appropriate clef -- alto, tenor or bass.) This differs
+from other instruments @q{in F}, @q{in B-flat}, and so on, which are transposing
+instruments.
+
+Instruments that play @q{in C} but in a different octave than what is written
+are, technically speaking, @emph{transposing instruments}:
+
+@itemize
+
+@item piccolo (plays an octave higher)
+@item celesta (plays an octave higher)
+@item double-bass (plays an octave lower)
+
+@end itemize
+
+@seealso
+
+@ref{transposing instrument}.
@node conjunct movement
@node eighth note
@section eighth note
+UK: quaver,
ES: corchea,
I: croma,
F: croche,
-UK: quaver,
D: Achtel, Achtelnote,
NL: achtste noot,
DK: ottendedelsnode,
@node eighth rest
@section eighth rest
+UK: quaver rest,
ES: silencio de corchea,
I: pausa di croma,
F: demi-soupir,
-UK: quaver rest,
D: Achtelpause,
NL: achtste rust,
DK: ottendedelspause,
indicated @samp{sul G}, another series to be played on the D string
would be indicated @samp{sul D}, and so on.
+@item
+With an octave indication (also called @emph{octavation}, q.v.) to indicate that
+a passage is to be played higher or lower by the given number of octaves.
+
@end itemize
@seealso
-@ref{melisma}, @ref{sul G}, @ref{thorough bass}
+@ref{melisma}, @ref{sul G}, @ref{thorough bass}, @ref{octavation}.
@node F
@node half note
@section half note
+UK: minim,
ES: blanca,
I: minima,
F: blanche,
-UK: minim,
D: Halbe, halbe Note,
NL: halve noot,
DK: halvnode,
@node half rest
@section half rest
+UK: minim rest,
ES: silencio de blanca,
I: pausa di minima,
F: demi-pause,
-UK: minim rest,
D: halbe Pause,
NL: halve, rust,
DK: halvnodespause,
@node lilypond
@section lilypond
+UK: lily pond,
ES: estanque de nenúfares,
I: stagno del giglio,
-F: étang de lis,
-UK: lily pond,
+F: étang de nénuphars, étang de nymphéas,
D: Seerosenteich,
NL: le@-lie@-vij@-ver,
DK: liliedam,
@ref{staff}.
+@node loco
+@section loco
+
+ES: ?,
+I: loco,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+[From Italian, @q{place}]. Instruction to play the following passage at the
+written pitch. Cancels octavation (q.v.).
+
+@seealso
+
+@ref{octavation}.
+
+
@node long appoggiatura
@section long appoggiatura
@section melisma
ES: melisma,
+I: ?,
F: mélisme,
D: Melisma,
NL: melisma,
+DK: ?,
+S: ?,
FI: melisma, laulettavan tavun sävelkuvio.
A melisma (plural, from Greek: melismata) is a group of notes or tones
@c TODO: add languages
+ES: ?,
+I: ?,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
@seealso
@ref{extender line}.
@node mensural notation
@section mensural notation
-@c FIXME: add languages
+@c TODO: add languages
ES: ?,
I: ?,
@c TODO: add definition (inc. info on proportional notation)
-@c FIXME: add cross-references.
+@c TODO: add cross-references.
@node meter
@end lilypond
+@node octavation
+@section octavation
+
+ES: ?,
+I: ?,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+The use of a phrase or abbreviation with an extender line or bracket to indicate
+that a passage is to be played in a different octave:
+
+@itemize
+
+@item @samp{15ma}: play two octaves higher
+@item @samp{8va}: play one octave higher
+@item @samp{8vb}: play one octave lower
+@item @samp{8va} written below the passage: same as @samp{8vb}
+@item @samp{15vb}: play two octaves lower
+@item @samp{15va} written below the passage: same as @samp{15vb}
+
+@end itemize
+
+Another practice, which may be useful for longer passages, is to indicate the
+different octave with a phrase at the beginning (see below). When the music
+returns to the written pitch, the octavation is cancelled with the word
+@emph{loco} (q.v.).
+
+To parallel the list above:
+
+@itemize
+
+@item @samp{15ma}: @emph{alla quindicesima (alta)}
+@item @samp{8va}: @emph{all'ottava} or @emph{ottava sopra}
+@item @samp{8vb}: @emph{ottava bassa}, @emph{ottava sotto}
+@item @samp{15vb}: @emph{alla quindicesima (bassa)}
+
+@end itemize
+
+@emph{Quindicesima} can be replaced with @emph{quindecima}, which is Latin.
+
+@seealso
+
+@ref{interval}, @ref{loco}, @ref{octave}.
+
+
@node octave sign
@section octave sign
+ES: ?,
+I: ?,
+F: ?,
+D: ?,
+NL: ?,
+DK: ?,
+S: ?,
+FI: ?.
+
+Putting 8 or 15 above or below the clef to indicate that the entire part is
+played in the indicated octave: a clef-wide octavation. An octave sign can be
+applied to any clef, though it is most frequently used with the G and F clefs.
+
@seealso
@ref{G clef}, @ref{F clef}.
S: oktav,
FI: oktaavi.
+The interval of an octave, sometimes abbreviated @samp{8ve}.
+
+For uses like @emph{all'ottava} or @emph{8va} with an extender line or
+bracket, or @samp{loco} see octavation.
+
@seealso
-@ref{ottava}, @ref{interval}.
+@ref{interval}, @ref{octavation}.
@node ornament
of the music, for example for small hands.
-@node ottava
-@section ottava
-
-@c TODO: translations
-
-ES: ?,
-I: ottava,
-F: octave,
-DE: Oktavierung,
-NL: ?,
-DK: ?,
-S: ?,
-FI: ?.
-
-[From Italian] The interval of an octave, abbreviated 8va.
-
-@emph{All'ottava}, @emph{ottava alta}, @emph{ottava sopra}, or
-@emph{8va} written above a passage indicates that it should be played
-an octave higher than written. @emph{Ottava bassa}, @emph{ottava
-sotto}, or @emph{8va} written below a passage indicates that it should
-be played an octave lower than written.
-
-@seealso
-
-@ref{interval}.
-
-
@node part
@section part
@node quarter note
@section quarter note
+UK: crotchet,
ES: negra,
I: semiminima, nera,
F: noire,
-UK: crotchet,
D: Viertel, Viertelnote,
NL: kwartnoot,
DK: fjerdedelsnode,
@node quarter rest
@section quarter rest
+UK: crotchet rest,
ES: silencio de negra,
I: pausa di semiminima,
F: soupir,
-UK: crotchet rest,
D: Viertelpause,
NL: kwart rust,
DK:@w{ }fjerdedelspause,
@ref{note value}.
+@node quarter tone
+@section quarter tone
+
+ES: ?,
+I: ?,
+F: quart de ton,
+D: Viertelton,
+NL: kwart toon,
+DK: ?,
+S: kvartston,
+FI: ?.
+
+An interval equal to half a semitone.
+
+@seealso
+
+@ref{interval}
+
+
@node quintuplet
@section quintuplet
ES: ?,
I: ?,
F: ?,
-UK: ?,
D: ?,
NL: ?,
DK: ?,
@node sixteenth note
@section sixteenth note
+UK: semiquaver,
ES: semicorchea,
I: semicroma,
F: double croche,
-UK: semiquaver,
D: Sechzehntel, Sechzehntelnote,
NL: zes@-ti@-ende noot,
DK: sekstendedelsnode,
@node sixteenth rest
@section sixteenth rest
+UK: semiquaver rest,
ES: silencio de semicorchea,
I: pausa di semicroma,
F: quart de soupir,
-UK: semiquaver rest,
D: Sechzehntelpause,
NL: zestiende rust,
DK: sekstendedelspause,
@node sixty-fourth note
@section sixty-fourth note
+UK: hemidemisemiquaver,
ES: semifusa,
I: semibiscroma,
F: quadruple croche,
-UK: hemidemisemiquaver,
D: Vierundsechzigstel, Vierundsechzigstelnote,
NL: vierenzestigste noot,
DK: fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-no@-de,
@node sixty-fourth rest
@section sixty-fourth rest
+UK: hemidemisemiquaver rest,
ES: silencio de semifusa,
I: pausa di semibiscroma,
F: seizième de soupir,
-UK: hemidemisemiquaver rest,
D: Vierundsechzigstelpause,
NL: vierenzestigste rust,
DK: fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-pau@-se,
@node thirty-second note
@section thirty-second note
+UK: demisemiquaver,
ES: fusa,
I: biscroma,
F: triple croche,
-UK: demisemiquaver,
D: Zweiunddreissigstel, Zweiunddreissigstelnote,
NL: twee-endertig@-ste noot,
DK: toogtredivtedelsnode,
@node thirty-second rest
@section thirty-second rest
+UK: demisemiquaver rest,
ES: silencio de fusa,
I: pausa di biscroma,
F: huitième de soupir,
-UK: demisemiquaver rest,
D: Zweiunddreissigstel@-pause,
NL: 32e rust,
DK: toogtredivtedelspause,
S: ?,
FI: ?.
-FIXME: this is a placeholder
+Instruments whose notated pitch is different from their sounded pitch. Except
+for those whose notated and sounding pitches differ by one or more octaves (to
+reduce the number of ledger lines needed), most such instruments are identified
+by the letter name of the pitch class of their fundamental. The pitch class is
+the note that @emph{sounds} (disregarding the octave in which it sounds) when
+the instrument plays a notated C.
+
+For example: when played on the B-flat clarinet, the note middle C @emph{sounds}
+the B-flat one tone lower. If played on the A clarinet, the same written
+note sounds the A (one and half tones -- a minor third -- lower).
+
+Not all transposing instruments include the pitch class in their name:
+
+@itemize
+@item English horn (in F)
+@item Alto flute (in G)
+@end itemize
+
+@seealso
+
+@ref{concert pitch}.
@node transposition
@node whole note
@section whole note
+UK: semibreve,
ES: redonda,
I: semibreve,
F: ronde,
-UK: semibreve,
D: Ganze, ganze Note,
NL: hele noot,
DK: helnode,
@node whole rest
@section whole rest
+UK: semibreve rest,
ES: silencio de redonda,
I: pausa di semibreve,
F: pause,
-UK: semibreve rest,
D: ganze Pause, ganztaktige Pause,
NL: hele rust,
DK: helnodespause,
@node Duration names notes and rests
@chapter Duration names notes and rests
-@multitable @columnfractions .15 .26 .33 .26
+@multitable @columnfractions .07 .23 .23 .23 .24
@headitem @strong{US}
- @tab @strong{UK}
- @tab @strong{I}
- @tab @strong{F (note name / rest name)}
-@headitem
- @tab @strong{D}
- @tab @strong{NL}
- @tab @strong{DK}
-@headitem
- @tab @strong{S}
- @tab @strong{FI}
- @tab @strong{ES}
-
-@item @strong{longa}
- @tab longa
- @tab longa
- @tab longa
-@item
- @tab Longa
- @tab longa
- @tab longa
-@item
+ @tab long
+ @tab breve
+ @tab whole
+ @tab half
+@item @strong{UK}
@tab longa
+ @tab breve
+ @tab semibreve
+ @tab minim
+@item @strong{ES}
@tab longa
+ @tab cuadrada
+ @tab redonda
+ @tab blanca
+@item @strong{IT}
@tab longa
-
-@item @strong{breve}
- @tab breve
@tab breve
+ @tab semibreve
+ @tab minima
+@item @strong{FR}
+ @tab longa
@tab brève / double-pause
-@item
- @tab Brevis
- @tab brevis
- @tab brevis
-@item
- @tab brevis
- @tab brevis
- @tab cuadrada
-
-@item @strong{whole}
- @tab semi@-breve
- @tab semi@-breve
@tab ronde / pause
-@item
- @tab Ganze
- @tab hele
- @tab hel
-@item
- @tab hel
- @tab koko@-nuotti/@w{-tauko}
- @tab redonda
-
-@item @strong{half}
- @tab minim
- @tab minima
@tab blanche / demi-pause
-@item
+@item @strong{DE}
+ @tab Longa
+ @tab Brevis
+ @tab Ganze
@tab Halbe
+@item @strong{NL}
+ @tab longa
+ @tab brevis
+ @tab hele
@tab halve
+@item @strong{DK}
+ @tab longa
+ @tab brevis
+ @tab hel
@tab halv
-@item
+@item @strong{SE}
+ @tab longa
+ @tab brevis
+ @tab hel
@tab halv
+@item @strong{FI}
+ @tab longa
+ @tab brevis
+ @tab koko@-nuotti/@w{-tauko}
@tab puoli@-nuotti/@w{-tauko}
- @tab blanca
-@item @strong{quarter}
- @tab crotchet
- @tab semiminima
- @tab noire / soupir
-@item
- @tab Viertel
- @tab kwart
- @tab fjerdedel
-@item
- @tab fjärdedel
- @tab neljännesosa@-nuotti/@w{-tauko}
- @tab negra
+@end multitable
+
+@multitable @columnfractions .07 .31 .31 .31
-@item @strong{eighth}
+@headitem @strong{US}
+ @tab quarter
+ @tab eighth
+ @tab sixteenth
+@item @strong{UK}
+ @tab crotchet
@tab quaver
+ @tab semiquaver
+@item @strong{ES}
+ @tab negra
+ @tab corchea
+ @tab semicorchea
+@item @strong{IT}
+ @tab semiminima
@tab croma
+ @tab semicroma
+@item @strong{FR}
+ @tab noire / soupir
@tab croche / demi-soupir
-@item
+ @tab double* croche / quart de soupir
+@item @strong{DE}
+ @tab Viertel
@tab Achtel
- @tab achtste
- @tab ottendedel
-@item
- @tab åttondel
- @tab kahdeksasosa@-nuotti/@w{-tauko}
- @tab corchea
-
-@item @strong{sixteenth}
- @tab semiquaver
- @tab semicroma
- @tab double croche / quart de soupir
-@item
@tab Sechzehntel
+@item @strong{NL}
+ @tab kwart
+ @tab achtste
@tab zestiende
+@item @strong{DK}
+ @tab fjerdedel
+ @tab ottendedel
@tab sekstendedel
-@item
+@item @strong{SE}
+ @tab fjärdedel
+ @tab åttondel
@tab sextondel
+@item @strong{FI}
+ @tab neljännesosa@-nuotti/@w{-tauko}
+ @tab kahdeksasosa@-nuotti/@w{-tauko}
@tab kuudestoistaosa@-nuotti/@w{-tauko}
- @tab semicorchea
-@item @strong{thirty-second}
- @tab demisemiquaver
- @tab biscroma
- @tab triple croche / huitième de soupir
-@item
- @tab Zweiunddreissigstel
- @tab tweeendertigste
- @tab toogtredivtedel
-@item
- @tab trettiotvåondel
- @tab kolmaskymme@-neskahdesosa@-nuotti/@w{-tauko}
- @tab fusa
+@end multitable
+
+* About the French naming system: the word @emph{croche} refers to the
+note's "hook". Therefore, from the eighth note on, the note names mean
+@q{hook}, @q{doubled hook}, @q{trebled hook}, and so on.
+
+The rest names are based on the @emph{soupir}, or quarter rest. Subsequent
+rests are expressed as fractions thereof: half a @emph{soupir}, a quarter of
+a @emph{soupir}, and so on.
-@item @strong{sixty-fourth}
+@multitable @columnfractions .07 .46 .47
+
+@headitem @strong{US}
+ @tab thirty-second
+ @tab sixty-fourth
+@item @strong{UK}
+ @tab demisemiquaver
@tab hemidemisemiquaver
+@item @strong{ES}
+ @tab fusa*
+ @tab semifusa
+@item @strong{IT}
+ @tab biscroma
@tab semibiscroma
+@item @strong{FR}
+ @tab triple croche / huitième de soupir
@tab quadruple croche / seizième de soupir
-@item
+@item @strong{DE}
+ @tab Zweiunddreissigstel
@tab Vierundsechzigstel
+@item @strong{NL}
+ @tab tweeendertigste
@tab vierenzestigste
+@item @strong{DK}
+ @tab toogtredivtedel
@tab fireogtred@-sindstyvendedel
-@item
+@item @strong{SE}
+ @tab trettiotvåondel
@tab sextiofjärdedel
+@item @strong{FI}
+ @tab kolmaskymme@-neskahdesosa@-nuotti/@w{-tauko}
@tab kuudeskymme@-nesneljäsosa@-nuotti/@w{-tauko}
+
+@end multitable
+
+@multitable @columnfractions .07 .46 .47
+
+@headitem @strong{US} @tab one-hundred-twenty-eighth
+ @tab two-hundred-fifty-sixth@item @strong{UK}
+ @tab semihemidemisemiquaver or
+ quasihemidemisemiquaver @tab demisemihemidemisemiquaver (?)
+@item @strong{IT}
+ @tab fusa*
@tab semifusa
+@item @strong{ES}
+ @tab garrapatea @tab semigarrapatea@item @strong{FR}
+ @tab quintuple croche / trente-deuxième de soupir @tab sextuple croche / soixante-quatrième de soupir@item @strong{DE}
+ @tab Hundertundachtundzwanzigstel @tab Zweihundertundsechsundfünfzigstel@item @strong{NL}
+ @tab ?
+ @tab ?
+@item @strong{DK}
+ @tab ?
+ @tab ?
+@item @strong{SE}
+ @tab ?
+ @tab ?
+@item @strong{FI}
+ @tab ?
+ @tab ?
@end multitable
+* The terms @emph{fusa} and @emph{semifusa}, which derive from mensural notation
+(q.v), are used as note durations by the Italians and the Spanish, but for notes
+of different durations.
+
+@seealso
+
+@ref{mensural notation}
+
@node Pitch names
@chapter Pitch names
@cindex sharp, double
@cindex double flat
@cindex flat, double
+@cindex natural sign
A @notation{sharp} pitch is made by adding @code{is} to the note name,
and a @notation{flat} pitch by adding @code{es}. As you might expect,
@seealso
Music Glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
-@rglos{double flat}, @rglos{Pitch names}.
-@c FIXME: add @rglos{quarter-tone}
+@rglos{double flat}, @rglos{Pitch names}, @rglos{quarter-tone}.
Learning Manual: @rlearning{Accidentals and key signatures}.
\key @var{pitch} @var{mode}
@end example
-@funindex \minor
@funindex \major
@funindex \minor
@funindex \ionian
@funindex \phrygian
@funindex \dorian
@cindex church modes
+@cindex modes
Here, @var{mode} should be @code{\major} or @code{\minor} to get a
key signature of @var{pitch}-major or @var{pitch}-minor,
@seealso
-Music Glossary: @rglos{ottava}.
+Music Glossary: @rglos{octavation}.
Snippets: @lsrdir{Pitches,Pitches}.
@cindex transposition, MIDI
@cindex transposition, instrument
+@cindex transposing instrument
+@cindex MIDI
+@funindex \transposition
When typesetting scores that involve transposing instruments, some
parts can be typeset in a different pitch than the
@seealso
-Music Glossary: @rglos{concert pitch},
-@rglos{transposing instrument}.
+Music Glossary: @rglos{concert pitch}, @rglos{transposing instrument}.
Notation Reference: @ref{Quoting other voices}, @ref{Transpose}.
@node Automatic accidentals
@subsubsection Automatic accidentals
-@cindex automatic accidentals
+@cindex automatic accidentals
+@cindex accidentals, automatic
+@cindex accidentals
+@cindex accidental style
+@cindex default accidental style
+@cindex accidental style, default
@funindex set-accidental-style
There are many different conventions on how to typeset
@end lilypond
@item modern
+@cindex accidentals, modern style
+@cindex modern style accidentals
@funindex modern style accidentals
This rule corresponds to the common practice in the twentieth
@end lilypond
@item modern-cautionary
+@cindex accidentals, modern cautionary style
+@cindex modern style accidentals
+@cindex modern style cautionary accidentals
+@cindex modern accidental style
+@cindex modern cautionary accidental style
@funindex modern-cautionary
This rule is similar to @code{modern}, but the @q{extra}
@end lilypond
@item modern-voice
+@cindex accidentals, multivoice
+@cindex accidentals, modern
+@cindex modern accidentals
+@cindex multivoice accidentals
+@cindex accidental style, modern
+@cindex modern accidental style
@funindex modern-voice
This rule is used for multivoice accidentals to be read both by
}
@end lilypond
+@cindex accidental style, modern voice cautionary
+@cindex accidental style, cautionary, modern voice
+@cindex accidental style, voice, modern cautionary
@funindex modern-voice-cautionary
@item modern-voice-cautionary
@item piano
@funindex piano accidentals
+@cindex piano accidentals
+@cindex accidentals, piano
+@cindex piano accidental style
+@cindex accidental style, piano
This rule reflects twentieth-century practice for piano notation.
Its behavior is very similar to @code{modern} style, but here
@item piano-cautionary
@funindex #(set-accidental-style 'piano-cautionary)
+@cindex accidentals, piano cautionary
+@cindex cautionary accidentals, piano
+@cindex piano cautionary accidentals
+@cindex accidental style, piano cautionary
+@cindex cautionary accidental style, piano
+@cindex piano cautionary accidental style
Same as @code{#(set-accidental-style 'piano)} but with the extra
accidentals typeset as cautionaries.
@item no-reset
@funindex no-reset accidental style
+@cindex accidental style, no reset
+@cindex no reset accidental style
This is the same as @code{default} but with accidentals lasting
@q{forever} and not only within the same measure:
@item forget
@funindex forget accidental style
+@cindex forget accidental style
+@cindex accidental style, forget
This is the opposite of @code{no-reset}: Accidentals are not
remembered at all -- and hence all accidentals are typeset
@internalsref{PianoStaff}, @internalsref{Staff}.
+@cindex accidentals and simultaneous notes
+@cindex simultaneous notes and accidentals
+@cindex accidentals in chords
+@cindex chords, accidentals in
+
@refbugs
Simultaneous notes are considered to be entered in sequential
@node Ambitus
@subsubsection Ambitus
+
@cindex ambitus
+@cindex ambit
+@cindex range of pitches
+@cindex pitch range
The term @notation{ambitus} or @notation{ambit} denotes a range of
pitches for a given voice in a part of music. It may also denote
@seealso
+Music Glossary: @rglos{ambitus}.
+
Snippets: @lsrdir{Pitches,Pitches}.
Internals Reference: @internalsref{Ambitus},
@subsubsection Special note heads
@cindex note heads, special
+@cindex note heads, cross
+@cindex note heads, diamond
+@cindex note heads, parlato
+@cindex note heads, harmonic
+@cindex note heads, guitar
+@cindex special note heads
+@cindex cross note heads
+@cindex diamond note heads
+@cindex parlato note heads
+@cindex harmonic note heads
+@cindex guitar note heads
Different note heads are used by various instruments for various
meanings -- crosses are used for @q{parlato} with vocalists,
@cindex note heads, easy notation
@cindex easy notation
@cindex Hal Leonard
+@cindex beginners' music
+@cindex music, beginners'
+@cindex easy play note heads
+@cindex note heads, easy play
The @q{easy play} note head includes a note name inside the head.
It is used in music for beginners.
@subsubsection Shape note heads
@cindex note heads, shape
+@cindex note heads, Aiken
+@cindex note heads, sacred harp
+@cindex shape notes
+@cindex Aiken shape note heads
+@cindex sacred harp note heads
@funindex \key
@funindex shapeNoteStyles
@funindex \aikenHeads
@example
displayBarNum =
#(define-music-function (parser location) ()
- (if (eq? #t (ly:get-option display-bar-numbers))
+ (if (eq? #t (ly:get-option 'display-bar-numbers))
#@{ \once \override Score.BarNumber #'break-visibility = ##f #@}
#@{#@}))
@end example
the notes are 2/3 of their written length.
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-g4 \times 2/3 {c4 c c} d4 d4
+a2 \times 2/3 {b4 b b}
+c4 c \times 2/3 {b4 a g}
+
@end lilypond
-Tuplets may be nested; for example,
+Tuplets may be nested:
@lilypond[fragment,ragged-right,verbatim,relative=2]
-\times 2/3 {
- a4 a
- \times 3/5 { a a a a a }
+\relative c'' {
+ \autoBeamOff
+ c4 \times 4/5 { f8 e f \times 2/3 {e[ f g] } } f4 |
}
@end lilypond
@funindex tupletNumberFormatFunction
@funindex tupletSpannerDuration
+@c when available
+@c @lilypondfile [ragged-right,line-width=16\cm,staffsize=14,quote]
+@c {Entering-several-tuplets-using-only-one-\times-command.ly}
+
+@ignore
+@c TODO Remove when snippet works ok
@c Sent to Snippet 5 Feb 08
The property @code{tupletSpannerDuration} specifies how long each
bracket should last. With this, you can make lots of tuplets
\set tupletSpannerDuration = #(ly:make-moment 1 4)
\times 2/3 { c8 c c c c c }
@end lilypond
+@end ignore
@noindent
For more information about @code{make-moment}, see
@funindex TupletBracket
If nested tuplets do not begin at the same moment their
-appearance may be modified in the usual way with
+appearance may be modified in the usual way with
@code{\override} commands:
@c NOTE Tuplet brackets collide if notes are high on staff
However, if the nested tuplets begin at the same musical moment,
@code{\override} commands cannot be applied to just one of them
--- they apply to both. So to change the appearance of nested
-tuplets beginning at the same musical moment individually, the
-@code{\tweak} function must be used (see @ref{Objects connected
+-- they apply to both. So to change the appearance of nested
+tuplets beginning at the same musical moment individually, the
+@code{\tweak} function must be used (see @ref{Objects connected
to the input}). The @code{\tweak} function is applied to the
following @code{\times} command as it appears in the input stream,
and so can distinguish between separate @code{\times} commands
even if their tuplets begin at the same musical moment.
-In this example, the @code{\tweak} command is used to specify
-fraction text for the outer @code{TupletNumber} and denominator
-text for the @code{TupletNumber} of the first of the three
+In this example, the @code{\tweak} command is used to specify
+fraction text for the outer @code{TupletNumber} and denominator
+text for the @code{TupletNumber} of the first of the three
inner tuplets.
@c NOTE Tuplet brackets collide if notes are high on staff
tuplet above the staff. The second @code{\tweak} positions the
@code{TupletBracket} of the first of the three inner tuplets below
the staff. Note that the @code{\tweak} command needs to be used
-only for events that begin at the same music moment: the outer
+only for events that begin at the same music moment: the outer
tuplet and the first of the three inner tuplets. To position the
@code{TupletBracket}s of the second and third of the inner tuplets
below the staff, we can use @code{\override} in the usual way.
@funindex tupletFullLength
@funindex tupletFullLengthNote
-Tuplet brackets can be made to run to prefatory matter or the
+Tuplet brackets can be made to run to prefatory matter or the
next note.
Default tuplet brackets end at the right edge of the final note
of the tuplet; full-length tuplet brackets extend farther to the
right, either to cover all the non-rhythmic notation up to the
-following note, or to cover only the whitespace before the next
+following note, or to cover only the whitespace before the next
item of notation, be that a clef, time signature, key signature,
or another note. The example shows how to switch tuplets to
full length mode and how to modify what material they cover.
\time 4/4
\times 4/5 { c4 c1 }
\time 3/4
- c4
+ c4
}
@end lilypond
@code{\compressMusic} works similarly to \times, but does not
create a tuplet bracket. One application is in polymetric
-notation, as shown in the following example. See
+notation, as shown in the following example. See
@ref{Polymetric notation}.
-@c not added yet. -gp
+@c when available
@c @lilypondfile [ragged-right,line-width=16\cm,staffsize=14,quote]
@c {printing-music-with-different-time-signatures.ly}
@seealso
-Music Glossary: @rglos{triplet}, @rglos{tuplet},
+Music Glossary: @rglos{triplet}, @rglos{tuplet},
@rglos{polymetric}.
Notation Reference: @ref{Time administration},
Snippets: @lsrdir{Rhythms,Rhythms}.
Internals Reference: @internalsref{TupletBracket},
-@internalsref{TupletNumber}, and @internalsref{TimeScaledMusic}.
+@internalsref{TupletNumber}, @internalsref{TimeScaledMusic}.
+
+@refbugs
+Lines may be broken within a tuplet with @code{\bar "" \break},
+but the tuplet bracket does not correctly carry over.
@node Scaling durations
@end lilypond
The duration of skip or spacing notes may also be modified by
-a multiplier. This is useful for skipping many measures, e.g.,
+a multiplier. This is useful for skipping many measures, e.g.,
@code{s1*23}.
@seealso
@funindex ~
A tie connects two adjacent note heads of the same pitch. The tie
-in effect extends the length of a note.
+in effect extends the length of a note.
@warning{Ties should not be confused with @emph{slurs}, which
indicate articulation, or @emph{phrasing slurs}, which indicate
@lilypond[fragment,quote,ragged-right,relative=2,verbatim]
\repeat volta 2 { c g <c e>2 ~ }
-\alternative {{ <c e>2. r4 } {<c e>2\repeatTie d4 c }}
+\alternative {{ <c e>2. r4 } {<c e>2\repeatTie d4 c }}
@end lilypond
@cindex laissez vibrer
<c f g>\laissezVibrer
@end lilypond
-The direction of a tie can be specified with @code{\tieUp} or
+The vertical placement of ties may be controlled; see
+@ref{Controlling direction}.
+
+@quotation
+DELETE THIS ?
@code{\tieDown} (see example below). @code{\tieNeutral} reverts
to the default behaviour again.
@lilypond[relative=2,ragged-right,quote,verbatim,fragment]
c4_~ c c^~ c)
@end lilypond
+@end quotation
+@refcommands
-@seealso
-
-Music Glossary: @rglos{tie},
-@c [TODO]add @rglos{laissez vibrer}. when there is a glossary entry.
-
-Snippets: @lsrdir{Rhythms,Rhythms}
-
-Internals Reference:
-@internalsref{LaissezVibrerTie}
-@internalsref{LaissezVibrerTieColumn}
-
-Example files:
-@c @lsr{connecting,laissez-vibrer-ties.ly}
+@funindex \tieUp
+@code{\tieUp},
+@funindex \tieDown
+@code{\tieDown},
+@funindex \tieNeutral
+@code{\tieNeutral},
+@funindex \tieDotted
+@code{\tieDotted},
+@funindex \tieDashed
+@code{\tieDashed},
+@funindex \tieSolid
+@code{\tieSolid}.
@commonprop
@end lilypond
-@refcommands
+@seealso
-@funindex \tieUp
-@code{\tieUp},
-@funindex \tieDown
-@code{\tieDown},
-@funindex \tieNeutral
-@code{\tieNeutral},
-@funindex \tieDotted
-@code{\tieDotted},
-@funindex \tieDashed
-@code{\tieDashed},
-@funindex \tieSolid
-@code{\tieSolid}.
+Music Glossary: @rglos{tie},
+@c [TODO]add @rglos{laissez vibrer}. when there is a glossary entry.
+Snippets: @lsrdir{Rhythms,Rhythms}
+
+Internals Reference:
+@internalsref{LaissezVibrerTie}
+@internalsref{LaissezVibrerTieColumn}
+
+Example files:
+@c @lsr{connecting,laissez-vibrer-ties.ly}
-@seealso
@subsection Writing rests
@menu
-* Rests::
-* Skips::
-* Full measure rests::
+* Rests::
+* Skips::
+* Full measure rests::
@end menu
@node Rests
A multi-note beamed @emph{acciaccatura} is printed without a slash,
and looks exactly the same as a multi-note beamed
@emph{appoggiatura}.
-@c TODO Add link to LSR snippet to add slash when available
+@c TODO Add link to LSR snippet to add slash when available
Grace note synchronization can also lead to surprises. Staff
notation, such as key signatures, bar lines, etc., are also
+
@cindex instrument names, centering
-If you wish to center the instrument names, you must center all of
-them individually:
+As instrument names are centered by default, multi line names
+are better entered using @code{\center-align}:
@lilypond[quote,verbatim,ragged-right]
{ <<
\new Staff {
- \set Staff.instrumentName = \markup {
- \center-align { "Clarinetti"
- \line { "in B" \smaller \flat } } }
+ \set Staff.instrumentName = \markup \center-align {
+ Clarinetti
+ \line { "in B" \smaller \flat }
+ }
c''1
}
\new Staff {
- \set Staff.instrumentName =
- \markup{ \center-align { Vibraphone }}
+ \set Staff.instrumentName = "Vibraphone"
c''1
}
>>
For longer instrument names, it may be useful to increase the
@code{indent} setting in the @code{\layout} block.
-To center instrument names while leaving extra space to the right,
-
-@lilypond[quote,verbatim,ragged-right]
-\new StaffGroup \relative
-<<
- \new Staff {
- \set Staff.instrumentName =
- \markup { \hcenter-in #10 "blabla" }
- c1 c1
- }
- \new Staff {
- \set Staff.instrumentName =
- \markup { \hcenter-in #10 "blo" }
- c1 c1
- }
->>
-@end lilypond
+Short instrument names, printed before the systems following the first
+one, are also centered by default, in a space which width is given by
+the @code{short-indent} variable of the @code{\layout} block.
To add instrument names to other contexts (such as
@code{GrandStaff}, @code{ChoirStaff}, or @code{StaffGroup}), the
formatting) in your scores.
@cindex Text, other languages
-To write accented and special text (such as characters from other
-languages), simply insert the characters directly into the
-lilypond file. The file must be saved as UTF-8. For more
-information, see @ref{Text encoding}.
+@warning{To write accented and special text (such as characters
+from other languages), simply insert the characters directly into
+the lilypond file. The file must be saved as UTF-8. For more
+information, see @ref{Text encoding}.}
@menu
* Writing text::
@cindex non-empty texts
It is possible to place arbitrary strings of text or @ref{Text
-markup}, above or below notes by using a string @code{c^"text"}.
-By default, these indications do not influence the note spacing,
-but by using the command @code{\textLengthOn}, the widths will be taken
-into account
+markup} with @var{note}@code{-"}@var{text}@code{"}.
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4^"longtext" \textLengthOn c4_"longlongtext" c4
-@end lilypond
-
-@noindent
-To prevent text from influencing spacing, use @code{\textLengthOff}.
+INSERT EXAMPLE
More complex formatting may also be added to a note by using the
-markup command,
+@code{\markup} command, as described in @ref{Text markup}.
@lilypond[fragment,ragged-right,verbatim,quote]
c'4^\markup { bla \bold bla }
@end lilypond
-The @code{\markup} is described in more detail in @ref{Text
-markup}.
-
-
@refcommands
@funindex \textLengthOn
@commonprop
+@c TODO: put this in the LSR. -vv
+By default, these indications do not influence the note spacing.
+However, by using the command @code{\textLengthOn}, the widths
+will be taken into account:
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+c4^"this does not affect spacing" \textLengthOn c4_"whereas this does" c4
+@end lilypond
+
+@noindent
+After having used such a command, to go back to the default behavior
+and prevent text from influencing spacing, use @code{\textLengthOff}.
+
+
+@c TODO: LSR-ize this as well -vv
Checking to make sure that text scripts and lyrics are within the
margins is a relatively large computational task. To speed up
processing, lilypond does not perform such calculations by
@cindex Text spanners
+@c TODO: merge these explanations with the ones below in
+@c "Text and Line spanners" -vv
+
Some performance indications, e.g., @i{rallentando} or
@i{accelerando}, are written as text and are extended over many
measures with dotted lines. Such texts are created using text
spanners; attach @code{\startTextSpan} and @code{\stopTextSpan} to
the first and last notes of the spanner.
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c1
+\override TextSpanner #'bound-details #'left #'text = "faster"
+c2\startTextSpan b c\stopTextSpan a
+@end lilypond
+
+@noindent
The string to be printed, as well as the style, is set through
-object properties
+object properties. It can accept @code{\markup} blocks as well:
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
c1
@funindex \mark
The @code{\mark} command is primarily used for @ref{Rehearsal
-marks}, but it can also be used to put signs like coda, segno, and
-fermata on a bar line. Use @code{\markup} to access the
-appropriate symbol (symbols are listed in @ref{The Feta font}).
+marks}, but it can also be used to add text elements in a score:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c4\mark "text" c c c
+@end lilypond
+
+As it can contain a @code{\markup} object, the @code{\mark} command
+makes possible to put any text, but also signs like coda, segno, or
+fermata on a bar line. The appropriate symbol has to be specified in
+the @code{\markup} block; these symbols are listed in @ref{The Feta font}.
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
c1 \mark \markup { \musicglyph #"scripts.ufermata" }
@end lilypond
@noindent
-@code{\mark} is only typeset above the top stave of the score. If
+@code{\mark} is only typeset above the top staff of the score. If
you specify the @code{\mark} command at a bar line, the resulting
mark is placed above the bar line. If you specify it in the
middle of a bar, the resulting mark is positioned between notes.
@c IMO this is a bug; hopefully it'll be fixed soon, so I can
@c delete this sentence. -gp
+@noindent
If there is no next line, then the mark will not be printed at
all.
@commonprop
+@c TODO: to be LSR-ized stuff -vv
+
To print the mark at the end of the current line, use
@example
The text marks will, by default, be aligned with the middle of the
notation object, but this can be changed by overriding the
@code{break-align-anchor-alignment} and @code{break-align-anchor}
-properties for the appropriate grob.
+properties for the appropriate grob. For scores with multiple staves,
+this setting should be done for all the staves.
@lilypond[fragment,quote,ragged-right,verbatim]
{
\key cis \major
% the RehearsalMark will be aligned with the left edge of the KeySignature
- \once \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
+ \once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
\mark \default
cis1
\key ces \major
% the RehearsalMark will be aligned with the right edge of the KeySignature
- \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT
+ \once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
\mark \default
ces1
\key cis \major
% the RehearsalMark will be aligned with the left edge of the KeySignature
% and then shifted right by 2 units.
- \once \override Staff.KeySignature #'break-align-anchor = #2
+ \once \override Score.KeySignature #'break-align-anchor = #2
\mark \default
ces1
}
Internals Reference: @internalsref{RehearsalMark}.
-
+@c TODO: add this here? -vv
+@c @node Text marks
+@c @subsubsection Text marks
@node Text markup
@subsection Text markup
@node Special text concerns
@subsection Special text concerns
-
+@c FIXME: this section is to be removed
+@c (see comments below) -vv
@menu
* New dynamic marks::
@node New dynamic marks
@subsubsection New dynamic marks
+@c FIXME: this whole section should be removed and put in
+@c "Writing text" -vv
+
It is possible to print new dynamic marks or text that should be
aligned with dynamics. Use @code{make-dynamic-script} to create
these marks. Note that the dynamic font only contains the
@node Text and line spanners
@subsubsection Text and line spanners
+@c FIXME: this whole section has to be removed.
+@c glissando stuff should go into Expressive marks;
+@c Text spanners should go into... Text spanners.
+@c (I'm on it) --vv
+
Some performance indications, e.g., @i{rallentando} and
@i{accelerando} and @i{trills} are written as text and are
extended over many measures with lines, sometimes dotted or wavy.
This chapter discusses how to modify output. LilyPond is extremely
configurable; virtually every fragment of output may be changed.
-TODO: This chapter is still under development and this version is
-not yet complete. Don't translate yet!
-
-
@menu
* Tweaking basics::
* The Internals Reference manual::
-* Appearance of objects::
+* Appearance of objects::
* Placement of objects::
* Collisions of objects::
* Further tweaking::
achieved.
In this section we cover the basic concepts required to understand
-tweaking. Later we give a variety of potted commands which can
+tweaking. Later we give a variety of ready-made commands which can
simply be copied to obtain the same effect in your own scores, and
at the same time we show how these commands may be constructed so
that you may learn how to develop your own tweaks.
properties associated with that particular staff, for example, its
name and its key signature, together with details of the engravers
which have been assigned to operate within that staff's context.
-Similarly, there are @code{Voice} objects, @code{Score} objects,
-@code{Lyric} objects, and objects to represent bar lines,
- note heads, ties, dynamics, etc, each with their own set of
-properties.
+Similarly, there are objects to hold the properties of all other
+contexts, such as @code{Voice} objects, @code{Score} objects,
+@code{Lyrics} objects, as well as objects to represent all
+notational elements such as bar lines,
+note heads, ties, dynamics, etc. Every object has its own set of
+property values.
Some types of object are given special names. Objects which
represent items of notation on the printed output such as
@headitem Object/property type
@tab Naming convention
@tab Example
-@item Contexts, Layout Objects
+@item Contexts
+ @tab Aaaa or AaaaAaaaAaaa
+ @tab Staff, GrandStaff
+@item Layout Objects
@tab Aaaa or AaaaAaaaAaaa
- @tab Staff, GrandStaff,
+ @tab Slur, NoteHead
@item Engravers
@tab Aaaa_aaa_engraver
@tab Clef_engraver, Note_heads_engraver
@c Maybe explain in a later iteration -td
The final tweaking command which is available is @code{\tweak}.
-It is not really a new command but a shorthand for an
-@code{\override} command which must be used in a few special
-circumstances. Again, we shall not discuss or use it here.
-You may find the details in
+This should be used to change the properties of objects which
+occur at the same musical moment, such as the notes within a
+chord. Using @code{\override} would affect all the notes
+within a chord, whereas @code{\tweak} affects just the following
+item in the input stream. You may find the details in
@ruser{Objects connected to the input}.
-@c Maybe explain in a later iteration -td
@node The Internals Reference manual
@section The Internals Reference manual
@menu
* Visibility and color of objects::
-* Size of objects::
-* Length and thickness of objects::
+* Size of objects::
+* Length and thickness of objects::
@end menu
@node Visibility and color of objects
by extension, many other layout objects too.) Let's consider
each of these in turn.
-@c FIXME: is this what you meant?
-@c TODO Change all other headings like this
@subheading stencil
@cindex stencil property
when the object is created. The following table shows
the default numerical values for some of the commonest
outside-staff objects which are, by default, placed in the
-@code{Staff} Context.
+@code{Staff} or @code{Voice} contexts.
@multitable @columnfractions .3 .3 .3
@headitem Layout Object
@tab Priority
@tab Controls position of:
-@item @code{DynamicLineSpanner}
- @tab @code{ 250}
- @tab All dynamic markings
-@item @code{OttavaBracket}
- @tab @code{ 400}
- @tab Ottava brackets
-@item @code{TextScript}
- @tab @code{ 450}
+@item @code{MultiMeasureRestText}
+ @tab @code{450}
+ @tab Text over full-bar rests
+@item @code{TextScript}
+ @tab @code{450}
@tab Markup text
-@item @code{TextSpanner}
- @tab @code{ 350}
+@item @code{OttavaBracket}
+ @tab @code{400}
+ @tab Ottava brackets
+@item @code{TextSpanner}
+ @tab @code{350}
@tab Text spanners
+@item @code{DynamicLineSpanner}
+ @tab @code{250}
+ @tab All dynamic markings
+@item @code{VoltaBracketSpanner}
+ @tab @code{100}
+ @tab Volta brackets
+@item @code{TrillSpanner}
+ @tab @code{50}
+ @tab Spanning trills
@end multitable
-Here is an example showing the default placement of these.
+Here is an example showing the default placement of some of
+these.
@cindex text spanner
@funindex \startTextSpan
@multitable @columnfractions .3 .3
@headitem Layout Object @tab Priority
-@item @code{BarNumber} @tab @code{ 100}
-@item @code{MetronomeMark} @tab @code{1000}
@item @code{RehearsalMark} @tab @code{1500}
+@item @code{MetronomeMark} @tab @code{1000}
+@item @code{BarNumber} @tab @code{ 100}
@end multitable
-If the default values of @code{outside-staff-priority} does not
+If the default values of @code{outside-staff-priority} do not
give you the placing you want, the priority of any of the objects
may be overridden. Suppose we would
like the ottava bracket to be placed below the text spanner in the
example above. All we need to do is to look up the priority of
@code{OttavaBracket} in the IR or in the tables above, and reduce
-it to a value lower than that of a @code{TextSpanner}:
+it to a value lower than that of a @code{TextSpanner}, remembering
+that @code{OttavaBracket} is created in the @code{Staff} context:
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
% Set details for later Text Spanner
% Place dynamics above staff
\dynamicUp
%Place following Ottava Bracket below Text Spanners
-\once \override OttavaBracket #'outside-staff-priority = #340
+\once \override Staff.OttavaBracket #'outside-staff-priority = #340
% Start Ottava Bracket
#(set-octavation 1)
c' \startTextSpan
@code{self-alignment-X}
@cindex self-alignment-X property
-This property aligns the object to the left, to the right, or
-centers it with respect to the parent object's reference point.
-It may be used with all objects which support the
-@code{self-alignment-interface}. In general these are objects
+This property can be used to align the object to the left, to
+the right, or to center it with respect to the parent object's
+reference point. It may be used with all objects which support
+the @code{self-alignment-interface}. In general these are objects
that contain text. The values are @code{LEFT}, @code{RIGHT}
-or @code{CENTER}. The movement is limited by the length of the
-object. Any numerical value between @code{-1} and @code{+1} may
-also be specified, where @code{-1} is left-aligned, @code{+1}
-is right-aligned, and numbers in between move the text
-progressively from left-aligned to right-aligned.
+or @code{CENTER}. Alternatively, a numerical value between
+@code{-1} and @code{+1} may be specified, where @code{-1} is
+left-aligned, @code{+1} is right-aligned, and numbers in between
+move the text progressively from left-aligned to right-aligned.
+Numerical values greater than @code{1} may be specified to move
+the text even further to the left, or less than @code{-1} to
+move the text even further to the right. A change of @code{1}
+in the value corresponds to a movement of half the text's length.
@item
@code{extra-spacing-width}
of beams, slurs, and tuplets. It takes a pair of numbers
giving the position of the left and right ends of the beam, slur,
etc. relative to the center line of the staff. Units are
-staff-spaces.
+staff-spaces. Note, though, that slurs and phrasing slurs cannot
+be repositioned by arbitrarily large amounts. LilyPond first
+generates a list of possible positions for the slur and by default
+finds the slur that @qq{looks best}. If the @code{positions}
+property has been overridden the slur that is closest to the
+requested positions is selected from the list.
@end table
Objects do not all have all of these properties in general.
Let's now see how the properties in the previous section can
help to resolve overlapping notation.
-@subheading padding property
+@c FIXME: formatting
+@subheading @code{padding}
@cindex padding property
The @code{padding} property can be set to increase
@end lilypond
Note in the second example how important it is to figure out what
-context handles a certain object. Since the @code{MetronomeMark} object
+context handles a certain object. Since the @code{MetronomeMark}
+object
is handled in the @code{Score} context, property changes in the
@code{Voice} context will not be noticed. For more details, see
@ruser{Constructing a tweak}.
-@subheading left-padding and right-padding properties
+If the @code{padding} property of an object is increased when that
+object is in a stack of objects being positioned according to
+their @code{outside-staff-priority}, then that object and all
+objects outside it are moved.
+
+
+@subheading @code{left-padding} and @code{right-padding}
@cindex left-padding property
@cindex right-padding property
@section Further tweaking
@menu
-* Other uses for tweaks::
-* Using variables for tweaks::
-* Other sources of information::
-* Advanced tweaks with Scheme::
-* Avoiding tweaks with slower processing::
+* Other uses for tweaks::
+* Using variables for tweaks::
+* Other sources of information::
+* Advanced tweaks with Scheme::
+* Avoiding tweaks with slower processing::
@end menu
@node Other uses for tweaks
@itemize
-@cindex transparent property
+@cindex transparent property, use of
@cindex objects, making invisible
@cindex removing objects
@cindex objects, removing
@cindex hiding objects
@cindex invisible objects
+@cindex tying notes across voices
@item
-Setting the @code{transparent} property will cause an object
-to be printed in @q{invisible ink}: the object is not printed,
-but all its other behavior is retained. The object still takes
-up space, it takes part in collisions, and slurs, ties, and beams
-can be attached to it.
+@subheading Tying notes across voices
-The following example demonstrates how to connect different voices
-using ties. Normally, ties only connect two notes in the same
-voice. By introducing a tie in a different voice,
+The following example demonstrates how to connect notes in
+different voices using ties. Normally, ties can be used to
+only to connect two notes in the same voice. By introducing
+a tie in a different voice,
@lilypond[quote,fragment,relative=2]
<< {
@end lilypond
@noindent
-and blanking the first up-stem in that voice, the tie appears to cross
-voices:
+and blanking the first up-stem in that voice, the tie appears to
+cross voices:
@lilypond[quote,fragment,relative=2,verbatim]
<< {
} >>
@end lilypond
-To make sure that the just-blanked stem doesn't squeeze the tie too much,
-we also lengthen the stem, by setting the @code{length} to
-@code{8},
+To make sure that the just-blanked stem doesn't squeeze the tie
+too much, we can also lengthen the stem, by setting the
+@code{length} to @code{8},
@lilypond[quote,fragment,relative=2,verbatim]
<< {
} >>
@end lilypond
-@cindex stencil property
-
@item
+@subheading Simulating a fermata
+
+@cindex stencil property, use of
+@cindex fermata, implementing in MIDI
+
For outside-staff objects it is usually better to override the
object's @code{stencil} property rather than its @code{transparent}
property when you wish to remove it from the printed output.
\tempo 4=120
a a a a
}
+ \layout { }
\midi { }
}
@end lilypond
@node Using variables for tweaks
@subsection Using variables for tweaks
-TODO Add section
+Override commands are often long and tedious to type, and they
+have to be absolutely correct. If the same overrides are to be
+used many times it may be worth defining variables to hold them.
+Suppose we wish to emphasize certain words in lyrics by printing
+them in bold italics. The @code{\italic} and @code{\bold}
+commands do not work within lyrics so we must instead use the
+following @code{\override} and @code{\revert} commands:
+
+@example
+@code{\override Lyrics . LyricText #'font-shape = #'italic}
+@code{\override Lyrics . LyricText #'font-series = #'bold}
+
+@code{\revert Lyrics . LyricText #'font-shape}
+@code{\revert Lyrics . LyricText #'font-series}
+@end example
+
+These would be extremely tedious to enter if there were many words
+requiring emphasis. So instead we define these as two variables,
+and use them as follows:
+
+@lilypond[quote,verbatim]
+emph = {
+ \override Lyrics . LyricText #'font-shape = #'italic
+ \override Lyrics . LyricText #'font-series = #'bold
+}
+norm = {
+ \revert Lyrics . LyricText #'font-shape
+ \revert Lyrics . LyricText #'font-series
+}
+
+global = { \time 4/4 \partial 4 \key c \major}
+SopMusic = \relative c' { c4 | e4. e8 g4 g | a a g }
+AltoMusic = \relative c' { c4 | c4. c8 e4 e | f f e }
+TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 }
+BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 }
+VerseOne = \lyrics { E -- | ter -- nal \emph Fa -- ther, \norm | strong to save, }
+VerseTwo = \lyricmode { O | \emph Christ, \norm whose voice the | wa -- ters heard, }
+VerseThree = \lyricmode { O | \emph Ho -- ly Spi -- rit, \norm | who didst brood }
+VerseFour = \lyricmode { O | \emph Tri -- ni -- ty \norm of | love and pow'r }
+
+\score {
+ \new ChoirStaff <<
+ \new Staff <<
+ \clef "treble"
+ \new Voice = "Sop" { \voiceOne \global \SopMusic }
+ \new Voice = "Alto" { \voiceTwo \AltoMusic }
+ \new Lyrics \lyricsto "Sop" { \VerseOne }
+ \new Lyrics \lyricsto "Sop" { \VerseTwo }
+ \new Lyrics \lyricsto "Sop" { \VerseThree }
+ \new Lyrics \lyricsto "Sop" { \VerseFour }
+ >>
+ \new Staff <<
+ \clef "bass"
+ \new Voice = "Tenor" { \voiceOne \TenorMusic }
+ \new Voice = "Bass" { \voiceTwo \BassMusic }
+ >>
+ >>
+}
+@end lilypond
+
+
@node Other sources of information
@subsection Other sources of information
The Internals Reference documentation contains a lot of information
about LilyPond, but even more information can be gathered from
-looking at the internal LilyPond files.
-
-TODO Show example, then explain where to find ly/propert-ly.
-
-Some default settings (such as the definitions for
-@code{\header@{@}}s) are stored as @code{.ly} files. Other
-settings (such as the definitions of markup commands) are
-stored as @code{.scm} (Scheme) files. Further explanation is
-outside the scope of this manual; users should be warned that
-a substantial amount of technical knowledge or time is required
-to understand these files.
+looking at the internal LilyPond files. To explore these, first
+find the directory appropriate to your system, as follows:
@itemize
-@item Linux: @file{@var{installdir}/lilypond/usr/share/lilypond/current/}
+@item Linux:
+Navigate to
+@file{@var{installdir}/lilypond/usr/share/lilypond/current/}
@item OSX:
+Navigate to
@file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
-To access this, either @code{cd} into this directory from the
-Terminal, or control-click on the LilyPond application and select
-@q{Show Package Contents}.
+by either @code{cd}-ing into this directory from the
+Terminal, or control-clicking on the LilyPond application and
+selecting @q{Show Package Contents}.
-@item Windows: @file{@var{installdir}/LilyPond/usr/share/lilypond/current/}
+@item Windows:
+Using Windows Explorer, navigate to
+@file{@var{installdir}/LilyPond/usr/share/lilypond/current/}
@end itemize
-The @file{ly/} and @file{scm/} directories will be of
-particular interest. Files such as @file{ly/property-init.ly} and
-@file{ly/declarations-init.ly} define all the common tweaks.
+Within this directory the two interesting subdirectories are
+
+@itemize
+
+@item @file{../ly/} - contains files in LilyPond format
+
+@item @file{../scm/} - contains files in Scheme format
+
+@end itemize
+
+Let's begin by looking at some files in @file{../ly/}.
+Open @file{../ly/property-init.ly} in a text editor. The one
+you normally use for @code{.ly} files will be fine. This file
+contains the definitions of all the standard LilyPond built-in
+commands -- like @code{\stemUp} and @code{\slurDotted}. You will
+see that these are nothing more than definitions of variables
+containing one or a group of @code{\override} commands. For
+example, @code{/tieDotted} is defined to be:
+
+@example
+tieDotted = @{
+ \override Tie #'dash-period = #0.75
+ \override Tie #'dash-fraction = #0.1
+@}
+@end example
+
+If you do not like the default values these built-in commands can
+be redefined easily, just like any other variable, at the
+head of your input file.
+
+These are the most useful files to be found in @file{../ly/}:
+
+@multitable @columnfractions .4 .6
+@headitem Filename
+ @tab Contents
+@item @file{../ly/engraver-init.ly}
+ @tab Definitions of engraver Contexts
+@item @file{../ly/paper-defaults.ly}
+ @tab Specifications of paper-related defaults
+@item @file{../ly/performer-init.ly}
+ @tab Definitions of performer Contexts
+@item @file{../ly/property-init.ly}
+ @tab Definitions of all common macros
+@end multitable
+
+Other settings (such as the definitions of markup commands) are
+stored as @code{.scm} (Scheme) files. The Scheme programming
+language is used to provide a programmable interface into
+LilyPond internal operation. Further explanation of these files
+is currently outside the scope of this manual, as a knowledge of
+the Scheme language is required. Users should be warned that
+a substantial amount of technical knowledge or time is required
+to understand Scheme and these files.
+
+If you have this knowledge, the Scheme files which may be of
+interest are:
+
+@multitable @columnfractions .4 .6
+@headitem Filename
+ @tab Contents
+@item @file{../scm/auto-beam.scm}
+ @tab Sub-beaming defaults
+@item @file{../scm/define-grobs.scm}
+ @tab Default settings for grob properties
+@item @file{../scm/define-markup-commands.scm}
+ @tab Specify all markup commands
+@item @file{../scm/midi.scm}
+ @tab Default settings for MIDI output
+@item @file{../scm/output-lib.scm}
+ @tab Settings that affect appearance of frets, colors,
+ accidentals, bar lines, etc
+@item @file{../scm/parser-clef.scm}
+ @tab Definitions of supported clefs
+@item @file{../scm/script.scm}
+ @tab Default settings for articulations
+@end multitable
+
@node Advanced tweaks with Scheme
+
+
@itemize
@item Bug reports
@item Sending a help request to mailists
-@item Adding an example to the @uref{http://lsr@/.dsi@/.unimi@/.it/,LilyPond
-Snippet Repository}
+@item Adding an example to the @uref{http://lsr.dsi.unimi.it/,
+LilyPond Snippet Repository}
@end itemize
To construct an example which is as small as possible, the rule is
************
-
DEVELOPMENT TEAM
Han-Wen Nienhuys - Core development
GRAND DOCUMENTATION PROJECT
+
Trevor Daniels - main Rewriter
Eyolf Østrem - main Rewriter
Kurt Kroon - Glossary updates
TRANSLATORS
+Clytie Siddall
Francisco Vila
Jean-Charles Malahieude
John Mandereau
Zoltan Selyem
+
Release 2.10
************
--- /dev/null
+#!@PYTHON@
+
+"""
+USAGE: translations-status.py BUILDSCRIPT-DIR LOCALEDIR
+
+ This script must be run from Documentation/
+
+ Reads template files translations.template.html
+and for each LANG in LANGUAGES LANG/translations.template.html
+
+ Writes translations.html.in and for each LANG in LANGUAGES
+translations.LANG.html.in
+"""
+
+import sys
+import re
+import string
+import os
+import gettext
+
+def progress (str):
+ sys.stderr.write (str + '\n')
+
+progress ("translations-status.py")
+
+buildscript_dir = sys.argv[1]
+localedir = sys.argv[2]
+
+_doc = lambda s: s
+
+sys.path.append (buildscript_dir)
+import langdefs
+
+# load gettext messages catalogs
+translation = {}
+for l in langdefs.LANGUAGES:
+ if l.enabled and l.code != 'en':
+ translation[l.code] = gettext.translation('lilypond-doc', localedir, [l.code]).gettext
+
+def read_pipe (command):
+ pipe = os.popen (command)
+ output = pipe.read ()
+ if pipe.close ():
+ print "pipe failed: %(command)s" % locals ()
+ return output
+
+comments_re = re.compile (r'^@ignore\n(.|\n)*?\n@end ignore$|@c .*?$', re.M)
+space_re = re.compile (r'\s+', re.M)
+lilypond_re = re.compile (r'@lilypond({.*?}|(.|\n)*?\n@end lilypond$)', re.M)
+node_re = re.compile ('^@node .*?$', re.M)
+title_re = re.compile ('^@(top|chapter|(?:sub){0,2}section|(?:unnumbered|appendix)(?:(?:sub){0,2}sec)?) (.*?)$', re.M)
+include_re = re.compile ('^@include (.*?)$', re.M)
+
+committish_re = re.compile ('GIT [Cc]ommittish: ([a-f0-9]+)')
+translators_re = re.compile (r'^@c\s+Translators\s*:\s*(.*?)$', re.M | re.I)
+checkers_re = re.compile (r'^@c\s+Translation\s*checkers\s*:\s*(.*?)$', re.M | re.I)
+status_re = re.compile (r'^@c\s+Translation\s*status\s*:\s*(.*?)$', re.M | re.I)
+post_gdp_re = re.compile ('post.GDP', re.I)
+untranslated_node_str = 'UNTRANSLATED NODE: IGNORE ME'
+skeleton_str = '-- SKELETON FILE --'
+
+diff_cmd = 'git diff --no-color %(committish)s HEAD -- %(original)s | cat'
+
+format_table = {
+ 'not translated': {'color':'d0f0f8', 'short':_doc ('no'), 'long':_doc ('not translated')},
+ 'partially translated': {'color':'dfef77', 'short':_doc ('partially (%(p)d %%)'),
+ 'long':_doc ('partially translated (%(p)d %%)')},
+ 'fully translated': {'color':'1fff1f', 'short':_doc ('yes'), 'long': _doc ('translated')},
+ 'up to date': {'short':_doc ('yes'), 'long':_doc ('up to date')},
+ 'outdated': {'short':_doc ('partially (%(p)d %%)'), 'long':_doc ('partially up-to-date (%(p)d %%)')},
+ 'pre-GDP':_doc ('pre-GDP'),
+ 'post-GDP':_doc ('post-GDP')
+}
+
+texi_level = {
+# (Unumbered/Numbered/Lettered, level)
+ 'top': ('u', 0),
+ 'unnumbered': ('u', 1),
+ 'unnumberedsec': ('u', 2),
+ 'unnumberedsubsec': ('u', 3),
+ 'chapter': ('n', 1),
+ 'section': ('n', 2),
+ 'subsection': ('n', 3),
+ 'appendix': ('l', 1)
+}
+
+appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY','ABCDEFGHIJKLMNOPQRSTUVWXYZ')
+
+class SectionNumber (object):
+ def __init__ (self):
+ self.__current_number = [0]
+ self.__type = 'n'
+
+ def __increase_last_index (self):
+ if isinstance (self.__current_number[-1], str):
+ self.__current_number[-1] = self.__current_number[-1].translate (appendix_number_trans)
+ else:
+ self.__current_number[-1] += 1
+
+ # ugh, current implementation is too naive:
+ # unnumbered stuff is really printed without number for @top only
+ def format (self):
+ if self.__current_number == [0] or self.__type == 'u':
+ return ''
+ return '.'.join ([str (i) for i in self.__current_number[1:]]) + ' '
+
+ def increase (self, (type, level)):
+ if level == 0:
+ self.__current_number = [0]
+ while level + 1 < len (self.__current_number):
+ del self.__current_number[-1]
+ if level + 1 > len (self.__current_number):
+ self.__type = type
+ if type == 'l':
+ self.__current_number.append ('@')
+ else:
+ self.__current_number.append (0)
+
+ if type == self.__type:
+ self.__increase_last_index ()
+ elif type == 'l' and level == 1:
+ self.__current_number[-1] = 'A'
+ else:
+ self.__current_number[-1] = 1
+ return self.format ()
+
+
+def percentage_color (percent):
+ p = percent / 100.0
+ if p < 0.33:
+ c = [hex (int (3 * p * b + (1 - 3 * p) * a))[2:] for (a, b) in [(0xff, 0xff), (0x5c, 0xa6), (0x5c, 0x4c)]]
+ elif p < 0.67:
+ c = [hex (int ((3 * p - 1) * b + (2 - 3 * p) * a))[2:] for (a, b) in [(0xff, 0xff), (0xa6, 0xff), (0x4c, 0x3d)]]
+ else:
+ c = [hex (int ((3 * p - 2) * b + 3 * (1 - p) * a))[2:] for (a, b) in [(0xff, 0x1f), (0xff, 0xff), (0x3d, 0x1f)]]
+ return ''.join (c)
+
+def line_word_count (tely_line):
+ if tely_line.startswith ('@'):
+ return 0
+ tely_line = comments_re.sub ('', tely_line)
+ return len (space_re.split (tely_line))
+
+def tely_word_count (tely_doc):
+ '''
+ Calculate word count of a Texinfo document node by node.
+
+ Take string tely_doc as an argument.
+ Return a list of integers.
+
+ Texinfo comments and @lilypond blocks are not included in word counts.
+ '''
+ tely_doc = comments_re.sub ('', tely_doc)
+ tely_doc = lilypond_re.sub ('', tely_doc)
+ nodes = node_re.split (tely_doc)
+ return [len (space_re.split (n)) for n in nodes]
+
+
+class TelyDocument (object):
+ def __init__ (self, filename):
+ self.filename = filename
+ self.contents = open (filename).read ()
+
+ ## record title and sectionning level of first Texinfo section
+ m = title_re.search (self.contents)
+ if m:
+ self.title = m.group (2)
+ self.level = texi_level [m.group (1)]
+ else:
+ self.title = 'Untitled'
+ self.level = ('u', 1)
+
+ included_files = [os.path.join (os.path.dirname (filename), t) for t in include_re.findall (self.contents)]
+ self.included_files = [p for p in included_files if os.path.exists (p)]
+
+ def print_title (self, section_number):
+ return section_number.increase (self.level) + self.title
+
+
+class TranslatedTelyDocument (TelyDocument):
+ def __init__ (self, filename, masterdocument, parent_translation=None):
+ TelyDocument.__init__ (self, filename)
+
+ self.masterdocument = masterdocument
+
+ ## record authoring information
+ m = translators_re.search (self.contents)
+ if m:
+ self.translators = [n.strip () for n in m.group (1).split (',')]
+ else:
+ self.translators = parent_translation.translators
+ m = checkers_re.search (self.contents)
+ if m:
+ self.checkers = [n.strip () for n in m.group (1).split (',')]
+ elif isinstance (parent_translation, TranslatedTelyDocument):
+ self.checkers = parent_translation.checkers
+ else:
+ self.checkers = []
+
+ ## check whether translation is pre- or post-GDP
+ m = status_re.search (self.contents)
+ if m:
+ self.post_gdp = bool (post_gdp_re.search (m.group (1)))
+ else:
+ self.post_gdp = False
+
+ ## record which parts (nodes) of the file are actually translated
+ self.partially_translated = not skeleton_str in self.contents
+ nodes = node_re.split (self.contents)
+ self.translated_nodes = [not untranslated_node_str in n for n in nodes]
+
+ ## calculate translation percentage
+ master_total_word_count = sum (masterdocument.word_count)
+ translation_word_count = sum ([masterdocument.word_count[k] * self.translated_nodes[k]
+ for k in range (min (len (masterdocument.word_count), len (self.translated_nodes)))])
+ self.translation_percentage = 100 * translation_word_count / master_total_word_count
+
+ ## calculate how much the file is outdated
+ m = committish_re.search (self.contents)
+ if not m:
+ sys.stderr.write ('error: ' + filename + \
+ ": no 'GIT committish: <hash>' found.\nPlease check " + \
+ 'the whole file against the original in English, then ' + \
+ 'fill in HEAD committish in the header.\n')
+ sys.exit (1)
+ diff = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename}).splitlines ()
+ insertions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('+') and not l.startswith ('+++')])
+ deletions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('-') and not l.startswith ('---')])
+ outdateness_percentage = 50.0 * (deletions + insertions) / (master_total_word_count + 0.5 * (deletions - insertions))
+ self.uptodate_percentage = 100 - int (outdateness_percentage)
+ if self.uptodate_percentage > 100:
+ alternative = 50
+ progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+ % (self.filename, self.uptodate_percentage, alternative))
+ self.uptodate_percentage = alternative
+ elif self.uptodate_percentage < 1:
+ alternative = 1
+ progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+ % (self.filename, self.uptodate_percentage, alternative))
+ self.uptodate_percentage = alternative
+
+ def completeness (self, formats=['long']):
+ if isinstance (formats, str):
+ formats = [formats]
+ p = self.translation_percentage
+ if p == 0:
+ status = 'not translated'
+ elif p == 100:
+ status = 'fully translated'
+ else:
+ status = 'partially translated'
+ return dict ([(f, format_table[status][f] % locals()) for f in formats])
+
+ def uptodateness (self, formats=['long']):
+ if isinstance (formats, str):
+ formats = [formats]
+ p = self.uptodate_percentage
+ if p == 100:
+ status = 'up to date'
+ else:
+ status = 'outdated'
+ l = {}
+ for f in formats:
+ if f == 'color':
+ l['color'] = percentage_color (p)
+ else:
+ l[f] = format_table[status][f] % locals ()
+ return l
+
+ def gdp_status (self, translation=lambda s: s):
+ if self.post_gdp:
+ return translation (format-table['post-GDP'])
+ else:
+ return translation (format-table['pre-GDP'])
+
+ def short_html_status (self):
+ s = ' <td>'
+ if self.partially_translated:
+ s += '<br>\n '.join (self.translators) + '<br>\n'
+ if self.checkers:
+ s += ' <small>' + '<br>\n '.join (self.checkers) + '</small><br>\n'
+
+ c = self.completeness (['long', 'color'])
+ s += ' <span style="background-color: #%(color)s">%(long)s</span><br>\n' % c
+
+ if self.partially_translated:
+ u = self.uptodateness (['long', 'color'])
+ s += ' <span style="background-color: #%(color)s">%(long)s</span><br>\n' % u
+
+ s += ' </td>\n'
+ return s
+
+ def html_status (self):
+ # TODO
+ return ''
+
+class MasterTelyDocument (TelyDocument):
+ def __init__ (self, filename, parent_translations=dict ([(lang, None) for lang in langdefs.LANGDICT.keys()])):
+ #print "init MasterTelyDocument %s" % filename
+ TelyDocument.__init__ (self, filename)
+ self.word_count = tely_word_count (self.contents)
+ translations = dict ([(lang, os.path.join (lang, filename)) for lang in langdefs.LANGDICT.keys()])
+ #print translations
+ self.translations = dict ([(lang, TranslatedTelyDocument (translations[lang], self, parent_translations.get (lang)))
+ for lang in langdefs.LANGDICT.keys() if os.path.exists (translations[lang])])
+ if self.translations:
+ self.includes = [MasterTelyDocument (f, self.translations) for f in self.included_files]
+ else:
+ self.includes = []
+
+ # TODO
+ def print_wc_priority (self):
+ return
+
+ def html_status (self, numbering=SectionNumber ()):
+ if self.title == 'Untitled' or not self.translations:
+ return ''
+ if self.level[1] == 0: # if self is a master document
+ s = '''<table align="center" border="2">
+ <tr align="center">
+ <th>%s</th>''' % self.print_title (numbering)
+ s += ''.join ([' <th>%s</th>\n' % l for l in self.translations.keys ()])
+ s += ' </tr>\n'
+ s += ' <tr align="left">\n <td>Section titles<br>(%d)</td>\n' \
+ % sum (self.word_count)
+
+ else:
+ s = ' <tr align="left">\n <td>%s<br>(%d)</td>\n' \
+ % (self.print_title (numbering), sum (self.word_count))
+
+ s += ''.join ([t.short_html_status () for t in self.translations.values ()])
+ s += ' </tr>\n'
+ s += ''.join ([i.html_status (numbering) for i in self.includes])
+
+ if self.level[1] == 0:
+ s += '</table>\n<p></p>\n'
+ return s
+
+progress ("Reading documents...")
+
+tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'").splitlines ()
+master_docs = [MasterTelyDocument (filename) for filename in tely_files]
+master_docs = [doc for doc in master_docs if doc.translations]
+
+main_status_page = open ('translations.template.html').read ()
+
+## TODO
+#per_lang_status_pages = dict ([(l, open (os.path.join (l, 'translations.template.html')). read ())
+# for l in langdefs.LANGDICT.keys ()
+# if langdefs.LANGDICT[l].enabled])
+
+progress ("Generating status pages...")
+
+main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')
+main_status_html += '\n'.join ([doc.html_status () for doc in master_docs])
+
+html_re = re.compile ('<html>', re.I)
+end_body_re = re.compile ('</body>', re.I)
+
+main_status_page = html_re.sub ('''<html>
+<!-- This page is automatically generated by translation-status.py from
+translations.template.html; DO NOT EDIT !-->''', main_status_page)
+
+main_status_page = end_body_re.sub (main_status_html + '\n</body>', main_status_page)
+
+open ('translations.html.in', 'w').write (main_status_page)
doc_dirs = ['input', 'Documentation', outdir]
target_pattern = os.path.join (outdir, '%s-root')
+# these redirection pages allow to go back to the documentation index
+# from HTML manuals/snippets page
static_files = {
os.path.join (outdir, 'index.html'):
- '''<META HTTP-EQUIV="refresh" content="0;URL=Documentation/index.html">
+ '''<META HTTP-EQUIV="refresh" content="0;URL=Documentation/index.html">
<html><body>Redirecting to the documentation index...</body></html>\n''',
os.path.join (outdir, 'VERSION'):
- package_version + '\n' }
+ package_version + '\n',
+ os.path.join ('input', 'lsr', outdir, 'index.html'):
+ '''<META HTTP-EQUIV="refresh" content="0;URL=../../index.html">
+<html><body>Redirecting to the documentation index...</body></html>\n'''
+ }
import langdefs
-# ugly hack: the following overwrites HTML Info dir with a link to
-# the (more useful) documentation index
for l in langdefs.LANGUAGES:
- static_files[os.path.join ('Documentation/user', outdir, l.file_name ('index', '.html'))] = \
+ static_files[os.path.join ('Documentation', 'user', outdir, l.file_name ('index', '.html'))] = \
'<META HTTP-EQUIV="refresh" content="0;URL=../' + l.file_name ('index', '.html') + \
'">\n<html><body>Redirecting to the documentation index...</body></html>\n'
dirs, symlinks, files = mirrortree.walk_tree (
tree_roots = doc_dirs,
process_dirs = outdir,
- exclude_dirs = '(^|/)(' + '|'.join ([l.code for l in langdefs.LANGUAGES]) + r'|po|out|\w*?-root)(/|$)',
+ exclude_dirs = '(^|/)(' + '|'.join ([l.code for l in langdefs.LANGUAGES]) + r'|po|out|.*?[.]t2d|\w*?-root)(/|$)',
find_files = r'.*?\.(?:midi|html|pdf|png|txt|ly|signature)$|VERSION',
- exclude_files = r'lily-[0-9a-f]+.*\.pdf')
+ exclude_files = r'lily-[0-9a-f]+.*\.(pdf|txt)')
# actual mirrorring stuff
html_files = []
also want to try LilyPond's predefined note heads styles, through
shortcut commands such as \\aikenHeads or \\sacredHarpHeads.
-This exemple shows different ways to obtain shape note heads, and
+This example shows different ways to obtain shape note heads, and
demonstrates the ability to transpose a melody without losing the
correspondance between harmonic functions and note heads styles.
" }
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.38"
+
+\header {
+ lsrtags = "expressive-marks, text"
+ texidoc = "
+Although the easiest way to add parenthesis to a dynamic mark is to use
+a \\markup block, this method has a downside: the created objects will
+behave like text markups, and not like dynamics.
+
+However, it is possible to create a similar object using the equivalent
+Scheme code (as described in \"Markup programmer interface\"), combined
+with the make-dynamic-script function. This way, the markup will be
+regarded as a dynamic, and therefore will remain compatible with
+commands such as \\dynamicUp or \\dynamicDown.
+
+
+" }
+% begin verbatim
+\paper { ragged-right = ##t }
+
+parenF = #(make-dynamic-script (markup #:line(#:normal-text #:italic
+#:fontsize 2 "(" #:hspace -0.8 #:dynamic "f" #:normal-text #:italic
+#:fontsize 2 ")" )))
+
+\score
+{
+ { c''\parenF c'' c'' \dynamicUp c''\parenF }
+}
lsrtags = "pitches"
texidoc = "
In early XXth century works, starting with Schönberg, Berg and Webern
-(the \"second\" Viennese school), every pitch in the twelve- note scale
+(the \"second\" Viennese school), every pitch in the twelve-tone scale
has to be regarded as equal, without any hierarchy such as the
classical (tonal) degrees. Therefore, these composers print one
accidental for each note, even at natural pitches, to emphasize their
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.38"
+
+\header {
+ lsrtags = "rhythms"
+ texidoc = "
+This example shows how to specify how long each of the tuplets
+contained within the bracket after @code{\\times} should last. Many
+consecutive tuplets can then be contained within a single @code{\\times
+@{ ... @}}, thus saving typing.
+
+In the example, two triplets are shown, while @code{\\times} was
+entered only once.
+
+
+For more information about @code{make-moment}, see \"Time
+administration\".
+" }
+% begin verbatim
+\relative {
+ \set tupletSpannerDuration = #(ly:make-moment 1 4)
+ \times 2/3 { c8 c c c c c }
+}
changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
caesura-railtracks-with-fermata.ly
breathing-sign.ly
+creating-real-parenthesized-dynamics.ly
center-text-below-hairpin-dynamics.ly
contemporary-glissando.ly
adding-parentheses-around-an-expressive-mark.ly
jazz-combo-template.ly
adding-drum-parts.ly
heavily-customized-polymetric-time-signatures.ly
+printing-music-with-different-time-signatures.ly
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.38"
+
+\header {
+ lsrtags = "rhythms, percussion"
+ texidoc = "
+In the following snippet, two parts have a completely different time
+signature, and yet keep synchronized.
+
+This can be achieved with the \\compressMusic command, as demonstrated
+here.
+
+The barlines can't be printed at the Score level anymore, so you have
+to remove the Barline_engraver and put it in the Staff context.
+" }
+% begin verbatim
+% Thanks to Adam James Wilson for this snippet
+
+\paper {
+ indent = #0
+ ragged-right = ##t
+}
+
+global = { \time 3/4 { s2. * 3 } \bar "" \break { s2. * 3 }}
+
+\layout {
+ \context { \Score
+ \remove "Timing_translator"
+ \remove "Time_signature_engraver"
+ \remove "Default_bar_line_engraver"
+ \override SpacingSpanner #'uniform-stretching = ##t
+ \override SpacingSpanner #'strict-note-spacing = ##t
+ proportionalNotationDuration = #(ly:make-moment 1 64)
+ }
+ \context { \Staff
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ \consists "Time_signature_engraver"
+ }
+ \context { \Voice
+ \remove Forbid_line_break_engraver
+ tupletFullLength = ##t
+ }
+}
+
+
+Bassklarinette = \new Staff <<
+ \global
+ {
+ \bar "|"
+ \clef treble
+ \time 3/8
+ d''4.
+
+ \bar "|"
+ \time 3/4
+ r8 des''2( c''8)
+
+ \bar "|"
+ \time 7/8
+ r4. ees''2 ~
+
+ \bar "|"
+ \time 2/4
+ \tupletUp
+ \times 2/3 {ees''4 r4 d''4 ~}
+
+ \bar "|"
+ \time 3/8
+ \tupletUp
+ \times 3/4 {d''4 r4}
+
+ \bar "|"
+ \time 2/4
+ e''2
+
+ \bar "|"
+ \time 3/8
+ es''4.
+\bar "|"
+\time 3/4
+r8 d''2 r8
+\bar "|"
+ }
+ >>
+Perkussion = \new StaffGroup <<
+ \new Staff <<
+ \global
+ {
+ \bar "|"
+ \clef percussion
+ \time 3/4
+ r4 c'2 ~
+
+ \bar "|"
+ c'2.
+
+ \bar "|"
+ R2.
+
+ \bar "|"
+ r2 g'4 ~
+
+ \bar "|"
+ g'2. ~
+
+ \bar "|"
+ g'2.
+ }
+ >>
+ \new Staff <<
+ \global
+ {
+ \bar "|"
+ \clef percussion
+ \time 3/4
+ R2.
+
+ \bar "|"
+ g'2. ~
+
+ \bar "|"
+ g'2.
+
+ \bar "|"
+ r4 g'2 ~
+
+ \bar "|"
+ g'2 r4
+
+ \bar "|"
+ g'2.
+ }
+ >>
+ >>
+
+\score { << \Bassklarinette \Perkussion >>
+
+}
+
adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly
conducting-signs,-measure-grouping-signs.ly
heavily-customized-polymetric-time-signatures.ly
+skips-in-lyric-mode.ly
rhythmic-slashes.ly
skips-in-lyric-mode-2.ly
manually-controlling-beam-positions.ly
automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly
making-an-object-invisible-with-the-transparent-property.ly
automatic-beam-subdivisions.ly
+rest-styles.ly
forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly
controlling-tuplet-bracket-visibility.ly
beam-across-line-breaks.ly
-skips-in-lyric-mode.ly
+printing-music-with-different-time-signatures.ly
adding-drum-parts.ly
-rest-styles.ly
+entering-several-tuplets-using-only-one--times-command.ly
compound-time-signatures.ly
-alignment-vertical-spacing.ly
vertically-aligning-ossias-and-lyrics.ly
+adjusting-lyrics-vertical-spacing.ly
+alignment-vertical-spacing.ly
page-label.ly
+vertically-centered-dynamics-and-textscripts.ly
proportional-strict-notespacing.ly
-adjusting-lyrics-vertical-spacing.ly
combining-dynamics-with-markup-texts.ly
creating-text-spanners.ly
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+creating-real-parenthesized-dynamics.ly
markup-lines.ly
center-text-below-hairpin-dynamics.ly
ottava-text.ly
demonstrating-all-headers.ly
+utf-8.ly
changing-the-default-text-font-family.ly
combining-two-parts-on-the-same-staff.ly
aligning-and-centering-instrument-names.ly
-utf-8.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
outputting-the-version-number.ly
blanking-staff-lines-using-the--whiteout-command.ly
formatting-lyrics-syllables.ly
altering-the-number-of-stems-in-a-beam.ly
time-signature-in-parentheses.ly
-changing-the-default-text-font-family.ly
+vertically-centered-dynamics-and-textscripts.ly
proportional-strict-notespacing.ly
-making-an-object-invisible-with-the-transparent-property.ly
+changing-the-default-text-font-family.ly
transcription-of-ancient-music-with-incipit.ly
alignment-vertical-spacing.ly
manually-controlling-beam-positions.ly
drawing-boxes-around-grobs.ly
move-specific-text.ly
drawing-circles-around-various-objects.ly
+making-an-object-invisible-with-the-transparent-property.ly
rest-styles.ly
creating-text-spanners.ly
using-the--tweak-command-to-tweak-individual-grobs.ly
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.38"
+
+\header {
+ lsrtags = "tweaks-and-overrides, spacing"
+ texidoc = "
+By setting the Y-extent property to a fixed value (here -1.5 . 1.5), we
+force LilyPond to align every elements of the DynamicLineSpanner (text
+elements and dynamics) to a common reference point, regardless to the
+actual extent of these objects. This way, every element will be
+vertically centered, for a nicer output (you can compare the first and
+the second line in this example; the trick is only applied on the
+second line).
+
+The same idea is used to align the text scripts along their baseline.
+" }
+% begin verbatim
+\paper { indent = 0 line-width = 5\in }
+
+music = \relative c''
+{
+ c2\p^\markup { "gorgeous" } c\f^\markup { "fantastic" }
+ c4\p c \f \> c c \! \p
+}
+
+\score
+{
+ {
+ \music \break
+
+ \override DynamicLineSpanner #'staff-padding = #2.0
+ \override DynamicLineSpanner #'Y-extent = #'(-1.5 . 1.5)
+ \override TextScript #'Y-extent = #'(-1.5 . 1.5)
+ \music
+ }
+}
+
--- /dev/null
+\version "2.11.39"
+\header {
+ doctitle = "Incipit"
+ lsrtags = "staff-notation,Ancient notation"
+ texidoc = "Incipits can be added using the instrument name grob, but
+keeping separate the instrument name definition and the incipit definition."
+}
+
+incipit =
+#(define-music-function (parser location incipit-music) (ly:music?)
+ #{
+ \once \override Staff.InstrumentName #'self-alignment-X = #RIGHT
+ \once \override Staff.InstrumentName #'self-alignment-Y = #UP
+ \once \override Staff.InstrumentName #'Y-offset = #4
+ \once \override Staff.InstrumentName #'padding = #0.3
+ \once \override Staff.InstrumentName #'stencil =
+ #(lambda (grob)
+ (let* ((instrument-name (ly:grob-property grob 'long-text))
+ (layout (ly:output-def-clone (ly:grob-layout grob)))
+ (music (make-music 'SequentialMusic
+ 'elements (list (make-music 'ContextSpeccedMusic
+ 'context-type 'MensuralStaff
+ 'element (make-music 'PropertySet
+ 'symbol 'instrumentName
+ 'value instrument-name))
+ $incipit-music)))
+ (score (ly:make-score music))
+ (mm (ly:output-def-lookup layout 'mm))
+ (indent (ly:output-def-lookup layout 'indent))
+ (width (ly:output-def-lookup layout 'incipit-width))
+ (incipit-width (if (number? width)
+ (* width mm)
+ (* indent 0.5))))
+ (ly:output-def-set-variable! layout 'indent (- indent incipit-width))
+ (ly:output-def-set-variable! layout 'line-width indent)
+ (ly:output-def-set-variable! layout 'ragged-right #f)
+ (ly:output-def-set-variable! layout 'ragged-last #f)
+ (ly:output-def-set-variable! layout 'system-count 1)
+ (ly:score-add-output-def! score layout)
+ (set! (ly:grob-property grob 'long-text)
+ (markup #:score score))
+ (ly:system-start-text::print grob)))
+ #})
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+global = {
+ \set Score.skipBars = ##t
+ \key g \major
+ \time 4/4
+
+ %make the staff lines invisible on staves
+ \override Staff.BarLine #'transparent = ##t
+ \skip 1*8 % the actual music
+
+ % let finis bar go through all staves
+ \override Staff.BarLine #'transparent = ##f
+
+ % finis bar
+ \bar "|."
+}
+
+discantusIncipit = <<
+ \new MensuralVoice = discantusIncipit <<
+ \repeat unfold 9 { s1 \noBreak }
+ {
+ \clef "neomensural-c1"
+ \key f \major
+ \time 2/2
+ c''1.
+ }
+ >>
+ \new Lyrics \lyricsto discantusIncipit { IV- }
+>>
+
+discantusNotes = {
+ \transpose c' c'' {
+ \clef "treble"
+ d'2. d'4 |
+ b e' d'2 |
+ c'4 e'4.( d'8 c' b |
+ a4) b a2 |
+ b4.( c'8 d'4) c'4 |
+ \once \override NoteHead #'transparent = ##t c'1 |
+ b\breve |
+ }
+}
+
+discantusLyrics = \lyricmode {
+ Ju -- bi -- |
+ la -- te De -- |
+ o, om --
+ nis ter -- |
+ ra, __ om- |
+ "..." |
+ -us. |
+}
+
+altusIncipit = <<
+ \new MensuralVoice = altusIncipit <<
+ \repeat unfold 9 { s1 \noBreak }
+ {
+ \clef "neomensural-c3"
+ \key f \major
+ \time 2/2
+ r1 f'1.
+ }
+ >>
+ \new Lyrics \lyricsto altusIncipit { IV- }
+>>
+
+altusNotes = {
+ \transpose c' c'' {
+ \clef "treble"
+ r2 g2. e4 fis g | % two bars
+ a2 g4 e |
+ fis g4.( fis16 e fis4) |
+ g1 |
+ \once \override NoteHead #'transparent = ##t g1 |
+ g\breve |
+ }
+}
+
+altusLyrics = \lyricmode {
+ Ju -- bi -- la -- te | % two bars
+ De -- o, om -- |
+ nis ter -- ra, |
+ "..." |
+ -us. |
+}
+
+tenorIncipit = <<
+ \new MensuralVoice = tenorIncipit <<
+ \repeat unfold 9 { s1 \noBreak }
+ {
+ \clef "neomensural-c4"
+ \key f \major
+ \time 2/2
+ r\longa
+ r\breve
+ r1 c'1.
+ }
+ >>
+ \new Lyrics \lyricsto tenorIncipit { IV- }
+>>
+
+tenorNotes = {
+ \transpose c' c' {
+ \once \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 3)
+ \clef "treble_8"
+ R1 |
+ R1 |
+ R1 |
+ r2 d'2. d'4 b e' | % two bars
+ \once \override NoteHead #'transparent = ##t e'1 |
+ d'\breve |
+ }
+}
+
+tenorLyrics = \lyricmode {
+ Ju -- bi -- la -- te | % two bars
+ "..." |
+ -us.
+}
+
+bassusIncipit = <<
+ \new MensuralVoice = bassusIncipit <<
+ \repeat unfold 9 { s1 \noBreak }
+ {
+ \clef "bass"
+ \key f \major
+ \time 2/2
+ %% incipit
+ r\maxima
+ f1.
+ }
+ >>
+ \new Lyrics \lyricsto bassusIncipit { IV- }
+>>
+
+bassusNotes = {
+ \transpose c' c' {
+ \clef "bass"
+ R1 |
+ R1 |
+ R1 |
+ R1 |
+ g2. e4 |
+ \once \override NoteHead #'transparent = ##t e1 |
+ g\breve |
+ }
+}
+
+bassusLyrics = \lyricmode {
+ Ju -- bi- |
+ "..." |
+ -us.
+}
+
+\score {
+ <<
+ \new StaffGroup = choirStaff <<
+ \new Voice = "discantusNotes" <<
+ \global
+ \set Staff.instrumentName = "Discantus"
+ \incipit \discantusIncipit
+ \discantusNotes
+ >>
+ \new Lyrics = "discantusLyrics" \lyricsto discantusNotes { \discantusLyrics }
+ \new Voice = "altusNotes" <<
+ \global
+ \set Staff.instrumentName = "Altus"
+ \incipit \altusIncipit
+ \altusNotes
+ >>
+ \new Lyrics = "altusLyrics" \lyricsto altusNotes { \altusLyrics }
+ \new Voice = "tenorNotes" <<
+ \global
+ \set Staff.instrumentName = "Tenor"
+ \incipit \tenorIncipit
+ \tenorNotes
+ >>
+ \new Lyrics = "tenorLyrics" \lyricsto tenorNotes { \tenorLyrics }
+ \new Voice = "bassusNotes" <<
+ \set Staff.instrumentName = "Bassus"
+ \incipit \bassusIncipit
+ \bassusNotes
+ >>
+ >>
+ \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
+ %% Keep the bass lyrics outside of the staff group to avoid bar lines
+ %% between the lyrics.
+ >>
+ \layout {
+ \context {
+ \Score
+ %% no bars in staves
+ \override BarLine #'transparent = ##t
+ }
+ %% the next three instructions keep the lyrics between the barlines
+ \context {
+ \Lyrics
+ \consists "Bar_engraver"
+ \override BarLine #'transparent = ##t
+ }
+ \context { \StaffGroup \consists "Separating_line_group_engraver" }
+ \context {
+ \Voice
+ %% no slurs
+ \override Slur #'transparent = ##t
+ %% Comment in the below "\remove" command to allow line
+ %% breaking also at those barlines where a note overlaps
+ %% into the next bar. The command is commented out in this
+ %% short example score, but especially for large scores, you
+ %% will typically yield better line breaking and thus improve
+ %% overall spacing if you comment in the following command.
+ %%\remove "Forbid_line_break_engraver"
+ }
+ indent=6\cm
+ incipit-width = 4\cm
+ }
+}
\ No newline at end of file
--- /dev/null
+\version "2.11.37"
+
+\header {
+ texidoc = "When a tie is broken, the spacing engine must consider the
+accidental after the line break, to prevent a collision from occurring."
+}
+
+{ \key g \major gis''1~ \break gis''4
+\repeat unfold 43 {d4 \noBreak} }
+
+
--- /dev/null
+\header {
+
+ texidoc = "Incipit can be printed using an InstrumentName grob."
+
+}
+
+\version "2.11.39"
+
+%% to avoid warnings:
+#(set-object-property! 'music 'backend-type? ly:music?)
+#(set-object-property! 'music 'backend-doc "Incipit music")
+
+\score {
+ \new Staff {
+ %% All this would be shortcuted by an appropriate music function:
+ \override Staff.InstrumentName #'music = ##{ \clef "petrucci-c1" c'4 d' e' f' #}
+ \override Staff.InstrumentName #'self-alignment-X = #RIGHT
+ \override Staff.InstrumentName #'self-alignment-Y = #UP
+ \override Staff.InstrumentName #'Y-offset = #4
+ \override Staff.InstrumentName #'padding = #0
+ \override Staff.InstrumentName #'stencil =
+ #(lambda (grob)
+ (let* ((instrument-name (ly:grob-property grob 'long-text))
+ (layout (ly:output-def-clone (ly:grob-layout grob)))
+ (music (make-music 'SequentialMusic
+ 'elements (list (make-music 'ContextSpeccedMusic
+ 'context-type 'MensuralStaff
+ 'element (make-music 'PropertySet
+ 'symbol 'instrumentName
+ 'value instrument-name))
+ (ly:grob-property grob 'music))))
+ (score (ly:make-score music))
+ (mm (ly:output-def-lookup layout 'mm))
+ (indent (ly:output-def-lookup layout 'indent))
+ (incipit-width (ly:output-def-lookup layout 'incipit-width))
+ (scaled-incipit-width (if (number? incipit-width)
+ (* incipit-width mm)
+ (* indent 0.5))))
+ (ly:output-def-set-variable! layout 'indent (- indent scaled-incipit-width))
+ (ly:output-def-set-variable! layout 'line-width indent)
+ (ly:output-def-set-variable! layout 'ragged-right #f)
+ (ly:score-add-output-def! score layout)
+ (set! (ly:grob-property grob 'long-text)
+ (markup #:score score))
+ (ly:system-start-text::print grob)))
+
+ %% the instrument name definition is separated:
+ \set Staff.instrumentName = \markup Instrument
+ c'4 d' e' f' g'1
+ }
+ \layout {
+ ragged-right = ##t
+ indent = 5\cm
+ incipit-width = 3 \cm
+ }
+}
\ No newline at end of file
--- /dev/null
+\header {
+
+ texidoc = "Instrument names horizontal alignment is tweaked by
+changing the @code{Staff.Instrument #'self-alignment-X} property. The
+@code{\layout} variables @code{indent} and @code{short-indent} define
+the space where the instrument names are aligned before the first and
+the following systems, respectively."
+
+}
+
+\version "2.11.39"
+\paper { left-margin = 3\cm }
+\score {
+ \new StaffGroup <<
+ \new Staff {
+ \override Staff . InstrumentName #'self-alignment-X = #LEFT
+ \set Staff . instrumentName = \markup \column {
+ "Left aligned" "instrument name"
+ }
+ \set Staff . shortInstrumentName = "Left"
+ c''1 \break c''
+ }
+ \new Staff {
+ \override Staff . InstrumentName #'self-alignment-X = #CENTER
+ \set Staff . instrumentName = \markup \center-align {
+ "Centered" "instrument name"
+ }
+ \set Staff . shortInstrumentName = "Centered"
+ g'1 g'
+ }
+ \new Staff {
+ \override Staff . InstrumentName #'self-alignment-X = #RIGHT
+ \set Staff . instrumentName = \markup \column \right-align {
+ "Right aligned" "instrument name"
+ }
+ \set Staff . shortInstrumentName = "Right"
+ e' \break e'
+ }
+ >>
+ \layout {
+ ragged-right = ##t
+ indent = 4\cm
+ short-indent = 2\cm
+ }
+}
<?xml version="1.0"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
- <work> <work-title>/home/reinhold/lilypond-dev-files/07_nokey.xml</work-title></work>
- <identification>
- <rights>Unknown</rights>
- <encoding>
- <software>Rosegarden-4</software>
- </encoding>
- </identification>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+ <work><work-title>No key or clef given</work-title></work>
+ <identification/>
<part-list>
<score-part id="0">
- <part-name>NoClef Test</part-name>
- <score-instrument id="#1">
- <instrument-name>0</instrument-name>
- </score-instrument>
- <midi-instrument id="#1">
- <midi-channel>1</midi-channel>
- <midi-program>1</midi-program>
- </midi-instrument>
+ <part-name></part-name>
</score-part>
</part-list>
<part id="0">
<measure number="1">
<attributes>
- <divisions>960</divisions>
+ <divisions>1</divisions>
<time>
<beats>4</beats>
<beat-type>4</beat-type>
<step>C</step>
<octave>4</octave>
</pitch>
- <duration>3840</duration>
+ <duration>4</duration>
<voice>1</voice>
<type>whole</type>
</note>
</measure>
-
<measure number="2">
<note>
<pitch>
<step>C</step>
<octave>4</octave>
</pitch>
- <duration>3840</duration>
+ <duration>4</duration>
<voice>1</voice>
<type>whole</type>
</note>
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
- <identification>
- <encoding>
- <software>/usr/bin/vi</software>
- <encoding-date>2007-01-22</encoding-date>
- </encoding>
- </identification>
+<score-partwise version="2.0">
+ <work><work-title>No time signature given</work-title></work>
+ <identification/>
<part-list>
<score-part id="P1">
- <part-name>MIDI Track 1</part-name>
+ <part-name></part-name>
</score-part>
</part-list>
<part id="P1">
<measure number="1">
<attributes>
- <divisions>96</divisions>
+ <divisions>1</divisions>
<key><fifths>0</fifths></key>
<staves>2</staves>
<clef number="1"><sign>G</sign><line>2</line></clef>
</attributes>
<note>
<pitch><step>F</step><octave>4</octave></pitch>
- <duration>384</duration>
+ <duration>4</duration>
<voice>1</voice>
<type>whole</type>
<staff>1</staff>
<backup><duration>384</duration></backup>
<note>
<pitch><step>B</step><octave>2</octave></pitch>
- <duration>384</duration>
+ <duration>4</duration>
<voice>2</voice>
<type>whole</type>
<staff>2</staff>
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
"http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise>
- <identification>
- <encoding>
- <software>/usr/bin/vi</software>
- <encoding-date>2007-02-02</encoding-date>
- </encoding>
- </identification>
+ <work><work-title>A tie</work-title></work>
+ <identification/>
<part-list>
- <score-part id="P1"><part-name>MIDI Track 1</part-name></score-part>
+ <score-part id="P1"><part-name></part-name></score-part>
</part-list>
<part id="P1">
<measure number="1">
<attributes>
- <divisions>96</divisions>
+ <divisions>1</divisions>
<key><fifths>0</fifths></key>
<time><beats>4</beats><beat-type>4</beat-type></time>
<staves>1</staves>
</attributes>
<note>
<pitch><step>F</step><octave>4</octave></pitch>
- <duration>384</duration>
+ <duration>4</duration>
<tie type="start"/>
<voice>1</voice>
<type>whole</type>
<measure number="2">
<note release="-684">
<pitch><step>F</step><octave>4</octave></pitch>
- <duration>384</duration>
+ <duration>4</duration>
<tie type="stop"/>
<voice>1</voice>
<type>whole</type>
</note>
</measure>
- <!-- General tests: multiple notations, directions, pedal spanners, etc. -->
+ <!-- General tests: multiple notations, directions, etc. -->
<measure number="23">
- <direction placement="below">
- <direction-type>
- <pedal line="no" relative-x="-9" type="start"/>
- </direction-type>
- </direction>
- <note>
- <pitch>
- <step>G</step>
- <octave>4</octave>
- </pitch>
- <duration>1</duration>
- <voice>1</voice>
- <type>quarter</type>
- </note>
- <direction placement="below">
- <direction-type>
- <pedal line="no" type="stop"/>
- </direction-type>
- </direction>
- <note>
- <pitch>
- <step>G</step>
- <octave>4</octave>
- </pitch>
- <duration>1</duration>
- <voice>1</voice>
- <type>quarter</type>
- </note>
<note>
<pitch>
<step>G</step>
</notations>
<lyric number="1"><text>ab./bel./bel.</text></lyric>
</note>
+ <note>
+ <rest/>
+ <duration>2</duration>
+ <voice>1</voice>
+ <type>half</type>
+ </note>
<barline location="right">
<bar-style>light-heavy</bar-style>
</barline>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+ <identification>
+ <encoding>
+ <software>/usr/bin/vi</software>
+ <encoding-date>2007-02-01</encoding-date>
+ </encoding>
+ </identification>
+ <part-list>
+ <score-part id="P1"><part-name></part-name></score-part>
+ </part-list>
+ <part id="P1">
+ <measure number="1">
+ <attributes>
+ <divisions>96</divisions>
+ <key><fifths>0</fifths></key>
+ <time><beats>4</beats><beat-type>4</beat-type></time>
+ <staves>1</staves>
+ <clef number="1"><sign>G</sign><line>2</line></clef>
+ </attributes>
+ <direction placement="above">
+ <direction-type>
+ <words default-x="-1" default-y="15" font-size="medium" font-weight="normal">
+ Normal, Medium
+ </words>
+ </direction-type>
+ <staff>1</staff>
+ </direction>
+ <note>
+ <pitch><step>F</step><octave>4</octave></pitch>
+ <duration>384</duration>
+ <voice>1</voice>
+ <type>eighth</type>
+ <staff>1</staff>
+ </note>
+ <direction placement="below">
+ <direction-type>
+ <words default-x="1" default-y="15" justify="left" font-size="medium" font-weight="bold">
+ Bold, Medium
+ </words>
+ </direction-type>
+ <staff>1</staff>
+ </direction>
+ </measure>
+ <measure number="2">
+ <direction placement="above">
+ <direction-type>
+ <words default-x="1" default-y="15" font-size="large" font-weight="normal">
+ Normal, Large
+ </words>
+ </direction-type>
+ <staff>1</staff>
+ </direction>
+ <note>
+ <pitch><step>G</step><octave>4</octave></pitch>
+ <duration>384</duration>
+ <voice>1</voice>
+ <type>whole</type>
+ <staff>1</staff>
+ </note>
+ <direction placement="below">
+ <direction-type>
+ <words default-x="1" default-y="15" font-size="large" font-weight="bold">
+ Bold, Large
+ </words>
+ </direction-type>
+ <staff>1</staff>
+ </direction>
+ </measure>
+ <measure number="3">
+ <direction placement="above">
+ <direction-type>
+ <words default-x="1" default-y="15" font-size="small" font-weight="normal">
+ Normal, Small
+ </words>
+ </direction-type>
+ <staff>1</staff>
+ </direction>
+ <note>
+ <pitch><step>F</step><octave>4</octave></pitch>
+ <duration>384</duration>
+ <voice>1</voice>
+ <type>whole</type>
+ <staff>1</staff>
+ </note>
+ <direction placement="below">
+ <direction-type>
+ <words default-x="1" default-y="15" font-size="small" font-weight="bold">
+ Bold, Small
+ </words>
+ </direction-type>
+ <staff>1</staff>
+ </direction>
+ <direction placement="below">
+ <direction-type>
+ <words default-x="1" default-y="-15" font-size="small" color="#FF8000">
+ Normal, Small, Colored, Below
+ </words>
+ </direction-type>
+ <staff>1</staff>
+ </direction>
+ </measure>
+ </part>
+</score-partwise>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+ <movement-title>Multiple notation and articulation children</movement-title>
+ <identification>
+ <rights>Public Domain</rights>
+ <encoding>
+ <software>Hand-crafted MusicXML</software>
+ </encoding>
+ <miscellaneous>
+ <miscellaneous-field name="comment">
+ It should not make any difference whether two articulations are given
+ inside to different notation elements, inside two different articulations
+ children of the same notation element or inside the same articulations
+ element. Thus, all three notes should have a staccato and an accent.
+ </miscellaneous-field>
+ </miscellaneous>
+ </identification>
+ <part-list>
+ <score-part id="P1">
+ <part-name>MusicXML Part</part-name>
+ </score-part>
+ </part-list>
+ <!--=========================================================-->
+ <part id="P1">
+ <measure number="1">
+ <attributes>
+ <divisions>4</divisions>
+ <clef>
+ <sign>G</sign>
+ <line>2</line>
+ </clef>
+ <key>
+ <fifths>0</fifths>
+ </key>
+ <time>
+ <beats>3</beats>
+ <beat-type>4</beat-type>
+ </time>
+ </attributes>
+ <note>
+ <pitch>
+ <step>A</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>4</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <accidental>sharp</accidental>
+ <stem>down</stem>
+ <notations>
+ <articulations>
+ <staccato placement="above"/>
+ </articulations>
+ </notations>
+ <notations>
+ <articulations>
+ <accent placement="above"/>
+ </articulations>
+ </notations>
+ </note>
+ <note>
+ <pitch>
+ <step>A</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>4</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <accidental>sharp</accidental>
+ <stem>down</stem>
+ <notations>
+ <articulations>
+ <staccato placement="above"/>
+ </articulations>
+ <articulations>
+ <accent placement="above"/>
+ </articulations>
+ </notations>
+ </note>
+ <note>
+ <pitch>
+ <step>A</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>4</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <accidental>sharp</accidental>
+ <stem>down</stem>
+ <notations>
+ <articulations>
+ <staccato placement="above"/>
+ <accent placement="above"/>
+ </articulations>
+ </notations>
+ </note>
+ </measure>
+ </part>
+</score-partwise>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+ <movement-title>Arpeggios in MusicXML</movement-title>
+ <identification/>
+ <defaults/>
+ <part-list>
+ <score-part id="P1">
+ <part-name></part-name>
+ </score-part>
+ </part-list>
+ <!--=========================================================-->
+ <part id="P1">
+ <!-- Different Arpeggiate styles: neutral, up, down and non-arpeggiate (bracket) -->
+ <measure number="1">
+ <attributes>
+ <divisions>1</divisions>
+ <key>
+ <fifths>0</fifths>
+ <mode>major</mode>
+ </key>
+ <clef>
+ <sign>G</sign>
+ <line>2</line>
+ </clef>
+ </attributes>
+ <note>
+ <pitch>
+ <step>C</step><octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ <lyric number="1"><text>normal</text></lyric>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>E</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>G</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step><octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate direction="up"/></notations>
+ <lyric number="1"><text>up</text></lyric>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>E</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate direction="up"/></notations>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>G</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate direction="up"/></notations>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step><octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ <lyric number="1"><text>normal</text></lyric>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>E</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>G</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step><octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate direction="down"/></notations>
+ <lyric number="1"><text>down</text></lyric>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>E</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate direction="down"/></notations>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>G</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate direction="down"/></notations>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step><octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ <lyric number="1"><text>normal</text></lyric>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>E</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>G</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step><octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><non-arpeggiate type="bottom"/></notations>
+ <lyric number="1"><text>non-arp.</text></lyric>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>E</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>G</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><non-arpeggiate type="top"/></notations>
+ </note>
+ <note>
+ <pitch>
+ <step>C</step><octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ <lyric number="1"><text>normal</text></lyric>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>E</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ </note>
+ <note>
+ <chord/>
+ <pitch>
+ <step>G</step><octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <notations><arpeggiate/></notations>
+ </note>
+ <barline location="right">
+ <bar-style>light-heavy</bar-style>
+ </barline>
+ </measure>
+ </part>
+</score-partwise>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
- <movement-title>Multiple notation and articulation children</movement-title>
- <identification>
- <rights>Public Domain</rights>
- <encoding>
- <software>Hand-crafted MusicXML</software>
- </encoding>
- <miscellaneous>
- <miscellaneous-field name="comment">
- It should not make any difference whether two articulations are given
- inside to different notation elements, inside two different articulations
- children of the same notation element or inside the same articulations
- element. Thus, all three notes should have a staccato and an accent.
- </miscellaneous-field>
- </miscellaneous>
- </identification>
- <part-list>
- <score-part id="P1">
- <part-name>MusicXML Part</part-name>
- </score-part>
- </part-list>
- <!--=========================================================-->
- <part id="P1">
- <measure number="1">
- <attributes>
- <divisions>4</divisions>
- <clef>
- <sign>G</sign>
- <line>2</line>
- </clef>
- <key>
- <fifths>0</fifths>
- </key>
- <time>
- <beats>3</beats>
- <beat-type>4</beat-type>
- </time>
- </attributes>
- <note>
- <pitch>
- <step>A</step>
- <octave>4</octave>
- </pitch>
- <duration>4</duration>
- <voice>1</voice>
- <type>quarter</type>
- <accidental>sharp</accidental>
- <stem>down</stem>
- <notations>
- <articulations>
- <staccato placement="above"/>
- </articulations>
- </notations>
- <notations>
- <articulations>
- <accent placement="above"/>
- </articulations>
- </notations>
- </note>
- <note>
- <pitch>
- <step>A</step>
- <octave>4</octave>
- </pitch>
- <duration>4</duration>
- <voice>1</voice>
- <type>quarter</type>
- <accidental>sharp</accidental>
- <stem>down</stem>
- <notations>
- <articulations>
- <staccato placement="above"/>
- </articulations>
- <articulations>
- <accent placement="above"/>
- </articulations>
- </notations>
- </note>
- <note>
- <pitch>
- <step>A</step>
- <octave>4</octave>
- </pitch>
- <duration>4</duration>
- <voice>1</voice>
- <type>quarter</type>
- <accidental>sharp</accidental>
- <stem>down</stem>
- <notations>
- <articulations>
- <staccato placement="above"/>
- <accent placement="above"/>
- </articulations>
- </notations>
- </note>
- </measure>
- </part>
-</score-partwise>
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 0.6b Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
- <identification>
- <encoding>
- <software>/usr/bin/vi</software>
- <encoding-date>2007-02-01</encoding-date>
- </encoding>
- </identification>
- <part-list>
- <score-part id="P1"><part-name></part-name></score-part>
- </part-list>
- <part id="P1">
- <measure number="1">
- <attributes>
- <divisions>96</divisions>
- <key><fifths>0</fifths></key>
- <time><beats>4</beats><beat-type>4</beat-type></time>
- <staves>1</staves>
- <clef number="1"><sign>G</sign><line>2</line></clef>
- </attributes>
- <direction placement="above">
- <direction-type>
- <words default-x="-1" default-y="15" font-size="medium" font-weight="normal">
- Normal, Medium
- </words>
- </direction-type>
- <staff>1</staff>
- </direction>
- <note>
- <pitch><step>F</step><octave>4</octave></pitch>
- <duration>384</duration>
- <voice>1</voice>
- <type>eighth</type>
- <staff>1</staff>
- </note>
- <direction placement="below">
- <direction-type>
- <words default-x="1" default-y="15" justify="left" font-size="medium" font-weight="bold">
- Bold, Medium
- </words>
- </direction-type>
- <staff>1</staff>
- </direction>
- </measure>
- <measure number="2">
- <direction placement="above">
- <direction-type>
- <words default-x="1" default-y="15" font-size="large" font-weight="normal">
- Normal, Large
- </words>
- </direction-type>
- <staff>1</staff>
- </direction>
- <note>
- <pitch><step>G</step><octave>4</octave></pitch>
- <duration>384</duration>
- <voice>1</voice>
- <type>whole</type>
- <staff>1</staff>
- </note>
- <direction placement="below">
- <direction-type>
- <words default-x="1" default-y="15" font-size="large" font-weight="bold">
- Bold, Large
- </words>
- </direction-type>
- <staff>1</staff>
- </direction>
- </measure>
- <measure number="3">
- <direction placement="above">
- <direction-type>
- <words default-x="1" default-y="15" font-size="small" font-weight="normal">
- Normal, Small
- </words>
- </direction-type>
- <staff>1</staff>
- </direction>
- <note>
- <pitch><step>F</step><octave>4</octave></pitch>
- <duration>384</duration>
- <voice>1</voice>
- <type>whole</type>
- <staff>1</staff>
- </note>
- <direction placement="below">
- <direction-type>
- <words default-x="1" default-y="15" font-size="small" font-weight="bold">
- Bold, Small
- </words>
- </direction-type>
- <staff>1</staff>
- </direction>
- <direction placement="below">
- <direction-type>
- <words default-x="1" default-y="-15" font-size="small" color="#FF8000">
- Normal, Small, Colored, Below
- </words>
- </direction-type>
- <staff>1</staff>
- </direction>
- </measure>
- </part>
-</score-partwise>
<score-partwise version="2.0">\r
<movement-title>MusicXML directions (attached to staff)</movement-title>\r
<identification/>\r
+ <defaults/>\r
<part-list>\r
<score-part id="P1">\r
- <part-name></part-name>\r
+ <part-name print-object="no">MusicXML Part</part-name>\r
</score-part>\r
</part-list>\r
<!--=========================================================-->\r
</note>\r
<direction>\r
<direction-type>\r
- <braclet type="stop" line-end="none"/>\r
+ <bracket type="stop" line-end="none"/>\r
</direction-type>\r
</direction>\r
<note>\r
<direction>\r
<direction-type>\r
<harp-pedals>\r
- <pedal-tuning>\r
- <pedal-step>C</pedal-step>\r
- <pedal-alter>-1</pedal-alter>\r
- </pedal-tuning>\r
- <pedal-tuning>\r
- <pedal-step>E</pedal-step>\r
- <pedal-alter>1</pedal-alter>\r
- </pedal-tuning>\r
- <pedal-tuning>\r
- <pedal-step>A</pedal-step>\r
- <pedal-alter>0</pedal-alter>\r
- </pedal-tuning>\r
+ <pedal-tuning>\r
+ <pedal-step>D</pedal-step>\r
+ <pedal-alter>0</pedal-alter>\r
+ </pedal-tuning>\r
+ <pedal-tuning>\r
+ <pedal-step>C</pedal-step>\r
+ <pedal-alter>-1</pedal-alter>\r
+ </pedal-tuning>\r
+ <pedal-tuning>\r
+ <pedal-step>B</pedal-step>\r
+ <pedal-alter>-1</pedal-alter>\r
+ </pedal-tuning>\r
+ <pedal-tuning>\r
+ <pedal-step>E</pedal-step>\r
+ <pedal-alter>0</pedal-alter>\r
+ </pedal-tuning>\r
+ <pedal-tuning>\r
+ <pedal-step>F</pedal-step>\r
+ <pedal-alter>0</pedal-alter>\r
+ </pedal-tuning>\r
+ <pedal-tuning>\r
+ <pedal-step>G</pedal-step>\r
+ <pedal-alter>1</pedal-alter>\r
+ </pedal-tuning>\r
+ <pedal-tuning>\r
+ <pedal-step>A</pedal-step>\r
+ <pedal-alter>-1</pedal-alter>\r
+ </pedal-tuning>\r
</harp-pedals>\r
</direction-type>\r
</direction>\r
<direction placement="below">\r
<direction-type>\r
<dynamics><ppp/></dynamics>\r
+ </direction-type>\r
+ <direction-type>\r
<wedge type="crescendo"/>\r
</direction-type>\r
<offset>2</offset>\r
<direction placement="below">\r
<direction-type>\r
<wedge type="stop"/>\r
+ </direction-type>\r
+ <direction-type>\r
<dynamics><fff/></dynamics>\r
</direction-type>\r
<offset>2</offset>\r
<duration>1</duration>\r
<voice>1</voice>\r
<type>quarter</type>\r
- <lyric number="1"><syllabic>begin</syllabic><text>to fff</text></lyric>\r
+ <lyric number="1"><syllabic>end</syllabic><text>to fff</text></lyric>\r
</note>\r
<note>\r
<rest/>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"\r
+ "http://www.musicxml.org/dtds/partwise.dtd">\r
+<score-partwise version="2.0">\r
+ <movement-title>Accordion registrations</movement-title>\r
+ <identification/>\r
+ <defaults/>\r
+ <part-list>\r
+ <score-part id="P1">\r
+ <part-name></part-name>\r
+ </score-part>\r
+ </part-list>\r
+ <!--=========================================================-->\r
+ <part id="P1">\r
+ <!-- Direction type can contain the following child types:\r
+ rehearsal+ | segno+ | words+ |\r
+ coda+ | wedge | dynamics+ | dashes | bracket | pedal | \r
+ metronome | octave-shift | harp-pedals | damp | \r
+ damp-all | eyeglasses | scordatura | image |\r
+ accordion-registration | other-direction -->\r
+ <!-- Rehearsal marks -->\r
+ <measure number="1">\r
+ <attributes>\r
+ <divisions>1</divisions>\r
+ <key>\r
+ <fifths>0</fifths>\r
+ <mode>major</mode>\r
+ </key>\r
+ <time symbol="common">\r
+ <beats>4</beats>\r
+ <beat-type>4</beat-type>\r
+ </time>\r
+ <clef>\r
+ <sign>G</sign>\r
+ <line>2</line>\r
+ </clef>\r
+ </attributes>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>0/0/1</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-middle>1</accordion-middle>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>0/1/0</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-middle>1</accordion-middle>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>0/1/1</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-middle>2</accordion-middle>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>0/2/0</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <measure number="2">\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-middle>2</accordion-middle>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>0/2/1</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-middle>3</accordion-middle>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>0/3/0</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-middle>3</accordion-middle>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>0/3/1</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>1/0/1</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <measure number="3">\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>1/0/0</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle>1</accordion-middle>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>1/1/0</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle>1</accordion-middle>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>1/1/1</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle>2</accordion-middle>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>1/2/0</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <measure number="4">\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle>2</accordion-middle>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>1/2/1</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle>3</accordion-middle>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>1/3/0</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle>3</accordion-middle>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>1/3/1</text></lyric>\r
+ </note>\r
+ <!-- Special cases: No accordion-(high|middle|low) given, empty middle, \r
+ middle with invalid value, middle with 0 -->\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>empty</text></lyric>\r
+ </note>\r
+ </measure>\r
+ <measure number="5">\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle/>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>empty M</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle>test</accordion-middle>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>inval.M</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle>0</accordion-middle>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>M=0</text></lyric>\r
+ </note>\r
+ <direction>\r
+ <direction-type>\r
+ <accordion-registration>\r
+ <accordion-high/>\r
+ <accordion-middle>5</accordion-middle>\r
+ <accordion-low/>\r
+ </accordion-registration>\r
+ </direction-type>\r
+ </direction>\r
+ <note>\r
+ <pitch><step>C</step><octave>4</octave></pitch>\r
+ <duration>1</duration>\r
+ <voice>1</voice>\r
+ <type>quarter</type>\r
+ <lyric number="1"><text>M=5</text></lyric>\r
+ </note>\r
+ \r
+ <barline location="right">\r
+ <bar-style>light-heavy</bar-style>\r
+ </barline>\r
+ </measure>\r
+ <!--=======================================================-->\r
+ </part>\r
+ <!--=========================================================-->\r
+</score-partwise>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise version="2.0">
+ <movement-title>Glissando and Slide in MusicXML</movement-title>
+ <identification/>
+ <defaults/>
+ <part-list>
+ <score-part id="P1">
+ <part-name></part-name>
+ </score-part>
+ </part-list>
+ <!--=========================================================-->
+ <part id="P1">
+ <!-- Glissando styles: glissando/slide, solid/dashed/dotted/wavy -->
+ <measure number="1">
+ <attributes>
+ <divisions>1</divisions>
+ <key>
+ <fifths>0</fifths>
+ <mode>major</mode>
+ </key>
+ <clef>
+ <sign>G</sign>
+ <line>2</line>
+ </clef>
+ </attributes>
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando number="1" type="start"/>
+ </notations>
+ <lyric number="1"><text>normal</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando number="1" type="stop"/>
+ </notations>
+ <lyric number="1"><text>glissando</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando line-type="solid" number="1" type="start">text</glissando>
+ </notations>
+ <lyric number="1"><text>solid</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando line-type="solid" number="1" type="stop"/>
+ </notations>
+ <lyric number="1"><text>(+text)</text></lyric>
+ </note>
+ </measure>
+ <measure number="2">
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando line-type="dashed" number="1" type="start"/>
+ </notations>
+ <lyric number="1"><text>dashed</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando line-type="dashed" number="1" type="stop"/>
+ </notations>
+ </note>
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando line-type="dotted" number="1" type="start"/>
+ </notations>
+ <lyric number="1"><text>dotted</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando line-type="dotted" number="1" type="stop"/>
+ </notations>
+ </note>
+ </measure>
+ <measure number="3">
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando line-type="wavy" number="1" type="start"/>
+ </notations>
+ <lyric number="1"><text>wavy</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <glissando line-type="wavy" number="1" type="stop"/>
+ </notations>
+ </note>
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide number="1" type="start"/>
+ </notations>
+ <lyric number="1"><text>normal</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide number="1" type="stop"/>
+ </notations>
+ <lyric number="1"><text>slide</text></lyric>
+ </note>
+ </measure>
+ <measure number="4">
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide line-type="solid" number="1" type="start">text</slide>
+ </notations>
+ <lyric number="1"><text>solid</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide line-type="solid" number="1" type="stop"/>
+ </notations>
+ <lyric number="1"><text>(+text)</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide line-type="dashed" number="1" type="start"/>
+ </notations>
+ <lyric number="1"><text>dashed</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide line-type="solid" number="1" type="stop"/>
+ </notations>
+ </note>
+ </measure>
+ <measure number="5">
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide line-type="dotted" number="1" type="start"/>
+ </notations>
+ <lyric number="1"><text>dotted</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide line-type="dotted" number="1" type="stop"/>
+ </notations>
+ </note>
+ <note>
+ <pitch>
+ <step>G</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide line-type="wavy" number="1" type="start"/>
+ </notations>
+ <lyric number="1"><text>wavy</text></lyric>
+ </note>
+ <note>
+ <pitch>
+ <step>F</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ <stem>down</stem>
+ <notations>
+ <slide line-type="wavy" number="1" type="stop"/>
+ </notations>
+ </note>
+
+ <barline location="right">
+ <bar-style>light-heavy</bar-style>
+ </barline>
+ </measure>
+ </part>
+</score-partwise>
<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"\r
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 2.0 Partwise//EN"\r
"http://www.musicxml.org/dtds/partwise.dtd">\r
-<score-partwise>\r
- <movement-title>Finale "Quoted" test</movement-title>\r
+<score-partwise version="2.0">\r
+ <movement-title>"Quotes" in header fields</movement-title>\r
<identification>\r
- <creator type="composer">Reinhold "Tester" Kainhofer</creator>\r
+ <creator type="composer">Some "Tester" Name</creator>\r
<rights>Free for anyone ("Public Domain")</rights>\r
<encoding>\r
- <software>Finale 2007 for Windows</software>\r
- <software>Dolet Light for Finale 2007</software>\r
- <encoding-date>2007-09-01</encoding-date>\r
+ <software>"Hand-crafted" MusicXML file</software>\r
+ <encoding-date>2008-02-06</encoding-date>\r
</encoding>\r
</identification>\r
<part-list>\r
<score-part id="P1">\r
- <part-name>MusicXML Part</part-name>\r
- <score-instrument id="P1-I1">\r
- <instrument-name>Grand Piano</instrument-name>\r
- </score-instrument>\r
- <midi-instrument id="P1-I1">\r
- <midi-channel>1</midi-channel>\r
- <midi-program>1</midi-program>\r
- </midi-instrument>\r
+ <part-name>Staff "Test"</part-name>\r
</score-part>\r
</part-list>\r
<!--=========================================================-->\r
<part id="P1">\r
<measure number="1">\r
- <attributes>\r
- <divisions>1</divisions>\r
- <key>\r
- <fifths>0</fifths>\r
- <mode>major</mode>\r
- </key>\r
- <time symbol="common">\r
- <beats>4</beats>\r
- <beat-type>4</beat-type>\r
- </time>\r
- <clef>\r
- <sign>G</sign>\r
- <line>2</line>\r
- </clef>\r
- </attributes>\r
- <sound tempo="120"/>\r
<note>\r
<rest/>\r
<duration>4</duration>\r
<voice>1</voice>\r
+ <type>whole</type>\r
</note>\r
<barline location="right">\r
<bar-style>light-heavy</bar-style>\r
if (to_boolean (me->get_property ("forced"))
|| !unsmob_grob (me->get_object ("tie"))
- || rank != start + 1) /* we are in the middle of a line */
+ || rank == start + 1) /* we are at the start of a line */
{
Stencil *s = unsmob_stencil (get_stencil (me));
if (s)
SCM size = me->get_property ("bar-size");
- if (!scm_is_number (size))
+ if (!scm_is_number (size)
+ || !Staff_symbol_referencer::get_staff_symbol (me))
return ly_interval2scm (Interval ());
Real h = scm_to_double (size);
ideal = max (ideal, min_desired_space);
stem_dir_correction (me, right_col, increment, &ideal, &min_desired_space);
+ /* TODO: grace notes look bad when things are stretched. Should we increase
+ their stretch strength? */
Spring ret (max (0.0, ideal), min_dist);
ret.set_inverse_compress_strength (max (0.0, ideal - min_desired_space));
ret.set_inverse_stretch_strength (max (0.1, base_space - increment));
return op->parent_ ? op->parent_->self_scm () : SCM_EOL;
}
+LY_DEFINE (ly_output_def_set_variable_x, "ly:output-def-set-variable!",
+ 3, 0, 0, (SCM def, SCM sym, SCM val),
+ "Set an output definition @var{def} variable @var{sym} to @var{val}.")
+{
+ LY_ASSERT_SMOB (Output_def, def, 1);
+ Output_def *output_def = unsmob_output_def (def);
+ LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
+ output_def->set_variable (sym, val);
+ return SCM_UNSPECIFIED;
+}
+
LY_DEFINE (ly_output_def_clone, "ly:output-def-clone",
1, 0, 0, (SCM def),
"Clone output definition @var{def}.")
return scm_reverse_x (l, SCM_EOL);
}
-
+LY_DEFINE (ly_score_add_output_def_x, "ly:score-add-output-def!",
+ 2, 0, 0, (SCM score, SCM def),
+ "Add an output definition @var{def} to @var{score}.")
+{
+ LY_ASSERT_SMOB (Score, score, 1);
+ LY_ASSERT_SMOB (Output_def, def, 2);
+ Score *sc = unsmob_score (score);
+ Output_def *output_def = unsmob_output_def (def);
+ sc->add_output_def (output_def);
+ return SCM_UNSPECIFIED;
+}
LY_DEFINE (ly_score_header, "ly:score-header",
1, 0, 0, (SCM score),
This is probably a waste of time in the case of polyphonic
music. */
if (Note_spacing::has_interface (wish))
- springs.push_back (Note_spacing::get_spacing (wish, right_col, base_note_space, options->increment_));
+ {
+ Real inc = options->increment_;
+ if (Grob *gsp = unsmob_grob (left_col->get_object ("grace-spacing")))
+ {
+ Spacing_options grace_opts;
+ grace_opts.init_from_grob (gsp);
+ inc = grace_opts.increment_;
+ }
+ springs.push_back (Note_spacing::get_spacing (wish, right_col, base_note_space, inc));
+ }
}
if (springs.empty ())
return ly_interval2scm (iv);
Real ss = Staff_symbol_referencer::staff_space (me);
+ Real rad = Staff_symbol_referencer::staff_radius (me);
if (!to_boolean (me->get_property ("cross-staff")))
{
if (!hp.is_empty ())
iv.translate (hp[dir] * ss / 2);
- }
- /* at a minimum, make the pure-height cover the staff symbol */
- Real rad = Staff_symbol_referencer::staff_radius (me);
- iv.add_point (-rad * ss);
- iv.add_point (rad * ss);
+ /* extend the stem (away from the head) to cover the staff */
+ if (dir == UP)
+ iv[UP] = max (iv[UP], rad * ss);
+ else
+ iv[DOWN] = min (iv[DOWN], -rad * ss);
+ }
+ else
+ iv = Interval (-rad * ss, rad * ss);
return ly_interval2scm (iv);
}
SCM align_y = me_grob->get_property ("self-alignment-Y");
if (scm_is_number (align_y))
p->align_to (Y_AXIS, robust_scm2double (align_y, 0.0));
- return *p;
+
+ /* Horizontal alignment according to the self-alignment-X property
+ * and indent value. */
+ Output_def *layout = me_grob->layout ();
+ Real indent;
+ if (me->get_break_index () == 0)
+ indent = robust_scm2double (layout->c_variable ("indent"), 0);
+ else
+ indent = robust_scm2double (layout->c_variable ("short-indent"), 0);
+ Real align_x = robust_scm2double (me->get_property ("self-alignment-X"), 0);
+ Interval p_extent_x = p->extent (X_AXIS);
+ Interval padding (0.0, max (0.0, indent - p_extent_x.length ()));
+ Real right_padding = padding.length () - padding.linear_combination (align_x);
+ Box box (Interval (p_extent_x[LEFT], p_extent_x[RIGHT] + right_padding),
+ p->extent (Y_AXIS));
+ Stencil *aligned_p = new Stencil (box, p->expr ());
+ return *aligned_p;
}
return Stencil ();
}
"text "
"long-text "
"self-alignment-Y "
+ "self-alignment-X "
);
-#empty
+# cancel the rule that generates .n[o lilypond images t]exi files
+$(outdir)/%.nexi: $(ITELY_FILES) $(ITEXI_FILES)
+
+$(outdir)/%/index.html: $(outdir)/%.texi
+ mkdir -p $(dir $@)
+ -$(MAKEINFO) -P $(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
+
+$(outdir)/%-big-page.html: $(outdir)/%.texi
+ -$(MAKEINFO) -P $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $<
+
+$(outdir)/%.pdftexi: $(outdir)/%.texi doc-po
+ $(PYTHON) $(buildscript-dir)/texi-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG) $<
+
+$(outdir)/%.pdf: $(outdir)/%.pdftexi
+ cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) $(TEXINFO_PAPERSIZE_OPTION) $(notdir $*).pdftexi
-# one assumes depth and ISOLANG are defined
-
-OUT_ITEXI_FILES = $(ITELY_FILES:%.itely=$(outdir)/%.itexi)
-
-TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
-
-LILYPOND_BOOK_INCLUDES += \
- -I$(top-src-dir)/Documentation/user \
- -I$(top-build-dir)/Documentation/user/$(outdir)
-
default:
-$(outdir)/%.nexi: $(ITELY_FILES) $(ITEXI_FILES)
-
-MAKEINFO_FLAGS += --force
-
-$(outdir)/%/index.html: $(outdir)/%.nexi $(outdir)/user-ln doc-po
- mkdir -p $(dir $@)
- -$(MAKEINFO) $(MAKEINFO_FLAGS) -I$(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
-
-# we don't make the big page until the whole manual is translated
-# if this happens, we'll have to define local-WWW differently for this language
-#$(outdir)/lilypond.html: $(outdir)/lilypond.nexi
-# -$(MAKEINFO) $(MAKEINFO_FLAGS) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $<
-
-$(outdir)/%.pdf: $(outdir)/%.texi $(outdir)/user-ln doc-po
- $(PYTHON) $(buildscript-dir)/texi-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG) $<
- cd $(outdir); texi2pdf --batch $(TEXINFO_PAPERSIZE_OPTION) $(notdir $*).pdftexi
-
-TELY_FILES = $(call src-wildcard,*.tely)
-DEEP_HTML_FILES = $(TELY_FILES:%.tely=$(outdir)/%/index.html)
-PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
-
-local-WWW: $(DEEP_HTML_FILES) $(PDF_FILES)
+# BIG_PAGE_HTML_FILES is defined differently in each language makefile
+local-WWW: $(DEEP_HTML_FILES) $(PDF_FILES) doc-po $(BIG_PAGE_HTML_FILES)
find $(outdir) -name '*.html' | xargs grep -L 'UNTRANSLATED NODE: IGNORE ME' | xargs $(PYTHON) $(buildscript-dir)/html-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG)
find $(outdir) -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME' | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir) $(TELY_FILES:%.tely=%.pdf)
- find $(outdir) \( -name 'lily-??????????.png' -o -name 'lily-??????????.ly' \) -a -not -type l | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir)
-
-LINKED_PNGS = henle-flat-gray.png baer-flat-gray.png lily-flat-bw.png
+ find $(outdir) \( -name 'lily-??????????.png' -o -name 'lily-??????????.ly' \) | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir)
-# makeinfo MUST have PNGs in cwd for info images to work
-# symlinking PNGs...
-# texi2pdf -I flag confuses pdfetex with .aux and other files
-# from English manual
-# symlinking lily-*...
-$(outdir)/user-ln: $(top-build-dir)/Documentation/user/$(outdir)
- $(PYTHON) $(buildscript-dir)/mass-link.py symbolic $(top-build-dir)/Documentation/user/$(outdir) $(outdir) 'lily-*.pdf' 'lily-*.tex' 'lily-*.texi' 'lily-*.ly' 'lily-*.txt' 'lily-*.png' 'henle-flat-gray.*' 'baer-flat-gray.*' 'lily-flat-bw.*' 'context-example.*'
- mkdir -p $(outdir)/lilypond
- cd $(outdir)/lilypond && $(foreach i, $(LINKED_PNGS), ln -sf ../../$(depth)/Documentation/user/$(i) $(i) &&) true
- touch -mr $(top-build-dir)/Documentation/user/$(outdir) $@
local-WWW-clean: deep-WWW-clean
$(MAKE) out=www local-WWW-clean
doc-po:
- $(MAKE) -C $(depth)/Documentation/po messages
+ $(MAKE) -C $(depth)/Documentation/po out=www messages
-#empty
+# ISOLANG must be defined
+
+LANGS = $(shell $(PYTHON) $(buildscript-dir)/langdefs.py)
+
+OUT_ITEXI_FILES = $(ITELY_FILES:%.itely=$(outdir)/%.itexi)
+
+DOCUMENTATION_INCLUDES = \
+ -I $(top-src-dir)/Documentation/user \
+ -I $(top-build-dir)/Documentation/user/$(outdir)
+DOCUMENTATION_INCLUDES += $(foreach lang, $(LANGS), -I $(top-build-dir)/Documentation/$(lang)/user/$(outdir))
+
+LILYPOND_BOOK_INCLUDES += $(DOCUMENTATION_INCLUDES)
+MAKEINFO_FLAGS += --force --enable-encoding $(DOCUMENTATION_INCLUDES)
+MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)
+
+TEXI2PDF_FLAGS += --batch --tidy
+TEXI2PDF_FLAGS += $(DOCUMENTATION_INCLUDES)
+
+TELY_FILES = $(call src-wildcard,*.tely)
+DEEP_HTML_FILES = $(TELY_FILES:%.tely=$(outdir)/%/index.html)
+PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf)
LILYPOND_JOBS=$(if $(CPU_COUNT),-djob-count=$(CPU_COUNT),)
LILYPOND_BOOK_LILYPOND_FLAGS=-dbackend=eps --formats=ps,png,pdf $(LILYPOND_JOBS) -dinclude-eps-fonts -dgs-load-fonts --header=texidoc -I $(top-src-dir)/input/manual -dcheck-internal-types -ddump-signatures -danti-alias-factor=$(ANTI_ALIAS_FACTOR)
LILYPOND_BOOK_VERBOSE = --verbose
-LILYPOND_BOOK_FLAGS = --process="$(LILYPOND_BINARY) $(LILYPOND_BOOK_LILYPOND_FLAGS)" $(LILYPOND_BOOK_VERBOSE)
+LILYPOND_BOOK_INFO_IMAGES_DIR = $(if $(INFO_IMAGES_DIR),--info-images-dir=$(INFO_IMAGES_DIR),)
+LILYPOND_BOOK_FLAGS = --process="$(LILYPOND_BINARY) $(LILYPOND_BOOK_LILYPOND_FLAGS)" $(LILYPOND_BOOK_VERBOSE) $(LILYPOND_BOOK_INFO_IMAGES_DIR)
TEXINPUTS=$(top-src-dir)/tex/::
export TEXINPUTS
-# it.po -- GNU LilyPond's italian language file
-# Tineke de Munnik <jantien@xs4all.nl>, 1998.
-# Modified by Maurizio Umberto Puxeddu <umbpux@tin.it>, Feb1999
+# GNU LilyPond's Italian language file.
+# Copyright (C) 1998 Free Software Foundation, Inc.
#
-#, fuzzy
+# Tineke de Munnik <jantien@xs4all.nl>, 1998.
+# Maurizio Umberto Puxeddu <umbpux@tin.it>, 1999
msgid ""
msgstr ""
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-24 10:40+0100\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Date: 1998-05-30 00:17:12+0200\n"
-"From: <jantien@xs4all.nl>\n"
-"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po/"
-"out --add-comments --keyword=_ --keyword=_f\n"
-"Files: bow.cc int.cc\n"
+"Project-Id-Version: lilypond 1.6.0\n"
+"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
+"POT-Creation-Date: 2008-02-14 15:55+0100\n"
+"PO-Revision-Date: 1998-05-30 00:17:12+0200\n"
+"Last-Translator: Maurizio Umberto Puxeddu <umbpux@tin.it>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
#: convertrules.py:12
#, python-format
msgid "%s has been replaced by %s"
msgstr ""
-#: convertrules.py:2398
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:47 lilypond-book.py:82
+#: warn.cc:48 input.cc:90
+#, fuzzy, c-format, python-format
+msgid "warning: %s"
+msgstr "attenzione: "
+
+#: convertrules.py:33 convertrules.py:103
+msgid "\\header { key = concat + with + operator }"
+msgstr ""
+
+#: convertrules.py:48
+#, fuzzy, python-format
+msgid "deprecated %s"
+msgstr "approssimato: %s:"
+
+#: convertrules.py:61
+msgid "deprecated \\textstyle, new \\key syntax"
+msgstr ""
+
+#: convertrules.py:80 convertrules.py:2124 convertrules.py:2337
+#: convertrules.py:2512 convertrules.py:2889
+msgid "bump version for release"
+msgstr ""
+
+#: convertrules.py:99
+msgid "new \\header format"
+msgstr ""
+
+#: convertrules.py:133
+msgid "\\translator syntax"
+msgstr ""
+
+#: convertrules.py:211
+msgid "\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative"
+msgstr ""
+
+#: convertrules.py:254 convertrules.py:828 convertrules.py:1584
+#: convertrules.py:2685
+#, python-format
+msgid "deprecate %s"
+msgstr ""
+
+#: convertrules.py:361
+#, python-format
+msgid "deprecate %s "
+msgstr ""
+
+#: convertrules.py:384
+msgid "new \\notenames format"
+msgstr ""
+
+#: convertrules.py:404
+msgid "new tremolo format"
+msgstr ""
+
+#: convertrules.py:417
+msgid "Staff_margin_engraver deprecated, use Instrument_name_engraver"
+msgstr ""
+
+#: convertrules.py:536
+msgid "change property definiton case (eg. onevoice -> oneVoice)"
+msgstr ""
+
+#: convertrules.py:544
+msgid "new \\textscript markup text"
+msgstr ""
+
+#: convertrules.py:638
+#, fuzzy, python-format
+msgid "identifier names: %s"
+msgstr "Il nome dell'identificatore è una parola chiave (`%s')"
+
+#: convertrules.py:679
+msgid "point-and-click argument changed to procedure."
+msgstr ""
+
+#: convertrules.py:739
+msgid "semicolons removed"
+msgstr ""
+
+#. 40 ?
+#: convertrules.py:795
+#, python-format
+msgid "%s property names"
+msgstr ""
+
+#: convertrules.py:865
+msgid "automaticMelismata turned on by default"
+msgstr ""
+
+#: convertrules.py:1131 convertrules.py:1893 convertrules.py:2166
+#: convertrules.py:2472
+#, fuzzy, python-format
+msgid "remove %s"
+msgstr "Genero le voci..."
+
+#: convertrules.py:1164 convertrules.py:1173
+msgid "cluster syntax"
+msgstr ""
+
+#: convertrules.py:1182
+msgid "new Pedal style syntax"
+msgstr ""
+
+#: convertrules.py:1451
+msgid ""
+"New relative mode,\n"
+"Postfix articulations, new text markup syntax, new chord syntax."
+msgstr ""
+
+#: convertrules.py:1475
+msgid "Remove - before articulation"
+msgstr ""
+
+#: convertrules.py:1515
+#, python-format
+msgid "%s misspelling"
+msgstr ""
+
+#: convertrules.py:1521
+msgid "attempting automatic \\figures conversion. Check results!"
+msgstr ""
+
+#: convertrules.py:1550
+msgid "Swap < > and << >>"
+msgstr ""
+
+#: convertrules.py:1576
+msgid "Use Scheme code to construct arbitrary note events."
+msgstr ""
+
+#: convertrules.py:1609
+#, python-format
+msgid ""
+"\\outputproperty found,\n"
+"Please hand-edit, using\n"
+"\n"
+" \\applyoutput #(outputproperty-compatibility %s '%s <GROB PROPERTY VALUE>)\n"
+"\n"
+"as a substitution text."
+msgstr ""
+
+#: convertrules.py:1623
+msgid ""
+"The alteration field of Scheme pitches was multiplied by 2\n"
+"to support quarter tone accidentals. You must update the following constructs manually:\n"
+"\n"
+"* calls of ly:make-pitch and ly:pitch-alteration\n"
+"* keySignature settings made with \\property\n"
+msgstr ""
+
+#: convertrules.py:1633
+msgid ""
+"use symbolic constants for alterations,\n"
+"remove \\outputproperty, move ly:verbose into ly:get-option"
+msgstr ""
+
+#: convertrules.py:1692
+msgid "removal of automaticMelismata; use melismaBusyProperties instead."
+msgstr ""
+
+#: convertrules.py:1807
+msgid "\\partcombine syntax change to \\newpartcombine"
+msgstr ""
+
+#: convertrules.py:1824
+msgid "Drums found. Enclose drum notes in \\drummode"
+msgstr ""
+
+#: convertrules.py:1835 convertrules.py:1842 convertrules.py:1853
+#, python-format
+msgid ""
+"\n"
+"%s found. Check file manually!\n"
+msgstr ""
+
+#: convertrules.py:1835
+msgid "Drum notation"
+msgstr ""
+
+#: convertrules.py:1863
+msgid ""
+"Drum notation changes, Removing \\chordmodifiers, \\notenames.\n"
+"Harmonic notes. Thread context removed. Lyrics context removed."
+msgstr ""
+
+#: convertrules.py:1924
+msgid "new syntax for property settings:"
+msgstr ""
+
+#: convertrules.py:1957
+msgid "Property setting syntax in \\translator{ }"
+msgstr ""
+
+#: convertrules.py:1978
+#, fuzzy, python-format
+msgid "use %s"
+msgstr "attenzione: "
+
+#: convertrules.py:1995
+msgid "Scheme grob function renaming"
+msgstr ""
+
+#: convertrules.py:2008
+msgid "More Scheme function renaming"
+msgstr ""
+
+#: convertrules.py:2140
+msgid ""
+"Page layout has been changed, using paper size and margins.\n"
+"textheight is no longer used.\n"
+msgstr ""
+
+#: convertrules.py:2259
+msgid ""
+"\\foo -> \\foomode (for chords, notes, etc.)\n"
+"fold \\new FooContext \\foomode into \\foo."
+msgstr ""
+
+#: convertrules.py:2285
+msgid ""
+"staff size should be changed at top-level\n"
+"with\n"
+"\n"
+" #(set-global-staff-size <STAFF-HEIGHT-IN-POINT>)\n"
+"\n"
+msgstr ""
+
+#: convertrules.py:2320
+msgid "regularize other identifiers"
+msgstr ""
+
+#: convertrules.py:2411
msgid "LilyPond source must be UTF-8"
msgstr ""
-#: convertrules.py:2401
+#: convertrules.py:2414
msgid "Try the texstrings backend"
msgstr ""
-#: convertrules.py:2404
+#: convertrules.py:2417
#, python-format
msgid "Do something like: %s"
msgstr ""
-#: convertrules.py:2407
+#: convertrules.py:2420
msgid "Or save as UTF-8 in your editor"
msgstr ""
+#: convertrules.py:2452
+msgid "\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click"
+msgstr ""
+
+#: convertrules.py:2485
+msgid "auto beam settings"
+msgstr ""
+
+#: convertrules.py:2487
+msgid ""
+"\n"
+"Auto beam settings must now specify each interesting moment in a measure\n"
+"explicitely; 1/4 is no longer multiplied to cover moments 1/2 and 3/4 too.\n"
+msgstr ""
+
+#: convertrules.py:2498
+msgid "warn about auto beam settings"
+msgstr ""
+
+#: convertrules.py:2624
+msgid "verticalAlignmentChildCallback has been deprecated"
+msgstr ""
+
+#: convertrules.py:2652
+msgid "Remove callbacks property, deprecate XY-extent-callback."
+msgstr ""
+
+#: convertrules.py:2663
+msgid "Use grob closures iso. XY-offset-callbacks."
+msgstr ""
+
+#: convertrules.py:2770
+msgid "foobar -> foo-bar for \\paper, \\layout"
+msgstr ""
+
+#: convertrules.py:2877
+msgid "deprecate \\tempo in \\midi"
+msgstr ""
+
+#: convertrules.py:2912
+msgid "deprecate cautionary-style. Use AccidentalCautionary properties"
+msgstr ""
+
+#: convertrules.py:2941
+msgid "Rename accidental glyphs, use glyph-name-alist."
+msgstr ""
+
+#: convertrules.py:2973
+msgid "edge-text settings for TextSpanner."
+msgstr ""
+
+#: convertrules.py:2974
+#, fuzzy, python-format
+msgid ""
+"Use\n"
+"\n"
+"%s"
+msgstr "attenzione: "
+
+#: convertrules.py:3020
+msgid "all settings related to dashed lines.\n"
+msgstr ""
+
+#: convertrules.py:3021
+msgid "Use \\override ... #'style = #'line for solid lines and\n"
+msgstr ""
+
+#: convertrules.py:3022
+msgid "\t\\override ... #'style = #'dashed-line for dashed lines."
+msgstr ""
+
+#: convertrules.py:3027
+msgid "Use #'style not #'dash-fraction to select solid/dashed lines."
+msgstr ""
+
#: fontextract.py:26
#, fuzzy, python-format
msgid "Scanning %s"
msgid "Writing fonts to %s"
msgstr "non trovo e non posso creare `%s'"
-#: lilylib.py:85 lilylib.py:136
+#: lilylib.py:102 lilylib.py:153
#, python-format
msgid "Invoking `%s'"
msgstr ""
-#: lilylib.py:87 lilylib.py:138
+#: lilylib.py:104 lilylib.py:155
#, fuzzy, python-format
msgid "Running %s..."
msgstr "Genero le voci..."
-#: lilylib.py:203
+#: lilylib.py:220
#, fuzzy, python-format
msgid "Usage: %s"
msgstr "attenzione: "
-#: abc2ly.py:1349 convert-ly.py:80 lilypond-book.py:125 midi2ly.py:869
+#: musicexp.py:577
+#, python-format
+msgid "unable to set the music %(music)s for the repeat %(repeat)s"
+msgstr ""
+
+#: musicexp.py:586
+msgid "encountered repeat without body"
+msgstr ""
+
+#: musicxml.py:13 convert-ly.py:50 lilypond-book.py:85 warn.cc:54 input.cc:96
+#: input.cc:104
+#, fuzzy, c-format, python-format
+msgid "error: %s"
+msgstr "errore: "
+
+#: musicxml.py:272
+msgid "requested time signature, but time sig is unknown"
+msgstr ""
+
+#: musicxml.py:338
+#, python-format
+msgid "Encountered note at %s with %s duration (no <type> element):"
+msgstr ""
+
+#: musicxml.py:372
+#, python-format
+msgid "Unable to find find instrument for ID=%s\n"
+msgstr ""
+
+#: abc2ly.py:1342 convert-ly.py:71 lilypond-book.py:109 midi2ly.py:849
#, fuzzy, python-format
msgid "%s [OPTION]... FILE"
msgstr "Uso: %s [OPZIONE]... [FILE]"
-#: abc2ly.py:1351
+#: abc2ly.py:1343
#, python-format
msgid ""
"abc2ly converts ABC music files (see\n"
"%s) to LilyPond input."
msgstr ""
-#: abc2ly.py:1355 etf2ly.py:1200 midi2ly.py:885
+#: abc2ly.py:1350 convert-ly.py:78 etf2ly.py:1190 lilypond-book.py:175
+#: midi2ly.py:885 musicxml2ly.py:1824 main.cc:161
+msgid "show version number and exit"
+msgstr ""
+
+#: abc2ly.py:1354 convert-ly.py:82 etf2ly.py:1186 lilypond-book.py:125
+#: midi2ly.py:864 musicxml2ly.py:1808 main.cc:150
+msgid "show this help and exit"
+msgstr ""
+
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:868
msgid "write output to FILE"
msgstr ""
-#: abc2ly.py:1357
+#: abc2ly.py:1358
msgid "be strict about succes"
msgstr ""
-#: abc2ly.py:1359
+#: abc2ly.py:1360
msgid "preserve ABC's notion of beams"
msgstr ""
-#: abc2ly.py:1361 convert-ly.py:112 etf2ly.py:1208 lilypond-book.py:168
-#: midi2ly.py:911 musicxml2ly.py:505
+#: abc2ly.py:1361 convert-ly.py:111 etf2ly.py:1198 lilypond-book.py:180
+#: midi2ly.py:897 musicxml2ly.py:1872
+msgid "Bugs"
+msgstr ""
+
+#: abc2ly.py:1362 convert-ly.py:112 etf2ly.py:1199 lilypond-book.py:181
+#: midi2ly.py:898 musicxml2ly.py:1873
msgid "Report bugs via"
msgstr ""
-#: convert-ly.py:41
+#: convert-ly.py:32
msgid ""
"Update LilyPond input to newer version. By default, update from the\n"
"version taken from the \\version command, to the current LilyPond version."
msgstr ""
-#: convert-ly.py:43 lilypond-book.py:73
+#: convert-ly.py:34 lilypond-book.py:59
msgid "Examples:"
msgstr ""
-#: convert-ly.py:56 lilypond-book.py:98 warn.cc:48 input.cc:90
-#, fuzzy, c-format, python-format
-msgid "warning: %s"
-msgstr "attenzione: "
-
-#: convert-ly.py:59 lilypond-book.py:101 warn.cc:54 input.cc:96 input.cc:104
-#, fuzzy, c-format, python-format
-msgid "error: %s"
-msgstr "errore: "
-
-#: convert-ly.py:75 etf2ly.py:1190 lilypond-book.py:121 midi2ly.py:98
+#: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:105 midi2ly.py:79
msgid "Distributed under terms of the GNU General Public License."
msgstr ""
-#: convert-ly.py:76 etf2ly.py:1191 lilypond-book.py:122 midi2ly.py:99
+#: convert-ly.py:67 etf2ly.py:1175 lilypond-book.py:106 midi2ly.py:80
msgid "It comes with NO WARRANTY."
msgstr ""
msgid "Processing `%s'... "
msgstr "Elaboro..."
-#: convert-ly.py:277 relocate.cc:360 source-file.cc:54
+#: convert-ly.py:277 relocate.cc:362 source-file.cc:54
#, c-format, python-format
msgid "cannot open file: `%s'"
msgstr "non posso aprire il file: `%s'"
msgid "cannot determine version for `%s'. Skipping"
msgstr "non trovo il file: `%s'"
-#: etf2ly.py:1196
+#: etf2ly.py:1180
#, fuzzy, python-format
msgid "%s [OPTION]... ETF-FILE"
msgstr "Uso: %s [OPZIONE]... [FILE]"
-#: etf2ly.py:1198
+#: etf2ly.py:1181
msgid ""
"Enigma Transport Format is a format used by Coda Music Technology's\n"
-"Finale product. etf2ly converts a subset of ETF to a ready-to-use LilyPond "
-"file."
+"Finale product. etf2ly converts a subset of ETF to a ready-to-use LilyPond file."
msgstr ""
-#: etf2ly.py:1201 midi2ly.py:886 musicxml2ly.py:498 main.cc:172 main.cc:178
+#: etf2ly.py:1192 midi2ly.py:869 musicxml2ly.py:1866 main.cc:154 main.cc:159
msgid "FILE"
msgstr ""
-#: etf2ly.py:1203 lilypond-book.py:165 midi2ly.py:899 main.cc:185
+#: etf2ly.py:1194 lilypond-book.py:178 midi2ly.py:886 main.cc:163
#, fuzzy
msgid "show warranty and copyright"
msgstr " -w, --warranty mostra la garanzia e il copyright\n"
-#: lilypond-book.py:71
-msgid ""
-"Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
+#: lilypond-book.py:57
+msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
msgstr ""
-#: lilypond-book.py:78
+#: lilypond-book.py:64
msgid "BOOK"
msgstr ""
-#: lilypond-book.py:87
+#: lilypond-book.py:72
#, fuzzy, python-format
msgid "Exiting (%d)..."
msgstr "Genero le voci..."
-#: lilypond-book.py:119
+#: lilypond-book.py:103
#, python-format
msgid "Copyright (c) %s by"
msgstr "Copyright (c) %s di"
-#: lilypond-book.py:129
+#: lilypond-book.py:113
msgid "FILTER"
msgstr ""
-#: lilypond-book.py:132
+#: lilypond-book.py:116
msgid "pipe snippets through FILTER [convert-ly -n -]"
msgstr ""
-#: lilypond-book.py:135
-msgid ""
-"use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
+#: lilypond-book.py:120
+msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
msgstr ""
-#: lilypond-book.py:138
+#: lilypond-book.py:127
#, fuzzy
msgid "add DIR to include path"
msgstr " -I, --include=DIR aggiunge DIR ai path di ricerca\n"
-#: lilypond-book.py:139 lilypond-book.py:144 main.cc:171
+#: lilypond-book.py:128 lilypond-book.py:135 lilypond-book.py:147 main.cc:153
msgid "DIR"
msgstr ""
-#: lilypond-book.py:143
+#: lilypond-book.py:133
+msgid "format Texinfo output so that Info will look for images of music in DIR"
+msgstr ""
+
+#: lilypond-book.py:140
+msgid "PAD"
+msgstr ""
+
+#: lilypond-book.py:142
+msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)"
+msgstr ""
+
+#: lilypond-book.py:146
msgid "write output to DIR"
msgstr ""
-#: lilypond-book.py:147
+#: lilypond-book.py:151
msgid "COMMAND"
msgstr ""
-#: lilypond-book.py:148
+#: lilypond-book.py:152
msgid "process ly_files using COMMAND FILE..."
msgstr ""
-#: lilypond-book.py:154
-msgid "Create PDF files for use with PDFTeX"
+#: lilypond-book.py:159
+msgid "create PDF files for use with PDFTeX"
msgstr ""
-#: lilypond-book.py:157
+#: lilypond-book.py:163
msgid ""
"extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
"must use this with dvips -h INPUT.psfonts"
msgstr ""
-#: lilypond-book.py:160 midi2ly.py:896 musicxml2ly.py:489 main.cc:184
+#: lilypond-book.py:167 midi2ly.py:879 musicxml2ly.py:1829 main.cc:162
msgid "be verbose"
msgstr ""
-#: lilypond-book.py:773
+#: lilypond-book.py:788
#, python-format
msgid "file not found: %s"
msgstr ""
-#: lilypond-book.py:1004
+#: lilypond-book.py:1022
#, python-format
msgid "deprecated ly-option used: %s=%s"
msgstr ""
-#: lilypond-book.py:1007
+#: lilypond-book.py:1025
#, python-format
msgid "compatibility mode translation: %s=%s"
msgstr ""
-#: lilypond-book.py:1011
+#: lilypond-book.py:1029
#, python-format
msgid "deprecated ly-option used: %s"
msgstr ""
-#: lilypond-book.py:1014
+#: lilypond-book.py:1032
#, python-format
msgid "compatibility mode translation: %s"
msgstr ""
-#: lilypond-book.py:1033
+#: lilypond-book.py:1051
#, python-format
msgid "ignoring unknown ly option: %s"
msgstr ""
-#: lilypond-book.py:1388
+#: lilypond-book.py:1422
#, fuzzy, python-format
msgid "Opening filter `%s'"
msgstr "Genero le voci..."
-#: lilypond-book.py:1405
+#: lilypond-book.py:1439
#, python-format
msgid "`%s' failed (%d)"
msgstr ""
-#: lilypond-book.py:1406
+#: lilypond-book.py:1440
msgid "The error log is as follows:"
msgstr ""
-#: lilypond-book.py:1476
+#: lilypond-book.py:1512
msgid "cannot find \\begin{document} in LaTeX document"
msgstr ""
-#: lilypond-book.py:1586
+#: lilypond-book.py:1623
#, fuzzy
msgid "Writing snippets..."
msgstr "Genero le voci..."
-#: lilypond-book.py:1591
+#: lilypond-book.py:1628
#, fuzzy
msgid "Processing..."
msgstr "Elaboro..."
-#: lilypond-book.py:1595
+#: lilypond-book.py:1632
msgid "All snippets are up to date..."
msgstr ""
-#: lilypond-book.py:1605
+#: lilypond-book.py:1642
#, fuzzy, python-format
msgid "cannot determine format for: %s"
msgstr "non trovo il file: `%s'"
-#: lilypond-book.py:1616
+#: lilypond-book.py:1653
#, python-format
msgid "%s is up to date."
msgstr ""
-#: lilypond-book.py:1622
+#: lilypond-book.py:1659
#, fuzzy, python-format
msgid "Writing `%s'..."
msgstr "Genero le voci..."
-#: lilypond-book.py:1677
+#: lilypond-book.py:1714
msgid "Output would overwrite input file; use --output."
msgstr ""
-#: lilypond-book.py:1681
+#: lilypond-book.py:1718
#, fuzzy, python-format
msgid "Reading %s..."
msgstr "Genero le voci..."
-#: lilypond-book.py:1700
+#: lilypond-book.py:1737
#, fuzzy
msgid "Dissecting..."
msgstr "Genero le voci..."
-#: lilypond-book.py:1716
+#: lilypond-book.py:1753
#, fuzzy, python-format
msgid "Compiling %s..."
msgstr "Genero le voci..."
-#: lilypond-book.py:1725
+#: lilypond-book.py:1762
#, fuzzy, python-format
msgid "Processing include: %s"
msgstr "Elaboro..."
-#: lilypond-book.py:1739
+#: lilypond-book.py:1776
#, fuzzy, python-format
msgid "Removing `%s'"
msgstr "Genero le voci..."
-#: lilypond-book.py:1815
-#, fuzzy, python-format
-msgid "Writing fonts to %s..."
-msgstr "non trovo e non posso creare `%s'"
-
-#: lilypond-book.py:1830
+#: lilypond-book.py:1809
msgid "option --psfonts not used"
msgstr ""
-#: lilypond-book.py:1831
+#: lilypond-book.py:1810
msgid "processing with dvips will have no fonts"
msgstr ""
-#: lilypond-book.py:1834
+#: lilypond-book.py:1813
msgid "DVIPS usage:"
msgstr ""
-#: midi2ly.py:106 lily-library.scm:624 lily-library.scm:632
+#: lilypond-book.py:1869
+#, fuzzy, python-format
+msgid "Writing fonts to %s..."
+msgstr "non trovo e non posso creare `%s'"
+
+#: midi2ly.py:87 lily-library.scm:615 lily-library.scm:624
msgid "warning: "
msgstr "attenzione: "
-#: midi2ly.py:109 midi2ly.py:924
+#: midi2ly.py:90 midi2ly.py:911
msgid "error: "
msgstr "errore: "
-#: midi2ly.py:110
-msgid "Exiting ... "
-msgstr ""
+#: midi2ly.py:91
+#, fuzzy
+msgid "Exiting... "
+msgstr "Genero le voci..."
-#: midi2ly.py:857
+#: midi2ly.py:837
#, fuzzy, python-format
msgid "%s output to `%s'..."
-msgstr "L'output MIDI è inviato a %s..."
+msgstr "L'output MIDI è inviato a %s..."
-#: midi2ly.py:871 musicxml2ly.py:485
+#: midi2ly.py:850 musicxml2ly.py:1803
#, python-format
msgid "Convert %s to LilyPond input."
msgstr ""
-#: midi2ly.py:875
+#: midi2ly.py:855
msgid "print absolute pitches"
msgstr ""
-#: midi2ly.py:877 midi2ly.py:889
+#: midi2ly.py:857 midi2ly.py:872
msgid "DUR"
msgstr ""
-#: midi2ly.py:878
+#: midi2ly.py:858
msgid "quantise note durations on DUR"
msgstr ""
-#: midi2ly.py:881
+#: midi2ly.py:861
msgid "print explicit durations"
msgstr ""
-#: midi2ly.py:882
+#: midi2ly.py:865
#, fuzzy
msgid "set key: ALT=+sharps|-flats; MINOR=1"
-msgstr ""
-" -k, --key=ACC[:MINOR] imposta l'armatura: ACC +diesis/-bemolli; :1 minore\n"
+msgstr " -k, --key=ACC[:MINOR] imposta l'armatura: ACC +diesis/-bemolli; :1 minore\n"
-#: midi2ly.py:883
+#: midi2ly.py:866
msgid "ALT[:MINOR]"
msgstr ""
-#: midi2ly.py:888
+#: midi2ly.py:871
msgid "quantise note starts on DUR"
msgstr ""
-#: midi2ly.py:891
+#: midi2ly.py:874
msgid "DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:894
+#: midi2ly.py:877
msgid "allow tuplet durations DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:902
+#: midi2ly.py:889
msgid "treat every text as a lyric"
msgstr ""
-#: midi2ly.py:905
+#: midi2ly.py:892
msgid "Examples"
msgstr ""
-#: midi2ly.py:925
+#: midi2ly.py:912
msgid "no files specified on command line."
msgstr ""
-#: musicxml2ly.py:473
-msgid "musicxml2ly FILE.xml"
+#: musicxml2ly.py:193 musicxml2ly.py:195
+#, python-format
+msgid "Unprocessed PartGroupInfo %s encountered"
msgstr ""
-#: musicxml2ly.py:476
+#: musicxml2ly.py:426
+#, python-format
+msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration"
+msgstr ""
+
+#: musicxml2ly.py:609
+#, python-format
+msgid "unknown mode %s, expecting 'major' or 'minor'"
+msgstr ""
+
+#: musicxml2ly.py:647
+#, python-format
+msgid "Encountered unprocessed marker %s\n"
+msgstr ""
+
+#: musicxml2ly.py:741
+#, fuzzy, python-format
+msgid "unknown span event %s"
+msgstr "tipo di chiave sconosciuto"
+
+#: musicxml2ly.py:751
+#, fuzzy, python-format
+msgid "unknown span type %s for %s"
+msgstr "traduttore sconosciuto `%s'"
+
+#: musicxml2ly.py:1259
+#, python-format
+msgid "drum %s type unknown, please add to instrument_drumtype_dict"
+msgstr ""
+
+#: musicxml2ly.py:1263
+#, fuzzy
+msgid "cannot find suitable event"
+msgstr "non trovo il file: `%s'"
+
+#: musicxml2ly.py:1346
+#, python-format
+msgid "Negative skip %s"
+msgstr ""
+
+#: musicxml2ly.py:1480
+#, python-format
+msgid "Negative skip found: from %s to %s, difference is %s"
+msgstr ""
+
+#: musicxml2ly.py:1505
+#, fuzzy, python-format
+msgid "unexpected %s; expected %s or %s or %s"
+msgstr "Errore non fatale: "
+
+#: musicxml2ly.py:1583
+msgid "cannot have two simultaneous slurs"
+msgstr ""
+
+#: musicxml2ly.py:1711
+#, python-format
+msgid "cannot simultaneously have more than one mode: %s"
+msgstr ""
+
+#: musicxml2ly.py:1791
+#, fuzzy
+msgid "Converting to LilyPond expressions..."
+msgstr "Genero le voci..."
+
+#: musicxml2ly.py:1802
+msgid "musicxml2ly [options] FILE.xml"
+msgstr ""
+
+#: musicxml2ly.py:1812
#, python-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"information."
msgstr ""
-#: musicxml2ly.py:495
-msgid "Use lxml.etree; uses less memory and cpu time."
+#: musicxml2ly.py:1835
+msgid "use lxml.etree; uses less memory and cpu time"
+msgstr ""
+
+#: musicxml2ly.py:1841
+msgid "input file is a zip-compressed MusicXML file"
+msgstr ""
+
+#: musicxml2ly.py:1847
+msgid "convert pitches in relative mode (default)"
+msgstr ""
+
+#: musicxml2ly.py:1852
+msgid "convert pitches in absolute mode"
+msgstr ""
+
+#: musicxml2ly.py:1855
+msgid "LANG"
+msgstr ""
+
+#: musicxml2ly.py:1857
+msgid "use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly"
msgstr ""
-#: musicxml2ly.py:503
+#: musicxml2ly.py:1863
+msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
+msgstr ""
+
+#: musicxml2ly.py:1871
msgid "set output filename to FILE"
msgstr ""
+#: musicxml2ly.py:1929
+#, fuzzy, python-format
+msgid "unknown part in part-list: %s"
+msgstr "traduttore sconosciuto `%s'"
+
+#: musicxml2ly.py:1985
+#, python-format
+msgid "Input file %s is compressed, extracting raw MusicXML data"
+msgstr ""
+
+#: musicxml2ly.py:2011
+#, fuzzy, python-format
+msgid "Reading MusicXML from %s ..."
+msgstr "Genero le voci..."
+
+#: musicxml2ly.py:2039 musicxml2ly.py:2053
+#, fuzzy, python-format
+msgid "Output to `%s'"
+msgstr "L'output MIDI è inviato a %s..."
+
+#: musicxml2ly.py:2096
+#, fuzzy, python-format
+msgid "Unable to find input file %s"
+msgstr "non trovo il file: `%s'"
+
#: getopt-long.cc:140
#, c-format
msgid "option `%s' requires an argument"
msgid "invalid argument `%s' to option `%s'"
msgstr "argomento `%s' non valido per l'opzione `%s'"
-#: warn.cc:68 grob.cc:559 input.cc:82
+#: warn.cc:68 grob.cc:566 input.cc:82
#, c-format
msgid "programming error: %s"
msgstr ""
msgid "continuing, cross fingers"
msgstr ""
-#: accidental-engraver.cc:240
+#: accidental-engraver.cc:250
#, c-format
msgid "accidental typesetting list must begin with context-name: %s"
msgstr ""
-#: accidental-engraver.cc:268
-#, c-format
-msgid "ignoring unknown accidental: %s"
-msgstr ""
+#: accidental-engraver.cc:277
+#, fuzzy, c-format
+msgid "ignoring unknown accidental rule: %s"
+msgstr "stringa di escape sconosciuta: `\\%s'"
-#: accidental-engraver.cc:284
+#: accidental-engraver.cc:293
#, c-format
msgid "pair or context-name expected for accidental rule, found %s"
msgstr ""
-#: accidental.cc:243 key-signature-interface.cc:133
+#: accidental.cc:187
#, c-format
-msgid "accidental `%s' not found"
+msgid "Could not find glyph-name for alteration %s"
msgstr ""
-#: align-interface.cc:222
-msgid ""
-"vertical alignment called before line-breaking.\n"
-"Only do cross-staff spanners with PianoStaff."
+#: accidental.cc:202
+msgid "natural alteration glyph not found"
msgstr ""
-#: align-interface.cc:329
+#: align-interface.cc:325
msgid "tried to get a translation for something that is no child of mine"
msgstr ""
-#: all-font-metrics.cc:173
+#: all-font-metrics.cc:143
#, fuzzy, c-format
msgid "cannot find font: `%s'"
msgstr "non trovo il file: `%s'"
msgid "removing this vertical group"
msgstr ""
-#: axis-group-interface.cc:96
-msgid "tried to calculate pure-height at a non-breakpoint"
-msgstr ""
-
-#: axis-group-interface.cc:370
+#: axis-group-interface.cc:524
msgid "an outside-staff object should have a direction, defaulting to up"
msgstr ""
-#: axis-group-interface.cc:383
-#, c-format
-msgid "outside-staff object %s has an empty extent"
-msgstr ""
-
#: bar-check-iterator.cc:73
#, fuzzy, c-format
msgid "barcheck failed at: %s"
msgstr "controllo del battute fallito: %s"
-#: beam-engraver.cc:128
+#: beam-engraver.cc:126
msgid "already have a beam"
msgstr ""
-#: beam-engraver.cc:196
+#: beam-engraver.cc:202
#, fuzzy
msgid "unterminated beam"
msgstr "beam non terminato"
-#: beam-engraver.cc:238 chord-tremolo-engraver.cc:134
+#: beam-engraver.cc:244 chord-tremolo-engraver.cc:138
#, fuzzy
msgid "stem must have Rhythmic structure"
msgstr "I gambi devono avere una struttura ritmica."
-#: beam-engraver.cc:246
+#: beam-engraver.cc:252
#, fuzzy
msgid "stem does not fit in beam"
msgstr "il gambo non rientra nel beam"
-#: beam-engraver.cc:247
+#: beam-engraver.cc:253
msgid "beam was started here"
msgstr ""
msgid "no feasible beam position"
msgstr ""
-#: beam.cc:144
+#: beam.cc:160
#, fuzzy
msgid "removing beam with no stems"
msgstr "beam con meno di due gambi"
-#: beam.cc:1007
+#: beam.cc:1069
msgid "no viable initial configuration found: may not find good beam slope"
msgstr ""
-#: break-alignment-interface.cc:208
+#: break-alignment-interface.cc:195
#, fuzzy, c-format
msgid "No spacing entry from %s to `%s'"
msgstr "traduttore sconosciuto `%s'"
msgid "unterminated chord tremolo"
msgstr "beam non terminato"
-#: chord-tremolo-iterator.cc:33
+#: chord-tremolo-iterator.cc:35
#, c-format
msgid "expect 2 elements for chord tremolo, found %d"
msgstr ""
msgid "unknown cluster style `%s'"
msgstr "tipo di chiave sconosciuto"
-#: cluster.cc:135
+#: cluster.cc:147
msgid "junking empty cluster"
msgstr ""
msgstr ""
#. if we get to here, just put everything on one line
-#: constrained-breaking.cc:176 constrained-breaking.cc:193
+#: constrained-breaking.cc:167 constrained-breaking.cc:184
#, fuzzy
msgid "cannot find line breaking that satisfies constraints"
msgstr "la soluzione non soddisfa i vincoli"
msgid "program has no such type: `%s'"
msgstr ""
-#: context-property.cc:76
+#: context-property.cc:30
msgid "need symbol arguments for \\override and \\revert"
msgstr ""
-#: context.cc:151
+#: context.cc:144
#, fuzzy, c-format
msgid "cannot find or create new `%s'"
msgstr "non trovo e non posso creare `%s'"
-#: context.cc:213
+#: context.cc:206
#, fuzzy, c-format
msgid "cannot find or create `%s' called `%s'"
msgstr "non trovo e non posso creare '%s' chiamato '%s'"
-#: context.cc:276
+#: context.cc:268
#, c-format
msgid "Invalid CreateContext event: Cannot create %s context"
msgstr ""
-#: context.cc:388
+#: context.cc:380
#, fuzzy, c-format
msgid "cannot find or create: `%s'"
msgstr "non trovo e non posso creare `%s'"
msgid "Unknown event class %s"
msgstr "tipo di chiave sconosciuto"
-#: dots.cc:38
+#: dots.cc:37
#, c-format
msgid "dot `%s' not found"
msgstr ""
-#: dynamic-engraver.cc:186 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:192
#, fuzzy
msgid "cannot find start of (de)crescendo"
msgstr "non trovo un (de)crescendo fino alla fine"
-#: dynamic-engraver.cc:195
+#: dynamic-engraver.cc:201
#, fuzzy
msgid "already have a decrescendo"
msgstr "crescendo non terminato"
-#: dynamic-engraver.cc:197
+#: dynamic-engraver.cc:203
#, fuzzy
msgid "already have a crescendo"
msgstr "crescendo non terminato"
-#: dynamic-engraver.cc:200
+#: dynamic-engraver.cc:206
#, fuzzy
msgid "cresc starts here"
-msgstr "un cambio di tempo non è ammesso in questo punto"
+msgstr "un cambio di tempo non è ammesso in questo punto"
-#: dynamic-engraver.cc:323
+#: dynamic-engraver.cc:335
#, fuzzy
msgid "unterminated (de)crescendo"
msgstr "crescendo non terminato"
-#: extender-engraver.cc:131 extender-engraver.cc:140
+#: extender-engraver.cc:142 extender-engraver.cc:151
msgid "unterminated extender"
msgstr "extender non terminato"
msgid "Rebuilding FontConfig cache %s, this may take a while..."
msgstr ""
-#: font-config.cc:55
+#: font-config.cc:57
#, fuzzy, c-format
msgid "failed adding font directory: %s"
msgstr "non trovo e non posso creare `%s'"
-#: font-config.cc:57
+#: font-config.cc:59
#, fuzzy, c-format
msgid "adding font directory: %s"
msgstr "non trovo e non posso creare `%s'"
-#: general-scheme.cc:160
+#: general-scheme.cc:201
msgid "infinity or NaN encountered while converting Real number"
msgstr ""
-#: general-scheme.cc:161
+#: general-scheme.cc:202
msgid "setting to zero"
msgstr ""
-#: glissando-engraver.cc:92
+#: general-scheme.cc:421 output-ps.scm:61
+msgid "Found infinity or nan in output. Substituting 0.0"
+msgstr ""
+
+#: glissando-engraver.cc:94
#, fuzzy
msgid "unterminated glissando"
msgstr "slur non terminato"
-#: global-context-scheme.cc:91 global-context-scheme.cc:107
+#: global-context-scheme.cc:85 global-context-scheme.cc:103
#, fuzzy
msgid "no music found in score"
msgstr "ho bisogno di musica nello spartito"
-#: global-context-scheme.cc:97
+#: global-context-scheme.cc:93
#, fuzzy
msgid "Interpreting music... "
msgstr "Interpretazione della musica..."
-#: global-context-scheme.cc:120
+#: global-context-scheme.cc:116
#, fuzzy, c-format
msgid "elapsed time: %.2f seconds"
msgstr "durata: %.2f secondi"
#: gregorian-ligature-engraver.cc:212
#, fuzzy
msgid "cannot apply `\\~' on first head of ligature"
-msgstr "non trovo le estremità di %s"
+msgstr "non trovo le estremità di %s"
#. (pitch == prev_pitch)
#: gregorian-ligature-engraver.cc:224
msgid "Grob `%s' has no interface for property `%s'"
msgstr ""
-#: grob.cc:253
+#: grob-property.cc:34
+#, c-format
+msgid "%d: %s"
+msgstr ""
+
+#: grob-property.cc:173
+#, c-format
+msgid "cyclic dependency: calculation-in-progress encountered for #'%s (%s)"
+msgstr ""
+
+#: grob.cc:251
msgid "Infinity or NaN encountered"
msgstr ""
-#: hairpin.cc:183
+#: hairpin.cc:187
msgid "decrescendo too small"
msgstr ""
msgid "unterminated hyphen; removing"
msgstr "beam non terminato"
-#: includable-lexer.cc:53
-msgid "include files are not allowed in safe mode"
-msgstr ""
-
-#: includable-lexer.cc:60 lily-guile.cc:90 lily-parser-scheme.cc:116
+#: includable-lexer.cc:53 lily-guile.cc:76 lily-parser-scheme.cc:117
#, c-format
msgid "cannot find file: `%s'"
msgstr "non trovo il file: `%s'"
-#: includable-lexer.cc:62 lily-parser-scheme.cc:107
+#: includable-lexer.cc:55 lily-parser-scheme.cc:108
#, fuzzy, c-format
msgid "(search path: `%s')"
-msgstr "(Il path di caricamento è `%s'"
+msgstr "(Il path di caricamento è `%s'"
#: input.cc:112 source-file.cc:168 source-file.cc:183
msgid "position unknown"
msgstr "posizione sconosciuta"
-#: ligature-engraver.cc:93
-#, fuzzy
-msgid "cannot find start of ligature"
-msgstr "non trovo le estremità di %s"
+#: key-signature-interface.cc:74
+#, c-format
+msgid "No glyph found for alteration: %s"
+msgstr ""
-#: ligature-engraver.cc:98
-msgid "no right bound"
+#: key-signature-interface.cc:84
+msgid "alteration not found"
msgstr ""
-#: ligature-engraver.cc:120
+#: ligature-bracket-engraver.cc:62 ligature-engraver.cc:93
+#, fuzzy
+msgid "cannot find start of ligature"
+msgstr "non trovo le estremità di %s"
+
+#: ligature-bracket-engraver.cc:75 ligature-engraver.cc:120
#, fuzzy
msgid "already have a ligature"
msgstr "crescendo non terminato"
+#: ligature-engraver.cc:98
+msgid "no right bound"
+msgstr ""
+
#: ligature-engraver.cc:129
msgid "no left bound"
msgstr ""
#: ligature-engraver.cc:203
#, fuzzy
msgid "ligature was started here"
-msgstr "un cambio di tempo non è ammesso in questo punto"
+msgstr "un cambio di tempo non è ammesso in questo punto"
-#: lily-guile.cc:92
+#: lily-guile.cc:78
#, fuzzy, c-format
msgid "(load path: `%s')"
-msgstr "(Il path di caricamento è `%s'"
+msgstr "(Il path di caricamento è `%s'"
-#: lily-guile.cc:518
+#: lily-guile.cc:438
#, c-format
msgid "cannot find property type-check for `%s' (%s)."
msgstr ""
-#: lily-guile.cc:521
+#: lily-guile.cc:441
msgid "perhaps a typing error?"
msgstr ""
-#: lily-guile.cc:527
+#: lily-guile.cc:448
msgid "doing assignment anyway"
msgstr ""
-#: lily-guile.cc:539
+#: lily-guile.cc:460
#, c-format
msgid "type check for `%s' failed; value `%s' must be of type `%s'"
msgstr ""
-#: lily-lexer.cc:254
+#: lily-lexer.cc:251
+msgid "include files are not allowed in safe mode"
+msgstr ""
+
+#: lily-lexer.cc:270
#, fuzzy, c-format
msgid "identifier name is a keyword: `%s'"
-msgstr "Il nome dell'identificatore è una parola chiave (`%s')"
+msgstr "Il nome dell'identificatore è una parola chiave (`%s')"
-#: lily-lexer.cc:269
+#: lily-lexer.cc:285
#, c-format
msgid "error at EOF: %s"
msgstr "errore alla fine del file: %s"
-#: lily-parser-scheme.cc:29
+#: lily-parser-scheme.cc:30
#, fuzzy, c-format
msgid "deprecated function called: %s"
msgstr "non riesco a trovare il carattere `%s'"
-#: lily-parser-scheme.cc:88
+#: lily-parser-scheme.cc:89
#, fuzzy, c-format
msgid "Changing working directory to: `%s'"
msgstr "non trovo e non posso creare `%s'"
-#: lily-parser-scheme.cc:106
+#: lily-parser-scheme.cc:107
#, fuzzy, c-format
msgid "cannot find init file: `%s'"
msgstr "non trovo il file: `%s'"
-#: lily-parser-scheme.cc:125
+#: lily-parser-scheme.cc:126
#, fuzzy, c-format
msgid "Processing `%s'"
msgstr "Elaboro..."
msgid "braces do not match"
msgstr "le bretelle no si accoppiano"
-#: lyric-combine-music-iterator.cc:291
+#: lyric-combine-music-iterator.cc:327
#, fuzzy, c-format
msgid "cannot find Voice `%s'"
msgstr "Non trovo il file `%s'"
-#: main.cc:116
+#: lyric-engraver.cc:158
+msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
+msgstr ""
+
+#: main.cc:100
#, c-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"information.\n"
msgstr ""
-#: main.cc:122
+#: main.cc:106
#, fuzzy
msgid ""
" This program is free software; you can redistribute it and/or\n"
"the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
"Boston, MA 02111-1307, USA.\n"
msgstr ""
-" Questo programma è free software; puoi ridistribuirlo e/o\n"
-"modificarlo sotto le condizioni della GNU General Public License, versione "
-"2,\n"
+" Questo programma è free software; puoi ridistribuirlo e/o\n"
+"modificarlo sotto le condizioni della GNU General Public License, versione 2,\n"
"come pubblicata dalla Free Software Foundation.\n"
-" Questo programma è distribuito nella speranza che possa essere utile,\n"
-"ma SENZA ALCUNA GARANZIA; è privo anche di garanzia implicita di\n"
-"COMMERCIABILITA' o della POSSIBILITA' D'USO A SCOPI PARTICOLARI. Si veda la "
-"GNU\n"
+" Questo programma è distribuito nella speranza che possa essere utile,\n"
+"ma SENZA ALCUNA GARANZIA; è privo anche di garanzia implicita di\n"
+"COMMERCIABILITA' o della POSSIBILITA' D'USO A SCOPI PARTICOLARI. Si veda la GNU\n"
"General Public License per ulteriori dettagli.\n"
"\n"
" Con questo programma dovresti aver ricevuto una copia della\n"
-"GNU General Public License (ci riferiamo al file COPYING); se ciò non "
-"èavvenuto, scrivi a: Free Software Foundation, Inc., 675 Mass Ave, "
-"Cambridge, MA 02136\n"
+"GNU General Public License (ci riferiamo al file COPYING); se ciò non èavvenuto, scrivi a: Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02136\n"
"USA.\n"
-#: main.cc:153
-msgid "BACK"
-msgstr ""
-
-#: main.cc:153
-msgid ""
-"use backend BACK (eps, gnome, ps [default],\n"
-"scm, svg, tex, texstr)"
-msgstr ""
-
-#: main.cc:155
+#: main.cc:137
msgid "SYM[=VAL]"
msgstr ""
-#: main.cc:156
+#: main.cc:138
msgid ""
-"set Scheme option SYM to VAL (default: #t)\n"
+"set Scheme option SYM to VAL (default: #t).\n"
"Use -dhelp for help."
msgstr ""
-#: main.cc:159
+#: main.cc:141
msgid "EXPR"
msgstr ""
-#: main.cc:159
+#: main.cc:141
msgid "evaluate scheme code"
msgstr ""
#. Bug in option parser: --output =foe is taken as an abbreviation
#. for --output-format.
-#: main.cc:162
+#: main.cc:144
msgid "FORMATs"
msgstr ""
-#: main.cc:162
+#: main.cc:144
msgid "dump FORMAT,... Also as separate options:"
msgstr ""
-#: main.cc:163
+#: main.cc:145
#, fuzzy
msgid "generate DVI (tex backend only)"
msgstr "vincoli degenerati"
-#: main.cc:164
+#: main.cc:146
#, fuzzy
msgid "generate PDF (default)"
msgstr "vincoli degenerati"
-#: main.cc:165
+#: main.cc:147
#, fuzzy
msgid "generate PNG"
msgstr "vincoli degenerati"
-#: main.cc:166
+#: main.cc:148
#, fuzzy
msgid "generate PostScript"
msgstr "vincoli degenerati"
-#: main.cc:167
+#: main.cc:149
msgid "generate TeX (tex backend only)"
msgstr ""
-#: main.cc:168
-msgid "show this help and exit"
-msgstr ""
-
-#: main.cc:169
+#: main.cc:151
msgid "FIELD"
msgstr ""
-#: main.cc:169
+#: main.cc:151
msgid ""
"dump header field FIELD to file\n"
"named BASENAME.FIELD"
msgstr ""
-#: main.cc:171
+#: main.cc:153
#, fuzzy
msgid "add DIR to search path"
msgstr " -I, --include=DIR aggiunge DIR ai path di ricerca\n"
-#: main.cc:172
+#: main.cc:154
#, fuzzy
msgid "use FILE as init file"
msgstr " -i, --init=NOMEFILE usa NOMEFILE come file iniziale\n"
-#: main.cc:174
-msgid "USER,GROUP,JAIL,DIR"
+#: main.cc:156
+msgid "USER, GROUP, JAIL, DIR"
msgstr ""
-#: main.cc:174
+#: main.cc:156
msgid ""
"chroot to JAIL, become USER:GROUP\n"
"and cd into DIR"
msgstr ""
-#: main.cc:177
-#, fuzzy
-msgid "do not generate printed output"
-msgstr "vincoli degenerati"
-
-#: main.cc:178
+#: main.cc:159
msgid "write output to FILE (suffix will be added)"
msgstr ""
-#: main.cc:179
-msgid "generate a preview of the first system"
-msgstr ""
-
-#: main.cc:180
+#: main.cc:160
msgid "relocate using directory of lilypond program"
msgstr ""
-#: main.cc:181
-msgid ""
-"disallow unsafe Scheme and PostScript\n"
-"operations"
-msgstr ""
-
-#: main.cc:183
-msgid "show version number and exit"
-msgstr ""
-
-#: main.cc:224
+#: main.cc:203
#, fuzzy, c-format
msgid ""
"Copyright (c) %s by\n"
msgstr "Copyright (c) %s di"
#. No version number or newline here. It confuses help2man.
-#: main.cc:251
+#: main.cc:230
#, fuzzy, c-format
msgid "Usage: %s [OPTION]... FILE..."
msgstr "Uso: %s [OPZIONE]... [FILE]..."
-#: main.cc:253
+#: main.cc:232
#, fuzzy, c-format
msgid "Typeset music and/or produce MIDI from FILE."
msgstr "Stampa partitura oppure suona una song MIDI da FILE o <stdin>."
-#: main.cc:255
+#: main.cc:234
#, c-format
msgid "LilyPond produces beautiful music notation."
msgstr ""
-#: main.cc:257
+#: main.cc:236
#, c-format
msgid "For more information, see %s"
msgstr ""
-#: main.cc:259
+#: main.cc:238
#, c-format
msgid "Options:"
msgstr "Opzioni: "
-#: main.cc:263
+#: main.cc:242
#, c-format
msgid "Report bugs via %s"
msgstr ""
-#: main.cc:309
+#: main.cc:288
#, c-format
msgid "expected %d arguments with jail, found: %u"
msgstr ""
-#: main.cc:323
+#: main.cc:302
#, fuzzy, c-format
msgid "no such user: %s"
msgstr "% strumento:"
-#: main.cc:325
+#: main.cc:304
#, c-format
msgid "cannot get user id from user name: %s: %s"
msgstr ""
-#: main.cc:340
+#: main.cc:319
#, fuzzy, c-format
msgid "no such group: %s"
msgstr "% strumento:"
-#: main.cc:342
+#: main.cc:321
#, fuzzy, c-format
msgid "cannot get group id from group name: %s: %s"
msgstr "non posso cambiare `%s' in `%s'"
-#: main.cc:350
+#: main.cc:329
#, fuzzy, c-format
msgid "cannot chroot to: %s: %s"
msgstr "non trovo e non posso creare `%s'"
-#: main.cc:357
+#: main.cc:336
#, fuzzy, c-format
msgid "cannot change group id to: %d: %s"
msgstr "non posso cambiare `%s' in `%s'"
-#: main.cc:363
+#: main.cc:342
#, fuzzy, c-format
msgid "cannot change user id to: %d: %s"
msgstr "non posso cambiare `%s' in `%s'"
-#: main.cc:369
+#: main.cc:348
#, fuzzy, c-format
msgid "cannot change working directory to: %s: %s"
msgstr "non trovo e non posso creare `%s'"
-#: main.cc:415
-#, c-format
-msgid "Evaluating %s"
-msgstr ""
-
-#: main.cc:645
+#: main.cc:594
#, c-format
msgid "exception caught: %s"
msgstr ""
#. FIXME: constant error message.
-#: mark-engraver.cc:154
+#: mark-engraver.cc:129
msgid "rehearsalMark must have integer value"
msgstr ""
-#: mark-engraver.cc:160
+#: mark-engraver.cc:135
msgid "mark label must be a markup object"
msgstr ""
msgid "Mensural_ligature: (join_right == 0)"
msgstr ""
-#: midi-item.cc:152
+#: midi-item.cc:81
#, fuzzy, c-format
msgid "no such MIDI instrument: `%s'"
msgstr "% strumento:"
-#: midi-item.cc:285
-#, c-format
-msgid "experimental: temporarily fine tuning (of %d cents) a channel."
-msgstr ""
-
#: midi-stream.cc:28
#, fuzzy, c-format
msgid "cannot open for write: %s: %s"
msgid "cannot write to file: `%s'"
msgstr "non posso aprire il file: `%s'"
+#: minimal-page-breaking.cc:42
+#, fuzzy
+msgid "Computing page breaks..."
+msgstr "Calcolo delle posizioni della colonne..."
+
#: music-iterator.cc:171
msgid "Sending non-event to context"
msgstr ""
-#: music.cc:141
+#: music.cc:140
#, c-format
msgid "octave check failed; expected \"%s\", found: \"%s\""
msgstr ""
-#: music.cc:207
+#: music.cc:203
#, fuzzy, c-format
msgid "transposition by %s makes alteration larger than double"
-msgstr "la trasposizine di %s rende le alterazioni più che doppie"
+msgstr "la trasposizine di %s rende le alterazioni più che doppie"
#: new-fingering-engraver.cc:96
msgid "cannot add text scripts to individual note heads"
msgid "placing below"
msgstr ""
-#: note-collision.cc:457
+#: note-collision.cc:463
#, fuzzy
msgid "ignoring too many clashing note columns"
msgstr "Troppe collisioni tra colonne di note. Le ignoro."
msgid "none of note heads `%s' or `%s' found"
msgstr ""
-#: note-heads-engraver.cc:61
+#: note-heads-engraver.cc:64
msgid "NoteEvent without pitch"
msgstr ""
msgid "cannot load font table: %s"
msgstr "non trovo il file: `%s'"
-#: open-type-font.cc:98
+#: open-type-font.cc:42
+#, fuzzy, c-format
+msgid "Free type error: %s"
+msgstr "errore: "
+
+#: open-type-font.cc:100
#, c-format
msgid "unsupported font format: %s"
msgstr ""
-#: open-type-font.cc:100
+#: open-type-font.cc:102
+#, fuzzy, c-format
+msgid "error reading font file %s: %s"
+msgstr "non trovo e non posso creare `%s'"
+
+#: open-type-font.cc:177
#, c-format
-msgid "unknown error: %d reading font file: %s"
+msgid "FT_Get_Glyph_Name () Freetype error: %s"
msgstr ""
-#: open-type-font.cc:173 open-type-font.cc:297
+#: open-type-font.cc:302 pango-font.cc:167
#, c-format
-msgid "FT_Get_Glyph_Name() returned error: %u"
+msgid "FT_Get_Glyph_Name () error: %s"
msgstr ""
-#: page-turn-page-breaking.cc:205
-msgid ""
-"cannot fit the first page turn onto a single page. Consider setting first-"
-"page-number to an even number."
+#. find out the ideal number of pages
+#: optimal-page-breaking.cc:56
+msgid "Finding the ideal number of pages..."
msgstr ""
-#: page-turn-page-breaking.cc:218
+#: optimal-page-breaking.cc:71
+msgid "Fitting music on 1 page..."
+msgstr ""
+
+#: optimal-page-breaking.cc:73
+#, fuzzy, c-format
+msgid "Fitting music on %d pages..."
+msgstr "non trovo e non posso creare `%s'"
+
+#: optimal-page-breaking.cc:75
#, c-format
-msgid "Calculating page and line breaks (%d possible page breaks)..."
+msgid "Fitting music on %d or %d pages..."
msgstr ""
-#: page-turn-page-breaking.cc:236 paper-score.cc:154
+#: optimal-page-breaking.cc:152 page-turn-page-breaking.cc:226
+#: paper-score.cc:146
#, fuzzy
msgid "Drawing systems..."
msgstr "Genero le voci..."
-#: pango-font.cc:181
+#: page-turn-page-breaking.cc:146
+#, c-format
+msgid "page-turn-page-breaking: breaking from %d to %d"
+msgstr ""
+
+#: page-turn-page-breaking.cc:195
+msgid "cannot fit the first page turn onto a single page. Consider setting first-page-number to an even number."
+msgstr ""
+
+#: page-turn-page-breaking.cc:208
+#, c-format
+msgid "Calculating page and line breaks (%d possible page breaks)..."
+msgstr ""
+
+#: page-turn-page-breaking.cc:275
+#, c-format
+msgid "break starting at page %d"
+msgstr ""
+
+#: page-turn-page-breaking.cc:276
+#, c-format
+msgid "\tdemerits: %f"
+msgstr ""
+
+#: page-turn-page-breaking.cc:277
+#, c-format
+msgid "\tsystem count: %d"
+msgstr ""
+
+#: page-turn-page-breaking.cc:278
+#, c-format
+msgid "\tpage count: %d"
+msgstr ""
+
+#: page-turn-page-breaking.cc:279
+#, c-format
+msgid "\tprevious break: %d"
+msgstr ""
+
+#: pango-font.cc:184
#, c-format
msgid ""
"Glyph has no name, but font supports glyph naming.\n"
"Skipping glyph U+%0X, file %s"
msgstr ""
-#: pango-font.cc:224
+#: pango-font.cc:229
#, fuzzy, c-format
msgid "no PostScript font name for font `%s'"
msgstr "non posso aprire il file: `%s'"
-#: pango-font.cc:272
+#: pango-font.cc:277
msgid "FreeType face has no PostScript font name"
msgstr ""
-#: paper-outputter-scheme.cc:33
+#: paper-column-engraver.cc:221
+msgid "forced break was overridden by some other event, should you be using bar checks?"
+msgstr ""
+
+#: paper-outputter-scheme.cc:30
#, fuzzy, c-format
msgid "Layout output to `%s'..."
-msgstr "L'output MIDI è inviato a %s..."
+msgstr "L'output MIDI è inviato a %s..."
#: paper-score.cc:105
#, fuzzy
msgid "Preprocessing graphical objects..."
msgstr "Pre-elaborazione..."
-#: parse-scm.cc:83
+#: parse-scm.cc:87
msgid "GUILE signaled an error for the expression beginning here"
msgstr ""
msgid "unterminated percent repeat"
msgstr "beam non terminato"
-#: performance.cc:45
+#: performance.cc:43
#, fuzzy
msgid "Track..."
msgstr "traccia "
-#: performance.cc:74
+#: performance.cc:72
msgid "MIDI channel wrapped around"
msgstr ""
-#: performance.cc:75
+#: performance.cc:73
msgid "remapping modulo 16"
msgstr ""
-#: performance.cc:103
+#: performance.cc:101
#, c-format
msgid "MIDI output to `%s'..."
-msgstr "L'output MIDI è inviato a %s..."
+msgstr "L'output MIDI è inviato a %s..."
-#: phrasing-slur-engraver.cc:146
+#: phrasing-slur-engraver.cc:139
#, fuzzy
msgid "unterminated phrasing slur"
msgstr "slur non terminato"
msgid "cannot find start of piano pedal bracket: `%s'"
msgstr "non risco a trovare una ruling note a %s"
-#: program-option.cc:205
+#: program-option-scheme.cc:215
#, fuzzy, c-format
msgid "no such internal option: %s"
msgstr "% strumento:"
msgid "Setting %s to %s"
msgstr "non trovo e non posso creare `%s'"
-#: relocate.cc:59
+#: relocate.cc:64
#, fuzzy, c-format
msgid "no such file: %s for %s"
msgstr "% strumento:"
-#: relocate.cc:69 relocate.cc:87
+#: relocate.cc:74 relocate.cc:92
#, fuzzy, c-format
msgid "no such directory: %s for %s"
msgstr "% strumento:"
-#: relocate.cc:79
+#: relocate.cc:84
#, c-format
msgid "%s=%s (prepend)\n"
msgstr ""
-#: relocate.cc:99
+#: relocate.cc:114
+#, c-format
+msgid "not relocating, no %s/ or current/ found under %s"
+msgstr ""
+
+#: relocate.cc:125
#, c-format
-msgid "Relocation: compile prefix=%s, new prefix=%s"
+msgid "Relocation: compile datadir=%s, new datadir=%s"
msgstr ""
-#: relocate.cc:129
+#: relocate.cc:138
#, c-format
msgid "Relocation: framework_prefix=%s"
msgstr ""
-#: relocate.cc:169
+#: relocate.cc:179
#, c-format
msgid "Relocation: is absolute: argv0=%s"
msgstr ""
-#: relocate.cc:176
+#: relocate.cc:186
#, c-format
msgid "Relocation: from cwd: argv0=%s"
msgstr ""
-#: relocate.cc:185
+#: relocate.cc:195
#, c-format
msgid ""
"Relocation: from PATH=%s\n"
"argv0=%s"
msgstr ""
-#: relocate.cc:354
+#: relocate.cc:229
+msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR"
+msgstr ""
+
+#: relocate.cc:356
#, fuzzy, c-format
msgid "Relocation file: %s"
msgstr "non posso aprire il file: `%s'"
-#: relocate.cc:390
+#: relocate.cc:392
#, c-format
msgid "Unknown relocation command %s"
msgstr ""
-#: rest-collision.cc:151
+#: rest-collision.cc:145
msgid "cannot resolve rest collision: rest direction not set"
msgstr ""
-#: rest-collision.cc:165 rest-collision.cc:210
+#: rest-collision.cc:159 rest-collision.cc:204
#, fuzzy
msgid "too many colliding rests"
msgstr "Troppi crescendi"
-#: rest.cc:144
+#: rest.cc:132
#, c-format
msgid "rest `%s' not found"
msgstr ""
#: score-engraver.cc:71
#, fuzzy, c-format
msgid "Search path `%s'"
-msgstr "(Il path di caricamento è `%s'"
+msgstr "(Il path di caricamento è `%s'"
#: score-engraver.cc:73
msgid "Aborting"
msgstr ""
-#: score.cc:225
+#: score.cc:167
#, fuzzy
msgid "already have music in score"
msgstr "ho bisogno di musica nello spartito"
-#: score.cc:226
+#: score.cc:168
msgid "this is the previous music"
msgstr ""
-#: score.cc:231
+#: score.cc:173
#, fuzzy
msgid "errors found, ignoring music expression"
msgstr "ho trovato un errore, /*non sto elaborando lo spartito*/"
msgid "scheme encoding: "
msgstr "Opzioni: "
-#: simple-spacer.cc:375
-#, c-format
-msgid "No spring between column %d and next one"
-msgstr ""
-
-#: slur-engraver.cc:83 tuplet-engraver.cc:75
+#: slur-engraver.cc:82
#, c-format
msgid "direction of %s invalid: %d"
msgstr ""
-#: slur-engraver.cc:157
+#: slur-engraver.cc:151
msgid "unterminated slur"
msgstr "slur non terminato"
-#: slur-engraver.cc:166
+#: slur-engraver.cc:163
#, fuzzy
msgid "cannot end slur"
msgstr "non posso maneggiare %s"
+#: slur.cc:353
+#, c-format
+msgid "Ignoring grob for slur: %s. avoid-slur not set?"
+msgstr ""
+
#: source-file.cc:74
#, c-format
msgid "expected to read %d characters, got %d"
msgstr ""
+#: spaceable-grob.cc:83
+#, c-format
+msgid "No spring between column %d and next one"
+msgstr ""
+
#: staff-symbol-engraver.cc:62
msgid "staff-span event has no direction"
msgstr ""
msgid "weird stem size, check for narrow beams"
msgstr "dimensione del gambo poco ortodossa; check for narrow beams"
-#: stem.cc:641
+#: stem.cc:627
#, c-format
msgid "flag `%s' not found"
msgstr ""
-#: stem.cc:652
+#: stem.cc:638
#, c-format
msgid "flag stroke `%s' not found"
msgstr ""
-#: system.cc:180
+#: system.cc:179
#, c-format
msgid "Element count %d."
msgstr ""
-#: system.cc:276
+#: system.cc:271
#, c-format
msgid "Grob count %d"
msgstr ""
-#: text-spanner-engraver.cc:61
+#: text-spanner-engraver.cc:60
#, fuzzy
msgid "cannot find start of text spanner"
-msgstr "non trovo le estremità di %s"
+msgstr "non trovo le estremità di %s"
-#: text-spanner-engraver.cc:73
+#: text-spanner-engraver.cc:72
#, fuzzy
msgid "already have a text spanner"
msgstr "crescendo non terminato"
-#: text-spanner-engraver.cc:133
+#: text-spanner-engraver.cc:118
#, fuzzy
msgid "unterminated text spanner"
msgstr "extender non terminato"
-#: tie-engraver.cc:264
+#: tie-engraver.cc:262
msgid "lonely tie"
msgstr ""
msgid "time signature symbol `%s' not found; reverting to numbered style"
msgstr ""
-#: translator-ctors.cc:52
+#: translator-ctors.cc:53
#, fuzzy, c-format
msgid "unknown translator: `%s'"
msgstr "traduttore sconosciuto `%s'"
-#: translator-group.cc:151
+#: translator-group-ctors.cc:29
+#, c-format
+msgid "fatal error. Couldn't find type: %s"
+msgstr ""
+
+#: translator-group.cc:146
#, fuzzy, c-format
msgid "cannot find: `%s'"
msgstr "non trovo `%s'"
-#: translator.cc:332
+#: translator.cc:347
#, c-format
msgid "Two simultaneous %s events, junking this one"
msgstr ""
-#: translator.cc:333
+#: translator.cc:348
#, c-format
msgid "Previous %s event here"
msgstr ""
-#: trill-spanner-engraver.cc:68
+#: trill-spanner-engraver.cc:84
#, fuzzy
msgid "cannot find start of trill spanner"
-msgstr "non trovo le estremità di %s"
+msgstr "non trovo le estremità di %s"
-#: trill-spanner-engraver.cc:80
+#: trill-spanner-engraver.cc:96
#, fuzzy
msgid "already have a trill spanner"
msgstr "crescendo non terminato"
-#: vaticana-ligature-engraver.cc:388
+#: tuplet-engraver.cc:96
+msgid "No tuplet to end"
+msgstr ""
+
+#: vaticana-ligature-engraver.cc:389
#, c-format
-msgid ""
-"ignored prefix (es) `%s' of this head according to restrictions of the "
-"selected ligature style"
+msgid "ignored prefix (es) `%s' of this head according to restrictions of the selected ligature style"
msgstr ""
-#: vaticana-ligature-engraver.cc:714
+#: vaticana-ligature-engraver.cc:718
#, c-format
msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul"
msgstr ""
msgstr ""
#. fixme: be more verbose.
-#: volta-engraver.cc:144
+#: volta-engraver.cc:100
#, fuzzy
msgid "cannot end volta spanner"
-msgstr "non trovo le estremità di %s"
+msgstr "non trovo le estremità di %s"
-#: volta-engraver.cc:154
+#: volta-engraver.cc:110
msgid "already have a volta spanner, ending that one prematurely"
msgstr ""
-#: volta-engraver.cc:158
+#: volta-engraver.cc:114
#, fuzzy
msgid "also already have an ended spanner"
msgstr "crescendo non terminato"
-#: volta-engraver.cc:159
+#: volta-engraver.cc:115
msgid "giving up"
msgstr ""
-#: parser.yy:702
+#: parser.yy:728
msgid "\\paper cannot be used in \\score, use \\layout instead"
msgstr ""
-#: parser.yy:726
+#: parser.yy:752
msgid "need \\paper for paper block"
msgstr ""
-#: parser.yy:1172
+#: parser.yy:1211
msgid "Grob name should be alphanumeric"
msgstr ""
-#: parser.yy:1475
+#: parser.yy:1509
msgid "second argument must be pitch list"
msgstr ""
-#: parser.yy:1502 parser.yy:1507 parser.yy:1972
+#: parser.yy:1536 parser.yy:1541 parser.yy:2006
#, fuzzy
msgid "have to be in Lyric mode for lyrics"
msgstr "bisogna essere in Lyric mode per i testi"
-#: parser.yy:1604
+#: parser.yy:1638
msgid "expecting string as script definition"
msgstr ""
-#: parser.yy:1759 parser.yy:1809
+#: parser.yy:1793 parser.yy:1843
#, c-format
msgid "not a duration: %d"
-msgstr "non è una durata: %d"
+msgstr "non è una durata: %d"
-#: parser.yy:1926
+#: parser.yy:1960
#, fuzzy
msgid "have to be in Note mode for notes"
msgstr "bisogna essere in Note mode per le note"
-#: parser.yy:1987
+#: parser.yy:2021
#, fuzzy
msgid "have to be in Chord mode for chords"
msgstr "bisogna essere in Chord mode per gli accordi"
-#: lexer.ll:176
+#: lexer.ll:179
msgid "stray UTF-8 BOM encountered"
msgstr ""
-#: lexer.ll:180
+#: lexer.ll:183
msgid "Skipping UTF-8 BOM"
msgstr ""
-#: lexer.ll:235
+#: lexer.ll:238
#, fuzzy, c-format
msgid "Renaming input to: `%s'"
msgstr "Genero le voci..."
-#: lexer.ll:252
+#: lexer.ll:255
msgid "quoted string expected after \\version"
msgstr ""
-#: lexer.ll:256
+#: lexer.ll:259
msgid "quoted string expected after \\sourcefilename"
msgstr ""
-#: lexer.ll:260
+#: lexer.ll:263
msgid "integer expected after \\sourcefileline"
msgstr ""
-#: lexer.ll:273
+#: lexer.ll:276
msgid "EOF found inside a comment"
msgstr "ho trovato un EOF in un commento"
-#: lexer.ll:288
+#: lexer.ll:291
msgid "\\maininput not allowed outside init files"
msgstr ""
-#: lexer.ll:312
+#: lexer.ll:315
#, fuzzy, c-format
msgid "wrong or undefined identifier: `%s'"
msgstr "indentificatore non definito: `%s'"
#. backup rule
-#: lexer.ll:321
+#: lexer.ll:324
msgid "end quote missing"
msgstr ""
-#: lexer.ll:466
+#: lexer.ll:469
msgid "Brace found at end of lyric. Did you forget a space?"
msgstr ""
-#: lexer.ll:559
+#: lexer.ll:582
msgid "Brace found at end of markup. Did you forget a space?"
msgstr ""
-#: lexer.ll:659
+#: lexer.ll:686
#, fuzzy, c-format
msgid "invalid character: `%c'"
msgstr "carattere illegale: `%c'"
-#: lexer.ll:774 lexer.ll:775
+#: lexer.ll:801 lexer.ll:802
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr "stringa di escape sconosciuta: `\\%s'"
-#: lexer.ll:880 lexer.ll:881
+#: lexer.ll:907 lexer.ll:908
#, c-format
msgid "file too old: %s (oldest supported: %s)"
msgstr ""
-#: lexer.ll:881 lexer.ll:882
+#: lexer.ll:908 lexer.ll:909
msgid "consider updating the input with the convert-ly script"
msgstr ""
-#: lexer.ll:887 lexer.ll:888
+#: lexer.ll:914 lexer.ll:915
#, c-format
msgid "program too old: %s (file requires: %s)"
msgstr ""
-#: backend-library.scm:19 lily.scm:599 ps-to-png.scm:82
+#: backend-library.scm:19 lily.scm:767 ps-to-png.scm:58
#, fuzzy, scheme-format
msgid "Invoking `~a'..."
msgstr "Genero le voci..."
-#: backend-library.scm:24
+#: backend-library.scm:28
#, scheme-format
msgid "`~a' failed (~a)"
msgstr ""
-#: backend-library.scm:95 framework-tex.scm:343 framework-tex.scm:368
+#: backend-library.scm:117 framework-tex.scm:344 framework-tex.scm:369
#, fuzzy, scheme-format
msgid "Converting to `~a'..."
msgstr "Genero le voci..."
-#: backend-library.scm:108
+#: backend-library.scm:130
#, fuzzy, scheme-format
msgid "Converting to ~a..."
msgstr "Genero le voci..."
-#: backend-library.scm:145
+#: backend-library.scm:168
#, fuzzy, scheme-format
msgid "Writing header field `~a' to `~a'..."
msgstr "scrivo il file delle dipendenze: `%s'..."
msgid "translator listens to nonexisting event class ~A"
msgstr ""
-#: define-markup-commands.scm:255
+#: define-markup-commands.scm:296
msgid "no systems found in \\score markup, does it have a \\layout block?"
msgstr ""
-#: define-markup-commands.scm:1297
+#: define-markup-commands.scm:1310
#, fuzzy, scheme-format
msgid "not a valid duration string: ~a"
-msgstr "non è una durata: %d"
+msgstr "non è una durata: %d"
-#: define-music-types.scm:751
+#: define-music-types.scm:670
#, fuzzy, scheme-format
msgid "symbol expected: ~S"
msgstr "aspettavo %s"
-#: define-music-types.scm:754
+#: define-music-types.scm:673
#, fuzzy, scheme-format
msgid "cannot find music object: ~S"
msgstr "non trovo `%s'"
-#: define-music-types.scm:774
+#: define-music-types.scm:692
#, fuzzy, scheme-format
msgid "unknown repeat type `~S'"
msgstr "tipo di chiave sconosciuto"
-#: define-music-types.scm:775
+#: define-music-types.scm:693
msgid "See music-types.scm for supported repeats"
msgstr ""
msgid "Processing ~S..."
msgstr "Elaboro..."
-#: documentation-lib.scm:150
+#: documentation-lib.scm:154
#, fuzzy, scheme-format
msgid "Writing ~S..."
msgstr "Genero le voci..."
-#: documentation-lib.scm:172
+#: documentation-lib.scm:176
#, fuzzy, scheme-format
msgid "cannot find description for property ~S (~S)"
msgstr "non riesco a trovare il carattere `%s'"
-#: framework-eps.scm:91 framework-eps.scm:92
+#: framework-eps.scm:90
#, fuzzy, scheme-format
msgid "Writing ~a..."
msgstr "Genero le voci..."
-#: framework-ps.scm:279
+#: framework-ps.scm:282
#, scheme-format
msgid "cannot embed ~S=~S"
msgstr ""
-#: framework-ps.scm:332
+#: framework-ps.scm:335
#, scheme-format
msgid "cannot extract file matching ~a from ~a"
msgstr ""
-#: framework-ps.scm:349
+#: framework-ps.scm:352
#, scheme-format
msgid "do not know how to embed ~S=~S"
msgstr ""
-#: framework-ps.scm:380
+#: framework-ps.scm:383
#, scheme-format
msgid "do not know how to embed font ~s ~s ~s"
msgstr ""
-#: framework-ps.scm:729
+#: framework-ps.scm:750
#, scheme-format
msgid "cannot convert <stdout> to ~S"
msgstr ""
-#: framework-ps.scm:748 framework-ps.scm:751
+#: framework-ps.scm:769 framework-ps.scm:772
#, scheme-format
msgid "cannot generate ~S using the postscript back-end"
msgstr ""
-#: framework-ps.scm:758
+#: framework-ps.scm:779
msgid ""
"\n"
-"The PostScript backend does not support the 'classic'\n"
-"framework. Use the EPS backend instead,\n"
+"The PostScript backend does not support the system-by-system \n"
+"output. For that, use the EPS backend instead,\n"
+"\n"
+" lilypond -dbackend=eps FILE\n"
"\n"
-" lilypond -b eps <file>\n"
+"If have cut & pasted a lilypond fragment from a webpage, be sure\n"
+"to only remove anything before\n"
"\n"
-"or remove the lilypond-book specific settings from the input.\n"
+" %% ****************************************************************\n"
+" %% Start cut-&-pastable-section\n"
+" %% ****************************************************************\n"
msgstr ""
-#: framework-tex.scm:360
+#: framework-tex.scm:361
#, scheme-format
msgid "TeX file name must not contain whitespace: `~a'"
msgstr ""
+#: graphviz.scm:53
+#, fuzzy, scheme-format
+msgid "Writing graph `~a'..."
+msgstr "Genero le voci..."
+
#: layout-beam.scm:29
#, scheme-format
msgid "Error in beam quanting. Expected (~S,~S) found ~S."
msgid "Error in beam quanting. Expected ~S 0, found ~S."
msgstr ""
-#: layout-page-layout.scm:357
+#: layout-page-layout.scm:124
+msgid "Can't fit systems on page -- ignoring between-system-padding"
+msgstr ""
+
+#: layout-page-layout.scm:458
#, fuzzy
msgid "Calculating page breaks..."
msgstr "Calcolo delle posizioni della colonne..."
-#: lily-library.scm:593
+#: lily-library.scm:583
#, fuzzy, scheme-format
msgid "unknown unit: ~S"
msgstr "traduttore sconosciuto `%s'"
-#: lily-library.scm:626
+#: lily-library.scm:617
#, scheme-format
msgid "no \\version statement found, please add~afor future compatibility"
msgstr ""
-#: lily-library.scm:633
+#: lily-library.scm:625
msgid "old relative compatibility not used"
msgstr ""
-#: lily.scm:144
+#: lily.scm:177
#, fuzzy, scheme-format
msgid "cannot find: ~A"
msgstr "non trovo"
-#: lily.scm:209
+#: lily.scm:242
#, scheme-format
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
msgstr ""
-#: lily.scm:525 lily.scm:589
+#: lily.scm:634
+#, scheme-format
+msgid "job ~a terminated with signal: ~a"
+msgstr ""
+
+#: lily.scm:637
+#, scheme-format
+msgid ""
+"logfile ~a (exit ~a):\n"
+"~a"
+msgstr ""
+
+#: lily.scm:664 lily.scm:757
#, scheme-format
msgid "failed files: ~S"
msgstr ""
-#: lily.scm:579
+#: lily.scm:747
#, fuzzy, scheme-format
msgid "Redirecting output to ~a..."
-msgstr "L'output stampato è inviato a %s..."
+msgstr "L'output stampato è inviato a %s..."
#: ly-syntax-constructors.scm:40
msgid "Music head function must return Music object"
msgstr ""
-#: ly-syntax-constructors.scm:136
+#: ly-syntax-constructors.scm:139
#, scheme-format
msgid "Invalid property operation ~a"
msgstr ""
-#: markup.scm:123
+#: markup.scm:124
#, scheme-format
msgid "Wrong number of arguments. Expect: ~A, found ~A: ~S"
msgstr ""
-#: markup.scm:129
+#: markup.scm:130
#, scheme-format
msgid "Invalid argument in position ~A. Expect: ~A, found: ~S."
msgstr ""
-#: music-functions.scm:213
+#: music-functions.scm:228
msgid "More alternatives than repeats. Junking excess alternatives"
msgstr ""
-#: music-functions.scm:232
+#: music-functions.scm:240
+#, scheme-format
+msgid "invalid tremolo repeat count: ~a"
+msgstr ""
+
+#: music-functions.scm:248
#, scheme-format
msgid "expecting 2 elements for chord tremolo, found ~a"
msgstr ""
-#: music-functions.scm:538
+#: music-functions.scm:564
#, fuzzy, scheme-format
msgid "music expected: ~S"
msgstr "aspettavo %s"
#. FIXME: uncomprehensable message
-#: music-functions.scm:589
+#: music-functions.scm:614
#, scheme-format
msgid "Bar check failed. Expect to be at ~a, instead at ~a"
msgstr ""
-#: music-functions.scm:748
+#: music-functions.scm:764
#, fuzzy, scheme-format
msgid "cannot find quoted music: `~S'"
msgstr "non trovo il file: `%s'"
-#: music-functions.scm:942
+#: music-functions.scm:961
#, fuzzy, scheme-format
msgid "unknown accidental style: ~S"
msgstr "stringa di escape sconosciuta: `\\%s'"
-#: output-ps.scm:315
+#: output-ps.scm:276
msgid "utf-8-string encountered in PS backend"
msgstr ""
-#: output-svg.scm:42
+#: output-svg.scm:45
#, scheme-format
msgid "undefined: ~S"
msgstr ""
-#: output-svg.scm:132
+#: output-svg.scm:135
#, scheme-format
msgid "cannot decypher Pango description: ~a"
msgstr ""
-#: output-tex.scm:98
+#: output-tex.scm:96
#, fuzzy, scheme-format
msgid "cannot find ~a in ~a"
-msgstr "non trovo le estremità di %s"
+msgstr "non trovo le estremità di %s"
-#: paper.scm:69
+#: paper.scm:85
#, fuzzy
-msgid "Not in toplevel scope"
-msgstr "non c'è un traduttore di livello massimo"
+msgid "set-global-staff-size: not in toplevel scope"
+msgstr "non c'è un traduttore di livello massimo"
-#: paper.scm:117
+#: paper.scm:133
#, scheme-format
msgid "This is not a \\layout {} object, ~S"
msgstr ""
-#: paper.scm:129
+#: paper.scm:145
#, fuzzy, scheme-format
msgid "Unknown papersize: ~a"
msgstr "variabile paper sconosciuta: `%s'"
#. TODO: should raise (generic) exception with throw, and catch
#. that in parse-scm.cc
-#: paper.scm:144
+#: paper.scm:160
msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
msgstr ""
-#: parser-clef.scm:126
+#: parser-clef.scm:129
#, fuzzy, scheme-format
msgid "unknown clef type `~a'"
msgstr "tipo di chiave sconosciuto"
-#: parser-clef.scm:127
-msgid "see scm/clef.scm for supported clefs"
+#: parser-clef.scm:130
+#, scheme-format
+msgid "supported clefs: ~a"
msgstr ""
-#: ps-to-png.scm:88
+#: ps-to-png.scm:64
#, scheme-format
msgid "~a exited with status: ~S"
msgstr ""
-#: to-xml.scm:190
+#: to-xml.scm:180
#, scheme-format
msgid "assertion failed: ~S"
msgstr ""
+#, fuzzy
+#~ msgid "do not generate printed output"
+#~ msgstr "vincoli degenerati"
+
#~ msgid "silly pitch"
#~ msgstr "indicazione altezza priva di senso"
#, fuzzy
#~ msgid "junking event: `%s'"
-#~ msgstr "Cosa? Non è una richiesta: `%s'"
+#~ msgstr "Cosa? Non è una richiesta: `%s'"
#, fuzzy
#~ msgid "cannot find `%s' context"
#, fuzzy
#~ msgid "in quotation: junking event %s"
-#~ msgstr "Cosa? Non è una richiesta: `%s'"
+#~ msgstr "Cosa? Non è una richiesta: `%s'"
#, fuzzy
#~ msgid "cannot find ascii character: %d"
#, fuzzy
#~ msgid "suspect duration in beam: %s"
-#~ msgstr "non è una durata: %d"
+#~ msgstr "non è una durata: %d"
#, fuzzy
#~ msgid "syntax error: cannot back up"
#~ msgid "syntax error, unexpected %s, expecting %s or %s"
#~ msgstr "Errore non fatale: "
-#, fuzzy
-#~ msgid "syntax error, unexpected %s, expecting %s or %s or %s"
-#~ msgstr "Errore non fatale: "
-
#, fuzzy
#~ msgid "syntax error; also memory exhausted"
#~ msgstr "Errore non fatale: "
#~ msgid "kpathsea can not find TFM file: `%s'"
#~ msgstr "non trovo il file: `%s'"
-#, fuzzy
-#~ msgid "Converting to `~a.ps'..."
-#~ msgstr "Genero le voci..."
-
#, fuzzy
#~ msgid "add DIR to LilyPond's search path"
#~ msgstr " -I, --include=DIR aggiunge DIR ai path di ricerca\n"
#, fuzzy
#~ msgid "%s output to <stdout>..."
-#~ msgstr "L'output MIDI è inviato a %s..."
+#~ msgstr "L'output MIDI è inviato a %s..."
#, fuzzy
#~ msgid "%s output to %s..."
-#~ msgstr "L'output MIDI è inviato a %s..."
+#~ msgstr "L'output MIDI è inviato a %s..."
#, fuzzy
#~ msgid "cannot find file: `%s.%s'"
#, fuzzy
#~ msgid "write Makefile dependencies for every input file"
-#~ msgstr ""
-#~ " -d, --dependencies scrive le dependenze del Makefile per ogni file "
-#~ "di input\n"
+#~ msgstr " -d, --dependencies scrive le dependenze del Makefile per ogni file di input\n"
#, fuzzy
#~ msgid "invalid value: `%s'"
#, fuzzy
#~ msgid "Score contains errors; will not process it"
-#~ msgstr "lo spartito contiene errori; non lo elaborerò"
+#~ msgstr "lo spartito contiene errori; non lo elaborerò"
#, fuzzy
#~ msgid "Now processing: `%s'"
#, fuzzy
#~ msgid "inhibit file output naming and exporting"
-#~ msgstr ""
-#~ " -s, --safe inibisce la rinomina dei file di output e "
-#~ "l'esportazione di macro di TeX\n"
+#~ msgstr " -s, --safe inibisce la rinomina dei file di output e l'esportazione di macro di TeX\n"
#, fuzzy
#~ msgid "GNU LilyPond -- The music typesetter"
#, fuzzy
#~ msgid "paper output to `%s'..."
-#~ msgstr "L'output stampato è inviato a %s..."
+#~ msgstr "L'output stampato è inviato a %s..."
#, fuzzy
#~ msgid "Outputting Score, defined at: "
#, fuzzy
#~ msgid "cannot find start of phrasing slur"
-#~ msgstr "non trovo le estremità di %s"
+#~ msgstr "non trovo le estremità di %s"
#, fuzzy
#~ msgid "unterminated pedal bracket"
#, fuzzy
#~ msgid "cannot find start of slur"
-#~ msgstr "non trovo le estremità di %s"
+#~ msgstr "non trovo le estremità di %s"
#, fuzzy
#~ msgid "Error syncing file (disk full?)"
#, fuzzy
#~ msgid "This binary was compiled with the following options:"
-#~ msgstr "GNU LilyPond è stata compilata con le seguenti impostazioni:"
+#~ msgstr "GNU LilyPond è stata compilata con le seguenti impostazioni:"
#~ msgid "EOF in a string"
#~ msgstr "EOF in una corda"
-#, fuzzy
-#~ msgid "unknown spacing pair `%s', `%s'"
-#~ msgstr "traduttore sconosciuto `%s'"
-
#, fuzzy
#~ msgid "Wrong type for property: %s, type: %s, value found: %s, type: %s"
-#~ msgstr "Tipo sbagliato per il valore di una proprietà"
+#~ msgstr "Tipo sbagliato per il valore di una proprietà"
#~ msgid "#32 in quarter: %d"
#~ msgstr "#32 in un quarto: %d"
#, fuzzy
#~ msgid "do not output tuplets, double dots or rests, smallest is 32"
-#~ msgstr ""
-#~ " -n, --no-silly assume che non ci siano gruppetti o doppi punti, "
-#~ "la figura più piccola è 32\n"
+#~ msgstr " -n, --no-silly assume che non ci siano gruppetti o doppi punti, la figura più piccola è 32\n"
#, fuzzy
#~ msgid "set FILE as default output"
#, fuzzy
#~ msgid "do not timestamp the output"
-#~ msgstr ""
-#~ " -T, --no-timestamps non inserisce marcatori temporali nell'output\n"
+#~ msgstr " -T, --no-timestamps non inserisce marcatori temporali nell'output\n"
#, fuzzy
#~ msgid "assume no double dotted notes"
-#~ msgstr ""
-#~ " -x, --no-double-dots assume che non ci siano note con doppio punto\n"
+#~ msgstr " -x, --no-double-dots assume che non ci siano note con doppio punto\n"
#~ msgid "Usage: %s [OPTIONS]... [FILE]"
#~ msgstr "Uso: %s [OPZIONE]... [FILE]"
#, fuzzy
#~ msgid "no Grace context available"
-#~ msgstr "non è una vera variabile"
+#~ msgstr "non è una vera variabile"
#, fuzzy
#~ msgid "Fetching `%'s..."
#~ msgstr "Genero le voci..."
#~ msgid "Wrong type for property value"
-#~ msgstr "Tipo sbagliato per il valore di una proprietà"
+#~ msgstr "Tipo sbagliato per il valore di una proprietà"
#, fuzzy
#~ msgid "not enough fields in Dstream init"
#, fuzzy
#~ msgid "show all changes in relative syntax"
-#~ msgstr ""
-#~ " -Q, --find-old-relative mostra tutti i cambiamenti nella sintassi "
-#~ "relativa\n"
+#~ msgstr " -Q, --find-old-relative mostra tutti i cambiamenti nella sintassi relativa\n"
#, fuzzy
#~ msgid "switch on experimental features"
#, fuzzy
#~ msgid "Wrong type for property"
-#~ msgstr "Tipo sbagliato per il valore di una proprietà"
+#~ msgstr "Tipo sbagliato per il valore di una proprietà"
#, fuzzy
#~ msgid "Huh? Not a Request: `%s'"
-#~ msgstr "Cosa? Non è una richiesta: `%s'"
+#~ msgstr "Cosa? Non è una richiesta: `%s'"
#~ msgid "cannot find both ends of %s"
-#~ msgstr "non trovo le estremità di %s"
+#~ msgstr "non trovo le estremità di %s"
#, fuzzy
#~ msgid "lost in time:"
#~ msgstr "versione di mudela errata: %s (%s, %s)"
#~ msgid "not a real variable"
-#~ msgstr "non è una vera variabile"
+#~ msgstr "non è una vera variabile"
#, fuzzy
#~ msgid "Spanner `%s' has equal left and right spanpoints"
#~ msgstr "I punti di span sinistro e destro dello spanner `%s' coincidono"
#~ msgid "Debug output disabled. Compiled with NPRINT."
-#~ msgstr "L'output di debug è disabilitato. Compilato con NPRINT."
+#~ msgstr "L'output di debug è disabilitato. Compilato con NPRINT."
#~ msgid "0 lines"
#~ msgstr "0 linee"
#~ msgid "score does not have any columns"
#~ msgstr "lo spartito non contiene nessuna colonna"
-#, fuzzy
-#~ msgid "approximated %s"
-#~ msgstr "approssimato: %s:"
-
#, fuzzy
#~ msgid "calculated %s exactly"
#~ msgstr "calcolato esattamente: %s"
#~ msgid "Got a dynamic already. Continuing dazed and confused"
-#~ msgstr "E' già presente una dinamica. Continuo, ma sono confusa"
+#~ msgstr "E' già presente una dinamica. Continuo, ma sono confusa"
#~ msgid "Too many crescendi here"
#~ msgstr "Troppi crescendi"
#~ msgstr "doppia dichiarazione di `\\%s'"
#~ msgid "Cannot solve this casting problem exactly; revert to Word_wrap"
-#~ msgstr ""
-#~ "Non posso risolvere esattamente questo problema di conversione; ritorno "
-#~ "al Word_wrap"
+#~ msgstr "Non posso risolvere esattamente questo problema di conversione; ritorno al Word_wrap"
#~ msgid "time: %.2f seconds"
#~ msgstr "durata: %.2f secondi"
#~ msgid "no minimum in measure at %s"
-#~ msgstr "non c'è minimo nella misura a %s"
+#~ msgstr "non c'è minimo nella misura a %s"
#~ msgid "I'm too fat; call Oprah"
#~ msgstr "Son troppo grassa; chiama Oprah"
#~ msgstr "misura parziale troppo grande"
#~ msgid "Will ignore \\relative for transposed music"
-#~ msgstr "Ignorerò \\relative per la musica trasposta "
+#~ msgstr "Ignorerò \\relative per la musica trasposta "
#~ msgid "ugh, this measure is too long"
-#~ msgstr "ops, questa misura è troppo lunga"
+#~ msgstr "ops, questa misura è troppo lunga"
#~ msgid "I do not fit; put me on Montignac"
#~ msgstr "Non ci sto; mettimi su Montignac"
#~ msgid "More than one music block"
-#~ msgstr "Più di un blocco di musica"
+#~ msgstr "Più di un blocco di musica"
#~ msgid "cannot abbreviate"
#~ msgstr "non posso abbreviare"
#, fuzzy
#~ msgid "do not timestamp the output "
-#~ msgstr ""
-#~ " -T, --no-timestamps non inserisce marcatori temporali nell'output\n"
+#~ msgstr " -T, --no-timestamps non inserisce marcatori temporali nell'output\n"
#~ msgid " -a, --about about LilyPond\n"
-#~ msgstr " -a, --about cos'è LilyPond\n"
+#~ msgstr " -a, --about cos'è LilyPond\n"
#~ msgid " -h, --help this help\n"
#~ msgstr " -h, --help questo help\n"
#~ msgstr " -f, --output-format=X usa il formato dell'ouput X\n"
#~ msgid " -o, --output=FILE set FILE as default output base\n"
-#~ msgstr ""
-#~ " -o, --output=FILE indica FILE come base di default per l'output\n"
+#~ msgstr " -o, --output=FILE indica FILE come base di default per l'output\n"
#~ msgid " -V, --ignore-version ignore mudela version\n"
#~ msgstr " -V, --ignore-version ignora la versione di mudela\n"
#~ msgid "GNU LilyPond is Free software, see --warranty"
-#~ msgstr "GNU LilyPond è Free software, vedi --warranty"
+#~ msgstr "GNU LilyPond è Free software, vedi --warranty"
#~ msgid " -D, --debug enable debugging output\n"
#~ msgstr " -D, --debug abilita l'output di debugging\n"
#~ msgid " -q, --quiet be quiet\n"
#~ msgstr " -q, --quiet sii silenzioso\n"
-#~ msgid ""
-#~ " -s, --smallest=N assume no shorter (reciprocal) durations than N\n"
-#~ msgstr ""
-#~ " -s, --smallest=N assume che non ci siano durate (reciproche) "
-#~ "inferiori a N\n"
+#~ msgid " -s, --smallest=N assume no shorter (reciprocal) durations than N\n"
+#~ msgstr " -s, --smallest=N assume che non ci siano durate (reciproche) inferiori a N\n"
#~ msgid " -v, --verbose be verbose\n"
#~ msgstr " -v, --verbose sii loquace\n"
#~ msgstr "il gambo a $s non rientra nel beam"
#~ msgid "No stem direction set. Ignoring column in clash."
-#~ msgstr "Nessuna direzione del gambo è selezionata. Ignoro la colonna."
+#~ msgstr "Nessuna direzione del gambo è selezionata. Ignoro la colonna."
#~ msgid "\\relative mode changed here, old value: "
-#~ msgstr "\\il modo relativo è cambiato in questo punto, valore vecchio: "
+#~ msgstr "\\il modo relativo è cambiato in questo punto, valore vecchio: "
#~ msgid "ignoring zero duration added to column at %s"
#~ msgstr "ingnoro le durate nulle aggiunte alla colonna a %s"
#~ msgid "unconnected column: %d"
#~ msgstr "colonna sconnessa: %d"
-#~ msgid ""
-#~ "Staff_side::get_position_f(): somebody forgot to set my direction, "
-#~ "returning -20"
-#~ msgstr ""
-#~ "taff_side::get_position_f(): qualcuno ha dimenticato di impostare lamia "
-#~ "direzione, quindi restituisco -20"
+#~ msgid "Staff_side::get_position_f(): somebody forgot to set my direction, returning -20"
+#~ msgstr "taff_side::get_position_f(): qualcuno ha dimenticato di impostare lamia direzione, quindi restituisco -20"
#~ msgid "have to be in Note mode for @chords"
#~ msgstr "bisogna essere in Note mode per i @chords"
#~ "beams, slurs, triplets, named chords, transposing, formatting scores, \n"
#~ "part extraction. It includes a nice font of musical symbols.\n"
#~ msgstr ""
-#~ "LilyPond è il programma di notazione musicale del progetto\n"
-#~ "GNU. Questo programma può generare delle ottime partiture musicali\n"
-#~ "a partire da un file contenente la descrizione della musica. Può\n"
+#~ "LilyPond è il programma di notazione musicale del progetto\n"
+#~ "GNU. Questo programma può generare delle ottime partiture musicali\n"
+#~ "a partire da un file contenente la descrizione della musica. Può\n"
#~ "anche generare esecuzioni meccaniche della partitura in formato\n"
#~ "MIDI. Le caratteristiche del programma includono un versatile\n"
#~ "linguaggio di descrizione musicale, pentagrammi multipli, segni di\n"
#~ "divisione, chiavi, tasti, parole, cadenze, legature, acciaccature,\n"
-#~ "terzine, segni di formattazione ed estrazione automatica delle parti. "
-#~ "Nella\n"
-#~ "distribuzione è compreso anche un font di simboli musicali.\n"
+#~ "terzine, segni di formattazione ed estrazione automatica delle parti. Nella\n"
+#~ "distribuzione è compreso anche un font di simboli musicali.\n"
-# Japanese message for lilypond 1.2.17
+# Japanese message for lilypond 1.3.57
# Copyright (C) 2000 Free Software Foundation, Inc.
# Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 2000.
#
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 1.2.17\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-24 10:40+0100\n"
-"PO-Revision-Date: 2006-12-23 16:15+0100\n"
+"Project-Id-Version: lilypond 1.3.57\n"
+"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
+"POT-Creation-Date: 2008-02-14 15:55+0100\n"
+"PO-Revision-Date: 2000-07-14 00:34+0900\n"
"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
msgid "%s has been replaced by %s"
msgstr ""
-#: convertrules.py:2398
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:47 lilypond-book.py:82
+#: warn.cc:48 input.cc:90
+#, fuzzy, c-format, python-format
+msgid "warning: %s"
+msgstr "·Ù¹ð: "
+
+#: convertrules.py:33 convertrules.py:103
+msgid "\\header { key = concat + with + operator }"
+msgstr ""
+
+#: convertrules.py:48
+#, fuzzy, python-format
+msgid "deprecated %s"
+msgstr "¤ª¤ª¤è¤½ %s"
+
+#: convertrules.py:61
+msgid "deprecated \\textstyle, new \\key syntax"
+msgstr ""
+
+#: convertrules.py:80 convertrules.py:2124 convertrules.py:2337
+#: convertrules.py:2512 convertrules.py:2889
+msgid "bump version for release"
+msgstr ""
+
+#: convertrules.py:99
+msgid "new \\header format"
+msgstr ""
+
+#: convertrules.py:133
+msgid "\\translator syntax"
+msgstr ""
+
+#: convertrules.py:211
+msgid "\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative"
+msgstr ""
+
+#: convertrules.py:254 convertrules.py:828 convertrules.py:1584
+#: convertrules.py:2685
+#, python-format
+msgid "deprecate %s"
+msgstr ""
+
+#: convertrules.py:361
+#, python-format
+msgid "deprecate %s "
+msgstr ""
+
+#: convertrules.py:384
+msgid "new \\notenames format"
+msgstr ""
+
+#: convertrules.py:404
+#, fuzzy
+msgid "new tremolo format"
+msgstr "ËöÈø¤Ø¤Î¥È¥ì¥â¥íµ¹æ¤¬¤¢¤ê¤Þ¤»¤ó"
+
+#: convertrules.py:417
+msgid "Staff_margin_engraver deprecated, use Instrument_name_engraver"
+msgstr ""
+
+#: convertrules.py:536
+msgid "change property definiton case (eg. onevoice -> oneVoice)"
+msgstr ""
+
+#: convertrules.py:544
+msgid "new \\textscript markup text"
+msgstr ""
+
+#: convertrules.py:638
+#, fuzzy, python-format
+msgid "identifier names: %s"
+msgstr "¼±ÊÌ»Ò̾¤Ï¥¡¼¥ï¡¼¥É¤Ç¤¹: `%s'"
+
+#: convertrules.py:679
+msgid "point-and-click argument changed to procedure."
+msgstr ""
+
+#: convertrules.py:739
+msgid "semicolons removed"
+msgstr ""
+
+#. 40 ?
+#: convertrules.py:795
+#, python-format
+msgid "%s property names"
+msgstr ""
+
+#: convertrules.py:865
+msgid "automaticMelismata turned on by default"
+msgstr ""
+
+#: convertrules.py:1131 convertrules.py:1893 convertrules.py:2166
+#: convertrules.py:2472
+#, python-format
+msgid "remove %s"
+msgstr ""
+
+#: convertrules.py:1164 convertrules.py:1173
+msgid "cluster syntax"
+msgstr ""
+
+#: convertrules.py:1182
+msgid "new Pedal style syntax"
+msgstr ""
+
+#: convertrules.py:1451
+msgid ""
+"New relative mode,\n"
+"Postfix articulations, new text markup syntax, new chord syntax."
+msgstr ""
+
+#: convertrules.py:1475
+msgid "Remove - before articulation"
+msgstr ""
+
+#: convertrules.py:1515
+#, python-format
+msgid "%s misspelling"
+msgstr ""
+
+#: convertrules.py:1521
+msgid "attempting automatic \\figures conversion. Check results!"
+msgstr ""
+
+#: convertrules.py:1550
+msgid "Swap < > and << >>"
+msgstr ""
+
+#: convertrules.py:1576
+msgid "Use Scheme code to construct arbitrary note events."
+msgstr ""
+
+#: convertrules.py:1609
+#, python-format
+msgid ""
+"\\outputproperty found,\n"
+"Please hand-edit, using\n"
+"\n"
+" \\applyoutput #(outputproperty-compatibility %s '%s <GROB PROPERTY VALUE>)\n"
+"\n"
+"as a substitution text."
+msgstr ""
+
+#: convertrules.py:1623
+msgid ""
+"The alteration field of Scheme pitches was multiplied by 2\n"
+"to support quarter tone accidentals. You must update the following constructs manually:\n"
+"\n"
+"* calls of ly:make-pitch and ly:pitch-alteration\n"
+"* keySignature settings made with \\property\n"
+msgstr ""
+
+#: convertrules.py:1633
+msgid ""
+"use symbolic constants for alterations,\n"
+"remove \\outputproperty, move ly:verbose into ly:get-option"
+msgstr ""
+
+#: convertrules.py:1692
+msgid "removal of automaticMelismata; use melismaBusyProperties instead."
+msgstr ""
+
+#: convertrules.py:1807
+msgid "\\partcombine syntax change to \\newpartcombine"
+msgstr ""
+
+#: convertrules.py:1824
+msgid "Drums found. Enclose drum notes in \\drummode"
+msgstr ""
+
+#: convertrules.py:1835 convertrules.py:1842 convertrules.py:1853
+#, python-format
+msgid ""
+"\n"
+"%s found. Check file manually!\n"
+msgstr ""
+
+#: convertrules.py:1835
+msgid "Drum notation"
+msgstr ""
+
+#: convertrules.py:1863
+msgid ""
+"Drum notation changes, Removing \\chordmodifiers, \\notenames.\n"
+"Harmonic notes. Thread context removed. Lyrics context removed."
+msgstr ""
+
+#: convertrules.py:1924
+msgid "new syntax for property settings:"
+msgstr ""
+
+#: convertrules.py:1957
+msgid "Property setting syntax in \\translator{ }"
+msgstr ""
+
+#: convertrules.py:1978
+#, python-format
+msgid "use %s"
+msgstr ""
+
+#: convertrules.py:1995
+msgid "Scheme grob function renaming"
+msgstr ""
+
+#: convertrules.py:2008
+msgid "More Scheme function renaming"
+msgstr ""
+
+#: convertrules.py:2140
+msgid ""
+"Page layout has been changed, using paper size and margins.\n"
+"textheight is no longer used.\n"
+msgstr ""
+
+#: convertrules.py:2259
+msgid ""
+"\\foo -> \\foomode (for chords, notes, etc.)\n"
+"fold \\new FooContext \\foomode into \\foo."
+msgstr ""
+
+#: convertrules.py:2285
+msgid ""
+"staff size should be changed at top-level\n"
+"with\n"
+"\n"
+" #(set-global-staff-size <STAFF-HEIGHT-IN-POINT>)\n"
+"\n"
+msgstr ""
+
+#: convertrules.py:2320
+msgid "regularize other identifiers"
+msgstr ""
+
+#: convertrules.py:2411
msgid "LilyPond source must be UTF-8"
msgstr ""
-#: convertrules.py:2401
+#: convertrules.py:2414
msgid "Try the texstrings backend"
msgstr ""
-#: convertrules.py:2404
+#: convertrules.py:2417
#, python-format
msgid "Do something like: %s"
msgstr ""
-#: convertrules.py:2407
+#: convertrules.py:2420
msgid "Or save as UTF-8 in your editor"
msgstr ""
+#: convertrules.py:2452
+msgid "\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click"
+msgstr ""
+
+#: convertrules.py:2485
+msgid "auto beam settings"
+msgstr ""
+
+#: convertrules.py:2487
+msgid ""
+"\n"
+"Auto beam settings must now specify each interesting moment in a measure\n"
+"explicitely; 1/4 is no longer multiplied to cover moments 1/2 and 3/4 too.\n"
+msgstr ""
+
+#: convertrules.py:2498
+msgid "warn about auto beam settings"
+msgstr ""
+
+#: convertrules.py:2624
+msgid "verticalAlignmentChildCallback has been deprecated"
+msgstr ""
+
+#: convertrules.py:2652
+msgid "Remove callbacks property, deprecate XY-extent-callback."
+msgstr ""
+
+#: convertrules.py:2663
+msgid "Use grob closures iso. XY-offset-callbacks."
+msgstr ""
+
+#: convertrules.py:2770
+msgid "foobar -> foo-bar for \\paper, \\layout"
+msgstr ""
+
+#: convertrules.py:2877
+msgid "deprecate \\tempo in \\midi"
+msgstr ""
+
+#: convertrules.py:2912
+msgid "deprecate cautionary-style. Use AccidentalCautionary properties"
+msgstr ""
+
+#: convertrules.py:2941
+msgid "Rename accidental glyphs, use glyph-name-alist."
+msgstr ""
+
+#: convertrules.py:2973
+msgid "edge-text settings for TextSpanner."
+msgstr ""
+
+#: convertrules.py:2974
+#, python-format
+msgid ""
+"Use\n"
+"\n"
+"%s"
+msgstr ""
+
+#: convertrules.py:3020
+msgid "all settings related to dashed lines.\n"
+msgstr ""
+
+#: convertrules.py:3021
+msgid "Use \\override ... #'style = #'line for solid lines and\n"
+msgstr ""
+
+#: convertrules.py:3022
+msgid "\t\\override ... #'style = #'dashed-line for dashed lines."
+msgstr ""
+
+#: convertrules.py:3027
+msgid "Use #'style not #'dash-fraction to select solid/dashed lines."
+msgstr ""
+
#: fontextract.py:26
#, fuzzy, python-format
msgid "Scanning %s"
msgstr ""
#: fontextract.py:86
-#, fuzzy, python-format
+#, python-format
msgid "Writing fonts to %s"
-msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
+msgstr ""
-#: lilylib.py:85 lilylib.py:136
+#: lilylib.py:102 lilylib.py:153
#, fuzzy, python-format
msgid "Invoking `%s'"
-msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+msgstr "¶Ê¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-#: lilylib.py:87 lilylib.py:138
-#, fuzzy, python-format
+#: lilylib.py:104 lilylib.py:155
+#, python-format
msgid "Running %s..."
-msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+msgstr ""
-#: lilylib.py:203
-#, fuzzy, python-format
+#: lilylib.py:220
+#, python-format
msgid "Usage: %s"
-msgstr "·Ù¹ð: "
+msgstr ""
+
+#: musicexp.py:577
+#, python-format
+msgid "unable to set the music %(music)s for the repeat %(repeat)s"
+msgstr ""
+
+#: musicexp.py:586
+msgid "encountered repeat without body"
+msgstr ""
-#: abc2ly.py:1349 convert-ly.py:80 lilypond-book.py:125 midi2ly.py:869
+#: musicxml.py:13 convert-ly.py:50 lilypond-book.py:85 warn.cc:54 input.cc:96
+#: input.cc:104
+#, fuzzy, c-format, python-format
+msgid "error: %s"
+msgstr "¥¨¥é¡¼: "
+
+#: musicxml.py:272
+msgid "requested time signature, but time sig is unknown"
+msgstr ""
+
+#: musicxml.py:338
+#, python-format
+msgid "Encountered note at %s with %s duration (no <type> element):"
+msgstr ""
+
+#: musicxml.py:372
+#, python-format
+msgid "Unable to find find instrument for ID=%s\n"
+msgstr ""
+
+#: abc2ly.py:1342 convert-ly.py:71 lilypond-book.py:109 midi2ly.py:849
#, fuzzy, python-format
msgid "%s [OPTION]... FILE"
msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]"
-#: abc2ly.py:1351
+#: abc2ly.py:1343
#, python-format
msgid ""
"abc2ly converts ABC music files (see\n"
"%s) to LilyPond input."
msgstr ""
-#: abc2ly.py:1355 etf2ly.py:1200 midi2ly.py:885
+#: abc2ly.py:1350 convert-ly.py:78 etf2ly.py:1190 lilypond-book.py:175
+#: midi2ly.py:885 musicxml2ly.py:1824 main.cc:161
+#, fuzzy
+msgid "show version number and exit"
+msgstr "¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨"
+
+#: abc2ly.py:1354 convert-ly.py:82 etf2ly.py:1186 lilypond-book.py:125
+#: midi2ly.py:864 musicxml2ly.py:1808 main.cc:150
+msgid "show this help and exit"
+msgstr ""
+
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:868
#, fuzzy
msgid "write output to FILE"
-msgstr "BASENAME[-x].³ÈÄ¥»Ò ¤Ø½ÐÎϤò½ñ¤¹þ¤à"
+msgstr "Lily ¤Ï %s ¤Ë½ÐÎϤ·¤Þ¤¹..."
-#: abc2ly.py:1357
+#: abc2ly.py:1358
msgid "be strict about succes"
msgstr ""
-#: abc2ly.py:1359
+#: abc2ly.py:1360
msgid "preserve ABC's notion of beams"
msgstr ""
-#: abc2ly.py:1361 convert-ly.py:112 etf2ly.py:1208 lilypond-book.py:168
-#: midi2ly.py:911 musicxml2ly.py:505
+#: abc2ly.py:1361 convert-ly.py:111 etf2ly.py:1198 lilypond-book.py:180
+#: midi2ly.py:897 musicxml2ly.py:1872
+msgid "Bugs"
+msgstr ""
+
+#: abc2ly.py:1362 convert-ly.py:112 etf2ly.py:1199 lilypond-book.py:181
+#: midi2ly.py:898 musicxml2ly.py:1873
#, fuzzy
msgid "Report bugs via"
-msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø."
+msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø"
-#: convert-ly.py:41
+#: convert-ly.py:32
msgid ""
"Update LilyPond input to newer version. By default, update from the\n"
"version taken from the \\version command, to the current LilyPond version."
msgstr ""
-#: convert-ly.py:43 lilypond-book.py:73
+#: convert-ly.py:34 lilypond-book.py:59
msgid "Examples:"
msgstr ""
-#: convert-ly.py:56 lilypond-book.py:98 warn.cc:48 input.cc:90
-#, fuzzy, c-format, python-format
-msgid "warning: %s"
-msgstr "·Ù¹ð: "
-
-#: convert-ly.py:59 lilypond-book.py:101 warn.cc:54 input.cc:96 input.cc:104
-#, fuzzy, c-format, python-format
-msgid "error: %s"
-msgstr "¥¨¥é¡¼: "
-
-#: convert-ly.py:75 etf2ly.py:1190 lilypond-book.py:121 midi2ly.py:98
+#: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:105 midi2ly.py:79
msgid "Distributed under terms of the GNU General Public License."
msgstr ""
-#: convert-ly.py:76 etf2ly.py:1191 lilypond-book.py:122 midi2ly.py:99
+#: convert-ly.py:67 etf2ly.py:1175 lilypond-book.py:106 midi2ly.py:80
msgid "It comes with NO WARRANTY."
msgstr ""
msgid "Processing `%s'... "
msgstr "½èÍýÃæ..."
-#: convert-ly.py:277 relocate.cc:360 source-file.cc:54
+#: convert-ly.py:277 relocate.cc:362 source-file.cc:54
#, fuzzy, c-format, python-format
msgid "cannot open file: `%s'"
msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
#: convert-ly.py:284
-#, fuzzy, python-format
+#, python-format
msgid "cannot determine version for `%s'. Skipping"
-msgstr "¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
+msgstr ""
-#: etf2ly.py:1196
+#: etf2ly.py:1180
#, fuzzy, python-format
msgid "%s [OPTION]... ETF-FILE"
msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]"
-#: etf2ly.py:1198
+#: etf2ly.py:1181
msgid ""
"Enigma Transport Format is a format used by Coda Music Technology's\n"
-"Finale product. etf2ly converts a subset of ETF to a ready-to-use LilyPond "
-"file."
+"Finale product. etf2ly converts a subset of ETF to a ready-to-use LilyPond file."
msgstr ""
-#: etf2ly.py:1201 midi2ly.py:886 musicxml2ly.py:498 main.cc:172 main.cc:178
+#: etf2ly.py:1192 midi2ly.py:869 musicxml2ly.py:1866 main.cc:154 main.cc:159
msgid "FILE"
msgstr "FILE"
-#: etf2ly.py:1203 lilypond-book.py:165 midi2ly.py:899 main.cc:185
+#: etf2ly.py:1194 lilypond-book.py:178 midi2ly.py:886 main.cc:163
msgid "show warranty and copyright"
msgstr "ÊݾڤÈÃøºî¸¢¤Ë¤Ä¤¤¤Æɽ¼¨¤¹¤ë"
-#: lilypond-book.py:71
-msgid ""
-"Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
+#: lilypond-book.py:57
+msgid "Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document."
msgstr ""
-#: lilypond-book.py:78
+#: lilypond-book.py:64
msgid "BOOK"
msgstr ""
-#: lilypond-book.py:87
-#, fuzzy, python-format
+#: lilypond-book.py:72
+#, python-format
msgid "Exiting (%d)..."
-msgstr "¹Ô ..."
+msgstr ""
-#: lilypond-book.py:119
+#: lilypond-book.py:103
#, python-format
msgid "Copyright (c) %s by"
msgstr "Copyright (c) %s by"
-#: lilypond-book.py:129
+#: lilypond-book.py:113
#, fuzzy
msgid "FILTER"
msgstr "FILE"
-#: lilypond-book.py:132
+#: lilypond-book.py:116
msgid "pipe snippets through FILTER [convert-ly -n -]"
msgstr ""
-#: lilypond-book.py:135
-#, fuzzy
-msgid ""
-"use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
-msgstr "½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È EXT ¤ò»È¤¦"
+#: lilypond-book.py:120
+msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
+msgstr ""
-#: lilypond-book.py:138
+#: lilypond-book.py:127
#, fuzzy
msgid "add DIR to include path"
msgstr "DIR ¤ò¸¡º÷¥Ñ¥¹¤ËÄɲÃ"
-#: lilypond-book.py:139 lilypond-book.py:144 main.cc:171
+#: lilypond-book.py:128 lilypond-book.py:135 lilypond-book.py:147 main.cc:153
msgid "DIR"
msgstr "DIR"
-#: lilypond-book.py:143
+#: lilypond-book.py:133
+msgid "format Texinfo output so that Info will look for images of music in DIR"
+msgstr ""
+
+#: lilypond-book.py:140
+msgid "PAD"
+msgstr ""
+
+#: lilypond-book.py:142
+msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)"
+msgstr ""
+
+#: lilypond-book.py:146
#, fuzzy
msgid "write output to DIR"
-msgstr "BASENAME[-x].³ÈÄ¥»Ò ¤Ø½ÐÎϤò½ñ¤¹þ¤à"
+msgstr "Lily ¤Ï %s ¤Ë½ÐÎϤ·¤Þ¤¹..."
-#: lilypond-book.py:147
+#: lilypond-book.py:151
msgid "COMMAND"
msgstr ""
-#: lilypond-book.py:148
+#: lilypond-book.py:152
msgid "process ly_files using COMMAND FILE..."
msgstr ""
-#: lilypond-book.py:154
-msgid "Create PDF files for use with PDFTeX"
+#: lilypond-book.py:159
+msgid "create PDF files for use with PDFTeX"
msgstr ""
-#: lilypond-book.py:157
+#: lilypond-book.py:163
msgid ""
"extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
"must use this with dvips -h INPUT.psfonts"
msgstr ""
-#: lilypond-book.py:160 midi2ly.py:896 musicxml2ly.py:489 main.cc:184
-#, fuzzy
+#: lilypond-book.py:167 midi2ly.py:879 musicxml2ly.py:1829 main.cc:162
msgid "be verbose"
msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹"
-#: lilypond-book.py:773
+#: lilypond-book.py:788
#, python-format
msgid "file not found: %s"
msgstr ""
-#: lilypond-book.py:1004
+#: lilypond-book.py:1022
#, python-format
msgid "deprecated ly-option used: %s=%s"
msgstr ""
-#: lilypond-book.py:1007
+#: lilypond-book.py:1025
#, python-format
msgid "compatibility mode translation: %s=%s"
msgstr ""
-#: lilypond-book.py:1011
+#: lilypond-book.py:1029
#, python-format
msgid "deprecated ly-option used: %s"
msgstr ""
-#: lilypond-book.py:1014
+#: lilypond-book.py:1032
#, python-format
msgid "compatibility mode translation: %s"
msgstr ""
-#: lilypond-book.py:1033
+#: lilypond-book.py:1051
#, python-format
msgid "ignoring unknown ly option: %s"
msgstr ""
-#: lilypond-book.py:1388
+#: lilypond-book.py:1422
#, fuzzy, python-format
msgid "Opening filter `%s'"
-msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
-#: lilypond-book.py:1405
+#: lilypond-book.py:1439
#, python-format
msgid "`%s' failed (%d)"
msgstr ""
-#: lilypond-book.py:1406
+#: lilypond-book.py:1440
msgid "The error log is as follows:"
msgstr ""
-#: lilypond-book.py:1476
+#: lilypond-book.py:1512
msgid "cannot find \\begin{document} in LaTeX document"
msgstr ""
-#: lilypond-book.py:1586
+#: lilypond-book.py:1623
#, fuzzy
msgid "Writing snippets..."
-msgstr "¹Ô ..."
+msgstr "²»À¼¤òºîÀ®Ãæ..."
-#: lilypond-book.py:1591
-#, fuzzy
+#: lilypond-book.py:1628
msgid "Processing..."
msgstr "½èÍýÃæ..."
-#: lilypond-book.py:1595
+#: lilypond-book.py:1632
msgid "All snippets are up to date..."
msgstr ""
-#: lilypond-book.py:1605
+#: lilypond-book.py:1642
#, fuzzy, python-format
msgid "cannot determine format for: %s"
msgstr "¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: lilypond-book.py:1616
+#: lilypond-book.py:1653
#, python-format
msgid "%s is up to date."
msgstr ""
-#: lilypond-book.py:1622
+#: lilypond-book.py:1659
#, fuzzy, python-format
msgid "Writing `%s'..."
-msgstr "¹Ô ..."
+msgstr "°Í¸´Ø·¸¥Õ¥¡¥¤¥ë¤Î½ñ¤¹þ¤ß: `%s'..."
-#: lilypond-book.py:1677
+#: lilypond-book.py:1714
msgid "Output would overwrite input file; use --output."
msgstr ""
-#: lilypond-book.py:1681
+#: lilypond-book.py:1718
#, fuzzy, python-format
msgid "Reading %s..."
-msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+msgstr "²»À¼¤òºîÀ®Ãæ..."
-#: lilypond-book.py:1700
+#: lilypond-book.py:1737
#, fuzzy
msgid "Dissecting..."
-msgstr "¹Ô ..."
+msgstr "½èÍýÃæ..."
-#: lilypond-book.py:1716
-#, fuzzy, python-format
+#: lilypond-book.py:1753
+#, python-format
msgid "Compiling %s..."
-msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+msgstr ""
-#: lilypond-book.py:1725
-#, fuzzy, python-format
+#: lilypond-book.py:1762
+#, python-format
msgid "Processing include: %s"
-msgstr "½èÍýÃæ..."
+msgstr ""
-#: lilypond-book.py:1739
-#, fuzzy, python-format
+#: lilypond-book.py:1776
+#, python-format
msgid "Removing `%s'"
-msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-
-#: lilypond-book.py:1815
-#, fuzzy, python-format
-msgid "Writing fonts to %s..."
-msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
+msgstr ""
-#: lilypond-book.py:1830
+#: lilypond-book.py:1809
msgid "option --psfonts not used"
msgstr ""
-#: lilypond-book.py:1831
+#: lilypond-book.py:1810
msgid "processing with dvips will have no fonts"
msgstr ""
-#: lilypond-book.py:1834
+#: lilypond-book.py:1813
msgid "DVIPS usage:"
msgstr ""
-#: midi2ly.py:106 lily-library.scm:624 lily-library.scm:632
+#: lilypond-book.py:1869
+#, fuzzy, python-format
+msgid "Writing fonts to %s..."
+msgstr "Lily ¤Ï %s ¤Ë½ÐÎϤ·¤Þ¤¹..."
+
+#: midi2ly.py:87 lily-library.scm:615 lily-library.scm:624
msgid "warning: "
msgstr "·Ù¹ð: "
-#: midi2ly.py:109 midi2ly.py:924
+#: midi2ly.py:90 midi2ly.py:911
msgid "error: "
msgstr "¥¨¥é¡¼: "
-#: midi2ly.py:110
+#: midi2ly.py:91
#, fuzzy
-msgid "Exiting ... "
+msgid "Exiting... "
msgstr "¹Ô ..."
-#: midi2ly.py:857
+#: midi2ly.py:837
#, fuzzy, python-format
msgid "%s output to `%s'..."
msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
-#: midi2ly.py:871 musicxml2ly.py:485
+#: midi2ly.py:850 musicxml2ly.py:1803
#, python-format
msgid "Convert %s to LilyPond input."
msgstr ""
-#: midi2ly.py:875
+#: midi2ly.py:855
msgid "print absolute pitches"
msgstr ""
-#: midi2ly.py:877 midi2ly.py:889
+#: midi2ly.py:857 midi2ly.py:872
msgid "DUR"
msgstr "DUR"
-#: midi2ly.py:878
+#: midi2ly.py:858
msgid "quantise note durations on DUR"
msgstr ""
-#: midi2ly.py:881
+#: midi2ly.py:861
msgid "print explicit durations"
msgstr ""
-#: midi2ly.py:882
+#: midi2ly.py:865
#, fuzzy
msgid "set key: ALT=+sharps|-flats; MINOR=1"
msgstr "Ä´¤òÀßÄê: ACC +¥·¥ã¡¼¥×/-¥Õ¥é¥Ã¥È :1 ûĴ"
-#: midi2ly.py:883
+#: midi2ly.py:866
#, fuzzy
msgid "ALT[:MINOR]"
msgstr "ACC[:MINOR]"
-#: midi2ly.py:888
+#: midi2ly.py:871
msgid "quantise note starts on DUR"
msgstr ""
-#: midi2ly.py:891
+#: midi2ly.py:874
msgid "DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:894
+#: midi2ly.py:877
msgid "allow tuplet durations DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:902
+#: midi2ly.py:889
msgid "treat every text as a lyric"
msgstr ""
-#: midi2ly.py:905
+#: midi2ly.py:892
msgid "Examples"
msgstr ""
-#: midi2ly.py:925
+#: midi2ly.py:912
msgid "no files specified on command line."
msgstr ""
-#: musicxml2ly.py:473
-msgid "musicxml2ly FILE.xml"
+#: musicxml2ly.py:193 musicxml2ly.py:195
+#, python-format
+msgid "Unprocessed PartGroupInfo %s encountered"
msgstr ""
-#: musicxml2ly.py:476
-#, fuzzy, python-format
-msgid ""
-"This program is free software. It is covered by the GNU General Public\n"
-"License and you are welcome to change it and/or distribute copies of it\n"
-"under certain conditions. Invoke as `%s --warranty' for more\n"
+#: musicxml2ly.py:426
+#, python-format
+msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration"
+msgstr ""
+
+#: musicxml2ly.py:609
+#, python-format
+msgid "unknown mode %s, expecting 'major' or 'minor'"
+msgstr ""
+
+#: musicxml2ly.py:647
+#, python-format
+msgid "Encountered unprocessed marker %s\n"
+msgstr ""
+
+#: musicxml2ly.py:741
+#, fuzzy, python-format
+msgid "unknown span event %s"
+msgstr "paper ÊÑ¿ô¤ÎÃͤ¬È½¤ê¤Þ¤»¤ó: `%s'"
+
+#: musicxml2ly.py:751
+#, fuzzy, python-format
+msgid "unknown span type %s for %s"
+msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×ʸ»úÎó: `\\%s'"
+
+#: musicxml2ly.py:1259
+#, python-format
+msgid "drum %s type unknown, please add to instrument_drumtype_dict"
+msgstr ""
+
+#: musicxml2ly.py:1263
+#, fuzzy
+msgid "cannot find suitable event"
+msgstr "³Ã¤Î»ÏÅÀ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+
+#: musicxml2ly.py:1346
+#, python-format
+msgid "Negative skip %s"
+msgstr ""
+
+#: musicxml2ly.py:1480
+#, python-format
+msgid "Negative skip found: from %s to %s, difference is %s"
+msgstr ""
+
+#: musicxml2ly.py:1505
+#, python-format
+msgid "unexpected %s; expected %s or %s or %s"
+msgstr ""
+
+#: musicxml2ly.py:1583
+msgid "cannot have two simultaneous slurs"
+msgstr ""
+
+#: musicxml2ly.py:1711
+#, python-format
+msgid "cannot simultaneously have more than one mode: %s"
+msgstr ""
+
+#: musicxml2ly.py:1791
+msgid "Converting to LilyPond expressions..."
+msgstr ""
+
+#: musicxml2ly.py:1802
+msgid "musicxml2ly [options] FILE.xml"
+msgstr ""
+
+#: musicxml2ly.py:1812
+#, fuzzy, python-format
+msgid ""
+"This program is free software. It is covered by the GNU General Public\n"
+"License and you are welcome to change it and/or distribute copies of it\n"
+"under certain conditions. Invoke as `%s --warranty' for more\n"
"information."
msgstr ""
"This is free software. It is covered by the GNU General Public License,\n"
"¤³¤ì¤ò²þÊѤ·¤¿¤ê¡¢Ê£À½¤òÇÛÉÛ¤·¤¿¤ê¤¹¤ë»ö¤Ï´¿·Þ¤µ¤ì¤Þ¤¹¡£\n"
"`--warranty' ¥ª¥×¥·¥ç¥óÉÕ¤¤Çµ¯Æ°¤¹¤ë¤È¡¢¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤¬ÆÀ¤é¤ì¤Þ¤¹¡£\n"
-#: musicxml2ly.py:495
-msgid "Use lxml.etree; uses less memory and cpu time."
+#: musicxml2ly.py:1835
+msgid "use lxml.etree; uses less memory and cpu time"
msgstr ""
-#: musicxml2ly.py:503
-#, fuzzy
+#: musicxml2ly.py:1841
+msgid "input file is a zip-compressed MusicXML file"
+msgstr ""
+
+#: musicxml2ly.py:1847
+msgid "convert pitches in relative mode (default)"
+msgstr ""
+
+#: musicxml2ly.py:1852
+msgid "convert pitches in absolute mode"
+msgstr ""
+
+#: musicxml2ly.py:1855
+msgid "LANG"
+msgstr ""
+
+#: musicxml2ly.py:1857
+msgid "use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly"
+msgstr ""
+
+#: musicxml2ly.py:1863
+msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
+msgstr ""
+
+#: musicxml2ly.py:1871
msgid "set output filename to FILE"
-msgstr "BASENAME[-x].³ÈÄ¥»Ò ¤Ø½ÐÎϤò½ñ¤¹þ¤à"
+msgstr ""
+
+#: musicxml2ly.py:1929
+#, fuzzy, python-format
+msgid "unknown part in part-list: %s"
+msgstr "paper ÊÑ¿ô¤ÎÃͤ¬È½¤ê¤Þ¤»¤ó: `%s'"
+
+#: musicxml2ly.py:1985
+#, python-format
+msgid "Input file %s is compressed, extracting raw MusicXML data"
+msgstr ""
+
+#: musicxml2ly.py:2011
+#, python-format
+msgid "Reading MusicXML from %s ..."
+msgstr ""
+
+#: musicxml2ly.py:2039 musicxml2ly.py:2053
+#, fuzzy, python-format
+msgid "Output to `%s'"
+msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
+
+#: musicxml2ly.py:2096
+#, fuzzy, python-format
+msgid "Unable to find input file %s"
+msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
#: getopt-long.cc:140
-#, fuzzy, c-format
+#, c-format
msgid "option `%s' requires an argument"
msgstr "¥ª¥×¥·¥ç¥ó `%s' ¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹"
msgid "invalid argument `%s' to option `%s'"
msgstr "¥ª¥×¥·¥ç¥ó `%2$s' ¤ËÂФ¹¤ë̵¸ú¤Ê°ú¿ô `%1$s'"
-#: warn.cc:68 grob.cc:559 input.cc:82
+#: warn.cc:68 grob.cc:566 input.cc:82
#, fuzzy, c-format
msgid "programming error: %s"
msgstr "¥×¥í¥°¥é¥à¾å¤Î¥¨¥é¡¼: "
#: warn.cc:69 input.cc:83
+#, fuzzy
msgid "continuing, cross fingers"
-msgstr ""
+msgstr " (³¤±¤Þ¤¹ -- cross thumbs)"
-#: accidental-engraver.cc:240
+#: accidental-engraver.cc:250
#, c-format
msgid "accidental typesetting list must begin with context-name: %s"
msgstr ""
-#: accidental-engraver.cc:268
-#, fuzzy, c-format
-msgid "ignoring unknown accidental: %s"
-msgstr "¥·¥ã¡¼¥×¤¬Â¿¤¹¤®¤Þ¤¹ (%s)"
+#: accidental-engraver.cc:277
+#, c-format
+msgid "ignoring unknown accidental rule: %s"
+msgstr ""
-#: accidental-engraver.cc:284
+#: accidental-engraver.cc:293
#, c-format
msgid "pair or context-name expected for accidental rule, found %s"
msgstr ""
-#: accidental.cc:243 key-signature-interface.cc:133
+#: accidental.cc:187
#, c-format
-msgid "accidental `%s' not found"
+msgid "Could not find glyph-name for alteration %s"
msgstr ""
-#: align-interface.cc:222
-msgid ""
-"vertical alignment called before line-breaking.\n"
-"Only do cross-staff spanners with PianoStaff."
+#: accidental.cc:202
+msgid "natural alteration glyph not found"
msgstr ""
-#: align-interface.cc:329
+#: align-interface.cc:325
msgid "tried to get a translation for something that is no child of mine"
msgstr ""
-#: all-font-metrics.cc:173
+#: all-font-metrics.cc:143
#, fuzzy, c-format
msgid "cannot find font: `%s'"
msgstr "¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
msgstr ""
#: auto-change-iterator.cc:63 change-iterator.cc:61
-#, fuzzy, c-format
+#, c-format
msgid "cannot change, already in translator: %s"
-msgstr "`%s' ¤«¤é `%s' ¤ËÊѹ¹¤Ç¤¤Þ¤»¤ó"
+msgstr ""
#: axis-group-engraver.cc:78
msgid "Axis_group_engraver: vertical group already has a parent"
msgid "removing this vertical group"
msgstr ""
-#: axis-group-interface.cc:96
-msgid "tried to calculate pure-height at a non-breakpoint"
-msgstr ""
-
-#: axis-group-interface.cc:370
+#: axis-group-interface.cc:524
msgid "an outside-staff object should have a direction, defaulting to up"
msgstr ""
-#: axis-group-interface.cc:383
-#, c-format
-msgid "outside-staff object %s has an empty extent"
-msgstr ""
-
#: bar-check-iterator.cc:73
#, c-format
msgid "barcheck failed at: %s"
msgstr "¾®Àá¥Á¥§¥Ã¥¯¤¬¼ºÇÔ: %s"
-#: beam-engraver.cc:128
-#, fuzzy
+#: beam-engraver.cc:126
msgid "already have a beam"
msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
-#: beam-engraver.cc:196
-#, fuzzy
+#: beam-engraver.cc:202
msgid "unterminated beam"
-msgstr "½ªÃ¼¤Î¤Ê¤¤¥Ï¥¤¥Õ¥ó"
+msgstr "½ªÃ¼¤Î¤Ê¤¤³Ã"
-#: beam-engraver.cc:238 chord-tremolo-engraver.cc:134
-#, fuzzy
+#: beam-engraver.cc:244 chord-tremolo-engraver.cc:138
msgid "stem must have Rhythmic structure"
msgstr "ÉäÈø¤Ï¥ê¥º¥à¹½Â¤¤ò»ý¤¿¤Í¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: beam-engraver.cc:246
+#: beam-engraver.cc:252
#, fuzzy
msgid "stem does not fit in beam"
msgstr "ÉäÈø¤¬³Ã¤ÎÃæ¤Ë¤ª¤µ¤Þ¤ê¤Þ¤»¤ó"
-#: beam-engraver.cc:247
-#, fuzzy
+#: beam-engraver.cc:253
msgid "beam was started here"
msgstr "³Ã¤Ï¤³¤³¤«¤é³«»Ï¤µ¤ì¤Þ¤·¤¿"
#: beam-quanting.cc:307
+#, fuzzy
msgid "no feasible beam position"
-msgstr ""
+msgstr "ÉÔŬÀڤʲþ¹Ô¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: beam.cc:144
-#, fuzzy
+#: beam.cc:160
msgid "removing beam with no stems"
-msgstr "³Ã¤¬Æó¤Ä̤Ëþ¤ÎÉäÈø¤È¤È¤â¤Ë»È¤ï¤ì¤Þ¤·¤¿"
+msgstr ""
-#: beam.cc:1007
+#: beam.cc:1069
msgid "no viable initial configuration found: may not find good beam slope"
msgstr ""
-#: break-alignment-interface.cc:208
-#, fuzzy, c-format
+#: break-alignment-interface.cc:195
+#, c-format
msgid "No spacing entry from %s to `%s'"
-msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
+msgstr ""
#: change-iterator.cc:23
#, fuzzy, c-format
#. last->translator_id_string () = get_change
#. ()->change_to_id_string ();
#: change-iterator.cc:91
-#, fuzzy, c-format
+#, c-format
msgid "not changing to same context type: %s"
-msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
+msgstr ""
#. FIXME: uncomprehensable message
#: change-iterator.cc:95
msgstr "ËöÈø¤Ø¤Î¥È¥ì¥â¥íµ¹æ¤¬¤¢¤ê¤Þ¤»¤ó"
#: chord-tremolo-engraver.cc:110
-#, fuzzy
msgid "unterminated chord tremolo"
-msgstr "½ªÃ¼¤Î¤Ê¤¤¥Ï¥¤¥Õ¥ó"
+msgstr "½ªÃ¼¤Î¤Ê¤¤¥³¡¼¥É¥È¥ì¥â¥í"
-#: chord-tremolo-iterator.cc:33
+#: chord-tremolo-iterator.cc:35
#, c-format
msgid "expect 2 elements for chord tremolo, found %d"
msgstr ""
msgid "unknown cluster style `%s'"
msgstr "ÉÔÌÀ¤Ê²»Éôµ¹æ(Clef)"
-#: cluster.cc:135
+#: cluster.cc:147
msgid "junking empty cluster"
msgstr ""
msgstr ""
#. if we get to here, just put everything on one line
-#: constrained-breaking.cc:176 constrained-breaking.cc:193
+#: constrained-breaking.cc:167 constrained-breaking.cc:184
#, fuzzy
msgid "cannot find line breaking that satisfies constraints"
msgstr "¤½¤Î²ò·è¤ÏÀ©¸Â¤òËþ¤¿¤·¤Þ¤»¤ó"
msgid "program has no such type: `%s'"
msgstr "¥×¥í¥°¥é¥à¤Ë¤Ï¤½¤ÎÍͤʥ¿¥¤¥×¤¬¤¢¤ê¤Þ¤»¤ó"
-#: context-property.cc:76
+#: context-property.cc:30
msgid "need symbol arguments for \\override and \\revert"
msgstr ""
-#: context.cc:151
+#: context.cc:144
#, fuzzy, c-format
msgid "cannot find or create new `%s'"
msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
-#: context.cc:213
+#: context.cc:206
#, fuzzy, c-format
msgid "cannot find or create `%s' called `%s'"
msgstr "`%2$s' ¤Ë¸Æ¤Ð¤ì¤¿ `%1$s' ¤¬¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó"
-#: context.cc:276
+#: context.cc:268
#, c-format
msgid "Invalid CreateContext event: Cannot create %s context"
msgstr ""
-#: context.cc:388
+#: context.cc:380
#, fuzzy, c-format
msgid "cannot find or create: `%s'"
msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
msgstr ""
#: dispatcher.cc:78
-#, fuzzy, c-format
+#, c-format
msgid "Unknown event class %s"
-msgstr "ÉÔÌÀ¤Ê²»Éôµ¹æ(Clef)"
+msgstr ""
-#: dots.cc:38
+#: dots.cc:37
#, c-format
msgid "dot `%s' not found"
msgstr ""
-#: dynamic-engraver.cc:186 span-dynamic-performer.cc:87
+#: dynamic-engraver.cc:192
#, fuzzy
msgid "cannot find start of (de)crescendo"
-msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+msgstr "(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤Î»ÏÅÀ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: dynamic-engraver.cc:195
-#, fuzzy
+#: dynamic-engraver.cc:201
msgid "already have a decrescendo"
-msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
+msgstr "¥Ç¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬´û¤Ë¤¢¤ê¤Þ¤¹"
-#: dynamic-engraver.cc:197
-#, fuzzy
+#: dynamic-engraver.cc:203
msgid "already have a crescendo"
-msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
+msgstr "¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬´û¤Ë¤¢¤ê¤Þ¤¹"
-#: dynamic-engraver.cc:200
+#: dynamic-engraver.cc:206
#, fuzzy
msgid "cresc starts here"
msgstr "³Ã¤Ï¤³¤³¤«¤é³«»Ï¤µ¤ì¤Þ¤·¤¿"
-#: dynamic-engraver.cc:323
-#, fuzzy
+#: dynamic-engraver.cc:335
msgid "unterminated (de)crescendo"
-msgstr "½ªÎ»¤·¤Æ¤¤¤Ê¤¤¥¯¥ì¥Ã¥·¥§¥ó¥É"
+msgstr "½ªÃ¼¤Î¤Ê¤¤(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É"
-#: extender-engraver.cc:131 extender-engraver.cc:140
+#: extender-engraver.cc:142 extender-engraver.cc:151
msgid "unterminated extender"
msgstr "½ªÃ¼¤Î¤Ê¤¤¥¨¥¯¥¹¥Æ¥ó¥À"
msgid "Rebuilding FontConfig cache %s, this may take a while..."
msgstr ""
-#: font-config.cc:55
-#, fuzzy, c-format
+#: font-config.cc:57
+#, c-format
msgid "failed adding font directory: %s"
-msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
+msgstr ""
-#: font-config.cc:57
-#, fuzzy, c-format
+#: font-config.cc:59
+#, c-format
msgid "adding font directory: %s"
-msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
+msgstr ""
-#: general-scheme.cc:160
+#: general-scheme.cc:201
msgid "infinity or NaN encountered while converting Real number"
msgstr ""
-#: general-scheme.cc:161
+#: general-scheme.cc:202
msgid "setting to zero"
msgstr ""
-#: glissando-engraver.cc:92
+#: general-scheme.cc:421 output-ps.scm:61
+msgid "Found infinity or nan in output. Substituting 0.0"
+msgstr ""
+
+#: glissando-engraver.cc:94
#, fuzzy
msgid "unterminated glissando"
-msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥é¡¼"
+msgstr "½ªÃ¼¤Î¤Ê¤¤³Ã"
-#: global-context-scheme.cc:91 global-context-scheme.cc:107
+#: global-context-scheme.cc:85 global-context-scheme.cc:103
#, fuzzy
msgid "no music found in score"
msgstr "³ÚÉè¤Ë¤Ï³Ú¶Ê¤¬É¬ÍפǤ¹"
-#: global-context-scheme.cc:97
+#: global-context-scheme.cc:93
#, fuzzy
msgid "Interpreting music... "
msgstr "³Ú¶Ê¤Î²ò¼áÃæ..."
-#: global-context-scheme.cc:120
+#: global-context-scheme.cc:116
#, c-format
msgid "elapsed time: %.2f seconds"
msgstr "·Ð²á»þ´Ö: %.2f ÉÃ"
#. ligature may not start with 2nd head of pes or flexa
#: gregorian-ligature-engraver.cc:212
-#, fuzzy
msgid "cannot apply `\\~' on first head of ligature"
-msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+msgstr ""
#. (pitch == prev_pitch)
#: gregorian-ligature-engraver.cc:224
#: grob-interface.cc:57
#, fuzzy, c-format
msgid "Unknown interface `%s'"
-msgstr "ÉÔÌÀ¤Ê²»Éôµ¹æ(Clef)"
+msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
#: grob-interface.cc:68
#, c-format
msgid "Grob `%s' has no interface for property `%s'"
msgstr ""
-#: grob.cc:253
+#: grob-property.cc:34
+#, c-format
+msgid "%d: %s"
+msgstr ""
+
+#: grob-property.cc:173
+#, c-format
+msgid "cyclic dependency: calculation-in-progress encountered for #'%s (%s)"
+msgstr ""
+
+#: grob.cc:251
msgid "Infinity or NaN encountered"
msgstr ""
-#: hairpin.cc:183
+#: hairpin.cc:187
+#, fuzzy
msgid "decrescendo too small"
-msgstr ""
+msgstr "¥¯¥ì¥Ã¥·¥§¥ó¥É"
#: horizontal-bracket-engraver.cc:59
#, fuzzy
msgid "unterminated hyphen; removing"
msgstr "½ªÃ¼¤Î¤Ê¤¤¥Ï¥¤¥Õ¥ó"
-#: includable-lexer.cc:53
-msgid "include files are not allowed in safe mode"
-msgstr ""
-
-#: includable-lexer.cc:60 lily-guile.cc:90 lily-parser-scheme.cc:116
+#: includable-lexer.cc:53 lily-guile.cc:76 lily-parser-scheme.cc:117
#, fuzzy, c-format
msgid "cannot find file: `%s'"
msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: includable-lexer.cc:62 lily-parser-scheme.cc:107
+#: includable-lexer.cc:55 lily-parser-scheme.cc:108
#, c-format
msgid "(search path: `%s')"
msgstr "(¸¡º÷¥Ñ¥¹: `%s')"
msgid "position unknown"
msgstr "°ÌÃÖ¤¬È½¤ê¤Þ¤»¤ó"
-#: ligature-engraver.cc:93
-#, fuzzy
-msgid "cannot find start of ligature"
-msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+#: key-signature-interface.cc:74
+#, c-format
+msgid "No glyph found for alteration: %s"
+msgstr ""
-#: ligature-engraver.cc:98
-msgid "no right bound"
+#: key-signature-interface.cc:84
+msgid "alteration not found"
msgstr ""
-#: ligature-engraver.cc:120
+#: ligature-bracket-engraver.cc:62 ligature-engraver.cc:93
+#, fuzzy
+msgid "cannot find start of ligature"
+msgstr "³Ã¤Î»ÏÅÀ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+
+#: ligature-bracket-engraver.cc:75 ligature-engraver.cc:120
#, fuzzy
msgid "already have a ligature"
msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
+#: ligature-engraver.cc:98
+msgid "no right bound"
+msgstr ""
+
#: ligature-engraver.cc:129
msgid "no left bound"
msgstr ""
msgid "ligature was started here"
msgstr "³Ã¤Ï¤³¤³¤«¤é³«»Ï¤µ¤ì¤Þ¤·¤¿"
-#: lily-guile.cc:92
+#: lily-guile.cc:78
#, c-format
msgid "(load path: `%s')"
msgstr "(Æɹþ¥Ñ¥¹: `%s')"
-#: lily-guile.cc:518
+#: lily-guile.cc:438
#, c-format
msgid "cannot find property type-check for `%s' (%s)."
msgstr ""
-#: lily-guile.cc:521
+#: lily-guile.cc:441
msgid "perhaps a typing error?"
msgstr ""
-#: lily-guile.cc:527
+#: lily-guile.cc:448
msgid "doing assignment anyway"
msgstr ""
-#: lily-guile.cc:539
+#: lily-guile.cc:460
#, c-format
msgid "type check for `%s' failed; value `%s' must be of type `%s'"
msgstr ""
-#: lily-lexer.cc:254
+#: lily-lexer.cc:251
+msgid "include files are not allowed in safe mode"
+msgstr ""
+
+#: lily-lexer.cc:270
#, fuzzy, c-format
msgid "identifier name is a keyword: `%s'"
msgstr "¼±ÊÌ»Ò̾¤Ï¥¡¼¥ï¡¼¥É¤Ç¤¹: `%s'"
-#: lily-lexer.cc:269
+#: lily-lexer.cc:285
#, c-format
msgid "error at EOF: %s"
msgstr "EOF ¤Î¤È¤³¤í¤Ç¥¨¥é¡¼: %s"
-#: lily-parser-scheme.cc:29
+#: lily-parser-scheme.cc:30
#, fuzzy, c-format
msgid "deprecated function called: %s"
msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿Ê¸»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: lily-parser-scheme.cc:88
-#, fuzzy, c-format
+#: lily-parser-scheme.cc:89
+#, c-format
msgid "Changing working directory to: `%s'"
-msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
+msgstr ""
-#: lily-parser-scheme.cc:106
+#: lily-parser-scheme.cc:107
#, fuzzy, c-format
msgid "cannot find init file: `%s'"
msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: lily-parser-scheme.cc:125
+#: lily-parser-scheme.cc:126
#, fuzzy, c-format
msgid "Processing `%s'"
msgstr "½èÍýÃæ..."
msgid "braces do not match"
msgstr "¥Ö¥ì¡¼¥¹¤¬°ìÃפ·¤Þ¤»¤ó"
-#: lyric-combine-music-iterator.cc:291
+#: lyric-combine-music-iterator.cc:327
#, fuzzy, c-format
msgid "cannot find Voice `%s'"
msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: main.cc:116
+#: lyric-engraver.cc:158
+msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice."
+msgstr ""
+
+#: main.cc:100
#, fuzzy, c-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"¤³¤ì¤ò²þÊѤ·¤¿¤ê¡¢Ê£À½¤òÇÛÉÛ¤·¤¿¤ê¤¹¤ë»ö¤Ï´¿·Þ¤µ¤ì¤Þ¤¹¡£\n"
"`--warranty' ¥ª¥×¥·¥ç¥óÉÕ¤¤Çµ¯Æ°¤¹¤ë¤È¡¢¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤¬ÆÀ¤é¤ì¤Þ¤¹¡£\n"
-#: main.cc:122
+#: main.cc:106
#, fuzzy
msgid ""
" This program is free software; you can redistribute it and/or\n"
"USA.\n"
"\n"
"-- »²¹ÍÌõ\n"
-" ¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹¡£¤¢¤Ê¤¿¤Ï Free Software "
-"Foundation\n"
-"¤¬¸øɽ¤·¤¿ GNU °ìÈ̸øÍ»ÈÍѵöÂú¤Î¥Ð¡¼¥¸¥ç¥ó 2 ¤Î¾ò¹à¤Ë´ð¤Å¤¤¤Æ¡¢¤³¤Î¥×¥í¥°"
-"¥é\n"
+" ¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹¡£¤¢¤Ê¤¿¤Ï Free Software Foundation\n"
+"¤¬¸øɽ¤·¤¿ GNU °ìÈ̸øÍ»ÈÍѵöÂú¤Î¥Ð¡¼¥¸¥ç¥ó 2 ¤Î¾ò¹à¤Ë´ð¤Å¤¤¤Æ¡¢¤³¤Î¥×¥í¥°¥é\n"
"¥à¤òºÆÈÒÉÛ¤Þ¤¿¤ÏÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£\n"
"\n"
-"¤³¤Î¥×¥í¥°¥é¥à¤ÏÍÍѤȤϻפ¤¤Þ¤¹¤¬¡¢ÈÒÉÛ¤ËÅö¤¿¤Ã¤Æ¤Ï¡¢»Ô¾ìÀµÚ¤ÓÆÃÄêÌÜŪŬ"
-"¹ç\n"
-"À¤Ë¤Ä¤¤¤Æ¤Î°ÅÌÛ¤ÎÊݾڤâ´Þ¤á¤Æ¡¢¤¤¤«¤Ê¤ëÊݾڤâ¹Ô¤Ê¤¤¤Þ¤»¤ó¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ"
-"¤Ï¡¢\n"
+"¤³¤Î¥×¥í¥°¥é¥à¤ÏÍÍѤȤϻפ¤¤Þ¤¹¤¬¡¢ÈÒÉÛ¤ËÅö¤¿¤Ã¤Æ¤Ï¡¢»Ô¾ìÀµÚ¤ÓÆÃÄêÌÜŪŬ¹ç\n"
+"À¤Ë¤Ä¤¤¤Æ¤Î°ÅÌÛ¤ÎÊݾڤâ´Þ¤á¤Æ¡¢¤¤¤«¤Ê¤ëÊݾڤâ¹Ô¤Ê¤¤¤Þ¤»¤ó¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢\n"
"GNU °ìÈ̸øÍ»ÈÍѵöÂú½ñ¤ò¤ªÆɤ߲¼¤µ¤¤¡£\n"
"\n"
"¤¢¤Ê¤¿¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à¤È°ì½ï¤Ë GNU °ìÈ̸øÍ»ÈÍѵöÂú½ñ¤ò¼õ¤±¼è¤Ã¤Æ¤¤¤ë¤Ï¤º\n"
"¤Ç¤¹(COPYING ¥Õ¥¡¥¤¥ë¤ò»²¾È)¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï¡¢Free Software Foundation,\n"
"Inc., 675 Mass Ave, Cambridge, MA 02139, USA ¤Ë¼ê»æ¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£\n"
-#: main.cc:153
-msgid "BACK"
-msgstr ""
-
-#: main.cc:153
-msgid ""
-"use backend BACK (eps, gnome, ps [default],\n"
-"scm, svg, tex, texstr)"
-msgstr ""
-
-#: main.cc:155
+#: main.cc:137
msgid "SYM[=VAL]"
msgstr ""
-#: main.cc:156
+#: main.cc:138
msgid ""
-"set Scheme option SYM to VAL (default: #t)\n"
+"set Scheme option SYM to VAL (default: #t).\n"
"Use -dhelp for help."
msgstr ""
-#: main.cc:159
+#: main.cc:141
msgid "EXPR"
msgstr ""
-#: main.cc:159
+#: main.cc:141
#, fuzzy
msgid "evaluate scheme code"
msgstr "°ÂÁ´¥â¡¼¥É¤Ç¤Ï Scheme ¤Îɾ²Á¤ò¤Ç¤¤Þ¤»¤ó"
#. Bug in option parser: --output =foe is taken as an abbreviation
#. for --output-format.
-#: main.cc:162
+#: main.cc:144
msgid "FORMATs"
msgstr ""
-#: main.cc:162
+#: main.cc:144
msgid "dump FORMAT,... Also as separate options:"
msgstr ""
-#: main.cc:163
-#, fuzzy
+#: main.cc:145
msgid "generate DVI (tex backend only)"
-msgstr "À©¸Â¤ò´ËÏÂ"
+msgstr ""
-#: main.cc:164
-#, fuzzy
+#: main.cc:146
msgid "generate PDF (default)"
-msgstr "À©¸Â¤ò´ËÏÂ"
+msgstr ""
-#: main.cc:165
-#, fuzzy
+#: main.cc:147
msgid "generate PNG"
-msgstr "À©¸Â¤ò´ËÏÂ"
+msgstr ""
-#: main.cc:166
+#: main.cc:148
#, fuzzy
msgid "generate PostScript"
msgstr "À©¸Â¤ò´ËÏÂ"
-#: main.cc:167
+#: main.cc:149
msgid "generate TeX (tex backend only)"
msgstr ""
-#: main.cc:168
-msgid "show this help and exit"
-msgstr ""
-
-#: main.cc:169
+#: main.cc:151
#, fuzzy
msgid "FIELD"
msgstr "FILE"
-#: main.cc:169
+#: main.cc:151
msgid ""
"dump header field FIELD to file\n"
"named BASENAME.FIELD"
msgstr ""
-#: main.cc:171
+#: main.cc:153
msgid "add DIR to search path"
msgstr "DIR ¤ò¸¡º÷¥Ñ¥¹¤ËÄɲÃ"
-#: main.cc:172
+#: main.cc:154
msgid "use FILE as init file"
msgstr "FILE ¤ò½é´ü²½¥Õ¥¡¥¤¥ë¤È¤·¤Æ»ÈÍÑ"
-#: main.cc:174
-msgid "USER,GROUP,JAIL,DIR"
+#: main.cc:156
+msgid "USER, GROUP, JAIL, DIR"
msgstr ""
-#: main.cc:174
+#: main.cc:156
msgid ""
"chroot to JAIL, become USER:GROUP\n"
"and cd into DIR"
msgstr ""
-#: main.cc:177
-#, fuzzy
-msgid "do not generate printed output"
-msgstr "À©¸Â¤ò´ËÏÂ"
-
-#: main.cc:178
-#, fuzzy
+#: main.cc:159
msgid "write output to FILE (suffix will be added)"
-msgstr "BASENAME[-x].³ÈÄ¥»Ò ¤Ø½ÐÎϤò½ñ¤¹þ¤à"
-
-#: main.cc:179
-msgid "generate a preview of the first system"
msgstr ""
-#: main.cc:180
+#: main.cc:160
msgid "relocate using directory of lilypond program"
msgstr ""
-#: main.cc:181
-msgid ""
-"disallow unsafe Scheme and PostScript\n"
-"operations"
-msgstr ""
-
-#: main.cc:183
-#, fuzzy
-msgid "show version number and exit"
-msgstr "¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨"
-
-#: main.cc:224
+#: main.cc:203
#, fuzzy, c-format
msgid ""
"Copyright (c) %s by\n"
msgstr "Copyright (c) %s by"
#. No version number or newline here. It confuses help2man.
-#: main.cc:251
+#: main.cc:230
#, fuzzy, c-format
msgid "Usage: %s [OPTION]... FILE..."
msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]..."
-#: main.cc:253
+#: main.cc:232
#, fuzzy, c-format
msgid "Typeset music and/or produce MIDI from FILE."
-msgstr "¥Õ¥¡¥¤¥ë¤Î³Ú¶Ê¤òÁÈÈǤ·¤¿¤ê¡¢MIDI ±éÁÕ¤·¤¿¤ê¤¹¤ë."
+msgstr "¥Õ¥¡¥¤¥ë¤Î³Ú¶Ê¤òÁÈÈǤ·¤¿¤ê¡¢MIDI ±éÁÕ¤·¤¿¤ê¤¹¤ë"
-#: main.cc:255
+#: main.cc:234
#, c-format
msgid "LilyPond produces beautiful music notation."
msgstr ""
-#: main.cc:257
+#: main.cc:236
#, c-format
msgid "For more information, see %s"
msgstr ""
-#: main.cc:259
+#: main.cc:238
#, c-format
msgid "Options:"
msgstr "¥ª¥×¥·¥ç¥ó:"
-#: main.cc:263
+#: main.cc:242
#, fuzzy, c-format
msgid "Report bugs via %s"
-msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø."
+msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø"
-#: main.cc:309
+#: main.cc:288
#, c-format
msgid "expected %d arguments with jail, found: %u"
msgstr ""
-#: main.cc:323
+#: main.cc:302
#, fuzzy, c-format
msgid "no such user: %s"
msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
-#: main.cc:325
+#: main.cc:304
#, c-format
msgid "cannot get user id from user name: %s: %s"
msgstr ""
-#: main.cc:340
+#: main.cc:319
#, fuzzy, c-format
msgid "no such group: %s"
msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
-#: main.cc:342
-#, fuzzy, c-format
+#: main.cc:321
+#, c-format
msgid "cannot get group id from group name: %s: %s"
-msgstr "`%s' ¤«¤é `%s' ¤ËÊѹ¹¤Ç¤¤Þ¤»¤ó"
+msgstr ""
-#: main.cc:350
-#, fuzzy, c-format
+#: main.cc:329
+#, c-format
msgid "cannot chroot to: %s: %s"
-msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
+msgstr ""
-#: main.cc:357
+#: main.cc:336
#, fuzzy, c-format
msgid "cannot change group id to: %d: %s"
msgstr "`%s' ¤«¤é `%s' ¤ËÊѹ¹¤Ç¤¤Þ¤»¤ó"
-#: main.cc:363
+#: main.cc:342
#, fuzzy, c-format
msgid "cannot change user id to: %d: %s"
msgstr "`%s' ¤«¤é `%s' ¤ËÊѹ¹¤Ç¤¤Þ¤»¤ó"
-#: main.cc:369
-#, fuzzy, c-format
-msgid "cannot change working directory to: %s: %s"
-msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
-
-#: main.cc:415
+#: main.cc:348
#, c-format
-msgid "Evaluating %s"
+msgid "cannot change working directory to: %s: %s"
msgstr ""
-#: main.cc:645
+#: main.cc:594
#, c-format
msgid "exception caught: %s"
msgstr ""
#. FIXME: constant error message.
-#: mark-engraver.cc:154
+#: mark-engraver.cc:129
msgid "rehearsalMark must have integer value"
msgstr ""
-#: mark-engraver.cc:160
+#: mark-engraver.cc:135
msgid "mark label must be a markup object"
msgstr ""
msgid "Mensural_ligature: (join_right == 0)"
msgstr ""
-#: midi-item.cc:152
+#: midi-item.cc:81
#, fuzzy, c-format
msgid "no such MIDI instrument: `%s'"
msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
-#: midi-item.cc:285
-#, c-format
-msgid "experimental: temporarily fine tuning (of %d cents) a channel."
-msgstr ""
-
#: midi-stream.cc:28
#, fuzzy, c-format
msgid "cannot open for write: %s: %s"
msgid "cannot write to file: `%s'"
msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
+#: minimal-page-breaking.cc:42
+msgid "Computing page breaks..."
+msgstr ""
+
#: music-iterator.cc:171
msgid "Sending non-event to context"
msgstr ""
-#: music.cc:141
+#: music.cc:140
#, c-format
msgid "octave check failed; expected \"%s\", found: \"%s\""
msgstr ""
-#: music.cc:207
+#: music.cc:203
#, fuzzy, c-format
msgid "transposition by %s makes alteration larger than double"
msgstr "%s ¤ÎÊÑÄ´¤Ë¤è¤Ã¤Æ¡¢Æó¤Ä¤òĶ¤¨¤ëÇÉÀ¸²»¤¬ºî¤é¤ì¤Þ¤·¤¿"
msgid "placing below"
msgstr ""
-#: note-collision.cc:457
+#: note-collision.cc:463
#, fuzzy
msgid "ignoring too many clashing note columns"
msgstr "Äà¤ê¹ç¤ï¤Ê¤¤²»É䤬¿¤¹¤®¤Þ¤¹¡£¤½¤ì¤é¤ò̵»ë¤·¤Þ¤¹¡£"
msgid "none of note heads `%s' or `%s' found"
msgstr ""
-#: note-heads-engraver.cc:61
+#: note-heads-engraver.cc:64
msgid "NoteEvent without pitch"
msgstr ""
#: open-type-font.cc:33
-#, fuzzy, c-format
+#, c-format
msgid "cannot allocate %lu bytes"
-msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
+msgstr ""
#: open-type-font.cc:37
#, fuzzy, c-format
msgid "cannot load font table: %s"
msgstr "¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: open-type-font.cc:98
+#: open-type-font.cc:42
#, c-format
-msgid "unsupported font format: %s"
+msgid "Free type error: %s"
msgstr ""
#: open-type-font.cc:100
#, c-format
-msgid "unknown error: %d reading font file: %s"
+msgid "unsupported font format: %s"
msgstr ""
-#: open-type-font.cc:173 open-type-font.cc:297
+#: open-type-font.cc:102
#, c-format
-msgid "FT_Get_Glyph_Name() returned error: %u"
+msgid "error reading font file %s: %s"
msgstr ""
-#: page-turn-page-breaking.cc:205
-msgid ""
-"cannot fit the first page turn onto a single page. Consider setting first-"
-"page-number to an even number."
+#: open-type-font.cc:177
+#, c-format
+msgid "FT_Get_Glyph_Name () Freetype error: %s"
msgstr ""
-#: page-turn-page-breaking.cc:218
+#: open-type-font.cc:302 pango-font.cc:167
#, c-format
-msgid "Calculating page and line breaks (%d possible page breaks)..."
+msgid "FT_Get_Glyph_Name () error: %s"
+msgstr ""
+
+#. find out the ideal number of pages
+#: optimal-page-breaking.cc:56
+msgid "Finding the ideal number of pages..."
+msgstr ""
+
+#: optimal-page-breaking.cc:71
+msgid "Fitting music on 1 page..."
+msgstr ""
+
+#: optimal-page-breaking.cc:73
+#, c-format
+msgid "Fitting music on %d pages..."
+msgstr ""
+
+#: optimal-page-breaking.cc:75
+#, c-format
+msgid "Fitting music on %d or %d pages..."
msgstr ""
-#: page-turn-page-breaking.cc:236 paper-score.cc:154
+#: optimal-page-breaking.cc:152 page-turn-page-breaking.cc:226
+#: paper-score.cc:146
#, fuzzy
msgid "Drawing systems..."
msgstr "²»À¼¤òºîÀ®Ãæ..."
-#: pango-font.cc:181
+#: page-turn-page-breaking.cc:146
#, c-format
-msgid ""
-"Glyph has no name, but font supports glyph naming.\n"
-"Skipping glyph U+%0X, file %s"
+msgid "page-turn-page-breaking: breaking from %d to %d"
msgstr ""
-#: pango-font.cc:224
-#, fuzzy, c-format
-msgid "no PostScript font name for font `%s'"
-msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
+#: page-turn-page-breaking.cc:195
+msgid "cannot fit the first page turn onto a single page. Consider setting first-page-number to an even number."
+msgstr ""
-#: pango-font.cc:272
-msgid "FreeType face has no PostScript font name"
+#: page-turn-page-breaking.cc:208
+#, c-format
+msgid "Calculating page and line breaks (%d possible page breaks)..."
msgstr ""
-#: paper-outputter-scheme.cc:33
-#, fuzzy, c-format
-msgid "Layout output to `%s'..."
-msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
+#: page-turn-page-breaking.cc:275
+#, c-format
+msgid "break starting at page %d"
+msgstr ""
+
+#: page-turn-page-breaking.cc:276
+#, c-format
+msgid "\tdemerits: %f"
+msgstr ""
+
+#: page-turn-page-breaking.cc:277
+#, fuzzy, c-format
+msgid "\tsystem count: %d"
+msgstr "Í×ÁÇ¿ô %d."
+
+#: page-turn-page-breaking.cc:278
+#, fuzzy, c-format
+msgid "\tpage count: %d"
+msgstr "Í×ÁÇ¿ô %d."
+
+#: page-turn-page-breaking.cc:279
+#, c-format
+msgid "\tprevious break: %d"
+msgstr ""
+
+#: pango-font.cc:184
+#, c-format
+msgid ""
+"Glyph has no name, but font supports glyph naming.\n"
+"Skipping glyph U+%0X, file %s"
+msgstr ""
+
+#: pango-font.cc:229
+#, c-format
+msgid "no PostScript font name for font `%s'"
+msgstr ""
+
+#: pango-font.cc:277
+msgid "FreeType face has no PostScript font name"
+msgstr ""
+
+#: paper-column-engraver.cc:221
+msgid "forced break was overridden by some other event, should you be using bar checks?"
+msgstr ""
+
+#: paper-outputter-scheme.cc:30
+#, fuzzy, c-format
+msgid "Layout output to `%s'..."
+msgstr "Lily ¤Ï %s ¤Ë½ÐÎϤ·¤Þ¤¹..."
#: paper-score.cc:105
#, fuzzy
msgstr "¥«¥é¥à°ÌÃÖ¤ò·×»»Ãæ..."
#: paper-score.cc:118
-#, c-format
+#, fuzzy, c-format
msgid "Element count %d (spanners %d) "
-msgstr ""
+msgstr "Í×ÁÇ¿ô %d "
#: paper-score.cc:122
#, fuzzy
msgid "Preprocessing graphical objects..."
msgstr "Í×ÁǤòÁ°½èÍýÃæ..."
-#: parse-scm.cc:83
+#: parse-scm.cc:87
msgid "GUILE signaled an error for the expression beginning here"
msgstr ""
#: percent-repeat-engraver.cc:200
#, fuzzy
msgid "unterminated percent repeat"
-msgstr "½ªÃ¼¤Î¤Ê¤¤¥Ï¥¤¥Õ¥ó"
+msgstr "½ªÃ¼¤Î¤Ê¤¤¥¨¥¯¥¹¥Æ¥ó¥À"
-#: performance.cc:45
+#: performance.cc:43
#, fuzzy
msgid "Track..."
msgstr "¥È¥é¥Ã¥¯ ..."
-#: performance.cc:74
+#: performance.cc:72
msgid "MIDI channel wrapped around"
msgstr ""
-#: performance.cc:75
+#: performance.cc:73
msgid "remapping modulo 16"
msgstr ""
-#: performance.cc:103
-#, c-format
+#: performance.cc:101
+#, fuzzy, c-format
msgid "MIDI output to `%s'..."
msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
-#: phrasing-slur-engraver.cc:146
+#: phrasing-slur-engraver.cc:139
#, fuzzy
msgid "unterminated phrasing slur"
msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥é¡¼"
#: piano-pedal-engraver.cc:286
-#, c-format
+#, fuzzy, c-format
msgid "expect 3 strings for piano pedals, found: %ld"
-msgstr ""
+msgstr "¥Ô¥¢¥Î¥Ú¥À¥ë¤Î»ÏÅÀ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
#: piano-pedal-engraver.cc:301 piano-pedal-engraver.cc:312
#: piano-pedal-performer.cc:93
#, fuzzy, c-format
msgid "cannot find start of piano pedal: `%s'"
-msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿Ê¸»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
+msgstr "¥Ô¥¢¥Î¥Ú¥À¥ë¤Î»ÏÅÀ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
#: piano-pedal-engraver.cc:347
#, fuzzy, c-format
msgid "cannot find start of piano pedal bracket: `%s'"
-msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿Ê¸»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
+msgstr "¥Ô¥¢¥Î¥Ú¥À¥ë¤Î»ÏÅÀ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: program-option.cc:205
+#: program-option-scheme.cc:215
#, fuzzy, c-format
msgid "no such internal option: %s"
msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
#: relocate.cc:44
#, fuzzy, c-format
msgid "Setting %s to %s"
-msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
+msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø"
-#: relocate.cc:59
-#, fuzzy, c-format
+#: relocate.cc:64
+#, c-format
msgid "no such file: %s for %s"
-msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
+msgstr ""
-#: relocate.cc:69 relocate.cc:87
+#: relocate.cc:74 relocate.cc:92
#, fuzzy, c-format
msgid "no such directory: %s for %s"
msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
-#: relocate.cc:79
+#: relocate.cc:84
#, c-format
msgid "%s=%s (prepend)\n"
msgstr ""
-#: relocate.cc:99
+#: relocate.cc:114
#, c-format
-msgid "Relocation: compile prefix=%s, new prefix=%s"
+msgid "not relocating, no %s/ or current/ found under %s"
msgstr ""
-#: relocate.cc:129
+#: relocate.cc:125
+#, c-format
+msgid "Relocation: compile datadir=%s, new datadir=%s"
+msgstr ""
+
+#: relocate.cc:138
#, c-format
msgid "Relocation: framework_prefix=%s"
msgstr ""
-#: relocate.cc:169
+#: relocate.cc:179
#, c-format
msgid "Relocation: is absolute: argv0=%s"
msgstr ""
-#: relocate.cc:176
+#: relocate.cc:186
#, c-format
msgid "Relocation: from cwd: argv0=%s"
msgstr ""
-#: relocate.cc:185
+#: relocate.cc:195
#, c-format
msgid ""
"Relocation: from PATH=%s\n"
"argv0=%s"
msgstr ""
-#: relocate.cc:354
+#: relocate.cc:229
+msgid "LILYPONDPREFIX is obsolete, use LILYPOND_DATADIR"
+msgstr ""
+
+#: relocate.cc:356
#, fuzzy, c-format
msgid "Relocation file: %s"
msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
-#: relocate.cc:390
+#: relocate.cc:392
#, c-format
msgid "Unknown relocation command %s"
msgstr ""
-#: rest-collision.cc:151
+#: rest-collision.cc:145
msgid "cannot resolve rest collision: rest direction not set"
msgstr ""
-#: rest-collision.cc:165 rest-collision.cc:210
+#: rest-collision.cc:159 rest-collision.cc:204
msgid "too many colliding rests"
msgstr "µÙÉä¤Î¾×Æͤ¬Â¿¤¹¤®¤Þ¤¹"
-#: rest.cc:144
+#: rest.cc:132
#, c-format
msgid "rest `%s' not found"
msgstr ""
msgid "Aborting"
msgstr "½ªÎ»¤·¤Þ¤¹"
-#: score.cc:225
+#: score.cc:167
#, fuzzy
msgid "already have music in score"
msgstr "³ÚÉè¤Ë¤Ï³Ú¶Ê¤¬É¬ÍפǤ¹"
-#: score.cc:226
+#: score.cc:168
msgid "this is the previous music"
msgstr ""
-#: score.cc:231
+#: score.cc:173
#, fuzzy
msgid "errors found, ignoring music expression"
msgstr "¥¨¥é¡¼¤òȯ¸«/*, ³ÚÉè¤ò½èÍý¤·¤Þ¤»¤ó*/"
msgstr "²»Àá `%s' ¤Î²ò¼áÊýË¡¤¬È½¤ê¤Þ¤»¤ó"
#: script-engraver.cc:103
-#, fuzzy
msgid "scheme encoding: "
-msgstr "¥ª¥×¥·¥ç¥ó:"
-
-#: simple-spacer.cc:375
-#, c-format
-msgid "No spring between column %d and next one"
msgstr ""
-#: slur-engraver.cc:83 tuplet-engraver.cc:75
+#: slur-engraver.cc:82
#, c-format
msgid "direction of %s invalid: %d"
msgstr ""
-#: slur-engraver.cc:157
+#: slur-engraver.cc:151
msgid "unterminated slur"
msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥é¡¼"
-#: slur-engraver.cc:166
+#: slur-engraver.cc:163
#, fuzzy
msgid "cannot end slur"
-msgstr "¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
+msgstr "½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤¥¹¥é¡¼"
+
+#: slur.cc:353
+#, c-format
+msgid "Ignoring grob for slur: %s. avoid-slur not set?"
+msgstr ""
#: source-file.cc:74
#, c-format
msgid "expected to read %d characters, got %d"
msgstr ""
+#: spaceable-grob.cc:83
+#, c-format
+msgid "No spring between column %d and next one"
+msgstr ""
+
#: staff-symbol-engraver.cc:62
msgid "staff-span event has no direction"
msgstr ""
msgid "weird stem size, check for narrow beams"
msgstr "ÊѤÊÉäÈø¤Î¥µ¥¤¥º -- ºÙ¤¤³Ã¤Î¥Á¥§¥Ã¥¯¤ò¤·¤Æ²¼¤µ¤¤"
-#: stem.cc:641
+#: stem.cc:627
#, c-format
msgid "flag `%s' not found"
msgstr ""
-#: stem.cc:652
+#: stem.cc:638
#, c-format
msgid "flag stroke `%s' not found"
msgstr ""
-#: system.cc:180
+#: system.cc:179
#, c-format
msgid "Element count %d."
-msgstr ""
+msgstr "Í×ÁÇ¿ô %d."
-#: system.cc:276
-#, c-format
+#: system.cc:271
+#, fuzzy, c-format
msgid "Grob count %d"
-msgstr ""
+msgstr "Í×ÁÇ¿ô %d."
-#: text-spanner-engraver.cc:61
+#: text-spanner-engraver.cc:60
#, fuzzy
msgid "cannot find start of text spanner"
-msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+msgstr "³Ã¤Î»ÏÅÀ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: text-spanner-engraver.cc:73
+#: text-spanner-engraver.cc:72
#, fuzzy
msgid "already have a text spanner"
msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
-#: text-spanner-engraver.cc:133
+#: text-spanner-engraver.cc:118
#, fuzzy
msgid "unterminated text spanner"
msgstr "½ªÃ¼¤Î¤Ê¤¤¥¨¥¯¥¹¥Æ¥ó¥À"
-#: tie-engraver.cc:264
+#: tie-engraver.cc:262
msgid "lonely tie"
msgstr "°ì¤Ä¤À¤±¤Î¥¿¥¤"
msgid "time signature symbol `%s' not found; reverting to numbered style"
msgstr ""
-#: translator-ctors.cc:52
+#: translator-ctors.cc:53
#, c-format
msgid "unknown translator: `%s'"
msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
-#: translator-group.cc:151
+#: translator-group-ctors.cc:29
+#, c-format
+msgid "fatal error. Couldn't find type: %s"
+msgstr ""
+
+#: translator-group.cc:146
#, fuzzy, c-format
msgid "cannot find: `%s'"
msgstr "¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: translator.cc:332
+#: translator.cc:347
#, c-format
msgid "Two simultaneous %s events, junking this one"
msgstr ""
-#: translator.cc:333
+#: translator.cc:348
#, c-format
msgid "Previous %s event here"
msgstr ""
-#: trill-spanner-engraver.cc:68
+#: trill-spanner-engraver.cc:84
#, fuzzy
msgid "cannot find start of trill spanner"
-msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+msgstr "³Ã¤Î»ÏÅÀ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: trill-spanner-engraver.cc:80
+#: trill-spanner-engraver.cc:96
#, fuzzy
msgid "already have a trill spanner"
-msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
+msgstr "¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬´û¤Ë¤¢¤ê¤Þ¤¹"
+
+#: tuplet-engraver.cc:96
+#, fuzzy
+msgid "No tuplet to end"
+msgstr "ËöÈø¤Ø¤Î³Ã¤¬¤¢¤ê¤Þ¤»¤ó"
-#: vaticana-ligature-engraver.cc:388
+#: vaticana-ligature-engraver.cc:389
#, c-format
-msgid ""
-"ignored prefix (es) `%s' of this head according to restrictions of the "
-"selected ligature style"
+msgid "ignored prefix (es) `%s' of this head according to restrictions of the selected ligature style"
msgstr ""
-#: vaticana-ligature-engraver.cc:714
+#: vaticana-ligature-engraver.cc:718
#, c-format
msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr =%ul"
msgstr ""
msgstr ""
#. fixme: be more verbose.
-#: volta-engraver.cc:144
-#, fuzzy
+#: volta-engraver.cc:100
msgid "cannot end volta spanner"
-msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+msgstr ""
-#: volta-engraver.cc:154
+#: volta-engraver.cc:110
msgid "already have a volta spanner, ending that one prematurely"
msgstr ""
-#: volta-engraver.cc:158
+#: volta-engraver.cc:114
#, fuzzy
msgid "also already have an ended spanner"
msgstr "´û¤Ë³Ã¤¬¤¢¤ê¤Þ¤¹"
-#: volta-engraver.cc:159
+#: volta-engraver.cc:115
#, fuzzy
msgid "giving up"
msgstr "Äü¤á¤Þ¤·¤¿"
-#: parser.yy:702
+#: parser.yy:728
msgid "\\paper cannot be used in \\score, use \\layout instead"
msgstr ""
-#: parser.yy:726
+#: parser.yy:752
msgid "need \\paper for paper block"
msgstr ""
-#: parser.yy:1172
+#: parser.yy:1211
msgid "Grob name should be alphanumeric"
msgstr ""
-#: parser.yy:1475
+#: parser.yy:1509
+#, fuzzy
msgid "second argument must be pitch list"
-msgstr ""
+msgstr "ÂèÆó°ú¿ô¤Ï¥·¥ó¥Ü¥ë¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#: parser.yy:1502 parser.yy:1507 parser.yy:1972
+#: parser.yy:1536 parser.yy:1541 parser.yy:2006
#, fuzzy
msgid "have to be in Lyric mode for lyrics"
msgstr "²Î»ì¤Ï Lyric ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
-#: parser.yy:1604
+#: parser.yy:1638
msgid "expecting string as script definition"
msgstr ""
-#: parser.yy:1759 parser.yy:1809
+#: parser.yy:1793 parser.yy:1843
#, c-format
msgid "not a duration: %d"
msgstr "²»Ä¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %d"
-#: parser.yy:1926
+#: parser.yy:1960
#, fuzzy
msgid "have to be in Note mode for notes"
msgstr "²»Éä¤Ï Note ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
-#: parser.yy:1987
+#: parser.yy:2021
#, fuzzy
msgid "have to be in Chord mode for chords"
msgstr "¥³¡¼¥É¤Ï Chord ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
-#: lexer.ll:176
+#: lexer.ll:179
msgid "stray UTF-8 BOM encountered"
msgstr ""
-#: lexer.ll:180
+#: lexer.ll:183
msgid "Skipping UTF-8 BOM"
msgstr ""
-#: lexer.ll:235
-#, fuzzy, c-format
+#: lexer.ll:238
+#, c-format
msgid "Renaming input to: `%s'"
-msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+msgstr ""
-#: lexer.ll:252
+#: lexer.ll:255
msgid "quoted string expected after \\version"
msgstr ""
-#: lexer.ll:256
+#: lexer.ll:259
msgid "quoted string expected after \\sourcefilename"
msgstr ""
-#: lexer.ll:260
+#: lexer.ll:263
msgid "integer expected after \\sourcefileline"
msgstr ""
-#: lexer.ll:273
+#: lexer.ll:276
msgid "EOF found inside a comment"
msgstr "¥³¥á¥ó¥ÈÆâ¤Ë EOF ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
-#: lexer.ll:288
+#: lexer.ll:291
#, fuzzy
msgid "\\maininput not allowed outside init files"
msgstr "½é´ü²½¥Õ¥¡¥¤¥ë¤Î³°¤Ç¤Ï \\maininput ¤òµ½Ò¤Ç¤¤Þ¤»¤ó"
-#: lexer.ll:312
+#: lexer.ll:315
#, fuzzy, c-format
msgid "wrong or undefined identifier: `%s'"
msgstr "̤ÄêµÁ¤Î¼±ÊÌ»Ò: `%s'"
#. backup rule
-#: lexer.ll:321
+#: lexer.ll:324
msgid "end quote missing"
msgstr ""
-#: lexer.ll:466
+#: lexer.ll:469
msgid "Brace found at end of lyric. Did you forget a space?"
msgstr ""
-#: lexer.ll:559
+#: lexer.ll:582
msgid "Brace found at end of markup. Did you forget a space?"
msgstr ""
-#: lexer.ll:659
+#: lexer.ll:686
#, c-format
msgid "invalid character: `%c'"
msgstr "̵¸ú¤Êʸ»ú: `%c'"
-#: lexer.ll:774 lexer.ll:775
+#: lexer.ll:801 lexer.ll:802
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×ʸ»úÎó: `\\%s'"
-#: lexer.ll:880 lexer.ll:881
+#: lexer.ll:907 lexer.ll:908
#, c-format
msgid "file too old: %s (oldest supported: %s)"
msgstr ""
-#: lexer.ll:881 lexer.ll:882
+#: lexer.ll:908 lexer.ll:909
msgid "consider updating the input with the convert-ly script"
msgstr ""
-#: lexer.ll:887 lexer.ll:888
+#: lexer.ll:914 lexer.ll:915
#, c-format
msgid "program too old: %s (file requires: %s)"
msgstr ""
-#: backend-library.scm:19 lily.scm:599 ps-to-png.scm:82
-#, fuzzy, scheme-format
+#: backend-library.scm:19 lily.scm:767 ps-to-png.scm:58
+#, scheme-format
msgid "Invoking `~a'..."
-msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+msgstr ""
-#: backend-library.scm:24
+#: backend-library.scm:28
#, scheme-format
msgid "`~a' failed (~a)"
msgstr ""
-#: backend-library.scm:95 framework-tex.scm:343 framework-tex.scm:368
-#, fuzzy, scheme-format
+#: backend-library.scm:117 framework-tex.scm:344 framework-tex.scm:369
+#, scheme-format
msgid "Converting to `~a'..."
-msgstr "¹Ô ..."
+msgstr ""
-#: backend-library.scm:108
-#, fuzzy, scheme-format
+#: backend-library.scm:130
+#, scheme-format
msgid "Converting to ~a..."
-msgstr "¹Ô ..."
+msgstr ""
-#: backend-library.scm:145
+#: backend-library.scm:168
#, fuzzy, scheme-format
msgid "Writing header field `~a' to `~a'..."
msgstr "°Í¸´Ø·¸¥Õ¥¡¥¤¥ë¤Î½ñ¤¹þ¤ß: `%s'..."
msgid "translator listens to nonexisting event class ~A"
msgstr ""
-#: define-markup-commands.scm:255
+#: define-markup-commands.scm:296
msgid "no systems found in \\score markup, does it have a \\layout block?"
msgstr ""
-#: define-markup-commands.scm:1297
+#: define-markup-commands.scm:1310
#, fuzzy, scheme-format
msgid "not a valid duration string: ~a"
msgstr "²»Ä¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %d"
-#: define-music-types.scm:751
+#: define-music-types.scm:670
#, scheme-format
msgid "symbol expected: ~S"
msgstr ""
-#: define-music-types.scm:754
-#, fuzzy, scheme-format
+#: define-music-types.scm:673
+#, scheme-format
msgid "cannot find music object: ~S"
-msgstr "`%s' ¥³¥ó¥Æ¥¥¹¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+msgstr ""
-#: define-music-types.scm:774
+#: define-music-types.scm:692
#, fuzzy, scheme-format
msgid "unknown repeat type `~S'"
msgstr "ÉÔÌÀ¤Ê²»Éôµ¹æ(Clef)"
-#: define-music-types.scm:775
+#: define-music-types.scm:693
msgid "See music-types.scm for supported repeats"
msgstr ""
msgstr ""
#: document-backend.scm:135
-#, fuzzy, scheme-format
+#, scheme-format
msgid "cannot find interface for property: ~S"
-msgstr "ʸ»úÈֹ椬¸«¤Ä¤«¤ê¤Þ¤»¤ó: %d"
+msgstr ""
#: document-backend.scm:145
-#, fuzzy, scheme-format
+#, scheme-format
msgid "unknown Grob interface: ~S"
-msgstr "ÉÔÌÀ¤Ê²»Éôµ¹æ(Clef)"
+msgstr ""
#: documentation-lib.scm:45
#, fuzzy, scheme-format
msgid "Processing ~S..."
msgstr "½èÍýÃæ..."
-#: documentation-lib.scm:150
+#: documentation-lib.scm:154
#, fuzzy, scheme-format
msgid "Writing ~S..."
-msgstr "¹Ô ..."
+msgstr "¹½Ê¸²òÀÏÃæ..."
-#: documentation-lib.scm:172
-#, fuzzy, scheme-format
+#: documentation-lib.scm:176
+#, scheme-format
msgid "cannot find description for property ~S (~S)"
-msgstr "ʸ»úÈֹ椬¸«¤Ä¤«¤ê¤Þ¤»¤ó: %d"
+msgstr ""
-#: framework-eps.scm:91 framework-eps.scm:92
+#: framework-eps.scm:90
#, fuzzy, scheme-format
msgid "Writing ~a..."
-msgstr "¹Ô ..."
+msgstr "¹½Ê¸²òÀÏÃæ..."
-#: framework-ps.scm:279
+#: framework-ps.scm:282
#, scheme-format
msgid "cannot embed ~S=~S"
msgstr ""
-#: framework-ps.scm:332
+#: framework-ps.scm:335
#, scheme-format
msgid "cannot extract file matching ~a from ~a"
msgstr ""
-#: framework-ps.scm:349
+#: framework-ps.scm:352
#, scheme-format
msgid "do not know how to embed ~S=~S"
msgstr ""
-#: framework-ps.scm:380
-#, fuzzy, scheme-format
+#: framework-ps.scm:383
+#, scheme-format
msgid "do not know how to embed font ~s ~s ~s"
-msgstr "²»Àá `%s' ¤Î²ò¼áÊýË¡¤¬È½¤ê¤Þ¤»¤ó"
+msgstr ""
-#: framework-ps.scm:729
+#: framework-ps.scm:750
#, scheme-format
msgid "cannot convert <stdout> to ~S"
msgstr ""
-#: framework-ps.scm:748 framework-ps.scm:751
+#: framework-ps.scm:769 framework-ps.scm:772
#, scheme-format
msgid "cannot generate ~S using the postscript back-end"
msgstr ""
-#: framework-ps.scm:758
+#: framework-ps.scm:779
msgid ""
"\n"
-"The PostScript backend does not support the 'classic'\n"
-"framework. Use the EPS backend instead,\n"
+"The PostScript backend does not support the system-by-system \n"
+"output. For that, use the EPS backend instead,\n"
"\n"
-" lilypond -b eps <file>\n"
+" lilypond -dbackend=eps FILE\n"
"\n"
-"or remove the lilypond-book specific settings from the input.\n"
+"If have cut & pasted a lilypond fragment from a webpage, be sure\n"
+"to only remove anything before\n"
+"\n"
+" %% ****************************************************************\n"
+" %% Start cut-&-pastable-section\n"
+" %% ****************************************************************\n"
msgstr ""
-#: framework-tex.scm:360
-#, fuzzy, scheme-format
+#: framework-tex.scm:361
+#, scheme-format
msgid "TeX file name must not contain whitespace: `~a'"
-msgstr "´û¤Ë´Þ¤ó¤Ç¤¤¤Þ¤¹: `%s'"
+msgstr ""
+
+#: graphviz.scm:53
+#, scheme-format
+msgid "Writing graph `~a'..."
+msgstr ""
#: layout-beam.scm:29
#, scheme-format
msgid "Error in beam quanting. Expected ~S 0, found ~S."
msgstr ""
-#: layout-page-layout.scm:357
-#, fuzzy
+#: layout-page-layout.scm:124
+msgid "Can't fit systems on page -- ignoring between-system-padding"
+msgstr ""
+
+#: layout-page-layout.scm:458
msgid "Calculating page breaks..."
-msgstr "¥«¥é¥à°ÌÃÖ¤ò·×»»Ãæ..."
+msgstr ""
-#: lily-library.scm:593
+#: lily-library.scm:583
#, fuzzy, scheme-format
msgid "unknown unit: ~S"
msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
-#: lily-library.scm:626
+#: lily-library.scm:617
#, scheme-format
msgid "no \\version statement found, please add~afor future compatibility"
msgstr ""
-#: lily-library.scm:633
+#: lily-library.scm:625
msgid "old relative compatibility not used"
msgstr ""
-#: lily.scm:144
+#: lily.scm:177
#, fuzzy, scheme-format
msgid "cannot find: ~A"
msgstr "¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: lily.scm:209
+#: lily.scm:242
#, scheme-format
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
msgstr ""
-#: lily.scm:525 lily.scm:589
+#: lily.scm:634
+#, scheme-format
+msgid "job ~a terminated with signal: ~a"
+msgstr ""
+
+#: lily.scm:637
+#, scheme-format
+msgid ""
+"logfile ~a (exit ~a):\n"
+"~a"
+msgstr ""
+
+#: lily.scm:664 lily.scm:757
#, scheme-format
msgid "failed files: ~S"
msgstr ""
-#: lily.scm:579
+#: lily.scm:747
#, fuzzy, scheme-format
msgid "Redirecting output to ~a..."
msgstr "%s ¤Ø paper ½ÐÎÏ..."
msgid "Music head function must return Music object"
msgstr ""
-#: ly-syntax-constructors.scm:136
+#: ly-syntax-constructors.scm:139
#, scheme-format
msgid "Invalid property operation ~a"
msgstr ""
-#: markup.scm:123
+#: markup.scm:124
#, scheme-format
msgid "Wrong number of arguments. Expect: ~A, found ~A: ~S"
msgstr ""
-#: markup.scm:129
+#: markup.scm:130
#, scheme-format
msgid "Invalid argument in position ~A. Expect: ~A, found: ~S."
msgstr ""
-#: music-functions.scm:213
+#: music-functions.scm:228
#, fuzzy
msgid "More alternatives than repeats. Junking excess alternatives"
msgstr "·«¤êÊÖ¤·¤è¤ê¤âÁªÂò»è¤¬Â¿¤¤¡£Ä¶²áʬ¤ò¼Î¤Æ¤Þ¤¹¡£"
-#: music-functions.scm:232
+#: music-functions.scm:240
+#, scheme-format
+msgid "invalid tremolo repeat count: ~a"
+msgstr ""
+
+#: music-functions.scm:248
#, scheme-format
msgid "expecting 2 elements for chord tremolo, found ~a"
msgstr ""
-#: music-functions.scm:538
+#: music-functions.scm:564
#, fuzzy, scheme-format
msgid "music expected: ~S"
msgstr "¶õÇò¤¬É¬ÍפǤ¹"
#. FIXME: uncomprehensable message
-#: music-functions.scm:589
+#: music-functions.scm:614
#, scheme-format
msgid "Bar check failed. Expect to be at ~a, instead at ~a"
msgstr ""
-#: music-functions.scm:748
+#: music-functions.scm:764
#, fuzzy, scheme-format
msgid "cannot find quoted music: `~S'"
msgstr "¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: music-functions.scm:942
+#: music-functions.scm:961
#, fuzzy, scheme-format
msgid "unknown accidental style: ~S"
-msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×ʸ»úÎó: `\\%s'"
+msgstr "¥Õ¥é¥Ã¥È¤¬Â¿¤¹¤®¤Þ¤¹ (%s)"
-#: output-ps.scm:315
+#: output-ps.scm:276
msgid "utf-8-string encountered in PS backend"
msgstr ""
-#: output-svg.scm:42
+#: output-svg.scm:45
#, scheme-format
msgid "undefined: ~S"
msgstr ""
-#: output-svg.scm:132
+#: output-svg.scm:135
#, scheme-format
msgid "cannot decypher Pango description: ~a"
msgstr ""
-#: output-tex.scm:98
+#: output-tex.scm:96
#, fuzzy, scheme-format
msgid "cannot find ~a in ~a"
-msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+msgstr "³Ã¤Î»ÏÅÀ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: paper.scm:69
-#, fuzzy
-msgid "Not in toplevel scope"
-msgstr "ºÇ¾å°Ì¤Î¥È¥é¥ó¥¹¥ì¡¼¥¿¤¬¤¢¤ê¤Þ¤»¤ó"
+#: paper.scm:85
+msgid "set-global-staff-size: not in toplevel scope"
+msgstr ""
-#: paper.scm:117
+#: paper.scm:133
#, scheme-format
msgid "This is not a \\layout {} object, ~S"
msgstr ""
-#: paper.scm:129
+#: paper.scm:145
#, fuzzy, scheme-format
msgid "Unknown papersize: ~a"
msgstr "paper ÊÑ¿ô¤ÎÃͤ¬È½¤ê¤Þ¤»¤ó: `%s'"
#. TODO: should raise (generic) exception with throw, and catch
#. that in parse-scm.cc
-#: paper.scm:144
+#: paper.scm:160
msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
msgstr ""
-#: parser-clef.scm:126
+#: parser-clef.scm:129
#, fuzzy, scheme-format
msgid "unknown clef type `~a'"
msgstr "ÉÔÌÀ¤Ê²»Éôµ¹æ(Clef)"
-#: parser-clef.scm:127
-msgid "see scm/clef.scm for supported clefs"
+#: parser-clef.scm:130
+#, scheme-format
+msgid "supported clefs: ~a"
msgstr ""
-#: ps-to-png.scm:88
+#: ps-to-png.scm:64
#, scheme-format
msgid "~a exited with status: ~S"
msgstr ""
-#: to-xml.scm:190
+#: to-xml.scm:180
#, scheme-format
msgid "assertion failed: ~S"
msgstr ""
-#, fuzzy
-#~ msgid "show warranty"
-#~ msgstr "ÊݾڤÈÃøºî¸¢¤Ë¤Ä¤¤¤Æɽ¼¨¤¹¤ë"
+#~ msgid "EOF in a string"
+#~ msgstr "ʸ»úÎóÃæ¤Ë EOF ¤¬¤¢¤ê¤Þ¤¹"
-#, fuzzy
-#~ msgid "loading default font"
-#~ msgstr "¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤ò¥í¡¼¥É¤·¤Þ¤¹"
+#~ msgid "not enough fields in Dstream init"
+#~ msgstr "Dstream ½é´ü²½»þ¤Î¥Õ¥£¡¼¥ë¥É¤¬ÉÔ½½Ê¬"
-#, fuzzy
-#~ msgid "cannot find default font: `%s'"
-#~ msgstr "¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
+#~ msgid "non fatal error: "
+#~ msgstr "Ã×̿Ū¤Ç¤Ï¤Ê¤¤¥¨¥é¡¼: "
-#, fuzzy
-#~ msgid "couldnnot find line breaking that satisfies constraints"
-#~ msgstr "¤½¤Î²ò·è¤ÏÀ©¸Â¤òËþ¤¿¤·¤Þ¤»¤ó"
+#~ msgid "can't map file"
+#~ msgstr "¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤Ç¤¤Þ¤»¤ó"
-#, fuzzy
-#~ msgid "crescendo too small"
-#~ msgstr "¥¯¥ì¥Ã¥·¥§¥ó¥É"
+#~ msgid "Huh? Got %d, expected %d characters"
+#~ msgstr "¤Ø¤Ã¡© %2$d ʸ»ú¤¢¤ë¤Ï¤º¤Ê¤Î¤Ë %1$d ʸ»ú¤·¤«¤Ê¤¤"
-#~ msgid "print this help"
-#~ msgstr "¤³¤Î¥Ø¥ë¥×"
+#~ msgid "<stdin>"
+#~ msgstr "<stdin>"
-#~ msgid "silly pitch"
-#~ msgstr "Çϼ¯¤²¤¿¥Ô¥Ã¥Á"
+#~ msgid "can't find character number: %d"
+#~ msgstr "ʸ»úÈֹ椬¸«¤Ä¤«¤ê¤Þ¤»¤ó: %d"
-#, fuzzy
-#~ msgid "cannot open file %s"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
+#~ msgid "Error parsing AFM file"
+#~ msgstr "AFM ¥Õ¥¡¥¤¥ë¤ò²òÀÏÃæ¤Ë¥¨¥é¡¼"
-#, fuzzy
-#~ msgid "Incorrect lilypond version: %s (%s, %s)"
-#~ msgstr "´Ö°ã¤Ã¤¿ mudela ¥Ð¡¼¥¸¥ç¥ó: %s (%s, %s)"
+#~ msgid "Loading default font"
+#~ msgstr "¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤ò¥í¡¼¥É¤·¤Þ¤¹"
-#, fuzzy
-#~ msgid "no one to print a tremolos"
-#~ msgstr "È¿Éüµ¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
+#~ msgid "Can't switch translators, I'm there already"
+#~ msgstr "¥È¥é¥ó¥¹¥ì¡¼¥¿¤òÀÚ¤êÂؤ¨¤é¤ì¤Þ¤»¤ó¡£´û¤Ë¤½¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-#, fuzzy
-#~ msgid "junking event: `%s'"
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+#~ msgid "beam has less than two stems"
+#~ msgstr "³Ã¤¬Æó¤Ä̤Ëþ¤ÎÉäÈø¤È¤È¤â¤Ë»È¤ï¤ì¤Þ¤·¤¿"
-#~ msgid "no one to print a repeat brace"
-#~ msgstr "È¿Éüµ¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
+#~ msgid "weird beam vertical offset"
+#~ msgstr "¿âľÊý¸þ¤Î°ÌÃ֤Ȥ·¤Æ¤ª¤«¤·¤Ê³Ã"
-#, fuzzy
-#~ msgid "cannot find `%s' context"
-#~ msgstr "`%s' ¥³¥ó¥Æ¥¥¹¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+#~ msgid "I'm one myself"
+#~ msgstr "¥È¥é¥ó¥¹¥ì¡¼¥¿¤½¤Î¤â¤Î¤Ç¤¹"
-#, fuzzy
-#~ msgid "no one to print a percent"
-#~ msgstr "È¿Éüµ¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
+#~ msgid "no one to print a tremolos"
+#~ msgstr "¥È¥ì¥â¥í¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¤¤Þ¤»¤ó"
-#~ msgid "Creator: "
-#~ msgstr "ºî¶Ê¼Ô: "
+#~ msgid "invalid subtraction: not part of chord: %s"
+#~ msgstr "̵¸ú¤Ê°ú¤»»: ¥³¡¼¥É¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %s"
-#, fuzzy
-#~ msgid "at "
-#~ msgstr ", at "
+#~ msgid "invalid inversion pitch: not part of chord: %s"
+#~ msgstr "̵¸ú¤Êž²ó¥Ô¥Ã¥Á: ¥³¡¼¥É¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %s"
-#, fuzzy
-#~ msgid "in quotation: junking event %s"
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+#~ msgid "too small"
+#~ msgstr "¾®¤µ¤¹¤®¤Þ¤¹"
-#, fuzzy
-#~ msgid "TFM header of `%s' has only %u word (s)"
-#~ msgstr "`%s' ¤Î TFM ¥Ø¥Ã¥À¤Ë %u ¸ì¤·¤«¤¢¤ê¤Þ¤»¤ó"
+#~ msgid "minVerticalAlign != maxVerticalAlign: cross staff spanners may be broken"
+#~ msgstr "minVerticalAlign != maxVerticalAlign: ¸òº¹¤·¤¿¥¹¥Ñ¥Ê¤¬²õ¤ì¤¿¤«¤â"
-#~ msgid ""
-#~ "%s: TFM file has %u parameters, which is more than the %u I can handle"
-#~ msgstr "%s: TFM ¥Õ¥¡¥¤¥ë¤Ï %u ¸Ä¤Î¥Ñ¥é¥á¥¿¤¬¤¢¤ê¤Þ¤¹¤¬¡¢%u °Ê¾å¤Ï°·¤¨¤Þ¤»¤ó"
+#~ msgid "floating point exception"
+#~ msgstr "ÉâÆ°¾®¿ôÅÀÎã³°"
-#, fuzzy
-#~ msgid "cannot find ascii character: %d"
-#~ msgstr "ascii ʸ»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%d'"
+#~ msgid "can't set mem-checking!"
+#~ msgstr "¥á¥â¥ê¥Á¥§¥Ã¥¯¤òÀßÄê¤Ç¤¤Þ¤»¤ó!"
-#~ msgid "no one to print a tuplet start bracket"
-#~ msgstr "¥¿¥×¥ì¥Ã¥È³«»Ï¥Ö¥é¥±¥Ã¥È¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
+#~ msgid "NaN"
+#~ msgstr "NaN"
-#, fuzzy
-#~ msgid "unterminated trill spanner"
-#~ msgstr "½ªÃ¼¤Î¤Ê¤¤¥¨¥¯¥¹¥Æ¥ó¥À"
+#~ msgid "Nothing to connect extender to on the left. Ignoring extender request."
+#~ msgstr "¥¨¥¯¥¹¥Æ¥ó¥À¤¬º¸Â¦¤Ë¤Ä¤Ê¤¬¤ê¤Þ¤»¤ó¡£¥¨¥¯¥¹¥Æ¥ó¥ÀÍ×µá¤ò̵»ë¤·¤Þ¤¹¡£"
-#, fuzzy
-#~ msgid "more alternatives than repeats"
-#~ msgstr "·«¤êÊÖ¤·¤è¤ê¤âÁªÂò»è¤¬Â¿¤¤¡£Ä¶²áʬ¤ò¼Î¤Æ¤Þ¤¹¡£"
+#~ msgid "no one to print a repeat brace"
+#~ msgstr "È¿Éüµ¹æ¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
-#, fuzzy
-#~ msgid "cannot find signature for music function"
-#~ msgstr "`%s' ¥³¥ó¥Æ¥¥¹¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+#~ msgid "no Grace context available"
+#~ msgstr "Áõ¾þ¥³¥ó¥Æ¥¥¹¥È¤¬¤¢¤ê¤Þ¤»¤ó"
-#, fuzzy
-#~ msgid "Opening pipe `%s'"
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+#~ msgid "Unattached grace notes. Attaching to last musical column."
+#~ msgstr "Áõ¾þ²»É䤬¤Ä¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£Ä¾Á°¤Î¥«¥é¥à¤Ë¤Ä¤±¤Þ¤¹"
-#, fuzzy
-#~ msgid "Cleaning %s..."
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+#~ msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request."
+#~ msgstr "º¸Â¦¤Ë·Ò¤²¤ë¥Ï¥¤¥Õ¥ó¤¬¤¢¤ê¤Þ¤»¤ó¡£¥Ï¥¤¥Õ¥ó¤ÎÍ×µá¤ò̵»ë¤·¤Þ¤¹"
-#, fuzzy
-#~ msgid "Usage: %s [OPTION]... [FILE]..."
-#~ msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]..."
+#~ msgid "wrong identifier type, expected: `%s'"
+#~ msgstr "´Ö°ã¤Ã¤¿¼±Ê̻ҷ¿¡¢¤³¤³¤ËÍè¤ë¤Ù¤¤â¤Î¤Ï: `%s'"
-#, fuzzy
-#~ msgid "%s: skipping: `%s'"
-#~ msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
+#~ msgid "No key name, assuming `C'"
+#~ msgstr "¥¡¼Ì¾¤¬¤¢¤ê¤Þ¤»¤ó¡¢`C' ¤ò»î¤ß¤Þ¤¹"
-#, fuzzy
-#~ msgid "print version information"
-#~ msgstr "¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨"
+#~ msgid "Don't know how handle empty keys"
+#~ msgstr "¶õ¤Î¥¡¼¤Î°·¤¤Êý¤¬È½¤ê¤Þ¤»¤ó"
-#, fuzzy
-#~ msgid "no such context: %s"
-#~ msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
+#~ msgid "FIXME: key change merge"
+#~ msgstr "FIXME: ¥¡¼Êѹ¹¤Î¥Þ¡¼¥¸"
-#, fuzzy
-#~ msgid "Processing `%s'..."
-#~ msgstr "½èÍýÃæ..."
+#~ msgid "overdone accidentals (%s)"
+#~ msgstr "¥·¥ã¡¼¥×¤¬Â¿¤¹¤®¤Þ¤¹ (%s)"
-#, fuzzy
-#~ msgid "Wrote `%s'"
-#~ msgstr "¹Ô ..."
+#~ msgid "out of tune:"
+#~ msgstr "Èϰϳ°¤ÎÄ´:"
-#, fuzzy
-#~ msgid "cannot dlopen: %s: %s"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
+#~ msgid "Non-matching braces in text `%s', adding braces"
+#~ msgstr "¥Æ¥¥¹¥È `%s' Ãæ¤Ë°ìÃפ¹¤ë¥Ö¥ì¡¼¥¹¤¬¤¢¤ê¤Þ¤»¤ó¡£¥Ö¥ì¡¼¥¹¤òÄɲä·¤Þ¤¹"
-#, fuzzy
-#~ msgid "install package: %s or %s"
-#~ msgstr "`%s' ¤«¤é `%s' ¤ËÊѹ¹¤Ç¤¤Þ¤»¤ó"
+#~ msgid "enable debugging output"
+#~ msgstr "¥Ç¥Ð¥Ã¥°½ÐÎϤò͸ú"
-#, fuzzy
-#~ msgid "aborting"
-#~ msgstr "½ªÎ»¤·¤Þ¤¹"
+#~ msgid "EXT"
+#~ msgstr "EXT"
#, fuzzy
-#~ msgid "parsing AFM file: `%s'"
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+#~ msgid "use output format EXT (scm, ps, tex or as)"
+#~ msgstr "½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È EXT (scm, ps, tex) ¤ò»È¤¦"
-#, fuzzy
-#~ msgid "beam has less than two visible stems"
-#~ msgstr "³Ã¤¬Æó¤Ä̤Ëþ¤ÎÉäÈø¤È¤È¤â¤Ë»È¤ï¤ì¤Þ¤·¤¿"
+#~ msgid "this help"
+#~ msgstr "¤³¤Î¥Ø¥ë¥×"
-#, fuzzy
-#~ msgid "adding lilypond directory: %s"
-#~ msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
+#~ msgid "write Makefile dependencies for every input file"
+#~ msgstr "Á´¤Æ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î Makefile °Í¸´Ø·¸¤ò½ñ¤¹þ¤à"
-#, fuzzy
-#~ msgid "cannot handle a percent repeat of length: %s"
-#~ msgstr "¶õ¤Î¥¡¼¤Î°·¤¤Êý¤¬È½¤ê¤Þ¤»¤ó"
+#~ msgid "produce MIDI output only"
+#~ msgstr "MIDI ½ÐÎϤÎÀ¸À®¤Î¤ß"
-#, fuzzy
-#~ msgid "Separation_item: I've been drinking too much"
-#~ msgstr "Single_malt_grouping_item: °û¤ß¤¹¤®¤Á¤ã¤Ã¤¿"
-
-#, fuzzy
-#~ msgid "suspect duration in beam: %s"
-#~ msgstr "²»Ä¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %d"
-
-#, fuzzy
-#~ msgid "syntax error: cannot back up"
-#~ msgstr "³¹Ô²Äǽ¤Ê¥¨¥é¡¼: "
-
-#, fuzzy
-#~ msgid "Stack now"
-#~ msgstr "¥È¥é¥Ã¥¯ "
-
-#, fuzzy
-#~ msgid "Reading a token: "
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s"
-#~ msgstr "³¹Ô²Äǽ¤Ê¥¨¥é¡¼: "
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s, expecting %s"
-#~ msgstr "³¹Ô²Äǽ¤Ê¥¨¥é¡¼: "
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s, expecting %s or %s"
-#~ msgstr "³¹Ô²Äǽ¤Ê¥¨¥é¡¼: "
-
-#, fuzzy
-#~ msgid "syntax error, unexpected %s, expecting %s or %s or %s"
-#~ msgstr "³¹Ô²Äǽ¤Ê¥¨¥é¡¼: "
-
-#, fuzzy
-#~ msgid "syntax error; also memory exhausted"
-#~ msgstr "³¹Ô²Äǽ¤Ê¥¨¥é¡¼: "
-
-#, fuzzy
-#~ msgid "syntax error"
-#~ msgstr "³¹Ô²Äǽ¤Ê¥¨¥é¡¼: "
-
-#, fuzzy
-#~ msgid "cannot find CFF/PFA/PFB font ~S=~S"
-#~ msgstr "¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-
-#, fuzzy
-#~ msgid "unknown bar glyph: `~S'"
-#~ msgstr "ÉÔÌÀ¤Ê²»Éôµ¹æ(Clef)"
-
-#, fuzzy
-#~ msgid "Extracting fonts to %s..."
-#~ msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
-
-#, fuzzy
-#~ msgid "Writing %s..."
-#~ msgstr "¹Ô ..."
-
-#~ msgid "Have to be in Lyric mode for lyrics"
-#~ msgstr "²Î»ì¤Ï Lyric ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
-
-#~ msgid "Have to be in Note mode for notes"
-#~ msgstr "²»Éä¤Ï Note ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
-
-#~ msgid "Have to be in Chord mode for chords"
-#~ msgstr "¥³¡¼¥É¤Ï Chord ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
-
-#, fuzzy
-#~ msgid "programming error: "
-#~ msgstr "¥×¥í¥°¥é¥à¾å¤Î¥¨¥é¡¼: "
-
-#, fuzzy
-#~ msgid "Programming error: "
-#~ msgstr "¥×¥í¥°¥é¥à¾å¤Î¥¨¥é¡¼: "
-
-#~ msgid "Cannot switch translators, I'm there already"
-#~ msgstr "¥È¥é¥ó¥¹¥ì¡¼¥¿¤òÀÚ¤êÂؤ¨¤é¤ì¤Þ¤»¤ó¡£´û¤Ë¤½¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤¹"
-
-#, fuzzy
-#~ msgid "Aborting."
-#~ msgstr "½ªÎ»¤·¤Þ¤¹"
-
-#~ msgid "I'm one myself"
-#~ msgstr "¥È¥é¥ó¥¹¥ì¡¼¥¿¤½¤Î¤â¤Î¤Ç¤¹"
-
-#, fuzzy
-#~ msgid "No slur to end"
-#~ msgstr "ËöÈø¤Ø¤Î³Ã¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#~ msgid "Huh? Got %d, expected %d characters"
-#~ msgstr "¤Ï¡© %2$d ʸ»ú¤¢¤ë¤Ï¤º¤Ê¤Î¤Ë %1$d ʸ»ú¤·¤«¤Ê¤¤"
-
-#~ msgid "Missing end quote"
-#~ msgstr "½ªÎ»¥¯¥ª¡¼¥È¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#~ msgid "EXT"
-#~ msgstr "EXT"
-
-#~ msgid "FIXME: key change merge"
-#~ msgstr "FIXME: ¥¡¼Êѹ¹¤Î¥Þ¡¼¥¸"
-
-#, fuzzy
-#~ msgid "kpathsea cannot find %s file: `%s'"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-
-#, fuzzy
-#~ msgid "kpathsea cannot find file: `%s'"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-
-#, fuzzy
-#~ msgid "EXTs"
-#~ msgstr "EXT"
-
-#, fuzzy
-#~ msgid "generate DVI"
-#~ msgstr "À©¸Â¤ò´ËÏÂ"
-
-#, fuzzy
-#~ msgid "generate TeX"
-#~ msgstr "À©¸Â¤ò´ËÏÂ"
-
-#, fuzzy
-#~ msgid "kpathsea can not find %s file: `%s'"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-
-#, fuzzy
-#~ msgid "kpathsea can not find AFM file `%s'"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-
-#, fuzzy
-#~ msgid "kpathsea can not find TFM file: `%s'"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-
-#, fuzzy
-#~ msgid "Converting to `~a.ps'..."
-#~ msgstr "¹Ô ..."
-
-#, fuzzy
-#~ msgid "add DIR to LilyPond's search path"
-#~ msgstr "DIR ¤ò¸¡º÷¥Ñ¥¹¤ËÄɲÃ"
-
-#~ msgid "produce MIDI output only"
-#~ msgstr "MIDI ½ÐÎϤÎÀ¸À®¤Î¤ß"
-
-#, fuzzy
-#~ msgid "generate PDF output"
-#~ msgstr "À©¸Â¤ò´ËÏÂ"
-
-#, fuzzy
-#~ msgid "generate PS.GZ"
-#~ msgstr "À©¸Â¤ò´ËÏÂ"
-
-#, fuzzy
-#~ msgid "Continuing..."
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-
-#, fuzzy
-#~ msgid "Analyzing %s..."
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-
-#, fuzzy
-#~ msgid "no LilyPond output found for `%s'"
-#~ msgstr "Lily ¤Ï %s ¤Ë½ÐÎϤ·¤Þ¤¹..."
-
-#, fuzzy
-#~ msgid "%s output to <stdout>..."
-#~ msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
-
-#, fuzzy
-#~ msgid "%s output to %s..."
-#~ msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
-
-#, fuzzy
-#~ msgid "cannot find file: `%s.%s'"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-
-#, fuzzy
-#~ msgid "DIM"
-#~ msgstr "DIR"
-
-#, fuzzy
-#~ msgid "write dependencies"
-#~ msgstr "¶õÇò¤¬É¬ÍפǤ¹"
-
-#~ msgid "write Makefile dependencies for every input file"
-#~ msgstr "Á´¤Æ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î Makefile °Í¸´Ø·¸¤ò½ñ¤¹þ¤à"
-
-#, fuzzy
-#~ msgid "invalid value: `%s'"
-#~ msgstr "̵¸ú¤Êʸ»ú: `%c'"
-
-#, fuzzy
-#~ msgid "Writing HTML menu `%s'"
-#~ msgstr "¹Ô ..."
-
-#, fuzzy
-#~ msgid "programming error: %s (Continuing; cross thumbs)\n"
-#~ msgstr " (³¤±¤Þ¤¹ -- cross thumbs)"
-
-#, fuzzy
-#~ msgid "Beam has less than two stems. Removing beam."
-#~ msgstr "³Ã¤¬Æó¤Ä̤Ëþ¤ÎÉäÈø¤È¤È¤â¤Ë»È¤ï¤ì¤Þ¤·¤¿"
+#~ msgid "BASENAME"
+#~ msgstr "BASENAME"
-#~ msgid "NaN"
-#~ msgstr "NaN"
+#~ msgid "write output to BASENAME[-x].extension"
+#~ msgstr "BASENAME[-x].³ÈÄ¥»Ò ¤Ø½ÐÎϤò½ñ¤¹þ¤à"
-#, fuzzy
-#~ msgid ""
-#~ "Nothing to connect extender to on the left. Ignoring extender event."
-#~ msgstr "¥¨¥¯¥¹¥Æ¥ó¥À¤¬º¸Â¦¤Ë¤Ä¤Ê¤¬¤ê¤Þ¤»¤ó¡£¥¨¥¯¥¹¥Æ¥ó¥ÀÍ×µá¤ò̵»ë¤·¤Þ¤¹¡£"
+#~ msgid "show all changes in relative syntax"
+#~ msgstr "´ØÏ¢¤¹¤ëʸˡ¤«¤éÁ´¤Æ¤ÎÊѹ¹¤òɽ¼¨"
-#, fuzzy
-#~ msgid "Nothing to connect hyphen to on the left. Ignoring hyphen event."
-#~ msgstr "º¸Â¦¤Ë·Ò¤²¤ë¥Ï¥¤¥Õ¥ó¤¬¤¢¤ê¤Þ¤»¤ó¡£¥Ï¥¤¥Õ¥ó¤ÎÍ×µá¤ò̵»ë¤·¤Þ¤¹"
+#~ msgid "inhibit file output naming and exporting"
+#~ msgstr "̾Á°ÉÕ¤±¤È¥¨¥¯¥¹¥Ý¡¼¥È¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¤òÍÞÀ©¤¹¤ë"
-#~ msgid "Score contains errors; will not process it"
-#~ msgstr "³ÚÉè¤Ë¥¨¥é¡¼¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹ -- ½èÍý¤·¤Þ¤»¤ó"
+#~ msgid "don't timestamp the output"
+#~ msgstr "½ÐÎϤ˥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¤Ä¤±¤Ê¤¤"
-#, fuzzy
-#~ msgid "Now processing: `%s'"
-#~ msgstr "̤ÃΤΥ¨¥¹¥±¡¼¥×ʸ»úÎó: `\\%s'"
+#~ msgid "switch on experimental features"
+#~ msgstr "¼Â¸³Åª¤Êµ¡Ç½¤ò͸ú¤Ë¤¹¤ë"
-#~ msgid "inhibit file output naming and exporting"
-#~ msgstr "̾Á°ÉÕ¤±¤È¥¨¥¯¥¹¥Ý¡¼¥È¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¤òÍÞÀ©¤¹¤ë"
+#~ msgid "ignore mudela version"
+#~ msgstr "mudela ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò̵»ë¤¹¤ë"
#~ msgid ""
#~ "LilyPond is a music typesetter. It produces beautiful sheet music\n"
#~ "using a high level description file as input. LilyPond is part of \n"
#~ "the GNU Project.\n"
#~ msgstr ""
-#~ "LilyPond ¤Ï³Ú¶ÊÁÈÈÇ¥½¥Õ¥È¤Ç¤¹¡£ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Ï¥¤¥ì¥Ù¥ë¤Êµ½Ò¤ò»ÈÍѤÇ"
-#~ "¤¡¢\n"
-#~ "Èþ¤·¤¤ÉèÌ̤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£LilyPond ¤Ï GNU ¥×¥í¥¸¥§¥¯¥È¤Î°ìÉô¤Ç"
-#~ "¤¹¡£\n"
+#~ "LilyPond ¤Ï³Ú¶ÊÁÈÈÇ¥½¥Õ¥È¤Ç¤¹¡£ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ë¤Ï¥Ï¥¤¥ì¥Ù¥ë¤Êµ½Ò¤ò»ÈÍѤǤ¡¢\n"
+#~ "Èþ¤·¤¤ÉèÌ̤òºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£LilyPond ¤Ï GNU ¥×¥í¥¸¥§¥¯¥È¤Î°ìÉô¤Ç¤¹¡£\n"
-#, fuzzy
-#~ msgid "GNU LilyPond -- The music typesetter"
+#~ msgid "This binary was compiled with the following options:"
+#~ msgstr "¤³¤Î¥Ð¥¤¥Ê¥ê¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥óÉÕ¤¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿"
+
+#~ msgid "GNU LilyPond -- The GNU Project music typesetter"
#~ msgstr "GNU LilyPond -- The GNU Project music typesetter"
+#~ msgid "unconventional key: flats: %d, sharps: %d"
+#~ msgstr "´·½¬¤Ë¹ç¤ï¤Ê¤¤¥¡¼¤Ç¤¹: ¥Õ¥é¥Ã¥È: %d ¸Ä, ¥·¥ã¡¼¥× %d ¸Ä"
+
#~ msgid "silly duration"
#~ msgstr "Çϼ¯¤²¤¿²»Ä¹"
-#~ msgid "paper output to `%s'..."
-#~ msgstr "%s ¤Ø paper ½ÐÎÏ..."
+#~ msgid "silly pitch"
+#~ msgstr "Çϼ¯¤²¤¿¥Ô¥Ã¥Á"
+
+#~ msgid "Error syncing file (disk full?)"
+#~ msgstr "¥Õ¥¡¥¤¥ë¤ÎƱĴ¥¨¥é¡¼ (¥Ç¥£¥¹¥¯¤¬°ìÇÕ?)"
+
+#~ msgid "Interpretation context with empty type"
+#~ msgstr "¶õ¥¿¥¤¥×¤Î²ò¼á¥³¥ó¥Æ¥¥¹¥È"
+
+#~ msgid "not a real variable"
+#~ msgstr "Ãͤ¬¼Â¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+
+#~ msgid ", at "
+#~ msgstr ", at "
#~ msgid "Outputting Score, defined at: "
#~ msgstr "ÉèÌ̤ò½ÐÎϤ·¤Þ¤¹¡£¤³¤³¤ÇÄêµÁ: "
-#, fuzzy
-#~ msgid "I'm one myself: `%s'"
-#~ msgstr "¥È¥é¥ó¥¹¥ì¡¼¥¿¤½¤Î¤â¤Î¤Ç¤¹"
+#~ msgid "Creator: "
+#~ msgstr "ºî¶Ê¼Ô: "
-#, fuzzy
-#~ msgid "none of these in my family: `%s'"
-#~ msgstr "¥Õ¥¡¥ß¥ê¤ÎÃæ¤Ë¤¢¤ê¤Þ¤»¤ó"
+#~ msgid "Automatically generated"
+#~ msgstr "¼«Æ°À¸À®¤µ¤ì¤¿"
#~ msgid "from musical definition: %s"
#~ msgstr "²»³ÚŪÄêµÁ¤è¤ê: %s"
-#, fuzzy
-#~ msgid "cannot find start of phrasing slur"
-#~ msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-
-#, fuzzy
-#~ msgid "unterminated pedal bracket"
-#~ msgstr "½ªÃ¼¤Î¤Ê¤¤¥Ï¥¤¥Õ¥ó"
-
-#~ msgid "unbound spanner `%s'"
-#~ msgstr "ÊĤ¸¤Æ¤¤¤Ê¤¤¥¹¥Ñ¥Ê `%s'"
+#~ msgid "Wrong type for property"
+#~ msgstr "°ÀÃͤΥ¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#~ msgid "Error syncing file (disk full?)"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤ÎƱĴ¥¨¥é¡¼ (¥Ç¥£¥¹¥¯¤¬°ìÇÕ?)"
+#~ msgid "No bar engraver found. Ignoring repeats."
+#~ msgstr "¾®À᤬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£È¿Éü¤ò̵»ë¤·¤Þ¤¹¡£"
-#~ msgid "No ties were created!"
-#~ msgstr "ºî¤é¤ì¤¿¥¿¥¤¤¬¤¢¤ê¤Þ¤»¤ó!"
+#~ msgid "Junking request: `%s'"
+#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-#~ msgid "Already contains: `%s'"
-#~ msgstr "´û¤Ë´Þ¤ó¤Ç¤¤¤Þ¤¹: `%s'"
+#~ msgid "Huh? Not a Request: `%s'"
+#~ msgstr "¤Ï? Í×µá¤Ç¤Ï¤Ê¤¤: `%s'"
-#, fuzzy
-#~ msgid "Not adding translator: `%s'"
-#~ msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
+#~ msgid "too many notes for rest collision"
+#~ msgstr "µÙÉä¤Î¾×ÆͤËÂФ·¤Æ²»É䤬¿¤¹¤®¤Þ¤¹"
-#, fuzzy
-#~ msgid "Must have duration object"
-#~ msgstr "²»Ä¹¤òºÇ¾®¤ËÀßÄꤷ¤Þ¤¹"
+#~ msgid "unbound spanner `%s'"
+#~ msgstr "ÊĤ¸¤Æ¤¤¤Ê¤¤¥¹¥Ñ¥Ê `%s'"
-#, fuzzy
-#~ msgid "%r: release directory"
-#~ msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
+#~ msgid "no toplevel translator"
+#~ msgstr "ºÇ¾å°Ì¤Î¥È¥é¥ó¥¹¥ì¡¼¥¿¤¬¤¢¤ê¤Þ¤»¤ó"
-#, fuzzy
-#~ msgid "Fetching `%s'..."
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+#~ msgid "Score contains errors; will not process it"
+#~ msgstr "³ÚÉè¤Ë¥¨¥é¡¼¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹ -- ½èÍý¤·¤Þ¤»¤ó"
-#, fuzzy
-#~ msgid "Building `%s'..."
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
+#~ msgid "Must stop before this music ends"
+#~ msgstr "¤³¤Î³Ú¶Ê¤Î½ª¤ï¤ê¤Þ¤Ç¤Ë»ß¤á¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#~ msgid "invalid subtraction: not part of chord: %s"
-#~ msgstr "̵¸ú¤Ê°ú¤»»: ¥³¡¼¥É¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %s"
+#~ msgid "Single_malt_grouping_item: I've been drinking too much"
+#~ msgstr "Single_malt_grouping_item: °û¤ß¤¹¤®¤Á¤ã¤Ã¤¿"
-#~ msgid "invalid inversion pitch: not part of chord: %s"
-#~ msgstr "̵¸ú¤Êž²ó¥Ô¥Ã¥Á: ¥³¡¼¥É¤Î°ìÉô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %s"
+#~ msgid "can't find both ends of %s"
+#~ msgstr "%s ¤Îξü¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#~ msgid ", at "
-#~ msgstr ", at "
+#~ msgid "slur"
+#~ msgstr "¥¹¥é¡¼"
-#, fuzzy
-#~ msgid "Putting slur over rest."
+#~ msgid "Putting slur over rest. Ignoring."
#~ msgstr "µÙÉä¤ò¤Þ¤¿¤¤¤À¥¹¥é¡¼¤¬¤¢¤ê¤Þ¤¹¡£Ìµ»ë¤·¤Þ¤¹¡£"
#~ msgid "Slur over rest?"
#~ msgstr "¥¹¥é¡¼¤¬µÙÉä¤ò¤Þ¤¿¤¤¤Ç¤¤¤ë?"
-#~ msgid "Cannot specify direction for this request"
-#~ msgstr "¤³¤ÎÍ×µá¤ËÂФ¹¤ëÊý¸þ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó"
+#~ msgid "Spanner `%s' has equal left and right spanpoints"
+#~ msgstr "ÈÏ°Ï»ØÄê»Ò `%s' ¤Îº¸±¦¤ÎÅÀ¤¬Æ±¤¸¤Ç¤¹"
-#, fuzzy
-#~ msgid "cannot map file"
-#~ msgstr "¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤Ç¤¤Þ¤»¤ó"
+#~ msgid "TFM header of `%s' has only %u word(s)"
+#~ msgstr "`%s' ¤Î TFM ¥Ø¥Ã¥À¤Ë %u ¸ì¤·¤«¤¢¤ê¤Þ¤»¤ó"
-#~ msgid "This binary was compiled with the following options:"
-#~ msgstr "¤³¤Î¥Ð¥¤¥Ê¥ê¤Ï°Ê²¼¤Î¥ª¥×¥·¥ç¥óÉÕ¤¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿"
+#~ msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
+#~ msgstr "%s: TFM ¥Õ¥¡¥¤¥ë¤Ï %u ¸Ä¤Î¥Ñ¥é¥á¥¿¤¬¤¢¤ê¤Þ¤¹¤¬¡¢%u °Ê¾å¤Ï°·¤¨¤Þ¤»¤ó"
-#~ msgid "EOF in a string"
-#~ msgstr "ʸ»úÎóÃæ¤Ë EOF ¤¬¤¢¤ê¤Þ¤¹"
+#~ msgid "can't find ascii character: `%d'"
+#~ msgstr "ascii ʸ»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%d'"
-#~ msgid "<stdin>"
-#~ msgstr "<stdin>"
+#~ msgid "No ties were created!"
+#~ msgstr "ºî¤é¤ì¤¿¥¿¥¤¤¬¤¢¤ê¤Þ¤»¤ó!"
-#~ msgid "weird beam vertical offset"
-#~ msgstr "¿âľÊý¸þ¤Î°ÌÃ֤Ȥ·¤Æ¤ª¤«¤·¤Ê³Ã"
+#~ msgid "no one to print a tuplet start bracket"
+#~ msgstr "Ï¢É䳫»Ï¥Ö¥é¥±¥Ã¥È¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
-#, fuzzy
-#~ msgid "unknown spacing pair `%s', `%s'"
-#~ msgstr "Ƚ¤é¤Ê¤¤¥È¥é¥ó¥¹¥ì¡¼¥¿: `%s'"
+#~ msgid "lost in time:"
+#~ msgstr "Çï»Ò¤Ë̤¤¤Þ¤·¤¿:"
-#, fuzzy
-#~ msgid "Wrong type for property: %s, type: %s, value found: %s, type: %s"
-#~ msgstr "°ÀÃͤؤΥ¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
+#~ msgid "This is the other timing request"
+#~ msgstr "¤³¤ì¤ÏÊ̤ÎÇï»ÒÍ×µá¤Ç¤¹"
-#~ msgid "too many notes for rest collision"
-#~ msgstr "µÙÉä¤Î¾×ÆͤËÂФ·¤Æ²»É䤬¿¤¹¤®¤Þ¤¹"
+#~ msgid "Already contains: `%s'"
+#~ msgstr "´û¤Ë´Þ¤ó¤Ç¤¤¤Þ¤¹: `%s'"
+
+#~ msgid "no one to print a volta bracket"
+#~ msgstr "volta ¥Ö¥é¥±¥Ã¥È¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
#~ msgid "Oldest supported input version: %s"
#~ msgstr "°ìÈָŤ¤ÆþÎϲÄǽ¥Ð¡¼¥¸¥ç¥ó: %s"
-#~ msgid "#32 in quarter: %d"
-#~ msgstr "»Íʬ¤ÎÃæ¤Ë #32: %d"
-
-#~ msgid "track %d:"
-#~ msgstr "¥È¥é¥Ã¥¯ %d:"
-
-#~ msgid "NOT Filtering tempo..."
-#~ msgstr "¥Æ¥ó¥Ý¤Î¥Õ¥£¥ë¥¿¤ò¤·¤Þ¤»¤ó..."
-
-#~ msgid "NOT Quantifying columns..."
-#~ msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤»¤ó..."
-
-#~ msgid "Quantifying columns..."
-#~ msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤¹..."
+#~ msgid "Need a translator group for a context"
+#~ msgstr "¥³¥ó¥Æ¥¥¹¥È¤Ë¤Ï¥È¥é¥ó¥¹¥ì¡¼¥¿¥°¥ë¡¼¥×¤¬É¬ÍפǤ¹"
-#~ msgid "Settling columns..."
-#~ msgstr "¥«¥é¥à¤ò·èÄꤷ¤Þ¤¹..."
+#~ msgid "Wrong type for property value"
+#~ msgstr "°ÀÃͤؤΥ¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-#~ msgid "% MIDI copyright:"
-#~ msgstr "% MIDI copyright:"
+#~ msgid "First argument must be a procedure taking 1 argument"
+#~ msgstr "Âè°ì°ú¿ô¤Ï°ú¿ô¤ò°ì¤Ä¤È¤ë¼ê³¤¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#~ msgid "% MIDI instrument:"
-#~ msgstr "% MIDI instrument:"
-
-#~ msgid "lily indent level: %d"
-#~ msgstr "lily indent level: %d"
+#~ msgid "Can't specify direction for this request"
+#~ msgstr "¤³¤ÎÍ×µá¤ËÂФ¹¤ëÊý¸þ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó"
-#~ msgid "% Creator: "
-#~ msgstr "%s Creator: "
+#~ msgid "Expecting %d arguments"
+#~ msgstr "%d ¸Ä¤Î°ú¿ô¤¬¤¢¤ë¤Ï¤º"
-#~ msgid "% Automatically generated"
-#~ msgstr "% Automatically generated"
+#~ msgid "Missing end quote"
+#~ msgstr "½ªÎ»¥¯¥ª¡¼¥È¤¬¤¢¤ê¤Þ¤»¤ó"
-#~ msgid "% from input file: "
-#~ msgstr "% from input file: "
+#~ msgid "incorrect mudela version: %s (%s, %s)"
+#~ msgstr "´Ö°ã¤Ã¤¿ mudela ¥Ð¡¼¥¸¥ç¥ó: %s (%s, %s)"
#~ msgid "write exact durations, e.g.: a4*385/384"
#~ msgstr "Àµ³Î¤Ê²»Ä¹¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£Îã: a4*385/384"
-#~ msgid "enable debugging output"
-#~ msgstr "¥Ç¥Ð¥Ã¥°½ÐÎϤò͸ú"
-
-#, fuzzy
-#~ msgid "do not output tuplets, double dots or rests, smallest is 32"
-#~ msgstr "ÉäÅÀ¤äÊ£ÉäÅÀ¤ò¤Ê¤¯¤¹¤è¤¦»î¤ß¤Þ¤¹¡¢ºÇ¾®¤Ï 32"
+#~ msgid "don't output tuplets or double dots, smallest is 32"
+#~ msgstr "Ï¢Éä¤äÊ£ÉäÅÀ¤ò½ÐÎϤ·¤Ê¤¤¡¢ºÇ¾®¤Ï 32"
#~ msgid "set FILE as default output"
#~ msgstr "¥Ç¥Õ¥©¥ë¥È½ÐÎϤȤ·¤Æ FILE ¤òÀßÄꤹ¤ë"
+#~ msgid "don't output tuplets"
+#~ msgstr "Ï¢Éä¤ò½ÐÎϤ·¤Þ¤»¤ó"
+
#~ msgid "be quiet"
#~ msgstr "ÀŤ«¤Ë¤·¤Þ¤¹"
#~ msgid "set smallest duration"
#~ msgstr "²»Ä¹¤òºÇ¾®¤ËÀßÄꤷ¤Þ¤¹"
-#~ msgid "do not timestamp the output"
-#~ msgstr "½ÐÎϤ˥¿¥¤¥à¥¹¥¿¥ó¥×¤ò¤Ä¤±¤Ê¤¤"
-
#~ msgid "assume no double dotted notes"
#~ msgstr "Ê£ÉäÅÀ²»Éä¤ò̵¤¯¤¹¤è¤¦»î¤ß¤Þ¤¹"
-#~ msgid "Usage: %s [OPTIONS]... [FILE]"
-#~ msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]"
-
-#, fuzzy
-#~ msgid "Translate MIDI-file to lilypond"
+#~ msgid "Translate MIDI-file to mudela"
#~ msgstr "MIDI ¥Õ¥¡¥¤¥ë¤ò mudela ¤ËÊÑ´¹¤·¤Þ¤¹"
#~ msgid "zero length string encountered"
#~ msgid "invalid number of tracks"
#~ msgstr "̵¸ú¤Ê¥È¥é¥Ã¥¯¿ô"
-#, fuzzy
-#~ msgid "cannot handle non-metrical time"
+#~ msgid "can't handle non-metrical time"
#~ msgstr "±¤Î§¤Ë¤Ê¤é¤Ê¤¤Çï»Ò¤Ï°·¤¨¤Þ¤»¤ó"
#~ msgid "Junking note-end event: channel = %d, pitch = %d"
#~ msgid "invalid track length"
#~ msgstr "̵¸ú¤Ê¥È¥é¥Ã¥¯Ä¹¤Ç¤¹"
-#~ msgid "no Grace context available"
-#~ msgstr "Áõ¾þ¥³¥ó¥Æ¥¥¹¥È¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#~ msgid "Unattached grace notes. Attaching to last musical column."
-#~ msgstr "Áõ¾þ²»É䤬¤Ä¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£Ä¾Á°¤Î¥«¥é¥à¤Ë¤Ä¤±¤Þ¤¹"
-
-#, fuzzy
-#~ msgid "Fetching `%'s..."
-#~ msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-
-#~ msgid "Wrong type for property value"
-#~ msgstr "°ÀÃͤؤΥ¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
-
-#, fuzzy
-#~ msgid "NAME"
-#~ msgstr "BASENAME"
-
-#~ msgid "not enough fields in Dstream init"
-#~ msgstr "Dstream ½é´ü²½»þ¤Î¥Õ¥£¡¼¥ë¥É¤¬ÉÔ½½Ê¬"
-
-#~ msgid "floating point exception"
-#~ msgstr "ÉâÆ°¾®¿ôÅÀÎã³°"
-
-#, fuzzy
-#~ msgid "cannot set mem-checking!"
-#~ msgstr "¥á¥â¥ê¥Á¥§¥Ã¥¯¤òÀßÄê¤Ç¤¤Þ¤»¤ó"
-
-#, fuzzy
-#~ msgid "Dependency file left in `%s'"
-#~ msgstr "°Í¸´Ø·¸¥Õ¥¡¥¤¥ë¤Î½ñ¤¹þ¤ß: `%s'..."
-
-#, fuzzy
-#~ msgid "Report bugs to bug-gnu-music@gnu.org"
-#~ msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø"
-
-#, fuzzy
-#~ msgid "Usage: lilypond [OPTIONS]... FILE\n"
-#~ msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]"
-
-#~ msgid "unconventional key: flats: %d, sharps: %d"
-#~ msgstr "´·½¬¤Ë¹ç¤ï¤Ê¤¤¥¡¼¤Ç¤¹: ¥Õ¥é¥Ã¥È: %d ¸Ä, ¥·¥ã¡¼¥× %d ¸Ä"
-
-#, fuzzy
-#~ msgid "not a forced distance; cross-staff spanners may be broken"
-#~ msgstr ""
-#~ "minVerticalAlign != maxVerticalAlign: ÆâÉôŪ¤Ê beams/slurs ¤¬²õ¤ì¤Þ¤·¤¿"
-
-#~ msgid "wrong identifier type, expected: `%s'"
-#~ msgstr "´Ö°ã¤Ã¤¿¼±Ê̻ҷ¿¡¢¤³¤³¤ËÍè¤ë¤Ù¤¤â¤Î¤Ï: `%s'"
-
-#~ msgid "show all changes in relative syntax"
-#~ msgstr "´ØÏ¢¤¹¤ëʸˡ¤«¤éÁ´¤Æ¤ÎÊѹ¹¤òɽ¼¨"
-
-#~ msgid "switch on experimental features"
-#~ msgstr "¼Â¸³Åª¤Êµ¡Ç½¤ò͸ú¤Ë¤¹¤ë"
-
-#~ msgid "Automatically generated"
-#~ msgstr "¼«Æ°À¸À®¤µ¤ì¤¿"
+#~ msgid "#32 in quarter: %d"
+#~ msgstr "»Íʬ¤ÎÃæ¤Ë #32: %d"
-#, fuzzy
-#~ msgid "Wrong type for property"
-#~ msgstr "°ÀÃͤؤΥ¿¥¤¥×¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
+#~ msgid "track %d:"
+#~ msgstr "¥È¥é¥Ã¥¯ %d:"
-#~ msgid "too small"
-#~ msgstr "¾®¤µ¤¹¤®¤Þ¤¹"
+#~ msgid "track "
+#~ msgstr "¥È¥é¥Ã¥¯ "
-#~ msgid "Non-matching braces in text `%s', adding braces"
-#~ msgstr ""
-#~ "¥Æ¥¥¹¥È `%s' Ãæ¤Ë°ìÃפ¹¤ë¥Ö¥ì¡¼¥¹¤¬¤¢¤ê¤Þ¤»¤ó¡£¥Ö¥ì¡¼¥¹¤òÄɲä·¤Þ¤¹"
+#~ msgid "NOT Filtering tempo..."
+#~ msgstr "¥Æ¥ó¥Ý¤Î¥Õ¥£¥ë¥¿¤ò¤·¤Þ¤»¤ó..."
-#~ msgid "Huh? Not a Request: `%s'"
-#~ msgstr "¤Ï? Í×µá¤Ç¤Ï¤Ê¤¤: `%s'"
+#~ msgid "NOT Quantifying columns..."
+#~ msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤»¤ó..."
-#~ msgid "Must stop before this music ends"
-#~ msgstr "¤³¤Î³Ú¶Ê¤Î½ª¤ï¤ê¤Þ¤Ç¤Ë»ß¤á¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+#~ msgid "Quantifying columns..."
+#~ msgstr "¥«¥é¥à¤ÎŤµ¤òÎ̤ê¤Þ¤¹..."
-#~ msgid "no one to print a volta bracket"
-#~ msgstr "volta ¥Ö¥é¥±¥Ã¥È¤òɽ¼¨¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó"
+#~ msgid "Settling columns..."
+#~ msgstr "¥«¥é¥à¤ò·èÄꤷ¤Þ¤¹..."
-#~ msgid "Interpretation context with empty type"
-#~ msgstr "¶õ¥¿¥¤¥×¤Î²ò¼á¥³¥ó¥Æ¥¥¹¥È"
+#~ msgid "% MIDI copyright:"
+#~ msgstr "% MIDI copyright:"
-#~ msgid "No bar engraver found. Ignoring repeats."
-#~ msgstr "¾®À᤬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£È¿Éü¤ò̵»ë¤·¤Þ¤¹¡£"
+#~ msgid "% MIDI instrument:"
+#~ msgstr "% MIDI instrument:"
-#, fuzzy
-#~ msgid "cannot find both ends of %s"
-#~ msgstr "%s ¤Îξü¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+#~ msgid "lily indent level: %d"
+#~ msgstr "lily indent level: %d"
-#~ msgid "slur"
-#~ msgstr "¥¹¥é¡¼"
+#~ msgid "% Creator: "
+#~ msgstr "%s Creator: "
-#~ msgid "lost in time:"
-#~ msgstr "Çï»Ò¤Ë̤¤¤Þ¤·¤¿:"
+#~ msgid "% Automatically generated"
+#~ msgstr "% Automatically generated"
-#~ msgid "Need a translator group for a context"
-#~ msgstr "¥³¥ó¥Æ¥¥¹¥È¤Ë¤Ï¥È¥é¥ó¥¹¥ì¡¼¥¿¥°¥ë¡¼¥×¤¬É¬ÍפǤ¹"
+#~ msgid "% from input file: "
+#~ msgstr "% from input file: "
#~ msgid "Debug output disabled. Compiled with NPRINT."
-#~ msgstr ""
-#~ "¥Ç¥Ð¥Ã¥°½ÐÎϤ¬Ìµ¸ú¤Ë¤µ¤ì¤Æ¤¤¤Þ¤¹¡£NPRINT ¤Ä¤¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿¡£"
+#~ msgstr "¥Ç¥Ð¥Ã¥°½ÐÎϤ¬Ìµ¸ú¤Ë¤µ¤ì¤Æ¤¤¤Þ¤¹¡£NPRINT ¤Ä¤¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿¡£"
#~ msgid "programming warning: "
#~ msgstr "¥×¥í¥°¥é¥à¾å¤Î·Ù¹ð: "
#~ msgid "Score does not have any columns"
#~ msgstr "ÉèÌ̤˥«¥é¥à¤¬¤¢¤ê¤Þ¤»¤ó"
-#~ msgid "approximated %s"
-#~ msgstr "¤ª¤ª¤è¤½ %s"
-
#~ msgid "calculated %s exactly"
#~ msgstr "Àµ³Î¤Ë·×»»¤µ¤ì¤¿ %s"
#~ msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
#~ msgstr "Ineq_constrained_qp::solve (): À©¸Â¤ò %f ¤Ç²ò½ü"
-#~ msgid "Didnnot converge!"
+#~ msgid "Didn't converge!"
#~ msgstr "¼ý«¤·¤Þ¤»¤ó¤Ç¤·¤¿!"
#~ msgid "too much degeneracy"
#~ msgstr "¾®¤µ¤¹¤®¤Þ¤¹"
-#~ msgid "No key name, assuming `C'"
-#~ msgstr "¥¡¼Ì¾¤¬¤¢¤ê¤Þ¤»¤ó¡¢`C' ¤ò»î¤ß¤Þ¤¹"
-
-#~ msgid "underdone accidentals (%s)"
-#~ msgstr "¥Õ¥é¥Ã¥È¤¬Â¿¤¹¤®¤Þ¤¹ (%s)"
-
#~ msgid "Huh? Empty Line_of_score?"
#~ msgstr "¤Ï? ÉèÌ̤ιԤ¬¶õ?"
-#~ msgid "out of tune:"
-#~ msgstr "Èϰϳ°¤ÎÄ´:"
-
-#~ msgid "ignore mudela version"
-#~ msgstr "mudela ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò̵»ë¤¹¤ë"
-
#~ msgid "redeclaration of `\\%s'"
#~ msgstr "`\\%s' ¤ÎºÆÀë¸À"
#~ msgid "Must set spring between differing columns"
#~ msgstr "°Û¤Ê¤ë¥«¥é¥à¤Î´Ö¤Ë spring ¤ò¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#~ msgid "not a real variable"
-#~ msgstr "Ãͤ¬¼Â¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
#~ msgid "improbable offset for object type: `%s'"
#~ msgstr "¥ª¥Ö¥¸¥§¥¯¥È·¿¤Ë¤È¤Ã¤Æ¤¢¤ê¤½¤¦¤Ë¤Ê¤¤¥ª¥Õ¥»¥Ã¥È: `%s'"
-#~ msgid "Cannot solve this casting problem exactly; reverting to Word_wrap"
+#~ msgid "Can't solve this casting problem exactly; reverting to Word_wrap"
#~ msgstr "Àµ³Î¤Ë¥¥ã¥¹¥È¤ò²ò·è¤Ç¤¤Þ¤»¤ó -- Word_wrap ¤ËÉüµ¢¤·¤Þ¤¹"
#~ msgid "%s elements"
#~ msgid "Left spanpoint is right spanpoint"
#~ msgstr "ÈϰϤκ¸Â¦¤¬¡¢±¦Â¦¤Ë¤¢¤ê¤Þ¤¹"
-#~ msgid "Spanner `%s' has equal left and right spanpoints"
-#~ msgstr "ÈÏ°Ï»ØÄê»Ò `%s' ¤Îº¸±¦¤ÎÅÀ¤¬Æ±¤¸¤Ç¤¹"
-
#~ msgid "spanner with negative length"
#~ msgstr "ÈÏ°Ï»ØÄê»Ò¤¬Éé¤ÎŤµ¤Ç¤¹"
#~ msgid "Generating stupido solution"
#~ msgstr "Çϼ¯¤²¤¿²ò·è¤òÀ¸À®Ãæ"
-#~ msgid "I do not fit; put me on Montignac"
+#~ msgid "I don't fit; put me on Montignac"
#~ msgstr "¾å¼ê¤¯¤Ï¤Þ¤ê¤Þ¤»¤ó -- Montignac ¤Î¤È¤³¤í¤ËÃÖ¤¤¤Æ¤¯¤À¤µ¤¤"
#~ msgid "More than one music block"
#~ msgid "Need even number of args for shape array"
#~ msgstr "shape ÇÛÎó¤Ø¤Î°ú¿ô¤Ï¶ö¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-#~ msgid "Cannot abbreviate"
+#~ msgid "Can't abbreviate"
#~ msgstr "¾Êά¤Ç¤¤Þ¤»¤ó"
-#~ msgid "Cannot abbreviate tuplet"
+#~ msgid "Can't abbreviate tuplet"
#~ msgstr "¥¿¥×¥ì¥Ã¥È¤ò¾Êά¤Ç¤¤Þ¤»¤ó"
#~ msgid "assume no tuplets"
#
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 2.11.38\n"
+"Project-Id-Version: lilypond 2.11.39\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-01-30 10:02+0100\n"
+"POT-Creation-Date: 2008-02-14 15:55+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "%s has been replaced by %s"
msgstr ""
-#: convertrules.py:96
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:47 lilypond-book.py:82
+#: warn.cc:48 input.cc:90
+#, c-format, python-format
+msgid "warning: %s"
+msgstr ""
+
+#: convertrules.py:33 convertrules.py:103
+msgid "\\header { key = concat + with + operator }"
+msgstr ""
+
+#: convertrules.py:48
+#, python-format
+msgid "deprecated %s"
+msgstr ""
+
+#: convertrules.py:61
+msgid "deprecated \\textstyle, new \\key syntax"
+msgstr ""
+
+#: convertrules.py:80 convertrules.py:2124 convertrules.py:2337
+#: convertrules.py:2512 convertrules.py:2889
+msgid "bump version for release"
+msgstr ""
+
+#: convertrules.py:99
msgid "new \\header format"
msgstr ""
-#: convertrules.py:130
+#: convertrules.py:133
msgid "\\translator syntax"
msgstr ""
-#: convertrules.py:381
+#: convertrules.py:211
+msgid "\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative"
+msgstr ""
+
+#: convertrules.py:254 convertrules.py:828 convertrules.py:1584
+#: convertrules.py:2685
+#, python-format
+msgid "deprecate %s"
+msgstr ""
+
+#: convertrules.py:361
+#, python-format
+msgid "deprecate %s "
+msgstr ""
+
+#: convertrules.py:384
msgid "new \\notenames format"
msgstr ""
-#: convertrules.py:401 convertrules.py:428
+#: convertrules.py:404
msgid "new tremolo format"
msgstr ""
-#: convertrules.py:541
+#: convertrules.py:417
+msgid "Staff_margin_engraver deprecated, use Instrument_name_engraver"
+msgstr ""
+
+#: convertrules.py:536
+msgid "change property definiton case (eg. onevoice -> oneVoice)"
+msgstr ""
+
+#: convertrules.py:544
msgid "new \\textscript markup text"
msgstr ""
-#: convertrules.py:1161
+#: convertrules.py:638
+#, python-format
+msgid "identifier names: %s"
+msgstr ""
+
+#: convertrules.py:679
+msgid "point-and-click argument changed to procedure."
+msgstr ""
+
+#: convertrules.py:739
+msgid "semicolons removed"
+msgstr ""
+
+#. 40 ?
+#: convertrules.py:795
+#, python-format
+msgid "%s property names"
+msgstr ""
+
+#: convertrules.py:865
+msgid "automaticMelismata turned on by default"
+msgstr ""
+
+#: convertrules.py:1131 convertrules.py:1893 convertrules.py:2166
+#: convertrules.py:2472
+#, python-format
+msgid "remove %s"
+msgstr ""
+
+#: convertrules.py:1164 convertrules.py:1173
msgid "cluster syntax"
msgstr ""
-#: convertrules.py:2408
-msgid "LilyPond source must be UTF-8"
+#: convertrules.py:1182
+msgid "new Pedal style syntax"
+msgstr ""
+
+#: convertrules.py:1451
+msgid ""
+"New relative mode,\n"
+"Postfix articulations, new text markup syntax, new chord syntax."
+msgstr ""
+
+#: convertrules.py:1475
+msgid "Remove - before articulation"
+msgstr ""
+
+#: convertrules.py:1515
+#, python-format
+msgid "%s misspelling"
+msgstr ""
+
+#: convertrules.py:1521
+msgid "attempting automatic \\figures conversion. Check results!"
+msgstr ""
+
+#: convertrules.py:1550
+msgid "Swap < > and << >>"
+msgstr ""
+
+#: convertrules.py:1576
+msgid "Use Scheme code to construct arbitrary note events."
+msgstr ""
+
+#: convertrules.py:1609
+#, python-format
+msgid ""
+"\\outputproperty found,\n"
+"Please hand-edit, using\n"
+"\n"
+" \\applyoutput #(outputproperty-compatibility %s '%s <GROB PROPERTY "
+"VALUE>)\n"
+"\n"
+"as a substitution text."
+msgstr ""
+
+#: convertrules.py:1623
+msgid ""
+"The alteration field of Scheme pitches was multiplied by 2\n"
+"to support quarter tone accidentals. You must update the following "
+"constructs manually:\n"
+"\n"
+"* calls of ly:make-pitch and ly:pitch-alteration\n"
+"* keySignature settings made with \\property\n"
+msgstr ""
+
+#: convertrules.py:1633
+msgid ""
+"use symbolic constants for alterations,\n"
+"remove \\outputproperty, move ly:verbose into ly:get-option"
+msgstr ""
+
+#: convertrules.py:1692
+msgid "removal of automaticMelismata; use melismaBusyProperties instead."
+msgstr ""
+
+#: convertrules.py:1807
+msgid "\\partcombine syntax change to \\newpartcombine"
+msgstr ""
+
+#: convertrules.py:1824
+msgid "Drums found. Enclose drum notes in \\drummode"
+msgstr ""
+
+#: convertrules.py:1835 convertrules.py:1842 convertrules.py:1853
+#, python-format
+msgid ""
+"\n"
+"%s found. Check file manually!\n"
+msgstr ""
+
+#: convertrules.py:1835
+msgid "Drum notation"
+msgstr ""
+
+#: convertrules.py:1863
+msgid ""
+"Drum notation changes, Removing \\chordmodifiers, \\notenames.\n"
+"Harmonic notes. Thread context removed. Lyrics context removed."
+msgstr ""
+
+#: convertrules.py:1924
+msgid "new syntax for property settings:"
+msgstr ""
+
+#: convertrules.py:1957
+msgid "Property setting syntax in \\translator{ }"
+msgstr ""
+
+#: convertrules.py:1978
+#, python-format
+msgid "use %s"
+msgstr ""
+
+#: convertrules.py:1995
+msgid "Scheme grob function renaming"
+msgstr ""
+
+#: convertrules.py:2008
+msgid "More Scheme function renaming"
+msgstr ""
+
+#: convertrules.py:2140
+msgid ""
+"Page layout has been changed, using paper size and margins.\n"
+"textheight is no longer used.\n"
+msgstr ""
+
+#: convertrules.py:2259
+msgid ""
+"\\foo -> \\foomode (for chords, notes, etc.)\n"
+"fold \\new FooContext \\foomode into \\foo."
+msgstr ""
+
+#: convertrules.py:2285
+msgid ""
+"staff size should be changed at top-level\n"
+"with\n"
+"\n"
+" #(set-global-staff-size <STAFF-HEIGHT-IN-POINT>)\n"
+"\n"
+msgstr ""
+
+#: convertrules.py:2320
+msgid "regularize other identifiers"
msgstr ""
#: convertrules.py:2411
-msgid "Try the texstrings backend"
+msgid "LilyPond source must be UTF-8"
msgstr ""
#: convertrules.py:2414
+msgid "Try the texstrings backend"
+msgstr ""
+
+#: convertrules.py:2417
#, python-format
msgid "Do something like: %s"
msgstr ""
-#: convertrules.py:2417
+#: convertrules.py:2420
msgid "Or save as UTF-8 in your editor"
msgstr ""
-#: convertrules.py:2482
+#: convertrules.py:2452
+msgid "\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click"
+msgstr ""
+
+#: convertrules.py:2485
msgid "auto beam settings"
msgstr ""
-#: convertrules.py:2974
+#: convertrules.py:2487
+msgid ""
+"\n"
+"Auto beam settings must now specify each interesting moment in a measure\n"
+"explicitely; 1/4 is no longer multiplied to cover moments 1/2 and 3/4 too.\n"
+msgstr ""
+
+#: convertrules.py:2498
+msgid "warn about auto beam settings"
+msgstr ""
+
+#: convertrules.py:2624
+msgid "verticalAlignmentChildCallback has been deprecated"
+msgstr ""
+
+#: convertrules.py:2652
+msgid "Remove callbacks property, deprecate XY-extent-callback."
+msgstr ""
+
+#: convertrules.py:2663
+msgid "Use grob closures iso. XY-offset-callbacks."
+msgstr ""
+
+#: convertrules.py:2770
+msgid "foobar -> foo-bar for \\paper, \\layout"
+msgstr ""
+
+#: convertrules.py:2877
+msgid "deprecate \\tempo in \\midi"
+msgstr ""
+
+#: convertrules.py:2912
+msgid "deprecate cautionary-style. Use AccidentalCautionary properties"
+msgstr ""
+
+#: convertrules.py:2941
+msgid "Rename accidental glyphs, use glyph-name-alist."
+msgstr ""
+
+#: convertrules.py:2973
msgid "edge-text settings for TextSpanner."
msgstr ""
-#: convertrules.py:2975
+#: convertrules.py:2974
#, python-format
msgid ""
"Use\n"
"%s"
msgstr ""
-#: convertrules.py:3021
+#: convertrules.py:3020
msgid "all settings related to dashed lines.\n"
msgstr ""
-#: convertrules.py:3022
+#: convertrules.py:3021
msgid "Use \\override ... #'style = #'line for solid lines and\n"
msgstr ""
-#: convertrules.py:3023
+#: convertrules.py:3022
msgid "\t\\override ... #'style = #'dashed-line for dashed lines."
msgstr ""
+#: convertrules.py:3027
+msgid "Use #'style not #'dash-fraction to select solid/dashed lines."
+msgstr ""
+
#: fontextract.py:26
#, python-format
msgid "Scanning %s"
msgid "Writing fonts to %s"
msgstr ""
-#: lilylib.py:85 lilylib.py:136
+#: lilylib.py:102 lilylib.py:153
#, python-format
msgid "Invoking `%s'"
msgstr ""
-#: lilylib.py:87 lilylib.py:138
+#: lilylib.py:104 lilylib.py:155
#, python-format
msgid "Running %s..."
msgstr ""
-#: lilylib.py:203
+#: lilylib.py:220
#, python-format
msgid "Usage: %s"
msgstr ""
-#: abc2ly.py:1342 convert-ly.py:71 lilypond-book.py:110 midi2ly.py:858
+#: musicexp.py:577
+#, python-format
+msgid "unable to set the music %(music)s for the repeat %(repeat)s"
+msgstr ""
+
+#: musicexp.py:586
+msgid "encountered repeat without body"
+msgstr ""
+
+#: musicxml.py:13 convert-ly.py:50 lilypond-book.py:85 warn.cc:54 input.cc:96
+#: input.cc:104
+#, c-format, python-format
+msgid "error: %s"
+msgstr ""
+
+#: musicxml.py:272
+msgid "requested time signature, but time sig is unknown"
+msgstr ""
+
+#: musicxml.py:338
+#, python-format
+msgid "Encountered note at %s with %s duration (no <type> element):"
+msgstr ""
+
+#: musicxml.py:372
+#, python-format
+msgid "Unable to find find instrument for ID=%s\n"
+msgstr ""
+
+#: abc2ly.py:1342 convert-ly.py:71 lilypond-book.py:109 midi2ly.py:849
#, python-format
msgid "%s [OPTION]... FILE"
msgstr ""
-#: abc2ly.py:1344
+#: abc2ly.py:1343
#, python-format
msgid ""
"abc2ly converts ABC music files (see\n"
"%s) to LilyPond input."
msgstr ""
-#: abc2ly.py:1348 etf2ly.py:1184 midi2ly.py:874
+#: abc2ly.py:1350 convert-ly.py:78 etf2ly.py:1190 lilypond-book.py:175
+#: midi2ly.py:885 musicxml2ly.py:1824 main.cc:161
+msgid "show version number and exit"
+msgstr ""
+
+#: abc2ly.py:1354 convert-ly.py:82 etf2ly.py:1186 lilypond-book.py:125
+#: midi2ly.py:864 musicxml2ly.py:1808 main.cc:150
+msgid "show this help and exit"
+msgstr ""
+
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:868
msgid "write output to FILE"
msgstr ""
-#: abc2ly.py:1350
+#: abc2ly.py:1358
msgid "be strict about succes"
msgstr ""
-#: abc2ly.py:1352
+#: abc2ly.py:1360
msgid "preserve ABC's notion of beams"
msgstr ""
-#: abc2ly.py:1354 convert-ly.py:103 etf2ly.py:1192 lilypond-book.py:161
-#: midi2ly.py:900 musicxml2ly.py:1682
+#: abc2ly.py:1361 convert-ly.py:111 etf2ly.py:1198 lilypond-book.py:180
+#: midi2ly.py:897 musicxml2ly.py:1872
+msgid "Bugs"
+msgstr ""
+
+#: abc2ly.py:1362 convert-ly.py:112 etf2ly.py:1199 lilypond-book.py:181
+#: midi2ly.py:898 musicxml2ly.py:1873
msgid "Report bugs via"
msgstr ""
msgid "Examples:"
msgstr ""
-#: convert-ly.py:47 lilypond-book.py:83 warn.cc:48 input.cc:90
-#, c-format, python-format
-msgid "warning: %s"
-msgstr ""
-
-#: convert-ly.py:50 lilypond-book.py:86 warn.cc:54 input.cc:96 input.cc:104
-#, c-format, python-format
-msgid "error: %s"
-msgstr ""
-
-#: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:87
+#: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:105 midi2ly.py:79
msgid "Distributed under terms of the GNU General Public License."
msgstr ""
-#: convert-ly.py:67 etf2ly.py:1175 lilypond-book.py:107 midi2ly.py:88
+#: convert-ly.py:67 etf2ly.py:1175 lilypond-book.py:106 midi2ly.py:80
msgid "It comes with NO WARRANTY."
msgstr ""
-#: convert-ly.py:77 convert-ly.py:97
+#: convert-ly.py:86 convert-ly.py:106
msgid "VERSION"
msgstr ""
-#: convert-ly.py:79
+#: convert-ly.py:88
msgid "start from VERSION [default: \\version found in file]"
msgstr ""
-#: convert-ly.py:82
+#: convert-ly.py:91
msgid "edit in place"
msgstr ""
-#: convert-ly.py:85
+#: convert-ly.py:94
msgid "do not add \\version command if missing"
msgstr ""
-#: convert-ly.py:91
+#: convert-ly.py:100
msgid "show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"
msgstr ""
-#: convert-ly.py:96
+#: convert-ly.py:105
msgid "convert to VERSION [default: @TOPLEVEL_VERSION@]"
msgstr ""
-#: convert-ly.py:144
+#: convert-ly.py:153
msgid "Applying conversion: "
msgstr ""
-#: convert-ly.py:157
+#: convert-ly.py:166
msgid "Error while converting"
msgstr ""
-#: convert-ly.py:159
+#: convert-ly.py:168
msgid "Stopping at last succesful rule"
msgstr ""
-#: convert-ly.py:181
+#: convert-ly.py:190
#, python-format
msgid "Processing `%s'... "
msgstr ""
-#: convert-ly.py:268 relocate.cc:362 source-file.cc:54
+#: convert-ly.py:277 relocate.cc:362 source-file.cc:54
#, c-format, python-format
msgid "cannot open file: `%s'"
msgstr ""
-#: convert-ly.py:275
+#: convert-ly.py:284
#, python-format
msgid "cannot determine version for `%s'. Skipping"
msgstr ""
msgid "%s [OPTION]... ETF-FILE"
msgstr ""
-#: etf2ly.py:1182
+#: etf2ly.py:1181
msgid ""
"Enigma Transport Format is a format used by Coda Music Technology's\n"
"Finale product. etf2ly converts a subset of ETF to a ready-to-use LilyPond "
"file."
msgstr ""
-#: etf2ly.py:1185 midi2ly.py:875 musicxml2ly.py:1675 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:869 musicxml2ly.py:1866 main.cc:154 main.cc:159
msgid "FILE"
msgstr ""
-#: etf2ly.py:1187 lilypond-book.py:158 midi2ly.py:888 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:178 midi2ly.py:886 main.cc:163
msgid "show warranty and copyright"
msgstr ""
msgid "Exiting (%d)..."
msgstr ""
-#: lilypond-book.py:104
+#: lilypond-book.py:103
#, python-format
msgid "Copyright (c) %s by"
msgstr ""
-#: lilypond-book.py:114
+#: lilypond-book.py:113
msgid "FILTER"
msgstr ""
-#: lilypond-book.py:117
+#: lilypond-book.py:116
msgid "pipe snippets through FILTER [convert-ly -n -]"
msgstr ""
"use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
msgstr ""
-#: lilypond-book.py:123
+#: lilypond-book.py:127
msgid "add DIR to include path"
msgstr ""
-#: lilypond-book.py:124 lilypond-book.py:136 main.cc:153
+#: lilypond-book.py:128 lilypond-book.py:135 lilypond-book.py:147 main.cc:153
msgid "DIR"
msgstr ""
-#: lilypond-book.py:129
+#: lilypond-book.py:133
+msgid "format Texinfo output so that Info will look for images of music in DIR"
+msgstr ""
+
+#: lilypond-book.py:140
msgid "PAD"
msgstr ""
-#: lilypond-book.py:135
+#: lilypond-book.py:142
+msgid ""
+"pad left side of music to align music inspite of uneven bar numbers (in mm)"
+msgstr ""
+
+#: lilypond-book.py:146
msgid "write output to DIR"
msgstr ""
-#: lilypond-book.py:140
+#: lilypond-book.py:151
msgid "COMMAND"
msgstr ""
-#: lilypond-book.py:141
+#: lilypond-book.py:152
msgid "process ly_files using COMMAND FILE..."
msgstr ""
-#: lilypond-book.py:147
-msgid "Create PDF files for use with PDFTeX"
+#: lilypond-book.py:159
+msgid "create PDF files for use with PDFTeX"
msgstr ""
-#: lilypond-book.py:150
+#: lilypond-book.py:163
msgid ""
"extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
"must use this with dvips -h INPUT.psfonts"
msgstr ""
-#: lilypond-book.py:153 midi2ly.py:885 musicxml2ly.py:1645 main.cc:162
+#: lilypond-book.py:167 midi2ly.py:879 musicxml2ly.py:1829 main.cc:162
msgid "be verbose"
msgstr ""
-#: lilypond-book.py:768
+#: lilypond-book.py:788
#, python-format
msgid "file not found: %s"
msgstr ""
-#: lilypond-book.py:1002
+#: lilypond-book.py:1022
#, python-format
msgid "deprecated ly-option used: %s=%s"
msgstr ""
-#: lilypond-book.py:1005
+#: lilypond-book.py:1025
#, python-format
msgid "compatibility mode translation: %s=%s"
msgstr ""
-#: lilypond-book.py:1009
+#: lilypond-book.py:1029
#, python-format
msgid "deprecated ly-option used: %s"
msgstr ""
-#: lilypond-book.py:1012
+#: lilypond-book.py:1032
#, python-format
msgid "compatibility mode translation: %s"
msgstr ""
-#: lilypond-book.py:1031
+#: lilypond-book.py:1051
#, python-format
msgid "ignoring unknown ly option: %s"
msgstr ""
-#: lilypond-book.py:1401
+#: lilypond-book.py:1422
#, python-format
msgid "Opening filter `%s'"
msgstr ""
-#: lilypond-book.py:1418
+#: lilypond-book.py:1439
#, python-format
msgid "`%s' failed (%d)"
msgstr ""
-#: lilypond-book.py:1419
+#: lilypond-book.py:1440
msgid "The error log is as follows:"
msgstr ""
-#: lilypond-book.py:1491
+#: lilypond-book.py:1512
msgid "cannot find \\begin{document} in LaTeX document"
msgstr ""
-#: lilypond-book.py:1602
+#: lilypond-book.py:1623
msgid "Writing snippets..."
msgstr ""
-#: lilypond-book.py:1607
+#: lilypond-book.py:1628
msgid "Processing..."
msgstr ""
-#: lilypond-book.py:1611
+#: lilypond-book.py:1632
msgid "All snippets are up to date..."
msgstr ""
-#: lilypond-book.py:1621
+#: lilypond-book.py:1642
#, python-format
msgid "cannot determine format for: %s"
msgstr ""
-#: lilypond-book.py:1632
+#: lilypond-book.py:1653
#, python-format
msgid "%s is up to date."
msgstr ""
-#: lilypond-book.py:1638
+#: lilypond-book.py:1659
#, python-format
msgid "Writing `%s'..."
msgstr ""
-#: lilypond-book.py:1693
+#: lilypond-book.py:1714
msgid "Output would overwrite input file; use --output."
msgstr ""
-#: lilypond-book.py:1697
+#: lilypond-book.py:1718
#, python-format
msgid "Reading %s..."
msgstr ""
-#: lilypond-book.py:1716
+#: lilypond-book.py:1737
msgid "Dissecting..."
msgstr ""
-#: lilypond-book.py:1732
+#: lilypond-book.py:1753
#, python-format
msgid "Compiling %s..."
msgstr ""
-#: lilypond-book.py:1741
+#: lilypond-book.py:1762
#, python-format
msgid "Processing include: %s"
msgstr ""
-#: lilypond-book.py:1755
+#: lilypond-book.py:1776
#, python-format
msgid "Removing `%s'"
msgstr ""
-#: lilypond-book.py:1788
+#: lilypond-book.py:1809
msgid "option --psfonts not used"
msgstr ""
-#: lilypond-book.py:1789
+#: lilypond-book.py:1810
msgid "processing with dvips will have no fonts"
msgstr ""
-#: lilypond-book.py:1792
+#: lilypond-book.py:1813
msgid "DVIPS usage:"
msgstr ""
-#: lilypond-book.py:1848
+#: lilypond-book.py:1869
#, python-format
msgid "Writing fonts to %s..."
msgstr ""
-#: midi2ly.py:95 lily-library.scm:615 lily-library.scm:624
+#: midi2ly.py:87 lily-library.scm:615 lily-library.scm:624
msgid "warning: "
msgstr ""
-#: midi2ly.py:98 midi2ly.py:913
+#: midi2ly.py:90 midi2ly.py:911
msgid "error: "
msgstr ""
-#: midi2ly.py:99
-msgid "Exiting ... "
+#: midi2ly.py:91
+msgid "Exiting... "
msgstr ""
-#: midi2ly.py:846
+#: midi2ly.py:837
#, python-format
msgid "%s output to `%s'..."
msgstr ""
-#: midi2ly.py:860 musicxml2ly.py:1641
+#: midi2ly.py:850 musicxml2ly.py:1803
#, python-format
msgid "Convert %s to LilyPond input."
msgstr ""
-#: midi2ly.py:864
+#: midi2ly.py:855
msgid "print absolute pitches"
msgstr ""
-#: midi2ly.py:866 midi2ly.py:878
+#: midi2ly.py:857 midi2ly.py:872
msgid "DUR"
msgstr ""
-#: midi2ly.py:867
+#: midi2ly.py:858
msgid "quantise note durations on DUR"
msgstr ""
-#: midi2ly.py:870
+#: midi2ly.py:861
msgid "print explicit durations"
msgstr ""
-#: midi2ly.py:871
+#: midi2ly.py:865
msgid "set key: ALT=+sharps|-flats; MINOR=1"
msgstr ""
-#: midi2ly.py:872
+#: midi2ly.py:866
msgid "ALT[:MINOR]"
msgstr ""
-#: midi2ly.py:877
+#: midi2ly.py:871
msgid "quantise note starts on DUR"
msgstr ""
-#: midi2ly.py:880
+#: midi2ly.py:874
msgid "DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:883
+#: midi2ly.py:877
msgid "allow tuplet durations DUR*NUM/DEN"
msgstr ""
-#: midi2ly.py:891
+#: midi2ly.py:889
msgid "treat every text as a lyric"
msgstr ""
-#: midi2ly.py:894
+#: midi2ly.py:892
msgid "Examples"
msgstr ""
-#: midi2ly.py:914
+#: midi2ly.py:912
msgid "no files specified on command line."
msgstr ""
-#: musicxml2ly.py:1628
+#: musicxml2ly.py:193 musicxml2ly.py:195
+#, python-format
+msgid "Unprocessed PartGroupInfo %s encountered"
+msgstr ""
+
+#: musicxml2ly.py:426
+#, python-format
+msgid ""
+"Encountered rational duration with denominator %s, unable to convert to "
+"lilypond duration"
+msgstr ""
+
+#: musicxml2ly.py:609
+#, python-format
+msgid "unknown mode %s, expecting 'major' or 'minor'"
+msgstr ""
+
+#: musicxml2ly.py:647
+#, python-format
+msgid "Encountered unprocessed marker %s\n"
+msgstr ""
+
+#: musicxml2ly.py:741
+#, python-format
+msgid "unknown span event %s"
+msgstr ""
+
+#: musicxml2ly.py:751
+#, python-format
+msgid "unknown span type %s for %s"
+msgstr ""
+
+#: musicxml2ly.py:1259
+#, python-format
+msgid "drum %s type unknown, please add to instrument_drumtype_dict"
+msgstr ""
+
+#: musicxml2ly.py:1263
+msgid "cannot find suitable event"
+msgstr ""
+
+#: musicxml2ly.py:1346
+#, python-format
+msgid "Negative skip %s"
+msgstr ""
+
+#: musicxml2ly.py:1480
+#, python-format
+msgid "Negative skip found: from %s to %s, difference is %s"
+msgstr ""
+
+#: musicxml2ly.py:1505
+#, python-format
+msgid "unexpected %s; expected %s or %s or %s"
+msgstr ""
+
+#: musicxml2ly.py:1583
+msgid "cannot have two simultaneous slurs"
+msgstr ""
+
+#: musicxml2ly.py:1711
+#, python-format
+msgid "cannot simultaneously have more than one mode: %s"
+msgstr ""
+
+#: musicxml2ly.py:1791
+msgid "Converting to LilyPond expressions..."
+msgstr ""
+
+#: musicxml2ly.py:1802
msgid "musicxml2ly [options] FILE.xml"
msgstr ""
-#: musicxml2ly.py:1631
+#: musicxml2ly.py:1812
#, python-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"information."
msgstr ""
-#: musicxml2ly.py:1651
-msgid "Use lxml.etree; uses less memory and cpu time."
+#: musicxml2ly.py:1835
+msgid "use lxml.etree; uses less memory and cpu time"
msgstr ""
-#: musicxml2ly.py:1657
-msgid "Input file is a zip-compressed MusicXML file."
+#: musicxml2ly.py:1841
+msgid "input file is a zip-compressed MusicXML file"
msgstr ""
-#: musicxml2ly.py:1662
-msgid "Convert pitches in relative mode."
+#: musicxml2ly.py:1847
+msgid "convert pitches in relative mode (default)"
msgstr ""
-#: musicxml2ly.py:1666
-msgid "Use a different language file, e.g. 'deutsch' for deutsch.ly."
+#: musicxml2ly.py:1852
+msgid "convert pitches in absolute mode"
msgstr ""
-#: musicxml2ly.py:1672
-msgid "Do not convert directions (^, _ or -) for articulations."
+#: musicxml2ly.py:1855
+msgid "LANG"
msgstr ""
-#: musicxml2ly.py:1680
+#: musicxml2ly.py:1857
+msgid ""
+"use a different language file 'LANG.ly' and corresponding pitch names, e.g. "
+"'deutsch' for deutsch.ly"
+msgstr ""
+
+#: musicxml2ly.py:1863
+msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
+msgstr ""
+
+#: musicxml2ly.py:1871
msgid "set output filename to FILE"
msgstr ""
+#: musicxml2ly.py:1929
+#, python-format
+msgid "unknown part in part-list: %s"
+msgstr ""
+
+#: musicxml2ly.py:1985
+#, python-format
+msgid "Input file %s is compressed, extracting raw MusicXML data"
+msgstr ""
+
+#: musicxml2ly.py:2011
+#, python-format
+msgid "Reading MusicXML from %s ..."
+msgstr ""
+
+#: musicxml2ly.py:2039 musicxml2ly.py:2053
+#, python-format
+msgid "Output to `%s'"
+msgstr ""
+
+#: musicxml2ly.py:2096
+#, python-format
+msgid "Unable to find input file %s"
+msgstr ""
+
#: getopt-long.cc:140
#, c-format
msgid "option `%s' requires an argument"
msgid "alteration not found"
msgstr ""
-#: ligature-engraver.cc:93
+#: ligature-bracket-engraver.cc:62 ligature-engraver.cc:93
msgid "cannot find start of ligature"
msgstr ""
-#: ligature-engraver.cc:98
-msgid "no right bound"
+#: ligature-bracket-engraver.cc:75 ligature-engraver.cc:120
+msgid "already have a ligature"
msgstr ""
-#: ligature-engraver.cc:120
-msgid "already have a ligature"
+#: ligature-engraver.cc:98
+msgid "no right bound"
msgstr ""
#: ligature-engraver.cc:129
msgid "generate TeX (tex backend only)"
msgstr ""
-#: main.cc:150
-msgid "show this help and exit"
-msgstr ""
-
#: main.cc:151
msgid "FIELD"
msgstr ""
msgid "relocate using directory of lilypond program"
msgstr ""
-#: main.cc:161
-msgid "show version number and exit"
-msgstr ""
-
#: main.cc:203
#, c-format
msgid ""
msgid "weird stem size, check for narrow beams"
msgstr ""
-#: stem.cc:623
+#: stem.cc:627
#, c-format
msgid "flag `%s' not found"
msgstr ""
-#: stem.cc:634
+#: stem.cc:638
#, c-format
msgid "flag stroke `%s' not found"
msgstr ""
# Vietnamese translation for Lilypond.
-# Copyright © 2007 Free Software Foundation, Inc.
-# Clytie Siddall <clytie@riverland.net.au>, 2007
+# Copyright © 2008 Free Software Foundation, Inc.
+# This file is distributed under the same license as the lilypond-2.11.39 package.
+# Clytie Siddall <clytie@riverland.net.au>, 2007-2008.
#
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 2.11.34\n"
+"Project-Id-Version: lilypond 2.11.39\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2007-10-04 17:07+0200\n"
-"PO-Revision-Date: 2007-10-06 22:34+0930\n"
+"POT-Creation-Date: 2008-02-14 15:55+0100\n"
+"PO-Revision-Date: 2008-02-15 20:55+1030\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: LocFactoryEditor 1.7b1\n"
+"X-Generator: LocFactoryEditor 1.7b3\n"
#: convertrules.py:12
#, python-format
msgid "%s has been replaced by %s"
msgstr "%s đã bị thay thế bằng %s"
-#: convertrules.py:2408
+#: convertrules.py:24 musicexp.py:16 convert-ly.py:47 lilypond-book.py:82
+#: warn.cc:48 input.cc:90
+#, c-format, python-format
+msgid "warning: %s"
+msgstr "cảnh báo : %s"
+
+#: convertrules.py:33 convertrules.py:103
+msgid "\\header { key = concat + with + operator }"
+msgstr "\\header (phần đầu) { khoá = nối_chuỗi + với + toán tử }"
+
+#: convertrules.py:48
+#, python-format
+msgid "deprecated %s"
+msgstr "bị phản đối %s"
+
+#: convertrules.py:61
+msgid "deprecated \\textstyle, new \\key syntax"
+msgstr "\\textstyle (kiểu dáng văn bản) bị phản đối, cú pháp \\key (khoá) mới"
+
+#: convertrules.py:80 convertrules.py:2124 convertrules.py:2337
+#: convertrules.py:2512 convertrules.py:2889
+msgid "bump version for release"
+msgstr "đụng mạnh phiên bản để phát hành"
+
+#: convertrules.py:99
+msgid "new \\header format"
+msgstr "định dạng \\header (phần đầu) mới"
+
+#: convertrules.py:133
+msgid "\\translator syntax"
+msgstr "cú pháp \\translator (dịch giả)"
+
+#: convertrules.py:211
+msgid "\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative"
+msgstr "\\repeat (lặp lại) SỐ âm nhạc xen kẽ -> \\repeat FOLDSTR âm nhạc xen kẽ"
+
+#: convertrules.py:254 convertrules.py:828 convertrules.py:1584
+#: convertrules.py:2685
+#, python-format
+msgid "deprecate %s"
+msgstr "phản đối %s"
+
+#: convertrules.py:361
+#, python-format
+msgid "deprecate %s "
+msgstr "phản đối %s "
+
+#: convertrules.py:384
+msgid "new \\notenames format"
+msgstr "định dạng \\notenames (tên ghi chú) mới"
+
+#: convertrules.py:404
+msgid "new tremolo format"
+msgstr "định dạng tiếng vê mới"
+
+#: convertrules.py:417
+msgid "Staff_margin_engraver deprecated, use Instrument_name_engraver"
+msgstr "Staff_margin_engraver bị phản đối nên dùng Instrument_name_engraver"
+
+#: convertrules.py:536
+msgid "change property definiton case (eg. onevoice -> oneVoice)"
+msgstr "chuyển đổi chữ hoa/thường của lời xác định thuộc tính (v.d. onevoice -> oneVoice)"
+
+#: convertrules.py:544
+msgid "new \\textscript markup text"
+msgstr "văn bản đánh dấu \\textscript (văn lệnh văn bản) mới"
+
+#: convertrules.py:638
+#, python-format
+msgid "identifier names: %s"
+msgstr "tên bộ nhận diện: %s"
+
+#: convertrules.py:679
+msgid "point-and-click argument changed to procedure."
+msgstr "đối số trỏ-và-nhấn-chuột đã thay đổi thành thủ tục."
+
+#: convertrules.py:739
+msgid "semicolons removed"
+msgstr "các dấu chấm phẩy bị gỡ bỏ"
+
+#. 40 ?
+#: convertrules.py:795
+#, python-format
+msgid "%s property names"
+msgstr "các tên thuộc tính %s"
+
+#: convertrules.py:865
+msgid "automaticMelismata turned on by default"
+msgstr "automaticMelismata được bật theo mặc định"
+
+#: convertrules.py:1131 convertrules.py:1893 convertrules.py:2166
+#: convertrules.py:2472
+#, python-format
+msgid "remove %s"
+msgstr "gỡ bỏ %s"
+
+#: convertrules.py:1164 convertrules.py:1173
+msgid "cluster syntax"
+msgstr "cú pháp chùm"
+
+#: convertrules.py:1182
+msgid "new Pedal style syntax"
+msgstr "cú pháp kiểu dáng bàn đạp mới"
+
+#: convertrules.py:1451
+msgid ""
+"New relative mode,\n"
+"Postfix articulations, new text markup syntax, new chord syntax."
+msgstr ""
+"Chế độ tương đối mới.\n"
+"Sự nối bằng khớp Postfix, cú pháp đánh dấu văn bản mới, cú pháp hợp âm mới."
+
+#: convertrules.py:1475
+msgid "Remove - before articulation"
+msgstr "Gỡ bỏ dấu trừ phía trước sự nối bằng khớp"
+
+#: convertrules.py:1515
+#, python-format
+msgid "%s misspelling"
+msgstr "Sai chính tả %s"
+
+#: convertrules.py:1521
+msgid "attempting automatic \\figures conversion. Check results!"
+msgstr "đang thử tự động chuyển đổi các \\figures (hình). Hãy kiểm tra kết quả."
+
+#: convertrules.py:1550
+msgid "Swap < > and << >>"
+msgstr "Trao đổi < > với << >>"
+
+#: convertrules.py:1576
+msgid "Use Scheme code to construct arbitrary note events."
+msgstr "Dùng mã Scheme để cấu táo các dữ kiện ghi chú tùy ý."
+
+#: convertrules.py:1609
+#, python-format
+msgid ""
+"\\outputproperty found,\n"
+"Please hand-edit, using\n"
+"\n"
+" \\applyoutput #(outputproperty-compatibility %s '%s <GROB PROPERTY VALUE>)\n"
+"\n"
+"as a substitution text."
+msgstr ""
+"\\outputproperty (thuộc tính ra) đã tìm thấy,\n"
+"Bạn hãy tự chỉnh sửa, dùng\n"
+"\n"
+" \\applyoutput #(outputproperty-compatibility %s '%s <GROB PROPERTY VALUE>)\n"
+"\n"
+"như là chuỗi thay thế."
+
+#: convertrules.py:1623
+msgid ""
+"The alteration field of Scheme pitches was multiplied by 2\n"
+"to support quarter tone accidentals. You must update the following constructs manually:\n"
+"\n"
+"* calls of ly:make-pitch and ly:pitch-alteration\n"
+"* keySignature settings made with \\property\n"
+msgstr ""
+"Trường sửa đổi của các độ cao giọng Scheme đã được nhân lên 2\n"
+"để hỗ trợ các dấu thăng giáng âm phần tư.\n"
+"Bạn cần phải tự cập nhật những bộ tạo dựng này:\n"
+"* lời gọi kiểu ly:make-pitch và ly:pitch-alteration\n"
+"* thiết lập keySignature (chìa khoá) được làm với \\property (thuộc tính)\n"
+
+#: convertrules.py:1633
+msgid ""
+"use symbolic constants for alterations,\n"
+"remove \\outputproperty, move ly:verbose into ly:get-option"
+msgstr ""
+"dùng các hằng số tượng trưng để sửa đổi,\n"
+"gỡ bỏ \\outputproperty (thuộc tính ra),\n"
+"chuyển ly:verbose vào ly:get-option"
+
+#: convertrules.py:1692
+msgid "removal of automaticMelismata; use melismaBusyProperties instead."
+msgstr "gỡ bỏ automaticMelismata; thay thế bằng melismaBusyProperties."
+
+#: convertrules.py:1807
+msgid "\\partcombine syntax change to \\newpartcombine"
+msgstr "cú pháp \\partcombine (kết hợp các phần) thay đổi thành \\newpartcombine"
+
+#: convertrules.py:1824
+msgid "Drums found. Enclose drum notes in \\drummode"
+msgstr "Tìm thấy cái trống. Bao bọc các nốt tiếng trống trong \\drummode (chế độ cái trống)"
+
+#: convertrules.py:1835 convertrules.py:1842 convertrules.py:1853
+#, python-format
+msgid ""
+"\n"
+"%s found. Check file manually!\n"
+msgstr ""
+"\n"
+"%s tìm thấy. Bạn hãy tự kiểm tra tập tin.\n"
+
+#: convertrules.py:1835
+msgid "Drum notation"
+msgstr "Kiểu ghi cái trống"
+
+#: convertrules.py:1863
+msgid ""
+"Drum notation changes, Removing \\chordmodifiers, \\notenames.\n"
+"Harmonic notes. Thread context removed. Lyrics context removed."
+msgstr ""
+"Kiểu ghi cái trống cứ thay đổi. Đang gỡ bỏ các:\n"
+" • \\chordmodifiers (bộ sửa đổi hợp âm)\n"
+" • \\notenames (tên nốt)\n"
+" • nốt hoà âm\n"
+" • ngữ cảnh nhánh\n"
+" • ngữ cảnh lời nhạc."
+
+#: convertrules.py:1924
+msgid "new syntax for property settings:"
+msgstr "cú pháp mới cho thiết lập thuộc tính:"
+
+#: convertrules.py:1957
+msgid "Property setting syntax in \\translator{ }"
+msgstr "Cú pháp thiết lập thuộc tính trong \\translator{ }"
+
+#: convertrules.py:1978
+#, python-format
+msgid "use %s"
+msgstr "sử dụng %s"
+
+#: convertrules.py:1995
+msgid "Scheme grob function renaming"
+msgstr "Thay tên hàm grob Scheme"
+
+#: convertrules.py:2008
+msgid "More Scheme function renaming"
+msgstr "Thay thêm tên hàm Scheme"
+
+#: convertrules.py:2140
+msgid ""
+"Page layout has been changed, using paper size and margins.\n"
+"textheight is no longer used.\n"
+msgstr ""
+"Bố trí trang đã thay đổi, dùng kích cỡ tờ giấy và các lề trang.\n"
+"textheight không còn được dùng lại.\n"
+
+#: convertrules.py:2259
+msgid ""
+"\\foo -> \\foomode (for chords, notes, etc.)\n"
+"fold \\new FooContext \\foomode into \\foo."
+msgstr ""
+"\\foo -> \\foomode (đối với các hợp âm, nốt v.v.)\n"
+"fold \\new FooContext \\foomode vào \\foo."
+
+#: convertrules.py:2285
+msgid ""
+"staff size should be changed at top-level\n"
+"with\n"
+"\n"
+" #(set-global-staff-size <STAFF-HEIGHT-IN-POINT>)\n"
+"\n"
+msgstr ""
+"kích cỡ khuông nhạc nên được thay đổi ở cấp đầu, dùngl\n"
+"\n"
+" #(set-global-staff-size <CHIỀU_CAO_KHUÔNG_NHẠC_THEO_ĐIỂM>)\n"
+"\n"
+
+#: convertrules.py:2320
+msgid "regularize other identifiers"
+msgstr "chính quy hoá các bộ nhận diện khác"
+
+#: convertrules.py:2411
msgid "LilyPond source must be UTF-8"
msgstr "Lilypond phải có mã nguồn UTF-8"
-#: convertrules.py:2411
+#: convertrules.py:2414
msgid "Try the texstrings backend"
msgstr "Hãy thử hậu phương texstrings"
-#: convertrules.py:2414
+#: convertrules.py:2417
#, python-format
msgid "Do something like: %s"
msgstr "Làm gì như : %s"
-#: convertrules.py:2417
+#: convertrules.py:2420
msgid "Or save as UTF-8 in your editor"
-msgstr "Hoặc lưu dạng UTF-8 trong bộ biên soạn"
+msgstr "Hoặc lưu dạng UTF-8 trong trình biên soạn"
+
+#: convertrules.py:2452
+msgid "\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click"
+msgstr "\\encoding: mã hoá lại khéo « latin1..utf-8 ». Gỡ bỏ « ly:point-and-click »"
+
+#: convertrules.py:2485
+msgid "auto beam settings"
+msgstr "thiết lập tự động vẽ nét ngang"
+
+#: convertrules.py:2487
+msgid ""
+"\n"
+"Auto beam settings must now specify each interesting moment in a measure\n"
+"explicitely; 1/4 is no longer multiplied to cover moments 1/2 and 3/4 too.\n"
+msgstr ""
+"\n"
+"Thiết lập tự động vẽ nét ngang lúc này phải ghi rõ mỗi lát quan tâm\n"
+"theo một ô nhịp một cách dứt khoát: 1/4 không còn được nhân lên lại\n"
+"để cũng bao quát 1/2 và 3/4.\n"
+
+#: convertrules.py:2498
+msgid "warn about auto beam settings"
+msgstr "cảnh báo về thiết lập tự động vẽ nét ngang"
+
+#: convertrules.py:2624
+msgid "verticalAlignmentChildCallback has been deprecated"
+msgstr "verticalAlignmentChildCallback đã bị phản đối"
+
+#: convertrules.py:2652
+msgid "Remove callbacks property, deprecate XY-extent-callback."
+msgstr "Gỡ bỏ thuộc tính gọi ngược, phản đối XY-extent-callback."
+
+#: convertrules.py:2663
+msgid "Use grob closures iso. XY-offset-callbacks."
+msgstr "Dùng grob closures iso. XY-offset-callbacks."
+
+#: convertrules.py:2770
+msgid "foobar -> foo-bar for \\paper, \\layout"
+msgstr "foobar -> foo-bar đối với \\paper, \\layout"
+
+#: convertrules.py:2877
+msgid "deprecate \\tempo in \\midi"
+msgstr "phản đối \\tempo trong \\midi"
+
+#: convertrules.py:2912
+msgid "deprecate cautionary-style. Use AccidentalCautionary properties"
+msgstr "phản đối cautionary-style (kiểu dáng cẩn thận). Hãy dùng các thuộc tính AccidentalCautionary"
+
+#: convertrules.py:2941
+msgid "Rename accidental glyphs, use glyph-name-alist."
+msgstr "Thay tên các hình tượng dấu thăng giáng, dùng glyph-name-alist."
+
+#: convertrules.py:2973
+msgid "edge-text settings for TextSpanner."
+msgstr "Thiết lập edge-text (cạnh văn bản) đối với TextSpanner."
+
+#: convertrules.py:2974
+#, python-format
+msgid ""
+"Use\n"
+"\n"
+"%s"
+msgstr ""
+"Sử dụng\n"
+"\n"
+"%s"
+
+#: convertrules.py:3020
+msgid "all settings related to dashed lines.\n"
+msgstr "mọi thiết lập đều liên quan đến đường gạch gạch.\n"
+
+#: convertrules.py:3021
+msgid "Use \\override ... #'style = #'line for solid lines and\n"
+msgstr "Hãy dùng « \\override ... #'style = #'line » cho các đường đặc, và\n"
+
+#: convertrules.py:3022
+msgid "\t\\override ... #'style = #'dashed-line for dashed lines."
+msgstr "\t« \\override ... #'style = #'dashed-line » cho các đường gạch gạch."
+
+#: convertrules.py:3027
+msgid "Use #'style not #'dash-fraction to select solid/dashed lines."
+msgstr "Dùng « #'style not #'dash-fraction » để chọn các đường đặc/gạch-gạch."
#: fontextract.py:26
#, python-format
msgid "Writing fonts to %s"
msgstr "Đang ghi các phông vào %s"
-#: lilylib.py:85 lilylib.py:136
+#: lilylib.py:102 lilylib.py:153
#, python-format
msgid "Invoking `%s'"
msgstr "Đang gọi « %s »"
-#: lilylib.py:87 lilylib.py:138
+#: lilylib.py:104 lilylib.py:155
#, python-format
msgid "Running %s..."
msgstr "Đang chạy %s..."
-#: lilylib.py:203
+#: lilylib.py:220
#, python-format
msgid "Usage: %s"
msgstr "Cách sử dụng: %s"
-#: abc2ly.py:1342 convert-ly.py:71 lilypond-book.py:110 midi2ly.py:858
+#: musicexp.py:577
+#, python-format
+msgid "unable to set the music %(music)s for the repeat %(repeat)s"
+msgstr "không thể đặt âm nhạc %(music)s cho lần lặp lại %(repeat)s"
+
+#: musicexp.py:586
+msgid "encountered repeat without body"
+msgstr "gặp lần lặp lại không có thân"
+
+#: musicxml.py:13 convert-ly.py:50 lilypond-book.py:85 warn.cc:54 input.cc:96
+#: input.cc:104
+#, c-format, python-format
+msgid "error: %s"
+msgstr "lỗi: %s"
+
+#: musicxml.py:272
+msgid "requested time signature, but time sig is unknown"
+msgstr "đã yêu cầu ký hiệu nhịp điệu, nhưng không rõ loại nhịp"
+
+#: musicxml.py:338
+#, python-format
+msgid "Encountered note at %s with %s duration (no <type> element):"
+msgstr "Gặp nốt ở %s với thời lượng %s (không có phần tử <type>):"
+
+#: musicxml.py:372
+#, python-format
+msgid "Unable to find find instrument for ID=%s\n"
+msgstr "Không tìm thấy phối nhạc cho ID=%s\n"
+
+#: abc2ly.py:1342 convert-ly.py:71 lilypond-book.py:109 midi2ly.py:849
#, python-format
msgid "%s [OPTION]... FILE"
msgstr "%s [TÙY_CHỌN]... TẬP_TIN"
-#: abc2ly.py:1344
+#: abc2ly.py:1343
#, python-format
msgid ""
"abc2ly converts ABC music files (see\n"
"abc2ly chuyển đổi tập tin âm nhạc kiểu ABC\n"
"xem %s) sang kết nhập LilyPond."
-#: abc2ly.py:1348 etf2ly.py:1184 midi2ly.py:874
+#: abc2ly.py:1350 convert-ly.py:78 etf2ly.py:1190 lilypond-book.py:175
+#: midi2ly.py:885 musicxml2ly.py:1824 main.cc:161
+msgid "show version number and exit"
+msgstr "hiển thị số phiên bản rồi thoát"
+
+#: abc2ly.py:1354 convert-ly.py:82 etf2ly.py:1186 lilypond-book.py:125
+#: midi2ly.py:864 musicxml2ly.py:1808 main.cc:150
+msgid "show this help and exit"
+msgstr "hiển thị trợ giúp này rồi thoát"
+
+#: abc2ly.py:1356 etf2ly.py:1191 midi2ly.py:868
msgid "write output to FILE"
msgstr "xuất ra TẬP_TIN"
-#: abc2ly.py:1350
+#: abc2ly.py:1358
msgid "be strict about succes"
msgstr "chặt chẽ với thành công"
-#: abc2ly.py:1352
+#: abc2ly.py:1360
msgid "preserve ABC's notion of beams"
msgstr "bảo tồn ý kiến ABC về tia"
-#: abc2ly.py:1354 convert-ly.py:103 etf2ly.py:1192 lilypond-book.py:161
-#: midi2ly.py:900 musicxml2ly.py:975
+#: abc2ly.py:1361 convert-ly.py:111 etf2ly.py:1198 lilypond-book.py:180
+#: midi2ly.py:897 musicxml2ly.py:1872
+msgid "Bugs"
+msgstr "Lỗi"
+
+#: abc2ly.py:1362 convert-ly.py:112 etf2ly.py:1199 lilypond-book.py:181
+#: midi2ly.py:898 musicxml2ly.py:1873
msgid "Report bugs via"
-msgstr "Thông báo lỗi cho"
+msgstr "Thông báo lỗi thông qua"
#: convert-ly.py:32
msgid ""
msgid "Examples:"
msgstr "Thí dụ :"
-#: convert-ly.py:47 lilypond-book.py:83 warn.cc:48 input.cc:90
-#, c-format, python-format
-msgid "warning: %s"
-msgstr "cảnh báo : %s"
-
-#: convert-ly.py:50 lilypond-book.py:86 warn.cc:54 input.cc:96 input.cc:104
-#, c-format, python-format
-msgid "error: %s"
-msgstr "lỗi: %s"
-
-#: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:106 midi2ly.py:87
+#: convert-ly.py:66 etf2ly.py:1174 lilypond-book.py:105 midi2ly.py:79
msgid "Distributed under terms of the GNU General Public License."
msgstr "Được phát hành với điều kiện của Giấy phép Công cộng GNU (GPL)"
-#: convert-ly.py:67 etf2ly.py:1175 lilypond-book.py:107 midi2ly.py:88
+#: convert-ly.py:67 etf2ly.py:1175 lilypond-book.py:106 midi2ly.py:80
msgid "It comes with NO WARRANTY."
msgstr "Nó KHÔNG BẢO HÀNH GÌ CẢ."
-#: convert-ly.py:77 convert-ly.py:97
+#: convert-ly.py:86 convert-ly.py:106
msgid "VERSION"
msgstr "PHIÊN BẢN"
-#: convert-ly.py:79
+#: convert-ly.py:88
msgid "start from VERSION [default: \\version found in file]"
msgstr "bắt đầu từ PHIÊN BẢN [mặc định: \\version được tìm trong tập tin]"
-#: convert-ly.py:82
+#: convert-ly.py:91
msgid "edit in place"
msgstr "sửa tại chỗ"
-#: convert-ly.py:85
+#: convert-ly.py:94
msgid "do not add \\version command if missing"
msgstr "không thêm lệnh \\version nếu còn thiếu"
-#: convert-ly.py:91
+#: convert-ly.py:100
msgid "show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"
msgstr "hiện quy tắc [mặc định: --from=0, --to=@TOPLEVEL_VERSION@]"
-#: convert-ly.py:96
+#: convert-ly.py:105
msgid "convert to VERSION [default: @TOPLEVEL_VERSION@]"
msgstr "chuyển đổi sang PHIÊN BẢN [mặc định: @TOPLEVEL_VERSION@]"
-#: convert-ly.py:144
+#: convert-ly.py:153
msgid "Applying conversion: "
msgstr "Đang áp dụng sự chuyển đổi: "
-#: convert-ly.py:157
+#: convert-ly.py:166
msgid "Error while converting"
msgstr "Gặp lỗi trong khi chuyển đổi"
-#: convert-ly.py:159
+#: convert-ly.py:168
msgid "Stopping at last succesful rule"
msgstr "Đang dừng ở quy tắc thành công cuối cùng"
-#: convert-ly.py:181
+#: convert-ly.py:190
#, python-format
msgid "Processing `%s'... "
msgstr "Đang xử lý « %s »... "
-#: convert-ly.py:268 relocate.cc:362 source-file.cc:54
+#: convert-ly.py:277 relocate.cc:362 source-file.cc:54
#, c-format, python-format
msgid "cannot open file: `%s'"
msgstr "không thể mở tập tin « %s »"
-#: convert-ly.py:275
+#: convert-ly.py:284
#, python-format
msgid "cannot determine version for `%s'. Skipping"
msgstr "không thể quyết định phiên bản cho « %s » nên bỏ qua"
msgid "%s [OPTION]... ETF-FILE"
msgstr "%s [TÙY_CHỌN]... TẬP_TIN_ETF"
-#: etf2ly.py:1182
+#: etf2ly.py:1181
msgid ""
"Enigma Transport Format is a format used by Coda Music Technology's\n"
"Finale product. etf2ly converts a subset of ETF to a ready-to-use LilyPond file."
"Finale của Coda Music Technology. etf2ly chuyển đổi một tập hợp con\n"
"ETF sang một tập tin Lilypond sẵn sàng dùng."
-#: etf2ly.py:1185 midi2ly.py:875 musicxml2ly.py:968 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:869 musicxml2ly.py:1866 main.cc:154 main.cc:159
msgid "FILE"
msgstr "TẬP TIN"
-#: etf2ly.py:1187 lilypond-book.py:158 midi2ly.py:888 main.cc:163
+#: etf2ly.py:1194 lilypond-book.py:178 midi2ly.py:886 main.cc:163
msgid "show warranty and copyright"
msgstr "hiện bảo hành và tác quyền"
msgid "Exiting (%d)..."
msgstr "Đang thoát (%d)..."
-#: lilypond-book.py:104
+#: lilypond-book.py:103
#, python-format
msgid "Copyright (c) %s by"
msgstr "Tác quyền © năm %s của"
-#: lilypond-book.py:114
+#: lilypond-book.py:113
msgid "FILTER"
msgstr "LỌC"
-#: lilypond-book.py:117
+#: lilypond-book.py:116
msgid "pipe snippets through FILTER [convert-ly -n -]"
msgstr "gửi các đoạn qua ống dẫn cho bộ LỌC [convert-ly -n -]"
msgid "use output format FORMAT (texi [default], texi-html, latex, html, docbook)"
msgstr "dùng định dạng xuất ĐỊNH DẠNG (texi [mặc định], texi-html, latex, html, docbook)"
-#: lilypond-book.py:123
+#: lilypond-book.py:127
msgid "add DIR to include path"
msgstr "thêm THƯ_MỤC vào đường dẫn bao gồm"
-#: lilypond-book.py:124 lilypond-book.py:136 main.cc:153
+#: lilypond-book.py:128 lilypond-book.py:135 lilypond-book.py:147 main.cc:153
msgid "DIR"
msgstr "THƯ_MỤC"
-#: lilypond-book.py:129
+#: lilypond-book.py:133
+msgid "format Texinfo output so that Info will look for images of music in DIR"
+msgstr "định dạng kết xuất Texinfo để mà Info sẽ tìm ảnh nhạc trong THƯ_MỤC"
+
+#: lilypond-book.py:140
msgid "PAD"
-msgstr "PAD"
+msgstr "ĐỆM"
-#: lilypond-book.py:135
+#: lilypond-book.py:142
+msgid "pad left side of music to align music inspite of uneven bar numbers (in mm)"
+msgstr "đệm bên trái của bản nhạc để sắp hàng nhạc, bất chấp các số thứ tự gạch nhịp (theo mili-mét)"
+
+#: lilypond-book.py:146
msgid "write output to DIR"
msgstr "xuất ra THƯ_MỤC"
-#: lilypond-book.py:140
+#: lilypond-book.py:151
msgid "COMMAND"
msgstr "LỆNH"
-#: lilypond-book.py:141
+#: lilypond-book.py:152
msgid "process ly_files using COMMAND FILE..."
msgstr "xử lý các tập tin ly_file dùng LỆNH TẬP TIN..."
-#: lilypond-book.py:147
-msgid "Create PDF files for use with PDFTeX"
-msgstr "Tạo tập tin PDF để sử dụng với PDFTeX"
+#: lilypond-book.py:159
+msgid "create PDF files for use with PDFTeX"
+msgstr "tạo tập tin PDF để sử dụng với PDFTeX"
-#: lilypond-book.py:150
+#: lilypond-book.py:163
msgid ""
"extract all PostScript fonts into INPUT.psfonts for LaTeX\n"
"must use this with dvips -h INPUT.psfonts"
"giải nén các phông PostScript vào « INPUT.psfonts » cho LaTeX\n"
"phải dùng nó với « dvips -h INPUT.psfonts »."
-#: lilypond-book.py:153 midi2ly.py:885 musicxml2ly.py:959 main.cc:162
+#: lilypond-book.py:167 midi2ly.py:879 musicxml2ly.py:1829 main.cc:162
msgid "be verbose"
msgstr "xuất chi tiết"
-#: lilypond-book.py:765
+#: lilypond-book.py:788
#, python-format
msgid "file not found: %s"
msgstr "không tìm thấy tập tin: %s"
-#: lilypond-book.py:996
+#: lilypond-book.py:1022
#, python-format
msgid "deprecated ly-option used: %s=%s"
msgstr "dùng tùy chọn ly-option bị phản đối: %s=%s"
-#: lilypond-book.py:999
+#: lilypond-book.py:1025
#, python-format
msgid "compatibility mode translation: %s=%s"
msgstr "dịch chế độ khả năng tương thích: %s=%s"
-#: lilypond-book.py:1003
+#: lilypond-book.py:1029
#, python-format
msgid "deprecated ly-option used: %s"
msgstr "dùng tùy chọn ly-option bị phản đối: %s"
-#: lilypond-book.py:1006
+#: lilypond-book.py:1032
#, python-format
msgid "compatibility mode translation: %s"
msgstr "dịch chế độ khả năng tương thích: %s"
-#: lilypond-book.py:1025
+#: lilypond-book.py:1051
#, python-format
msgid "ignoring unknown ly option: %s"
msgstr "đang bỏ qua tùy chọn ly lạ: %s"
-#: lilypond-book.py:1379
+#: lilypond-book.py:1422
#, python-format
msgid "Opening filter `%s'"
msgstr "Đang mở bộ lọc « %s »"
-#: lilypond-book.py:1396
+#: lilypond-book.py:1439
#, python-format
msgid "`%s' failed (%d)"
msgstr "« %s » bị lỗi (%d)"
-#: lilypond-book.py:1397
+#: lilypond-book.py:1440
msgid "The error log is as follows:"
msgstr "Bản ghi lỗi bên dưới:"
-#: lilypond-book.py:1469
+#: lilypond-book.py:1512
msgid "cannot find \\begin{document} in LaTeX document"
msgstr "không tìm thấy tài liệu bắt đầu « \\begin{document} » trong tài liệu LaTeX"
-#: lilypond-book.py:1580
+#: lilypond-book.py:1623
msgid "Writing snippets..."
msgstr "Đang ghi các đoạn..."
-#: lilypond-book.py:1585
+#: lilypond-book.py:1628
msgid "Processing..."
msgstr "Đang xử lý..."
-#: lilypond-book.py:1589
+#: lilypond-book.py:1632
msgid "All snippets are up to date..."
msgstr "Mọi đoạn là hiện thời..."
-#: lilypond-book.py:1599
+#: lilypond-book.py:1642
#, python-format
msgid "cannot determine format for: %s"
msgstr "không thể xác định định dạng cho : %s"
-#: lilypond-book.py:1610
+#: lilypond-book.py:1653
#, python-format
msgid "%s is up to date."
msgstr "%s là hiện thời."
-#: lilypond-book.py:1616
+#: lilypond-book.py:1659
#, python-format
msgid "Writing `%s'..."
msgstr "Đang ghi « %s »..."
-#: lilypond-book.py:1671
+#: lilypond-book.py:1714
msgid "Output would overwrite input file; use --output."
msgstr "Kết xuất sẽ ghi đè lên tập tin nhập vào : dùng tùy chọn « --output »."
-#: lilypond-book.py:1675
+#: lilypond-book.py:1718
#, python-format
msgid "Reading %s..."
msgstr "Đang đọc %s..."
-#: lilypond-book.py:1694
+#: lilypond-book.py:1737
msgid "Dissecting..."
msgstr "Đang phân chia..."
-#: lilypond-book.py:1710
+#: lilypond-book.py:1753
#, python-format
msgid "Compiling %s..."
msgstr "Đang biên dịch %s..."
-#: lilypond-book.py:1719
+#: lilypond-book.py:1762
#, python-format
msgid "Processing include: %s"
msgstr "Đang xử lý đồ bao gồm: %s"
-#: lilypond-book.py:1733
+#: lilypond-book.py:1776
#, python-format
msgid "Removing `%s'"
msgstr "Đang gỡ bỏ « %s »"
-#: lilypond-book.py:1766
+#: lilypond-book.py:1809
msgid "option --psfonts not used"
msgstr "tùy chọn « --psfonts » không được dùng"
-#: lilypond-book.py:1767
+#: lilypond-book.py:1810
msgid "processing with dvips will have no fonts"
msgstr "xử lý với dvips thì không có phông"
-#: lilypond-book.py:1770
+#: lilypond-book.py:1813
msgid "DVIPS usage:"
msgstr "Cách sử dụng DVIPS:"
-#: lilypond-book.py:1826
+#: lilypond-book.py:1869
#, python-format
msgid "Writing fonts to %s..."
msgstr "Đang ghi các phông vào %s..."
-#: midi2ly.py:95 lily-library.scm:615 lily-library.scm:624
+#: midi2ly.py:87 lily-library.scm:615 lily-library.scm:624
msgid "warning: "
msgstr "cảnh báo : "
-#: midi2ly.py:98 midi2ly.py:913
+#: midi2ly.py:90 midi2ly.py:911
msgid "error: "
msgstr "lỗi: "
-#: midi2ly.py:99
-msgid "Exiting ... "
+#: midi2ly.py:91
+msgid "Exiting... "
msgstr "Đang thoát... "
-#: midi2ly.py:846
+#: midi2ly.py:837
#, python-format
msgid "%s output to `%s'..."
msgstr "kết xuất %s vào « %s »..."
-#: midi2ly.py:860 musicxml2ly.py:955
+#: midi2ly.py:850 musicxml2ly.py:1803
#, python-format
msgid "Convert %s to LilyPond input."
msgstr "Chuyển đổi %s sang kết nhập Lilypond."
-#: midi2ly.py:864
+#: midi2ly.py:855
msgid "print absolute pitches"
msgstr "in ra độ cao thấp tuyệt đối"
-#: midi2ly.py:866 midi2ly.py:878
+#: midi2ly.py:857 midi2ly.py:872
msgid "DUR"
-msgstr "THỜI_GIAN"
+msgstr "THỜI_LƯỢNG"
-#: midi2ly.py:867
+#: midi2ly.py:858
msgid "quantise note durations on DUR"
-msgstr "lượng tử hoá các thời gian nốt trong THỜI_GIAN"
+msgstr "lượng tử hoá các thời gian nốt trong THỜI_LƯỢNG"
-#: midi2ly.py:870
+#: midi2ly.py:861
msgid "print explicit durations"
-msgstr "in ra các thời gian dứt khoát"
+msgstr "in ra các thời lượng dứt khoát"
-#: midi2ly.py:871
+#: midi2ly.py:865
msgid "set key: ALT=+sharps|-flats; MINOR=1"
msgstr "đặt khoá: ALT=+thăng|-giáng; THỨ=1"
-#: midi2ly.py:872
+#: midi2ly.py:866
msgid "ALT[:MINOR]"
msgstr "ALT[:THỨ]"
-#: midi2ly.py:877
+#: midi2ly.py:871
msgid "quantise note starts on DUR"
-msgstr "lượng tử hoá sự bắt đầu nốt trong THỜI_GIAN"
+msgstr "lượng tử hoá sự bắt đầu nốt trong THỜI_LƯỢNG"
-#: midi2ly.py:880
+#: midi2ly.py:874
msgid "DUR*NUM/DEN"
-msgstr "THỜI_GIAN*SỐ/MẬT_ĐỘ"
+msgstr "THỜI_LƯỢNG*SỐ/MẬT_ĐỘ"
-#: midi2ly.py:883
+#: midi2ly.py:877
msgid "allow tuplet durations DUR*NUM/DEN"
-msgstr "cho phép thời gian nhiều nốt THỜI_GIAN*SỐ/MẬT_ĐỘ"
+msgstr "cho phép thời gian nhiều nốt THỜI_LƯỢNG*SỐ/MẬT_ĐỘ"
-#: midi2ly.py:891
+#: midi2ly.py:889
msgid "treat every text as a lyric"
msgstr "xử lý mọi văn bản là lời nhạc"
-#: midi2ly.py:894
+#: midi2ly.py:892
msgid "Examples"
msgstr "Ví dụ"
-#: midi2ly.py:914
+#: midi2ly.py:912
msgid "no files specified on command line."
msgstr "chưa xác định tập tin trên dòng lệnh."
-#: musicxml2ly.py:943
-msgid "musicxml2ly FILE.xml"
-msgstr "musicxml2ly TẬP_TIN.xml"
+#: musicxml2ly.py:193 musicxml2ly.py:195
+#, python-format
+msgid "Unprocessed PartGroupInfo %s encountered"
+msgstr "Gặp PartGroupInfo %s chưa được xử lý"
+
+#: musicxml2ly.py:426
+#, python-format
+msgid "Encountered rational duration with denominator %s, unable to convert to lilypond duration"
+msgstr "Gặp thời lượng hợp lý hữu tỷ với mẫu số %s, không thể chuyển đổi sang thời lượng kiểu Lilypond"
+
+#: musicxml2ly.py:609
+#, python-format
+msgid "unknown mode %s, expecting 'major' or 'minor'"
+msgstr "không rõ chế độ %s, đợi « trưởng » hoặc « thứ »"
+
+#: musicxml2ly.py:647
+#, python-format
+msgid "Encountered unprocessed marker %s\n"
+msgstr "Gặp dấu vết chưa được xử lý %s\n"
+
+#: musicxml2ly.py:741
+#, python-format
+msgid "unknown span event %s"
+msgstr "không rõ dữ kiện nhịp cầu %s"
+
+#: musicxml2ly.py:751
+#, python-format
+msgid "unknown span type %s for %s"
+msgstr "không rõ kiểu nhịp cầu %s cho %s"
+
+#: musicxml2ly.py:1259
+#, python-format
+msgid "drum %s type unknown, please add to instrument_drumtype_dict"
+msgstr "không rõ kiểu cái trống %s, hãy thêm vào instrument_drumtype_dict"
+
+#: musicxml2ly.py:1263
+msgid "cannot find suitable event"
+msgstr "không tìm thấy dữ kiện thích hợp"
+
+#: musicxml2ly.py:1346
+#, python-format
+msgid "Negative skip %s"
+msgstr "Nhảy âm %s"
+
+#: musicxml2ly.py:1480
+#, python-format
+msgid "Negative skip found: from %s to %s, difference is %s"
+msgstr "Gặp nơi nhảy âm: từ %s đến %s, hiệu là %s"
+
+#: musicxml2ly.py:1505
+#, python-format
+msgid "unexpected %s; expected %s or %s or %s"
+msgstr "gặp %s bất thường; đợi %s hoặc %s hoặc %s"
+
+#: musicxml2ly.py:1583
+msgid "cannot have two simultaneous slurs"
+msgstr "không thể có hai dấu luyến âm đồng thời"
+
+#: musicxml2ly.py:1711
+#, python-format
+msgid "cannot simultaneously have more than one mode: %s"
+msgstr "không thể có nhiều chế độ đồng thời: %s"
+
+#: musicxml2ly.py:1791
+msgid "Converting to LilyPond expressions..."
+msgstr "Đang chuyển đổi sang biểu thức Lilypond..."
+
+#: musicxml2ly.py:1802
+msgid "musicxml2ly [options] FILE.xml"
+msgstr "musicxml2ly [tùy_chọn] TẬP_TIN.xml"
-#: musicxml2ly.py:946
+#: musicxml2ly.py:1812
#, python-format
msgid ""
"This program is free software. It is covered by the GNU General Public\n"
"under certain conditions. Invoke as `%s --warranty' for more\n"
"information."
msgstr ""
-"Chương trình này là phần mềm tự do; bạn có thể phát hành lại nó và/hoặc sửa đổi nó với điều kiện của Giấy Phép Công Cộng GNU như được xuất bản bởi Tổ Chức Phần Mềm Tự Do; hoặc phiên bản 2 của Giấy Phép này, hoặc (tùy chọn) bất kỳ phiên bản sau nào.\n"
-"\n"
+"Chương trình này là phần mềm tự do. Nó được bao quát bởi\n"
+"Giấy Phép Công Cộng GNU thì cấp bạn có quyền sửa đổi nó\n"
+"và/hoặc phát hành bản sao của nó với các điều kiện được ghi rõ.\n"
"Gọi lệnh « %s --warranty » để xem thêm thông tin."
-#: musicxml2ly.py:965
-msgid "Use lxml.etree; uses less memory and cpu time."
-msgstr "Hãy dùng « lxml.etree »; nó chiếm ít bộ nhớ và thời gian CPU hơn."
+#: musicxml2ly.py:1835
+msgid "use lxml.etree; uses less memory and cpu time"
+msgstr "dùng « lxml.etree »; nó chiếm ít bộ nhớ và thời gian CPU hơn"
+
+#: musicxml2ly.py:1841
+msgid "input file is a zip-compressed MusicXML file"
+msgstr "tập tin nhập vào là một tập tin MusicXML đã nén ZIP"
+
+#: musicxml2ly.py:1847
+msgid "convert pitches in relative mode (default)"
+msgstr "chuyển đổi các độ cao giọng ở chế độ tương đối (mặc định)"
+
+#: musicxml2ly.py:1852
+msgid "convert pitches in absolute mode"
+msgstr "chuyển đổi các độ cao giọng ở chế độ tuyệt đối"
+
+#: musicxml2ly.py:1855
+msgid "LANG"
+msgstr "VIỆT"
+
+#: musicxml2ly.py:1857
+msgid "use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly"
+msgstr "dùng một tập tin ngôn ngữ khác « VIỆT/ly » và các tên độ cao giọng tương ứng, v.d. « việt » ngụ ý tiếng Việt cho « việt.ly »."
-#: musicxml2ly.py:973
+#: musicxml2ly.py:1863
+msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
+msgstr "đừng chuyển đổi ký hiệu hướng dẫn (dấu mũ, dấu gạch dưới hoặc dấu gạch nối) cho các cách phát âm và biến cường."
+
+#: musicxml2ly.py:1871
msgid "set output filename to FILE"
msgstr "đặt tên tập tin xuất thành TẬP_TIN"
+#: musicxml2ly.py:1929
+#, python-format
+msgid "unknown part in part-list: %s"
+msgstr "không rõ phần trong part-list: %s"
+
+#: musicxml2ly.py:1985
+#, python-format
+msgid "Input file %s is compressed, extracting raw MusicXML data"
+msgstr "Tập tin nhập liệu %s đã được nén nên giải nén dữ liệu MusicXML thô"
+
+#: musicxml2ly.py:2011
+#, python-format
+msgid "Reading MusicXML from %s ..."
+msgstr "Đang đọc MusicXML từ %s..."
+
+#: musicxml2ly.py:2039 musicxml2ly.py:2053
+#, python-format
+msgid "Output to `%s'"
+msgstr "Xuất vào « %s »"
+
+#: musicxml2ly.py:2096
+#, python-format
+msgid "Unable to find input file %s"
+msgstr "Không tìm thấy tập tin nhập vào %s"
+
#: getopt-long.cc:140
#, c-format
msgid "option `%s' requires an argument"
msgid "invalid argument `%s' to option `%s'"
msgstr "đối số « %s » không hợp lệ đối với tùy chọn « %s »"
-#: warn.cc:68 grob.cc:565 input.cc:82
+#: warn.cc:68 grob.cc:566 input.cc:82
#, c-format
msgid "programming error: %s"
msgstr "lỗi lập trình: %s"
msgid "removing this vertical group"
msgstr "đang gỡ bỏ nhóm dọc này"
-#: axis-group-interface.cc:531
+#: axis-group-interface.cc:524
msgid "an outside-staff object should have a direction, defaulting to up"
msgstr "đối tượng « outside-staff » nên có hướng nên dùng giá trị Lên"
msgid "beam was started here"
msgstr "tia đã bắt đầu ở đây"
-#: beam-quanting.cc:309
+#: beam-quanting.cc:307
msgid "no feasible beam position"
msgstr "không có vị trí tia có ích"
msgid "removing beam with no stems"
msgstr "đang gỡ bỏ tia không có cọng"
-#: beam.cc:1039
+#: beam.cc:1069
msgid "no viable initial configuration found: may not find good beam slope"
msgstr "không tìm thấy cấu hình đầu tiên có ích: có lẽ không tìm thấy dốc tia tốt"
msgid "unknown cluster style `%s'"
msgstr "kiểu dáng chùm lạ « %s »"
-#: cluster.cc:135
+#: cluster.cc:147
msgid "junking empty cluster"
msgstr "đang xoá chùm rỗng"
msgid "dot `%s' not found"
msgstr "Không tìm thấy chấm « %s »"
-#: dynamic-engraver.cc:193
+#: dynamic-engraver.cc:192
msgid "cannot find start of (de)crescendo"
msgstr "không tìm thấy đầu của sự mạnh/nhẹ dần"
-#: dynamic-engraver.cc:202
+#: dynamic-engraver.cc:201
msgid "already have a decrescendo"
msgstr "đã có sự nhẹ dần"
-#: dynamic-engraver.cc:204
+#: dynamic-engraver.cc:203
msgid "already have a crescendo"
msgstr "đã có sự mạnh dần"
-#: dynamic-engraver.cc:207
+#: dynamic-engraver.cc:206
msgid "cresc starts here"
msgstr "sự mạnh dần bắt đầu ở đây"
-#: dynamic-engraver.cc:336
+#: dynamic-engraver.cc:335
msgid "unterminated (de)crescendo"
msgstr "sự mạnh/nhẹ dần chưa chấm dứt"
msgid "Rebuilding FontConfig cache %s, this may take a while..."
msgstr "Đang xây dựng lại bộ nhớ tạm FontConfig %s. Có thể hơi lâu..."
-#: font-config.cc:55
+#: font-config.cc:57
#, c-format
msgid "failed adding font directory: %s"
msgstr "lỗi thêm thư mục phông: %s"
-#: font-config.cc:57
+#: font-config.cc:59
#, c-format
msgid "adding font directory: %s"
msgstr "đang thêm thư mục phông: %s"
msgid "alteration not found"
msgstr "Không tìm thấy sự sửa đổi"
-#: ligature-engraver.cc:93
+#: ligature-bracket-engraver.cc:62 ligature-engraver.cc:93
msgid "cannot find start of ligature"
msgstr "không tìm thấy đầu của chữ ghép"
+#: ligature-bracket-engraver.cc:75 ligature-engraver.cc:120
+msgid "already have a ligature"
+msgstr "đã có chữ ghép"
+
#: ligature-engraver.cc:98
msgid "no right bound"
msgstr "không có mép bên phải"
-#: ligature-engraver.cc:120
-msgid "already have a ligature"
-msgstr "đã có chữ ghép"
-
#: ligature-engraver.cc:129
msgid "no left bound"
msgstr "không có mép bên trái"
msgid "generate TeX (tex backend only)"
msgstr "tạo ra TeX (chỉ hậu phương tex)"
-#: main.cc:150
-msgid "show this help and exit"
-msgstr "hiển thị trợ giúp này rồi thoát"
-
#: main.cc:151
msgid "FIELD"
msgstr "TRƯỜNG"
msgid "relocate using directory of lilypond program"
msgstr "định vị lại dùng thư mục của chương trình lilypond"
-#: main.cc:161
-msgid "show version number and exit"
-msgstr "hiển thị số phiên bản rồi thoát"
-
#: main.cc:203
#, c-format
msgid ""
msgstr "bắt ngoài lệ: %s"
#. FIXME: constant error message.
-#: mark-engraver.cc:154
+#: mark-engraver.cc:129
msgid "rehearsalMark must have integer value"
msgstr "rehearsalMark (dấu sự diễn tập) phải có giá trị số nguyên"
-#: mark-engraver.cc:160
+#: mark-engraver.cc:135
msgid "mark label must be a markup object"
msgstr "nhãn dấu phải là đối tượng mã định dạng"
msgstr "Lỗi FT_Get_Glyph_Name (): %s"
#. find out the ideal number of pages
-#: optimal-page-breaking.cc:44
+#: optimal-page-breaking.cc:56
msgid "Finding the ideal number of pages..."
msgstr "Đang tìm tổng số trang thích hợp..."
-#: optimal-page-breaking.cc:59
+#: optimal-page-breaking.cc:71
msgid "Fitting music on 1 page..."
msgstr "Đang vừa âm nhạc khít 1 trang..."
-#: optimal-page-breaking.cc:61
+#: optimal-page-breaking.cc:73
+#, c-format
+msgid "Fitting music on %d pages..."
+msgstr "Đang vừa âm nhạc khít %d trang..."
+
+#: optimal-page-breaking.cc:75
#, c-format
msgid "Fitting music on %d or %d pages..."
-msgstr "Đang vừa âm nhạc khít %d hay %d trang..."
+msgstr "Đang vừa âm nhạc khít %d hoặc %d trang..."
+
+#: optimal-page-breaking.cc:152 page-turn-page-breaking.cc:226
+#: paper-score.cc:146
+msgid "Drawing systems..."
+msgstr "Hệ thống vẽ..."
#: page-turn-page-breaking.cc:146
#, c-format
msgid "Calculating page and line breaks (%d possible page breaks)..."
msgstr "Đang tính các chỗ cần ngắt trang và dòng (%d chỗ ngắt trang có thể)..."
-#: page-turn-page-breaking.cc:226 paper-score.cc:146
-msgid "Drawing systems..."
-msgstr "Hệ thống vẽ..."
-
#: page-turn-page-breaking.cc:275
#, c-format
msgid "break starting at page %d"
msgid "MIDI output to `%s'..."
msgstr "xuất MIDI ra « %s »..."
-#: phrasing-slur-engraver.cc:131
+#: phrasing-slur-engraver.cc:139
msgid "unterminated phrasing slur"
msgstr "dấu luyến âm phân nhịp chưa chấm dứt"
msgid "cannot end slur"
msgstr "không thể kết thúc dấu luyến âm"
-#: slur.cc:359
+#: slur.cc:353
#, c-format
msgid "Ignoring grob for slur: %s. avoid-slur not set?"
msgstr "Đang bỏ qua grob cho dấu luyến âm: %s. Chưa đặt « avoid-slur » ?"
msgid "weird stem size, check for narrow beams"
msgstr "kích cỡ cọng lạ, hãy kiểm tra có tia hẹp không"
-#: stem.cc:623
+#: stem.cc:627
#, c-format
msgid "flag `%s' not found"
msgstr "không tìm thấy cờ « %s »"
-#: stem.cc:634
+#: stem.cc:638
#, c-format
msgid "flag stroke `%s' not found"
msgstr "không tìm thấy nét cờ « %s »"
msgid "have to be in Chord mode for chords"
msgstr "ghi hợp âm thì phải trong chế độ Hợp âm"
-#: lexer.ll:177
+#: lexer.ll:179
msgid "stray UTF-8 BOM encountered"
msgstr "gặp UTF-8 BOM rải rác"
-#: lexer.ll:181
+#: lexer.ll:183
msgid "Skipping UTF-8 BOM"
msgstr "Bỏ qua UTF-8 BOM"
-#: lexer.ll:236
+#: lexer.ll:238
#, c-format
msgid "Renaming input to: `%s'"
msgstr "Đang thay đổi tên kết nhập thành: « %s »"
-#: lexer.ll:253
+#: lexer.ll:255
msgid "quoted string expected after \\version"
msgstr "mong đợi chuỗi đã trích dẫn sau « \\version »"
-#: lexer.ll:257
+#: lexer.ll:259
msgid "quoted string expected after \\sourcefilename"
msgstr "mong đợi chuỗi đã trích dẫn sau « \\sourcefilename »"
-#: lexer.ll:261
+#: lexer.ll:263
msgid "integer expected after \\sourcefileline"
msgstr "mong đợi số nguyên sau « \\sourcefilename »"
-#: lexer.ll:274
+#: lexer.ll:276
msgid "EOF found inside a comment"
msgstr "Gặp kết thúc tập tin trong ghi chú"
-#: lexer.ll:289
+#: lexer.ll:291
msgid "\\maininput not allowed outside init files"
msgstr "không cho phép « \\maininput » bên ngoài tập tin sở khởi"
-#: lexer.ll:313
+#: lexer.ll:315
#, c-format
msgid "wrong or undefined identifier: `%s'"
msgstr "bộ nhận diện sai hau không được xác định: « %s »"
#. backup rule
-#: lexer.ll:322
+#: lexer.ll:324
msgid "end quote missing"
msgstr "thiếu dấu trích dẫn kết thúc"
-#: lexer.ll:467
+#: lexer.ll:469
msgid "Brace found at end of lyric. Did you forget a space?"
msgstr "Gặp dấu ngoặc móc ở kết thúc lời nhạc. Bạn đã quên nhập vào dấu cách không?"
-#: lexer.ll:580
+#: lexer.ll:582
msgid "Brace found at end of markup. Did you forget a space?"
msgstr "Gặp dấu ngoặc móc ở kết thúc mã định dạng. Bạn đã quên nhập vào dấu cách không?"
-#: lexer.ll:684
+#: lexer.ll:686
#, c-format
msgid "invalid character: `%c'"
msgstr "ký tự không hợp lệ: « %c »"
-#: lexer.ll:799
+#: lexer.ll:801 lexer.ll:802
#, c-format
msgid "unknown escaped string: `\\%s'"
msgstr "chuỗi đã thoát lạ: « \\%s »"
-#: lexer.ll:905
+#: lexer.ll:907 lexer.ll:908
#, c-format
msgid "file too old: %s (oldest supported: %s)"
msgstr "tập tin quá cũ : %s (cũ nhất được hỗ trợ : %s)"
-#: lexer.ll:906
+#: lexer.ll:908 lexer.ll:909
msgid "consider updating the input with the convert-ly script"
msgstr "đề nghị bạn cập nhật kết nhập bằng văn lệnh « convert-ly »"
-#: lexer.ll:912
+#: lexer.ll:914 lexer.ll:915
#, c-format
msgid "program too old: %s (file requires: %s)"
msgstr "chương trình quá cũ : %s (tập tin cần thiết: %s)"
msgid "translator listens to nonexisting event class ~A"
msgstr "bộ dịch lắng nghe hạng dữ kiện không tồn tại ~A"
-#: define-markup-commands.scm:280
+#: define-markup-commands.scm:296
msgid "no systems found in \\score markup, does it have a \\layout block?"
msgstr "không tìm thấy hệ thống trong mã định dạng « \\score », nó có khối « \\layout » không?"
-#: define-markup-commands.scm:1294
+#: define-markup-commands.scm:1310
#, scheme-format
msgid "not a valid duration string: ~a"
msgstr "không phải chuỗi thời gian hợp lệ: ~a"
msgid "old relative compatibility not used"
msgstr "không dùng khả năng tương thích tương đối cũ"
-#: lily.scm:185
+#: lily.scm:177
#, scheme-format
msgid "cannot find: ~A"
msgstr "không tìm thấy: ~A"
-#: lily.scm:250
+#: lily.scm:242
#, scheme-format
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
msgstr "sai kiểu cho đối số ~a. Mong đợi ~a, còn tìm ~s"
msgid "expecting 2 elements for chord tremolo, found ~a"
msgstr "mong đợi 2 yếu tố cho sự vê hợp âm, còn tìm ~a"
-#: music-functions.scm:571
+#: music-functions.scm:564
#, scheme-format
msgid "music expected: ~S"
msgstr "mong đợi âm nhạc: ~S"
#. FIXME: uncomprehensable message
-#: music-functions.scm:621
+#: music-functions.scm:614
#, scheme-format
msgid "Bar check failed. Expect to be at ~a, instead at ~a"
msgstr "Lỗi kiểm tra gạch nhịp. Mong đợi ở ~a, còn ở ~a"
-#: music-functions.scm:771
+#: music-functions.scm:764
#, scheme-format
msgid "cannot find quoted music: `~S'"
msgstr "không tìm thấy âm nhạc đã trích dẫn: « ~S »"
-#: music-functions.scm:968
+#: music-functions.scm:961
#, scheme-format
msgid "unknown accidental style: ~S"
msgstr "kiểu dáng dấu thăng giáng bất thường lạ: ~S"
msgid "Must use #(set-paper-size .. ) within \\paper { ... }"
msgstr "Phải dùng #(set-paper-size .. ) bên trong \\paper { ... }"
-#: parser-clef.scm:127
+#: parser-clef.scm:129
#, scheme-format
msgid "unknown clef type `~a'"
msgstr "kiểu khoá lạ « ~a »"
-#: parser-clef.scm:128
+#: parser-clef.scm:130
#, scheme-format
msgid "supported clefs: ~a"
msgstr "các khoá đã hỗ trợ : ~a"
#, scheme-format
msgid "assertion failed: ~S"
msgstr "lỗi khẳng định: ~S"
-
-#~ msgid "tried to calculate pure-height at a non-breakpoint"
-#~ msgstr "đã thử tính độ cao thuần ở chỗ không phải điểm ngắt"
-
-#~ msgid "crescendo too small"
-#~ msgstr "sự mạnh dần quá nhỏ"
pass
conversions = []
-error_file = sys.stderr
+stderr_write = lilylib.stderr_write
+
+def warning (str):
+ stderr_write (_ ("warning: %s") % str)
def conv(str):
if re.search ('\\\\multi', str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "\\multi")
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "\\multi")
+ stderr_write ('\n')
return str
-conversions.append (((0,1,9), conv, '\\header { key = concat + with + operator }'))
+conversions.append (((0,1,9), conv, _ ('\\header { key = concat + with + operator }')))
def conv (str):
if re.search ('\\\\octave', str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "\\octave")
- error_file.write ('\n')
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "\\octave")
+ stderr_write ('\n')
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
# raise FatalConversionError ()
return str
conversions.append ((
- ((0,1,19), conv, 'deprecated \\octave; cannot convert automatically')))
+ ((0,1,19), conv, _ ('deprecated %s') % '\\octave')))
return str
conversions.append ((
- ((0,1,20), conv, 'deprecated \\textstyle, new \\key syntax')))
+ ((0,1,20), conv, _ ('deprecated \\textstyle, new \\key syntax'))))
return str
conversions.append ((
- ((1,0,0), conv, '0.1.21 -> 1.0.0 ')))
+ ((1,0,0), conv, _ ("bump version for release"))))
def conv(str):
if re.search ('\\\\header', str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % _ ("new \\header format"))
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % _ ("new \\header format"))
+ stderr_write ('\n')
return str
-conversions.append (((1,0,2), conv, '\\header { key = concat + with + operator }'))
+conversions.append (((1,0,2), conv, _ ('\\header { key = concat + with + operator }')))
def conv(str):
def conv(str):
if re.search ('[a-zA-Z]+ = *\\translator',str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % _ ("\\translator syntax"))
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % _ ("\\translator syntax"))
+ stderr_write ('\n')
# raise FatalConversionError ()
return str
def conv(str):
if re.search ('\\\\repeat',str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "\\repeat")
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "\\repeat")
+ stderr_write ('\n')
# raise FatalConversionError ()
return str
conversions.append (((1,0,18), conv,
- '\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative'))
+ _ ('\\repeat NUM Music Alternative -> \\repeat FOLDSTR Music Alternative')))
def conv(str):
return str
conversions.append (((1,1,52), conv,
- 'deprecate \\grouping'))
+ _ ('deprecate %s') % '\\grouping'))
def conv(str):
if re.search ('\\\\repetitions',str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "\\repetitions")
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "\\repetitions")
+ stderr_write ('\n')
# raise FatalConversionError ()
return str
conversions.append (((1,3,23), conv,
- '\\\\repetitions feature dropped'))
+ _ ('deprecate %s ') % '\\repetitions'))
str = re.sub ("\\\\musicalpitch *{([0-9 -]+)}",
"\\\\musicalpitch #'(\\1)", str)
if re.search ('\\\\notenames',str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % _ ("new \\notenames format"))
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % _ ("new \\notenames format"))
+ stderr_write ('\n')
return str
conversions.append (((1,3,38), conv, '\musicalpitch { a b c } -> #\'(a b c)'))
def conv (str):
if re.search ('\\[:',str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % _ ("new tremolo format"))
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % _ ("new tremolo format"))
+ stderr_write ('\n')
return str
conversions.append (((1,3,41), conv,
return str
conversions.append (((1,3,42), conv,
- 'Staff_margin_engraver deprecated, use Instrument_name_engraver'))
+ _ ('Staff_margin_engraver deprecated, use Instrument_name_engraver')))
def conv (str):
def conv (str):
if re.search ('\\\\keysignature', str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % _ ("new tremolo format"))
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % '\\keysignature')
+ stderr_write ('\n')
return str
return str
conversions.append (((1,3,93), conv,
- 'property definiton case (eg. onevoice -> oneVoice)'))
+ _ ('change property definiton case (eg. onevoice -> oneVoice)')))
def conv (str):
str = re.sub ('ChordNames*', 'ChordNames', str)
if re.search ('\\\\textscript "[^"]* *"[^"]*"', str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % _ ("new \\textscript markup text"))
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % _ ("new \\textscript markup text"))
+ stderr_write ('\n')
str = re.sub ('\\textscript +("[^"]*")', '\\textscript #\\1', str)
str = re.sub ('\n([^ \t\n]+)[ \t]*= *', regularize_assignment, str)
return str
-conversions.append (((1,3,117), conv, 'identifier names: $!foo_bar_123 -> xfooBarABC'))
+conversions.append (((1,3,117), conv, _ ('identifier names: %s') % '$!foo_bar_123 -> xfooBarABC'))
str = re.sub ('point-and-click +#t', 'point-and-click line-column-location', str)
return str
-conversions.append (((1,3,138), conv, 'point-and-click argument changed to procedure.'))
+conversions.append (((1,3,138), conv, _ ('point-and-click argument changed to procedure.')))
def conv (str):
str = re.sub ("([^ \t;#]);", "\\1", str)
return str
-conversions.append (((1,3,146), conv, 'semicolons removed'))
+conversions.append (((1,3,146), conv, _('semicolons removed')))
def conv (str):
return str
# 40 ?
-conversions.append (((1,5,40), conv, 'breakAlignOrder property names'))
+conversions.append (((1,5,40), conv, _ ('%s property names') % 'breakAlignOrder'))
str = re.sub ('textNonEmpty *= *##f', "TextScript \\set #'no-spacing-rods = ##t", str)
return str
-conversions.append (((1,5,58), conv, 'deprecate textNonEmpty'))
+conversions.append (((1,5,58), conv, _ ('deprecate %s') % 'textNonEmpty'))
def conv (str):
if re.search (r'\addlyrics',str) \
and re.search ('automaticMelismata', str) == None:
- error_file.write ('\n')
- error_file.write (NOT_SMART % "automaticMelismata; turned on by default since 1.5.67.")
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "automaticMelismata; turned on by default since 1.5.67.")
+ stderr_write ('\n')
raise FatalConversionError ()
return str
conversions.append (((1,5,67), conv,
- 'automaticMelismata turned on by default'))
+ _ ('automaticMelismata turned on by default')))
def conv (str):
def conv(str):
if re.search( r'\\GraceContext', str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "GraceContext")
- error_file.write (FROM_TO \
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "GraceContext")
+ stderr_write (FROM_TO \
% ("GraceContext", "#(add-to-grace-init .. )"))
- error_file.write ('\n')
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
raise FatalConversionError ()
str = re.sub ('HaraKiriStaffContext', 'RemoveEmptyStaffContext', str)
return str
-conversions.append (((1,7,19), conv,"remove GraceContext"))
+conversions.append (((1,7,19), conv, _ ("remove %s") % "GraceContext"))
def conv(str):
if re.search( r'-(start|stop)Cluster', str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % _ ("cluster syntax"))
- error_file.write ('\n')
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % _ ("cluster syntax"))
+ stderr_write ('\n')
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
raise FatalConversionError ()
return str
-conversions.append (((1,7,24), conv,"cluster syntax"))
+conversions.append (((1,7,24), conv, _ ("cluster syntax")))
def conv(str):
str = re.sub (r"\\property *Staff\.(Sustain|Sostenuto|UnaCorda)Pedal *\\revert *#'pedal-type", '', str)
return str
-conversions.append (((1,7,28), conv,"new Pedal style syntax"))
+conversions.append (((1,7,28), conv, _ ("new Pedal style syntax")))
return str
-conversions.append (((1,9,0), conv, """New relative mode,
-Postfix articulations, new text markup syntax, new chord syntax."""))
+conversions.append (((1,9,0), conv, _ ("""New relative mode,
+Postfix articulations, new text markup syntax, new chord syntax.""")))
def conv (str):
if re.search ("font-style",str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "font-style")
- error_file.write ('\n')
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "font-style")
+ stderr_write ('\n')
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
raise FatalConversionError ()
str = re.sub (r'@\\markup', r'-\\markup', str)
return str
-conversions.append (((1,9,1), conv, """Remove - before articulation"""))
+conversions.append (((1,9,1), conv, _ ("""Remove - before articulation""")))
def conv (str):
str = re.sub ('ly:set-context-property',
'acciaccatura', str)
if re.search ("context-spec-music", str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "context-spec-music")
- error_file.write ('\n')
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "context-spec-music")
+ stderr_write ('\n')
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
raise FatalConversionError ()
return str
conversions.append (((1,9,3), conv,
- """\\acciaccatura misspelling, fingerHorizontalDirection -> fingeringOrientations"""))
+ (_ ("%s misspelling") % "\\acciaccatura") + \
+ ", fingerHorizontalDirection -> fingeringOrientations"))
def conv (str):
if re.search ('\\figures', str):
- error_file.write ("Warning: attempting automatic \\figures conversion. Check results!");
+ warning (_ ("attempting automatic \\figures conversion. Check results!"));
def figures_replace (m):
return str
-conversions.append (((1,9,4), conv, 'Swap < > and << >>'))
+conversions.append (((1,9,4), conv, _ ('Swap < > and << >>')))
def conv (str):
def conv (str):
if re.search ("ly:get-font", str) :
- error_file.write ('\n')
- error_file.write (NOT_SMART % "(ly:-get-font")
- error_file.write ('\n')
- error_file.write (FROM_TO \
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "(ly:-get-font")
+ stderr_write ('\n')
+ stderr_write (FROM_TO \
% ("(ly:paper-get-font (ly:grob-get-paper foo) .. )",
"(ly:paper-get-font (ly:grob-get-paper foo) .. )"))
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
raise FatalConversionError ()
if re.search ("\\pitch *#", str) :
- error_file.write ('\n')
- error_file.write (NOT_SMART % "\\pitch")
- error_file.write ('\n')
- error_file.write ("Use Scheme code to construct arbitrary note events.")
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "\\pitch")
+ stderr_write ('\n')
+ stderr_write (_ ("Use Scheme code to construct arbitrary note events."))
+ stderr_write ('\n')
raise FatalConversionError ()
return str
-conversions.append (((1,9,6), conv, 'ly:get-font deprecated.'))
+conversions.append (((1,9,6), conv, _ ('deprecate %s') % 'ly:get-font'))
def conv (str):
def sub_alteration (m):
m= re.search ("\\\\outputproperty #([^#]+)[\t\n ]*#'([^ ]+)", str)
if m:
- error_file.write (\
+ stderr_write (_ (\
r"""\outputproperty found,
Please hand-edit, using
\applyoutput #(outputproperty-compatibility %s '%s <GROB PROPERTY VALUE>)
-as a substitution text.""" % (m.group (1), m.group (2)) )
+as a substitution text.""") % (m.group (1), m.group (2)) )
raise FatalConversionError ()
if re.search ("ly:(make-pitch|pitch-alteration)", str) \
or re.search ("keySignature", str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "pitches")
- error_file.write ('\n')
- error_file.write (
- """The alteration field of Scheme pitches was multiplied by 2
-to support quarter tone accidentals. You must update the following constructs by manually:
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "pitches")
+ stderr_write ('\n')
+ stderr_write (
+ _ ("""The alteration field of Scheme pitches was multiplied by 2
+to support quarter tone accidentals. You must update the following constructs manually:
* calls of ly:make-pitch and ly:pitch-alteration
* keySignature settings made with \property
-""")
+"""))
raise FatalConversionError ()
return str
conversions.append (((1,9,7), conv,
- '''use symbolic constants for alterations,
-remove \\outputproperty, move ly:verbose into ly:get-option'''))
+ _ ('''use symbolic constants for alterations,
+remove \\outputproperty, move ly:verbose into ly:get-option''')))
def conv (str):
if re.search ("dash-length",str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "dash-length")
- error_file.write ('\n')
- error_file.write (FROM_TO % ("dash-length", "dash-fraction"))
- error_file.write ('\n')
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "dash-length")
+ stderr_write ('\n')
+ stderr_write (FROM_TO % ("dash-length", "dash-fraction"))
+ stderr_write ('\n')
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
raise FatalConversionError ()
return str
str = re.sub (r"\\property ([a-zA-Z]+)\s*\.\s*automaticMelismata\s*=\s*##([ft])", func, str)
return str
-conversions.append (((2,1,4), conv, """removal of automaticMelismata; use melismaBusyProperties instead."""))
+conversions.append (((2,1,4), conv, _ ("""removal of automaticMelismata; use melismaBusyProperties instead.""")))
def conv (str):
if re.search (r'\\partcombine', str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "\\partcombine")
- error_file.write ('\n')
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "\\partcombine")
+ stderr_write ('\n')
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
raise FatalConversionError ()
# this rule doesn't really work,
return str
-conversions.append (((2,1,17), conv, """\\partcombine syntax change to \\newpartcombine"""))
+conversions.append (((2,1,17), conv, _ ("\\partcombine syntax change to \\newpartcombine")))
def conv (str):
def conv (str):
if re.search ('include "drumpitch', str):
- error_file.write ("Drums found. Enclose drum notes in \\drummode")
+ stderr_write (_ ("Drums found. Enclose drum notes in \\drummode"))
str = re.sub (r'\\include "drumpitch-init.ly"','', str)
if re.search ('drums->paper', str):
- error_file.write ("\nDrum notation found. Check file manually!")
+ stderr_write (_ ("\n%s found. Check file manually!\n") % _("Drum notation"))
str = re.sub (r"""\\apply\s+#\(drums->paper\s+'([a-z]+)\)""",
r"""\property DrumStaff.drumStyleTable = #\1-style""",
str)
if re.search ('Thread', str):
- error_file.write ("\nThread found. Check file manually!\n");
+ stderr_write (_ ("\n%s found. Check file manually!\n") % "Thread");
str = re.sub (r"""(\\once\s*)?\\property\s+Thread\s*\.\s*NoteHead\s*"""
+ r"""\\(set|override)\s*#'style\s*=\s*#'harmonic"""
str = re.sub (r"""Thread""", """Voice""", str)
if re.search ('\bLyrics\b', str):
- error_file.write ("\nLyrics found. Check file manually!\n");
+ stderr_write (_ ("\n%s found. Check file manually!\n") % "Lyrics");
str = re.sub (r"""LyricsVoice""", r"""L@ricsVoice""", str)
str = re.sub (r"""\bLyrics\b""", r"""LyricsVoice""", str)
return str
-conversions.append (((2,1,19), conv, """Drum notation changes, Removing \\chordmodifiers, \\notenames.
-Harmonic notes. Thread context removed. Lyrics context removed."""))
+conversions.append (((2,1,19), conv, _ ("""Drum notation changes, Removing \\chordmodifiers, \\notenames.
+Harmonic notes. Thread context removed. Lyrics context removed.""")))
def conv (str):
str = re.sub (r'nonevent-skip', 'skip-music', str)
brew-new-markup-molecule -> Text_item::print
LyricsVoice -> Lyrics
tupletInvisible -> TupletBracket \set #'transparent
-Grob::preset_extent removed.
-""" ))
+%s.
+""" % (_ ("remove %s") % "Grob::preset_extent")))
def conv (str):
str = re.sub ('Molecule', 'Stencil', str)
return str
-conversions.append (((2,1,22), conv, """new syntax for property settings:
+conversions.append (((2,1,22), conv, """%s
\\set A.B = #C , \\unset A.B
\\override A.B #C = #D, \\revert A.B #C
-"""))
+""" % _ ("new syntax for property settings:")))
def conv (str):
def subst_in_trans (match):
return str
-conversions.append (((2,1,23), conv, """Property setting syntax in \\translator{ }"""))
+conversions.append (((2,1,23), conv, _ ("Property setting syntax in \\translator{ }")))
+
def conv (str):
str = re.sub (r'music-list\?', 'ly:music-list?', str)
str = re.sub (r'\|\s*~', '~ |', str)
str = re.sub (r'ly:get-broken-into', 'ly:spanner-broken-into', str)
str = re.sub (r'Melisma_engraver', 'Melisma_translator', str)
if re.search ("ly:get-paper-variable", str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "ly:paper-get-variable")
- error_file.write ('\n')
- error_file.write ('use (ly:paper-lookup (ly:grob-paper ))')
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "ly:paper-get-variable")
+ stderr_write ('\n')
+ stderr_write (_ ('use %s') % '(ly:paper-lookup (ly:grob-paper ))')
+ stderr_write ('\n')
raise FatalConversionError ()
str = re.sub (r'\\defaultAccidentals', "#(set-accidental-style 'default)", str)
return str
-conversions.append (((2,1,25), conv, """Scheme grob function renaming"""))
+conversions.append (((2,1,25), conv, _ ("Scheme grob function renaming")))
def conv (str):
return str
-conversions.append (((2,1,26), conv, """More Scheme function renaming"""))
+conversions.append (((2,1,26), conv, _ ("More Scheme function renaming")))
def conv (str):
def subst (m):
- g = string.atoi (m.group (2))
+ g = int (m.group (2))
o = g / 12
g -= o * 12
if g < 0:
return str
conversions.append (((2, 2, 0), conv,
- '''clean up version. '''))
+ _ ("bump version for release")))
def conv (str):
return re.sub (r'\\apply\b', r'\\applymusic', str)
def conv (str):
if re.search ('textheight', str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "textheight")
- error_file.write ('\n')
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
- error_file.write (
-"""Page layout has been changed, using paper size and margins.
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "textheight")
+ stderr_write ('\n')
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
+ stderr_write (
+_ ("""Page layout has been changed, using paper size and margins.
textheight is no longer used.
-""")
+"""))
str = re.sub (r'\\OrchestralScoreContext', '\\Score', str)
def func(m):
if m.group(1) not in ['RemoveEmptyStaff',
return str
conversions.append (((2, 3, 4), conv,
- '''remove \\notes'''))
+ _ ('remove %s') % '\\notes'))
str = re.sub (r'\\addlyrics', r'\\oldaddlyrics', str)
str = re.sub (r'\\newlyrics', r'\\addlyrics', str)
if re.search (r"\\override\s*TextSpanner", str):
- error_file.write ("\nWarning: TextSpanner has been split into DynamicTextSpanner and TextSpanner\n")
+ stderr_write ("\nWarning: TextSpanner has been split into DynamicTextSpanner and TextSpanner\n")
return str
conversions.append (((2, 3, 10), conv,
return str
conversions.append (((2, 3, 16), conv,
- '''\\foo -> \\foomode (for chords, notes, etc.)
-fold \\new FooContext \\foomode into \\foo.'''))
+ _ ('''\\foo -> \\foomode (for chords, notes, etc.)
+fold \\new FooContext \\foomode into \\foo.''')))
def conv (str):
str = re.sub (r'(slur|stem|phrasingSlur|tie|dynamic|dots|tuplet|arpeggio|)Both', r'\1Neutral', str)
return str
conversions.append (((2, 3, 17), conv,
- '''\\foo -> \\foomode (for chords, notes, etc.)
-fold \\new FooContext \\foomode into \\foo.'''))
+ '''slurBoth -> slurNeutral, stemBoth -> stemNeutral, etc.
+\\applymusic #(remove-tag 'foo) -> \\removeWithTag 'foo'''))
def conv (str):
str = re.sub (r'\\paper', r'\\layout', str)
str = re.sub (r'\\bookpaper', r'\\paper', str)
if re.search ('paper-set-staff-size', str):
- error_file.write ('''\nWarning: staff size should be changed at top-level
+ warning (_ ('''staff size should be changed at top-level
with
#(set-global-staff-size <STAFF-HEIGHT-IN-POINT>)
-''')
+'''))
str = re.sub (r'#\(paper-set-staff-size', '%Use set-global-staff-size at toplevel\n% #(layout-set-staff-size', str)
conversions.append (((2, 3, 22),
conv,
- '''paper -> layout
- bookpaper -> paper''' ))
+ '''paper -> layout, bookpaper -> paper''' ))
def conv (str):
conversions.append (((2, 3, 24),
conv,
- '''regularize other identifiers.'''))
+ _ ('''regularize other identifiers''')))
def conv (str):
str = re.sub ('petrucci_c1', 'petrucci-c1', str)
conversions.append (((2, 4, 0),
conv,
- ''))
+ _ ("bump version for release")))
def conv (str):
str = re.sub (r'\\quote\s+"?([a-zA-Z0-9]+)"?\s+([0-9.*/]+)',
r'\\quoteDuring #"\1" { \skip \2 }',
- str
- )
+ str)
return str
conversions.append (((2, 5, 0),
conv,
- ''))
+ '\\quote -> \\quoteDuring'))
def conv (str):
if encoding == 'latin1':
return match.group (2)
- error_file.write ('\n')
- error_file.write (NOT_SMART % ("\\encoding: %s" % encoding))
- error_file.write ('\n')
- error_file.write (_ ("LilyPond source must be UTF-8"))
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % ("\\encoding: %s" % encoding))
+ stderr_write ('\n')
+ stderr_write (_ ("LilyPond source must be UTF-8"))
+ stderr_write ('\n')
if encoding == 'TeX':
- error_file.write (_ ("Try the texstrings backend"))
- error_file.write ('\n')
+ stderr_write (_ ("Try the texstrings backend"))
+ stderr_write ('\n')
else:
- error_file.write ( _("Do something like: %s") % \
+ stderr_write ( _("Do something like: %s") % \
("recode %s..utf-8 FILE" % encoding))
- error_file.write ('\n')
- error_file.write (_ ("Or save as UTF-8 in your editor"))
- error_file.write ('\n')
+ stderr_write ('\n')
+ stderr_write (_ ("Or save as UTF-8 in your editor"))
+ stderr_write ('\n')
raise FatalConversionError ()
return match.group (0)
conversions.append (((2, 5, 13),
conv,
- '\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click'))
+ _ ('\\encoding: smart recode latin1..utf-8. Remove ly:point-and-click')))
def conv (str):
if re.search ("ly:stencil-set-extent!", str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "ly:stencil-set-extent!")
- error_file.write ('\n')
- error_file.write ('use (set! VAR (ly:make-stencil (ly:stencil-expr VAR) X-EXT Y-EXT))\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "ly:stencil-set-extent!")
+ stderr_write ('\n')
+ stderr_write ('use (set! VAR (ly:make-stencil (ly:stencil-expr VAR) X-EXT Y-EXT))\n')
raise FatalConversionError ()
if re.search ("ly:stencil-align-to!", str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % "ly:stencil-align-to!")
- error_file.write ('\n')
- error_file.write ('use (set! VAR (ly:stencil-aligned-to VAR AXIS DIR))\n')
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % "ly:stencil-align-to!")
+ stderr_write ('\n')
+ stderr_write ('use (set! VAR (ly:stencil-aligned-to VAR AXIS DIR))\n')
raise FatalConversionError ()
return str
conversions.append (((2, 5, 17),
conv,
- 'ly:stencil-set-extent! removed'))
+ _ ('remove %s') % 'ly:stencil-set-extent!'))
def conv (str):
str = re.sub (r"ly:warn\b", 'ly:warning', str)
def conv (str):
if re.search ("(override-|revert-)auto-beam-setting", str)\
or re.search ("autoBeamSettings", str):
- error_file.write ('\n')
- error_file.write (NOT_SMART % _ ("auto beam settings"))
- error_file.write ('\n')
- error_file.write ('''
+ stderr_write ('\n')
+ stderr_write (NOT_SMART % _ ("auto beam settings"))
+ stderr_write ('\n')
+ stderr_write (_ ('''
Auto beam settings must now specify each interesting moment in a measure
explicitely; 1/4 is no longer multiplied to cover moments 1/2 and 3/4 too.
-''')
- error_file.write (UPDATE_MANUALLY)
- error_file.write ('\n')
+'''))
+ stderr_write (UPDATE_MANUALLY)
+ stderr_write ('\n')
raise FatalConversionError ()
return str
conversions.append (((2, 5, 21),
conv,
- 'warn about auto beam settings'))
+ _ ('warn about auto beam settings')))
def conv (str):
str = re.sub (r"unfoldrepeats", 'unfoldRepeats', str)
return str
conversions.append (((2, 5, 25), conv,
-
- 'unfoldrepeats -> unfoldRepeats,'
- + 'compressmusic -> compressMusic'))
+ 'unfoldrepeats -> unfoldRepeats, compressmusic -> compressMusic'))
def conv (str):
return str
conversions.append (((2, 6, 0), conv,
-
- 'dummy rule for 2.6'))
+ _ ("bump version for release")))
return str
conversions.append (((2, 7, 4), conv,
- '''keyAccidentalOrder->keyAlterationOrder'''))
+ '''keyAccidentalOrder -> keyAlterationOrder'''))
return str
conversions.append (((2, 7, 6), conv,
- '''Performer_group_performer -> Performer_group, Engraver_group_engraver -> Engraver_group
+ '''Performer_group_performer -> Performer_group, Engraver_group_engraver -> Engraver_group,
inside-slur -> avoid-slur'''))
subber, str)
if re.search ('bar-size-procedure', str):
- error_file.write (NOT_SMART % "bar-size-procedure")
+ stderr_write (NOT_SMART % "bar-size-procedure")
if re.search ('space-function', str):
- error_file.write (NOT_SMART % "space-function")
+ stderr_write (NOT_SMART % "space-function")
if re.search ('verticalAlignmentChildCallback', str):
- error_file.write ('verticalAlignmentChildCallback has been deprecated')
+ stderr_write (_ ('verticalAlignmentChildCallback has been deprecated'))
return str
conversions.append (((2, 7, 13), conv,
- '''layout engine refactoring. [FIXME] '''))
+ '''layout engine refactoring [FIXME]'''))
return str
conversions.append (((2, 7, 14), conv,
- '''Remove callbacks property, deprecate XY-extent-callback. '''))
+ _ ('Remove callbacks property, deprecate XY-extent-callback.')))
def conv (str):
if re.search ('[XY]-offset-callbacks', str):
- error_file.write (NOT_SMART % "[XY]-offset-callbacks")
+ stderr_write (NOT_SMART % "[XY]-offset-callbacks")
if re.search ('position-callbacks', str):
- error_file.write (NOT_SMART % "position-callbacks")
+ stderr_write (NOT_SMART % "position-callbacks")
return str
conversions.append (((2, 7, 15), conv,
- '''Use grob closures iso. XY-offset-callbacks.'''))
+ _ ('Use grob closures iso. XY-offset-callbacks.')))
def conv (str):
return str
conversions.append (((2, 7, 24), conv,
- """deprecate number-visibility"""))
+ _ ('deprecate %s') % 'number-visibility'))
def conv (str):
str = re.sub (r"ly:spanner-get-bound", "ly:spanner-bound", str)
return str
conversions.append (((2, 7, 32), conv,
- """foobar -> foo-bar for \paper, \layout"""))
+ _ ("foobar -> foo-bar for \paper, \layout")))
def conv (str):
str = re.sub ('debug-beam-quanting', 'debug-beam-scoring', str)
r"""\\override \g<context>TupletNumber #'text = #tuplet-number::calc-fraction-text""", str)
if re.search ('tupletNumberFormatFunction', str):
- error_file.write ("\n")
- error_file.write ("tupletNumberFormatFunction has been removed. Use #'text property on TupletNumber")
- error_file.write ("\n")
+ stderr_write ("\n")
+ stderr_write ("tupletNumberFormatFunction has been removed. Use #'text property on TupletNumber")
+ stderr_write ("\n")
return str
str = re.sub (r'\\midi\s*{\s*\\tempo ([0-9]+)\s*([.]*)\s*=\s*([0-9]+)\s*}', sub_tempo, str)
return str
-conversions.append (((2, 9, 16), conv, """deprecate \\tempo in \\midi"""))
+conversions.append (((2, 9, 16), conv, _ ("deprecate \\tempo in \\midi")))
def conv (str):
str = re.sub ('printfirst-page-number', 'print-first-page-number', str)
def conv (str):
return str
-conversions.append (((2, 10, 0), conv, """bump version for release"""))
+conversions.append (((2, 10, 0), conv, _ ("bump version for release")))
def conv (str):
return str
-conversions.append (((2, 11, 5), conv, """deprecate cautionary-style. Use AccidentalCautionary properties"""))
+conversions.append (((2, 11, 5), conv, _ ("deprecate cautionary-style. Use AccidentalCautionary properties")))
'standard-alteration-glyph-name-alist')
return str
-conversions.append (((2, 11, 6), conv, """Rename accidental glyphs, use glyph-name-alist."""))
+conversions.append (((2, 11, 6), conv, _ ("Rename accidental glyphs, use glyph-name-alist.")))
def conv (str):
r"\override Beam #'breakable", str)
str = re.sub (r'addquote' , 'addQuote', str)
if re.search ("Span_dynamic_performer", str):
- error_file.write ("Span_dynamic_performer has been merged into Dynamic_performer")
+ stderr_write ("Span_dynamic_performer has been merged into Dynamic_performer")
return str
conversions.append (((2, 11, 10), conv, """allowBeamBreak -> Beam #'breakable = ##t
addquote -> addQuote
-
"""))
def conv (str):
str)
if re.search ('edge-text', str):
- error_file.write (NOT_SMART % _ ("edge-text settings for TextSpanner."))
- error_file.write (_ ("Use\n\n%s") %
+ stderr_write (NOT_SMART % _ ("edge-text settings for TextSpanner."))
+ stderr_write (_ ("Use\n\n%s") %
"\t\\override TextSpanner #'bound-details #'right #'text = <right-text>\n"
"\t\\override TextSpanner #'bound-details #'left #'text = <left-text>\n")
r"scripts.caesura.curved", str)
if re.search ('dash-fraction', str):
- error_file.write (NOT_SMART % _ ("all settings related to dashed lines.\n"))
- error_file.write (_ ("Use \\override ... #'style = #'line for solid lines and\n"))
- error_file.write (_ ("\t\\override ... #'style = #'dashed-line for dashed lines."))
+ stderr_write (NOT_SMART % _ ("all settings related to dashed lines.\n"))
+ stderr_write (_ ("Use \\override ... #'style = #'line for solid lines and\n"))
+ stderr_write (_ ("\t\\override ... #'style = #'dashed-line for dashed lines."))
return str
-conversions.append (((2, 11, 35), conv, """scripts.caesura -> scripts.caesura.curved. Use #'style not #'dash-fraction to select solid/dashed lines."""))
+conversions.append (((2, 11, 35), conv, """scripts.caesura -> scripts.caesura.curved.
+""" + _ ("Use #'style not #'dash-fraction to select solid/dashed lines.")))
def conv (str):
str = re.sub (r"setEasyHeads", r"easyHeadsOn", str)
def encoded_write(f, s):
f.write (s.encode (f.encoding or 'utf_8'))
+# ugh, Python 2.5 optparse requires Unicode strings in some argument
+# functions, and refuse them in some other places
+def display_encode (s):
+ return s.encode (sys.stderr.encoding or 'utf_8')
+
def stderr_write (s):
encoded_write (sys.stderr, s)
import sys
import string
import re
+import lilylib
+
+_ = lilylib._
from rational import Rational
previous_pitch = None
relative_pitches = False
+def warning (str):
+ ly.stderr_write ((_ ("warning: %s") % str) + "\n")
+
+
def escape_instrument_string (input_string):
retstring = string.replace (input_string, "\"", "\\\"")
if re.match ('.*[\r\n]+.*', retstring):
self.music = SequentialMusic ()
self.music.elements = music
else:
- sys.stderr.write ("WARNING: Unable to set the music %s for the repeat %s" % (music, self))
+ warning (_ ("unable to set the music %(music)s for the repeat %(repeat)s" % \
+ {'music':music, 'repeat':self}))
def add_ending (self, music):
self.endings.append (music)
def print_ly (self, printer):
if self.music:
self.music.print_ly (printer)
else:
- sys.stderr.write ("WARNING: Encountered repeat without body\n")
+ warning (_ ("encountered repeat without body"))
printer.dump ('{}')
if self.endings:
printer.dump ('\\alternative {')
printer ('\\grace')
# don't print newlines after the { and } braces
self.grace_elements.print_ly (printer, False)
+ # Print all overrides and other settings needed by the
+ # articulations/ornaments before the note
+ for e in other_events:
+ e.print_before_note (printer)
if rest_events:
rest_events[0].print_ly (printer)
for e in other_events:
e.print_ly (printer)
+ for e in other_events:
+ e.print_after_note (printer)
+
self.print_comment (printer)
class Partial (Music):
return " | "
class Event(Music):
+ def __init__ (self):
+ # strings to print before the note to which an event is attached.
+ # Ignored for notes etc.
+ self.before_note = None
+ self.after_note = None
+ # print something before the note to which an event is attached, e.g. overrides
+ def print_before_note (self, printer):
+ if self.before_note:
+ printer.dump (self.before_note)
+ # print something after the note to which an event is attached, e.g. resetting
+ def print_after_note (self, printer):
+ if self.after_note:
+ printer.dump (self.after_note)
pass
class SpanEvent (Event):
self.span_type = type
class SlurEvent (SpanEvent):
+ def print_before_note (self, printer):
+ command = {'dotted': '\\slurDotted',
+ 'dashed' : '\\slurDashed'}.get (self.line_type, '')
+ if command and self.span_direction == -1:
+ printer.dump (command)
+ def print_after_note (self, printer):
+ # reset non-solid slur types!
+ command = {'dotted': '\\slurSolid',
+ 'dashed' : '\\slurSolid'}.get (self.line_type, '')
+ if command and self.span_direction == -1:
+ printer.dump (command)
def ly_expression (self):
- before = ''
- after = ''
- # TODO: setting dashed/dotted line style does not work, because that
- # command needs to be written before the note, not when the
- # event is observed after the note!
- #before = {'dotted': '\\slurDotted',
- # 'dashed' : '\\slurDashed'}.get (self.line_type, '')
- #if before:
- #after = '\\slurSolid'
-
- return {-1: before + '(' + after,
- 1:')'}.get (self.span_direction, '')
+ return {-1: '(', 1:')'}.get (self.span_direction, '')
class BeamEvent (SpanEvent):
def ly_expression (self):
- return {-1: '[',
- 1:']'}.get (self.span_direction, '')
+ return {-1: '[', 1:']'}.get (self.span_direction, '')
class PedalEvent (SpanEvent):
def ly_expression (self):
return {-1: '\\sustainDown',
+ 0:'\\sustainUp\\sustainDown',
1:'\\sustainUp'}.get (self.span_direction, '')
+class TextSpannerEvent (SpanEvent):
+ def ly_expression (self):
+ return {-1: '\\startTextSpan',
+ 1:'\\stopTextSpan'}.get (self.span_direction, '')
+
+class BracketSpannerEvent (SpanEvent):
+ def ly_expression (self):
+ return {-1: '\\startGroup',
+ 1:'\\stopGroup'}.get (self.span_direction, '')
+
+
# type==-1 means octave up, type==-2 means octave down
class OctaveShiftEvent (SpanEvent):
def wait_for_note (self):
- return False;
+ return False
def set_span_type (self, type):
self.span_type = {'up': 1, 'down': -1}.get (type, 0)
def ly_octave_shift_indicator (self):
1:'\\stopTrillSpan'}.get (self.span_direction, '')
class GlissandoEvent (SpanEvent):
+ def print_before_note (self, printer):
+ if self.span_direction == -1:
+ style= {
+ "dashed" : "dashed-line",
+ "dotted" : "dotted-line",
+ "wavy" : "zigzag"
+ }. get (self.line_type, None)
+ if style:
+ printer.dump ("\once \override Glissando #'style = #'%s" % style)
def ly_expression (self):
- style = ''
- # TODO: wavy-line glissandos don't work, becasue the style has to be
- # set before the note, at the \glissando it's already too late!
- #if self.line_type == 'wavy':
- #style = "\once\override Glissando #'style = #'zigzag"
- # In lilypond, glissando is NOT a spanner, unlike MusicXML.
- return {-1: style + '\\glissando',
+ return {-1: '\\glissando',
1:''}.get (self.span_direction, '')
class ArpeggioEvent(Event):
def __init__ (self):
Event.__init__ (self)
self.direction = 0
+ self.non_arpeggiate = False
def wait_for_note (self):
- return True;
+ return True
+ def print_before_note (self, printer):
+ if self.non_arpeggiate:
+ printer.dump ("\\arpeggioBracket")
+ else:
+ dir = { -1: "\\arpeggioDown", 1: "\\arpeggioUp" }.get (self.direction, '')
+ if dir:
+ printer.dump (dir)
+ def print_after_note (self, printer):
+ if self.non_arpeggiate or self.direction:
+ printer.dump ("\\arpeggioNeutral")
def ly_expression (self):
- # TODO: Use self.direction for up/down arpeggios
return ('\\arpeggio')
class DynamicsEvent (Event):
def __init__ (self):
+ Event.__init__ (self)
self.type = None
def wait_for_note (self):
- return True;
+ return True
def ly_expression (self):
if self.type:
return '\%s' % self.type
else:
- return;
+ return
def print_ly (self, printer):
if self.type:
printer.dump ("\\%s" % self.type)
+class MarkEvent (Event):
+ def __init__ (self, text="\\default"):
+ Event.__init__ (self)
+ self.mark = text
+ def wait_for_note (self):
+ return False
+ def ly_contents (self):
+ if self.mark:
+ return '%s' % self.mark
+ else:
+ return "\"ERROR\""
+ def ly_expression (self):
+ return '\\mark %s' % self.ly_contents ()
+
+class MusicGlyphMarkEvent (MarkEvent):
+ def ly_contents (self):
+ if self.mark:
+ return '\\markup { \\musicglyph #"scripts.%s" }' % self.mark
+ else:
+ return ''
+
class TextEvent (Event):
def __init__ (self):
+ Event.__init__ (self)
self.Text = None
self.force_direction = None
self.markup = ''
class ArticulationEvent (Event):
def __init__ (self):
+ Event.__init__ (self)
self.type = None
self.force_direction = None
def wait_for_note (self):
- return True;
+ return True
def direction_mod (self):
return { 1: '^', -1: '_', 0: '-' }.get (self.force_direction, '')
import re
import sys
import copy
+import lilylib
+
+_ = lilylib._
+
+def error (str):
+ ly.stderr_write ((_ ("error: %s") % str) + "\n")
+
def escape_ly_output_string (input_string):
return_string = input_string
return ''.join ([c.get_text () for c in self._children])
def message (self, msg):
- sys.stderr.write (msg+'\n')
+ lilylib.stderr_write (msg+'\n')
p = self
while p:
else:
return (4, 4)
except KeyError:
- sys.stderr.write ('error: requested time signature, but time sig unknown\n')
+ error (_ ("requested time signature, but time sig is unknown"))
return (4, 4)
# returns clef information in the form ("cleftype", position, octave-shift)
# FIXME: is it ok to default to eight note for grace notes?
return 3
else:
- self.message ("Encountered note at %s with %s duration (no <type> element):" % (self.start, self.duration) )
+ self.message (_ ("Encountered note at %s with %s duration (no <type> element):") % (self.start, self.duration) )
return 0
def get_factor (self):
if instrument_name:
return instrument_name
else:
- sys.stderr.write ("Opps, couldn't find instrument for ID=%s\n" % id)
+ lilylib.stderr_write (_ ("Unable to find find instrument for ID=%s\n") % id)
return "Grand Piano"
class Part_group (Music_xml_node):
class Tuplet (Music_xml_spanner):
pass
+class Bracket (Music_xml_spanner):
+ pass
+
+class Dashes (Music_xml_spanner):
+ pass
+
class Slur (Music_xml_spanner):
def get_type (self):
return self.type
class Glissando (Music_xml_spanner):
pass
+class Slide (Music_xml_spanner):
+ pass
+
class Octave_shift (Music_xml_spanner):
# default is 8 for the octave-shift!
def get_size (self):
'bar-style': BarStyle,
'beam' : Beam,
'bend' : Bend,
+ 'bracket' : Bracket,
'chord': Chord,
+ 'dashes' : Dashes,
'dot': Dot,
'direction': Direction,
'direction-type': DirType,
'pitch': Pitch,
'rest': Rest,
'score-part': Score_part,
+ 'slide': Slide,
'slur': Slur,
'staff': Staff,
'syllabic': Syllabic,
(X-offset . ,ly:side-position-interface::x-aligned-side)
(direction . ,LEFT)
(self-alignment-Y . ,CENTER)
+ (self-alignment-X . ,CENTER)
(meta . ((class . Spanner)
(interfaces . (system-start-text-interface
side-position-interface
. (
(axes . (,Y))
(Y-extent . ,ly:axis-group-interface::height)
+ (X-extent . ,ly:axis-group-interface::width)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
+ (outside-staff-priority . 1000)
(side-axis . ,Y)
(staff-padding . 1.0)
(padding . 1.2)
. (
(axes . (,Y))
(Y-extent . ,ly:axis-group-interface::height)
+ (X-extent . ,ly:axis-group-interface::width)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
+ (outside-staff-priority . 1000)
(side-axis . ,Y)
(padding . 1.2)
(staff-padding . 1.2)
. (
(axes . (,Y))
(Y-extent . ,ly:axis-group-interface::height)
+ (X-extent . ,ly:axis-group-interface::width)
(Y-offset . ,ly:side-position-interface::y-aligned-side)
+ (outside-staff-priority . 1000)
(side-axis . ,Y)
(padding . 1.2)
(staff-padding . 1.2)
(cond ((and (pair? expr)
(keyword? (car expr)))
;; expr === (#:COMMAND arg1 ...)
- (let* ((command (symbol->string (keyword->symbol (car expr))))
- (sig (markup-command-signature
- (car (lookup-markup-command command))))
- (sig-len (length sig)))
- (do ((i 0 (1+ i))
- (args '() args)
- (rest (cdr expr) rest))
- ((>= i sig-len)
- (values (cons (keyword->make-markup (car expr)) (reverse args)) rest))
- (cond ((eqv? (list-ref sig i) markup-list?)
- ;; (car rest) is a markup list
- (set! args (cons `(list ,@(compile-all-markup-expressions (car rest))) args))
- (set! rest (cdr rest)))
- (else
- ;; pick up one arg in `rest'
- (receive (a r) (compile-markup-arg rest)
- (set! args (cons a args))
- (set! rest r)))))))
+ (let ((command (symbol->string (keyword->symbol (car expr)))))
+ (if (not (pair? (lookup-markup-command command)))
+ (ly:error (_ "Not a markup command: ~A") command))
+ (let* ((sig (markup-command-signature
+ (car (lookup-markup-command command))))
+ (sig-len (length sig)))
+ (do ((i 0 (1+ i))
+ (args '() args)
+ (rest (cdr expr) rest))
+ ((>= i sig-len)
+ (values (cons (keyword->make-markup (car expr)) (reverse args)) rest))
+ (cond ((eqv? (list-ref sig i) markup-list?)
+ ;; (car rest) is a markup list
+ (set! args (cons `(list ,@(compile-all-markup-expressions (car rest))) args))
+ (set! rest (cdr rest)))
+ (else
+ ;; pick up one arg in `rest'
+ (receive (a r) (compile-markup-arg rest)
+ (set! args (cons a args))
+ (set! rest r))))))))
((and (pair? expr)
(pair? (car expr))
(keyword? (caar expr)))
'(pt mm cm in staff-height staff-space
page-top-space
between-system-space between-system-padding
- line-width indent paper-width paper-height horizontal-shift
+ line-width indent short-indent paper-width paper-height horizontal-shift
staff-space line-thickness ledgerline-thickness
blot-diameter left-margin right-margin)))
(ly:modules-lookup (list m) 'right-margin (* 10 mm))))
(module-define! m 'indent (/ w 14))
+ (module-define! m 'short-indent (* 5 mm))
;; page layout - what to do with (printer specific!) margin settings?
def get_option_parser ():
p = ly.get_option_parser (usage=_ ("%s [OPTION]... FILE") % 'abc2ly',
- version="abc2ly (LilyPond) @TOPLEVEL_VERSION@",
description=_ ('''abc2ly converts ABC music files (see
-%s) to LilyPond input.''') % 'http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt')
+%s) to LilyPond input.''') % 'http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt',
+ add_help_option=False)
+ p.version = "abc2ly (LilyPond) @TOPLEVEL_VERSION@"
+ p.add_option("--version",
+ action="version",
+ help=_ ("show version number and exit"))
+
+ p.add_option("-h", "--help",
+ action="help",
+ help=_ ("show this help and exit"))
p.add_option ('-o', '--output', metavar='FILE',
help=_ ("write output to FILE"),
action='store')
p.add_option ('-s', '--strict', help=_ ("be strict about succes"),
action='store_true')
p.add_option ('-b', '--beams', help=_ ("preserve ABC's notion of beams"))
- p.add_option_group ('bugs',
+ p.add_option_group (ly.display_encode (_ ('Bugs')),
description=(_ ('Report bugs via')
+ ''' http://post.gmane.org/post.php'''
'''?group=gmane.comp.gnu.lilypond.bugs\n'''))
def get_option_parser ():
p = ly.get_option_parser (usage=_ ("%s [OPTION]... FILE") % 'convert-ly',
- version="@TOPLEVEL_VERSION@",
- description=help_summary)
+ description=help_summary,
+ add_help_option=False)
+
+ p.version="@TOPLEVEL_VERSION@"
+ p.add_option("--version",
+ action="version",
+ help=_ ("show version number and exit"))
+
+ p.add_option("-h", "--help",
+ action="help",
+ help=_ ("show this help and exit"))
p.add_option ('-f', '--from',
action="store",
dest="to_version",
default='')
- p.add_option_group ('bugs',
+ p.add_option_group (ly.display_encode (_ ('Bugs')),
description=(_ ("Report bugs via")
+ ''' http://post.gmane.org/post.php'''
'''?group=gmane.comp.gnu.lilypond.bugs\n'''))
def get_option_parser ():
p = ly.get_option_parser (usage=_ ("%s [OPTION]... ETF-FILE") % 'etf2ly',
- version="etf2ly (LilyPond) @TOPLEVEL_VERSION@",
description=_ ("""Enigma Transport Format is a format used by Coda Music Technology's
-Finale product. etf2ly converts a subset of ETF to a ready-to-use LilyPond file."""))
+Finale product. etf2ly converts a subset of ETF to a ready-to-use LilyPond file."""),
+ add_help_option=False)
+ p.add_option("-h", "--help",
+ action="help",
+ help=_ ("show this help and exit"))
+ p.version = "etf2ly (LilyPond) @TOPLEVEL_VERSION@"
+ p.add_option("--version",
+ action="version",
+ help=_ ("show version number and exit"))
p.add_option ('-o', '--output', help=_ ("write output to FILE"),
metavar=_("FILE"),
action='store')
action='store_true',
),
- p.add_option_group ('bugs',
+ p.add_option_group (ly.display_encode (_ ('Bugs')),
description=(_ ('Report bugs via')
+ ''' http://post.gmane.org/post.php'''
'''?group=gmane.comp.gnu.lilypond.bugs\n'''))
'''
import stat
-import string
import tempfile
import commands
import os
import sys
import re
import md5
+import operator
"""
@relocate-preamble@
################################################################
def exit (i):
if global_options.verbose:
- raise _ ('Exiting (%d)...') % i
+ raise Exception (_ ('Exiting (%d)...') % i)
else:
sys.exit (i)
header = open (ps_name).read (1024)
m = re.search ('\n%%Pages: ([0-9]+)', header)
if m:
- return string.atoi (m.group (1))
+ return int (m.group (1))
return 0
def warranty ():
def get_option_parser ():
p = ly.get_option_parser (usage=_ ("%s [OPTION]... FILE") % 'lilypond-book',
- version="@TOPLEVEL_VERSION@",
- description=help_summary)
+ description=help_summary,
+ add_help_option=False)
p.add_option ('-F', '--filter', metavar=_ ("FILTER"),
action="store",
dest="filter_cmd",
help=_ ("pipe snippets through FILTER [convert-ly -n -]"),
default=None)
+
p.add_option ('-f', '--format',
help=_ ("use output format FORMAT (texi [default], texi-html, latex, html, docbook)"),
action='store')
-
+
+ p.add_option("-h", "--help",
+ action="help",
+ help=_ ("show this help and exit"))
+
p.add_option ("-I", '--include', help=_ ("add DIR to include path"),
metavar=_ ("DIR"),
action='append', dest='include_path',
default=[os.path.abspath (os.getcwd ())])
+ p.add_option ('--info-images-dir',
+ help=_ ("format Texinfo output so that Info will "
+ "look for images of music in DIR"),
+ metavar=_ ("DIR"),
+ action='store', dest='info_images_dir',
+ default='')
+
p.add_option ('--left-padding',
- metavar=_("PAD"),
+ metavar=_ ("PAD"),
dest="padding_mm",
- help="Pad left side of music to align music inspite of uneven bar numbers. (in mm)",
+ help=_ ("pad left side of music to align music inspite of uneven bar numbers (in mm)"),
type="float",
default=3.0)
help = _ ("process ly_files using COMMAND FILE..."),
action='store',
dest='process_cmd', default='lilypond -dbackend=eps')
+
p.add_option ('--pdf',
action="store_true",
dest="create_pdf",
- help=_ ("Create PDF files for use with PDFTeX"),
+ help=_ ("create PDF files for use with PDFTeX"),
default=False)
+
p.add_option ('', '--psfonts', action="store_true", dest="psfonts",
help=_ ('''extract all PostScript fonts into INPUT.psfonts for LaTeX
must use this with dvips -h INPUT.psfonts'''),
default=None)
+
p.add_option ('-V', '--verbose', help=_ ("be verbose"),
action="store_true",
default=False,
dest="verbose")
+
+ p.version = "@TOPLEVEL_VERSION@"
+ p.add_option("--version",
+ action="version",
+ help=_ ("show version number and exit"))
+
p.add_option ('-w', '--warranty',
help=_ ("show warranty and copyright"),
action='store_true')
- p.add_option_group ('bugs',
+ p.add_option_group (ly.display_encode (_ ('Bugs')),
description=(_ ("Report bugs via")
+ ''' http://post.gmane.org/post.php'''
'''?group=gmane.comp.gnu.lilypond.bugs\n'''))
OUTPUTIMAGE: r'''@noindent
@ifinfo
-@image{%(base)s,,,%(alt)s,%(ext)s}
+@image{%(info_image_path)s,,,%(alt)s,%(ext)s}
@end ifinfo
@html
<p>
return (None, None)
-def find_file (name):
+def find_file (name, raise_error=True):
for i in global_options.include_path:
full = os.path.join (i, name)
if os.path.exists (full):
return full
- error (_ ("file not found: %s") % name + '\n')
- exit (1)
+ if raise_error:
+ error (_ ("file not found: %s") % name + '\n')
+ exit (1)
return ''
def verbatim_html (s):
option_list.append (key)
else:
option_list.append (key + '=' + value)
- option_string = string.join (option_list, ',')
+ option_string = ','.join (option_list)
compose_dict = {}
compose_types = [NOTES, PREAMBLE, LAYOUT, PAPER]
elif relative > 0:
relative_quotes += "'" * relative
- paper_string = string.join (compose_dict[PAPER],
- '\n ') % override
- layout_string = string.join (compose_dict[LAYOUT],
- '\n ') % override
- notes_string = string.join (compose_dict[NOTES],
- '\n ') % vars ()
- preamble_string = string.join (compose_dict[PREAMBLE],
- '\n ') % override
+ paper_string = '\n '.join (compose_dict[PAPER]) % override
+ layout_string = '\n '.join (compose_dict[LAYOUT]) % override
+ notes_string = '\n '.join (compose_dict[NOTES]) % vars ()
+ preamble_string = '\n '.join (compose_dict[PREAMBLE]) % override
padding_mm = global_options.padding_mm
font_dump_setting = ''
if FONTLOAD in self.option_dict:
def ly_is_outdated (self):
base = self.basename ()
- ly_file = base + '.ly'
- tex_file = base + '.tex'
- eps_file = base + '.eps'
- systems_file = base + '-systems.tex'
+ ly_file = find_file (base + '.ly', raise_error=False)
+ tex_file = find_file (base + '.tex', raise_error=False)
+ systems_file = find_file (base + '-systems.tex', raise_error=False)
if (os.path.exists (ly_file)
and os.path.exists (systems_file)
def png_is_outdated (self):
base = self.basename ()
- # FIXME: refactor stupid OK stuff
- ok = not self.ly_is_outdated ()
- if global_options.format in (HTML, TEXINFO):
- ok = ok and os.path.exists (base + '.eps')
-
- page_count = 0
- if ok:
- page_count = ps_page_count (base + '.eps')
-
- if page_count <= 1:
- ok = ok and os.path.exists (base + '.png')
-
- elif page_count > 1:
- for a in range (1, page_count + 1):
- ok = ok and os.path.exists (base + '-page%d.png' % a)
-
- return not ok
+ eps_file = find_file (base + '.eps', raise_error=False)
+ png_file = find_file (base + '.png', raise_error=False)
+ if not self.ly_is_outdated () and global_options.format in (HTML, TEXINFO):
+ if os.path.exists (eps_file):
+ page_count = ps_page_count (eps_file)
+ if page_count <= 1:
+ return not os.path.exists (png_file)
+ else:
+ return not reduce (operator.or_,
+ [find_file (base + '-page%d.png' % a, raise_error=False)
+ for a in range (1, page_count + 1)])
+ return True
def texstr_is_outdated (self):
if backend == 'ps':
return 0
- # FIXME: refactor stupid OK stuff
base = self.basename ()
- ok = self.ly_is_outdated ()
- ok = ok and (os.path.exists (base + '.texstr'))
- return not ok
+ return not (self.ly_is_outdated ()
+ and find_file (base + '.texstr', raise_error=False))
def filter_text (self):
code = self.substring ('code')
# Specifying no extension is most robust.
ext = ''
alt = self.option_dict[ALT]
+ info_image_path = os.path.join (global_options.info_images_dir, base)
str += output[TEXINFO][OUTPUTIMAGE] % vars ()
base = self.basename ()
# the --process=CMD switch is a bad idea
# it is too generic for lilypond-book.
if texstr_names:
- my_system (string.join ([cmd, '--backend texstr',
- 'snippet-map.ly'] + texstr_names))
+ my_system (' '.join ([cmd, '--backend texstr',
+ 'snippet-map.ly'] + texstr_names))
for l in texstr_names:
my_system ('latex %s.texstr' % l)
if ly_names:
open ('snippet-names', 'wb').write ('\n'.join (['snippet-map.ly']
- + ly_names))
+ + ly_names))
- my_system (string.join ([cmd, 'snippet-names']))
+ my_system (' '.join ([cmd, 'snippet-names']))
LATEX_INSPECTION_DOCUMENT = r'''
try:
f = open (file_name)
oldstr = f.read ()
- new_str = string.join (lines, '')
+ new_str = ''.join (lines)
if oldstr == new_str:
progress (_ ("%s is up to date.") % file_name)
progress ('\n')
+ ' --formats=%s --backend eps ' % formats)
if global_options.process_cmd:
- global_options.process_cmd += string.join ([(' -I %s' % ly.mkarg (p))
+ global_options.process_cmd += ' '.join ([(' -I %s' % ly.mkarg (p))
for p in global_options.include_path])
if global_options.format in (TEXINFO, LATEX):
def get_option_parser ():
p = ly.get_option_parser (usage=_ ("%s [OPTION]... FILE") % 'midi2ly',
- version="midi2ly (LilyPond) @TOPLEVEL_VERSION@",
- description=_ ("Convert %s to LilyPond input.") % 'MIDI')
+ description=_ ("Convert %s to LilyPond input.") % 'MIDI',
+ add_help_option=False)
p.add_option ('-a', '--absolute-pitches',
action='store_true',
p.add_option ('-e', '--explicit-durations',
action='store_true',
help=_ ("print explicit durations"))
+ p.add_option("-h", "--help",
+ action="help",
+ help=_ ("show this help and exit"))
p.add_option('-k', '--key', help=_ ("set key: ALT=+sharps|-flats; MINOR=1"),
metavar=_ ("ALT[:MINOR]"),
default='0'),
p.add_option ('-V', '--verbose', help=_ ("be verbose"),
action='store_true'
),
+ p.version = "midi2ly (LilyPond) @TOPLEVEL_VERSION@"
+ p.add_option("--version",
+ action="version",
+ help=_ ("show version number and exit"))
p.add_option ('-w', '--warranty', help=_ ("show warranty and copyright"),
action='store_true',
),
p.add_option ('-x', '--text-lyrics', help=_ ("treat every text as a lyric"),
action='store_true')
-# urg, Python 2.5 optparse is broken, it doesn't accept Unicode strings
- p.add_option_group (_ ("Examples").encode (sys.stdout.encoding),
+ p.add_option_group (ly.display_encode (_ ("Examples")),
description = r'''
midi2ly --key=-2:1 --duration-quant=32 \
--allow-tuplet=4*2/3 --allow-tuplet=2*4/3 foo.midi
''')
- p.add_option_group (_ ('Bugs').encode (sys.stdout.encoding),
+ p.add_option_group (ly.display_encode (_ ('Bugs')),
description=(_ ('Report bugs via')
+ ''' http://post.gmane.org/post.php'''
'''?group=gmane.comp.gnu.lilypond.bugs\n'''))
import codecs
import zipfile
import StringIO
-from gettext import gettext as _
"""
@relocate-preamble@
"""
import lilylib as ly
+_ = ly._
import musicxml
import musicexp
def add_end (self, g):
self.end[getattr (g, 'number', "1")] = g
def print_ly (self, printer):
- error_message ("Unprocessed PartGroupInfo %s encountered" % self)
+ error_message (_ ("Unprocessed PartGroupInfo %s encountered") % self)
def ly_expression (self):
- error_message ("Unprocessed PartGroupInfo %s encountered" % self)
+ error_message (_ ("Unprocessed PartGroupInfo %s encountered") % self)
return ''
def staff_attributes_to_string_tunings (mxl_attr):
d.duration_log = {1: 0, 2: 1, 4:2, 8:3, 16:4, 32:5, 64:6, 128:7, 256:8, 512:9}.get (rational_len.denominator (), -1)
d.factor = Rational (rational_len.numerator ())
if d.duration_log < 0:
- error_message ("Encountered rational duration with denominator %s, "
- "unable to convert to lilypond duration" %
+ error_message (_ ("Encountered rational duration with denominator %s, "
+ "unable to convert to lilypond duration") %
rational_len.denominator ())
# TODO: Test the above error message
return None
start_pitch.step = n
start_pitch.alteration = a
except KeyError:
- error_message ('unknown mode %s' % mode)
+ error_message (_ ("unknown mode %s, expecting 'major' or 'minor'") % mode)
fifth = musicexp.Pitch()
fifth.step = 4
self.direction = 0
self.event = None
def print_ly (self, printer):
- sys.stderr.write ("Encountered unprocessed marker %s\n" % self)
+ ly.stderr_write (_ ("Encountered unprocessed marker %s\n") % self)
pass
def ly_expression (self):
return ""
return retval.values ()
spanner_event_dict = {
- 'slur' : musicexp.SlurEvent,
'beam' : musicexp.BeamEvent,
+ 'dashes' : musicexp.TextSpannerEvent,
+ 'bracket' : musicexp.BracketSpannerEvent,
'glissando' : musicexp.GlissandoEvent,
+ 'octave-shift' : musicexp.OctaveShiftEvent,
'pedal' : musicexp.PedalEvent,
+ 'slide' : musicexp.GlissandoEvent,
+ 'slur' : musicexp.SlurEvent,
'wavy-line' : musicexp.TrillSpanEvent,
- 'octave-shift' : musicexp.OctaveShiftEvent,
'wedge' : musicexp.HairpinEvent
}
spanner_type_dict = {
'decreschendo': -1,
'diminuendo': -1,
'continue': 0,
+ 'change': 0,
'up': -1,
'down': -1,
'stop': 1,
if func:
ev = func()
else:
- error_message ('unknown span event %s' % mxl_event)
+ error_message (_ ('unknown span event %s') % mxl_event)
type = mxl_event.get_type ()
if span_direction != None:
ev.span_direction = span_direction
else:
- error_message ('unknown span type %s for %s' % (type, name))
+ error_message (_ ('unknown span type %s for %s') % (type, name))
ev.set_span_type (type)
ev.line_type = getattr (mxl_event, 'line-type', 'solid')
return ev
def musicxml_direction_to_indicator (direction):
- return { "above": 1, "upright": 1, "up":1, "below": -1, "downright": -1, "down": -1, "inverted": -1 }.get (direction, 0)
+ return { "above": 1, "upright": 1, "up": 1, "below": -1, "downright": -1, "down": -1, "inverted": -1 }.get (direction, 0)
def musicxml_fermata_to_lily_event (mxl_event):
ev = musicexp.ArticulationEvent ()
ev.direction = musicxml_direction_to_indicator (getattr (mxl_event, 'direction', None))
return ev
+def musicxml_nonarpeggiate_to_lily_event (mxl_event):
+ ev = musicexp.ArpeggioEvent ()
+ ev.non_arpeggiate = True
+ ev.direction = musicxml_direction_to_indicator (getattr (mxl_event, 'direction', None))
+ return ev
+
def musicxml_tremolo_to_lily_event (mxl_event):
ev = musicexp.TremoloEvent ()
txt = mxl_event.get_text ()
dynamicstext = dynamicsname
dynamicsname = string.replace (dynamicsname, "-", "")
additional_definitions[dynamicsname] = dynamicsname + \
- "=#(make-dynamic-script \"" + dynamicstext + "\")"
+ " = #(make-dynamic-script \"" + dynamicstext + "\")"
needed_additional_definitions.append (dynamicsname)
event = musicexp.DynamicsEvent ()
event.type = dynamicsname
return event
-direction_spanners = [ 'octave-shift', 'pedal', 'wedge' ]
+# convert accordion-registration to lilypond.
+# Since lilypond does not have any built-in commands, we need to create
+# the markup commands manually and define our own variables.
+# Idea was taken from: http://lsr.dsi.unimi.it/LSR/Item?id=194
+def musicxml_accordion_to_markup (mxl_event):
+ commandname = "accReg"
+ command = ""
+
+ high = mxl_event.get_maybe_exist_named_child ('accordion-high')
+ if high:
+ commandname += "H"
+ command += """\\combine
+ \\raise #2.5 \\musicglyph #\"accordion.accDot\"
+ """
+ middle = mxl_event.get_maybe_exist_named_child ('accordion-middle')
+ if middle:
+ # By default, use one dot (when no or invalid content is given). The
+ # MusicXML spec is quiet about this case...
+ txt = 1
+ try:
+ txt = string.atoi (middle.get_text ())
+ except ValueError:
+ pass
+ if txt == 3:
+ commandname += "MMM"
+ command += """\\combine
+ \\raise #1.5 \\musicglyph #\"accordion.accDot\"
+ \\combine
+ \\raise #1.5 \\translate #(cons 1 0) \\musicglyph #\"accordion.accDot\"
+ \\combine
+ \\raise #1.5 \\translate #(cons -1 0) \\musicglyph #\"accordion.accDot\"
+ """
+ elif txt == 2:
+ commandname += "MM"
+ command += """\\combine
+ \\raise #1.5 \\translate #(cons 0.5 0) \\musicglyph #\"accordion.accDot\"
+ \\combine
+ \\raise #1.5 \\translate #(cons -0.5 0) \\musicglyph #\"accordion.accDot\"
+ """
+ elif not txt <= 0:
+ commandname += "M"
+ command += """\\combine
+ \\raise #1.5 \\musicglyph #\"accordion.accDot\"
+ """
+ low = mxl_event.get_maybe_exist_named_child ('accordion-low')
+ if low:
+ commandname += "L"
+ command += """\\combine
+ \\raise #0.5 \musicglyph #\"accordion.accDot\"
+ """
+
+ command += "\musicglyph #\"accordion.accDiscant\""
+ command = "\\markup { \\normalsize %s }" % command
+ # Define the newly built command \accReg[H][MMM][L]
+ additional_definitions[commandname] = "%s = %s" % (commandname, command)
+ needed_additional_definitions.append (commandname)
+ return "\\%s" % commandname
+
+def musicxml_accordion_to_ly (mxl_event):
+ txt = musicxml_accordion_to_markup (mxl_event)
+ if txt:
+ ev = musicexp.MarkEvent (txt)
+ return ev
+ return
+
+
+def musicxml_rehearsal_to_ly_mark (mxl_event):
+ text = mxl_event.get_text ()
+ if not text:
+ return
+ # default is boxed rehearsal marks!
+ encl = "box"
+ if hasattr (mxl_event, 'enclosure'):
+ encl = {"none": None, "square": "box", "circle": "circle" }.get (mxl_event.enclosure, None)
+ if encl:
+ text = "\\%s { %s }" % (encl, text)
+ ev = musicexp.MarkEvent ("\\markup { %s }" % text)
+ return ev
+
+# translate directions into Events, possible values:
+# -) string (MarkEvent with that command)
+# -) function (function(mxl_event) needs to return a full Event-derived object
+# -) (class, name) (like string, only that a different class than MarkEvent is used)
+directions_dict = {
+ 'accordion-registration' : musicxml_accordion_to_ly,
+ 'coda' : (musicexp.MusicGlyphMarkEvent, "coda"),
+# 'damp' : ???
+# 'damp-all' : ???
+# 'eyeglasses': ??????
+# 'harp-pedals' :
+# 'image' :
+# 'metronome' :
+ 'rehearsal' : musicxml_rehearsal_to_ly_mark,
+# 'scordatura' :
+ 'segno' : (musicexp.MusicGlyphMarkEvent, "segno"),
+ 'words' : musicxml_words_to_lily_event,
+}
+directions_spanners = [ 'octave-shift', 'pedal', 'wedge', 'dashes', 'bracket' ]
def musicxml_direction_to_lily (n):
# TODO: Handle the <staff> element!
res = []
+ # placement applies to all children!
+ dir = None
+ if hasattr (n, 'placement') and options.convert_directions:
+ dir = musicxml_direction_to_indicator (n.placement)
dirtype_children = []
+ # TODO: The direction-type is used for grouping (e.g. dynamics with text),
+ # so we can't simply flatten them out!
for dt in n.get_typed_children (musicxml.DirType):
dirtype_children += dt.get_all_children ()
for entry in dirtype_children:
+ # backets, dashes, octave shifts. pedal marks, hairpins etc. are spanners:
+ if entry.get_name() in directions_spanners:
+ event = musicxml_spanner_to_lily_event (entry)
+ if event:
+ res.append (event)
+ continue
+
+ # now treat all the "simple" ones, that can be translated using the dict
+ ev = None
+ tmp_tp = directions_dict.get (entry.get_name (), None)
+ if isinstance (tmp_tp, str): # string means MarkEvent
+ ev = musicexp.MarkEvent (tmp_tp)
+ elif isinstance (tmp_tp, tuple): # tuple means (EventClass, "text")
+ ev = tmp_tp[0] (tmp_tp[1])
+ elif tmp_tp:
+ ev = tmp_tp (entry)
+ if ev:
+ # TODO: set the correct direction! Unfortunately, \mark in ly does
+ # not seem to support directions!
+ res.append (ev)
+ continue
if entry.get_name () == "dynamics":
for dynentry in entry.get_all_children ():
if ev:
res.append (ev)
- if entry.get_name () == "words":
- ev = musicxml_words_to_lily_event (entry)
- if ev:
- res.append (ev)
-
- # octave shifts. pedal marks, hairpins etc. are spanners:
- if entry.get_name() in direction_spanners:
- event = musicxml_spanner_to_lily_event (entry)
- if event:
- res.append (event)
-
-
return res
def musicxml_frame_to_lily_event (frame):
if drum_type:
event.drum_type = drum_type
else:
- n.message ("drum %s type unknown, please add to instrument_drumtype_dict" % n.instrument_name)
+ n.message (_ ("drum %s type unknown, please add to instrument_drumtype_dict") % n.instrument_name)
event.drum_type = 'acousticsnare'
else:
- n.message ("cannot find suitable event")
+ n.message (_ ("cannot find suitable event"))
if event:
event.duration = musicxml_duration_to_lily (n)
diff = moment - current_end
if diff < Rational (0):
- error_message ('Negative skip %s' % diff)
+ error_message (_ ('Negative skip %s') % diff)
diff = Rational (0)
if diff > Rational (0) and not (self.ignore_skips and moment == 0):
voice_builder.jumpto (n._when)
except NegativeSkip, neg:
voice_builder.correct_negative_skip (n._when)
- n.message ("Negative skip? from %s to %s, diff %s" % (neg.here, neg.dest, neg.dest - neg.here))
+ n.message (_ ("Negative skip found: from %s to %s, difference is %s") % (neg.here, neg.dest, neg.dest - neg.here))
if isinstance (n, musicxml.Attributes):
if n.is_first () and n._measure_position == Rational (0):
continue
if not n.__class__.__name__ == 'Note':
- error_message ('not a Note or Attributes? %s' % n)
+ error_message (_ ('unexpected %s; expected %s or %s or %s') % (n, 'Note', 'Attributes', 'Barline'))
continue
rest = n.get_maybe_exist_typed_child (musicxml.Rest)
if s.get_type () in ('start','stop')]
if slurs:
if len (slurs) > 1:
- error_message ('more than 1 slur?')
+ error_message (_ ('cannot have two simultaneous slurs'))
# record the slur status for the next note in the loop
if not grace:
if slurs[0].get_type () == 'start':
if ev:
ev_chord.append (ev)
+ arpeggiate = notations.get_named_children ('non-arpeggiate')
+ for a in arpeggiate:
+ ev = musicxml_nonarpeggiate_to_lily_event (a)
+ if ev:
+ ev_chord.append (ev)
+
glissandos = notations.get_named_children ('glissando')
+ glissandos += notations.get_named_children ('slide')
for a in glissandos:
ev = musicxml_spanner_to_lily_event (a)
if ev:
if len (modes_found) > 1:
- error_message ('Too many modes found %s' % modes_found.keys ())
+ error_message (_ ('cannot simultaneously have more than one mode: %s') % modes_found.keys ())
if options.relative:
v = musicexp.RelativeMusic ()
part_ly_voices = {}
for n, v in name_voice.items ():
- progress ("Converting to LilyPond expressions...")
+ progress (_ ("Converting to LilyPond expressions..."))
# musicxml_voice_to_lily_voice returns (lily_voice, {nr->lyrics, nr->lyrics})
part_ly_voices[n] = musicxml_voice_to_lily_voice (v)
def option_parser ():
- p = ly.get_option_parser(usage=_ ("musicxml2ly [options] FILE.xml"),
- version=('''%prog (LilyPond) @TOPLEVEL_VERSION@\n\n'''
+ p = ly.get_option_parser (usage = _ ("musicxml2ly [options] FILE.xml"),
+ description = _ ("Convert %s to LilyPond input.") % 'MusicXML' + "\n",
+ add_help_option=False)
+
+ p.add_option("-h", "--help",
+ action="help",
+ help=_ ("show this help and exit"))
+
+ p.version = ('''%prog (LilyPond) @TOPLEVEL_VERSION@\n\n'''
+
_ ("""This program is free software. It is covered by the GNU General Public
License and you are welcome to change it and/or distribute copies of it
under certain conditions. Invoke as `%s --warranty' for more
information.""") % 'lilypond'
+ """
-Copyright (c) 2005--2007 by
+Copyright (c) 2005--2008 by
Han-Wen Nienhuys <hanwen@xs4all.nl>,
Jan Nieuwenhuizen <janneke@gnu.org> and
Reinhold Kainhofer <reinhold@kainhofer.com>
-"""),
- description=_ ("Convert %s to LilyPond input.") % 'MusicXML' + "\n")
+""")
+ p.add_option("--version",
+ action="version",
+ help=_ ("show version number and exit"))
+
p.add_option ('-v', '--verbose',
- action="store_true",
- dest='verbose',
- help=_ ("be verbose"))
+ action = "store_true",
+ dest = 'verbose',
+ help = _ ("be verbose"))
p.add_option ('', '--lxml',
- action="store_true",
- default=False,
- dest="use_lxml",
- help=_ ("Use lxml.etree; uses less memory and cpu time."))
+ action = "store_true",
+ default = False,
+ dest = "use_lxml",
+ help = _ ("use lxml.etree; uses less memory and cpu time"))
p.add_option ('-z', '--compressed',
action = "store_true",
dest = 'compressed',
default = False,
- help = _ ("Input file is a zip-compressed MusicXML file."))
+ help = _ ("input file is a zip-compressed MusicXML file"))
p.add_option ('-r', '--relative',
action = "store_true",
+ default = True,
+ dest = "relative",
+ help = _ ("convert pitches in relative mode (default)"))
+
+ p.add_option ('-a', '--absolute',
+ action = "store_false",
dest = "relative",
- help = _ ("Convert pitches in relative mode."))
+ help = _ ("convert pitches in absolute mode"))
p.add_option ('-l', '--language',
+ metavar = _ ("LANG"),
action = "store",
- help = _ ("Use a different language file, e.g. 'deutsch' for deutsch.ly."))
+ help = _ ("use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly"))
- p.add_option ('--no-articulation-directions', '--nd',
+ p.add_option ('--nd', '--no-articulation-directions',
action = "store_false",
default = True,
dest = "convert_directions",
- help = _ ("Do not convert directions (^, _ or -) for articulations."))
+ help = _ ("do not convert directions (^, _ or -) for articulations, dynamics, etc."))
p.add_option ('-o', '--output',
- metavar=_ ("FILE"),
- action="store",
- default=None,
- type='string',
- dest='output_name',
- help=_ ("set output filename to FILE"))
- p.add_option_group ('bugs',
- description=(_ ("Report bugs via")
+ metavar = _ ("FILE"),
+ action = "store",
+ default = None,
+ type = 'string',
+ dest = 'output_name',
+ help = _ ("set output filename to FILE"))
+ p.add_option_group (ly.display_encode (_ ('Bugs')),
+ description = (_ ("Report bugs via")
+ ''' http://post.gmane.org/post.php'''
'''?group=gmane.comp.gnu.lilypond.bugs\n'''))
return p
part_id = part_definition.id
nv_dict = voices.get (part_id)
if not nv_dict:
- error_message ('unknown part in part-list: %s' % part_id)
+ error_message (_ ('unknown part in part-list: %s') % part_id)
continue
staves = reduce (lambda x,y: x+ y,
def read_musicxml (filename, compressed, use_lxml):
raw_string = None
if compressed:
- progress ("Input file %s is compressed, extracting raw MusicXML data" % filename)
+ progress (_ ("Input file %s is compressed, extracting raw MusicXML data") % filename)
z = zipfile.ZipFile (filename, "r")
container_xml = z.read ("META-INF/container.xml")
if not container_xml:
def convert (filename, options):
- progress ("Reading MusicXML from %s ..." % filename)
+ progress (_ ("Reading MusicXML from %s ...") % filename)
tree = read_musicxml (filename, options.compressed, options.use_lxml)
parts = tree.get_typed_children (musicxml.Part)
driver_ly_name = options.output_name + '.ly'
printer = musicexp.Output_printer()
- progress ("Output to `%s'" % defs_ly_name)
+ progress (_ ("Output to `%s'") % defs_ly_name)
printer.set_file (codecs.open (defs_ly_name, 'wb', encoding='utf-8'))
print_ly_preamble (printer, filename)
printer.close ()
- progress ("Output to `%s'" % driver_ly_name)
+ progress (_ ("Output to `%s'") % driver_ly_name)
printer = musicexp.Output_printer()
printer.set_file (codecs.open (driver_ly_name, 'wb', encoding='utf-8'))
print_ly_preamble (printer, filename)
if filename and os.path.exists (filename):
voices = convert (filename, options)
else:
- progress ("Unable to find input file %s" % args[0])
+ progress (_ ("Unable to find input file %s") % args[0])
if __name__ == '__main__':
main()
TMP=`mktemp -d $(outdir)/pfbtemp.XXXXXXXXX` \
&& ( cd $$TMP \
&& ln -s ../mf2pt1.mem . \
- && MFINPUTS=$(src-dir):..:: $(PERL) $(top-src-dir)/buildscripts/mf2pt1.pl $(MF2PT1_OPTIONS) $< ) \
+ && MFINPUTS=$(top-src-dir)/mf:..:: $(PERL) $(top-src-dir)/buildscripts/mf2pt1.pl $(MF2PT1_OPTIONS) $< ) \
&& mv $$TMP/*pfb $(outdir); \
rm -rf $$TMP
$(outdir)/%.info: $(outdir)/%.texi
# makeinfo MUST have PNGs in cwd for info images to work
- cd $(outdir) && $(MAKEINFO) -I$(srcdir) --output=$(@F) $(<F)
+ $(MAKEINFO) -I$(outdir) --output=$@ $<
$(outdir)/%-big-page.html: $(outdir)/%.texi
$(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $<
$(outdir)/%.ps.gz.omf: %.texi
$(call GENERATE_OMF,ps.gz)
-# Generic rule not possible?
-$(outdir)/%/%.html: $(outdir)/%.texi
- $(MAKEINFO) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
+$(outdir)/%/index.html: $(outdir)/%.texi
+ mkdir -p $(dir $@)
+ $(MAKEINFO) -I $(outdir) --output=$(dir $@) --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
$(outdir)/%.pdf: $(outdir)/%.texi
cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) --batch $(TEXINFO_PAPERSIZE_OPTION) $(<F)
# info stuff
INFO_INSTALL_FILES = $(wildcard $(addsuffix *, $(INFO_FILES)))
INFO_INSTALL_COMMAND =$(if $(INFO_INSTALL_FILES),\
- $(INSTALLPY) -d $(DESTDIR)$(package_infodir) ; \
- $(MAKE) INSTALLATION_OUT_DIR=$(package_infodir) \
+ $(INSTALLPY) -d $(DESTDIR)$(infodir) ; \
+ $(MAKE) INSTALLATION_OUT_DIR=$(infodir) \
depth=$(depth) INSTALLATION_OUT_FILES="$(INFO_INSTALL_FILES)" \
-f $(stepdir)/install-out.sub.make,true)