---- ../lilypond-1.4.8.jcn2/CHANGES Mon Nov 12 15:35:25 2001
-++ b/CHANGES Wed Nov 14 09:11:12 2001
-@@ -1,5 +1,7 @@
--1.4.8.jcn2
-1.4.8.jcn3
- ==========
+1.4.8.moh2
+==========
-* Dropped-in fixed c++ midi2ly from 1.5.
-
- * Backported lilypond-login.sh fixes.
- --- ../lilypond-1.4.8.jcn1/CHANGES Mon Oct 1 13:45:09 2001
-++ b/CHANGES Mon Nov 12 15:35:25 2001
-@@ -1,7 +1,11 @@
--1.4.8.jcn1
-1.4.8.jcn2
- ==========
-
-* Backported lilypond-login.sh fixes.
+* More flexible lyric alignment:
+ - new properties "alignment", "ignore-length-mismatch", "begin-alignment" an\d "end-alignment" to control non-centered lyric alignment
- * Backported more guile > 1.4 compatibility stuff.
-* Backported ly2dvi resource fix for windows.
-
- 1.4.8
- =====--- ../lilypond-1.4.8/CHANGES Wed Oct 17 09:25:04 2001
-++ b/CHANGES Wed Oct 17 10:55:11 2001
-@@ -1,3 +1,12 @@
-1.4.8.moh1
+1.4.8.hwn2
==========
-* new property "end-alignment" to control non-centered lyric alignment
+* Bugfix: neutral direction of Beam
+* Makefile rules for pktrace.
-1.4.8
-=====
+* logout message for redhat spec
+
+* links from refman to internal doco.
+
+* search link on the webpage.
+
+* Fast pixmap crop for lilypond-book.
+
+* Add Percent_repeat_engraver description.
+
+* Guile 1.5.4 compatibility now working.
- 1.4.7.jcn2
- ==========
- 1.4.8.jcn1
+* ly2dvi.py: resource import.
+
+* Mats' fixes for Miktex and PS output.
+
+* Bugfix for scriptHorizontal.
+
+* Change default duration behavior: copy duration fraction fields as
+well. Incompatible change: \tempo doesn't set default duration
+
+* Updates from 1.5 for ly2dvi, etf2ly, abc2ly, emacs, rest/skip documentation
+
+* Bugfix: be strict about slur dimensions.
+
+* Bugfix: insert extra margin around pixmaps in lilpyond-book.
+
+* lilypond-book: magnification option for EPS
+
+1.4.8.jcn3
==========
+* Dropped-in fixed c++ midi2ly from 1.5.
+
* Backported more guile > 1.4 compatibility stuff.
+* Danish and Swedish .po files
+
1.4.8
=====
* Backported compatibility fixes for GUILE 1.5
-* default-neutral-direction -> neutral-direction
+* Change default-neutral-direction to neutral-direction everywhere.
* Danish .po file.
Please send comments on these web pages to
<a href="mailto:@MAILADDRESS@"><em>@MAILADDRESS@</em></a>
-
<p>
Copyright (c) 1997--2001 Han-Wen Nienhuys and Jan Nieuwenhuizen.
<b>Download </b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Linux</a><br>
- <a href="@TOP@Documentation/windows/out-www/installing.html">Windows</a><br>
+ <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">GNU/Linux binaries</a><br>
+ <a href="@TOP@Documentation/windows/out-www/installing.html">Windows binaries</a><br>
<a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source code</a><br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff">
</td></tr>
<tr><td><font size="-1">
<a href="@TOP@Documentation/topdocs/out-www/README.html#mailing-lists">Mailing lists</a><br>
+ <a href="http://www.lilypond.org/search/">Search</a><br>
<a href="http://www.lilypond.org/wiki/">WikiWiki</a><br>
<a href="http://www.lilypond.org/wiki?LilyPondFaqs">FAQs</a><br>
<br>
@end example
-
+@c Why isn't this in BUGS (where it belongs?)
@section Problems
For help and questions use @email{lilypond-user@@gnu.org}. Please
@unnumberedsubsec Debian GNU/Linux unstable gcc-3.0
Flex (2.5.4a-11) in unstable does not produce g++-3.0 compliant C++
-code. To compile LilyPond with gcc-3.0 you may do:
+code. To compile LilyPond with gcc-3.0, please first upgrade to
+flex_2.5.4a-13 or newer. Otherwise, you may do:
@example
+ rm -f config.cache
CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0
make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc
patch -p1 < lexer-gcc-3.0.patch
make conf=gcc-3.0 -C lily
@end example
+
+@unnumberedsubsec Linux-2.4.0, Guile-1.4 --with-threads
+
+There's a bug in certain kernels around version 2.4.0, that is
+triggered when using Guile 1.4 compiled with pthreads. You'll see
+random segmentation fault craches of LilyPond. Upgrade to a newer
+version of Linux. If you can't do that, you may try to recompiling
+Guile without threads (YMMV):
+
+@example
+ guile-1.4$ ./configure --without-threads; make all install
+@end example
+
+
@unnumberedsubsec NetBSD
@itemize @bullet
@end macro
+@ifhtml
+@macro internalsref{NAME}
+@uref{../lilypond-internals/\NAME\.html,\NAME\}
+@cindex \NAME\
+@end macro
+@macro seeinternals{NAME}
+See @internalsref{\NAME\}
+@end macro
+@end ifhtml
+
+
+@ifnothtml
+@macro seeinternals{NAME}
+@end macro
+@macro internalsref{NAME}
+\NAME\
+@cindex \NAME\
+
+@end macro
+@end ifnothtml
@c .{Reference Manual}
cis' d' e' cis' c'? d' e' c'!
@end lilypond
+The grob for a note head is called @internalsref{NoteHead}.
+
@c . {Pitches}
@node Pitches
@subsection Rests
@cindex Rests
-Rests are entered like notes, with note name `@code{r}'. The grob is
-@code{Rest}. Whole bar rests centered in the bar are specified using
-@code{R}, see @ref{Multi measure rests}.
+A rest is entered like a note, with note name `@code{r}':
+@lilypond[singleline,verbatim]
+r1 r2 r4 r8
+@end lilypond
+
+The grob is @internalsref{Rest}. Whole bar rests centered in the bar are
+specified using @code{R}, see @ref{Multi measure rests}.
@c . {Skips}
@node Skips
@subsection Skips
@cindex Skip
+An invisible rest, or skip, can be entered like a note with note name
+`@code{s}':
-@example
- \skip @var{duration}
- s@var{duration}
-@end example
-@cindex @code{\skip}
+@lilypond[singleline,verbatim]
+a2 s4 a4 s1 a4
+@end lilypond
-Skips the amount of time specified by @var{duration}. If no other music
-is played, a gap will be left for the skipped time without any notes
-printed. The shorthand is only available in Note and Chord mode.
+Actually, this is a shorthand for the @code{\skip} command, and it is
+only available in Note mode and Chord mode.
+
+@c FIXME: in lyrics mode, we have " " and _
+
+In Lyrics mode, you can use `@code{" "}' and `@code{_}':
+@lilypond[singleline,verbatim]
+<
+ \context Lyrics \lyrics { lah2 di4 " " dah2 _4 di }
+ \notes\relative c'' { a2 a4 a a2 a4 a }
+>
+@end lilypond
+
+The unabbreviated `@code{\skip} @var{duration}' also works outside of
+note mode:
+
+@lilypond[singleline,verbatim]
+\score {
+ \context Staff <
+ { \time 4/8 \skip 2 \time 4/4 }
+ \notes\relative c'' { a2 a1 }
+ >
+}
+@end lilypond
@c . {Durations}
@node Durations
@lilypond[]
\score {
\notes \relative c'' {
- a\breve \autoBeamOff
+ a\breve \autoBeamOff
a1 a2 a4 a8 a16 a32 a64 a64
r\longa r\breve
r1 r2 r4 r8 r16 r32 r64 r64
\time 3/4 c'2. c'2 ~ c'4
@end lilypond
-The name of the tie grob is @code{Voice.Tie}.
+The name of the tie grob is @internalsref{Tie}. It is usually created
+in the @internalsref{Voice} context.
@refbugs
@cindex @code{tupletNumberFormatFunction}
@cindex tuplet formatting
-Tuplet brackets are printed as @code{TupletBracket} grobs
+Tuplet brackets are printed as @internalsref{TupletBracket} grobs
@c . {Defining pitch names}
@node Defining pitch names
@lilypond[singleline,verbatim]
\include "paper23.ly"
\score {
- \notes { c'2 e'4 f' | g'1 }
- \paper { \translator { \EasyNotation } }
+ \notes { c'2 e'4 f' | g'1 }
+ \paper { \translator { \EasyNotation } }
}
@end lilypond
-Note that @code{EasyNotation} overrides a @code{Score} context. You
+Note that @code{EasyNotation} overrides a @internalsref{Score} context. You
probably will want to print it with magnification to make it more
readable, see @ref{Output scaling}.
Non-standard key signatures can be specified by setting this property
directly, see the generated documentation for @rgrob{KeySignature}.
-The printed signature is a @code{KeySignature} grob.
+The printed signature is a @internalsref{KeySignature} grob.
@cindex @code{keySignature}
\property Staff.clefOctavation = @var{extra transposition of clefname}
@end example
-Any change in these properties creates a clef (a @code{Clef} grob).
+Any change in these properties creates a clef (a @internalsref{Clef} grob).
Supported clef-names include
generated.
Changing the value of @code{timeSignatureFraction} also causes a
-fraction to be printed. This grob is @code{TimeSignature}.
+fraction to be printed. This grob is @internalsref{TimeSignature}.
The actual symbol that's printed can be customized with the style
property.
@code{\bar }. These settings take precedence over the automatic
@code{whichBar} settings.
-@code{BarLine} grobs are created by the @code{Bar_engraver}.
+@internalsref{BarLine} grobs are created by the @internalsref{Bar_engraver}.
@c . {Polyphony}
@node Polyphony
which voice should moved horizontally in case of a collision. This can
be done with the identifiers @code{\shiftOff}, @code{\shiftOn},
@code{\shiftOnn}, etc. (which sets the grob property @code{horizontal-shift}
-in @code{NoteColumn}).
+in @internalsref{NoteColumn}).
@lilypond[fragment, verbatim]
\context Staff \notes\relative c''<
@end lilypond
Note head collisions (horizontal shifting of note heads) are handled by
-the @code{NoteCollision} grob. @code{RestCollision} handles vertical
-shifting of rests.
+the @internalsref{NoteCollision} grob. @internalsref{RestCollision}
+handles vertical shifting of rests.
-@cindex @code{NoteCollision}
-@cindex @code{RestCollision}
@refbugs
@end lilypond
@cindex @code{stemRightBeamCount}
-The beam symbol (grob @code{Voice.Beam}, both for automatic and manual
+The beam symbol (grob @internalsref{Beam}, both for automatic and manual
beams) can be tweaked through grob-properties @code{height} and
@code{staff-position}. These specify vertical location and vertical
span. Both are measured in half staff-spaces, @code{staff-position=0}
Slurs avoid crossing stems, and are generally attached to note heads.
However, in some situations with beams, slurs may be attached to stem
ends. If you want to override this layout you can do this through the
-@code{Voice.Slur}'s grob-property @code{attachment}. It's value is a
-pair of symbols, specifying the attachment type of the left and right end points.
+@internalsref{Slur}'s grob-property @code{attachment}. It's value is a
+pair of symbols, specifying the attachment type of the left and right
+end points.
@lilypond[fragment,relative,verbatim]
\property Voice.Slur \set #'direction = #1
Similarly, the curvature of a slur is adjusted to stay clear of note
heads and stems. When that would increase the curvature too much, the
slur is reverted to its default shape. The threshold for this decision
-is in @code{Voice.Slur}'s grob-property @code{beautiful}. It is loosely
-related to the enclosed area between the slur and the notes. Usually,
-the default setting works well, but in some cases you may prefer a
-curved slur when LilyPond decides for a vertically moved one. You can
-indicate this preference by increasing the @code{beautiful} value:
+is in @internalsref{Slur}'s grob-property @code{beautiful}. It is
+loosely related to the enclosed area between the slur and the notes.
+Usually, the default setting works well, but in some cases you may
+prefer a curved slur when LilyPond decides for a vertically moved one.
+You can indicate this preference by increasing the @code{beautiful}
+value:
@lilypond[verbatim,singleline,relative]
\property Voice.Beam \override #'direction = #-1
@end lilypond
Typographically, the phrasing slur behaves almost exactly like a normal
-slur. The grob associated with it is @code{Voice.PhrasingSlur}.
+slur. The grob associated with it is @internalsref{PhrasingSlur}.
@node Breath marks
@subsection Breath marks
Breath marks are entered using @code{\breathe}. The result is a
-@code{Voice.BreathingSign} grob.
+@internalsref{BreathingSign} grob.
@lilypond[fragment,relative]
c'4 \breathe d4
@end lilypond
+Note that the skip does not produce any output, not even transparent output.
\spanrequest \start "text"
\spanrequest \stop "text"
@end example
-LilyPond will respond by creating a @code{Voice.TextSpanner} grob. The
-string to be printed, as well as the style is set through grob
-properties.
+LilyPond will respond by creating a @internalsref{TextSpanner} grob (typically
+in @internalsref{Voice} context). The string to be printed, as well as the
+style is set through grob properties.
An application---or rather, a hack---is to fake octavation indications.
@lilypond[fragment,relative,verbatim]
Usually the @code{\script} keyword is not used directly. Various
helpful identifier definitions appear in @file{script.ly}.
-Grobs for these objects are @code{Script} and @code{Fingering}.
+Grobs for these objects are @internalsref{Script} and @internalsref{Fingering}.
@refbugs
\relative c' { c4^"longtext" \fatText c4_"longlongtext" c4 }
@end lilypond
-Text scripts are created in form of @code{Voice.TextScript} grobs.
+Text scripts are created in form of @internalsref{TextScript} grobs, in
+@internalsref{Voice} context.
@ref{Text markup} describes how to change the font or access
special symbols in text scripts.
@cindex @code{\glissando}
-A glissando line (grob @code{Voice.Glissando}) can be requested by attaching a
-@code{\glissando} to a note:
+A glissando line (grob @internalsref{Glissando}) can be requested by
+attaching a @code{\glissando} to a notte:
@lilypond[fragment,relative,verbatim]
c'-\glissando c'
@cindex diminuendo
-Dynamics are grobs of @code{Voice.DynamicText} and
-@code{Voice.Hairpin}. They are put together on
-@code{Voice.DynamicLineSpanner} to align them vertically.
+Dynamics are grobs of @internalsref{DynamicText} and
+@internalsref{Hairpin}. They are put together on
+@internalsref{DynamicLineSpanner} to align them vertically.
@c . {Repeats}
@end lilypond
-Repeats brackets are @code{Staff.VoltaBracket} grobs.
+Repeats brackets are @internalsref{VoltaBracket} grobs.
@node Tremolo repeats
@subsection Tremolo repeats
}
@end lilypond
-Tremolo beams are @code{Voice.Beam} grobs. Single stem tremolos are
-@code{Voice.StemTremolo}.
+Tremolo beams are @internalsref{Beam} grobs. Single stem tremolos are
+@internalsref{StemTremolo}.
@refbugs
}
@end lilypond
-The signs are represented by these grobs: @code{Voice.RepeatSlash} and
-@code{Voice.PercentRepeat} and @code{Voice.DoublePercentRepeat}.
+The signs are represented by these grobs: @internalsref{RepeatSlash} and
+@internalsref{PercentRepeat} and @internalsref{DoublePercentRepeat}.
@refbugs
Piano music is an odd type of notation. Piano staffs are two normal
staffs coupled with a brace. The staffs are largely independent, but
sometimes voices can cross between the two staffs. The
-@code{PianoStaff} is especially built to handle this cross-staffing
-behavior. In this section we discuss the @code{PianoStaff} and some
+@internalsref{PianoStaff} is especially built to handle this cross-staffing
+behavior. In this section we discuss the @internalsref{PianoStaff} and some
other pianistic peculiarities.
@menu
@end example
This will switch the interpretation context of @var{musicexp} between a
@var{contexttype} named @code{up} and @code{down}. Typically, you use
-@code{Staff} for @var{contexttype}. The autochanger switches on basis
+@internalsref{Staff} for @var{contexttype}. The autochanger switches on basis
of pitch (central C is the turning point), and it looks ahead skipping
over rests to switch rests in advance.
@code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp}.
These identifiers are shorthands for spanner commands of the types
-@code{Sustain}, @code{UnaCorda} and @code{Sostenuto}:
+@internalsref{Sustain}, @internalsref{UnaCorda} and @internalsref{Sostenuto}:
@lilypond[fragment,verbatim]
c''4 \spanrequest \start "Sustain" c''4
>
@end lilypond
-This command creates @code{Voice.Arpeggio} grobs. Cross staff arpeggios
-are @code{PianoStaff.Arpeggio}.
+This command creates @internalsref{Arpeggio} grobs. Cross staff arpeggios
+are @code{PianoStaff.Arpeggio}. @internalsref{Arpeggio}
@refbugs
>
@end lilypond
-The associated grob is @code{Voice.VoiceFollower}.
+The associated grob is @internalsref{VoiceFollower}.
@node Lyrics
@subsection Printing lyrics
@cindex lyrics
-Lyrics are printed by interpreting them in the @code{Lyrics} context.
+Lyrics are printed by interpreting them in the @internalsref{Lyrics} context.
@c Maybe more pedagogical to avoid \addlyrics in this first example? /MB
@cindex printing chord names
@cindex chord names
@cindex chords
-@cindex @code{ChordNames}
-
-For displaying printed chord names, use the @code{ChordNames} context.
+For displaying printed chord names, use the @internalsref{ChordNames} context.
The chords may be entered either using the notation described above, or
directly using simultaneous music.
@cindex Rehearsal marks
@cindex mark
@cindex @code{\mark}
-@cindex @code{Mark_engraver}
+
@example
\mark @var{unsigned}
}
@end lilypond
-The grob is @code{Score.RehearsalMark}. See
+The grob is @internalsref{RehearsalMark} in @internalsref{Score} context. See
@code{input/test/boxed-molecule.ly} if you need boxes around the marks.
@node Bar numbers
@subsection Bar numbers
-Bar numbers (grob: @code{BarNumber}) are printed at the start of the
+Bar numbers (grob: @internalsref{BarNumber}) are printed at the start of the
line. See @code{input/test/boxed-molecule.ly} for boxed bar numbers.
@refbugs
@cindex whole rests for a full measure
+The grob for this object is @internalsref{MultiMeasureRest}.
+
@refbugs
Currently, there is no way to automatically condense multiple rests into
behavior of part combining, refer to the automatically generated
documentation of @reng{Thread_devnull_engraver} and
@reng{Voice_devnull_engraver}. Look at the documentation of the
-responsible engravers, @code{Thread_devnull_engraver},
-@code{Voice_devnull_engraver} and @code{A2_engraver}.
+responsible engravers, @internalsref{Thread_devnull_engraver},
+@internalsref{Voice_devnull_engraver} and @internalsref{A2_engraver}.
@refbugs
>
@end lilypond
-@cindex @code{Thread_devnull_engraver}
-@cindex @code{Voice_engraver}
-@cindex @code{A2_engraver}
@node Hara kiri staffs
@subsection Hara kiri staffs
not disappear when it contains normal rests, you must use multi measure
rests.
-The hara kiri staff is specialized version of the Staff context. It is
-available as the context identifier @code{\HaraKiriStaffContext}.
-Observe how the second staff in this example disappears in the second
-line.
+The hara kiri staff is specialized version of the @internalsref{Staff}
+context. It is available as the context identifier
+@code{\HaraKiriStaffContext}. Observe how the second staff in this
+example disappears in the second line.
@lilypond[verbatim]
\score {
such as via the @emph{editio vaticana} dating back to the beginning of
the 20th century.
-For typesetting custodes, just put a @code{Custos_engraver} into the
-@code{StaffContext} when declaring the @code{\paper} block. In this
+For typesetting custodes, just put a @internalsref{Custos_engraver} into the
+@internalsref{Staff} context when declaring the @code{\paper} block. In this
block, you can also globally control the appearance of the custos symbol
by setting the custos @code{style} property. Currently supported styles
are @code{vaticana}, @code{medicaea}, @code{hufnagel} and
The definition of a grob is actually a list of default grob
properties. For example, the definition of the Stem grob (available in
@file{scm/grob-description.scm}), defines the following values for
-@code{Stem}
+@internalsref{Stem}
@example
(thickness . 0.8)
@end example
Here @code{predicate} is a Scheme function taking a grob argument, and
returning a boolean. This statement is processed by the
-@code{Output_property_engraver}. It instructs the engraver to feed all
+@internalsref{Output_property_engraver}. It instructs the engraver to feed all
grobs that it sees to @var{predicate}. Whenever the predicate returns
true, the grob property @var{symbol} will be set to @var{value}.
through the grob property @code{font-style}. For example, the style
@code{finger} selects family @code{number} and relative size @code{-3}.
Styles available include @code{volta}, @code{finger}, @code{tuplet},
-@code{timesig}, @code{mmrest}, @code{script}, @code{large}, @code{Large}
-and @code{dynamic}.
+@code{timesig}, @code{mmrest}, @code{script}, @code{large},
+@code{Large} and @code{dynamic}.
The style sheets and tables for selecting fonts are located in
@file{scm/font.scm}. Refer to this file for more information.
the measure, etc.?
@end itemize
-Contexts are grouped hierarchically: A @code{Voice} context is
-contained in a @code{Staff} context (because a staff can contain
-multiple voices at any point), a @code{Staff} context is contained in
-@code{Score}, @code{StaffGroup}, or @code{ChoirStaff} context.
+Contexts are grouped hierarchically: A @internalsref{Voice} context is
+contained in a @internalsref{Staff} context (because a staff can contain
+multiple voices at any point), a @internalsref{Staff} context is contained in
+@internalsref{Score}, @internalsref{StaffGroup}, or @internalsref{ChoirStaff} context.
Contexts associated with sheet music output are called @emph{notation
contexts}, those for sound output are called @emph{performance
without @code{\context}. For every note, a separate staff is
instantiated.
+@cindex explicit context
+@cindex starting with chords
+@cindex chords, starting with
+
@lilypond[verbatim, singleline]
\score { \notes <c'4 es'> }
@end lilypond
Properties that are set in one context are inherited by all of the
contained contexts. This means that a property valid for the
-@code{Voice} context can be set in the @code{Score} context (for
-example) and thus take effect in all @code{Voice} contexts.
+@internalsref{Voice} context can be set in the @internalsref{Score} context (for
+example) and thus take effect in all @internalsref{Voice} contexts.
Properties can be unset using the following expression:
@example
The argument of @code{\type} is the name for a special engraver that
handles cooperation between simple engravers such as
-@code{Note_head_engraver} and @code{Staff_symbol_engraver}. Alternatives
+@internalsref{Note_head_engraver} and @internalsref{Staff_symbol_engraver}. Alternatives
for this engraver are the following:
@table @code
-@cindex @code{Engraver_group_engraver}
- @item @code{Engraver_group_engraver}
+ @item @internalsref{Engraver_group_engraver}
The standard cooperation engraver.
-@cindex @code{Score_engraver}
+ @item @internalsref{Score_engraver}
- @item @code{Score_engraver}
- This is cooperation module that should be in the top level context,
+ This is cooperation module that should be in the top level context,
and only the top level context.
-@cindex @code{Grace_engraver_group}
-
- @item @code{Grace_engraver_group}
- This is a special cooperation module (resembling
- @code{Score_engraver}) that is used to create an embedded
- `miniscore'.
+ @item @internalsref{Grace_engraver_group} This is a special
+cooperation module (resembling @internalsref{Score_engraver}) that is
+used to create an embedded `miniscore'.
@end table
Other modifiers are
@item @code{\name} @var{contextname}
- This sets the type name of the context, e.g. @code{Staff},
- @code{Voice}. If the name is not specified, the translator won't do
+ This sets the type name of the context, e.g. @internalsref{Staff},
+ @internalsref{Voice}. If the name is not specified, the translator won't do
anything.
@end itemize
on a Microsoft Windows 95, 98, NT or 2000 machine.
This release is a free extra service of the developers to assist windows
-users. Please remember that we (the developers) rather dislike windows,
-and none of us use it. Don't complain to us that installing LilyPond is
-too difficult; rather, if you know something about your Windows, send us
-code that works better (see @uref{compiling.html,compiling}).
+users. When reporting problems, please keep in mind that we (the developers)
+do not use Windows. In fact, if you know something about Windows, and
+are able to write code, please send us code that works better (see
+@uref{compiling.html,compiling}).
@section Windows binary setup
Debian GNU/Linux
Problems
Debian GNU/Linux unstable gcc-3.0
+ Linux-2.4.0, Guile-1.4 -with-threads
NetBSD
Solaris:
AIX
---------------------------------
Flex (2.5.4a-11) in unstable does not produce g++-3.0 compliant C++
-code. To compile LilyPond with gcc-3.0 you may do:
+code. To compile LilyPond with gcc-3.0, please first upgrade to
+flex_2.5.4a-13 or newer. Otherwise, you may do:
+ rm -f config.cache
CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0
make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc
patch -p1 < lexer-gcc-3.0.patch
make conf=gcc-3.0 -C lily
+Linux-2.4.0, Guile-1.4 -with-threads
+------------------------------------
+
+ There's a bug in certain kernels around version 2.4.0, that is
+triggered when using Guile 1.4 compiled with pthreads. You'll see
+random segmentation fault craches of LilyPond. Upgrade to a newer
+version of Linux. If you can't do that, you may try to recompiling
+Guile without threads (YMMV):
+
+ guile-1.4$ ./configure --without-threads; make all install
+
NetBSD
------
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=4
-PATCH_LEVEL=8
-MY_PATCH_LEVEL=jcn3
+PATCH_LEVEL=9
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
# strange shell, this C
set datadir="@datadir@"
-if ( $?GS_FONTPATH ) then
- setenv GS_FONTPATH "$datadir/afm:/usr/share/lilypond/pfa:$GS_FONTPATH"
- else
- setenv GS_FONTPATH "$datadir/afm:/usr/share/lilypond/pfa"
- endif
- if ( $?GS_LIB ) then
- setenv GS_LIB "$datadir/ps:$GS_LIB"
- else
- setenv GS_LIB "$datadir/ps"
- endif
-
+setenv GS_FONTPATH "$datadir/afm:@datadir@/pfa:$GS_FONTPATH"
+setenv GS_LIB "$datadir/ps:$GS_LIB"
# setenv LILYPONDPREFIX "$datadir"
fi
fi
+for ac_declaration in \
+ ''\
+ '#include <stdlib.h>' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat > conftest.$ac_ext <<EOF
+#line 1900 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:1908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ continue
+fi
+rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#line 1918 "configure"
+#include "confdefs.h"
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:1925: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+
ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1893: checking for FlexLexer.h" >&5
+echo "configure:1944: checking for FlexLexer.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1898 "configure"
+#line 1949 "configure"
#include "confdefs.h"
#include <FlexLexer.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1903: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1954: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking "g++ version"""... $ac_c" 1>&6
-echo "configure:1940: checking "g++ version"" >&5
+echo "configure:1991: checking "g++ version"" >&5
cxx_version=`$CXX --version`
echo "$ac_t"""$cxx_version"" 1>&6
# urg, egcs: how to check for egcs >= 1.1?
echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1958: checking whether explicit instantiation is needed" >&5
+echo "configure:2009: checking whether explicit instantiation is needed" >&5
if eval "test \"`echo '$''{'lily_cv_need_explicit_instantiation'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1963 "configure"
+#line 2014 "configure"
#include "confdefs.h"
template <class T> struct foo { static int baz; };
return foo<int>::baz;
; return 0; }
EOF
-if { (eval echo configure:1973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lily_cv_need_explicit_instantiation=no
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2000: checking for $ac_word" >&5
+echo "configure:2051: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2043: checking for $ac_word" >&5
+echo "configure:2094: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2078: checking for $ac_word" >&5
+echo "configure:2129: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2146: checking for $ac_word" >&5
+echo "configure:2197: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2179: checking for $ac_word" >&5
+echo "configure:2230: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:2234: checking language" >&5
+echo "configure:2285: checking language" >&5
case "$language" in
En* | en* | Am* | am* | US* | us*)
lang=English;;
echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:2270: checking for gettext in -lintl" >&5
+echo "configure:2321: checking for gettext in -lintl" >&5
ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2278 "configure"
+#line 2329 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
gettext()
; return 0; }
EOF
-if { (eval echo configure:2292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for ac_func in gettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2322: checking for $ac_func" >&5
+echo "configure:2373: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2327 "configure"
+#line 2378 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:2353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2385: checking for $ac_word" >&5
+echo "configure:2436: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh "
echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6
-echo "configure:2416: checking whether msgfmt accepts -o" >&5
+echo "configure:2467: checking whether msgfmt accepts -o" >&5
msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`"
if test "$msgfmt_output" = ""; then
echo "$ac_t""yes" 1>&6
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2444: checking for $ac_word" >&5
+echo "configure:2495: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2480: checking for $ac_word" >&5
+echo "configure:2531: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2518: checking for $ac_word" >&5
+echo "configure:2569: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2554: checking for $ac_word" >&5
+echo "configure:2605: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2593: checking for $ac_word" >&5
+echo "configure:2644: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2629: checking for $ac_word" >&5
+echo "configure:2680: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2667: checking for $ac_word" >&5
+echo "configure:2718: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2703: checking for $ac_word" >&5
+echo "configure:2754: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6
-echo "configure:2737: checking for working metafont mode" >&5
+echo "configure:2788: checking for working metafont mode" >&5
modelist='ljfour lj4 lj3 lj2 ljet laserjet'
for MFMODE in $modelist; do
$METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1
echo "$ac_t""$MFMODE" 1>&6
echo $ac_n "checking for mfplain.mp""... $ac_c" 1>&6
-echo "configure:2748: checking for mfplain.mp" >&5
+echo "configure:2799: checking for mfplain.mp" >&5
#
# For now let people define these in their environments
#
echo "$ac_t""$MFPLAIN_MP" 1>&6
echo $ac_n "checking for inimetapost flags""... $ac_c" 1>&6
-echo "configure:2756: checking for inimetapost flags" >&5
+echo "configure:2807: checking for inimetapost flags" >&5
if test ${INIMETAPOST} = "inimp" ; then
: ${INIMETAPOST_FLAGS=''}
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2789: checking for $ac_word" >&5
+echo "configure:2840: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
test -n "$KPSEWHICH" || KPSEWHICH="no"
echo $ac_n "checking for tfm path""... $ac_c" 1>&6
-echo "configure:2820: checking for tfm path" >&5
+echo "configure:2871: checking for tfm path" >&5
TFM_FONTS="cmr msam"
## First, let's just see if we can find Guile at all.
echo $ac_n "checking "for guile-config"""... $ac_c" 1>&6
-echo "configure:2848: checking "for guile-config"" >&5
+echo "configure:2899: checking "for guile-config"" >&5
for guile_config in guile-config $target-guile-config $build-guile-config; do
echo "$ac_t"""$guile_config"" 1>&6
if ! $guile_config --version > /dev/null 2>&1 ; then
echo "configure: warning: "cannot execute $guile_config"" 1>&2
echo $ac_n "checking "if we are cross compiling"""... $ac_c" 1>&6
-echo "configure:2854: checking "if we are cross compiling"" >&5
+echo "configure:2905: checking "if we are cross compiling"" >&5
guile_config=error
else
break
exit 1
fi
echo $ac_n "checking "Guile version"""... $ac_c" 1>&6
-echo "configure:2865: checking "Guile version"" >&5
+echo "configure:2916: checking "Guile version"" >&5
need_guile_version="1.3.4"
need_guile_version_numeric=100304
guile_version=`$guile_config --version 2>&1 | awk '{print $NF}'`
## The GUILE_FLAGS macro.
echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2886: checking for Guile" >&5
+echo "configure:2937: checking for Guile" >&5
if ! $guile_config link > /dev/null ; then
echo "$ac_t"""cannot execute $guile_config"" 1>&6
{ echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; }
# Extract the first word of "guile", so it can be a program name with args.
set dummy guile; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2901: checking for $ac_word" >&5
+echo "configure:2952: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2962: checking for $ac_hdr" >&5
+echo "configure:3013: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2967 "configure"
+#line 3018 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2972: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
done
echo $ac_n "checking for kpse_find_file in -lkpathsea""... $ac_c" 1>&6
-echo "configure:2999: checking for kpse_find_file in -lkpathsea" >&5
+echo "configure:3050: checking for kpse_find_file in -lkpathsea" >&5
ac_lib_var=`echo kpathsea'_'kpse_find_file | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lkpathsea $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3007 "configure"
+#line 3058 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
kpse_find_file()
; return 0; }
EOF
-if { (eval echo configure:3021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for ac_func in kpse_find_file
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3051: checking for $ac_func" >&5
+echo "configure:3102: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3056 "configure"
+#line 3107 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
fi
echo $ac_n "checking whether to use kpathsea""... $ac_c" 1>&6
-echo "configure:3109: checking whether to use kpathsea" >&5
+echo "configure:3160: checking whether to use kpathsea" >&5
if test "$kpathsea_b" != no; then
echo "$ac_t""yes" 1>&6
KPATHSEA=1
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3130: checking for $ac_word" >&5
+echo "configure:3181: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BIBTEX2HTML'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:3171: checking for 8-bit clean memcmp" >&5
+echo "configure:3222: checking for 8-bit clean memcmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
-#line 3179 "configure"
+#line 3230 "configure"
#include "confdefs.h"
-#ifdef __cplusplus
-extern "C" void exit(int) throw();
-#endif
main()
{
}
EOF
-if { (eval echo configure:3192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:3210: checking for vprintf" >&5
+echo "configure:3258: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3215 "configure"
+#line 3263 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
; return 0; }
EOF
-if { (eval echo configure:3241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:3265: checking for _doprnt" >&5
+echo "configure:3313: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3270 "configure"
+#line 3318 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
; return 0; }
EOF
-if { (eval echo configure:3296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
for ac_func in memmem snprintf vsnprintf gettext isinf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3323: checking for $ac_func" >&5
+echo "configure:3371: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3328 "configure"
+#line 3376 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3394: checking for $ac_word" >&5
+echo "configure:3442: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$MAKEINFO" != "error"; then
echo $ac_n "checking whether makeinfo can split html by @node""... $ac_c" 1>&6
-echo "configure:3426: checking whether makeinfo can split html by @node" >&5
+echo "configure:3474: checking whether makeinfo can split html by @node" >&5
mkdir -p out
makeinfo --html --output=out/split <<EOF
\input texinfo
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3454: checking for $ac_word" >&5
+echo "configure:3502: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
+lilypond (1.4.8-1) unstable; urgency=high
+
+ * New upstream release. (Closes: Bug#111132)
+ * Stopped using $(PWD) in make, as it doesn't seems to work on
+ potato systems with older "make". Reverted to `pwd`.
+ Thanks to Wolfgang Schnitker for notifying me this problem.
+ * Changed the lilypond1.3 dummy package's Architecture from "all"
+ to "arm i386 m68k powerpc sparc". Also, as upstream updated
+ config.sub and config.guess to recognize ia64 and hppa.
+ Thanks to Anthony Towns for the bug report. (Closes: Bug#114266)
+ * Versioned Build-Depends: flex (>= 2.5.4a-14) to ensure gcc-3.0
+ compatibility.
+
+ -- Anthony Fok <foka@debian.org> Sun, 14 Oct 2001 18:28:45 +0800
+
+lilypond (1.4.5-1) unstable; urgency=low
+
+ * New upstream release.
+ * Upstream includes lexer-gcc-3.0.patch which should fix compilation
+ problems with g++-3.0. (Closes: Bug#105001)
+ * Hurray! texinfo-4.0b is finally in Debian! Thanks, Josip! :-)
+ Updated Build-Depends.
+
+ -- Anthony Fok <foka@debian.org> Wed, 25 Jul 2001 03:04:37 +0800
+
+lilypond (1.4.3-1) unstable; urgency=high
+
+ * New upstream release.
+ * Urgency high because Lilypond-1.2.17 is too buggy and yet it has
+ been stuck in testing forever. Lilypond-1.4.x fixes multiple
+ serious bugs. :-)
+ * Ah, silly me, lilypond was conflicting against itself! I forgot
+ to remove this relics during the switch from lilypond1.3 to lilypond.
+ * Fixed a new bug in lily/main.cc which caused lilypond to skip over every
+ other command-line argument.
+ * [configure.in]: Added -mieee to CFLAGS and CXXFLAGS when building on
+ Alpha to prevent FP exception. Thanks to Christopher C. Chimelis
+ for the fix!
+
+ -- Anthony Fok <foka@debian.org> Fri, 15 Jun 2001 00:42:46 -0600
+
lilypond (1.4.2-1) unstable; urgency=low
* New upstream release.
Source: lilypond
-Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex, bison, texinfo (>= 4.0-1), groff, m4, gettext (>= 0.10.36-1)
+Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex (>= 2.5.4a-14), bison, texinfo (>= 4.0b-2), groff, m4, gettext (>= 0.10.36-1)
Build-Depends-Indep: bibtex2html, gs | gs-aladdin, netpbm (>= 2:9.10-1)
Section: tex
Priority: optional
Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 3.5.4
+Standards-Version: 3.5.5
Package: lilypond
Architecture: any
Provides: lilypond1.3
Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1), python-base (>= 1.5.2-4), guile
Recommends: lilypond-doc, tetex-extra (>= 1.0-1)
-Conflicts: lilypond, lilypond1.3 (<= 1.3.132-1), musixtex-fonts
+Conflicts: lilypond1.3 (<= 1.3.132-1), musixtex-fonts
Description: A program for printing sheet music.
LilyPond is a music typesetter. It produces beautiful sheet music
using a high level description file as input. LilyPond is part of
Package: lilypond-doc
Section: doc
Architecture: all
-Suggests: lilypond (>= 1.4.1-1)
-Suggests: postscript-viewer, www-browser
+Suggests: lilypond (>= 1.4.8-1), postscript-viewer, www-browser
Description: LilyPond Documentation in HTML, PS and DVI formats
This package contains the HTML, PostScript and DVI documentation for the
LilyPond music typestting software.
Package: lilypond1.3
-Architecture: all
-Depends: lilypond (>= 1.3.150-1)
+Architecture: arm i386 m68k powerpc sparc
+Depends: lilypond (>= 1.4.8-1)
Description: Dummy package for transition to new stable lilypond.
This dummy package provides a transition from the previous lilypond1.3
package back to a newer lilypond because the stable 1.4 series has arrived.
Source: lilypond
-Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex, bison, texinfo (>= 4.0-1), groff, m4, gettext (>= 0.10.36-1)
+Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex (>= 2.5.4a-14), bison, texinfo (>= 4.0b-2), groff, m4, gettext (>= 0.10.36-1)
Build-Depends-Indep: bibtex2html, gs | gs-aladdin, netpbm (>= 2:9.10-1)
Section: tex
Priority: optional
Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 3.5.4
+Standards-Version: 3.5.5
Package: lilypond
Architecture: any
Provides: lilypond1.3
Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1), python-base (>= 1.5.2-4), guile
Recommends: lilypond-doc, tetex-extra (>= 1.0-1)
-Conflicts: lilypond, lilypond1.3 (<= 1.3.132-1), musixtex-fonts
+Conflicts: lilypond1.3 (<= 1.3.132-1), musixtex-fonts
Description: A program for printing sheet music.
LilyPond is a music typesetter. It produces beautiful sheet music
using a high level description file as input. LilyPond is part of
Package: lilypond-doc
Section: doc
Architecture: all
-Suggests: lilypond (>= 1.4.1-1)
-Suggests: postscript-viewer, www-browser
-Description: LilyPond Documentation in HTML and PS formats
- This package contains the HTML and PostScript documentation for the
+Suggests: lilypond (>= 1.4.8-1), postscript-viewer, www-browser
+Description: LilyPond Documentation in HTML, PS and DVI formats
+ This package contains the HTML, PostScript and DVI documentation for the
LilyPond music typestting software.
Package: lilypond1.3
-Architecture: all
-Depends: lilypond (>= 1.3.150-1)
+Architecture: arm i386 m68k powerpc sparc
+Depends: lilypond (>= 1.4.8-1)
Description: Dummy package for transition to new stable lilypond.
This dummy package provides a transition from the previous lilypond1.3
package back to a newer lilypond because the stable 1.4 series has arrived.
Provides: lilypond1.3
Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1), python-base (>= 1.5.2-4), guile
Recommends: lilypond-doc, tetex-extra (>= 1.0-1)
-Conflicts: lilypond, lilypond1.3 (<= 1.3.132-1), musixtex-fonts
+Conflicts: lilypond1.3 (<= 1.3.132-1), musixtex-fonts
Description: A program for printing sheet music.
LilyPond is a music typesetter. It produces beautiful sheet music
using a high level description file as input. LilyPond is part of
Package: lilypond-doc
Section: doc
Architecture: all
-Suggests: lilypond (>= 1.4.1-1)
-Suggests: postscript-viewer, www-browser
+Suggests: lilypond (>= 1.4.8-1), postscript-viewer, www-browser
Description: LilyPond Documentation in HTML, PS and DVI formats
This package contains the HTML, PostScript and DVI documentation for the
LilyPond music typestting software.
-
-Package: lilypond1.3
-Architecture: all
-Depends: lilypond (>= 1.3.150-1)
-Description: Dummy package for transition to new stable lilypond.
- This dummy package provides a transition from the previous lilypond1.3
- package back to a newer lilypond because the stable 1.4 series has arrived.
- .
- Please feel free to remove this dummy package after you have upgraded
- to the latest lilypond.
It was created by Anthony Fok <foka@debian.org>
Mon, 16 Apr 2001 22:17:10 -0600
-Copyright:
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License with
- the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
- if not, write to the Free Software Foundation, Inc., 59 Temple Place,
- Suite 330, Boston, MA 02111-1307 USA
-This is a dummy package to aid the transition from the old
-"lilypond1.3" package to the newer "lilypond" package.
-It was created by Anthony Fok <foka@debian.org>
-Mon, 16 Apr 2001 22:17:10 -0600
-
Copyright:
This program is free software; you can redistribute it and/or modify
# Still not clean enough? Let's use... BRUTE STRENGTH! :-)
find . -type d -name 'out' -o -name 'out-www' | xargs rm -rf
- rm -f debian/doc-base debian/TODO
dh_clean
+++ /dev/null
-\
-cpp -P -traditional -o l-fake.ly -DFAKE_GRACE les-nereides.ly
--- /dev/null
+\version "1.3.146"
+\header{
+ texidoc="Lyric alignment
+
+ Lyric alignment is adjustable both interms of alignment between stanzas and on notehead.
+
+ If the property alignment is not set, there is automatic determination of alignment type based on punctuation. (ee lyric-phrasing.ly)
+
+"
+}
+
+%\paper { linewidth = -1. }
+\score {
+ \addlyrics
+ \context Voice = "v" \notes \relative c'' {
+ \property Staff.automaticMelismata = ##t
+ \cadenzaOn
+ a\breve \bar "||" a1 \bar "|" a \bar "|" a \bar "||" \break a \bar "|" a \bar "|" a \bar "|" a \bar "||" \break a \bar "|" a \bar "|."
+ }
+ \context Lyrics <
+ \context LyricsVoice = "v-1" \lyrics {
+% \property LyricsVoice . stanza = "1:"
+ \property Lyrics . LyricText \override #'ignore-length-mismatch = ##t
+ \property Lyrics . LyricText \override #'alignment = #-1
+ \property Lyrics . LyricText \override #'begin-alignment = #8
+
+ "Particularly useful for reciting notes "
+ left
+
+ \property Lyrics . LyricText \override #'alignment = #0
+
+ centered
+
+ \property Lyrics . LyricText \override #'alignment = #1
+
+ right
+
+ \property Lyrics . LyricText \override #'alignment = #-1
+ \property Lyrics . LyricText \override #'begin-alignment = #2
+
+ left_half_way
+
+ \property Lyrics . LyricText \override #'begin-alignment = #4
+
+ left_one_quarter
+
+ \property Lyrics . LyricText \override #'begin-alignment = #10
+
+ left_one_tenth
+
+ \property Lyrics . LyricText \override #'begin-alignment = #1
+
+ left_one_whole
+
+ \property Lyrics . LyricText \override #'ignore-length-mismatch = ##f
+ \property Lyrics . LyricText \override #'begin-alignment = #4
+
+ Very_short_lyrics_remain_in_touch_with_their_note
+
+ \property Lyrics . LyricText \override #'alignment = #1
+ \property Lyrics . LyricText \override #'end-alignment = #1.1
+ \property Lyrics . LyricText \override #'ignore-length-mismatch = ##t
+
+
+ Unless_ignore-length-mismatch_is_true
+
+ }
+ \context LyricsVoice = "v-2" \lyrics {
+% \property LyricsVoice . stanza = "2:"
+ " with many syllables under them." l c r l l l x x x note' true'
+ }
+ >
+}
composer = "jcn"
enteredby = "jcn"
copyright = "PD"
+title = "Beam quantization"
TestedFeatures = "beam quant positions"
}
\score{
<
% \property Score.beamQuantisation = #'none
- \context GrandStaff <
+ \context GrandStaff <
+ \context Staff = SA
\notes\transpose c' {
\time 8/4
}
>
<
+ \context Staff = SB
\notes {
\transpose c' {
\time 8/4
char str[400]; // ugh.
- if (scm_integer_p (s) == SCM_BOOL_F)
+ if (scm_exact_p (s) == SCM_BOOL_F)
{
Real r (gh_scm2double (s));
{
Real alpha = (curve.control_[3] - curve.control_[0]).arg ();
Bezier back = curve;
-
+ Offset perp = curvethick * complex_exp (Offset (0, alpha + M_PI/2)) * 0.5;
back.reverse ();
- back.control_[1] += curvethick * complex_exp (Offset (0, alpha + M_PI/2));
- back.control_[2] += curvethick * complex_exp (Offset (0, alpha + M_PI/2));
+ back.control_[1] += perp;
+ back.control_[2] += perp;
+ curve.control_[1] -= perp;
+ curve.control_[2] -= perp;
+
SCM scontrols[8];
for (int i=4; i--;)
ly_quote_scm (list),
gh_double2scm (linethick),
SCM_UNDEFINED));
+ Box b(curve.extent (X_AXIS),
+ curve.extent (Y_AXIS));
+
+ b[X_AXIS].unite (back.extent (X_AXIS));
+ b[Y_AXIS].unite (back.extent (Y_AXIS));
- Box b (curve.extent (X_AXIS), curve.extent (Y_AXIS));
return Molecule (b, at);
}
Moment
Rhythmic_req::length_mom () const
{
- return unsmob_duration (get_mus_property ("duration"))->length_mom ();
-
+ Duration *d = unsmob_duration (get_mus_property ("duration"));
+ if (!d){
+ Moment m ;
+ programming_error("Rhythmic_req has no duration");
+ return m;
+ }
+ return d->length_mom ();
}
void
exit_status_global = 1;
}
-void
-My_lily_parser::set_last_duration (Duration const *d)
-{
- default_duration_ = *d;
-}
Input
{
output_String_def (prefix + s, ly_scm2string (v));
}
- else if (scm_integer_p (v) == SCM_BOOL_T)
+ else if (scm_exact_p (v) == SCM_BOOL_T
+ && scm_integer_p (v) == SCM_BOOL_T)
{
output_int_def (prefix + s, gh_scm2int (v));
}
}
| multiplied_duration {
$$ = $1;
+ THIS->default_duration_ = *unsmob_duration ($$);
}
| explicit_duration {
$$ = $1;
+ THIS->default_duration_ = *unsmob_duration ($$);
}
;
l = intlog2 ($1);
$$ = Duration (l, $2).smobbed_copy ();
-
- THIS->set_last_duration (unsmob_duration ($$));
}
| DURATION_IDENTIFIER dots {
Duration *d =unsmob_duration ($1);
Duration k (d->duration_log (),d->dot_count () + $2);
$$ = k.smobbed_copy ();
-
- THIS->set_last_duration (unsmob_duration ($$));
}
;
Grob * lyric;
alignment_i_ = appropriate_alignment (punc);
-
+
// If there was no notehead in the matching voice context, use the first
// notehead caught from any voice context (any port in a storm).
if (!notehead_l_) {
/** determine the distance to translate lyrics to get correct alignment
Rules: If alignment is centre, translate = 0
Otherwise,
- If (length of longest lyric) < property("end-alignment") * (length of shortest lyric),
+ If (length of longest lyric) < (property {begin,end}-alignment) * (length of shortest lyric),
- centre longest lyric on notehead
Otherwise
- move so shortest lyric just reaches notehead centre
{
Real translate = 0.0;
if (alignment_i_ != CENTER) {
- // FIXME: do we really know the lyric extent here? Some font sizing comes later?
- Real l1 = longest_lyric_l_->extent (longest_lyric_l_, X_AXIS).length () / gh_scm2double (longest_lyric_l_->get_grob_property("end-alignment"));
- Real l2 = shortest_lyric_l_->extent (shortest_lyric_l_, X_AXIS).length ();
-
- translate = l1 <? l2;
+ switch (alignment_i_) {
+ // FIXME: do we really know the lyric extent here? Some font sizing comes later?
+ case LEFT:
+ translate = longest_lyric_l_->extent (longest_lyric_l_, X_AXIS).length () / gh_scm2double (longest_lyric_l_->get_grob_property("begin-alignment"));
+ break;
+ case RIGHT:
+ translate = longest_lyric_l_->extent (longest_lyric_l_, X_AXIS).length () / gh_scm2double (longest_lyric_l_->get_grob_property("end-alignment"));
+ break;
+ }
+ if (!gh_scm2bool(longest_lyric_l_->get_grob_property("ignore-length-mismatch"))) {
+ Real l = shortest_lyric_l_->extent (shortest_lyric_l_, X_AXIS).length ();
+ translate = l <? translate;
+ }
+
translate *= alignment_i_ ;
}
return translate;
/** determine what alignment we want.
- Rules: if first_in_phrase_b_ is set, then alignment is LEFT.
+ Rules: if property alignment is set it specifies the alignment
+ if first_in_phrase_b_ is set, then alignment is LEFT.
otherwise if each syllable ends in punctuation, then alignment is RIGHT
otherwise alignment is centre.
*/
int
Syllable_group::appropriate_alignment (const char *punc)
{
+
+ SCM s=this->longest_lyric_l_->get_grob_property ("alignment");
+ if (s!=SCM_EOL) {
+ return gh_scm2int (s);
+ }
+
if (first_in_phrase_b_)
return LEFT;
for (int i=0; i < texts_.size (); i++)
{
Item *ti = texts_[i];
- Side_position_interface::add_staff_support (ti);
+ if (!to_boolean (get_property ("scriptHorizontal")))
+ Side_position_interface::add_staff_support (ti);
typeset_grob (ti);
}
texts_.clear ();
-;; lilypond-font-lock.el
+;;; lilypond-font-lock.el --- syntax coloring for LilyPond mode
;; Copyright (C) 1992,1993,1994 Tim Peters
+;; Author: 2001: Heikki Junes
+;; * Emacs-mode: new keywords, reserved words, identifiers, notenames,
+;; some dynamics and brackets are font-lock-keywords
;; Author: 1997: Han-Wen Nienhuys
;; Author: 1995-1996 Barry A. Warsaw
;; 1992-1994 Tim Peters
;; Created: Feb 1992
;; Version: 0.0
-;; Last Modified: 12SEP97
+;; Last Modified: 14SEP2001
;; Keywords: lilypond languages music notation
;; This software is provided as-is, without express or implied
;; This started out as a cannabalised version of python-mode.el, by hwn
;; For changes see the LilyPond ChangeLog
;;
+
;; TODO:
;; - should handle block comments too.
;; - handle lexer modes (\header, \melodic, \lyric) etc.
;; - indentation
-;; - notenames?
-;; - fontlock: \melodic \melodic
(defconst LilyPond-font-lock-keywords
- (let* ((keywords '(
-
-"apply" "arpeggio" "autochange" "spanrequest" "commandspanrequest"
-"simultaneous" "sequential" "accepts" "alternative" "bar" "breathe"
-"char" "chordmodifiers" "chords" "clef" "cm" "consists" "consistsend"
-"context" "denies" "duration" "dynamicscript" "elementdescriptions"
-"font" "grace" "header" "in" "lyrics" "key" "mark" "musicalpitch"
-"time" "times" "midi" "mm" "name" "notenames" "notes" "outputproperty"
-"override" "set" "revert" "partial" "paper" "penalty" "property" "pt"
-"relative" "remove" "repeat" "addlyrics" "partcombine" "score"
-"script" "stylesheet" "skip" "textscript" "tempo" "translator"
-"transpose" "type" "unset"
+ (let* ((keywords '( ; need special order due to over[lapping] of words
+
+;; all letters are lowercase
+"accepts" "accompany" "addlyrics" "aeolian" "alias" "alternative"
+"apply" "arpeggio" "autochange" "bar" "break" "breathe" "breve"
+"beamintervals" "broken" "blend" "bcincipit" "char" "ch" "cg"
+"chord\\(s\\|stest\\|chordmodifiers\\)?"
+"clef \\(bass\\|treble\\|violin\\|tenor\\)?"
+"clipping" "cm" "coda" "complex" "commandspanrequest" "consists\\(end\\)?"
+"context" "contrabasso" "decr" "default" "denies" "different" "dirs"
+"down\\(bow\\|prall\\)?" "dorian" "duration" "dynamicscript"
+"eccentric" "eg" "embeddedps" "endincipit" "elementdescriptions"
+"ex\\(treme\\)?" "fermata" "f+" "font" "flageolet" "fp" "fragment" "fz"
+"gliss\\(ando\\)?" "global" "gg" "gmsus" "grace" "gr\\(and\\)?staff"
+"header" "hsize" "in\\(clude\\|versions\\|visible\\)?" "ionian"
+"key\\(s\\(ignature\\)?\\)?" "lag" "lheel" "line\\(break\\|prall\\)"
+"locrian" "longa" "lower" "ltoe" "lydian" "lyrics"
+"maintainer" "mark" "maxima" "mel\\(isma\\|ody\\)?" "midi" "major"
+"minor" "mixolydian" "mordent" "monstrous" "multipart" "music"
+"musicalpitch" "m\\(p\\|f\\|m\\)?" "name" "newpage" "noise\\(beat\\)?"
+"normal\\(key\\|size\\)" "note\\(name\\)?s" "nt?"
+"one\\(staff\\)?" "open" "outputproperty" "over\\(ride\\)?"
+"paper" "partcombine" "partial" "penalty" "phrygian" "pitch" "p+"
+"property" "pt" "prall\\(mordent\\|prall\\|up\\)?" "quickmeasure"
+"relative" "remove" "repeat" "rever\\(t\\|seturn\\)" "rf" "rheel" "rhythm"
+"right" "rtoe" "scales?" "scheme" "score" "scpaper" "script" "scscore" "sd"
+"segno" "sequential" "set\\(tings\\)?" "sf\\(f\\|z\\)?" "shortlong"
+"simultaneous" "singlepart" "skip" "small" "smarttranspose" "spanrequest"
+"staccato" "staff\\(height\\|space\\)" "start" "stop\\(ped\\)?"
+"st\\(paper\\|score\\)" "stuff" "stylesheet" "su" "tab" "tempo" "tenuto"
+"textscript" "thenotes" "thrd" "threevoice" "thumb" "tilt\\(down\\|up\\)"
+"timb" "times?" "timpani" "tiny" "toeters" "touch" "trans\\(lator\\|pose\\)"
+"trill" "trombe" "turn" "type" "t\\(wo\\(voice\\(steminvert\\)?\\)?\\)?"
+"un\\(der\\|set\\)" "up\\(bow\\|per\\|prall\\)?" "version"
+"viol\\(a\\|in\\(incipit\\)?\\|oncello\\)" "visible" "voicedefault" "vsize"
+"x" "zagers?" "z\\(eu\\|o\\)ger"
+
))
- (kwregex (mapconcat (lambda (x) (concat "\\\\" x)) keywords "\\|")))
+
+ (identifiers '(
+
+;; in principle, have one or more uppercase letters
+"\\(\\(BarNumbering\\|Choir\\|Grand\\|HaraKiri\\|OrchestralPart\\|Piano\\|Rhythmic\\)Staff\\|\\(Cue\\|Lyrics\\)?Voice\\|\\(Orchestral\\)?Score\\|ChordNames\\|Grace\\|Lyrics\\|StaffGroup\\|Thread\\)Context" ; *Context
+"\\(script\\|dots\\|dynamic\\|slur\\|stem\\|sustain\\|tie\\|tuplet\\)\\(Both\\|Down\\|Up\\)" ; *(Both/Down/Up)
+"\\(slur\\|tie\\)\\(Dotted\\|Solid\\)" ; *(Dotted/Solid)
+"\\(autoBeam\\|cadenza\\|impro\\|turn\\)\\(Off\\|On\\)" ; *(On/Off)
+"\\(empty\\|fat\\)Text" ; *Text
+"shift\\(On+\\|Off\\|I\\|II\\|III\\|IV\\|V\\)" ; shift*
+"EasyNotation"
+"\\(hide\\|show\\)StaffSwitch"
+"\\(lower\\|upper\\)Voice"
+"voice\\(One\\|Two\\|Three\\|Four\\|B\\|C\\|D\\|E\\)" ; voice*
+"paper\\(Eleven\\|Sixteen\\|Thirteen\\|TwentySix\\)" ; paper*
+"\\(lower\\|upper\\)\\(Octave\\|One\\)" ; (lower/upper)*
+"hairyChord"
+"\\(Piano\\|Rhythmic\\)\\(Staff\\)?"
+"\\(clarinetti\\|fagotti\\|flauti\\|melodic\\|oboi\\|\\(quite\\|rather\\|somewhat\\)LongLyrics\\|violinoII?\\)?\\(Staff\\)?" ; *Staff
+"\\(archi\\|bassi\\|legni\\|ottoni\\|timpani\\|viole\\|violini\\)\\(Group\\)" ; *Group
+"melisma\\(End\\)?" "staff\\(One\\|Two\\)?" "rests\\(II\\)?" "specialKey"
+"noBreak" "paperTwentysix" "endHorizScript" "FontBody" "text(I)+"
+
+ ))
+
+ (reservedwords '(
+
+;; Other words which look nicer when colored
+"Accidentals" "autoBeamSettings" "BarLine" "Beam"
+"ChordName\\([s]?\\|s.[a-zA-Z]*\\)" "Grace\\(.[a-zA-Z]*\\)?"
+"\\(Grand\\|Piano\\)Staff" "Lyrics\\(.[a-zA-Z]*\\)?" "NoteHead"
+"Score\\(.[a-zA-Z]*\\)" "Stem" "Staff\\(Symbol\\)?" "TextScript"
+"TimeSignature" "Voice\\(.[a-zA-Z]*\\)?"
+
+ ))
+
+ (kwregex (mapconcat (lambda (x) (concat "\\\\" x)) keywords "\\|"))
+ (iregex (mapconcat (lambda (x) (concat "\\\\" x)) identifiers "\\|"))
+ (rwregex (mapconcat (lambda (x) (concat "" x)) reservedwords "\\|"))
+)
(list
- (concat ".\\(" kwregex "\\)[^a-zA-Z]")
- (concat "^\\(" kwregex "\\)[^a-zA-Z]")
- '(".\\(\\\\[a-zA-Z][a-zA-Z]*\\)" 1 font-lock-variable-name-face)
- '("^[\t ]*\\([a-zA-Z][_a-zA-Z]*\\) *=" 1 font-lock-variable-name-face)
- ))
+;; Fonts in use (from GNU Emacs Lisp Reference Manual, elisp.ps):
+;; font-lock- comment / string / keyword / builtin / function-name /
+;; variable-name / type / constant / warning -face
+
+ '("\\([_^]?\\\\[a-zA-Z][a-zA-Z]*\\)" 1 font-lock-constant-face)
+ '("\\(\\(#'\\)?[a-zA-Z][_a-zA-Z.\-]*[ \t]*=[ \t]*#\\)" 1 font-lock-variable-name-face)
+ '("\\([a-zA-Z][_a-zA-Z.\-]*\\)[ \t]*=[ \t]*" 1 font-lock-variable-name-face)
+ '("[ \t]*=[ \t]*\\([a-zA-Z][_a-zA-Z]*\\)" 1 font-lock-variable-name-face)
+
+
+;; other reserved words
+ (cons (concat "\\(" rwregex "\\)") 'font-lock-variable-name-face)
+
+;; highlight note names; separate notes from (other than ')'-type) brackets
+ '("[ <\{[~()\t]\\(\\(\\(\\(do\\|re\\|mi\\|fa\\|sol\\|la\\|si\\)\\(bb?\\|dd?\\|ss?\\)?\\)\\|\\([a-hsr]\\(flat\\(flat\\)?\\|sharp\\(sharp\\)?\\|ff?\\|ss?\\|is\\(siss\\|s\\|is\\)?\\|es\\(sess\\|s\\|es\\)?\\)?\\)\\|\\(as\\(as\\|es\\)?\\)\\|\\(es\\(es\\)?\\)\\|\\(bb\\)\\)[,']*\\(64\\|32\\|16\\|8\\|4\\|2\\|1\\)?[.]*\\)" 1 font-lock-type-face)
+
+;; highlight identifiers
+ (cons (concat "\\([_^]?\\(" iregex "\\)\\)+\\($\\|[] \t(~{}>\\\\]\\)") '(0 font-lock-function-name-face t))
+
+;; highlight keywords
+ (cons (concat "\\([_^]?\\(" kwregex "\\)\\)+\\($\\|[] \t(~{}>\\\\]\\)") '(0 font-lock-keyword-face t))
+
+ '("\\([][><}{]\\)" 0 font-lock-warning-face t)
+
+ '("\\([(~)]\\|\\\\<\\|\\\\!\\|\\\\>\\)" 0 font-lock-builtin-face t)
+
+;; highlight comments (again)
+ '("\\(%.*\\)" 0 font-lock-comment-face t)
+
+ )
+ )
"Additional expressions to highlight in LilyPond mode.")
;; define a mode-specific abbrev table for those who use such things
-;; install this into emacs site-start.d/
+;;; lilypond-init.el --- Startup code for LilyPond mode
+;;;
+;;; Add this to your ~/.emacs or ~/.emacs.el, or
+;;; install this file into Emacs' site-start.d
(autoload 'LilyPond-mode "lilypond-mode")
(setq auto-mode-alist
(add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
-
-
-
;;; source file of the GNU LilyPond music typesetter
;;;
;;; (c) 1999--2001 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; Changed 2001 Heikki Junes <heikki.junes@hut.fi>
+;;; * Add PS-compilation, PS-viewing and MIDI-play (29th Aug 2001)
+;;; * Keyboard shortcuts (12th Sep 2001)
+;;; * Inserting tags, inspired on sgml-mode (11th Oct 2001)
;;; Inspired on auctex
;;;
-;;; Add this to your .emacs.el
+;;; Add this to your ~/.emacs or ~/.emacs.el
;;; (load-library "lilypond-mode.el")
;;; (setq auto-mode-alist
;;; (append '(("\\.ly$" . LilyPond-mode) auto-mode-alist)))
(defvar LilyPond-kick-xdvi nil
"If true, no simultaneous xdvi's are started, but reload signal is sent.")
+(defvar LilyPond-command-history nil
+ "Command history list.")
+
(defvar LilyPond-regexp-alist
'(("\\([a-zA-Z]?:?[^:( \t\n]+\\)[:( \t]+\\([0-9]+\\)[:) \t]" 1 2))
"Regexp used to match LilyPond errors. See `compilation-error-regexp-alist'.")
:group 'LilyPond
:type 'string)
+(defcustom LilyPond-gv-command "gv -watch"
+ "Command used to display PS files."
+
+ :group 'LilyPond
+ :type 'string)
+
+(defcustom LilyPond-midi-command "timidity"
+ "Command used to play MIDI files."
+
+ :group 'LilyPond
+ :type 'string)
+
;; This is the major configuration variable.
(defcustom LilyPond-command-alist
`(
("TeX" . ("tex '\\nonstopmode\\input %t'" . "View"))
("2Dvi" . ("ly2dvi %s" . "View"))
+ ("2PS" . ("ly2dvi -P %s" . "View"))
("Book" . ("lilypond-book %x" . "LaTeX"))
("LaTeX" . ("latex '\\nonstopmode\\input %l'" . "View"))
;; refreshes when kicked USR1
("View" . (,(concat LilyPond-xdvi-command " %d") . "LilyPond"))
+
+ ("ViewPS" . (,(concat LilyPond-gv-command " %p") . "LilyPond"))
+
+ ("Midi" . (,(concat LilyPond-midi-command " %m") . "LilyPond"))
)
"AList of commands to execute on the current document.
("%p" . ".ps")
("%l" . ".latex")
("%x" . ".tely")
+ ("%m" . ".midi")
)
"Alist of expansion strings for LilyPond command names."
(answer (or LilyPond-command-force
(completing-read
(concat "Command: (default " default ") ")
- LilyPond-command-alist nil t))))
+ LilyPond-command-alist nil t nil 'LilyPond-command-history))))
;; If the answer is "LilyPond" it will not be expanded to "LilyPond"
(let ((answer (car-safe (assoc answer LilyPond-command-alist))))
(LilyPond-command (LilyPond-command-query (LilyPond-master-file))
'LilyPond-master-file))
+(defun LilyPond-command-formatdvi ()
+ "Format the dvi output of the current document."
+ (interactive)
+ (LilyPond-command (LilyPond-command-menu "2Dvi") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-formatps ()
+ "Format the ps output of the current document."
+ (interactive)
+ (LilyPond-command (LilyPond-command-menu "2PS") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-smartview ()
+ "View the dvi output of current document."
+ (interactive)
+ (LilyPond-command (LilyPond-command-menu "SmartView") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-view ()
+ "View the dvi output of current document."
+ (interactive)
+ (LilyPond-command (LilyPond-command-menu "View") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-viewps ()
+ "View the ps output of current document."
+ (interactive)
+ (LilyPond-command (LilyPond-command-menu "ViewPS") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-midi ()
+ "View the ps output of current document."
+ (interactive)
+ (LilyPond-command (LilyPond-command-menu "Midi") 'LilyPond-master-file)
+)
+
;; FIXME, this is broken
(defun LilyPond-region-file (begin end)
(let (
(define-key LilyPond-mode-map "\C-c\C-b" 'LilyPond-command-buffer)
(define-key LilyPond-mode-map "\C-c\C-k" 'LilyPond-kill-job)
(define-key LilyPond-mode-map "\C-c\C-c" 'LilyPond-command-master)
+ (define-key LilyPond-mode-map "\C-c\C-d" 'LilyPond-command-formatdvi)
+ (define-key LilyPond-mode-map "\C-c\C-f" 'LilyPond-command-formatps)
+ (define-key LilyPond-mode-map "\C-c\C-s" 'LilyPond-command-smartview)
+ (define-key LilyPond-mode-map "\C-c\C-v" 'LilyPond-command-view)
+ (define-key LilyPond-mode-map "\C-c\C-p" 'LilyPond-command-viewps)
+ (define-key LilyPond-mode-map "\C-c\C-m" 'LilyPond-command-midi)
+ (define-key LilyPond-mode-map "\C-cn" 'lilypond-notes)
+ (define-key LilyPond-mode-map "\C-cs" 'lilypond-score)
)
;;; Menu Support
+(define-skeleton lilypond-notes
+ "Lilypond notes tag."
+ nil
+; (if (bolp) nil ?\n)
+ "\\notes"
+ (if (y-or-n-p "Set \"\\relative\" attribute? ")
+ (concat " \\relative " (skeleton-read "Relative: " "" str)))
+ " { " _ " }")
+
+(define-skeleton lilypond-score
+ "Lilypond score tag."
+ nil
+ (if (bolp) nil ?\n)
+ "\\score {\n"
+ " " _ "\n"
+ " \\paper { }\n"
+ (if (y-or-n-p "Insert \"\\header\" field? ")
+ (concat " \\header {\n "
+ (skeleton-read "Piece: " "piece = " str) "\n"
+ (if (y-or-n-p "Insert \"opus\" field? ")
+ (concat " " (skeleton-read "Opus: " "opus = " str) "\n"))
+ " }\n"))
+ (if (y-or-n-p "Insert \"\\midi\" field? ")
+ (concat " \\midi { "
+ (skeleton-read "Midi: " "\\tempo 4 = " str)
+ " }\n"))
+ "}\n")
+
(defun LilyPond-command-menu-entry (entry)
;; Return LilyPond-command-alist ENTRY as a menu item.
(let ((name (car entry)))
[ "Region" LilyPond-command-select-region
:keys "C-c C-r" :style radio
:selected (eq LilyPond-command-current 'LilyPond-command-region) ]))
- (let ((file 'LilyPond-command-on-current))
- (mapcar 'LilyPond-command-menu-entry LilyPond-command-alist))))
-
+ '(("Insert"
+ [ "\\notes..." lilypond-notes
+ :keys "C-c n" ]
+ [ "\\score..." lilypond-score
+ :keys "C-c s" ]
+ ))
+; (let ((file 'LilyPond-command-on-current))
+; (mapcar 'LilyPond-command-menu-entry LilyPond-command-alist))
+;;; Some kind of mapping which includes :keys might be more elegant
+ '([ "LilyPond" (LilyPond-command (LilyPond-command-menu "ViewPS") 'LilyPond-master-file) ])
+ '([ "TeX" (LilyPond-command (LilyPond-command-menu "TeX") 'LilyPond-master-file) ])
+ '([ "2Dvi" (LilyPond-command (LilyPond-command-menu "2Dvi") 'LilyPond-master-file) :keys "C-c C-d"])
+ '([ "2PS" (LilyPond-command (LilyPond-command-menu "2PS") 'LilyPond-master-file) :keys "C-c C-f"])
+ '([ "Book" (LilyPond-command (LilyPond-command-menu "Book") 'LilyPond-master-file) ])
+ '([ "LaTeX" (LilyPond-command (LilyPond-command-menu "LaTeX") 'LilyPond-master-file) ])
+ '([ "SmartView" (LilyPond-command (LilyPond-command-menu "SmartView") 'LilyPond-master-file) :keys "C-c C-s"])
+ '([ "View" (LilyPond-command (LilyPond-command-menu "View") 'LilyPond-master-file) :keys "C-c C-v"])
+ '([ "ViewPS" (LilyPond-command (LilyPond-command-menu "ViewPS") 'LilyPond-master-file) :keys "C-c C-p"])
+ '([ "Midi" (LilyPond-command (LilyPond-command-menu "Midi") 'LilyPond-master-file) :keys "C-c C-m"])
+ ))
(defconst LilyPond-imenu-generic-re "^\\([a-zA-Z_][a-zA-Z0-9_]*\\) *="
"Regexp matching Identifier definitions.")
(defun LilyPond-command-select-region ()
(interactive)
(message "Next command will be on the region")
- (setq LilyPond-command-current 'LilPond-command-region))
+ (setq LilyPond-command-current 'LilyPond-command-region))
(defun LilyPond-command-menu (name)
;; Execute LilyPond-command-alist NAME from a menu.
(setq comment-start-skip "%{? *")
(make-local-variable 'comment-end)
- (setq comment-end "\n")
+ (setq comment-end "")
(make-local-variable 'block-comment-start)
(setq block-comment-start "%{")
+++ /dev/null
-% Toplevel AsciiScript initialisation file.
-
-\version "1.3.146"
-
-\include "declarations-as.ly"
-
-% burp. need to override lily.scm
-#(define cmr-alist
- '(("bold" . "as-dummy")
- ("brace" . "as-braces")
- ("default" . "as-dummy")
- ("dynamic" . "as-dummy")
- ("feta" . "feta")
- ("feta-1" . "feta")
- ("feta-2" . "feta")
- ("finger" . "as-number")
- ("typewriter" . "as-dummy")
- ("italic" . "as-dummy")
- ("roman" . "as-dummy")
- ("script" . "as-dummy")
- ("large" . "as-dummy")
- ("Large" . "as-dummy")
- ("mark" . "as-number")
- ("number" . "as-number")
- ("timesig" . "as-number")
- ("volta" . "as-number"))
-)
-
-\score {
- \context Voice \notes\relative c {
- \maininput
- }
- \paper {
- \paper_as_nine
- %linewidth=-1.0
- %indent = 0.0
- \translator { \StaffContext barSize = \staffheight }
-
- % no beam-slope
- %\translator { \VoiceContext beamHeight = #0 }
- }
- %\midi{ }
-}
+++ /dev/null
-% Toplevel initialisation file.
-
-\version "1.3.146"
-
-
-\include "declarations.ly"
-
-\score {
- \context Voice \notes\relative c {
- \maininput
- }
- \paper { }
- \midi { }
-}
+++ /dev/null
-% Toplevel initialisation file.
-
-\version "1.3.146"
-
-
-\include "declarations.ly"
-
-\score {
- \context Voice \notes\relative c {
- \maininput
- }
- \paper {
-
- % indent = 0.0
- }
- \midi{ }
-}
export DVIPSMAKEPK := mktexpk --destdir $(topdir)/mf/out
endif
-export LILYPONDPREFIX:=$(depth)/
+# LilyPond is often run from within $(outdir), making a relative
+# PREFIX incorrect.
+export LILYPONDPREFIX:=$(shell cd $(depth)/ ; pwd)
export PYTHONPATH:=$(buildscript-dir)/$(outdir):$(PYTHONPATH)
# guile load path?
-
the-script-dir=$(wildcard $(script-dir))
ifneq ($(the-script-dir),)
/sbin/install-info %{_prefix}/info/lilypond.info.gz %{_prefix}/info/dir
%endif
+
+echo 'Please logout first before using LilyPond.'
+
%preun
%if info=="yes"
all: $(OUT_FILES)
-local-WWW: $(ly_examples) $(fly_examples) $(ps_examples) $(png_examples)
+local-WWW: $(ly_examples) $(ps_examples) $(png_examples) $(dvi_examples)
tar:
mkdir -p $(outdir)/$(tarball)
LY_FILES = $(wildcard *.ly)
SCORE_LY_FILES = $(shell fgrep -l score *.ly)
-FLY_FILES = $(wildcard *.fly)
-SLY_FILES = $(wildcard *.sly)
M4_FILES = $(wildcard *.m4)
LYM4_FILES = $(wildcard *.lym4)
-EXTRA_DIST_FILES += $(FLY_FILES) $(SLY_FILES) $(LY_FILES) $(M4_FILES) $(LYM4_FILES)
+EXTRA_DIST_FILES += $(LY_FILES) $(M4_FILES) $(LYM4_FILES)
ly_examples=$(addprefix $(outdir)/, $(addsuffix .ly.txt, $(examples)))
-fly_examples=$(addprefix $(outdir)/, $(addsuffix .fly.txt, $(flexamples)))
-sly_examples=$(addprefix $(outdir)/, $(addsuffix .sly.txt, $(slexamples)))
-all_examples=$(flexamples) $(slexamples) $(examples)
-
-ps_examples=$(addprefix $(outdir)/, $(addsuffix .ps.gz, $(all_examples)))
-gif_examples=$(addprefix $(outdir)/, $(addsuffix .gif, $(all_examples)))
-png_examples=$(addprefix $(outdir)/, $(addsuffix .png, $(all_examples)))
+ps_examples=$(addprefix $(outdir)/, $(addsuffix .ps.gz, $(examples)))
+dvi_examples=$(addprefix $(outdir)/, $(addsuffix .dvi, $(examples)))
+gif_examples=$(addprefix $(outdir)/, $(addsuffix .gif, $(examples)))
+png_examples=$(addprefix $(outdir)/, $(addsuffix .png, $(examples)))
html_subdirs=$(addprefix --subdirs ,$(SUBDIRS))
OUT_FILES = $(addprefix $(outdir)/,$(M4_FILES:%.m4=%)) \
$(addprefix $(outdir)/,$(LYM4_FILES:%.lym4=%.ly))
-score_ps = $(addprefix $(outdir)/, $(addsuffix .ps.gz, $($SCORE_LY_FILES)))
\ No newline at end of file
+score_ps = $(addprefix $(outdir)/, $(addsuffix .ps.gz, $($SCORE_LY_FILES)))
Begin3
Title: LilyPond
-Version: 1.4.8
-Entered-date: 24SEP01
+Version: 1.4.9
+Entered-date: 20NOV01
Description: @BLURB@
Keywords: music notation typesetting midi fonts engraving
Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 1000k lilypond-1.4.8.tar.gz
+ 1000k lilypond-1.4.9.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.4.8.tar.gz
+ 1000k lilypond-1.4.9.tar.gz
Copying-policy: GPL
End
%define info yes
Name: lilypond
-Version: 1.4.8
+Version: 1.4.9
Release: 1
License: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.8.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.9.tar.gz
Summary: Create and print music notation
URL: http://www.cs.uu.nl/~hanwen/lilypond
BuildRoot: /tmp/lilypond-install
/sbin/install-info %{_prefix}/info/lilypond.info.gz %{_prefix}/info/dir
%endif
+
+echo 'Please logout first before using LilyPond.'
+
%preun
%if info=="yes"
Distribution: SuSE Linux 7.0 (i386)
Name: lilypond
-Version: 1.4.8
+Version: 1.4.9
Release: 2
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.8.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.9.tar.gz
# music notation software for.. ?
Summary: A program for printing sheet music.
URL: http://www.lilypond.org/
AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm) $(AF_FILES:.af=.afm) $(addsuffix .afm, $(CM_AFM_FILES)))
TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm))
PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa))
+PFB_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfb))
+
# Make tfm files first, log files last,
# so that normally log files aren't made twice
# Danish translation of lilypond
# Copyright (C) 2001 Free Software Foundation, Inc.
# Keld Simonsen <keld@dkuug.dk>, 2001.
+# Reviewed 2001-09-28 Rune Zedeler <rz@daimi.au.dk>
#
msgid ""
msgstr ""
"Project-Id-Version: lilypond 1.4.6\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
-"PO-Revision-Date: 2001-09-22 21:00+0200\n"
+"POT-Creation-Date: 2001-06-14 13:22+0200\n"
+"PO-Revision-Date: 2001-09-28 21:00+0200\n"
"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ly2dvi.py:109
+#: ly2dvi.py:105
msgid "Generate .dvi with LaTeX for LilyPond"
msgstr "Generér .dvi med LaTeX for LilyPond"
-#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: data-file.cc:118 input.cc:85 ly2dvi.py:190 midi-parser.cc:100 mup2ly.py:93
+#: update-lily.py:118 warn.cc:23
msgid "warning: "
msgstr "advarsel: "
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
-#: warn.cc:17
+#: input.cc:90 ly2dvi.py:205 ly2dvi.py:804 mup2ly.py:98 mup2ly.py:188
+#: update-lily.py:123 update-lily.py:211 warn.cc:9 warn.cc:17
msgid "error: "
msgstr "fejl: "
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:206 mup2ly.py:100 update-lily.py:125
msgid "Exiting ... "
msgstr "Afslutter... "
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:264 mup2ly.py:158 update-lily.py:183
#, c-format
msgid "Usage: %s [OPTION]... FILE"
msgstr "Brug: %s [FLAG]... FIL"
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:268 main.cc:120 main.cc:148 mup2ly.py:162 update-lily.py:187
msgid "Options:"
msgstr "Flag:"
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:272 main.cc:124 main.cc:171 mup2ly.py:168 update-lily.py:191
#, c-format
msgid "Report bugs to %s"
msgstr ""
"Rapportér programfejl til %s\n"
"Rapportér fejl i oversættelsen til <dansk@klid.dk>"
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:208
#, c-format
msgid "Invoking `%s'"
msgstr "Starter \"%s\""
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:211
#, c-format
msgid "command exited with value %d"
msgstr "kommandoen afsluttede med værdi %d"
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:213
msgid "(ignored)"
msgstr "(ignoreret)"
msgid "Cleaning %s..."
msgstr "Renser %s..."
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:237
#, c-format
msgid "no such setting: %s"
msgstr "indstillingen findes ikke: %s"
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:349 main.cc:112
msgid "write Makefile dependencies for every input file"
msgstr "skriv Makefile-afhængigheder for hver inddatafil"
# forklaring af flag -h
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:350 main.cc:96 main.cc:108 mup2ly.py:1117 update-lily.py:251
msgid "this help"
msgstr "denne hjælp"
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:351 main.cc:110 main.cc:115
msgid "DIR"
msgstr "KATALOG"
msgid "don't run LilyPond"
msgstr "kør ikke LilyPond"
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:354 main.cc:113
msgid "produce MIDI output only"
msgstr "lav kun MIDI-uddata"
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:355 main.cc:99 main.cc:111 main.cc:114
msgid "FILE"
msgstr "FIL"
msgid "write ouput to FILE"
msgstr "skriv uddata til FIL"
-#: ly2dvi.py:356
-msgid "find pfa fonts used in FILE"
-msgstr ""
-
-#: ly2dvi.py:358
+#: ly2dvi.py:357
msgid "generate PostScript output"
msgstr "lav PostScript-uddata"
-#: ly2dvi.py:359
+#: ly2dvi.py:358
msgid "KEY=VAL"
msgstr "NØGLE=VÆRDI"
-#: ly2dvi.py:359
+#: ly2dvi.py:358
msgid "change global setting KEY to VAL"
msgstr "ændr global indstilling NØGLE til VÆRDI"
# Førklaring til --verbose (borde være længre)
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:359 main.cc:118 mup2ly.py:1120 update-lily.py:255
msgid "verbose"
msgstr "udførlig uddata"
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:360 main.cc:105 main.cc:117 mup2ly.py:1121 update-lily.py:256
msgid "print version number"
msgstr "vis versionsnummer"
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:361 main.cc:107 main.cc:119 mup2ly.py:1122 update-lily.py:258
msgid "show warranty and copyright"
msgstr "vis garanti og copyright"
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:383 ly2dvi.py:578 ly2dvi.py:603
#, c-format
msgid "Running %s..."
msgstr "Kør %s..."
-#: ly2dvi.py:397
+#: ly2dvi.py:396
#, c-format
msgid "Analyzing %s..."
msgstr "Analyserer %s..."
-#: ly2dvi.py:453
+#: ly2dvi.py:452
#, c-format
msgid "no lilypond output found for %s"
msgstr "ingen lilyponduddata fundet for %s"
-#: ly2dvi.py:495
+#: ly2dvi.py:494
#, c-format
msgid "invalid value: %s"
msgstr "ugyldigt værdi: %s"
-#: ly2dvi.py:638
-#, fuzzy, c-format
-msgid "not a PostScript file: `%s'"
-msgstr "kan ikke åbne fil: \"%s\""
-
-#: ly2dvi.py:656
-#, c-format
-msgid "getopt says: `%s'"
-msgstr ""
-
# hær er det spørg om skrivning til en fil
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:781 scores.cc:44
#, c-format
msgid "dependencies output to `%s'..."
msgstr "afhængigheder udskrevet til \"%s\"..."
# hær er det spørg om skrivning til en fil (første parametern er t.ex
# DVI, LATEX, MIDI, TEX)
-#: ly2dvi.py:834
+#: ly2dvi.py:791
#, c-format
msgid "%s output to `%s'..."
msgstr "%s udskrevet til \"%s\"..."
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:793
#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
#, c-format
msgid "can't find file: `%s'"
msgstr "kan ikke finde fil: \"%s\""
-#: ly2dvi.py:847
+#: ly2dvi.py:804
msgid "no files specified on command line."
msgstr "ingen filer angivne på kommandolinjen."
msgid "define macro NAME [optional expansion EXP]"
msgstr "definér makro NAVN [valfri makroudvidelse EXP]"
-#: main.cc:115 mup2ly.py:1118
+#: main.cc:114 mup2ly.py:1118
msgid "write output to FILE"
msgstr "skriv uddata til FIL"
msgid "Fetch and rebuild from latest source package"
msgstr "Hent og byg om fra seneste kildekodepakke"
-#: update-lily.py:224
+#: update-lily.py:223
#, c-format
msgid "Cleaning `%s'..."
msgstr "Renser \"%s\"..."
-#: update-lily.py:244
+#: update-lily.py:243
#, c-format
msgid "unpack and build in DIR [%s]"
msgstr "udpak og byg i DIR [%s]"
-#: update-lily.py:245
+#: update-lily.py:244
msgid "execute COMMAND, subtitute:"
msgstr "kør COMMAND, erstat:"
-#: update-lily.py:246
+#: update-lily.py:245
msgid "%b: build root"
msgstr "%b: rod for opbygning"
-#: update-lily.py:247
+#: update-lily.py:246
#, c-format
msgid "%n: package name"
msgstr "%n: pakkenavn"
-#: update-lily.py:248
+#: update-lily.py:247
msgid "%r: release directory"
msgstr "%r: katalog for programudgivelse"
-#: update-lily.py:249
+#: update-lily.py:248
msgid "%t: tarball"
msgstr "%t: tarball"
-#: update-lily.py:250
+#: update-lily.py:249
msgid "%v: package version"
msgstr "%v: pakkeversion"
-#: update-lily.py:253
+#: update-lily.py:252
#, c-format
msgid "keep all output, and name the directory %s"
msgstr "behold al uddata, og døb kataloget til %s"
-#: update-lily.py:254
+#: update-lily.py:253
msgid "upon failure notify EMAIL[,EMAIL]"
msgstr "ved fejl, underret EMAIL[,EMAIL]"
-#: update-lily.py:255
+#: update-lily.py:254
msgid "remove previous build"
msgstr "fjern foregående bygning"
-#: update-lily.py:258
+#: update-lily.py:257
#, c-format
msgid "fetch and build URL [%s]"
msgstr "hent og byg URL [%s]"
-#: update-lily.py:366
+#: update-lily.py:365
#, c-format
msgid "Listing `%s'..."
msgstr "Lister \"%s\"..."
-#: update-lily.py:427
+#: update-lily.py:426
#, c-format
msgid "latest is: %s"
msgstr "seneste er: %s"
-#: update-lily.py:428
+#: update-lily.py:427
#, c-format
msgid "relax, %s is up to date"
msgstr "slap af, %s er seneste version"
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
#, c-format
msgid "Fetching `%s'..."
msgstr "Henter \"%s\"..."
-#: update-lily.py:458
+#: update-lily.py:457
#, c-format
msgid "Building `%s'..."
msgstr "Bygger \"%s\"..."
msgstr "matcher ikke: \"%s\""
#: all-font-metrics.cc:102
-msgid ""
-" Rebuild all .afm files, and remove all .pk and .tfm files. Rerun with -V "
-"to show font paths."
-msgstr ""
-" Genopbyg alle .afm-filer, og fjern alle .pk- og .tfm-filer. Kør igen med -V "
-"for at vise skrifttypesøgestier."
+msgid " Rebuild all .afm files, and remove all .pk and .tfm files. Rerun with -V to show font paths."
+msgstr " Genopbyg alle .afm-filer, og fjern alle .pk- og .tfm-filer. Kør igen med -V for at vise skrifttypesøgestier."
#: all-font-metrics.cc:167
#, c-format
msgid "Can't switch translators, I'm there already"
msgstr "Kan ikke skifte oversætter, jeg er her allerede"
+#: beam.cc:86
+msgid "beam has less than two stems"
+msgstr "bjælke har mindre end to nodehalse"
+
+#: beam.cc:637
+msgid "weird beam vertical offset"
+msgstr "underlig lodret afstand for bjælke"
+
#: beam-engraver.cc:91 beam-engraver.cc:124
msgid "can't find start of beam"
msgstr "kan ikke finde start på bjælke"
msgid "beam was started here"
msgstr "bjælken startede her"
-#: beam.cc:86
-msgid "beam has less than two stems"
-msgstr "bjælke har mindre end to nodehalse"
-
-#: beam.cc:637
-msgid "weird beam vertical offset"
-msgstr "underligt lodret afstand for bjælke"
-
#: break-align-item.cc:136
#, c-format
msgid "unknown spacing pair `%s', `%s'"
msgid "none of these in my family"
msgstr "ingen af disse i min familie"
-#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:192
-msgid "unterminated chord tremolo"
-msgstr "ikke-afsluttet akkordtremolo"
-
-#: chord-tremolo-iterator.cc:48
-msgid "no one to print a tremolos"
-msgstr "der er ingen som kan skrive en tremolo"
-
-#: chord.cc:376
+#: chord.cc:369
#, c-format
msgid "invalid subtraction: not part of chord: %s"
msgstr "ugyldig subtraktion: ikke del af akkord: %s"
# "pitch" hær skal alltså være en ton i et akkord
-#: chord.cc:405
+#: chord.cc:398
#, c-format
msgid "invalid inversion pitch: not part of chord: %s"
msgstr "ugyldig tone for inversion: ikke del af en akkord: %s"
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:192
+msgid "unterminated chord tremolo"
+msgstr "ikke-afsluttet akkordtremolo"
+
+#: chord-tremolo-iterator.cc:48
+msgid "no one to print a tremolos"
+msgstr "der er ingen som kan skrive en tremolo"
+
#: collision.cc:127
msgid "Too many clashing notecolumns. Ignoring them."
-msgstr "For mange sammenhængende nodekolonner. Ignorerer dem."
+msgstr "For mange overlappende nodekolonner. Ignorerer dem."
#: dimensions.cc:13
msgid "NaN"
#: extender-engraver.cc:109
msgid "Nothing to connect extender to on the left. Ignoring extender request."
-msgstr ""
-"Der er ingenting at forbinde udvideren mod til venstre. Ignorerer ønsket om "
-"udvider"
+msgstr "Der er ingenting at forbinde udvideren mod til venstre. Ignorerer ønsket om udvider"
#: folded-repeat-iterator.cc:78
msgid "no one to print a repeat brace"
-msgstr "det er ingen som kan skrive et gentagelsestegn"
+msgstr "der er ingen som kan skrive et gentagelsestegn"
#: font-interface.cc:237
msgid "couldn't find any font satisfying "
#: grace-iterator.cc:43
msgid "no Grace context available"
-msgstr "ingen prydomgivelse tilgængelig"
+msgstr "ingen forslagsnodeomgivelse (Grace) tilgængelig"
#: grace-position-engraver.cc:96
msgid "Unattached grace notes. Attaching to last musical column."
-msgstr "Ikke-fæstede prydsnoder. Fæster ved sidste musikkolonne."
+msgstr "Ikke-fæstede forslagsnoder. Fæster ved sidste musikkolonne."
#: hairpin.cc:93
msgid "decrescendo too small"
#: hyphen-engraver.cc:102
msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request."
-msgstr ""
-"Det er ingenting at forbinde bindestregen mod til venstre. Ignorerer "
-"bindestregsforespørgslen."
+msgstr "Der er ingenting at forbinde bindestregen med til venstre. Ignorerer bindestregsforespørgslen."
#: key-engraver.cc:99
msgid "Conflicting key signatures found."
#: lily-guile.cc:141
#, c-format
msgid "(load path: `%s')"
-msgstr "(indlæsningssøgesti: \"%s\""
+msgstr "(indlæsningssøgesti: \"%s\")"
#: line-of-score.cc:96
#, c-format
#: lyric-phrasing-engraver.cc:284
msgid "lyrics found without any matching notehead"
-msgstr "tekst fundet uden noget matchende nodehoved"
+msgstr "tekst fundet uden noget tilhørende nodehoved"
#: lyric-phrasing-engraver.cc:289
msgid "Huh? Melismatic note found to have associated lyrics."
msgstr "Øh? Melismatisk node har tilhørende tekst."
-#. print example usage: lilypond -e "(set-lily-option 'help 0)" ?
-#: main.cc:105
+#: main.cc:104
msgid "EXPR"
msgstr "UDTR"
-#: main.cc:105
+#: main.cc:104
msgid "evalute EXPR as Scheme after .scm init is read"
msgstr "evaluér UDTR som Scheme efter .scm-init er læst"
#. another bug in option parser: --output=foe is taken as an abbreviation
#. for --output-format
-#: main.cc:108
+#: main.cc:107
msgid "EXT"
msgstr "FMT"
-#: main.cc:108
+#: main.cc:107
msgid "use output format EXT (scm, ps, tex or as)"
msgstr "brug uddataformat FMT (scm, ps, tex eller as)"
-#: main.cc:110
+#: main.cc:109
msgid "FIELD"
msgstr "FELT"
-#: main.cc:110
+#: main.cc:109
msgid "write header field to BASENAME.FIELD"
-msgstr "skriv rubrikfælt til BASNAVN.FELT"
+msgstr "skriv rubrikfelt til BASENAVN.FELT"
-#: main.cc:111
+#: main.cc:110
msgid "add DIR to search path"
msgstr "tilføj KATALOG til søgestien"
-#: main.cc:112
+#: main.cc:111
msgid "use FILE as init file"
msgstr "brug FIL som init-fil"
-#: main.cc:116
+#: main.cc:115
msgid "prepend DIR to dependencies"
msgstr "tilføj KATALOG efter afhængigheder"
-#: main.cc:117
+#: main.cc:116
msgid "inhibit file output naming and exporting"
msgstr "hindr navngivning af filuddata og eksportering"
#.
#. No version number or newline here. It confuses help2man
#.
-#: main.cc:137
+#: main.cc:136
#, c-format
msgid "Usage: %s [OPTION]... FILE..."
msgstr "Brug: %s [FLAG]... FIL..."
-#: main.cc:139
+#: main.cc:138
msgid "Typeset music and or play MIDI from FILE"
msgstr "Typesæt musik og/eller afspil MIDI fra FIL"
-#: main.cc:143
+#: main.cc:142
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"
"højniveaubeskrivning af musikken i en fil. LilyPond er en del af\n"
"GNU-projektet.\n"
-#: main.cc:153
+#: main.cc:152
msgid "This binary was compiled with the following options:"
msgstr "Dette program blev oversat med følgende flag:"
-#: main.cc:56 main.cc:180
+#: main.cc:56 main.cc:179
#, c-format
msgid ""
"This is free software. It is covered by the GNU General Public License,\n"
"og du må ændre og/eller distribuere kopier af det under visse\n"
"betingelser. Kør \"%s --warranty\" for mere information.\n"
-#: main.cc:63 main.cc:187 main.cc:199
+#: main.cc:63 main.cc:186 main.cc:198
#, c-format
msgid "Copyright (c) %s by"
msgstr "Copyright © %s af"
-#: main.cc:197
+#: main.cc:196
msgid "GNU LilyPond -- The music typesetter"
msgstr "GNU Lilypond -- Musiktypesætteren"
-#: main.cc:72 main.cc:205
+#: main.cc:72 main.cc:204
msgid ""
" This program is free software; you can redistribute it and/or\n"
"modify it under the terms of the GNU General Public License version 2\n"
msgid "silly pitch"
msgstr "tåbelig tone"
-#: music-output-def.cc:115
+#: musical-request.cc:28
#, c-format
-msgid "can't find `%s' context"
-msgstr "kan ikke finde omgivelsen \"%s\""
+msgid "Transposition by %s makes accidental larger than two"
+msgstr "Transponering med %s medfører løst fortegn større end to"
#: music.cc:232
msgid "ly_get_mus_property (): Not a Music"
msgid "ly_music_name (): Not a music expression"
msgstr "ly_music_name (): Ikke et musikudtryk"
-#: musical-request.cc:28
+#: music-output-def.cc:115
#, c-format
-msgid "Transposition by %s makes accidental larger than two"
-msgstr "Transponering med %s gør accicental større end to"
+msgid "can't find `%s' context"
+msgstr "kan ikke finde omgivelsen \"%s\""
#: my-lily-lexer.cc:139
#, c-format
#: my-lily-parser.cc:57
msgid "Braces don't match"
-msgstr "Krølleparenteser passer ikke"
+msgstr "Klammer passer ikke"
#: output-property-music-iterator.cc:20 request-chord-iterator.cc:76
#, c-format
#: percent-repeat-engraver.cc:117
msgid "Don't know how to handle a percent repeat of this length."
-msgstr "Véd ikke hvordan en procentgentagelse af denne længde skal håndteres."
+msgstr "Véd ikke hvordan en procenttegnsgentagelse (percent) af denne længde skal håndteres."
#: percent-repeat-iterator.cc:53
msgid "no one to print a percent"
-msgstr "der er ingen som kan skrive en procent"
+msgstr "der er ingen som kan skrive et procent-tegn"
#: performance.cc:51
msgid "Track ... "
msgstr "kan ikke finde start på fraseringsbue"
#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
#, c-format
msgid "can't find start of piano pedal: `%s'"
msgstr "kan ikke finde start på pianopedal: \"%s\""
msgid "too many notes for rest collision"
msgstr "for mange noder for pausesammenstød"
-#: scm-option.cc:63
+#: scm-option.cc:59
msgid "Scheme options:"
msgstr "Scheme-flag:"
-#: score-engraver.cc:188
-#, c-format
-msgid "unbound spanner `%s'"
-msgstr "ubunden bro \"%s\""
-
#: score.cc:78
msgid "Interpreting music..."
msgstr "Tolker musik..."
msgid "elapsed time: %.2f seconds"
msgstr "tidsforbrug: %.2f sekunder"
+#: score-engraver.cc:188
+#, c-format
+msgid "unbound spanner `%s'"
+msgstr "ubunden bro \"%s\""
+
#: scores.cc:106
msgid "Score contains errors; will not process it"
msgstr "Partitur indholder fejl; vil ikke behandle det"
msgid "Separation_item: I've been drinking too much"
msgstr "Separation_item: Jeg har drukket for meget"
+#: slur.cc:48
+msgid "Putting slur over rest. Ignoring."
+msgstr "Sætter legatobue over pause. Ignorerer."
+
+#: slur.cc:383
+msgid "Slur over rest?"
+msgstr "Legatobue over pause?"
+
#: slur-engraver.cc:127
msgid "unterminated slur"
-msgstr "uafsluttet bue"
+msgstr "uafsluttet legatobue"
#. How to shut up this warning, when Voice_devnull_engraver has
#. eaten start request?
#: slur-engraver.cc:144
msgid "can't find start of slur"
-msgstr "kan ikke finde start på bue"
+msgstr "kan ikke finde start på legatobue"
-#: slur.cc:48
-msgid "Putting slur over rest. Ignoring."
-msgstr "Sætter bue over pause. Ignorerer."
-
-#: slur.cc:383
-msgid "Slur over rest?"
-msgstr "Bue over pause?"
+#: stem.cc:116
+msgid "Weird stem size; check for narrow beams"
+msgstr "Mærkelig nodehalsstørrelse; tjek for smalle bjælker"
#: stem-engraver.cc:115
#, c-format
msgid "Adding note head to incompatible stem (type = %d)"
-msgstr "Tilføjer nodehoved til inkompatibel bue (type = %d)"
+msgstr "Tilføjer nodehoved til inkompatibel nodehals (type = %d)"
-#: stem.cc:116
-msgid "Weird stem size; check for narrow beams"
-msgstr "Mærkelig nodehalsstørrelse; tjek for smalle bjælker"
+#: text-spanner.cc:121
+msgid "Text_spanner too small"
+msgstr "Tekst_bro for lille"
#: text-spanner-engraver.cc:94
msgid "can't find start of text spanner"
msgid "unterminated text spanner"
msgstr "uafsluttet tekstbro"
-#: text-spanner.cc:121
-msgid "Text_spanner too small"
-msgstr "Tekst_bro for lille"
+#: tfm.cc:77
+#, c-format
+msgid "can't find ascii character: %d"
+msgstr "kan ikke finde ASCII-tegn: %d"
#: tfm-reader.cc:106
#, c-format
#: tfm-reader.cc:140
#, c-format
msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
-msgstr ""
-"%s: TFM-fil har %u parametre, hvilket er mere end de %u jeg kan håndtere"
-
-#: tfm.cc:77
-#, c-format
-msgid "can't find ascii character: %d"
-msgstr "kan ikke finde ASCII-tegn: %d"
+msgstr "%s: TFM-fil har %u parametre, hvilket er mere end de %u jeg kan håndtere"
#. How to shut up this warning, when no notes appeared because
#. they were suicided by Thread_devnull_engraver?
#: tie-engraver.cc:220 tie-performer.cc:173
msgid "No ties were created!"
-msgstr "Ingen buer blev lavet!"
+msgstr "Ingen bindebuer blev lavet!"
#: tie-engraver.cc:240
msgid "lonely tie"
-msgstr "ensom bue"
+msgstr "ensom bindebue"
#: time-scaled-music-iterator.cc:25
msgid "no one to print a tuplet start bracket"
-msgstr "der findes ingen som kan skrive en startparentes for tuppel"
+msgstr "der findes ingen som kan skrive en startklamme for tuppel"
#: timing-translator.cc:38
#, c-format
#: translator-group.cc:414
#, c-format
-msgid ""
-"Can't find property type-check for `%s'. Perhaps you made a typing error? "
-"Doing assignment anyway."
-msgstr ""
-"Kan ikke finde egenskabstypekontrol for \"%s\". Måske har du lavet en "
-"tastefejl? Laver tildeling alligevel."
+msgid "Can't find property type-check for `%s'. Perhaps you made a typing error? Doing assignment anyway."
+msgstr "Kan ikke finde egenskabstypekontrol for \"%s\". Måske har du lavet en tastefejl? Laver tildeling alligevel."
#: translator-group.cc:428
#, c-format
msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
-msgstr ""
-"Typekontrol for \"%s\" mislykkedes; værdi \"%s\" skal have typen \"%s\""
+msgstr "Typekontrol for \"%s\" mislykkedes; værdi \"%s\" skal have typen \"%s\""
#. programming_error?
#: translator-group.cc:447
#: volta-engraver.cc:87
msgid "No volta spanner to end"
-msgstr "Ingen reprisebro til slut"
+msgstr "Ingen volte-bro at afslutte"
#: volta-engraver.cc:104
msgid "Already have a volta spanner. Stopping that one prematurely."
-msgstr "Har allerede en reprisebro. Stopper denne for tidligt."
+msgstr "Har allerede en volte-bro. Stopper denne for tidligt."
#: volta-engraver.cc:108
msgid "Also have a stopped spanner. Giving up."
#: parser.yy:697
msgid "More alternatives than repeats. Junking excess alternatives."
-msgstr "Flere alternativer end repriser. Stryger tiloversblevne alternativer."
+msgstr "Flere alternativer end gentagelser. Stryger tiloversblevne alternativer."
#: parser.yy:761
msgid "Second argument must be a symbol"
msgid "First argument must be a procedure taking 1 argument"
msgstr "Første argument skal være en procedure som tager 1 argument"
-#: parser.yy:1264
+#: parser.yy:1263
msgid "Expecting string as script definition"
msgstr "Forventer streng som skriptdefinition"
-#: parser.yy:1274
+#: parser.yy:1273
msgid "Can't specify direction for this request"
msgstr "Kan ikke angive retning for denne forespørgsel"
-#: parser.yy:1399
+#: parser.yy:1398
msgid "Expecting musical-pitch value"
msgstr "Forventer nodeværdi"
-#: parser.yy:1410
+#: parser.yy:1409
msgid "Must have duration object"
msgstr "Skal have tidslængdeobjekt"
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
msgid "Have to be in Lyric mode for lyrics"
msgstr "Skal være i teksttilstand (Lyric mode) for tekst"
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
#, c-format
msgid "not a duration: %d"
msgstr "ikke en tidslængde: %d"
-#: parser.yy:1648
+#: parser.yy:1645
msgid "Have to be in Note mode for notes"
msgstr "Skal være i nodetilstand (Note mode) for noder"
msgid "Have to be in Chord mode for chords"
msgstr "Skal være i akkordtilstand (Chord mode) for akkord"
-#: parser.yy:1911
+#: parser.yy:1910
msgid "need integer number arg"
msgstr "behøver heltalsargument"
msgstr "TONE[:MOL]"
#: main.cc:97
-#, fuzzy
-msgid "set key: ACC +sharps/-flats; :1 minor"
-msgstr "sæt tonart: TONE +forhøjelser/-sænkninger; :1 mol"
+msgid "set key: ACC +sharps/-flads; :1 minor"
+msgstr "sæt toneart: TONE +forhøjelser/-sænkninger; :1 mol"
#: main.cc:98
msgid "don't output tuplets, double dots or rests, smallest is 32"
msgid ""
msgstr ""
"Project-Id-Version: Lilypond 1.2.8\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
"PO-Revision-Date: 1999-09-18 01:30+0200\n"
"Last-Translator: Erwin Dieterich <bamse@gmx.de>\n"
"Language-Team: LANGUAGE <de@li.org>\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: ENCODING\n"
-#: ly2dvi.py:109
+#: ly2dvi.py:106
msgid "Generate .dvi with LaTeX for LilyPond"
msgstr ""
#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
msgid "warning: "
msgstr "Warnung: "
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
#: warn.cc:17
msgid "error: "
msgstr "Fehler: "
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
#, fuzzy
msgid "Exiting ... "
msgstr "Linie ... "
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
#, fuzzy, c-format
msgid "Usage: %s [OPTION]... FILE"
msgstr "Verwendung: %s [OPTIONEN] ... [DATEI]"
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
msgid "Options:"
msgstr "Optionen:"
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
#, fuzzy, c-format
msgid "Report bugs to %s"
msgstr "Melde Fehler an"
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
#, fuzzy, c-format
msgid "Invoking `%s'"
msgstr "Uralt-Bitte: `%s'"
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
#, c-format
msgid "command exited with value %d"
msgstr ""
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
msgid "(ignored)"
msgstr ""
-#: ly2dvi.py:321
+#: ly2dvi.py:322
#, fuzzy, c-format
msgid "Cleaning %s..."
msgstr "Uralt-Bitte: `%s'"
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
#, fuzzy, c-format
msgid "no such setting: %s"
msgstr "Kein solches instrument: `%s'"
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
msgid "write Makefile dependencies for every input file"
msgstr "Schreibe Makefile-Abhängigkeiten für jede Eingabedatei"
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
msgid "this help"
msgstr "Diese Hilfe"
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
msgid "DIR"
msgstr "DIR"
-#: ly2dvi.py:351
+#: ly2dvi.py:352
#, fuzzy
msgid "add DIR to LilyPond's search path"
msgstr "Hänge DIR an den Suchpfad an"
-#: ly2dvi.py:352
+#: ly2dvi.py:353
#, c-format
msgid "keep all output, and name the directory %s.dir"
msgstr ""
-#: ly2dvi.py:353
+#: ly2dvi.py:354
msgid "don't run LilyPond"
msgstr ""
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
#, fuzzy
msgid "produce MIDI output only"
msgstr "Nur Midiausgabe"
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
msgid "FILE"
msgstr "DATEI"
-#: ly2dvi.py:355
+#: ly2dvi.py:356
#, fuzzy
msgid "write ouput to FILE"
msgstr "Schreibe die Ausgabe in BASENAME[-x].Erweiterung"
-#: ly2dvi.py:356
+#: ly2dvi.py:357
msgid "find pfa fonts used in FILE"
msgstr ""
-#: ly2dvi.py:358
+#: ly2dvi.py:359
#, fuzzy
msgid "generate PostScript output"
msgstr "Degenerierte Zwangsbedingungen"
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "KEY=VAL"
msgstr ""
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "change global setting KEY to VAL"
msgstr ""
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
#, fuzzy
msgid "verbose"
msgstr "Sei geschwätzig"
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
msgid "print version number"
msgstr "Zeige die Versionsnummer"
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
msgid "show warranty and copyright"
msgstr "Zeige Garantie und Urheberrechte"
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
#, fuzzy, c-format
msgid "Running %s..."
msgstr "Uralt-Bitte: `%s'"
-#: ly2dvi.py:397
+#: ly2dvi.py:398
#, fuzzy, c-format
msgid "Analyzing %s..."
msgstr "Uralt-Bitte: `%s'"
-#: ly2dvi.py:453
+#: ly2dvi.py:454
#, c-format
msgid "no lilypond output found for %s"
msgstr ""
-#: ly2dvi.py:495
+#: ly2dvi.py:496
#, fuzzy, c-format
msgid "invalid value: %s"
msgstr "Ungültiger Buchstabe `%c'"
-#: ly2dvi.py:638
+#: ly2dvi.py:639
#, fuzzy, c-format
msgid "not a PostScript file: `%s'"
msgstr "Kann die Datei %s nicht öffnen"
-#: ly2dvi.py:656
+#: ly2dvi.py:657
#, c-format
msgid "getopt says: `%s'"
msgstr ""
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
#, fuzzy, c-format
msgid "dependencies output to `%s'..."
msgstr "Ausgabe auf Papier auf %s..."
-#: ly2dvi.py:834
+#: ly2dvi.py:835
#, fuzzy, c-format
msgid "%s output to `%s'..."
msgstr "MIDI-Ausgabe nach %s..."
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
#, c-format
msgid "can't find file: `%s'"
msgstr "Kann Datei `%s' nicht finden"
-#: ly2dvi.py:847
+#: ly2dvi.py:848
msgid "no files specified on command line."
msgstr ""
msgid "Fetch and rebuild from latest source package"
msgstr ""
-#: update-lily.py:224
+#: update-lily.py:223
#, fuzzy, c-format
msgid "Cleaning `%s'..."
msgstr "Uralt-Bitte: `%s'"
-#: update-lily.py:244
+#: update-lily.py:243
#, c-format
msgid "unpack and build in DIR [%s]"
msgstr ""
-#: update-lily.py:245
+#: update-lily.py:244
msgid "execute COMMAND, subtitute:"
msgstr ""
-#: update-lily.py:246
+#: update-lily.py:245
msgid "%b: build root"
msgstr ""
-#: update-lily.py:247
+#: update-lily.py:246
#, c-format
msgid "%n: package name"
msgstr ""
-#: update-lily.py:248
+#: update-lily.py:247
#, fuzzy
msgid "%r: release directory"
msgstr "Kann ein `%s' weder finden noch erzeugen"
-#: update-lily.py:249
+#: update-lily.py:248
msgid "%t: tarball"
msgstr ""
-#: update-lily.py:250
+#: update-lily.py:249
msgid "%v: package version"
msgstr ""
-#: update-lily.py:253
+#: update-lily.py:252
#, c-format
msgid "keep all output, and name the directory %s"
msgstr ""
-#: update-lily.py:254
+#: update-lily.py:253
msgid "upon failure notify EMAIL[,EMAIL]"
msgstr ""
-#: update-lily.py:255
+#: update-lily.py:254
msgid "remove previous build"
msgstr ""
-#: update-lily.py:258
+#: update-lily.py:257
#, c-format
msgid "fetch and build URL [%s]"
msgstr ""
-#: update-lily.py:366
+#: update-lily.py:365
#, fuzzy, c-format
msgid "Listing `%s'..."
msgstr "Linie ... "
-#: update-lily.py:427
+#: update-lily.py:426
#, c-format
msgid "latest is: %s"
msgstr ""
-#: update-lily.py:428
+#: update-lily.py:427
#, c-format
msgid "relax, %s is up to date"
msgstr ""
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
#, fuzzy, c-format
msgid "Fetching `%s'..."
msgstr "Uralt-Bitte: `%s'"
-#: update-lily.py:458
+#: update-lily.py:457
#, fuzzy, c-format
msgid "Building `%s'..."
msgstr "Uralt-Bitte: `%s'"
msgstr "Kann nicht beide Enden von %s finden"
#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
#, fuzzy, c-format
msgid "can't find start of piano pedal: `%s'"
msgstr "Kann keine kürzeste Note bei %s finden"
msgid "First argument must be a procedure taking 1 argument"
msgstr ""
-#: parser.yy:1264
+#: parser.yy:1263
msgid "Expecting string as script definition"
msgstr ""
-#: parser.yy:1274
+#: parser.yy:1273
msgid "Can't specify direction for this request"
msgstr ""
-#: parser.yy:1399
+#: parser.yy:1398
msgid "Expecting musical-pitch value"
msgstr ""
-#: parser.yy:1410
+#: parser.yy:1409
#, fuzzy
msgid "Must have duration object"
msgstr "Setze kürzeste Dauer (?)"
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
#, fuzzy
msgid "Have to be in Lyric mode for lyrics"
msgstr "Um Text zu verarbeiten, muß ich im Text-(Lyrics)-Modus sein"
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
#, c-format
msgid "not a duration: %d"
msgstr "Keine Dauer: %d"
-#: parser.yy:1648
+#: parser.yy:1645
#, fuzzy
msgid "Have to be in Note mode for notes"
msgstr "Für Noten muß ich im Noten-(Note)-Modus sein"
msgid ""
msgstr ""
"Project-Id-Version: lilypond 1.3.18\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
"PO-Revision-Date: 1999-12-28 00:32 +1\n"
"Last-Translator: Laurent Martelli <laurent@linuxfan.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
-#: ly2dvi.py:109
+#: ly2dvi.py:106
msgid "Generate .dvi with LaTeX for LilyPond"
msgstr ""
#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
msgid "warning: "
msgstr "avertissement: "
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
#: warn.cc:17
msgid "error: "
msgstr "erreur: "
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
#, fuzzy
msgid "Exiting ... "
msgstr "Ligne ..."
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
#, fuzzy, c-format
msgid "Usage: %s [OPTION]... FILE"
msgstr "Usage: %s [OPTION... [FICHIER]"
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
msgid "Options:"
msgstr "Options: "
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
#, fuzzy, c-format
msgid "Report bugs to %s"
msgstr "Rapporter les bugs "
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
#, c-format
msgid "Invoking `%s'"
msgstr ""
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
#, c-format
msgid "command exited with value %d"
msgstr ""
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
msgid "(ignored)"
msgstr ""
-#: ly2dvi.py:321
+#: ly2dvi.py:322
#, fuzzy, c-format
msgid "Cleaning %s..."
msgstr "Cration des voix..."
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
#, fuzzy, c-format
msgid "no such setting: %s"
msgstr "Pas d'instrument tel: `%s'"
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
msgid "write Makefile dependencies for every input file"
msgstr ""
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
msgid "this help"
msgstr "cette aide"
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
msgid "DIR"
msgstr "REP"
-#: ly2dvi.py:351
+#: ly2dvi.py:352
#, fuzzy
msgid "add DIR to LilyPond's search path"
msgstr "ajoute REP au chemin de recherche"
-#: ly2dvi.py:352
+#: ly2dvi.py:353
#, c-format
msgid "keep all output, and name the directory %s.dir"
msgstr ""
-#: ly2dvi.py:353
+#: ly2dvi.py:354
msgid "don't run LilyPond"
msgstr ""
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
#, fuzzy
msgid "produce MIDI output only"
msgstr "produit seulement la sortie MIDI"
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
msgid "FILE"
msgstr "FICHIER"
-#: ly2dvi.py:355
+#: ly2dvi.py:356
msgid "write ouput to FILE"
msgstr ""
-#: ly2dvi.py:356
+#: ly2dvi.py:357
msgid "find pfa fonts used in FILE"
msgstr ""
-#: ly2dvi.py:358
+#: ly2dvi.py:359
msgid "generate PostScript output"
msgstr ""
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "KEY=VAL"
msgstr ""
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "change global setting KEY to VAL"
msgstr ""
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
msgid "verbose"
msgstr ""
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
msgid "print version number"
msgstr "afficher le numro de version"
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
msgid "show warranty and copyright"
msgstr ""
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
#, fuzzy, c-format
msgid "Running %s..."
msgstr "Cration des voix..."
-#: ly2dvi.py:397
+#: ly2dvi.py:398
#, fuzzy, c-format
msgid "Analyzing %s..."
msgstr "Cration des voix..."
-#: ly2dvi.py:453
+#: ly2dvi.py:454
#, c-format
msgid "no lilypond output found for %s"
msgstr ""
-#: ly2dvi.py:495
+#: ly2dvi.py:496
#, fuzzy, c-format
msgid "invalid value: %s"
msgstr "caractres illgal: `%c'"
-#: ly2dvi.py:638
+#: ly2dvi.py:639
#, fuzzy, c-format
msgid "not a PostScript file: `%s'"
msgstr "impossible d'ouvrir le fichier: `%s'"
-#: ly2dvi.py:656
+#: ly2dvi.py:657
#, c-format
msgid "getopt says: `%s'"
msgstr ""
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
#, fuzzy, c-format
msgid "dependencies output to `%s'..."
msgstr "Sortie papier vers %s..."
-#: ly2dvi.py:834
+#: ly2dvi.py:835
#, fuzzy, c-format
msgid "%s output to `%s'..."
msgstr "Sortie de Lily vers %s..."
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
#, c-format
msgid "can't find file: `%s'"
msgstr "ne peut pas trouver le fichier: `%s'"
-#: ly2dvi.py:847
+#: ly2dvi.py:848
msgid "no files specified on command line."
msgstr ""
msgid "Fetch and rebuild from latest source package"
msgstr ""
-#: update-lily.py:224
+#: update-lily.py:223
#, fuzzy, c-format
msgid "Cleaning `%s'..."
msgstr "Cration des voix..."
-#: update-lily.py:244
+#: update-lily.py:243
#, c-format
msgid "unpack and build in DIR [%s]"
msgstr ""
-#: update-lily.py:245
+#: update-lily.py:244
msgid "execute COMMAND, subtitute:"
msgstr ""
-#: update-lily.py:246
+#: update-lily.py:245
msgid "%b: build root"
msgstr ""
-#: update-lily.py:247
+#: update-lily.py:246
#, c-format
msgid "%n: package name"
msgstr ""
-#: update-lily.py:248
+#: update-lily.py:247
#, fuzzy
msgid "%r: release directory"
msgstr "ne peut pas trouver ou crer `%s'"
-#: update-lily.py:249
+#: update-lily.py:248
msgid "%t: tarball"
msgstr ""
-#: update-lily.py:250
+#: update-lily.py:249
msgid "%v: package version"
msgstr ""
-#: update-lily.py:253
+#: update-lily.py:252
#, c-format
msgid "keep all output, and name the directory %s"
msgstr ""
-#: update-lily.py:254
+#: update-lily.py:253
msgid "upon failure notify EMAIL[,EMAIL]"
msgstr ""
-#: update-lily.py:255
+#: update-lily.py:254
msgid "remove previous build"
msgstr ""
-#: update-lily.py:258
+#: update-lily.py:257
#, c-format
msgid "fetch and build URL [%s]"
msgstr ""
-#: update-lily.py:366
+#: update-lily.py:365
#, fuzzy, c-format
msgid "Listing `%s'..."
msgstr "Ligne ..."
-#: update-lily.py:427
+#: update-lily.py:426
#, c-format
msgid "latest is: %s"
msgstr ""
-#: update-lily.py:428
+#: update-lily.py:427
#, c-format
msgid "relax, %s is up to date"
msgstr ""
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
#, fuzzy, c-format
msgid "Fetching `%s'..."
msgstr "Cration des voix..."
-#: update-lily.py:458
+#: update-lily.py:457
#, fuzzy, c-format
msgid "Building `%s'..."
msgstr "Cration des voix..."
msgstr "impossible de trouver le caractres numro %d"
#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
#, fuzzy, c-format
msgid "can't find start of piano pedal: `%s'"
msgstr "ne peut pas trouver le fichier: `%s'"
msgid "First argument must be a procedure taking 1 argument"
msgstr ""
-#: parser.yy:1264
+#: parser.yy:1263
msgid "Expecting string as script definition"
msgstr ""
-#: parser.yy:1274
+#: parser.yy:1273
msgid "Can't specify direction for this request"
msgstr ""
-#: parser.yy:1399
+#: parser.yy:1398
msgid "Expecting musical-pitch value"
msgstr ""
-#: parser.yy:1410
+#: parser.yy:1409
#, fuzzy
msgid "Must have duration object"
msgstr "Positionne la plus petite dure (?)"
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
#, fuzzy
msgid "Have to be in Lyric mode for lyrics"
msgstr "il fayt tre en mode Parole pour les paroles"
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
#, c-format
msgid "not a duration: %d"
msgstr "pas une dure: %d"
-#: parser.yy:1648
+#: parser.yy:1645
#, fuzzy
msgid "Have to be in Note mode for notes"
msgstr "il faut tre en mode Note pour les notes"
#, fuzzy
msgid ""
msgstr ""
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Date: 1998-05-30 00:17:12+0200\n"
"From: <jantien@xs4all.nl>\n"
"out --add-comments --keyword=_ --keyword=_f\n"
"Files: bow.cc int.cc\n"
-#: ly2dvi.py:109
+#: ly2dvi.py:106
msgid "Generate .dvi with LaTeX for LilyPond"
msgstr ""
#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
msgid "warning: "
msgstr "attenzione: "
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
#: warn.cc:17
msgid "error: "
msgstr "errore: "
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
msgid "Exiting ... "
msgstr ""
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
#, fuzzy, c-format
msgid "Usage: %s [OPTION]... FILE"
msgstr "Uso: %s [OPZIONE... [FILE]"
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
msgid "Options:"
msgstr "Opzioni: "
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
#, c-format
msgid "Report bugs to %s"
msgstr ""
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
#, c-format
msgid "Invoking `%s'"
msgstr ""
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
#, c-format
msgid "command exited with value %d"
msgstr ""
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
msgid "(ignored)"
msgstr ""
-#: ly2dvi.py:321
+#: ly2dvi.py:322
#, fuzzy, c-format
msgid "Cleaning %s..."
msgstr "Genero le voci..."
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
#, fuzzy, c-format
msgid "no such setting: %s"
msgstr "% strumento:"
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
#, fuzzy
msgid "write Makefile dependencies for every input file"
msgstr ""
" -d, --dependencies scrive le dependenze del Makefile per ogni file di "
"input\n"
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
msgid "this help"
msgstr ""
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
msgid "DIR"
msgstr ""
-#: ly2dvi.py:351
+#: ly2dvi.py:352
#, fuzzy
msgid "add DIR to LilyPond's search path"
msgstr " -I, --include=DIR aggiunge DIR ai path di ricerca\n"
-#: ly2dvi.py:352
+#: ly2dvi.py:353
#, c-format
msgid "keep all output, and name the directory %s.dir"
msgstr ""
-#: ly2dvi.py:353
+#: ly2dvi.py:354
msgid "don't run LilyPond"
msgstr ""
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
#, fuzzy
msgid "produce MIDI output only"
msgstr " -M, --no-paper produce solo output midi\n"
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
msgid "FILE"
msgstr ""
-#: ly2dvi.py:355
+#: ly2dvi.py:356
msgid "write ouput to FILE"
msgstr ""
-#: ly2dvi.py:356
+#: ly2dvi.py:357
msgid "find pfa fonts used in FILE"
msgstr ""
-#: ly2dvi.py:358
+#: ly2dvi.py:359
#, fuzzy
msgid "generate PostScript output"
msgstr "vincoli degenerati"
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "KEY=VAL"
msgstr ""
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "change global setting KEY to VAL"
msgstr ""
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
msgid "verbose"
msgstr ""
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
msgid "print version number"
msgstr ""
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
#, fuzzy
msgid "show warranty and copyright"
msgstr " -w, --warranty mostra la garanzia e il copyright\n"
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
#, fuzzy, c-format
msgid "Running %s..."
msgstr "Genero le voci..."
-#: ly2dvi.py:397
+#: ly2dvi.py:398
#, fuzzy, c-format
msgid "Analyzing %s..."
msgstr "Genero le voci..."
-#: ly2dvi.py:453
+#: ly2dvi.py:454
#, c-format
msgid "no lilypond output found for %s"
msgstr ""
-#: ly2dvi.py:495
+#: ly2dvi.py:496
#, fuzzy, c-format
msgid "invalid value: %s"
msgstr "carattere illegale: `%c'"
-#: ly2dvi.py:638
+#: ly2dvi.py:639
#, fuzzy, c-format
msgid "not a PostScript file: `%s'"
msgstr "non posso aprire il file: `%s'"
-#: ly2dvi.py:656
+#: ly2dvi.py:657
#, c-format
msgid "getopt says: `%s'"
msgstr ""
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
#, fuzzy, c-format
msgid "dependencies output to `%s'..."
msgstr "L'output stampato è inviato a %s..."
-#: ly2dvi.py:834
+#: ly2dvi.py:835
#, fuzzy, c-format
msgid "%s output to `%s'..."
msgstr "L'output MIDI è inviato a %s..."
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
#, c-format
msgid "can't find file: `%s'"
msgstr "non trovo il file: `%s'"
-#: ly2dvi.py:847
+#: ly2dvi.py:848
msgid "no files specified on command line."
msgstr ""
msgid "Fetch and rebuild from latest source package"
msgstr ""
-#: update-lily.py:224
+#: update-lily.py:223
#, fuzzy, c-format
msgid "Cleaning `%s'..."
msgstr "Genero le voci..."
-#: update-lily.py:244
+#: update-lily.py:243
#, c-format
msgid "unpack and build in DIR [%s]"
msgstr ""
-#: update-lily.py:245
+#: update-lily.py:244
msgid "execute COMMAND, subtitute:"
msgstr ""
-#: update-lily.py:246
+#: update-lily.py:245
msgid "%b: build root"
msgstr ""
-#: update-lily.py:247
+#: update-lily.py:246
#, c-format
msgid "%n: package name"
msgstr ""
-#: update-lily.py:248
+#: update-lily.py:247
#, fuzzy
msgid "%r: release directory"
msgstr "non trovo e non posso creare `%s'"
-#: update-lily.py:249
+#: update-lily.py:248
msgid "%t: tarball"
msgstr ""
-#: update-lily.py:250
+#: update-lily.py:249
msgid "%v: package version"
msgstr ""
-#: update-lily.py:253
+#: update-lily.py:252
#, c-format
msgid "keep all output, and name the directory %s"
msgstr ""
-#: update-lily.py:254
+#: update-lily.py:253
msgid "upon failure notify EMAIL[,EMAIL]"
msgstr ""
-#: update-lily.py:255
+#: update-lily.py:254
msgid "remove previous build"
msgstr ""
-#: update-lily.py:258
+#: update-lily.py:257
#, c-format
msgid "fetch and build URL [%s]"
msgstr ""
-#: update-lily.py:366
+#: update-lily.py:365
#, fuzzy, c-format
msgid "Listing `%s'..."
msgstr "Genero le voci..."
-#: update-lily.py:427
+#: update-lily.py:426
#, c-format
msgid "latest is: %s"
msgstr ""
-#: update-lily.py:428
+#: update-lily.py:427
#, c-format
msgid "relax, %s is up to date"
msgstr ""
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
#, fuzzy, c-format
msgid "Fetching `%s'..."
msgstr "Genero le voci..."
-#: update-lily.py:458
+#: update-lily.py:457
#, fuzzy, c-format
msgid "Building `%s'..."
msgstr "Genero le voci..."
msgstr "non trovo le estremità di %s"
#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
#, fuzzy, c-format
msgid "can't find start of piano pedal: `%s'"
msgstr "non risco a trovare una ruling note a %s"
msgid "First argument must be a procedure taking 1 argument"
msgstr ""
-#: parser.yy:1264
+#: parser.yy:1263
msgid "Expecting string as script definition"
msgstr ""
-#: parser.yy:1274
+#: parser.yy:1273
msgid "Can't specify direction for this request"
msgstr ""
-#: parser.yy:1399
+#: parser.yy:1398
msgid "Expecting musical-pitch value"
msgstr ""
-#: parser.yy:1410
+#: parser.yy:1409
#, fuzzy
msgid "Must have duration object"
msgstr "indicazione durata priva di senso"
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
#, fuzzy
msgid "Have to be in Lyric mode for lyrics"
msgstr "bisogna essere in Lyric mode per i testi"
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
#, c-format
msgid "not a duration: %d"
msgstr "non è una durata: %d"
-#: parser.yy:1648
+#: parser.yy:1645
#, fuzzy
msgid "Have to be in Note mode for notes"
msgstr "bisogna essere in Note mode per le note"
msgid ""
msgstr ""
"Project-Id-Version: lilypond 1.2.17\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
"PO-Revision-Date: 2000-03-29 20:50+0900\n"
"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
"Language-Team: Japanese <ja@li.org>\n"
"Content-Type: text/plain; charset=EUC-JP\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ly2dvi.py:109
+#: ly2dvi.py:106
msgid "Generate .dvi with LaTeX for LilyPond"
msgstr ""
#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
msgid "warning: "
msgstr "·Ù¹ð: "
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
#: warn.cc:17
msgid "error: "
msgstr "¥¨¥é¡¼: "
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
#, fuzzy
msgid "Exiting ... "
msgstr "¹Ô ..."
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
#, fuzzy, c-format
msgid "Usage: %s [OPTION]... FILE"
msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]"
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
msgid "Options:"
msgstr "¥ª¥×¥·¥ç¥ó:"
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
#, c-format
msgid "Report bugs to %s"
msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø"
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
#, fuzzy, c-format
msgid "Invoking `%s'"
msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
#, c-format
msgid "command exited with value %d"
msgstr ""
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
msgid "(ignored)"
msgstr ""
-#: ly2dvi.py:321
+#: ly2dvi.py:322
#, fuzzy, c-format
msgid "Cleaning %s..."
msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
#, fuzzy, c-format
msgid "no such setting: %s"
msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
msgid "write Makefile dependencies for every input file"
msgstr "Á´¤Æ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î Makefile °Í¸´Ø·¸¤ò½ñ¤¹þ¤à"
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
msgid "this help"
msgstr "¤³¤Î¥Ø¥ë¥×"
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
msgid "DIR"
msgstr "DIR"
-#: ly2dvi.py:351
+#: ly2dvi.py:352
#, fuzzy
msgid "add DIR to LilyPond's search path"
msgstr "DIR ¤ò¸¡º÷¥Ñ¥¹¤ËÄɲÃ"
-#: ly2dvi.py:352
+#: ly2dvi.py:353
#, c-format
msgid "keep all output, and name the directory %s.dir"
msgstr ""
-#: ly2dvi.py:353
+#: ly2dvi.py:354
msgid "don't run LilyPond"
msgstr ""
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
msgid "produce MIDI output only"
msgstr "MIDI ½ÐÎϤÎÀ¸À®¤Î¤ß"
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
msgid "FILE"
msgstr "FILE"
-#: ly2dvi.py:355
+#: ly2dvi.py:356
#, fuzzy
msgid "write ouput to FILE"
msgstr "BASENAME[-x].³ÈÄ¥»Ò ¤Ø½ÐÎϤò½ñ¤¹þ¤à"
-#: ly2dvi.py:356
+#: ly2dvi.py:357
msgid "find pfa fonts used in FILE"
msgstr ""
-#: ly2dvi.py:358
+#: ly2dvi.py:359
#, fuzzy
msgid "generate PostScript output"
msgstr "À©¸Â¤ò´ËÏÂ"
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "KEY=VAL"
msgstr ""
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "change global setting KEY to VAL"
msgstr ""
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
#, fuzzy
msgid "verbose"
msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹"
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
msgid "print version number"
msgstr "¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨"
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
msgid "show warranty and copyright"
msgstr "ÊݾڤÈÃøºî¸¢¤Ë¤Ä¤¤¤Æɽ¼¨¤¹¤ë"
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
#, fuzzy, c-format
msgid "Running %s..."
msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-#: ly2dvi.py:397
+#: ly2dvi.py:398
#, fuzzy, c-format
msgid "Analyzing %s..."
msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-#: ly2dvi.py:453
+#: ly2dvi.py:454
#, c-format
msgid "no lilypond output found for %s"
msgstr ""
-#: ly2dvi.py:495
+#: ly2dvi.py:496
#, fuzzy, c-format
msgid "invalid value: %s"
msgstr "̵¸ú¤Êʸ»ú: `%c'"
-#: ly2dvi.py:638
+#: ly2dvi.py:639
#, fuzzy, c-format
msgid "not a PostScript file: `%s'"
msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
-#: ly2dvi.py:656
+#: ly2dvi.py:657
#, c-format
msgid "getopt says: `%s'"
msgstr ""
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
#, fuzzy, c-format
msgid "dependencies output to `%s'..."
msgstr "%s ¤Ø paper ½ÐÎÏ..."
-#: ly2dvi.py:834
+#: ly2dvi.py:835
#, fuzzy, c-format
msgid "%s output to `%s'..."
msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
#, fuzzy, c-format
msgid "can't find file: `%s'"
msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
-#: ly2dvi.py:847
+#: ly2dvi.py:848
msgid "no files specified on command line."
msgstr ""
msgid "Fetch and rebuild from latest source package"
msgstr ""
-#: update-lily.py:224
+#: update-lily.py:223
#, fuzzy, c-format
msgid "Cleaning `%s'..."
msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-#: update-lily.py:244
+#: update-lily.py:243
#, c-format
msgid "unpack and build in DIR [%s]"
msgstr ""
-#: update-lily.py:245
+#: update-lily.py:244
msgid "execute COMMAND, subtitute:"
msgstr ""
-#: update-lily.py:246
+#: update-lily.py:245
msgid "%b: build root"
msgstr ""
-#: update-lily.py:247
+#: update-lily.py:246
#, c-format
msgid "%n: package name"
msgstr ""
-#: update-lily.py:248
+#: update-lily.py:247
#, fuzzy
msgid "%r: release directory"
msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
-#: update-lily.py:249
+#: update-lily.py:248
msgid "%t: tarball"
msgstr ""
-#: update-lily.py:250
+#: update-lily.py:249
msgid "%v: package version"
msgstr ""
-#: update-lily.py:253
+#: update-lily.py:252
#, c-format
msgid "keep all output, and name the directory %s"
msgstr ""
-#: update-lily.py:254
+#: update-lily.py:253
msgid "upon failure notify EMAIL[,EMAIL]"
msgstr ""
-#: update-lily.py:255
+#: update-lily.py:254
msgid "remove previous build"
msgstr ""
-#: update-lily.py:258
+#: update-lily.py:257
#, c-format
msgid "fetch and build URL [%s]"
msgstr ""
-#: update-lily.py:366
+#: update-lily.py:365
#, fuzzy, c-format
msgid "Listing `%s'..."
msgstr "¹Ô ..."
-#: update-lily.py:427
+#: update-lily.py:426
#, c-format
msgid "latest is: %s"
msgstr ""
-#: update-lily.py:428
+#: update-lily.py:427
#, c-format
msgid "relax, %s is up to date"
msgstr ""
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
#, fuzzy, c-format
msgid "Fetching `%s'..."
msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
-#: update-lily.py:458
+#: update-lily.py:457
#, fuzzy, c-format
msgid "Building `%s'..."
msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
#, fuzzy, c-format
msgid "can't find start of piano pedal: `%s'"
msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿Ê¸»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
msgid "First argument must be a procedure taking 1 argument"
msgstr ""
-#: parser.yy:1264
+#: parser.yy:1263
msgid "Expecting string as script definition"
msgstr ""
-#: parser.yy:1274
+#: parser.yy:1273
msgid "Can't specify direction for this request"
msgstr "¤³¤ÎÍ×µá¤ËÂФ¹¤ëÊý¸þ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó"
-#: parser.yy:1399
+#: parser.yy:1398
msgid "Expecting musical-pitch value"
msgstr ""
-#: parser.yy:1410
+#: parser.yy:1409
#, fuzzy
msgid "Must have duration object"
msgstr "²»Ä¹¤òºÇ¾®¤ËÀßÄꤷ¤Þ¤¹"
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
msgid "Have to be in Lyric mode for lyrics"
msgstr "²Î»ì¤Ï Lyric ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
#, c-format
msgid "not a duration: %d"
msgstr "²»Ä¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %d"
-#: parser.yy:1648
+#: parser.yy:1645
msgid "Have to be in Note mode for notes"
msgstr "²»Éä¤Ï Note ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\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"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ly2dvi.py:109
+#: ly2dvi.py:106
msgid "Generate .dvi with LaTeX for LilyPond"
msgstr ""
#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
msgid "warning: "
msgstr ""
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
#: warn.cc:17
msgid "error: "
msgstr ""
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
msgid "Exiting ... "
msgstr ""
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
#, c-format
msgid "Usage: %s [OPTION]... FILE"
msgstr ""
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
msgid "Options:"
msgstr ""
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
#, c-format
msgid "Report bugs to %s"
msgstr ""
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
#, c-format
msgid "Invoking `%s'"
msgstr ""
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
#, c-format
msgid "command exited with value %d"
msgstr ""
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
msgid "(ignored)"
msgstr ""
-#: ly2dvi.py:321
+#: ly2dvi.py:322
#, c-format
msgid "Cleaning %s..."
msgstr ""
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
#, c-format
msgid "no such setting: %s"
msgstr ""
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
msgid "write Makefile dependencies for every input file"
msgstr ""
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
msgid "this help"
msgstr ""
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
msgid "DIR"
msgstr ""
-#: ly2dvi.py:351
+#: ly2dvi.py:352
msgid "add DIR to LilyPond's search path"
msgstr ""
-#: ly2dvi.py:352
+#: ly2dvi.py:353
#, c-format
msgid "keep all output, and name the directory %s.dir"
msgstr ""
-#: ly2dvi.py:353
+#: ly2dvi.py:354
msgid "don't run LilyPond"
msgstr ""
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
msgid "produce MIDI output only"
msgstr ""
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
msgid "FILE"
msgstr ""
-#: ly2dvi.py:355
+#: ly2dvi.py:356
msgid "write ouput to FILE"
msgstr ""
-#: ly2dvi.py:356
+#: ly2dvi.py:357
msgid "find pfa fonts used in FILE"
msgstr ""
-#: ly2dvi.py:358
+#: ly2dvi.py:359
msgid "generate PostScript output"
msgstr ""
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "KEY=VAL"
msgstr ""
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "change global setting KEY to VAL"
msgstr ""
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
msgid "verbose"
msgstr ""
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
msgid "print version number"
msgstr ""
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
msgid "show warranty and copyright"
msgstr ""
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
#, c-format
msgid "Running %s..."
msgstr ""
-#: ly2dvi.py:397
+#: ly2dvi.py:398
#, c-format
msgid "Analyzing %s..."
msgstr ""
-#: ly2dvi.py:453
+#: ly2dvi.py:454
#, c-format
msgid "no lilypond output found for %s"
msgstr ""
-#: ly2dvi.py:495
+#: ly2dvi.py:496
#, c-format
msgid "invalid value: %s"
msgstr ""
-#: ly2dvi.py:638
+#: ly2dvi.py:639
#, c-format
msgid "not a PostScript file: `%s'"
msgstr ""
-#: ly2dvi.py:656
+#: ly2dvi.py:657
#, c-format
msgid "getopt says: `%s'"
msgstr ""
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
#, c-format
msgid "dependencies output to `%s'..."
msgstr ""
-#: ly2dvi.py:834
+#: ly2dvi.py:835
#, c-format
msgid "%s output to `%s'..."
msgstr ""
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
#, c-format
msgid "can't find file: `%s'"
msgstr ""
-#: ly2dvi.py:847
+#: ly2dvi.py:848
msgid "no files specified on command line."
msgstr ""
msgid "Fetch and rebuild from latest source package"
msgstr ""
-#: update-lily.py:224
+#: update-lily.py:223
#, c-format
msgid "Cleaning `%s'..."
msgstr ""
-#: update-lily.py:244
+#: update-lily.py:243
#, c-format
msgid "unpack and build in DIR [%s]"
msgstr ""
-#: update-lily.py:245
+#: update-lily.py:244
msgid "execute COMMAND, subtitute:"
msgstr ""
-#: update-lily.py:246
+#: update-lily.py:245
msgid "%b: build root"
msgstr ""
-#: update-lily.py:247
+#: update-lily.py:246
#, c-format
msgid "%n: package name"
msgstr ""
-#: update-lily.py:248
+#: update-lily.py:247
msgid "%r: release directory"
msgstr ""
-#: update-lily.py:249
+#: update-lily.py:248
msgid "%t: tarball"
msgstr ""
-#: update-lily.py:250
+#: update-lily.py:249
msgid "%v: package version"
msgstr ""
-#: update-lily.py:253
+#: update-lily.py:252
#, c-format
msgid "keep all output, and name the directory %s"
msgstr ""
-#: update-lily.py:254
+#: update-lily.py:253
msgid "upon failure notify EMAIL[,EMAIL]"
msgstr ""
-#: update-lily.py:255
+#: update-lily.py:254
msgid "remove previous build"
msgstr ""
-#: update-lily.py:258
+#: update-lily.py:257
#, c-format
msgid "fetch and build URL [%s]"
msgstr ""
-#: update-lily.py:366
+#: update-lily.py:365
#, c-format
msgid "Listing `%s'..."
msgstr ""
-#: update-lily.py:427
+#: update-lily.py:426
#, c-format
msgid "latest is: %s"
msgstr ""
-#: update-lily.py:428
+#: update-lily.py:427
#, c-format
msgid "relax, %s is up to date"
msgstr ""
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
#, c-format
msgid "Fetching `%s'..."
msgstr ""
-#: update-lily.py:458
+#: update-lily.py:457
#, c-format
msgid "Building `%s'..."
msgstr ""
msgstr ""
#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
#, c-format
msgid "can't find start of piano pedal: `%s'"
msgstr ""
msgid "First argument must be a procedure taking 1 argument"
msgstr ""
-#: parser.yy:1264
+#: parser.yy:1263
msgid "Expecting string as script definition"
msgstr ""
-#: parser.yy:1274
+#: parser.yy:1273
msgid "Can't specify direction for this request"
msgstr ""
-#: parser.yy:1399
+#: parser.yy:1398
msgid "Expecting musical-pitch value"
msgstr ""
-#: parser.yy:1410
+#: parser.yy:1409
msgid "Must have duration object"
msgstr ""
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
msgid "Have to be in Lyric mode for lyrics"
msgstr ""
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
#, c-format
msgid "not a duration: %d"
msgstr ""
-#: parser.yy:1648
+#: parser.yy:1645
msgid "Have to be in Note mode for notes"
msgstr ""
#
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 1.4.8\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
-"PO-Revision-Date: 2001-10-09 19:30+0200\n"
+"Project-Id-Version: lilypond 1.4.6\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
+"PO-Revision-Date: 2001-09-09 17:34+0200\n"
"Last-Translator: Jan Nieuwenhuizen <janneke@gnu.org>\n"
"Language-Team: Dutch <nl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Date: 2001-05-09 23:29+0200\n"
"From: <janneke@gnu.org>\n"
-"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po "
-"--add-comments --keyword=_\n"
+"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po --add-comments --keyword=_\n"
"Files: bow.cc int.cc\n"
-#: ly2dvi.py:109
+#: ly2dvi.py:106
msgid "Generate .dvi with LaTeX for LilyPond"
msgstr "Genereer .dvi met LaTeX voor LilyPond"
#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
msgid "warning: "
msgstr "waarschuwing: "
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
#: warn.cc:17
msgid "error: "
msgstr "fout: "
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
msgid "Exiting ... "
-msgstr "Beëidigen ..."
+msgstr "Beëindigen ..."
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
#, c-format
msgid "Usage: %s [OPTION]... FILE"
-msgstr "Gebruik: %s [OPTIE]... BESTAND"
+msgstr ""
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
msgid "Options:"
msgstr "Opties:"
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
#, c-format
msgid "Report bugs to %s"
msgstr ""
"Meld luizen in het programma aan %s;\n"
"meld onjuistheden in de vertaling aan <janneke@gnu.org> of <hanwen@cs.uu.nl>"
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
#, c-format
msgid "Invoking `%s'"
msgstr "Uitvoeren `%s'"
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
#, c-format
msgid "command exited with value %d"
msgstr "opdracht eindigde met waarde %d"
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
msgid "(ignored)"
msgstr "(genegeerd)"
-#: ly2dvi.py:321
+#: ly2dvi.py:322
#, c-format
msgid "Cleaning %s..."
msgstr "Schoonmaken %s..."
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
#, c-format
msgid "no such setting: %s"
msgstr "geen dergelijke instelling: %s"
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
msgid "write Makefile dependencies for every input file"
msgstr "schrijf Makefile afhankelijkheden voor elk invoerbestand"
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
msgid "this help"
msgstr "deze hulp"
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
msgid "DIR"
msgstr "DIR"
-#: ly2dvi.py:351
+#: ly2dvi.py:352
msgid "add DIR to LilyPond's search path"
msgstr "voeg DIR toe aan LilyPonds zoekpad"
-#: ly2dvi.py:352
+#: ly2dvi.py:353
#, c-format
msgid "keep all output, and name the directory %s.dir"
msgstr "bewaar alle uitvoer, en noem de directory %s.dir"
-#: ly2dvi.py:353
+#: ly2dvi.py:354
msgid "don't run LilyPond"
msgstr "draai LilyPond niet"
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
msgid "produce MIDI output only"
msgstr "produceer alleen MIDI uitvoer"
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
msgid "FILE"
msgstr "BESTAND"
-#: ly2dvi.py:355
+#: ly2dvi.py:356
msgid "write ouput to FILE"
msgstr "schrijf uitvoer naar BESTAND"
-#: ly2dvi.py:356
+#: ly2dvi.py:357
msgid "find pfa fonts used in FILE"
msgstr "zoek pfa fonts gebruikt in BESTAND"
-#: ly2dvi.py:358
+#: ly2dvi.py:359
msgid "generate PostScript output"
msgstr "genereer PostScipt uitvoer"
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "KEY=VAL"
msgstr "SEUTEL=WAARDE"
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "change global setting KEY to VAL"
msgstr "verander globale instelling SLEUTEL in WAARDE"
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
msgid "verbose"
msgstr "breedsprakig"
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
msgid "print version number"
msgstr "druk versienummer af"
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
msgid "show warranty and copyright"
msgstr "toon garantie en auteursrechten"
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
#, c-format
msgid "Running %s..."
msgstr "Uitvoeren %s..."
-#: ly2dvi.py:397
+#: ly2dvi.py:398
#, c-format
msgid "Analyzing %s..."
msgstr "Analyseer %s..."
-#: ly2dvi.py:453
+#: ly2dvi.py:454
#, c-format
msgid "no lilypond output found for %s"
msgstr "geen lilypond uitvoer gevonden voor %s"
-#: ly2dvi.py:495
+#: ly2dvi.py:496
#, c-format
msgid "invalid value: %s"
msgstr "ongeldige waarde: %s"
-#: ly2dvi.py:638
+#: ly2dvi.py:639
#, c-format
msgid "not a PostScript file: `%s'"
msgstr "geen PostScript bestand: `%s'"
-#: ly2dvi.py:656
+#: ly2dvi.py:657
#, c-format
msgid "getopt says: `%s'"
msgstr "getopt zegt: `%s'"
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
#, c-format
msgid "dependencies output to `%s'..."
msgstr "afhankelijkheden uitvoer naar `%s'..."
-#: ly2dvi.py:834
+#: ly2dvi.py:835
#, c-format
msgid "%s output to `%s'..."
msgstr "%s uitvoer naar `%s'..."
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
#, c-format
msgid "can't find file: `%s'"
msgstr "kan bestand niet vinden: `%s'"
-#: ly2dvi.py:847
+#: ly2dvi.py:848
msgid "no files specified on command line."
msgstr "geen bestanden gespecificeerd op de commandoregel."
msgid "Fetch and rebuild from latest source package"
msgstr "Grijp en herbouw van meest recente source pakket"
-#: update-lily.py:224
+#: update-lily.py:223
#, c-format
msgid "Cleaning `%s'..."
msgstr "Schoonmaken van `%s'..."
-#: update-lily.py:244
+#: update-lily.py:243
#, c-format
msgid "unpack and build in DIR [%s]"
msgstr "pak uit en bouw in DIR [%s]"
-#: update-lily.py:245
+#: update-lily.py:244
msgid "execute COMMAND, subtitute:"
msgstr "voer COMMAND uit, substitueer:"
-#: update-lily.py:246
+#: update-lily.py:245
msgid "%b: build root"
msgstr "%b: bouw-root"
-#: update-lily.py:247
+#: update-lily.py:246
#, c-format
msgid "%n: package name"
msgstr "%n: pakketnaam"
-#: update-lily.py:248
+#: update-lily.py:247
msgid "%r: release directory"
msgstr "%r: uitgave directory"
-#: update-lily.py:249
+#: update-lily.py:248
msgid "%t: tarball"
msgstr "%t: tar-bal"
-#: update-lily.py:250
+#: update-lily.py:249
msgid "%v: package version"
msgstr "%v: pakketversie"
-#: update-lily.py:253
+#: update-lily.py:252
#, c-format
msgid "keep all output, and name the directory %s"
msgstr "bewaar alle uitvoer, en noem de directory %s"
-#: update-lily.py:254
+#: update-lily.py:253
msgid "upon failure notify EMAIL[,EMAIL]"
msgstr "bij fout bericht EMAIL[,EMAIL]"
-#: update-lily.py:255
+#: update-lily.py:254
msgid "remove previous build"
msgstr "verwijder vorige bouw"
-#: update-lily.py:258
+#: update-lily.py:257
#, c-format
msgid "fetch and build URL [%s]"
msgstr "grijp en bouw URL [%s]"
-#: update-lily.py:366
+#: update-lily.py:365
#, c-format
msgid "Listing `%s'..."
msgstr "Lijst van `%s'"
-#: update-lily.py:427
+#: update-lily.py:426
#, c-format
msgid "latest is: %s"
msgstr "meest recente is: %s"
-#: update-lily.py:428
+#: update-lily.py:427
#, c-format
msgid "relax, %s is up to date"
msgstr "ontspan, %s is bij de tijd"
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
#, c-format
msgid "Fetching `%s'..."
msgstr "Grijpen van `%s'..."
-#: update-lily.py:458
+#: update-lily.py:457
#, c-format
msgid "Building `%s'..."
msgstr "Bouwen van `%s'..."
msgstr "kan start van fraseringsboog niet vinden"
#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
#, c-format
msgid "can't find start of piano pedal: `%s'"
msgstr "kan start van piano pedaal niet vinden: `%s'"
msgid "First argument must be a procedure taking 1 argument"
msgstr "Eerste argument moet een procedure zijn met 1 argument"
-#: parser.yy:1264
+#: parser.yy:1263
msgid "Expecting string as script definition"
msgstr "Verwacht string voor script definitie"
-#: parser.yy:1274
+#: parser.yy:1273
msgid "Can't specify direction for this request"
msgstr "Kan richting voor dit verzoek niet specificeren"
-#: parser.yy:1399
+#: parser.yy:1398
msgid "Expecting musical-pitch value"
msgstr "Verwacht musical-pitch waarde"
-#: parser.yy:1410
+#: parser.yy:1409
msgid "Must have duration object"
msgstr "Moet duur object hebben"
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
msgid "Have to be in Lyric mode for lyrics"
msgstr "Moet in Lyric modus zijn voor liedteksten"
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
#, c-format
msgid "not a duration: %d"
msgstr "geen duur: %d"
-#: parser.yy:1648
+#: parser.yy:1645
msgid "Have to be in Note mode for notes"
msgstr "Moet in Note modus zijn voor noten"
msgstr "% Automatisch gegenereerd"
#: lilypond-stream.cc:97
+#, c-format
msgid "% from input file: "
msgstr "% van invoerbestand: "
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: August S.Sigov <august@infran.ru>\n"
"Language-Team: Russian <ru@li.org>\n"
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: ENCODING\n"
-#: ly2dvi.py:109
+#: ly2dvi.py:106
msgid "Generate .dvi with LaTeX for LilyPond"
msgstr ""
#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
msgid "warning: "
msgstr "ÐÒÅÄÕÐÒÅÖÄÁÀ: "
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
#: warn.cc:17
msgid "error: "
msgstr "ÏÛÉÂËÁ: "
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
msgid "Exiting ... "
msgstr ""
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
#, fuzzy, c-format
msgid "Usage: %s [OPTION]... FILE"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]"
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
msgid "Options:"
msgstr "ïÐÃÉÉ:"
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
#, c-format
msgid "Report bugs to %s"
msgstr "óÏÏÂÝÁÊÔÅ ÏÂ ÏÛÉÂËÁÈ ÐÏ %s"
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
#, fuzzy, c-format
msgid "Invoking `%s'"
msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
#, c-format
msgid "command exited with value %d"
msgstr ""
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
msgid "(ignored)"
msgstr ""
-#: ly2dvi.py:321
+#: ly2dvi.py:322
#, fuzzy, c-format
msgid "Cleaning %s..."
msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
#, fuzzy, c-format
msgid "no such setting: %s"
msgstr "ÎÅÔ ÔÁËÏÇÏ ÉÎÓÔÒÕÍÅÎÔÁ: `%s'"
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
msgid "write Makefile dependencies for every input file"
msgstr "ÚÁÐÉÓÙ×ÁÔØ ÚÁ×ÉÓÉÍÏÓÔÉ Makefile ÄÌÑ ËÁÖÄÏÇÏ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ"
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
msgid "this help"
msgstr "ÜÔÁ ÓÐÒÁ×ËÁ"
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
msgid "DIR"
msgstr "ëáô"
-#: ly2dvi.py:351
+#: ly2dvi.py:352
#, fuzzy
msgid "add DIR to LilyPond's search path"
msgstr "ÄÏÂÁ×ÉÔØ ëáô Ë ÐÕÔÉ ÐÏÉÓËÁ"
-#: ly2dvi.py:352
+#: ly2dvi.py:353
#, c-format
msgid "keep all output, and name the directory %s.dir"
msgstr ""
-#: ly2dvi.py:353
+#: ly2dvi.py:354
msgid "don't run LilyPond"
msgstr ""
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
msgid "produce MIDI output only"
msgstr "ÐÒÏÉÚ×ÏÄÉÔØ ×Ù×ÏÄ ÔÏÌØËÏ MIDI"
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
msgid "FILE"
msgstr "æáêì"
-#: ly2dvi.py:355
+#: ly2dvi.py:356
#, fuzzy
msgid "write ouput to FILE"
msgstr "ÚÁÐÉÓÙ×ÁÔØ ×Ù×ÏÄ × ïóîï÷á[-x].ÒÁÓÛÉÒÅÎÉÅ"
-#: ly2dvi.py:356
+#: ly2dvi.py:357
msgid "find pfa fonts used in FILE"
msgstr ""
-#: ly2dvi.py:358
+#: ly2dvi.py:359
msgid "generate PostScript output"
msgstr ""
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "KEY=VAL"
msgstr ""
-#: ly2dvi.py:359
+#: ly2dvi.py:360
msgid "change global setting KEY to VAL"
msgstr ""
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
#, fuzzy
msgid "verbose"
msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ"
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
msgid "print version number"
msgstr "×Ù×ÏÄÉÔØ ÎÏÍÅÒ ×ÅÒÓÉÉ"
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
msgid "show warranty and copyright"
msgstr "ÐÏËÁÚÁÔØ ÇÁÒÁÎÔÉÀ É copyright"
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
#, fuzzy, c-format
msgid "Running %s..."
msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
-#: ly2dvi.py:397
+#: ly2dvi.py:398
#, fuzzy, c-format
msgid "Analyzing %s..."
msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
-#: ly2dvi.py:453
+#: ly2dvi.py:454
#, c-format
msgid "no lilypond output found for %s"
msgstr ""
-#: ly2dvi.py:495
+#: ly2dvi.py:496
#, fuzzy, c-format
msgid "invalid value: %s"
msgstr "ÎÅ×ÅÒÎÙÊ ÓÉÍ×ÏÌ: `%c'"
-#: ly2dvi.py:638
+#: ly2dvi.py:639
#, fuzzy, c-format
msgid "not a PostScript file: `%s'"
msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ: `%s'"
-#: ly2dvi.py:656
+#: ly2dvi.py:657
#, c-format
msgid "getopt says: `%s'"
msgstr ""
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
#, fuzzy, c-format
msgid "dependencies output to `%s'..."
msgstr "\"ÂÕÍÁÖÎÙÊ\" ×Ù×ÏÄ × %s..."
-#: ly2dvi.py:834
+#: ly2dvi.py:835
#, fuzzy, c-format
msgid "%s output to `%s'..."
msgstr "×Ù×ÏÄ MIDI × %s..."
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
#, c-format
msgid "can't find file: `%s'"
msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÆÁÊÌ: `%s'"
-#: ly2dvi.py:847
+#: ly2dvi.py:848
msgid "no files specified on command line."
msgstr ""
msgid "Fetch and rebuild from latest source package"
msgstr ""
-#: update-lily.py:224
+#: update-lily.py:223
#, fuzzy, c-format
msgid "Cleaning `%s'..."
msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
-#: update-lily.py:244
+#: update-lily.py:243
#, c-format
msgid "unpack and build in DIR [%s]"
msgstr ""
-#: update-lily.py:245
+#: update-lily.py:244
msgid "execute COMMAND, subtitute:"
msgstr ""
-#: update-lily.py:246
+#: update-lily.py:245
msgid "%b: build root"
msgstr ""
-#: update-lily.py:247
+#: update-lily.py:246
#, c-format
msgid "%n: package name"
msgstr ""
-#: update-lily.py:248
+#: update-lily.py:247
#, fuzzy
msgid "%r: release directory"
msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÉÌÉ ÓÏÚÄÁÔØ: `%s'"
-#: update-lily.py:249
+#: update-lily.py:248
msgid "%t: tarball"
msgstr ""
-#: update-lily.py:250
+#: update-lily.py:249
msgid "%v: package version"
msgstr ""
-#: update-lily.py:253
+#: update-lily.py:252
#, c-format
msgid "keep all output, and name the directory %s"
msgstr ""
-#: update-lily.py:254
+#: update-lily.py:253
msgid "upon failure notify EMAIL[,EMAIL]"
msgstr ""
-#: update-lily.py:255
+#: update-lily.py:254
msgid "remove previous build"
msgstr ""
-#: update-lily.py:258
+#: update-lily.py:257
#, c-format
msgid "fetch and build URL [%s]"
msgstr ""
-#: update-lily.py:366
+#: update-lily.py:365
#, fuzzy, c-format
msgid "Listing `%s'..."
msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
-#: update-lily.py:427
+#: update-lily.py:426
#, c-format
msgid "latest is: %s"
msgstr ""
-#: update-lily.py:428
+#: update-lily.py:427
#, c-format
msgid "relax, %s is up to date"
msgstr ""
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
#, fuzzy, c-format
msgid "Fetching `%s'..."
msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
-#: update-lily.py:458
+#: update-lily.py:457
#, fuzzy, c-format
msgid "Building `%s'..."
msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
msgstr "ÞÔÏ-ÔÏ ÎÅ ÎÁÊÄÕ ÎÁÞÁÌÏ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ"
#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
#, fuzzy, c-format
msgid "can't find start of piano pedal: `%s'"
msgstr "ÞÔÏ-ÔÏ ÎÅ ÎÁÊÄÕ ÎÁÞÁÌÏ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ"
msgid "First argument must be a procedure taking 1 argument"
msgstr ""
-#: parser.yy:1264
+#: parser.yy:1263
msgid "Expecting string as script definition"
msgstr ""
-#: parser.yy:1274
+#: parser.yy:1273
msgid "Can't specify direction for this request"
msgstr "îÅ ÍÏÇÕ ÕËÁÚÁÔØ ÎÁÐÒÁ×ÌÅÎÉÅ ÄÌÑ ÜÔÏÇÏ ÚÁÐÒÏÓÁ"
-#: parser.yy:1399
+#: parser.yy:1398
msgid "Expecting musical-pitch value"
msgstr ""
-#: parser.yy:1410
+#: parser.yy:1409
#, fuzzy
msgid "Must have duration object"
msgstr "ÕÓÔÁÎÏ×ÉÔØ ÎÁÉÍÅÎØÛÕÀ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ"
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
msgid "Have to be in Lyric mode for lyrics"
msgstr "äÏÌÖÅÎ ÂÙÔØ × ìÉÒÉÞÅÓËÏÍ ÒÅÖÉÍÅ ÄÌÑ ÌÉÒÉËÉ"
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
#, c-format
msgid "not a duration: %d"
msgstr "ÎÅ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ: %d"
-#: parser.yy:1648
+#: parser.yy:1645
msgid "Have to be in Note mode for notes"
msgstr "äÏÌÖÅÎ ÂÙÔØ × îÏÔÎÏÍ ÒÅÖÉÍÅ ÄÌÑ ÎÏÔ"
--- /dev/null
+# Swedish translation of lilypond
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Martin Norbäck <d95mback@dtek.chalmers.se>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lilypond 1.4.8\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
+"PO-Revision-Date: 2001-09-29 11:20+0200\n"
+"Last-Translator: Martin Norbäck <d95mback@dtek.chalmers.se>\n"
+"Language-Team: Swedish <sv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ly2dvi.py:106
+msgid "Generate .dvi with LaTeX for LilyPond"
+msgstr "Generera .dvi med LaTeX för LilyPond"
+
+#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
+#: update-lily.py:118 warn.cc:23
+msgid "warning: "
+msgstr "varning: "
+
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
+#: warn.cc:17
+msgid "error: "
+msgstr "fel: "
+
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
+msgid "Exiting ... "
+msgstr "Avslutar... "
+
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
+#, c-format
+msgid "Usage: %s [OPTION]... FILE"
+msgstr "Användning: %s [FLAGGA]... FIL"
+
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
+msgid "Options:"
+msgstr "Flaggor:"
+
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
+#, c-format
+msgid "Report bugs to %s"
+msgstr ""
+"Rapportera programfel till %s\n"
+"Rapportera fel i översättningen till <sv@li.org>"
+
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
+#, c-format
+msgid "Invoking `%s'"
+msgstr "Startar \"%s\""
+
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
+#, c-format
+msgid "command exited with value %d"
+msgstr "kommandot avslutade med värde %d"
+
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
+msgid "(ignored)"
+msgstr "(ignorerat)"
+
+# här är det fråga om rensning av en temporärkatalog
+#: ly2dvi.py:322
+#, c-format
+msgid "Cleaning %s..."
+msgstr "Rensar %s..."
+
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
+#, c-format
+msgid "no such setting: %s"
+msgstr "inställningen finns inte: %s"
+
+#: ly2dvi.py:350 main.cc:113
+msgid "write Makefile dependencies for every input file"
+msgstr "skriv Makefile-beroenden för varje indatafil"
+
+# förklaring av flaggan -h
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
+msgid "this help"
+msgstr "denna hjälp"
+
+#: ly2dvi.py:352 main.cc:111 main.cc:116
+msgid "DIR"
+msgstr "KATALOG"
+
+#: ly2dvi.py:352
+msgid "add DIR to LilyPond's search path"
+msgstr "lägg till KATALOG till LilyPonds sökväg"
+
+# %s är programmets namn
+#: ly2dvi.py:353
+#, c-format
+msgid "keep all output, and name the directory %s.dir"
+msgstr "behåll all utdata, och namnge katalogen %s.dir"
+
+#: ly2dvi.py:354
+msgid "don't run LilyPond"
+msgstr "kör inte LilyPond"
+
+#: ly2dvi.py:355 main.cc:114
+msgid "produce MIDI output only"
+msgstr "skapa enbart MIDI-utdata"
+
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
+msgid "FILE"
+msgstr "FIL"
+
+#: ly2dvi.py:356
+msgid "write ouput to FILE"
+msgstr "skriv utdata till FIL"
+
+#: ly2dvi.py:357
+msgid "find pfa fonts used in FILE"
+msgstr "hitta pfa-typsnitt som används i FIL"
+
+#: ly2dvi.py:359
+msgid "generate PostScript output"
+msgstr "skapa PostScript-utdata"
+
+#: ly2dvi.py:360
+msgid "KEY=VAL"
+msgstr "NYCKEL=VÄRDE"
+
+#: ly2dvi.py:360
+msgid "change global setting KEY to VAL"
+msgstr "ändra global inställning NYCKEL till VÄRDE"
+
+# Förklaring till --verbose (borde vara längre)
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
+msgid "verbose"
+msgstr "utförlig utdata"
+
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
+msgid "print version number"
+msgstr "visa versionsnummer"
+
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
+msgid "show warranty and copyright"
+msgstr "visa garanti och copyright"
+
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
+#, c-format
+msgid "Running %s..."
+msgstr "Kör %s..."
+
+#: ly2dvi.py:398
+#, c-format
+msgid "Analyzing %s..."
+msgstr "Analyserar %s..."
+
+#: ly2dvi.py:454
+#, c-format
+msgid "no lilypond output found for %s"
+msgstr "ingen lilypondutdata funnen för %s"
+
+#: ly2dvi.py:496
+#, c-format
+msgid "invalid value: %s"
+msgstr "ogiltigt värde: %s"
+
+#: ly2dvi.py:639
+#, c-format
+msgid "not a PostScript file: `%s'"
+msgstr "inte en PostScript-fil: \"%s\""
+
+#: ly2dvi.py:657
+#, c-format
+msgid "getopt says: `%s'"
+msgstr "getopt säger: \"%s\""
+
+# här är det fråga om skrivning till en fil
+#: ly2dvi.py:824 scores.cc:44
+#, c-format
+msgid "dependencies output to `%s'..."
+msgstr "beroenden skrivna till \"%s\"..."
+
+# här är det fråga om skrivning till en fil (första parametern är t.ex
+# DVI, LATEX, MIDI, TEX)
+#: ly2dvi.py:835
+#, c-format
+msgid "%s output to `%s'..."
+msgstr "%s skrivet till \"%s\"..."
+
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
+#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
+#, c-format
+msgid "can't find file: `%s'"
+msgstr "kan inte hitta fil: \"%s\""
+
+#: ly2dvi.py:848
+msgid "no files specified on command line."
+msgstr "inga filer angivna på kommandoraden."
+
+#: mup2ly.py:51
+msgid "Convert mup to ly"
+msgstr "Konvertera mup till ly"
+
+# %s är programnamnet (mup2ly)
+#: mup2ly.py:166
+#, c-format
+msgid "%s is far from completed. Not all constructs are recognised."
+msgstr "%s är långt ifrån färdig, och kan inte alla konstruktioner."
+
+#: mup2ly.py:964
+#, c-format
+msgid "no such context: %s"
+msgstr "omgivning finns inte: %s"
+
+#: mup2ly.py:1115
+msgid "debug"
+msgstr "felsökningsutdata"
+
+#: mup2ly.py:1116
+msgid "define macro NAME [optional expansion EXP]"
+msgstr "definiera makro NAME [valfri makroersättning EXP]"
+
+#: main.cc:115 mup2ly.py:1118
+msgid "write output to FILE"
+msgstr "skriv utdata till FIL"
+
+#: mup2ly.py:1119
+msgid "only pre-process"
+msgstr "förbehandla enbart"
+
+#: mup2ly.py:1200
+#, c-format
+msgid "Processing `%s'..."
+msgstr "Behandlar \"%s\"..."
+
+#: mup2ly.py:1219
+#, c-format
+msgid "Writing `%s'..."
+msgstr "Skriver \"%s\"..."
+
+#: update-lily.py:51
+msgid "Fetch and rebuild from latest source package"
+msgstr "Hämta och bygg om från senaste källkodspaketet"
+
+#: update-lily.py:223
+#, c-format
+msgid "Cleaning `%s'..."
+msgstr "Rensar \"%s\"..."
+
+#: update-lily.py:243
+#, c-format
+msgid "unpack and build in DIR [%s]"
+msgstr "packa upp och bygg i DIR [%s]"
+
+#: update-lily.py:244
+msgid "execute COMMAND, subtitute:"
+msgstr "kör COMMAND, ersätt:"
+
+#: update-lily.py:245
+msgid "%b: build root"
+msgstr "%b: byggrot"
+
+#: update-lily.py:246
+#, c-format
+msgid "%n: package name"
+msgstr "%n: paketnamn"
+
+#: update-lily.py:247
+msgid "%r: release directory"
+msgstr "%r: programsläppskatalog"
+
+#: update-lily.py:248
+msgid "%t: tarball"
+msgstr "%t: tarboll"
+
+#: update-lily.py:249
+msgid "%v: package version"
+msgstr "%v: paketversion"
+
+#: update-lily.py:252
+#, c-format
+msgid "keep all output, and name the directory %s"
+msgstr "behåll all utdata, och döp katalogen till %s"
+
+#: update-lily.py:253
+msgid "upon failure notify EMAIL[,EMAIL]"
+msgstr "vid fel, meddela EMAIL[,EMAIL]"
+
+#: update-lily.py:254
+msgid "remove previous build"
+msgstr "ta bort föregående bygge"
+
+#: update-lily.py:257
+#, c-format
+msgid "fetch and build URL [%s]"
+msgstr "hämta och bygg URL [%s]"
+
+#: update-lily.py:365
+#, c-format
+msgid "Listing `%s'..."
+msgstr "Listar \"%s\"..."
+
+#: update-lily.py:426
+#, c-format
+msgid "latest is: %s"
+msgstr "senaste är: %s"
+
+#: update-lily.py:427
+#, c-format
+msgid "relax, %s is up to date"
+msgstr "lugn, %s är senaste versionen"
+
+#: update-lily.py:435 update-lily.py:448
+#, c-format
+msgid "Fetching `%s'..."
+msgstr "Hämtar \"%s\"..."
+
+#: update-lily.py:457
+#, c-format
+msgid "Building `%s'..."
+msgstr "Bygger \"%s\"..."
+
+#: data-file.cc:54
+msgid "EOF in a string"
+msgstr "EOF i en sträng"
+
+#: getopt-long.cc:145
+#, c-format
+msgid "option `%s' requires an argument"
+msgstr "flaggan \"%s\" kräver ett argument"
+
+#: getopt-long.cc:149
+#, c-format
+msgid "option `%s' doesn't allow an argument"
+msgstr "flaggan \"%s\" tillåter inget argument"
+
+#: getopt-long.cc:153
+#, c-format
+msgid "unrecognized option: `%s'"
+msgstr "okänd flagga: \"%s\""
+
+#: getopt-long.cc:160
+#, c-format
+msgid "invalid argument `%s' to option `%s'"
+msgstr "ogiltigt argument \"%s\" till flaggan \"%s\""
+
+#: input.cc:96
+msgid "non fatal error: "
+msgstr "icke-fatalt fel: "
+
+#: input.cc:104 source-file.cc:63 source-file.cc:156
+msgid "position unknown"
+msgstr "okänd position"
+
+# det handlar om mmap här
+#: mapped-file-storage.cc:74
+msgid "can't map file"
+msgstr "kan inte göra \"mmap\" på filen"
+
+#: lilypond-stream.cc:111 mapped-file-storage.cc:87 paper-stream.cc:45
+#: scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
+#, c-format
+msgid "can't open file: `%s'"
+msgstr "kan inte öppna fil: \"%s\""
+
+#: simple-file-storage.cc:56
+#, c-format
+msgid "Huh? Got %d, expected %d characters"
+msgstr "Öh? Fick %d, väntade %d tecken"
+
+#: text-stream.cc:10
+msgid "<stdin>"
+msgstr "<stdin>"
+
+#: warn.cc:36
+msgid "programming error: "
+msgstr "programmeringsfel: "
+
+#: warn.cc:36
+msgid " (Continuing; cross thumbs)"
+msgstr " (Fortsätter, håll tummarna)"
+
+#: afm.cc:59
+#, c-format
+msgid "can't find character number: %d"
+msgstr "kan inte hitta teckennummer: %d"
+
+#: afm.cc:74
+#, c-format
+msgid "can't find character called: `%s'"
+msgstr "kan inte hitta tecken som heter: \"%s\""
+
+#: afm.cc:124
+#, c-format
+msgid "Error parsing AFM file: `%s'"
+msgstr "Fel vid tolkning av AFM-fil: \"%s\""
+
+#: all-font-metrics.cc:95
+#, c-format
+msgid "checksum mismatch for font file: `%s'"
+msgstr "felaktig checksumma för typsnittsfil: \"%s\""
+
+#: all-font-metrics.cc:97
+#, c-format
+msgid "does not match: `%s'"
+msgstr "matchar inte: \"%s\""
+
+#: all-font-metrics.cc:102
+msgid " Rebuild all .afm files, and remove all .pk and .tfm files. Rerun with -V to show font paths."
+msgstr " Bygg om alla .afm-filer, och ta bort alla .pk- och .tfm-filer. Kör igen med -V för att visa typsnittssökvägar."
+
+#: all-font-metrics.cc:167
+#, c-format
+msgid "can't find font: `%s'"
+msgstr "kan inte hitta typsnitt: \"%s\""
+
+#: all-font-metrics.cc:168
+msgid "Loading default font"
+msgstr "Läser in standardtypsnitt"
+
+#: all-font-metrics.cc:183
+#, c-format
+msgid "can't find default font: `%s'"
+msgstr "kan inte hitta standardtypsnitt: \"%s\""
+
+#: all-font-metrics.cc:184 includable-lexer.cc:51 scores.cc:137
+#, c-format
+msgid "(search path: `%s')"
+msgstr "(sökväg: \"%s\")"
+
+#: all-font-metrics.cc:185
+msgid "Giving up"
+msgstr "Ger upp"
+
+#: auto-change-iterator.cc:43 change-iterator.cc:59
+#: part-combine-music-iterator.cc:97
+msgid "Can't switch translators, I'm there already"
+msgstr "Kan inte byta översättare, jag är redan där"
+
+#: beam-engraver.cc:91 beam-engraver.cc:124
+msgid "can't find start of beam"
+msgstr "kan inte hitta start på balk"
+
+#: beam-engraver.cc:158
+msgid "already have a beam"
+msgstr "har redan en balk"
+
+#: beam-engraver.cc:222
+msgid "unterminated beam"
+msgstr "oavslutad balk"
+
+#: beam-engraver.cc:260 chord-tremolo-engraver.cc:195
+msgid "stem must have Rhythmic structure"
+msgstr "skaft måste ha en rytmisk struktur"
+
+#: beam-engraver.cc:272
+msgid "stem doesn't fit in beam"
+msgstr "skaftet passar inte i balken"
+
+#: beam-engraver.cc:273
+msgid "beam was started here"
+msgstr "balken startade här"
+
+#: beam.cc:86
+msgid "beam has less than two stems"
+msgstr "balk har mindre än två skaft"
+
+#: beam.cc:637
+msgid "weird beam vertical offset"
+msgstr "underligt vertikalt avstånd för balk"
+
+#: break-align-item.cc:136
+#, c-format
+msgid "unknown spacing pair `%s', `%s'"
+msgstr "okänt avståndspar \"%s\", \"%s\""
+
+#: change-iterator.cc:21
+#, c-format
+msgid "can't change `%s' to `%s'"
+msgstr "kan inte ändra \"%s\" till \"%s\""
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_ = change_l ()->change_to_id_str_;
+#.
+#: change-iterator.cc:78
+msgid "I'm one myself"
+msgstr "Jag är en själv"
+
+#: change-iterator.cc:81
+msgid "none of these in my family"
+msgstr "ingen av dessa i min familj"
+
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:192
+msgid "unterminated chord tremolo"
+msgstr "icke avslutat ackordtremolo"
+
+#: chord-tremolo-iterator.cc:48
+msgid "no one to print a tremolos"
+msgstr "det finns ingen som kan skriva tremolon"
+
+#: chord.cc:376
+#, c-format
+msgid "invalid subtraction: not part of chord: %s"
+msgstr "ogiltig subtraktion: inte del av ackord: %s"
+
+# "pitch" här ska alltså vara en ton i ett ackord
+#: chord.cc:405
+#, c-format
+msgid "invalid inversion pitch: not part of chord: %s"
+msgstr "ogiltig ton för inversion: inte del av ett ackord: %s"
+
+#: collision.cc:127
+msgid "Too many clashing notecolumns. Ignoring them."
+msgstr "För många krockande notkolumner. Ignorerar dem."
+
+#: dimensions.cc:13
+msgid "NaN"
+msgstr "-"
+
+#: dynamic-engraver.cc:197 span-dynamic-performer.cc:86
+msgid "can't find start of (de)crescendo"
+msgstr "kan inte hitta start på crescendo/diminuendo"
+
+#: dynamic-engraver.cc:222
+msgid "already have a crescendo"
+msgstr "har redan ett crescendo"
+
+#: dynamic-engraver.cc:223
+msgid "already have a decrescendo"
+msgstr "har redan ett diminuendo"
+
+#: dynamic-engraver.cc:317
+msgid "unterminated (de)crescendo"
+msgstr "oavslutat crescendo/diminuendo"
+
+#: extender-engraver.cc:97
+msgid "unterminated extender"
+msgstr "oavslutad utökare"
+
+#: extender-engraver.cc:109
+msgid "Nothing to connect extender to on the left. Ignoring extender request."
+msgstr "Det finns inget att koppla utökaren mot till vänster. Ignorerar utökarförfrågan"
+
+#: folded-repeat-iterator.cc:78
+msgid "no one to print a repeat brace"
+msgstr "det finns ingen som kan skriva ett repristecken"
+
+#: font-interface.cc:237
+msgid "couldn't find any font satisfying "
+msgstr "kunde inte hitta något typsnitt som uppfyller "
+
+#: gourlay-breaking.cc:157
+msgid "No feasible line breaking found"
+msgstr "Ingen lämplig radbrytning hittades"
+
+#: grace-iterator.cc:43
+msgid "no Grace context available"
+msgstr "ingen prydnadsomgivning tillgänglig"
+
+#: grace-position-engraver.cc:96
+msgid "Unattached grace notes. Attaching to last musical column."
+msgstr "Ej fastsatta prydnadsnoter. Fäster vid sista musikkolumnen."
+
+#: hairpin.cc:93
+msgid "decrescendo too small"
+msgstr "diminuendo för litet"
+
+#: hairpin.cc:94
+msgid "crescendo too small"
+msgstr "crescendo för litet"
+
+#: hyphen-engraver.cc:90
+msgid "unterminated hyphen"
+msgstr "oavslutat bindestreck"
+
+#: hyphen-engraver.cc:102
+msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request."
+msgstr "Det finns inget att koppla bindestrecket mot till vänster. Ignorerar bindestrecksförfrågan."
+
+#: key-engraver.cc:99
+msgid "Conflicting key signatures found."
+msgstr "Motsägande tonartssignaturer funna."
+
+#: key-engraver.cc:100
+msgid "This was the other key definition."
+msgstr "Detta var den andra tonartsdefinitionen."
+
+#: key-performer.cc:77
+msgid "FIXME: key change merge"
+msgstr "FIXA: tonartsbytessammanslagning"
+
+#: lily-guile.cc:141
+#, c-format
+msgid "(load path: `%s')"
+msgstr "(inläsningssökväg: \"%s\""
+
+#: line-of-score.cc:96
+#, c-format
+msgid "Element count %d."
+msgstr "Elementantal %d."
+
+#: line-of-score.cc:253 paper-score.cc:77
+#, c-format
+msgid "Element count %d "
+msgstr "Elementantal %d "
+
+#: line-of-score.cc:267
+msgid "Calculating column positions..."
+msgstr "Beräknar kolumnpositioner..."
+
+#: lyric-phrasing-engraver.cc:284
+msgid "lyrics found without any matching notehead"
+msgstr "text hittad utan något matchande nothuvud"
+
+#: lyric-phrasing-engraver.cc:289
+msgid "Huh? Melismatic note found to have associated lyrics."
+msgstr "Öh? Melismatisk not har tillhörande text."
+
+#. print example usage: lilypond -e "(set-lily-option 'help 0)" ?
+#: main.cc:105
+msgid "EXPR"
+msgstr "UTTR"
+
+#: main.cc:105
+msgid "evalute EXPR as Scheme after .scm init is read"
+msgstr "evaluera UTTR som Scheme efter .scm-init har lästs"
+
+#. another bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format
+#: main.cc:108
+msgid "EXT"
+msgstr "FMT"
+
+#: main.cc:108
+msgid "use output format EXT (scm, ps, tex or as)"
+msgstr "använd utdataformat FMT (scm, ps, tex eller as)"
+
+#: main.cc:110
+msgid "FIELD"
+msgstr "FÄLT"
+
+#: main.cc:110
+msgid "write header field to BASENAME.FIELD"
+msgstr "skriv rubrikfält till BASNAMN.FÄLT"
+
+#: main.cc:111
+msgid "add DIR to search path"
+msgstr "lägg till KATALOG till sökvägen"
+
+#: main.cc:112
+msgid "use FILE as init file"
+msgstr "använd FIL som init-fil"
+
+#: main.cc:116
+msgid "prepend DIR to dependencies"
+msgstr "lägg till KATALOG efter beroenden"
+
+#: main.cc:117
+msgid "inhibit file output naming and exporting"
+msgstr "hindra namngivning av filutdata och exportering"
+
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:137
+#, c-format
+msgid "Usage: %s [OPTION]... FILE..."
+msgstr "Användning: %s [FLAGGA]... FIL..."
+
+#: main.cc:139
+msgid "Typeset music and or play MIDI from FILE"
+msgstr "Typsätt musik och/eller spela MIDI från FIL"
+
+#: main.cc:143
+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 är en musiktypsättare. Den producerar vackra noter från en\n"
+"högnivåbeskrivning av musiken i en fil. LilyPond är en del av\n"
+"GNU-projektet.\n"
+
+#: main.cc:153
+msgid "This binary was compiled with the following options:"
+msgstr "Detta program kompilerades med följande alternativ:"
+
+#: main.cc:56 main.cc:180
+#, c-format
+msgid ""
+"This is free software. It is covered by the GNU General Public License,\n"
+"and you are welcome to change it and/or distribute copies of it under\n"
+"certain conditions. Invoke as `%s --warranty' for more information.\n"
+msgstr ""
+"Det här är fri programvara. Den täcks av \"GNU General Public License\",\n"
+"och du får ändra och/eller distribuera kopior av den under vissa\n"
+"villkor. Kör \"%s --warranty\" för mer information.\n"
+
+#: main.cc:63 main.cc:187 main.cc:199
+#, c-format
+msgid "Copyright (c) %s by"
+msgstr "Copyright © %s av"
+
+#: main.cc:197
+msgid "GNU LilyPond -- The music typesetter"
+msgstr "GNU Lilypond -- Musiktypsättaren"
+
+#: main.cc:72 main.cc:205
+msgid ""
+" This program is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License version 2\n"
+"as published by the Free Software Foundation.\n"
+"\n"
+" This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
+"General Public License for more details.\n"
+"\n"
+" You should have received a copy (refer to the file COPYING) of the\n"
+"GNU General Public License along with this program; if not, write to\n"
+"the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n"
+"USA.\n"
+msgstr ""
+"Detta program är fri programvara. Du kan distribuera det och/eller\n"
+"modifiera det under villkoren i GNU General Public License, publicerad\n"
+"av Free Software Foundation, antingen version 2 eller (om du så vill)\n"
+"någon senare version. \n"
+"\n"
+"Detta program distribueras i hopp om att det ska vara användbart, men\n"
+"UTAN NÅGON SOM HELST GARANTI, även utan underförstådd garanti om\n"
+"SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General\n"
+"Public License för ytterligare information.\n"
+"\n"
+"Du bör ha fått en kopia av GNU General Public License tillsammans med\n"
+"detta program. Om inte, skriv till Free Software Foundation, Inc., 59\n"
+"Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+
+#: midi-item.cc:139
+#, c-format
+msgid "no such instrument: `%s'"
+msgstr "instrumentet finns inte: \"%s\""
+
+#: midi-item.cc:228
+msgid "silly duration"
+msgstr "tokig längd"
+
+#: midi-item.cc:241
+msgid "silly pitch"
+msgstr "tokig ton"
+
+#: music-output-def.cc:115
+#, c-format
+msgid "can't find `%s' context"
+msgstr "kan inte hitta omgivningen \"%s\""
+
+#: music.cc:232
+msgid "ly_get_mus_property (): Not a Music"
+msgstr "ly_get_mus_property (): Inte en \"Music\""
+
+#: music.cc:246
+msgid "ly_set_mus_property (): Not a symbol"
+msgstr "ly_set_mus_property (): inte en symbol"
+
+#: music.cc:258
+msgid "ly_set_mus_property (): not of type Music"
+msgstr "ly_set_mus_property (): inte av typen \"Music\""
+
+#: music.cc:272
+msgid "ly_make_music (): Not a string"
+msgstr "ly_make_music (): Inte en sträng"
+
+#: music.cc:292
+msgid "ly_music_name (): Not a music expression"
+msgstr "ly_music_name (): Inte ett musikuttryck"
+
+#: musical-request.cc:28
+#, c-format
+msgid "Transposition by %s makes accidental larger than two"
+msgstr "Transponering med %s gör höjning/sänkning större än två"
+
+#: my-lily-lexer.cc:139
+#, c-format
+msgid "Identifier name is a keyword: `%s'"
+msgstr "Identifierarnamn är ett nyckelord: \"%s\""
+
+#: my-lily-lexer.cc:159
+#, c-format
+msgid "error at EOF: %s"
+msgstr "fel vid filslut: %s"
+
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
+msgid "Parsing..."
+msgstr "Tolkar..."
+
+#: my-lily-parser.cc:57
+msgid "Braces don't match"
+msgstr "Krullparenteser matchar inte"
+
+#: output-property-music-iterator.cc:20 request-chord-iterator.cc:76
+#, c-format
+msgid "Junking request: `%s'"
+msgstr "Slänger förfrågan: \"%s\""
+
+#: paper-def.cc:109
+#, c-format
+msgid "paper output to `%s'..."
+msgstr "pappersutdata till \"%s\"..."
+
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:99
+msgid ", at "
+msgstr ", vid "
+
+#: paper-outputter.cc:232
+#, c-format
+msgid "writing header field `%s' to `%s'..."
+msgstr "skriver rubrikfält \"%s\" till \"%s\"..."
+
+#: paper-score.cc:80
+msgid "Preprocessing elements..."
+msgstr "Förbehandlar element..."
+
+#: paper-score.cc:114
+msgid "Outputting Score, defined at: "
+msgstr "Matar ut partitur, definierade vid: "
+
+#: paper-stream.cc:41
+#, c-format
+msgid "can't create directory: `%s'"
+msgstr "kan inte skapa katalog: \"%s\""
+
+#: paper-stream.cc:55
+msgid "Error syncing file (disk full?)"
+msgstr "Fel vid synkning av fil (disken full?)"
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_ = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:116
+#, c-format
+msgid "I'm one myself: `%s'"
+msgstr "Jag är en själv: \"%s\""
+
+#: part-combine-music-iterator.cc:119
+#, c-format
+msgid "none of these in my family: `%s'"
+msgstr "ingen av dessa i min familj: \"%s\""
+
+#: percent-repeat-engraver.cc:117
+msgid "Don't know how to handle a percent repeat of this length."
+msgstr "Vet inte hur en procentupprepning av denna längd ska hanteras."
+
+#: percent-repeat-iterator.cc:53
+msgid "no one to print a percent"
+msgstr "det finns ingen som kan skriva procent"
+
+#: performance.cc:51
+msgid "Track ... "
+msgstr "Spår... "
+
+#: performance.cc:83
+msgid "Creator: "
+msgstr "Skapare: "
+
+#: performance.cc:113
+#, c-format
+msgid "from musical definition: %s"
+msgstr "från musikdefinition: %s"
+
+#: performance.cc:168
+#, c-format
+msgid "MIDI output to `%s'..."
+msgstr "MIDI-utdata till \"%s\"..."
+
+#: phrasing-slur-engraver.cc:119
+msgid "unterminated phrasing slur"
+msgstr "oavslutad fraseringsbåge"
+
+#: phrasing-slur-engraver.cc:134
+msgid "can't find start of phrasing slur"
+msgstr "kan inte hitta start på fraseringsbåge"
+
+#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
+#: piano-pedal-performer.cc:87
+#, c-format
+msgid "can't find start of piano pedal: `%s'"
+msgstr "kan inte hitta start på pianopedal: \"%s\""
+
+#: pitch.cc:25
+msgid "Pitch arguments out of range"
+msgstr "Tonargument utanför intervallet"
+
+#: property-engraver.cc:121
+#, c-format
+msgid ""
+"`%s' is deprecated. Use\n"
+" \\property %s.%s \\override #'%s = #%s"
+msgstr ""
+"\"%s\" är föråldrat. Använd\n"
+" \\property %s.%s \\override #'%s = #%s"
+
+#: property-engraver.cc:145
+#, c-format
+msgid "Wrong type for property: %s, type: %s, value found: %s, type: %s"
+msgstr "Fel typ för egenskap: %s, typ: %s, värde funnet: %s, typ: %s"
+
+#: rest-collision.cc:194
+msgid "too many colliding rests"
+msgstr "för många krockande pauser"
+
+#: rest-collision.cc:198
+msgid "too many notes for rest collision"
+msgstr "för många toner för pauskrock"
+
+#: scm-option.cc:63
+msgid "Scheme options:"
+msgstr "Scheme-alternativ:"
+
+#: score-engraver.cc:188
+#, c-format
+msgid "unbound spanner `%s'"
+msgstr "obunden bryggare \"%s\""
+
+#: score.cc:78
+msgid "Interpreting music..."
+msgstr "Tolkar musik..."
+
+#: score.cc:92
+msgid "Need music in a score"
+msgstr "Behöver musik i partitur"
+
+#. should we? hampers debugging.
+#: score.cc:105
+msgid "Errors found/*, not processing score*/"
+msgstr "Fel funna/*, behandlar inte partitur*/"
+
+#: score.cc:112
+#, c-format
+msgid "elapsed time: %.2f seconds"
+msgstr "tidsåtgång: %.2f sekunder"
+
+#: scores.cc:106
+msgid "Score contains errors; will not process it"
+msgstr "Partitur innehåller fel; kommer inte behandla det"
+
+#: scores.cc:152
+#, c-format
+msgid "Now processing: `%s'"
+msgstr "Behandlar nu: \"%s\""
+
+#: script-engraver.cc:66
+#, c-format
+msgid "Don't know how to interpret articulation `%s'"
+msgstr "Kan inte tolka artikulering \"%s\""
+
+#. this shouldn't happen, but let's continue anyway.
+#: separation-item.cc:47
+msgid "Separation_item: I've been drinking too much"
+msgstr "Separation_item: Jag har druckit för mycket"
+
+#: slur-engraver.cc:127
+msgid "unterminated slur"
+msgstr "oavslutat båge"
+
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start request?
+#: slur-engraver.cc:144
+msgid "can't find start of slur"
+msgstr "kan inte hitta start på båge"
+
+#: slur.cc:48
+msgid "Putting slur over rest. Ignoring."
+msgstr "Sätter båge över paus. Ignorerar."
+
+#: slur.cc:383
+msgid "Slur over rest?"
+msgstr "Båge över paus?"
+
+#: stem-engraver.cc:115
+#, c-format
+msgid "Adding note head to incompatible stem (type = %d)"
+msgstr "Lägger till nothuvud till inkompatibel båge (typ = %d)"
+
+#: stem.cc:116
+msgid "Weird stem size; check for narrow beams"
+msgstr "Konstig skaftstorlek; kolla efter smala balkar"
+
+#: text-spanner-engraver.cc:94
+msgid "can't find start of text spanner"
+msgstr "kan inte hitta start på textbryggare"
+
+#: text-spanner-engraver.cc:114
+msgid "already have a text spanner"
+msgstr "har redan en textbryggare"
+
+#: text-spanner-engraver.cc:169
+msgid "unterminated text spanner"
+msgstr "oavslutad textbryggare"
+
+#: text-spanner.cc:121
+msgid "Text_spanner too small"
+msgstr "Textbryggare för liten"
+
+#: tfm-reader.cc:106
+#, c-format
+msgid "TFM header of `%s' has only %u word (s)"
+msgstr "TFM-rubrik i \"%s\" har bara %u ord"
+
+#: tfm-reader.cc:140
+#, c-format
+msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
+msgstr "%s: TFM-fil har %u parametrar, vilket är mer än de %u jag kan hantera"
+
+#: tfm.cc:77
+#, c-format
+msgid "can't find ascii character: %d"
+msgstr "kan inte hitta ASCII-tecken: %d"
+
+#. How to shut up this warning, when no notes appeared because
+#. they were suicided by Thread_devnull_engraver?
+#: tie-engraver.cc:220 tie-performer.cc:173
+msgid "No ties were created!"
+msgstr "Inga bågar skapades!"
+
+#: tie-engraver.cc:240
+msgid "lonely tie"
+msgstr "ensam båge"
+
+#: time-scaled-music-iterator.cc:25
+msgid "no one to print a tuplet start bracket"
+msgstr "det finns ingen som kan skriva en starthake för tupel"
+
+#: timing-translator.cc:38
+#, c-format
+msgid "barcheck failed at: %s"
+msgstr "taktkontroll misslyckades vid: %s"
+
+#: translator-ctors.cc:40
+#, c-format
+msgid "unknown translator: `%s'"
+msgstr "okänd översättare: \"%s\""
+
+#: translator-def.cc:99
+msgid "Program has no such type"
+msgstr "Programmet har ingen sådan typ"
+
+#: translator-def.cc:105
+#, c-format
+msgid "Already contains: `%s'"
+msgstr "Innehåller redan: \"%s\""
+
+#: translator-def.cc:106
+#, c-format
+msgid "Not adding translator: `%s'"
+msgstr "Lägger inte till översättare: \"%s\""
+
+#: translator-def.cc:224
+#, c-format
+msgid "can't find: `%s'"
+msgstr "kan inte hitta: \"%s\""
+
+#: translator-group.cc:146
+#, c-format
+msgid "can't find or create `%s' called `%s'"
+msgstr "kan inte hitta eller skapa \"%s\" kallad \"%s\""
+
+#: translator-group.cc:231
+#, c-format
+msgid "can't find or create: `%s'"
+msgstr "kan inte hitta eller skapa: \"%s\""
+
+#: translator-group.cc:414
+#, c-format
+msgid "Can't find property type-check for `%s'. Perhaps you made a typing error? Doing assignment anyway."
+msgstr "Kan inte hitta egenskapstypkontroll för \"%s\". Kanske har du gjort ett typfel? Gör tilldelning i alla fall."
+
+#: translator-group.cc:428
+#, c-format
+msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
+msgstr "Typkontroll för \"%s\" misslyckades. Värde \"%s\" måste ha typen \"%s\""
+
+#. programming_error?
+#: translator-group.cc:447
+msgid "ly-get-trans-property: expecting a Translator_group argument"
+msgstr "ly-get-trans-property: väntade ett Translator_group-argument"
+
+#: volta-engraver.cc:87
+msgid "No volta spanner to end"
+msgstr "Ingen reprisbryggare till slutet"
+
+#: volta-engraver.cc:104
+msgid "Already have a volta spanner. Stopping that one prematurely."
+msgstr "Har redan en reprisbryggare. Stoppar den tidigare."
+
+#: volta-engraver.cc:108
+msgid "Also have a stopped spanner. Giving up."
+msgstr "Har också en stoppad bryggare. Ger upp."
+
+#: parser.yy:121
+#, c-format
+msgid "Expecting %d arguments"
+msgstr "Väntade %d argument"
+
+#: parser.yy:423
+msgid "Identifier should have alphabetic characters only"
+msgstr "Identifierare får bara innehålla alfabetiska tecken"
+
+#: parser.yy:697
+msgid "More alternatives than repeats. Junking excess alternatives."
+msgstr "Fler alternativ än repriser. Slänger överblivna alternativ."
+
+#: parser.yy:761
+msgid "Second argument must be a symbol"
+msgstr "Andra argumentet måste vara en symbol"
+
+#: parser.yy:766
+msgid "First argument must be a procedure taking 1 argument"
+msgstr "Första argumentet måste vara en procedur som tar 1 argument"
+
+#: parser.yy:1263
+msgid "Expecting string as script definition"
+msgstr "Väntade sträng som skriptdefinition"
+
+#: parser.yy:1273
+msgid "Can't specify direction for this request"
+msgstr "Kan inte ange riktning för denna förfrågan"
+
+#: parser.yy:1398
+msgid "Expecting musical-pitch value"
+msgstr "Väntade notvärde"
+
+#: parser.yy:1409
+msgid "Must have duration object"
+msgstr "Måste ha längdobjekt"
+
+#: parser.yy:1418 parser.yy:1426
+msgid "Have to be in Lyric mode for lyrics"
+msgstr "Måste vara i textläge (Lyric mode) för text"
+
+#: parser.yy:1579 parser.yy:1636
+#, c-format
+msgid "not a duration: %d"
+msgstr "inte en längd: %d"
+
+#: parser.yy:1645
+msgid "Have to be in Note mode for notes"
+msgstr "Måste vara i notläge (Note mode) för noter"
+
+#: parser.yy:1731
+msgid "Have to be in Chord mode for chords"
+msgstr "Måste vara i ackordläge (Chord mode) för ackord"
+
+#: parser.yy:1911
+msgid "need integer number arg"
+msgstr "behöver heltalsargument"
+
+#: lexer.ll:174
+msgid "EOF found inside a comment"
+msgstr "filslut hittat inuti en kommentar"
+
+#: lexer.ll:188
+msgid "\\maininput disallowed outside init files"
+msgstr "\\maininput förbjudet utanför init-filer"
+
+#: lexer.ll:212
+#, c-format
+msgid "wrong or undefined identifier: `%s'"
+msgstr "felaktig eller odefinierad identifierare: \"%s\""
+
+#. backup rule
+#: lexer.ll:221
+msgid "Missing end quote"
+msgstr "Saknat slutcitationstecken"
+
+#. backup rule
+#: lexer.ll:243 lexer.ll:247
+msgid "white expected"
+msgstr "väntade tomrum"
+
+#: lexer.ll:256
+msgid "Can't evaluate Scheme in safe mode"
+msgstr "Kan inte evaluera Scheme i säkert läge"
+
+#: lexer.ll:349
+msgid "Brace found at end of lyric. Did you forget a space?"
+msgstr "Krullparentes funnen i slutet på text. Glömde du ett mellanslag?"
+
+#: lexer.ll:457
+#, c-format
+msgid "invalid character: `%c'"
+msgstr "ogiltigt tecken: \"%c\""
+
+#: lexer.ll:538
+#, c-format
+msgid "unknown escaped string: `\\%s'"
+msgstr "okänd \"escaped\" sträng: \"\\%s\""
+
+#: lexer.ll:617
+#, c-format
+msgid "Oldest supported input version: %s"
+msgstr "Äldsta indataversion som stöds: %s"
+
+#: lexer.ll:629
+#, c-format
+msgid "incorrect lilypond version: %s (%s, %s)"
+msgstr "felaktig lilypond-version: %s (%s, %s)"
+
+#: lexer.ll:630
+msgid "Consider converting the input with the convert-ly script"
+msgstr "Fundera på att konvertera indata med skriptet \"convert-ly\""
+
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr "#32 i fjärdedel: %d"
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "LY output to `%s'..."
+msgstr "LY-utdata till \"%s\"..."
+
+#: lilypond-score.cc:119
+#, c-format
+msgid "track %d:"
+msgstr "spår %d:"
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "Behandlar..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "Skapar stämmor..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "spår "
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "Filtrerar INTE tempo..."
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "Kvantifierar INTE kolumner..."
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr "Kvantifierar kolumner..."
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr "Bestämmer kolumner..."
+
+#: lilypond-staff.cc:209
+msgid "% MIDI copyright:"
+msgstr "% MIDI-copyright:"
+
+#: lilypond-staff.cc:210
+msgid "% MIDI instrument:"
+msgstr "% MIDI-instrument:"
+
+#: lilypond-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr "indenteringsnivå för lily: %d"
+
+# Kanske man inte ska översätta, men då får de ta bort _() i stället för
+# att skriva en fånig kommentar
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "% Skapare: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% Automatgenererad"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% från indatafil: "
+
+#: main.cc:94
+msgid "write exact durations, e.g.: a4*385/384"
+msgstr "skriv exakta länger, t.ex: a4*385/384"
+
+#: main.cc:95
+msgid "enable debugging output"
+msgstr "slå på felsökningsutdata"
+
+#: main.cc:97
+msgid "ACC[:MINOR]"
+msgstr "TON[:MOLL]"
+
+#: main.cc:97
+msgid "set key: ACC +sharps/-flats; :1 minor"
+msgstr "sätt tonart: TON +höjningar/-sänkningar; :1 moll"
+
+#: main.cc:98
+msgid "don't output tuplets, double dots or rests, smallest is 32"
+msgstr "mata inte ut tupler, dubbelpunkteringar eller pauser, minsta är 32"
+
+#: main.cc:99
+msgid "set FILE as default output"
+msgstr "sätt FIL som standardutdata"
+
+#: main.cc:100
+msgid "don't output tuplets"
+msgstr "mata inte ut tupler"
+
+#: main.cc:101
+msgid "be quiet"
+msgstr "var tyst"
+
+#: main.cc:102
+msgid "don't output rests or skips"
+msgstr "mata inte ut pauser eller hopp"
+
+#: main.cc:103
+msgid "DUR"
+msgstr "LÄNGD"
+
+#: main.cc:103
+msgid "set smallest duration"
+msgstr "ställ in minsta längd"
+
+#: main.cc:104
+msgid "don't timestamp the output"
+msgstr "tidsstämpla inte utdata"
+
+#: main.cc:106
+msgid "be verbose"
+msgstr "var utförlig"
+
+#: main.cc:108
+msgid "assume no double dotted notes"
+msgstr "anta inga dubbelpunkterade noter"
+
+#: main.cc:115
+#, c-format
+msgid "Usage: %s [OPTION]... [FILE]"
+msgstr "Användning: %s [FLAGGA]... [FIL]"
+
+#: main.cc:117
+msgid "Translate MIDI-file to lilypond"
+msgstr "Översätt MIDI-fil till lilypond"
+
+#: main.cc:131
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr "no_double_dots: %d\n"
+
+#: main.cc:133
+#, c-format
+msgid "no_rests: %d\n"
+msgstr "no_rests: %d\n"
+
+#: main.cc:135
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr "no_quantify_b_s: %d\n"
+
+#: main.cc:137
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr "no_smaller_than: %d (1/%d)\n"
+
+#: main.cc:140
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr "no_tuplets: %d\n"
+
+#: midi-parser.cc:64
+msgid "zero length string encountered"
+msgstr "sträng med längd noll påträffad"
+
+#: midi-score-parser.cc:44
+msgid "MIDI header expected"
+msgstr "väntade MIDI-rubrik"
+
+#: midi-score-parser.cc:49
+msgid "invalid header length"
+msgstr "felaktig rubriklängd"
+
+#: midi-score-parser.cc:52
+msgid "invalid MIDI format"
+msgstr "ogiltigt MIDI-format"
+
+#: midi-score-parser.cc:55
+msgid "invalid number of tracks"
+msgstr "ogiltigt antal spår"
+
+#: midi-score-parser.cc:58
+msgid "can't handle non-metrical time"
+msgstr "kan inte hantera icke-metrisk tid"
+
+#: midi-track-parser.cc:68
+#, c-format
+msgid "Junking note-end event: channel = %d, pitch = %d"
+msgstr "Slänger notslutshändelse: kanal = %d, ton = %d"
+
+#: midi-track-parser.cc:124
+msgid "invalid running status"
+msgstr "ogiltig körstatus"
+
+#: midi-track-parser.cc:328
+msgid "unimplemented MIDI meta-event"
+msgstr "oimplementerad MIDI-metahändelse"
+
+#: midi-track-parser.cc:333
+msgid "invalid MIDI event"
+msgstr "ogiltig MIDI-händelse"
+
+#: midi-track-parser.cc:348
+msgid "MIDI track expected"
+msgstr "väntade MIDI-spår"
+
+#: midi-track-parser.cc:353
+msgid "invalid track length"
+msgstr "ogiltig spårlängd"
(let ((result (assoc glyph
'((":|:" . (":|" . "|:"))
("|" . ("|" . ""))
+ ("||:" . ("||" . "|:"))
("|s" . (nil . "|"))
("|:" . ("|" . "|:"))
("|." . ("|." . nil))
(define (beam-dir-majority count total)
(dir-compare (car count) (cdr count)))
+(beam-dir-majority '(0 . 0) '(0 . 0))
+
(define (beam-dir-mean count total)
(dir-compare (car total) (cdr total)))
(self-alignment-X . 0)
(non-rhythmic . #t)
(word-space . 0.6)
- (end-alignment . 5)
+ (ignore-length-mismatch . #f)
+ (begin-alignment . 4)
+ (end-alignment . 2)
(font-family . roman)
(font-shape . upright)
(meta . ,(grob-description "LyricText" lyric-syllable-interface text-interface font-interface ))
(grob-property-description 'visibility-lambda procedure? "a function that takes the break direction and returns a cons of booleans containing (TRANSPARENT . EMPTY).")
(grob-property-description 'when moment? "when does this column happen?.")
(grob-property-description 'word-space number? "elongate left by this much (FIXME: cumbersome semantics).")
-(grob-property-description 'end-alignment number? "proportion of lyric length to align with note-head for non-centered lyrics.")
+(grob-property-description 'alignment number? "alignment of lyrics on notehead, -1 is LEFT, 0 is CENTRE, 1 is RIGHT .")
+(grob-property-description 'ignore-length-mismatch boolean? "if #t, stanzas with shorter lyrics can be moved away from their respective note-head by the lyric alignment code.")
+(grob-property-description 'begin-alignment number? "proportion of lyric length from beginning to align with note-head for left-aligned lyrics.")
+(grob-property-description 'end-alignment number? "proportion of lyric length from end to align with note-head for right-aligned lyrics.")
(grob-property-description 'x-gap number? "horizontal gap between notehead and tie.")
(grob-property-description 'y-free number? "minimal vertical gap between slur and noteheads or stems.")
(grob-property-description 'y-offset number? "extra vertical offset for ties away from the center line.")
"a single piece of lyrics"
'(
word-space
+ alignment
+ ignore-length-mismatch
+ begin-alignment
end-alignment
))
(define (sign x)
(if (= x 0)
- 1
+ 0
(if (< x 0) -1 1)))
(define (write-me n x)
'(SostenutoPedal SustainPedal UnaCordaPedal)
'(pedalSostenutoStrings pedalSustainStrings pedalUnaCordaStrings
)))
+ (cons
+ 'Percent_repeat_engraver
+ (engraver-description
+ "Percent_repeat_engraver"
+ "Engrave percent repeats."
+ '(PercentRepeat DoublePercentRepeat RepeatSlash)
+ '( )))
(cons
'Pitch_squash_engraver
# the default placement for text in abc is above the staff.
# %%LY now supported.
# \breve and \longa supported.
-
+# M:none doesn't crash lily.
+
# Limitations
#
# Multiple tunes in single file not supported
UNDEF = 255
state = UNDEF
+strict = 0
voice_idx_dict = {}
header = {}
header['footnotes'] = ''
alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
HSPACE=' \t'
midi_specs = ''
+
+
+def error (msg):
+ sys.stderr.write (msg)
+ if strict:
+ sys.exit (1)
+
def check_clef(s):
if not s:
ks = hdr.keys ()
ks.sort ()
for k in ks:
+ hdr[k] = re.sub('"', '\\"', hdr[k])
outf.write ('\t%s = "%s"\n'% (k,hdr[k]))
outf.write ('}')
array2=string.split(array[1],'=')
denominator=array2[0]
perminute=array2[1]
- duration=str(string.atof(denominator)/string.atoi(numerator))
+ duration=str(string.atoi(denominator)/string.atoi(numerator))
midi_specs=string.join(["\\tempo", duration, "=", perminute])
else:
sys.stderr.write("abc2ly: Warning, unable to parse Q specification: %s\n" % a)
key_count = flat_key_seq.index (keytup)
accseq = map (lambda x: (3*x + 3 ) % 7, range (1, key_count + 1))
else:
+ error ("Huh?")
raise "Huh"
key_table = [0] * 7
if re.match ('\([2-9]', str):
dig = str[1]
str = str[2:]
- state.parsing_tuplet = string.atoi (dig[0])
-
+ prev_tuplet_state = state.parsing_tuplet
+ state.parsing_tuplet = string.atoi (dig[0])
+ if prev_tuplet_state:
+ voices_append ("}")
voices_append ("\\times %s {" % tup_lookup[dig])
return str
a = re.sub('[ \t]*$','', a) #strip trailing blanks
if header.has_key('title'):
if a:
- header['title'] = header['title'] + '\\\\\\\\' + a
+ if len(header['title']):
+ header['title'] = header['title'] + '\\\\\\\\' + a
+ else:
+ header['subtitle'] = a
else:
header['title'] = a
if g == 'M': # Meter
set_default_len_from_time_sig (a)
else:
length_specified = 0
- voices_append ('\\time %s' % a)
+ if not a == 'none':
+ voices_append ('\\time %s' % a)
state.next_bar = ''
if g == 'K': # KEY
a = check_clef(a)
if base == 1:
if (multiply_tup[0] / multiply_tup[1]) == 2:
base = '\\breve'
+ if (multiply_tup[0] / multiply_tup[1]) == 3:
+ base = '\\breve'
+ dots = 1
if (multiply_tup[0] / multiply_tup[1]) == 4:
base = '\longa'
return '%s%s' % ( base, '.'* dots)
ln = junk_space (ln)
if ln:
- msg = "%s: %d: Huh? Don't understand\n" % (fn, lineno)
- sys.stderr.write (msg)
+ error ("%s: %d: Huh? Don't understand\n" % (fn, lineno))
left = orig_ln[0:-len (ln)]
sys.stderr.write (left + '\n')
sys.stderr.write (' ' * len (left) + ln + '\n')
-h, --help this help
-o, --output=FILE set output filename to FILE
-v, --version version information
-
+ -s, --strict be strict about succes.
+
This program converts ABC music files (see
http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt) To LilyPond input.
+
+
+Report bugs to bug-gnu-music@gnu.org
+
+Written by Han-Wen Nienhuys <hanwen@cs.uu.nl>, Laura Conrad
+<lconrad@laymusic.org>, Roy Rankin <Roy.Rankin@@alcatel.com.au>
"""
def print_version ():
-(options, files) = getopt.getopt (sys.argv[1:], 'vo:h', ['help','version', 'output='])
+(options, files) = getopt.getopt (sys.argv[1:], 'vo:hs', ['help','version', 'output=', 'strict'])
out_filename = ''
for opt in options:
if o== '--help' or o == '-h':
help ()
sys.exit (0)
- if o == '--version' or o == '-v':
+ elif o == '--version' or o == '-v':
print_version ()
sys.exit(0)
-
- if o == '--output' or o == '-o':
+ elif o == '--strict' or o == '-s':
+ strict = 1
+ elif o == '--output' or o == '-o':
out_filename = a
else:
print o
;;; Helper functions
+
+
(define (af-gulp-file name)
;; urg
(let ((old-load-path %load-path))
(set! %load-path
(cons (string-append
- (or (getenv 'LILYPONDPREFIX) ".") "/mf")
+ (or (getenv "LILYPONDPREFIX") ".") "/mf")
(cons (string-append lily-home "/mf") %load-path)))
(let* ((path (%search-load-path name))
(text (if path
#!@PYTHON@
# info mostly taken from looking at files. See also
-# http://www.cs.uu.nl/~hanwen/lily-devel/etf.html
+# http://lilypond.org/wiki/?EnigmaTransportFormat
# This supports
#
# * articulation
# * grace notes
# * tuplets
-
+#
# todo:
# * slur/stem directions
# * beams (better use autobeam?)
# * more robust: try entertainer.etf (freenote)
# * dynamics
-# * automatic `deletion' of invalid items
+# * empty measures (eg. twopt03.etf from freenote)
#
(n, a) = tuple2
nn = chr ((n+ 2)%7 + ord ('a'))
- if a == -1:
- nn = nn + 'es'
- elif a == -2:
- nn = nn + 'eses'
- elif a == 1:
- nn = nn + 'is'
- elif a == 2:
- nn = nn + 'isis'
-
- return nn
+ return nn + {-2:'eses', -1:'es', 0:'', 1:'is', 2:'isis'}[a]
class Tuplet:
sys.stderr.write ("\nHuh? Tuplet starting at entry %d was too short." % self.start_note)
class Slur:
- def __init__ (self, number):
+ def __init__ (self, number, params):
self.number = number
- self.finale = []
+ self.finale = params
def append_entry (self, finale_e):
self.finale.append (finale_e)
def calculate (self, chords):
- startnote = self.finale[0][5]
- endnote = self.finale[3][2]
+ startnote = self.finale[5]
+ endnote = self.finale[3*6 + 2]
try:
cs = chords[startnote]
ce = chords[endnote]
self.number = number
self.keysignature = None
self.scale = None
-
+ self.force_break = 0
+
+ self.repeats = []
self.finale = []
def __str__ (self):
def set_timesig (self, finale):
(beats, fdur) = finale
(log, dots) = EDU_to_duration (fdur)
- assert dots == 0
+ if dots <> 0:
+ sys.stderr.write ("\nHuh? Beat duration has a dot? (EDU Duration = %d)" % fdur)
self.timesig = (beats, log)
def length (self):
self.keysignature = k
self.scale = find_scale (k)
+ def set_flags (self,flag1, flag2):
+
+ # flag1 isn't all that interesting.
+ if flag2 & 0x8000:
+ self.force_break = 1
+
+ if flag2 & 0x0008:
+ self.repeats.append ('start')
+ if flag2 & 0x0004:
+ self.repeats.append ('stop')
+
+ if flag2 & 0x0002:
+ if flag2 & 0x0004:
+ self.repeats.append ('bracket')
articulation_dict ={
- 11: '\\prall',
- 12: '\\mordent',
- 8: '\\fermata',
- 4: '^',
- 1: '.',
- 3: '>',
- 18: '"arp"' , # arpeggio
+ 94: '^',
+ 109: '\\prall',
+ 84: '\\turn',
+ 62: '\\mordent',
+ 85: '\\fermata',
+ 46: '.',
+# 3: '>',
+# 18: '\arpeggio' ,
}
+class Articulation_def:
+ def __init__ (self, n, a, b):
+ self.finale_glyph = a & 0xff
+ self.number = n
+
+ def dump (self):
+ try:
+ return articulation_dict[self.finale_glyph]
+ except KeyError:
+ sys.stderr.write ("\nUnknown articulation no. %d" % self.finale_glyph)
+ sys.stderr.write ("\nPlease add an entry to articulation_dict in the Python source")
+ return None
+
class Articulation:
def __init__ (self, a,b, finale):
- self.type = finale[0]
+ self.definition = finale[0]
self.notenumber = b
- def calculate (self, chords):
+
+ def calculate (self, chords, defs):
c = chords[self.notenumber]
- try:
- a = articulation_dict[self.type]
- except KeyError:
- sys.stderr.write ("\nUnknown articulation no. %d on note no. %d" % (self.type, self.notenumber))
- sys.stderr.write ("\nPlease add an entry to articulation_dict in the Python source")
- a = '"art"'
-
- c.note_suffix = '-' + a + c.note_suffix
+ adef = defs[self.definition]
+ lystr =adef.dump()
+ if lystr == None:
+ lystr = '"art"'
+ sys.stderr.write ("\nThis happened on note %d" % self.notenumber)
+
+ c.note_suffix = '-' + lystr
class Syllable:
def __init__ (self, a,b , finale):
self.staff = None
self.valid = 1
- def add_finale_entry (self, entry):
- self.finale.append (entry)
def valid (self):
return self.valid
if len (self.finale) < 2:
fs = self.finale[0]
- fs = map (string.atoi, list (fs))
+
self.clef = fs[1]
self.frames = [fs[0]]
else:
- fs = self.finale[0] + self.finale[1]
-
- fs = map (string.atoi, list (fs))
+ fs = self.finale
self.clef = fs[0]
self.flags = fs[1]
self.frames = fs[2:]
self.measures = []
def get_measure (self, no):
- if len (self.measures) <= no:
- self.measures = self.measures + [None]* (1 + no - len (self.measures))
+ fill_list_to (self.measures, no)
if self.measures[no] == None:
m = Measure (no)
self.measures [no] =m
m.staff = self
-
return self.measures[no]
def staffid (self):
return 'staff' + encodeint (self.number - 1)
g = m.global_measure
e = ''
- if g and last_key <> g.keysignature:
- e = e + "\\key %s \\major " % lily_notename (g.keysignature)
- last_key = g.keysignature
- if g and last_time <> g.timesig :
- e = e + "\\time %d/%d " % g.timesig
- last_time = g.timesig
+
+ if g:
+ if last_key <> g.keysignature:
+ e = e + "\\key %s \\major " % lily_notename (g.keysignature)
+ last_key = g.keysignature
+ if last_time <> g.timesig :
+ e = e + "\\time %d/%d " % g.timesig
+ last_time = g.timesig
+
+ if 'start' in g.repeats:
+ e = e + ' \\bar "|:" '
+
+ # we don't attempt voltas since they fail easily.
+ if 0 : # and g.repeat_bar == '|:' or g.repeat_bar == ':|:' or g.bracket:
+ strs = []
+ if g.repeat_bar == '|:' or g.repeat_bar == ':|:' or g.bracket == 'end':
+ strs.append ('#f')
+
+
+ if g.bracket == 'start':
+ strs.append ('"0."')
+
+ str = string.join (map (lambda x: '(volta %s)' % x, strs))
+
+ e = e + ' \\property Score.repeatCommands = #\'(%s) ' % str
+
+ if g.force_break:
+ e = e + ' \\break '
if last_clef <> m.clef :
e = e + '\\clef "%s"' % lily_clef (m.clef)
if g:
gap = rat_add (gap, g.length ())
-
+ if 'stop' in g.repeats:
+ k = k + ' \\bar ":|" '
k = '%sglobal = \\notes { %s }\n\n ' % (self.staffid (), k)
return k
gap = (0,1)
for m in self.measures[1:]:
if not m or not m.valid:
- sys.stderr.write ("Skipping non-existant measure")
+ sys.stderr.write ("Skipping non-existant or invalid measure\n")
continue
fr = None
try:
fr = m.frames[x]
except IndexError:
-
- sys.stderr.write ("Skipping nonexistent frame")
- laystr = laystr + "% FOOBAR ! \n"
- print laystr
+ sys.stderr.write ("Skipping nonexistent frame %d\n" % x)
+ laystr = laystr + "%% non existent frame %d (skipped) \n" % x
if fr:
first_frame = fr
if gap <> (0,1):
+def ziplist (l):
+ if len (l) < 2:
+ return []
+ else:
+ return [(l[0], l[1])] + ziplist (l[2:])
+
class Chord:
- def __init__ (self, finale_entry):
+ def __init__ (self, number, contents):
self.pitches = []
self.frame = None
- self.finale = finale_entry
+ self.finale = contents[:7]
+
+ self.notelist = ziplist (contents[7:])
self.duration = None
self.next = None
self.prev = None
+ self.number = number
self.note_prefix= ''
self.note_suffix = ''
self.chord_suffix = ''
mylen = rat_multiply (mylen, self.tuplet.factor())
return mylen
- def number (self):
- return self.finale[0][0]
def EDU_duration (self):
- return self.finale[0][3]
+ return self.finale[2]
def set_duration (self):
self.duration = EDU_to_duration(self.EDU_duration ())
+
def calculate (self):
self.find_realpitch ()
self.set_duration ()
- flag = self.finale[0][5]
+ flag = self.finale[4]
if Chord.GRACE_MASK & flag:
self.grace = 1
-
+
def find_realpitch (self):
-
- ((no, prev, next, dur, pos, entryflag, extended, follow), notelist) = self.finale
meas = self.measure ()
tiestart = 0
if not meas or not meas.global_measure :
- print 'note %d not in measure' % self.number ()
+ sys.stderr.write ('note %d not in measure\n' % self.number)
elif not meas.global_measure.scale:
- print 'note %d: no scale in this measure.' % self.number ()
+ sys.stderr.write ('note %d: no scale in this measure.' % self.number)
else:
- for p in notelist:
+
+ for p in self.notelist:
(pitch, flag) = p
-
+
+
nib1 = pitch & 0x0f
+
if nib1 > 8:
nib1 = -(nib1 - 8)
rest = pitch / 16
rest = ''
- if not (self.finale[0][5] & Chord.REST_MASK):
+
+ if not (self.finale[4] & Chord.REST_MASK):
rest = 'r'
for p in self.pitches:
s = self.chord_prefix + s + self.chord_suffix
return s
-GFre = re.compile(r"""^\^GF\(([0-9-]+),([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-BCre = re.compile (r"""^\^BC\(([0-9-]+)\) ([0-9-]+) .*$""")
-eEre = re.compile(r"""^\^eE\(([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) \$([0-9A-Fa-f]+) ([0-9-]+) ([0-9-]+)""")
-FRre = re.compile (r"""^\^FR\(([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-MSre = re.compile (r"""^\^MS\(([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-note_re = re.compile (r"""^ +([0-9-]+) \$([A-Fa-f0-9]+)""")
-Sxre = re.compile (r"""^\^Sx\(([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-IMre = re.compile (r"""^\^IM\(([0-9-]+),([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-vere = re.compile(r"""^\^(ve|ch|se)\(([0-9-]+),([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-versere = re.compile(r"""^\^verse\(([0-9]+)\)(.*)\^end""")
-TPre = re.compile(r"""^\^TP\(([0-9]+),([0-9]+)\) *([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
+def fill_list_to (list, no):
+ """
+Add None to LIST until it contains entry number NO.
+ """
+ while len (list) <= no:
+ list.extend ([None] * (no - len(list) + 1))
+ return list
+
+def read_finale_value (str):
+ """
+Pry off one value from STR. The value may be $hex, decimal, or "string".
+Return: (value, rest-of-STR)
+ """
+ while str and str[0] in ' \t\n':
+ str = str[1:]
+
+ if not str:
+ return (None,str)
+
+ if str[0] == '$':
+ str = str [1:]
+
+ hex = ''
+ while str and str[0] in '0123456789ABCDEF':
+ hex = hex + str[0]
+ str = str[1:]
+
+
+ return (string.atol (hex, 16), str)
+ elif str[0] == '"':
+ str = str[1:]
+ s = ''
+ while str and str[0] <> '"':
+ s = s + str[0]
+ str = str[1:]
+
+ return (s,str)
+ elif str[0] in '-0123456789':
+ dec = ''
+ while str and str[0] in '-0123456789':
+ dec = dec + str[0]
+ str = str[1:]
+
+ return (string.atoi (dec), str)
+ else:
+ sys.stderr.write ("Can't convert `%s'\n" % str)
+ return (None, str)
+
+
+
+
+def parse_etf_file (fn, tag_dict):
+
+ """ Read FN, putting ETF info into
+ a giant dictionary. The keys of TAG_DICT indicate which tags
+ to put into the dict.
+ """
+
+ sys.stderr.write ('parsing ... ' )
+ f = open (fn)
+
+ gulp = re.sub ('[\n\r]+', '\n', f.read ())
+ ls = string.split (gulp, '\n^')
+
+ etf_file_dict = {}
+ for k in tag_dict.keys ():
+ etf_file_dict[k] = {}
+
+ last_tag = None
+ last_numbers = None
+
+
+ for l in ls:
+ m = re.match ('^([a-zA-Z0-9&]+)\(([^)]+)\)', l)
+ if m and tag_dict.has_key (m.group (1)):
+ tag = m.group (1)
+
+ indices = tuple (map (string.atoi, string.split (m.group (2), ',')))
+ content = l[m.end (2)+1:]
+
+
+ tdict = etf_file_dict[tag]
+ if not tdict.has_key (indices):
+ tdict[indices] = []
+
+
+ parsed = []
+
+ if tag == 'verse' or tag == 'block':
+ m2 = re.match ('(.*)\^end', content)
+ if m2:
+ parsed = [m2.group (1)]
+ else:
+ while content:
+ (v, content) = read_finale_value (content)
+ if v <> None:
+ parsed.append (v)
+
+ tdict [indices].extend (parsed)
+
+ last_indices = indices
+ last_tag = tag
+
+ continue
+
+# let's not do this: this really confuses when eE happens to be before a ^text.
+# if last_tag and last_indices:
+# etf_file_dict[last_tag][last_indices].append (l)
+
+ sys.stderr.write ('\n')
+ return etf_file_dict
+
+
+
class Etf_file:
def __init__ (self, name):
self.measures = [None]
- self.entries = [None]
self.chords = [None]
self.frames = [None]
self.tuplets = [None]
self.staffs = [None]
- self.slur_dict = {}
+ self.slurs = [None]
self.articulations = [None]
self.syllables = [None]
self.verses = [None]
-
+ self.articulation_defs = [None]
+
## do it
self.parse (name)
def get_global_measure (self, no):
- if len (self.measures) <= no:
- self.measures = self.measures + [None]* (1 + no - len (self.measures))
-
+ fill_list_to (self.measures, no)
if self.measures[no] == None:
self.measures [no] = Global_measure (no)
def get_staff(self,staffno):
- if len (self.staffs) <= staffno:
- self.staffs = self.staffs + [None] * (1 + staffno - len (self.staffs))
-
+ fill_list_to (self.staffs, staffno)
if self.staffs[staffno] == None:
self.staffs[staffno] = Staff (staffno)
return self.staffs[staffno]
# staff-spec
- def try_IS (self, l):
+ def try_IS (self, indices, contents):
pass
- def try_BC (self, l):
- m = BCre.match (l)
- if m:
- bn = string.atoi (m.group (1))
- where = string.atoi (m.group (2)) / 1024.0
- return m
- def try_TP(self, l):
- m = TPre.match (l)
- if m:
- (nil, num) = map (string.atoi, (m.groups ()[0:2]))
- entries = map (string.atoi, (m.groups ()[2:]))
-
- if self.tuplets[-1] == None or num <> self.tuplets[-1].start_note:
- self.tuplets.append (Tuplet (num))
-
- self.tuplets[-1].append_finale (entries)
-
- def try_IM (self, l):
- m = IMre.match (l)
- if m:
- a = string.atoi (m.group (1))
- b = string.atoi (m.group (2))
-
- fin = map (string.atoi, m.groups ()[2:])
-
- self.articulations.append (Articulation (a,b,fin))
- return m
- def try_verse (self,l):
- m = versere .match (l)
- if m:
- a = string.atoi (m.group (1))
- body =m.group (2)
-
- body = re.sub (r"""\^[a-z]+\([^)]+\)""", "", body)
- body = re.sub ("\^[a-z]+", "", body)
- self.verses.append (Verse (a, body))
-
- return m
- def try_ve (self,l):
- m = vere .match (l)
- if m:
- a = string.atoi (m.group (1))
- b = string.atoi (m.group (2))
-
- fin = map (string.atoi, m.groups ()[2:])
-
- self.syllables.append (Syllable (a,b,fin))
- return m
- def try_eE (self, l):
- m = eEre.match (l)
- if m:
- tup = m.groups()
- (no, prev, next, dur, pos, entryflag, extended, follow) = tup
- (no, prev, next, dur, pos,extended, follow) \
- = tuple (map (string.atoi, [no,prev,next,dur,pos,extended,follow]))
-
- entryflag = string.atol (entryflag,16)
- if len (self.entries) <= no:
- # missing entries seem to be quite common.
- # we fill'em up with None.
- self.entries = self.entries + [None] * (no - len (self.entries) + 1)
-
- current_entry = ((no, prev, next, dur, pos, entryflag, extended, follow), [])
- self.entries[no] = current_entry
- return m
-
- def try_Sx(self,l):
- m = Sxre.match (l)
- if m:
- slurno = string.atoi (m.group (1))
-
- sl = None
- try:
- sl = self.slur_dict[slurno]
- except KeyError:
- sl = Slur (slurno)
- self.slur_dict[slurno] = sl
-
- params = list (m.groups ()[1:])
- params = map (string.atoi, params)
- sl.append_entry (params)
-
- return m
- def try_GF(self, l):
- m = GFre.match (l)
- if m:
- (staffno,measno) = m.groups ()[0:2]
- s = string.atoi (staffno)
- me = string.atoi (measno)
-
- entry = m.groups () [2:]
- st = self.get_staff (s)
- meas = st.get_measure (me)
- meas.add_finale_entry (entry)
-
- # frame ?
- def try_FR(self, l):
- m = FRre.match (l)
- if m:
- (frameno, startnote, endnote, foo, bar) = m.groups ()
- (frameno, startnote, endnote) = tuple (map (string.atoi, [frameno, startnote, endnote]))
- if len (self.frames) <= frameno:
- self.frames = self.frames + [None] * (frameno - len(self.frames) + 1)
-
- self.frames[frameno] = Frame ((frameno, startnote, endnote))
-
- return m
-
- def try_MS (self, l):
- m = MSre.match (l)
- if m:
- measno = string.atoi (m.group (1))
- keynum = string.atoi (m.group (3))
- meas =self. get_global_measure (measno)
- meas.set_keysig (keynum)
-
- beats = string.atoi (m.group (4))
- beatlen = string.atoi (m.group (5))
- meas.set_timesig ((beats, beatlen))
-
- return m
-
- def try_note (self, l):
- m = note_re.match (l)
- if m:
- (pitch, flag) = m.groups ()
- pitch = string.atoi (pitch)
- flag = string.atol (flag,16)
- self.entries[-1][1].append ((pitch,flag))
-
- def parse (self, name):
- sys.stderr.write ('parsing ...')
- sys.stderr.flush ()
+ def try_BC (self, indices, contents):
+ bn = indices[0]
+ where = contents[0] / 1024.0
+ def try_TP(self, indices, contents):
+ (nil, num) = indices
+
+ if self.tuplets[-1] == None or num <> self.tuplets[-1].start_note:
+ self.tuplets.append (Tuplet (num))
+
+ self.tuplets[-1].append_finale (contents)
+
+ def try_IM (self, indices, contents):
+ (a,b) = indices
+ fin = contents
+ self.articulations.append (Articulation (a,b,fin))
+ def try_verse (self, indices, contents):
+ a = indices[0]
+ body = contents[0]
+
+ body = re.sub (r"""\^[a-z]+\([^)]+\)""", "", body)
+ body = re.sub ("\^[a-z]+", "", body)
+ self.verses.append (Verse (a, body))
+ def try_ve (self,indices, contents):
+ (a,b) = indices
+ self.syllables.append (Syllable (a,b,contents))
+
+ def try_eE (self,indices, contents):
+ no = indices[0]
+ (prev, next, dur, pos, entryflag, extended, follow) = contents[:7]
+
+ fill_list_to (self.chords, no)
+ self.chords[no] =Chord (no, contents)
+
+ def try_Sx(self,indices, contents):
+ slurno = indices[0]
+ fill_list_to (self.slurs, slurno)
+ self.slurs[slurno] = Slur(slurno, contents)
+
+ def try_IX (self, indices, contents):
+ n = indices[0]
+ a = contents[0]
+ b = contents[1]
+
+ ix= None
+ try:
+ ix = self.articulation_defs[n]
+ except IndexError:
+ ix = Articulation_def (n,a,b)
+ self.articulation_defs.append (Articulation_def (n, a, b))
- gulp = open (name).read ()
+ def try_GF(self, indices, contents):
+ (staffno,measno) = indices
- gulp = re.sub ('[\n\r]+', '\n', gulp)
- ls = string.split (gulp, '\n')
+ st = self.get_staff (staffno)
+ meas = st.get_measure (measno)
+ meas.finale = contents
- for l in ls:
- m = None
- if not m:
- m = self.try_MS (l)
- if not m:
- m = self.try_FR (l)
- if not m:
- m = self.try_GF (l)
- if not m:
- m = self.try_note (l)
- if not m:
- m = self.try_eE (l)
- if not m:
- m = self.try_IM (l)
- if not m:
- m = self.try_Sx (l)
- if not m:
- m = self.try_TP (l)
- if not m:
- m = self.try_verse (l)
+ def try_FR(self, indices, contents):
+ frameno = indices [0]
+
+ startnote = contents[0]
+ endnote = contents[1]
+ fill_list_to (self.frames, frameno)
+
+ self.frames[frameno] = Frame ((frameno, startnote, endnote))
+
+ def try_MS (self, indices, contents):
+ measno = indices[0]
+ keynum = contents[1]
+ meas =self. get_global_measure (measno)
+ meas.set_keysig (keynum)
+
+ beats = contents[2]
+ beatlen = contents[3]
+ meas.set_timesig ((beats, beatlen))
+
+ meas_flag1 = contents[4]
+ meas_flag2 = contents[5]
+
+ meas.set_flags (meas_flag1, meas_flag2);
+
+
+ routine_dict = {
+ 'MS': try_MS,
+ 'FR': try_FR,
+ 'GF': try_GF,
+ 'IX': try_IX,
+ 'Sx' : try_Sx,
+ 'eE' : try_eE,
+ 'verse' : try_verse,
+ 've' : try_ve,
+ 'IM' : try_IM,
+ 'TP' : try_TP,
+ 'BC' : try_BC,
+ 'IS' : try_IS,
+ }
+
+ def parse (self, etf_dict):
+ sys.stderr.write ('reconstructing ...')
+ sys.stderr.flush ()
+
+ for (tag,routine) in Etf_file.routine_dict.items ():
+ ks = etf_dict[tag].keys ()
+ ks.sort ()
+ for k in ks:
+ routine (self, k, etf_dict[tag][k])
+
sys.stderr.write ('processing ...')
sys.stderr.flush ()
frame_obj_list = [None]
for frno in m.frames:
- fr = self.frames[frno]
- frame_obj_list.append (fr)
+ try:
+ fr = self.frames[frno]
+ frame_obj_list.append (fr)
+ except IndexError:
+ sys.stderr.write ("\nNon-existent frame %d" % frno)
m.frames = frame_obj_list
for fr in frame_obj_list[1:]:
for t in self.tuplets[1:]:
t.calculate (self.chords)
- for s in self.slur_dict.values():
- s.calculate (self.chords)
+ for s in self.slurs[1:]:
+ if s:
+ s.calculate (self.chords)
+
for s in self.articulations[1:]:
- s.calculate (self.chords)
+ s.calculate (self.chords, self.articulation_defs)
def get_thread (self, startno, endno):
return []
- while c and c.number () <> endno:
+ while c and c.number <> endno:
thread.append (c)
c = c.next
return 'ETF FILE %s %s' % (self.measures, self.entries)
def unthread_entries (self):
- self.chords = [None]
- for e in self.entries[1:]:
- ch = None
- if e:
- ch = Chord (e)
- self.chords.append (ch)
-
for e in self.chords[1:]:
if not e:
continue
- e.prev = self.chords[e.finale[0][1]]
- e.next = self.chords[e.finale[0][2]]
+
+ e.prev = self.chords[e.finale[0]]
+ e.next = self.chords[e.finale[1]]
def identify():
sys.stderr.write ("%s from LilyPond %s\n" % (program_name, version))
def help ():
- print """Usage: etf2ly [OPTION]... ETF-FILE
+ sys.stdout.write("""Usage: etf2ly [OPTION]... ETF-FILE
Convert ETF to LilyPond.
Finale product. This program will convert a subset of ETF to a
ready-to-use lilypond file.
-Report bugs to bug-lilypond@gnu.org
+Report bugs to bug-gnu-music@gnu.org
Written by Han-Wen Nienhuys <hanwen@cs.uu.nl>
-"""
+""")
def print_version ():
- print r"""etf2ly (GNU lilypond) %s
+ sys.stdout.write (r"""etf2ly (GNU lilypond) %s
This 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 `midi2ly --warranty' for more information.
Copyright (c) 2000 by Han-Wen Nienhuys <hanwen@cs.uu.nl>
-""" % version
+""" % version)
f = ''
sys.stderr.write ('Processing `%s\'\n' % f)
- e = Etf_file(f)
+
+ dict = parse_etf_file (f, Etf_file.routine_dict)
+ e = Etf_file(dict)
if not out_filename:
out_filename = os.path.basename (re.sub ('(?i).etf$', '.ly', f))
# geometry.sty and article.cls. Give me a hint, and I'll
# fix it.)
+#
+# TODO: magnification support should also work for texinfo -> html: eg. add as option to dvips.
+#
+
# This is was the idea for handling of comments:
# Multiline comments, @ignore .. @end ignore is scanned for
# in read_doc_file, and the chunks are marked as 'ignore', so
# The the rest of the rexeces are searched for. They don't have to test
# if they are on a commented out line.
+
+
import os
import stat
import string
program_version = '@TOPLEVEL_VERSION@'
if program_version == '@' + 'TOPLEVEL_VERSION' + '@':
- program_version = '1.4pre'
+ program_version = '1.4.9'
#
# Try to cater for bad installations of LilyPond, that have
'output-verbatim': "\\begin{verbatim}%s\\end{verbatim}",
'output-default-post': "\\def\postLilypondExample{}\n",
'output-default-pre': "\\def\preLilypondExample{}\n",
- 'usepackage-graphics': '\\usepackage{graphics}\n',
- 'output-eps': '\\noindent\\parbox{\\lilypondepswidth{%(fn)s.eps}}{\includegraphics{%(fn)s.eps}}',
+ 'usepackage-graphics': '\\usepackage{graphicx}\n',
+ 'output-eps': '\\noindent\\parbox{\\lilypondepswidth{%(fn)s.eps}}{\includegraphics[width=\\lilypondepswidth{%(fn)s.eps}]{%(fn)s.eps}}',
'output-tex': '\\preLilypondExample \\input %(fn)s.tex \\postLilypondExample\n',
'pagebreak': r'\pagebreak',
},
return newchunks
-def find_eps_dims (match):
- "Fill in dimensions of EPS files."
-
- fn =match.group (1)
- dims = bounding_box_dimensions (fn)
- if g_outdir:
- fn = os.path.join(g_outdir, fn)
-
- return '%ipt' % dims[0]
-
def system (cmd):
sys.stderr.write ("invoking `%s'\n" % cmd)
error ('Error command exited with value %d\n' % st)
return st
+
+def get_bbox (filename):
+ f = open (filename)
+ gr = []
+ while 1:
+ l =f.readline ()
+ m = re.match ('^%%BoundingBox: ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)', l)
+ if m:
+ gr = map (string.atoi, m.groups ())
+ break
+
+ return gr
+
+def make_pixmap (name):
+ bbox = get_bbox (name + '.eps')
+ margin = 3
+ fo = open (name + '.trans.eps' , 'w')
+ fo.write ('%d %d translate\n' % (-bbox[0]+margin, -bbox[1]+margin))
+ fo.close ()
+
+ res = 90
+
+ x = (2* margin + bbox[2] - bbox[0]) * res / 72.
+ y = (2* margin + bbox[3] - bbox[1]) * res / 72.
+
+ cmd = r"""gs -g%dx%d -sDEVICE=pgm -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -q -sOutputFile=- -r%d -dNOPAUSE %s %s -c quit | pnmtopng > %s"""
+
+ cmd = cmd % (x, y, res, name + '.trans.eps', name + '.eps',name + '.png')
+ try:
+ status = system (cmd)
+ except:
+ os.unlink (name + '.png')
+ error ("Removing output file")
+
def compile_all_files (chunks):
global foutn
eps = []
for e in eps:
system(r"tex '\nonstopmode \input %s'" % e)
system(r"dvips -E -o %s %s" % (e + '.eps', e))
+
for g in png:
- cmd = r"""gs -sDEVICE=pgm -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -q -sOutputFile=- -r90 -dNOPAUSE %s -c quit | pnmcrop | pnmtopng > %s"""
- cmd = cmd % (g + '.eps', g + '.png')
- try:
- status = system (cmd)
- except:
- os.unlink (g + '.png')
- error ("Removing output file")
+ make_pixmap (g)
os.chdir (d)
n.append (c)
return n
+
+## what's this? Docme --hwn
+##
def fix_epswidth (chunks):
newchunks = []
for c in chunks:
- if c[0] == 'lilypond' and 'eps' in c[2]:
- body = re.sub (r"""\\lilypondepswidth{(.*?)}""", find_eps_dims, c[1])
- newchunks.append(('lilypond', body, c[2], c[3], c[4]))
- else:
+ if c[0] <> 'lilypond' or 'eps' not in c[2]:
newchunks.append (c)
+ continue
+
+ mag = 1.0
+ for o in c[2]:
+ m = re.match ('magnification=([0-9.]+)', o)
+ if m:
+ mag = string.atof (m.group (1))
+
+ def replace_eps_dim (match, lmag = mag):
+ filename = match.group (1)
+ dims = bounding_box_dimensions (filename)
+
+ return '%fpt' % (dims[0] *lmag)
+
+ body = re.sub (r"""\\lilypondepswidth{(.*?)}""", replace_eps_dim, c[1])
+ newchunks.append(('lilypond', body, c[2], c[3], c[4]))
+
return newchunks
'''
+
+
+
import os
import stat
import string
import tempfile
import traceback
-# Attempt to fix problems with limited stack size set by Python!
-# Sets unlimited stack size. Note that the resource module only
-# is available on UNIX.
-try:
- import resource
- resource.setrlimit (resource.RLIMIT_STACK, (-1, -1))
-except:
- pass
+################################################################
+# lilylib.py -- options and stuff
+#
+# source file of the GNU LilyPond music typesetter
-datadir = '@datadir@'
-sys.path.append (datadir + '/python')
try:
import gettext
- gettext.bindtextdomain ('lilypond', '@localedir@')
- gettext.textdomain('lilypond')
+ gettext.bindtextdomain ('lilypond', localedir)
+ gettext.textdomain ('lilypond')
_ = gettext.gettext
except:
def _ (s):
return s
-
-layout_fields = ['dedication', 'title', 'subtitle', 'subsubtitle',
- 'footer', 'head', 'composer', 'arranger', 'instrument',
- 'opus', 'piece', 'metre', 'meter', 'poet', 'texttranslator']
-
-
-# init to empty; values here take precedence over values in the file
-
-## TODO: change name.
-extra_init = {
- 'language' : [],
- 'latexheaders' : [],
- 'latexpackages' : ['geometry'],
- 'latexoptions' : [],
- 'papersize' : [],
- 'pagenumber' : [1],
- 'textheight' : [],
- 'linewidth' : [],
- 'orientation' : []
-}
-
-extra_fields = extra_init.keys ()
-
-fields = layout_fields + extra_fields
-program_name = 'ly2dvi'
-help_summary = _ ("Generate .dvi with LaTeX for LilyPond")
-
-include_path = ['.']
-lily_p = 1
-paper_p = 1
-cache_pks_p = 1
-
-PK_PATTERN='feta.*\.[0-9]+pk'
-
-output_name = ''
-targets = {
- 'DVI' : 0,
- 'LATEX' : 0,
- 'MIDI' : 0,
- 'TEX' : 0,
- }
-
-track_dependencies_p = 0
-dependency_files = []
-
-
-# lily_py.py -- options and stuff
-#
-# source file of the GNU LilyPond music typesetter
-
-# BEGIN Library for these?
-# cut-n-paste from ly2dvi
-
program_version = '@TOPLEVEL_VERSION@'
if program_version == '@' + 'TOPLEVEL_VERSION' + '@':
- program_version = '1.3.148'
-
-
-original_dir = os.getcwd ()
-temp_dir = os.path.join (original_dir, '%s.dir' % program_name)
-
-keep_temp_dir_p = 0
-verbose_p = 0
-
-#
-# Try to cater for bad installations of LilyPond, that have
-# broken TeX setup. Just hope this doesn't hurt good TeX
-# setups. Maybe we should check if kpsewhich can find
-# feta16.{afm,mf,tex,tfm}, and only set env upon failure.
-#
-environment = {
- 'MFINPUTS' : datadir + '/mf' + ':',
- 'TEXINPUTS': datadir + '/tex:' + datadir + '/ps' + ':',
- 'TFMFONTS' : datadir + '/tfm' + ':',
- 'GS_FONTPATH' : datadir + '/afm:' + datadir + '/pfa',
- 'GS_LIB' : datadir + '/ps',
-}
-
-def setup_environment ():
- for key in environment.keys ():
- val = environment[key]
- if os.environ.has_key (key):
- val = os.environ[key] + os.pathsep + val
- os.environ[key] = val
+ program_version = '1.5.17'
def identify ():
sys.stdout.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version))
NO WARRANTY.'''))
sys.stdout.write ('\n')
-errorport=sys.stderr
-
def progress (s):
errorport.write (s + '\n')
Exit status of CMD
"""
-
- # Attempt to fix problems with limited stack size set by Python!
- # Sets unlimited stack size.
- resource.setrlimit(resource.RLIMIT_STACK, (-1,-1))
if verbose_p:
progress (_ ("Invoking `%s\'") % cmd)
shutil.rmtree (temp_dir)
-#what a name.
-def set_setting (dict, key, val):
- try:
- val = string.atof (val)
- except ValueError:
- #warning (_ ("invalid value: %s") % `val`)
- pass
-
- try:
- dict[key].append (val)
- except KeyError:
- warning (_ ("no such setting: %s") % `key`)
- dict[key] = [val]
-
-
def strip_extension (f, ext):
(p, e) = os.path.splitext (f)
if e == ext:
e = ''
return p + e
+################################################################
# END Library
+
+
+
+
+
+# if set, LILYPONDPREFIX must take prevalence
+# if datadir is not set, we're doing a build and LILYPONDPREFIX
+datadir = '@datadir@'
+
+
+if os.environ.has_key ('LILYPONDPREFIX') :
+# huh ? this always leads to exception.
+# or '@datadir@' == '@' + 'datadir' + '@':
+ datadir = os.environ['LILYPONDPREFIX']
+else:
+ datadir = '@datadir@'
+
+
+while datadir[-1] == os.sep:
+ datadir= datadir[:-1]
+
+program_name = 'ly2dvi'
+
+original_dir = os.getcwd ()
+temp_dir = os.path.join (original_dir, '%s.dir' % program_name)
+errorport = sys.stderr
+keep_temp_dir_p = 0
+verbose_p = 0
+
+try:
+ import gettext
+ gettext.bindtextdomain ('lilypond', '@localedir@')
+ gettext.textdomain ('lilypond')
+ _ = gettext.gettext
+except:
+ def _ (s):
+ return s
+
+# Attempt to fix problems with limited stack size set by Python!
+# Sets unlimited stack size. Note that the resource module only
+# is available on UNIX.
+try:
+ import resource
+ resource.setrlimit (resource.RLIMIT_STACK, (-1, -1))
+except:
+ pass
+
+help_summary = _ ("Generate .dvi with LaTeX for LilyPond")
+
option_definitions = [
('', 'd', 'dependencies', _ ("write Makefile dependencies for every input file")),
('', 'h', 'help', _ ("this help")),
('', 'w', 'warranty', _ ("show warranty and copyright")),
]
+layout_fields = ['dedication', 'title', 'subtitle', 'subsubtitle',
+ 'footer', 'head', 'composer', 'arranger', 'instrument',
+ 'opus', 'piece', 'metre', 'meter', 'poet', 'texttranslator']
+
+
+# init to empty; values here take precedence over values in the file
+
+## TODO: change name.
+extra_init = {
+ 'language' : [],
+ 'latexheaders' : [],
+ 'latexpackages' : ['geometry'],
+ 'latexoptions' : [],
+ 'papersize' : [],
+ 'pagenumber' : [1],
+ 'textheight' : [],
+ 'linewidth' : [],
+ 'orientation' : []
+}
+
+extra_fields = extra_init.keys ()
+fields = layout_fields + extra_fields
+
+include_path = ['.']
+lily_p = 1
+paper_p = 1
+cache_pks_p = 1
+
+PK_PATTERN='feta.*\.[0-9]+pk'
+
+output_name = ''
+targets = {
+ 'DVI' : 0,
+ 'LATEX' : 0,
+ 'MIDI' : 0,
+ 'TEX' : 0,
+ }
+
+track_dependencies_p = 0
+dependency_files = []
+
+
+#
+# Try to cater for bad installations of LilyPond, that have
+# broken TeX setup. Just hope this doesn't hurt good TeX
+# setups. Maybe we should check if kpsewhich can find
+# feta16.{afm,mf,tex,tfm}, and only set env upon failure.
+#
+environment = {
+ 'MFINPUTS' : datadir + '/mf' + ':',
+ 'TEXINPUTS': datadir + '/tex:' + datadir + '/ps:' + '.:'
+ + os.getcwd() + ':',
+ 'TFMFONTS' : datadir + '/tfm' + ':',
+ 'GS_FONTPATH' : datadir + '/afm:' + datadir + '/pfa',
+ 'GS_LIB' : datadir + '/ps',
+}
+
+
+def setup_environment ():
+ for key in environment.keys ():
+ val = environment[key]
+ if os.environ.has_key (key):
+ val = os.environ[key] + os.pathsep + val
+ os.environ[key] = val
+
+#what a name.
+def set_setting (dict, key, val):
+ try:
+ val = string.atof (val)
+ except ValueError:
+ #warning (_ ("invalid value: %s") % `val`)
+ pass
+
+ try:
+ dict[key].append (val)
+ except KeyError:
+ warning (_ ("no such setting: %s") % `key`)
+ dict[key] = [val]
+
+
+def print_environment ():
+ for (k,v) in os.environ.items ():
+ sys.stderr.write ("%s=\"%s\"\n" % (k,v))
+
def run_lilypond (files, outbase, dep_prefix):
opts = ''
# opts = opts + '--output=%s.tex' % outbase
fs = string.join (files)
if not verbose_p:
- progress ( _("Running %s...") % 'LilyPond')
# cmd = cmd + ' 1> /dev/null 2> /dev/null'
+ progress ( _("Running %s...") % 'LilyPond')
else:
opts = opts + ' --verbose'
-
+
+ # for better debugging!
+ print_environment ()
+ print opts, fs
system ('lilypond %s %s ' % (opts, fs))
def analyse_lilypond_output (filename, extra):
'''
if extra['pagenumber'] and extra['pagenumber'][-1] and extra['pagenumber'][-1] != 'no':
- s = s + '\\pagestyle{plain}\n'
+ s = s + '\setcounter{page}{%s}\n' % (extra['pagenumber'][-1])
+ s = s + '\\pagestyle{plain}\n'
else:
s = s + '\\pagestyle{empty}\n'
return pfa
-(sh, long) = getopt_args (__main__.option_definitions)
+(sh, long) = getopt_args (option_definitions)
try:
(options, files) = getopt.getopt(sys.argv[1:], sh, long)
except getopt.error, s:
errorport.write ('\n')
- errorport.write (_( "error: ") + _ ("getopt says: `%s\'" % s))
+ errorport.write (_ ("error: ") + _ ("getopt says: `%s\'" % s))
errorport.write ('\n')
errorport.write ('\n')
help ()
# Ugh, maybe make a setup () function
files = map (lambda x: strip_extension (x, '.ly'), files)
+ # hmmm. Wish I'd 've written comments when I wrote this.
+ # now it looks complicated.
+
(outdir, outbase) = ('','')
if not output_name:
outbase = os.path.basename (files[0])
for i in ('.dvi', '.latex', '.ly', '.ps', '.tex'):
output_name = strip_extension (output_name, i)
-
- files = map (abspath, files)
+ outbase = strip_extension (outbase, i)
+ files = map (abspath, files)
if os.path.dirname (output_name) != '.':
dep_prefix = os.path.dirname (output_name)
os.chdir (outdir)
cp_to_dir (PK_PATTERN, tmpdir)
+ # to be sure, add tmpdir *in front* of inclusion path.
+ #os.environ['TEXINPUTS'] = tmpdir + ':' + os.environ['TEXINPUTS']
os.chdir (tmpdir)
if lily_p:
else:
# FIXME: read from stdin when files[0] = '-'
help ()
- errorport.write ("ly2dvi: " + _ ("error: ") + _ ("no files specified on command line.") + '\n')
+ errorport.write (program_name + ":" + _ ("error: ") + _ ("no files specified on command line.") + '\n')
sys.exit (2)
rm -f building &&
ln -s %n-%v building &&
cd %n-%v &&
-rm -f config.cache &&
./configure --prefix=$HOME/usr && make all web
) >> %n-%v/log.txt 2>&1 &&
rm -f %n &&
of @PACKAGE_NAME@
"""
+
built = r"""<hr>
<p><font size="-1">
-This page was built from @PACKAGE_NAME@-@PACKAGE_VERSION@ by<br>
+This page was built from @PACKAGE_NAME@-@PACKAGE_VERSION@ (@BRANCH@) by<br>
</font>
<address><font size="-1">@GCOS@ <<a href="mailto:%s">@MAILADDRESS@</a>>,
@LOCALTIME@.</font></address>"""
# index = "./index.html"
# top = "./"
+
+ versiontup = string.split(package_version, '.')
+ branch_str = 'stable-branch'
+ if string.atoi ( versiontup[1]) % 2:
+ branch_str = 'development-branch'
+
s = re.sub ('@INDEX@', index, s)
s = re.sub ('@TOP@', top, s)
s = re.sub ('@PACKAGE_NAME@', package_name, s)
s = re.sub ('@GCOS@', gcos, s)
s = re.sub ('@LOCALTIME@', localtime, s)
s = re.sub ('@MAILADDRESS@', mail_address, s)
+ s = re.sub ('@BRANCH@', branch_str, s)
open (f, 'w').write (s)
$(outdir)/%.$(XPM_RESOLUTION)pk: $(outdir)/%.$(XPM_RESOLUTION)gf
gftopk $< $@
+
+
+$(outdir)/%.pfb:
+ pktrace $(basename $(@F))
+ mv $(basename $(@F)).pfb $(outdir)
+
#%.afm:
# $(SHELL) $(depth)/buildscripts/tfmtoafm.sh $(shell basename $@ .afm)
# mv $@ $@.in
xpms: $(addprefix $(outdir)/, $(XPM_FONTS:%=%.afm)) pks
$(foreach i, $(XPM_FONTS), $(SHELL) $(depth)/buildscripts/mf-to-xpms.sh $(i) && ) true
+
+
+pfb: $(PFB_FILES)
%
% escape the colon with \string to avoid problems with french babel
%
+\def\PSsetTeXdimen#1{\expandafter\special{! /#1 (\csname #1\endcsname) set_tex_dimen}}
\def\lilySpace{ }
\def\turnOnPostScript{%
% This sets CTM so that you get to the currentpoint
\botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}%
% Are we using PDFTeX? If so, use pdf definitions.
+% MiKTeX checks \pdfoutput the wrong way, makes our
+% check more complicated.
\ifx\pdfoutput\undefined
\input lily-ps-defs
\else
- \pdfoutput=1
- \input lily-pdf-defs
+ \ifx\pdfoutput\relax
+ \input lily-ps-defs
+ \else
+ \pdfoutput=1
+ \input lily-pdf-defs
+ \fi
\fi
\def\EndLilyPondOutput{%